mirror of https://github.com/apache/poi.git
65206 - Migrate ant / maven to gradle build
compile / jar / test of mrJars don't include ants build.xml anymore rename directories to match project and maven artifact names refactor artifacts - so each project has one artifact replace static references in hssf/dev tests with junit5 constructs, which had problems in parallel tests increase gradle heap to 4gb because of OOM - maybe less would also work git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1888488 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6458acb931
commit
b6aee1ef6d
75
build.gradle
75
build.gradle
|
@ -25,6 +25,7 @@ buildscript {
|
|||
}
|
||||
|
||||
plugins {
|
||||
id 'base'
|
||||
id("org.nosphere.apache.rat") version "0.7.0"
|
||||
}
|
||||
|
||||
|
@ -59,6 +60,7 @@ ant.taskdef(name: "junit",
|
|||
classpath: configurations.antLibs.asPath)
|
||||
|
||||
wrapper {
|
||||
// https://stackoverflow.com/a/54741656/2066598
|
||||
gradleVersion = '6.8'
|
||||
}
|
||||
|
||||
|
@ -78,6 +80,7 @@ wrapper.finalizedBy adjustWrapperPropertiesFile
|
|||
*/
|
||||
allprojects {
|
||||
apply plugin: 'eclipse'
|
||||
// apply plugin: 'idea'
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -89,6 +92,7 @@ subprojects {
|
|||
//Put instructions for each sub project, but not the master
|
||||
apply plugin: 'java-library'
|
||||
apply plugin: 'jacoco'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
version = '5.0.1-SNAPSHOT'
|
||||
ext {
|
||||
|
@ -108,6 +112,10 @@ subprojects {
|
|||
options.encoding = 'UTF-8'
|
||||
}
|
||||
|
||||
tasks.withType(Jar) {
|
||||
duplicatesStrategy = 'fail'
|
||||
}
|
||||
|
||||
sourceCompatibility = 1.8
|
||||
targetCompatibility = 1.8
|
||||
|
||||
|
@ -127,7 +135,7 @@ subprojects {
|
|||
|
||||
jar {
|
||||
manifest {
|
||||
attributes 'Implementation-Title': 'Apache POI', 'Implementation-Version': version
|
||||
attributes 'Implementation-Title': 'Apache POI', 'Implementation-Version': project.version
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -209,6 +217,56 @@ subprojects {
|
|||
jenkins.dependsOn javadoc
|
||||
jenkins.dependsOn jacocoTestReport
|
||||
jenkins.dependsOn rat
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
POI(MavenPublication) {
|
||||
groupId 'org.apache.poi'
|
||||
|
||||
pom {
|
||||
packaging = 'jar'
|
||||
url = 'https://poi.apache.org/'
|
||||
|
||||
mailingLists {
|
||||
mailingList {
|
||||
name = 'POI Users List'
|
||||
subscribe = 'user-subscribe@poi.apache.org'
|
||||
unsubscribe = 'user-unsubscribe@poi.apache.org'
|
||||
archive = 'http://mail-archives.apache.org/mod_mbox/poi-user/'
|
||||
}
|
||||
mailingList {
|
||||
name = 'POI Developer List'
|
||||
subscribe = 'dev-subscribe@poi.apache.org'
|
||||
unsubscribe = 'dev-unsubscribe@poi.apache.org'
|
||||
archive = 'http://mail-archives.apache.org/mod_mbox/poi-dev/'
|
||||
}
|
||||
}
|
||||
|
||||
licenses {
|
||||
license {
|
||||
name = 'Apache License, Version 2.0'
|
||||
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
|
||||
distribution = 'repo'
|
||||
}
|
||||
}
|
||||
|
||||
organization {
|
||||
name = 'Apache Software Foundation'
|
||||
url = 'http://www.apache.org/'
|
||||
}
|
||||
|
||||
withXml {
|
||||
def r = asElement()
|
||||
def doc = r.getOwnerDocument()
|
||||
def asl = doc.createComment(new File('../legal/HEADER').text)
|
||||
// adding ASF header before root node is ignored
|
||||
// doc.insertBefore(asl, doc.getDocumentElement())
|
||||
r.insertBefore(asl, r.getFirstChild())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Make JavaDoc behave similar to Ant, i.e. be a bit more lenient
|
||||
|
@ -264,6 +322,10 @@ task allJavaDoc(type: Javadoc) {
|
|||
task jenkins
|
||||
jenkins.dependsOn allJavaDoc
|
||||
|
||||
clean {
|
||||
delete "${rootDir}/build/dist"
|
||||
}
|
||||
|
||||
rat {
|
||||
// Input directory, defaults to '.'
|
||||
inputDir.set(file("."))
|
||||
|
@ -306,3 +368,14 @@ rat {
|
|||
// Prints the list of files with unapproved licences to the console, defaults to false
|
||||
verbose.set(true)
|
||||
}
|
||||
|
||||
/*task downloadJarsToLibs() {
|
||||
def f = new File("$projectDir/../lib/ooxml/xmlbeans-5.0.0.jar")
|
||||
if (!f.exists()) {
|
||||
println 'writing file ' + f.getAbsolutePath()
|
||||
f.getParentFile().mkdirs()
|
||||
new URL('https://ci-builds.apache.org/job/POI/job/POI-XMLBeans-DSL-1.8/lastSuccessfulBuild/artifact/build/xmlbeans-5.0.0.jar').withInputStream{ i -> f.withOutputStream{ it << i }}
|
||||
}
|
||||
}*/
|
||||
|
||||
//compileJava.dependsOn 'downloadJarsToLibs'
|
244
build.xml
244
build.xml
|
@ -89,9 +89,9 @@ under the License.
|
|||
<attribute name="name"/>
|
||||
<attribute name="value"/>
|
||||
<sequential>
|
||||
<mkdir dir="excelant/build/poi-ant-contrib"/>
|
||||
<javac srcdir="excelant/src//poi-ant-contrib/java" destdir="excelant/build/poi-ant-contrib" includeantruntime="true" excludes="Junit5Progress.java"/>
|
||||
<taskdef name="PropertyResetHelper" classname="PropertyReset" classpath="excelant/build/poi-ant-contrib"/>
|
||||
<mkdir dir="poi-excelant/build/poi-ant-contrib"/>
|
||||
<javac srcdir="poi-excelant/src//poi-ant-contrib/java" destdir="poi-excelant/build/poi-ant-contrib" includeantruntime="true" excludes="Junit5Progress.java"/>
|
||||
<taskdef name="PropertyResetHelper" classname="PropertyReset" classpath="poi-excelant/build/poi-ant-contrib"/>
|
||||
<PropertyResetHelper name="@{name}" value="@{value}" />
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
@ -115,65 +115,66 @@ under the License.
|
|||
<property name="tempdir" value="build/tmp"/>
|
||||
|
||||
<!-- Main: -->
|
||||
<property name="main.resources.main" value="main/src/main/resources"/>
|
||||
<property name="main.src" location="main/src/main/java"/>
|
||||
<property name="main.src.test" location="main/src/test/java"/>
|
||||
<property name="main.resources.test" location="main/src/test/resources"/>
|
||||
<property name="main.resources.main" value="poi/src/main/resources"/>
|
||||
<property name="main.src" location="poi/src/main/java"/>
|
||||
<property name="main.src.test" location="poi/src/test/java"/>
|
||||
<property name="main.resources.test" location="poi/src/test/resources"/>
|
||||
<property name="main.documentation" value="src/documentation"/>
|
||||
<property name="main.output.dir" location="main/build/classes/ant/java"/>
|
||||
<property name="main.output.test.dir" location="main/build/test-classes"/>
|
||||
<property name="main.reports.test" location="main/build/test-results"/>
|
||||
<property name="main.testokfile" location="main/build/testokfile.txt"/>
|
||||
<property name="main.output.gen-sources.dir" location="main/build/generated-sources"/>
|
||||
<property name="main.version.template" location="main/src/main/version/Version.java.template"/>
|
||||
<property name="main.output.dir" location="poi/build/classes/ant/java"/>
|
||||
<property name="main.output.test.dir" location="poi/build/test-classes"/>
|
||||
<property name="main.reports.test" location="poi/build/test-results"/>
|
||||
<property name="main.testokfile" location="poi/build/testokfile.txt"/>
|
||||
<property name="main.output.gen-sources.dir" location="poi/build/generated-sources"/>
|
||||
<property name="main.version.template" location="poi/src/main/version/Version.java.template"/>
|
||||
<property name="main.version.java" location="${main.output.gen-sources.dir}/org/apache/poi/Version.java"/>
|
||||
|
||||
<!-- Scratchpad: -->
|
||||
<property name="scratchpad.resources.main" value="scratchpad/src/main/resources"/>
|
||||
<property name="scratchpad.src" location="scratchpad/src/main/java"/>
|
||||
<property name="scratchpad.src.test" location="scratchpad/src/test/java"/>
|
||||
<property name="scratchpad.resources.test" location="scratchpad/src/main/resources"/>
|
||||
<property name="scratchpad.reports.test" location="scratchpad/build/test-results"/>
|
||||
<property name="scratchpad.output.dir" location="scratchpad/build/classes/ant/java"/>
|
||||
<property name="scratchpad.output.test.dir" location="scratchpad/build/test-classes"/>
|
||||
<property name="scratchpad.testokfile" location="scratchpad/build/testokfile.txt"/>
|
||||
<property name="scratchpad.resources.main" value="poi-scratchpad/src/main/resources"/>
|
||||
<property name="scratchpad.src" location="poi-scratchpad/src/main/java"/>
|
||||
<property name="scratchpad.src.test" location="poi-scratchpad/src/test/java"/>
|
||||
<property name="scratchpad.resources.test" location="poi-scratchpad/src/main/resources"/>
|
||||
<property name="scratchpad.reports.test" location="poi-scratchpad/build/test-results"/>
|
||||
<property name="scratchpad.output.dir" location="poi-scratchpad/build/classes/ant/java"/>
|
||||
<property name="scratchpad.output.test.dir" location="poi-scratchpad/build/test-classes"/>
|
||||
<property name="scratchpad.testokfile" location="poi-scratchpad/build/testokfile.txt"/>
|
||||
|
||||
<!-- Examples: -->
|
||||
<property name="examples.src" location="examples/src/main/java"/>
|
||||
<property name="examples.output.dir" location="examples/build/classes/ant/java"/>
|
||||
<property name="examples.src" location="poi-examples/src/main/java"/>
|
||||
<property name="examples.output.dir" location="poi-examples/build/classes/ant/java"/>
|
||||
|
||||
<!-- OOXML support: -->
|
||||
<property name="ooxml.src" location="ooxml/src/main/java"/>
|
||||
<property name="ooxml.resources.main" value="ooxml/src/main/resources"/>
|
||||
<property name="ooxml.src.test" location="ooxml/src/test/java"/>
|
||||
<property name="ooxml.resources.test" location="ooxml/src/test/resources"/>
|
||||
<property name="ooxml.reports.test" location="ooxml/build/test-results"/>
|
||||
<property name="ooxml.output.dir" location="ooxml/build/classes/ant/java"/>
|
||||
<property name="ooxml.output.test.dir" location="ooxml/build/test-classes"/>
|
||||
<property name="ooxml.testokfile" location="ooxml/build/testokfile.txt"/>
|
||||
<property name="ooxml.src" location="poi-ooxml/src/main/java"/>
|
||||
<property name="ooxml.resources.main" value="poi-ooxml/src/main/resources"/>
|
||||
<property name="ooxml.src.test" location="poi-ooxml/src/test/java"/>
|
||||
<property name="ooxml.resources.test" location="poi-ooxml/src/test/resources"/>
|
||||
<property name="ooxml.reports.test" location="poi-ooxml/build/test-results"/>
|
||||
<property name="ooxml.output.dir" location="poi-ooxml/build/classes/ant/java"/>
|
||||
<property name="ooxml.output.test.dir" location="poi-ooxml/build/test-classes"/>
|
||||
<property name="ooxml.testokfile" location="poi-ooxml/build/testokfile.txt"/>
|
||||
|
||||
<property name="ooxml.lite.agent" location="lib/ooxml-tests/ooxml-lite-agent.jar"/>
|
||||
<property name="ooxml.lite.report" location="ooxml-schema/build/ooxml-lite-report"/>
|
||||
<property name="ooxml.lite.agent" location="build/dist/maven/poi-ooxml-lite-agent/poi-ooxml-lite-agent-${version.id}.jar"/>
|
||||
<property name="ooxml.lite.report" location="build/ooxml-lite-report"/>
|
||||
<property name="ooxml.lite.jar" location="build/dist/maven/poi-ooxml-lite/poi-ooxml-lite-${version.id}.jar"/>
|
||||
<property name="ooxml.lite.includes" value="^(com/microsoft/schemas|org/(etsi|openxmlformats|w3/)|org/apache/poi/schemas)"/>
|
||||
<property name="ooxml.lite.output.dir" location="poi-ooxml-lite-agent/build/classes/ant/java"/>
|
||||
|
||||
|
||||
<!-- Integration testing: -->
|
||||
<property name="integration.src.test" location="integrationtest/src/test/java"/>
|
||||
<property name="integration.resources.test" location="integrationtest/src/test/resources"/>
|
||||
<property name="integration.reports.test" location="integrationtest/build/test-results"/>
|
||||
<property name="integration.output.test.dir" location="integrationtest/build/test-classes"/>
|
||||
<property name="integration.testokfile" location="integrationtest/build/testokfile.txt"/>
|
||||
<property name="integration.src.test" location="poi-integration/src/test/java"/>
|
||||
<property name="integration.resources.test" location="poi-integration/src/test/resources"/>
|
||||
<property name="integration.reports.test" location="poi-integration/build/test-results"/>
|
||||
<property name="integration.output.test.dir" location="poi-integration/build/test-classes"/>
|
||||
<property name="integration.testokfile" location="poi-integration/build/testokfile.txt"/>
|
||||
|
||||
<!-- Excelant: -->
|
||||
<property name="excelant.resource.main" value="excelant/src/main/resources"/>
|
||||
<property name="excelant.src" location="excelant/src/main/java"/>
|
||||
<property name="excelant.src.test" location="excelant/src/test/java"/>
|
||||
<property name="excelant.resources.test" location="excelant/src/test/resources"/>
|
||||
<property name="excelant.reports.test" location="excelant/build/test-results"/>
|
||||
<property name="excelant.output.dir" location="excelant/build/classes/ant/java"/>
|
||||
<property name="excelant.output.test.dir" location="excelant/build/test-classes"/>
|
||||
<property name="excelant.testokfile" location="excelant/build/testokfile.txt"/>
|
||||
<property name="excelant.resource.main" value="poi-excelant/src/main/resources"/>
|
||||
<property name="excelant.src" location="poi-excelant/src/main/java"/>
|
||||
<property name="excelant.src.test" location="poi-excelant/src/test/java"/>
|
||||
<property name="excelant.resources.test" location="poi-excelant/src/test/resources"/>
|
||||
<property name="excelant.reports.test" location="poi-excelant/build/test-results"/>
|
||||
<property name="excelant.output.dir" location="poi-excelant/build/classes/ant/java"/>
|
||||
<property name="excelant.output.test.dir" location="poi-excelant/build/test-classes"/>
|
||||
<property name="excelant.testokfile" location="poi-excelant/build/testokfile.txt"/>
|
||||
|
||||
<macrodef name="dependency">
|
||||
<attribute name="prefix"/>
|
||||
|
@ -347,21 +348,21 @@ under the License.
|
|||
|
||||
<!-- See https://www.ecma-international.org/publications/standards/Ecma-376.htm -->
|
||||
<!-- "Copy these file(s), free of charge" -->
|
||||
<property name="ooxml-schema.output.dir" location="ooxml-schema/build/classes/ant/java"/>
|
||||
<property name="ooxml-schema.output.test.dir" location="ooxml-schema/build/test-classes"/>
|
||||
<property name="ooxml-schema.output.gen-sources.dir" location="ooxml-schema/build/generated-sources"/>
|
||||
<property name="ooxml-schema.output.gen-classes.dir" location="ooxml-schema/build/generated-classes"/>
|
||||
<property name="ooxml.xsds.izip.1" value="${basedir}/ooxml-schema/src/main/xmlschema/org/apache/poi/schemas/OfficeOpenXML-XMLSchema-Transitional.zip"/>
|
||||
<property name="ooxml.xsds.src.dir" location="ooxml-schema/build/xsds"/>
|
||||
<property name="ooxml-schema.output.dir" location="poi-ooxml-full/build/classes/ant/java"/>
|
||||
<property name="ooxml-schema.output.test.dir" location="poi-ooxml-full/build/test-classes"/>
|
||||
<property name="ooxml-schema.output.gen-sources.dir" location="poi-ooxml-full/build/generated-sources"/>
|
||||
<property name="ooxml-schema.output.gen-classes.dir" location="poi-ooxml-full/build/generated-classes"/>
|
||||
<property name="ooxml.xsds.izip.1" value="${basedir}/poi-ooxml-full/src/main/xmlschema/org/apache/poi/schemas/OfficeOpenXML-XMLSchema-Transitional.zip"/>
|
||||
<property name="ooxml.xsds.src.dir" location="poi-ooxml-full/build/xsds"/>
|
||||
<property name="ooxml.xsds.src.jar" location="build/dist/maven/poi-ooxml-full/poi-ooxml-full-${version.id}-sources.jar"/>
|
||||
<property name="ooxml.xsds.jar" location="build/dist/maven/poi-ooxml-full/poi-ooxml-full-${version.id}.jar"/>
|
||||
|
||||
<!-- additional schemas are packed into the poi schemas jar, -->
|
||||
<!-- so we don't have to care about a separate versioning of the original ooxml schemas -->
|
||||
<property name="ooxml.xsds.izip.2" value="${basedir}/ooxml-schema/src/main/xmlschema/org/apache/poi/schemas/OpenPackagingConventions-XMLSchema.zip"/>
|
||||
<property name="ooxml.security.xsd.dir" location="ooxml-schema/src/main/xmlschema/org/apache/poi/poifs/crypt"/>
|
||||
<property name="ooxml.visio.xsd.dir" location="ooxml-schema/src/main/xmlschema/org/apache/poi/xdgf"/>
|
||||
<property name="ooxml.schema.xsdconfig.dir" location="ooxml-schema/src/main/xmlschema/org/apache/poi/schemas"/>
|
||||
<property name="ooxml.xsds.izip.2" value="${basedir}/poi-ooxml-full/src/main/xmlschema/org/apache/poi/schemas/OpenPackagingConventions-XMLSchema.zip"/>
|
||||
<property name="ooxml.security.xsd.dir" location="poi-ooxml-full/src/main/xmlschema/org/apache/poi/poifs/crypt"/>
|
||||
<property name="ooxml.visio.xsd.dir" location="poi-ooxml-full/src/main/xmlschema/org/apache/poi/xdgf"/>
|
||||
<property name="ooxml.schema.xsdconfig.dir" location="poi-ooxml-full/src/main/xmlschema/org/apache/poi/schemas"/>
|
||||
|
||||
<!-- Coverage -->
|
||||
<property name="coverage.dir" value="build/coverage"/>
|
||||
|
@ -623,13 +624,13 @@ under the License.
|
|||
|
||||
<target name="clean" description="Remove generated artefacts">
|
||||
<delete dir="build"/>
|
||||
<delete dir="examples/build"/>
|
||||
<delete dir="excelant/build"/>
|
||||
<delete dir="integrationtest/build"/>
|
||||
<delete dir="main/build"/>
|
||||
<delete dir="ooxml/build"/>
|
||||
<delete dir="ooxml-schema/build"/>
|
||||
<delete dir="scratchpad/build"/>
|
||||
<delete dir="poi-examples/build"/>
|
||||
<delete dir="poi-excelant/build"/>
|
||||
<delete dir="poi-integration/build"/>
|
||||
<delete dir="poi/build"/>
|
||||
<delete dir="poi-ooxml/build"/>
|
||||
<delete dir="poi-ooxml-full/build"/>
|
||||
<delete dir="poi-scratchpad/build"/>
|
||||
<delete includeemptydirs="true">
|
||||
<fileset dir="sonar">
|
||||
<include name="*/target/**"/>
|
||||
|
@ -972,8 +973,8 @@ under the License.
|
|||
</javac>
|
||||
|
||||
<javac release="9"
|
||||
srcdir="${basedir}/ooxml-schema/src/ooxml-full/java9"
|
||||
destdir="${basedir}/ooxml-schema/src/ooxml-full/java9"
|
||||
srcdir="${basedir}/poi-ooxml-full/src/main/java9"
|
||||
destdir="${basedir}/poi-ooxml-full/src/main/java9"
|
||||
includeantruntime="false"
|
||||
fork="true"
|
||||
modulepath="lib/ooxml"
|
||||
|
@ -986,8 +987,8 @@ under the License.
|
|||
<jar destfile="${ooxml.xsds.jar}">
|
||||
<fileset dir="${ooxml-schema.output.dir}"/>
|
||||
<fileset dir="${ooxml-schema.output.gen-classes.dir}"/>
|
||||
<zipfileset dir="${basedir}/ooxml-schema/src/ooxml-full/java9" prefix="META-INF/versions/9" excludes="*.java"/>
|
||||
<metainf dir="legal/"/>
|
||||
<zipfileset dir="${basedir}/poi-ooxml-full/src/main/java9" prefix="META-INF/versions/9" excludes="*.java"/>
|
||||
<metainf dir="legal/" excludes="HEADER"/>
|
||||
<manifest>
|
||||
<attribute name="Multi-Release" value="true"/>
|
||||
<attribute name="Automatic-Module-Name" value="org.apache.poi.ooxml.schemas"/>
|
||||
|
@ -1004,8 +1005,8 @@ under the License.
|
|||
|
||||
<jar destfile="${ooxml.xsds.src.jar}">
|
||||
<fileset dir="${ooxml-schema.output.gen-sources.dir}"/>
|
||||
<zipfileset dir="${basedir}/ooxml-schema/src/ooxml-full/java9" prefix="META-INF/versions/9/" excludes="*.class"/>
|
||||
<metainf dir="legal"/>
|
||||
<zipfileset dir="${basedir}/poi-ooxml-full/src/main/java9" prefix="META-INF/versions/9/" excludes="*.class"/>
|
||||
<metainf dir="legal" excludes="HEADER"/>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
|
@ -1039,7 +1040,7 @@ under the License.
|
|||
<string>@{module}</string>
|
||||
<filterchain>
|
||||
<prefixlines prefix="poi-"/>
|
||||
<replacestring from="poi-main" to="poi"/>
|
||||
<replacestring from="poi-poi" to="poi"/>
|
||||
</filterchain>
|
||||
</loadresource>
|
||||
|
||||
|
@ -1080,7 +1081,7 @@ under the License.
|
|||
<zipfileset dir="${basedir}/@{module}/src/main/java9"
|
||||
prefix="META-INF/versions/9"
|
||||
excludes="*.java"/>
|
||||
<metainf dir="legal/"/>
|
||||
<metainf dir="legal/" excludes="HEADER"/>
|
||||
<manifest>
|
||||
<attribute name="Multi-Release" value="true"/>
|
||||
<attribute name="Automatic-Module-Name" value="org.apache.poi.@{module}"/>
|
||||
|
@ -1139,7 +1140,7 @@ under the License.
|
|||
<resources/>
|
||||
<test-resources/>
|
||||
<zipfileset dir="${basedir}/@{module}/src/test/java9" prefix="META-INF/versions/9" excludes="*.java"/>
|
||||
<metainf dir="legal/"/>
|
||||
<metainf dir="legal/" excludes="HEADER"/>
|
||||
<manifest>
|
||||
<attribute name="Multi-Release" value="true"/>
|
||||
<attribute name="Automatic-Module-Name" value="org.apache.poi.@{module}"/>
|
||||
|
@ -1157,7 +1158,7 @@ under the License.
|
|||
<!-- create the sources jar -->
|
||||
<jar destfile="build/dist/maven/${maven-name}/${maven-name}-@{version}-sources.jar">
|
||||
<fileset dir="@{java}"/>
|
||||
<metainf dir="legal/"/>
|
||||
<metainf dir="legal/" excludes="HEADER"/>
|
||||
<manifest>
|
||||
<attribute name="Built-By" value="${user.name}"/>
|
||||
<attribute name="Specification-Title" value="Apache POI"/>
|
||||
|
@ -1173,12 +1174,13 @@ under the License.
|
|||
</macrodef>
|
||||
|
||||
<target name="compile-main" depends="init, compile-version">
|
||||
<compile-jar module="main"
|
||||
<compile-jar module="poi"
|
||||
java="${main.src}" classes="${main.output.dir}"
|
||||
test="${main.src.test}" test-classes="${main.output.test.dir}">
|
||||
<lib>
|
||||
<pathelement path="lib/main"/>
|
||||
<pathelement path="lib/main-tests"/>
|
||||
<pathelement path="lib/excelant"/>
|
||||
</lib>
|
||||
<resources>
|
||||
<fileset dir="${main.resources.main}"/>
|
||||
|
@ -1190,7 +1192,7 @@ under the License.
|
|||
</target>
|
||||
|
||||
<target name="compile-scratchpad" depends="compile-main">
|
||||
<compile-jar module="scratchpad"
|
||||
<compile-jar module="poi-scratchpad"
|
||||
java="${scratchpad.src}" classes="${scratchpad.output.dir}"
|
||||
test="${scratchpad.src.test}" test-classes="${scratchpad.output.test.dir}">
|
||||
<lib>
|
||||
|
@ -1208,7 +1210,7 @@ under the License.
|
|||
</target>
|
||||
|
||||
<target name="compile-examples" depends="compile-main,compile-scratchpad,compile-ooxml">
|
||||
<compile-jar module="examples"
|
||||
<compile-jar module="poi-examples"
|
||||
java="${examples.src}" classes="${examples.output.dir}">
|
||||
<lib>
|
||||
<pathelement path="build/dist/maven/poi-ooxml-full"/>
|
||||
|
@ -1222,7 +1224,7 @@ under the License.
|
|||
</target>
|
||||
|
||||
<target name="compile-ooxml" depends="compile-main,compile-scratchpad,compile-ooxml-xsds">
|
||||
<compile-jar module="ooxml"
|
||||
<compile-jar module="poi-ooxml"
|
||||
java="${ooxml.src}" classes="${ooxml.output.dir}"
|
||||
test="${ooxml.src.test}" test-classes="${ooxml.output.test.dir}">
|
||||
<lib>
|
||||
|
@ -1242,9 +1244,21 @@ under the License.
|
|||
</compile-jar>
|
||||
|
||||
<!-- create ooxml-lite-agent jar -->
|
||||
<mkdir dir="${ooxml.lite.output.dir}"/>
|
||||
<javac release="8"
|
||||
srcdir="${basedir}/poi-ooxml-lite-agent/src/main/java"
|
||||
destdir="${ooxml.lite.output.dir}"
|
||||
includeantruntime="false"
|
||||
fork="true">
|
||||
<classpath>
|
||||
<fileset dir="${basedir}/lib/main-tests" includes="*.jar"/>
|
||||
<fileset dir="${basedir}/lib/ooxml" includes="*.jar"/>
|
||||
</classpath>
|
||||
</javac>
|
||||
|
||||
<javac release="9"
|
||||
srcdir="${basedir}/ooxml/src/ooxml-lite-agent/java9"
|
||||
destdir="${basedir}/ooxml/src/ooxml-lite-agent/java9"
|
||||
srcdir="${basedir}/poi-ooxml-lite-agent/src/main/java9"
|
||||
destdir="${basedir}/poi-ooxml-lite-agent/src/main/java9"
|
||||
includeantruntime="false"
|
||||
fork="true"
|
||||
modulepath="${basedir}/lib/main-tests"
|
||||
|
@ -1253,8 +1267,8 @@ under the License.
|
|||
</javac>
|
||||
|
||||
<jar destfile="${ooxml.lite.agent}">
|
||||
<fileset dir="${ooxml.output.test.dir}" includes="org/apache/poi/ooxml/lite/**"/>
|
||||
<zipfileset dir="${basedir}/ooxml/src/ooxml-lite-agent/java9" prefix="META-INF/versions/9" excludes="*.java"/>
|
||||
<fileset dir="${ooxml.lite.output.dir}"/>
|
||||
<zipfileset dir="${basedir}/poi-ooxml-lite-agent/src/main/java9" prefix="META-INF/versions/9" excludes="*.java"/>
|
||||
<manifest>
|
||||
<attribute name="Multi-Release" value="true"/>
|
||||
<attribute name="Automatic-Module-Name" value="org.apache.poi.ooxml_lite"/>
|
||||
|
@ -1304,8 +1318,8 @@ under the License.
|
|||
</path>
|
||||
|
||||
|
||||
<mkdir dir="excelant/build/poi-ant-contrib"/>
|
||||
<javac srcdir="excelant/src/poi-ant-contrib/java" destdir="excelant/build/poi-ant-contrib"
|
||||
<mkdir dir="poi-excelant/build/poi-ant-contrib"/>
|
||||
<javac srcdir="poi-excelant/src/poi-ant-contrib/java" destdir="poi-excelant/build/poi-ant-contrib"
|
||||
includeantruntime="true" includes="Junit5Progress.java" classpathref="junit-jars"/>
|
||||
|
||||
|
||||
|
@ -1340,7 +1354,7 @@ under the License.
|
|||
<classpath>
|
||||
<path refid="junit-jars" if:true="${isJava8}"/>
|
||||
<fileset dir="${basedir}" includes="${cp_java}" if:true="${isJava8}"/>
|
||||
<pathelement location="excelant/build/poi-ant-contrib"/>
|
||||
<pathelement location="poi-excelant/build/poi-ant-contrib"/>
|
||||
</classpath>
|
||||
|
||||
<testclasses outputDir="@{outputDir}">
|
||||
|
@ -1414,7 +1428,7 @@ under the License.
|
|||
</target>
|
||||
|
||||
<target name="compile-excelant" depends="compile-main,compile-ooxml">
|
||||
<compile-jar module="excelant"
|
||||
<compile-jar module="poi-excelant"
|
||||
java="${excelant.src}" classes="${excelant.output.dir}"
|
||||
test="${excelant.src.test}" test-classes="${excelant.output.test.dir}">
|
||||
<lib>
|
||||
|
@ -1459,7 +1473,7 @@ under the License.
|
|||
<mkdir dir="${integration.output.test.dir}/META-INF/versions/9"/>
|
||||
|
||||
<javac release="9"
|
||||
srcdir="${basedir}/integrationtest/src/test/java9"
|
||||
srcdir="${basedir}/poi-integration/src/test/java9"
|
||||
destdir="${integration.output.test.dir}/META-INF/versions/9"
|
||||
includeantruntime="false"
|
||||
fork="true"
|
||||
|
@ -1478,20 +1492,20 @@ under the License.
|
|||
</modulepath>
|
||||
</javac>
|
||||
|
||||
<manifest file="integrationtest/build/poi-manifest.mf">
|
||||
<manifest file="poi-integration/build/poi-manifest.mf">
|
||||
<attribute name="Multi-Release" value="true"/>
|
||||
<attribute name="Automatic-Module-Name" value="org.apache.poi.stress"/>
|
||||
</manifest>
|
||||
|
||||
<jar destfile="build/dist/maven/poi-integration/poi-integration-${version.id}.jar"
|
||||
basedir="${integration.output.test.dir}"
|
||||
manifest="integrationtest/build/poi-manifest.mf"/>
|
||||
manifest="poi-integration/build/poi-manifest.mf"/>
|
||||
</target>
|
||||
|
||||
<target name="-version-java-check">
|
||||
<!-- recompile Version.java from the template whenever source or the version in build.xml changes -->
|
||||
<uptodate property="version.java.notRequired" targetfile="${main.output.dir}/org/apache/poi/Version.class">
|
||||
<srcfiles file="main/src/main/version/Version.java.template"/>
|
||||
<srcfiles file="poi/src/main/version/Version.java.template"/>
|
||||
<srcfiles file="build.xml"/>
|
||||
</uptodate>
|
||||
</target>
|
||||
|
@ -1821,7 +1835,7 @@ under the License.
|
|||
|
||||
<local name="full.schema"/>
|
||||
<loadresource property="full.schema">
|
||||
<file file="${basedir}/ooxml-schema/src/ooxml-full/java9/module-info.java"/>
|
||||
<file file="${basedir}/poi-ooxml-full/src/main/java9/module-info.java"/>
|
||||
<filterchain>
|
||||
<linecontains negate="true" matchany="true">
|
||||
<contains value="exports"/>
|
||||
|
@ -1830,11 +1844,11 @@ under the License.
|
|||
</filterchain>
|
||||
</loadresource>
|
||||
|
||||
<echo output="${basedir}/ooxml-schema/src/ooxml-lite/java9/module-info.java">${full.schema}${lite.exports}}</echo>
|
||||
<echo output="${basedir}/poi-ooxml-lite/src/main/java9/module-info.java">${full.schema}${lite.exports}}</echo>
|
||||
|
||||
<javac release="9"
|
||||
srcdir="${basedir}/ooxml-schema/src/ooxml-lite/java9"
|
||||
destdir="${basedir}/ooxml-schema/src/ooxml-lite/java9"
|
||||
srcdir="${basedir}/poi-ooxml-lite/src/main/java9"
|
||||
destdir="${basedir}/poi-ooxml-lite/src/main/java9"
|
||||
includeantruntime="false"
|
||||
fork="true"
|
||||
unless:true="${isJava8}">
|
||||
|
@ -1869,7 +1883,7 @@ under the License.
|
|||
<mkdir dir="build/dist/maven/poi-ooxml-lite"/>
|
||||
|
||||
<jar destfile="${ooxml.lite.jar}" duplicate="fail">
|
||||
<zipfileset dir="${basedir}/ooxml-schema/src/ooxml-lite/java9" prefix="META-INF/versions/9" excludes="*.java"/>
|
||||
<zipfileset dir="${basedir}/poi-ooxml-lite/src/main/java9" prefix="META-INF/versions/9" excludes="*.java"/>
|
||||
<zipfileset src="${ooxml.xsds.jar}">
|
||||
<patternset>
|
||||
<includesfile name="${ooxml.lite.report}.clazz1"/>
|
||||
|
@ -2185,7 +2199,7 @@ under the License.
|
|||
<jar destfile="build/dist/maven/${destfile}.jar">
|
||||
<fileset dir="@{src}" unless:true="${isjar}"/>
|
||||
<zipfileset src="@{src}" if:true="${isjar}"/>
|
||||
<metainf dir="legal/"/>
|
||||
<metainf dir="legal/" excludes="HEADER"/>
|
||||
<manifest>
|
||||
<attribute name="Multi-Release" value="true"/>
|
||||
<attribute name="Automatic-Module-Name" value="org.apache.poi.@{module}"/>
|
||||
|
@ -2261,7 +2275,7 @@ under the License.
|
|||
<jar destfile="${dist.dir}/maven/@{dest}/@{dest}-${version.id}-javadoc.jar"
|
||||
manifest="build/poi-manifest.mf">
|
||||
<fileset dir="${build.maven.javadocs}"/>
|
||||
<metainf dir="legal/"/>
|
||||
<metainf dir="legal/" excludes="HEADER"/>
|
||||
</jar>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
@ -2280,7 +2294,7 @@ under the License.
|
|||
<property name="zipdir" value="${jar.name}-${version.id}"/>
|
||||
|
||||
<mappedresources id="legal-files" cache="true">
|
||||
<fileset dir="legal"/>
|
||||
<fileset dir="legal" excludes="HEADER"/>
|
||||
<globmapper from="*" to="${zipdir}/*"/>
|
||||
</mappedresources>
|
||||
|
||||
|
@ -2340,7 +2354,7 @@ under the License.
|
|||
scripts/**,
|
||||
TEST*,
|
||||
*.ipr,
|
||||
*.iml,
|
||||
**/*.iml,
|
||||
*.iws,
|
||||
*.lnk,
|
||||
*.rdf,
|
||||
|
@ -2437,24 +2451,24 @@ under the License.
|
|||
uri="antlib:org.apache.rat.anttasks"
|
||||
classpath="${rat.jar}" />
|
||||
<rat:report xmlns:rat="antlib:org.apache.rat.anttasks" reportFile="${rat.report}">
|
||||
<fileset dir="examples/src" excludes="main/java/org/apache/poi/**/*-chart-data.txt"/>
|
||||
<fileset dir="excelant/src"/>
|
||||
<fileset dir="integrationtest/src"/>
|
||||
<fileset dir="main/src">
|
||||
<fileset dir="poi-examples/src" excludes="main/java/org/apache/poi/**/*-chart-data.txt"/>
|
||||
<fileset dir="poi-excelant/src"/>
|
||||
<fileset dir="poi-integration/src"/>
|
||||
<fileset dir="poi/src">
|
||||
<exclude name="main/resources/org/apache/poi/sl/draw/geom/presetShapeDefinitions.xml" />
|
||||
</fileset>
|
||||
<fileset dir="ooxml/src">
|
||||
<fileset dir="poi-ooxml/src">
|
||||
<exclude name="main/resources/org/apache/poi/xslf/usermodel/notesMaster.xml" />
|
||||
<exclude name="main/resources/org/apache/poi/xslf/usermodel/empty.pptx" />
|
||||
<exclude name="main/resources/org/apache/poi/xssf/usermodel/presetTableStyles.xml" />
|
||||
</fileset>
|
||||
<fileset dir="ooxml-schema/src">
|
||||
<fileset dir="poi-ooxml-full/src">
|
||||
<exclude name="main/xmlschema/org/apache/poi/xdgf/visio.xsd" />
|
||||
<exclude name="main/xmlschema/org/apache/poi/schemas/XAdES*.xsd" />
|
||||
<exclude name="main/xmlschema/org/apache/poi/schemas/xmldsig-core-schema.xsd" />
|
||||
<exclude name="main/xmlschema/org/apache/poi/schemas/*.zip" />
|
||||
</fileset>
|
||||
<fileset dir="scratchpad/src"/>
|
||||
<fileset dir="poi-scratchpad/src"/>
|
||||
|
||||
<fileset dir="src">
|
||||
<exclude name="documentation/*.txt" />
|
||||
|
@ -2690,11 +2704,11 @@ under the License.
|
|||
<auxClasspath path="${pdf.pdfbox.jar}"/>
|
||||
<auxClasspath path="${pdf.fontbox.jar}"/>
|
||||
<auxClasspath path="${pdf.graphics2d.jar}"/>
|
||||
<sourcePath path="main/src/main/java" />
|
||||
<sourcePath path="excelant/src/main/java" />
|
||||
<sourcePath path="examples/src/main/java" />
|
||||
<sourcePath path="ooxml/src/main/java" />
|
||||
<sourcePath path="scratchpad/src/main/java" />
|
||||
<sourcePath path="poi/src/main/java" />
|
||||
<sourcePath path="poi-excelant/src/main/java" />
|
||||
<sourcePath path="poi-examples/src/main/java" />
|
||||
<sourcePath path="poi-ooxml/src/main/java" />
|
||||
<sourcePath path="poi-scratchpad/src/main/java" />
|
||||
</spotbugs>
|
||||
|
||||
<!-- instead of calling findbugs again, we simply transform the xml -->
|
||||
|
@ -2920,7 +2934,7 @@ under the License.
|
|||
<format property="tstamp_next" pattern="yyyy-MM" offset="3" unit="month"/>
|
||||
</tstamp>
|
||||
|
||||
<taskdef name="NextRelease" classname="NextRelease" classpath="excelant/build/poi-ant-contrib"/>
|
||||
<taskdef name="NextRelease" classname="NextRelease" classpath="poi-excelant/build/poi-ant-contrib"/>
|
||||
<NextRelease property="rel_next"/>
|
||||
|
||||
<antcall target="-update-build.xml">
|
||||
|
@ -3044,7 +3058,7 @@ under the License.
|
|||
</tstamp>
|
||||
|
||||
|
||||
<taskdef name="NextRelease" classname="NextRelease" classpath="excelant/build/poi-ant-contrib"/>
|
||||
<taskdef name="NextRelease" classname="NextRelease" classpath="poi-excelant/build/poi-ant-contrib"/>
|
||||
<NextRelease property="rel_prev" increment="-1"/>
|
||||
|
||||
<!-- we don't simply generate a new iso file date with tstamp,
|
||||
|
@ -3057,8 +3071,8 @@ under the License.
|
|||
</loadresource>
|
||||
|
||||
<replaceregexp file="build.gradle" match="( +version += +)'[^']+'" replace="\1'${version.id}'"/>
|
||||
<replaceregexp file="examples/src/main/groovy/build.gradle" match="( *compile 'org.apache.poi:[^0-9]+)([0-9.]+)'" replace="\1${rel_prev}'" byline="true"/>
|
||||
<replaceregexp file="examples/src/main/scala/build.sbt" match='( *org.apache.poi.* ")[0-9.]+(.+)' replace="\1${rel_prev}\2" byline="true"/>
|
||||
<replaceregexp file="poi-examples/src/main/groovy/build.gradle" match="( *compile 'org.apache.poi:[^0-9]+)([0-9.]+)'" replace="\1${rel_prev}'" byline="true"/>
|
||||
<replaceregexp file="poi-examples/src/main/scala/build.sbt" match='( *org.apache.poi.* ")[0-9.]+(.+)' replace="\1${rel_prev}\2" byline="true"/>
|
||||
<replaceregexp file="osgi/pom.xml" match="version>${rel_prev}[^<]+" replace="version>${version.id}"/>
|
||||
<replaceregexp file="doap_POI.rdf" match="<release>" replace="<release> <Version> <name>Apache POI ${rel_prev}</name> <created>${file_date_iso}</created> <revision>${rel_prev}</revision> </Version> </release> <release>"/>
|
||||
|
||||
|
@ -3146,7 +3160,7 @@ under the License.
|
|||
</filterchain>
|
||||
</loadfile>
|
||||
|
||||
<taskdef name="bytes2mega" classname="Bytes2Mega" classpath="excelant/build/poi-ant-contrib"/>
|
||||
<taskdef name="bytes2mega" classname="Bytes2Mega" classpath="poi-excelant/build/poi-ant-contrib"/>
|
||||
<local name="fileSizeMb"/>
|
||||
<bytes2mega property="fileSizeMb" bytes="${fileSize}"/>
|
||||
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
dependencies {
|
||||
implementation project(':ooxml')
|
||||
implementation project(':scratchpad')
|
||||
|
||||
implementation "org.apache.logging.log4j:log4j-core:${log4jVersion}"
|
||||
|
||||
testImplementation project(path: ':ooxml', configuration: 'tests')
|
||||
testImplementation project(path: ':main', configuration: 'tests')
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
org.gradle.jvmargs=-Xmx4096m
|
|
@ -1,37 +0,0 @@
|
|||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
dependencies {
|
||||
testImplementation 'org.apache.ant:ant:1.10.9'
|
||||
|
||||
testImplementation project(':ooxml')
|
||||
testImplementation project(':scratchpad')
|
||||
testImplementation project(':examples')
|
||||
|
||||
testImplementation files(this.project(':ooxml').sourceSets.test.runtimeClasspath)
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes 'Automatic-Module-Name': 'org.apache.poi.integrationtest'
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
// exclude these from the normal test-run
|
||||
exclude '**/*FileHandler.class'
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
/* ====================================================================
|
||||
|
||||
====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
|
@ -13,18 +14,4 @@
|
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
dependencies {
|
||||
api 'org.apache.ant:ant:1.10.9'
|
||||
|
||||
api project(':ooxml')
|
||||
|
||||
testImplementation project(path: ':main', configuration: 'tests')
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes 'Automatic-Module-Name': 'org.apache.poi.excelant'
|
||||
}
|
||||
}
|
||||
====================================================================
|
|
@ -1,48 +0,0 @@
|
|||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
dependencies {
|
||||
implementation "commons-codec:commons-codec:${commonsCodecVersion}"
|
||||
implementation 'org.apache.commons:commons-collections4:4.4'
|
||||
implementation "org.apache.commons:commons-math3:${commonsMathVersion}"
|
||||
implementation "org.apache.logging.log4j:log4j-api:${log4jVersion}"
|
||||
implementation 'javax.activation:activation:1.1.1'
|
||||
api 'com.zaxxer:SparseBitSet:1.2'
|
||||
|
||||
testImplementation 'org.reflections:reflections:0.9.12'
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes 'Automatic-Module-Name': 'org.apache.poi.main'
|
||||
}
|
||||
}
|
||||
|
||||
// Create a separate jar for test-code to depend on it in other projects
|
||||
// See http://stackoverflow.com/questions/5144325/gradle-test-dependency
|
||||
task testJar(type: Jar, dependsOn: testClasses) {
|
||||
baseName = "test-${project.archivesBaseName}"
|
||||
from sourceSets.test.output
|
||||
}
|
||||
|
||||
configurations {
|
||||
tests
|
||||
}
|
||||
|
||||
artifacts {
|
||||
tests testJar
|
||||
}
|
Binary file not shown.
|
@ -1,80 +0,0 @@
|
|||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
package org.apache.poi.hssf.dev;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
/**
|
||||
* Base class for integration-style tests which iterate over all test-files
|
||||
* and execute the same action to find out if any change breaks these applications.
|
||||
*/
|
||||
public abstract class BaseTestIteratingXLS {
|
||||
protected static final Map<String,Class<? extends Throwable>> EXCLUDED = new HashMap<>();
|
||||
|
||||
private static Stream<Arguments> files() {
|
||||
String dataDirName = System.getProperty(POIDataSamples.TEST_PROPERTY);
|
||||
if(dataDirName == null) {
|
||||
dataDirName = "test-data";
|
||||
}
|
||||
|
||||
List<Arguments> files = new ArrayList<>();
|
||||
findFile(files, dataDirName + "/spreadsheet");
|
||||
findFile(files, dataDirName + "/hpsf");
|
||||
|
||||
return files.stream();
|
||||
}
|
||||
|
||||
private static void findFile(List<Arguments> list, String dir) {
|
||||
String[] files = new File(dir).list((arg0, arg1) -> arg1.toLowerCase(Locale.ROOT).endsWith(".xls"));
|
||||
assertNotNull(files, "Did not find any xls files in directory " + dir);
|
||||
|
||||
for(String file : files) {
|
||||
list.add(Arguments.of(new File(dir, file)));
|
||||
}
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@MethodSource("files")
|
||||
void testMain(File file) throws Exception {
|
||||
String fileName = file.getName();
|
||||
|
||||
Class<? extends Throwable> t = EXCLUDED.get(fileName);
|
||||
|
||||
if (t == null) {
|
||||
runOneFile(file);
|
||||
} else {
|
||||
assertThrows(t, () -> runOneFile(file));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract void runOneFile(File pFile) throws Exception;
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
package org.apache.poi.hssf.dev;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.apache.poi.EncryptedDocumentException;
|
||||
import org.apache.poi.hssf.OldExcelFormatException;
|
||||
import org.apache.poi.hssf.record.RecordInputStream;
|
||||
import org.apache.poi.util.NullOutputStream;
|
||||
import org.apache.poi.util.RecordFormatException;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
|
||||
class TestBiffDrawingToXml extends BaseTestIteratingXLS {
|
||||
@BeforeAll
|
||||
public static void setup() {
|
||||
EXCLUDED.clear();
|
||||
EXCLUDED.put("35897-type4.xls", EncryptedDocumentException.class); // unsupported crypto api header
|
||||
EXCLUDED.put("51832.xls", EncryptedDocumentException.class);
|
||||
EXCLUDED.put("xor-encryption-abc.xls", EncryptedDocumentException.class);
|
||||
EXCLUDED.put("password.xls", EncryptedDocumentException.class);
|
||||
EXCLUDED.put("46904.xls", OldExcelFormatException.class);
|
||||
EXCLUDED.put("59074.xls", OldExcelFormatException.class);
|
||||
EXCLUDED.put("testEXCEL_2.xls", OldExcelFormatException.class); // Biff 2 / Excel 2, pre-OLE2
|
||||
EXCLUDED.put("testEXCEL_3.xls", OldExcelFormatException.class); // Biff 3 / Excel 3, pre-OLE2
|
||||
EXCLUDED.put("testEXCEL_4.xls", OldExcelFormatException.class); // Biff 4 / Excel 4, pre-OLE2
|
||||
EXCLUDED.put("testEXCEL_5.xls", OldExcelFormatException.class); // Biff 5 / Excel 5
|
||||
EXCLUDED.put("60284.xls", OldExcelFormatException.class); // Biff 5 / Excel 5
|
||||
EXCLUDED.put("testEXCEL_95.xls", OldExcelFormatException.class); // Biff 5 / Excel 95
|
||||
EXCLUDED.put("43493.xls", RecordInputStream.LeftoverDataException.class); // HSSFWorkbook cannot open it as well
|
||||
EXCLUDED.put("44958_1.xls", RecordInputStream.LeftoverDataException.class);
|
||||
EXCLUDED.put("61300.xls", RecordFormatException.class);
|
||||
EXCLUDED.put("64130.xls", OldExcelFormatException.class); // BIFF 5
|
||||
}
|
||||
|
||||
@Override
|
||||
void runOneFile(File pFile) throws Exception {
|
||||
try (InputStream wb = new FileInputStream(pFile)) {
|
||||
BiffDrawingToXml.writeToFile(new NullOutputStream(), wb, false, new String[0]);
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
|
@ -1,68 +0,0 @@
|
|||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
apply plugin: 'java'
|
||||
|
||||
configurations {
|
||||
antdep
|
||||
}
|
||||
|
||||
dependencies {
|
||||
antdep 'org.apache.ant:ant:1.10.9'
|
||||
}
|
||||
|
||||
/*task downloadJarsToLibs() {
|
||||
def f = new File("$projectDir/../lib/ooxml/xmlbeans-5.0.0.jar")
|
||||
if (!f.exists()) {
|
||||
println 'writing file ' + f.getAbsolutePath()
|
||||
f.getParentFile().mkdirs()
|
||||
new URL('https://ci-builds.apache.org/job/POI/job/POI-XMLBeans-DSL-1.8/lastSuccessfulBuild/artifact/build/xmlbeans-5.0.0.jar').withInputStream{ i -> f.withOutputStream{ it << i }}
|
||||
}
|
||||
}*/
|
||||
|
||||
// we need to ensure that the custom ant tasks are compiled before we import the build.xml file
|
||||
|
||||
task compileContrib (type: JavaCompile) {
|
||||
source = "../excelant/src/poi-ant-contrib/java"
|
||||
include '*.java'
|
||||
exclude 'Junit5Progress.java'
|
||||
classpath = configurations.antdep
|
||||
destinationDirectory = file('../excelant/build/poi-ant-contrib')
|
||||
}
|
||||
|
||||
|
||||
// for now import the ant-task for building the jars from build.xml
|
||||
// we need to rename the tasks as e.g. task "jar" conflicts with :ooxml:jar
|
||||
|
||||
ant.importBuild('../build.xml') { antTargetName ->
|
||||
'ant-' + antTargetName
|
||||
}
|
||||
|
||||
compileJava.dependsOn 'compileContrib'
|
||||
compileJava.dependsOn 'ant-compile-ooxml-xsds'
|
||||
|
||||
//compileJava.dependsOn 'downloadJarsToLibs'
|
||||
|
||||
dependencies {
|
||||
api "org.apache.xmlbeans:xmlbeans:${xmlbeansVersion}"
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes 'Automatic-Module-Name': 'org.apache.poi.ooxml.schemas'
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
|
@ -1,66 +0,0 @@
|
|||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
dependencies {
|
||||
api project(":ooxml-schema")
|
||||
implementation 'org.apache.commons:commons-collections4:4.4'
|
||||
api "org.apache.commons:commons-compress:${commonsCompressVersion}"
|
||||
api 'org.apache.santuario:xmlsec:2.2.1'
|
||||
api "org.bouncycastle:bcpkix-jdk15on:${bouncyCastleVersion}"
|
||||
api 'com.github.virtuald:curvesapi:1.06'
|
||||
implementation "org.apache.logging.log4j:log4j-api:${log4jVersion}"
|
||||
|
||||
api "org.apache.xmlgraphics:batik-svggen:${batikVersion}"
|
||||
implementation("org.apache.xmlgraphics:batik-bridge:${batikVersion}") {
|
||||
exclude group: 'org.apache.xmlgraphics', module: 'batik-script'
|
||||
}
|
||||
implementation "org.apache.xmlgraphics:batik-codec:${batikVersion}"
|
||||
|
||||
api 'de.rototor.pdfbox:graphics2d:0.30'
|
||||
|
||||
api project(':main')
|
||||
api files("../build/dist/maven/poi-ooxml-full/poi-ooxml-full-${version}.jar")
|
||||
|
||||
testRuntime project(':scratchpad')
|
||||
testImplementation 'org.xmlunit:xmlunit-core:2.8.0'
|
||||
testImplementation 'org.reflections:reflections:0.9.12'
|
||||
testImplementation project(path: ':main', configuration: 'tests')
|
||||
testImplementation 'org.openjdk.jmh:jmh-core:1.26'
|
||||
testImplementation 'org.openjdk.jmh:jmh-generator-annprocess:1.26'
|
||||
testImplementation 'com.google.guava:guava:30.0-jre'
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes 'Automatic-Module-Name': 'org.apache.poi.ooxml'
|
||||
}
|
||||
}
|
||||
|
||||
// Create a separate jar for test-code to depend on it in other projects
|
||||
// See http://stackoverflow.com/questions/5144325/gradle-test-dependency
|
||||
task testJar(type: Jar, dependsOn: testClasses) {
|
||||
baseName = "test-${project.archivesBaseName}"
|
||||
from sourceSets.test.output
|
||||
}
|
||||
|
||||
configurations {
|
||||
tests
|
||||
}
|
||||
|
||||
artifacts {
|
||||
tests testJar
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,99 @@
|
|||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
import java.util.regex.Pattern
|
||||
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'maven-publish'
|
||||
id 'java-library'
|
||||
}
|
||||
|
||||
final String JAVA9_SRC = 'src/main/java9'
|
||||
final String JAVA9_OUT = "${buildDir}/classes/java9/main/"
|
||||
final String VERSIONS9 = 'META-INF/versions/9'
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
|
||||
output.dir(JAVA9_OUT, builtBy: 'cacheJava9')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dependencies {
|
||||
api project(':poi-ooxml')
|
||||
api project(':poi-scratchpad')
|
||||
implementation project(path: ':poi-ooxml', configuration: 'archives')
|
||||
implementation project(path: ':poi-ooxml-full', configuration: 'archives')
|
||||
implementation project(path: ':poi-scratchpad', configuration: 'archives')
|
||||
|
||||
implementation "org.apache.logging.log4j:log4j-core:${log4jVersion}"
|
||||
|
||||
testImplementation project(path: ':ooxml', configuration: 'tests')
|
||||
testImplementation project(path: ':main', configuration: 'tests')
|
||||
}
|
||||
|
||||
final String MODULE_NAME = 'org.apache.poi.examples'
|
||||
final Pattern MODULE_REGEX = ~'\\.jar$'
|
||||
final List MAIN_MODULE_PATH = sourceSets.main.runtimeClasspath.findAll{ it.path =~ MODULE_REGEX }.collect{ it.parent }.unique()
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
withSourcesJar()
|
||||
}
|
||||
|
||||
task compileJava9(type: JavaCompile) {
|
||||
dependsOn 'compileJava', ':poi-ooxml:jar', ':poi-scratchpad:jar'
|
||||
|
||||
sourceCompatibility = 9
|
||||
targetCompatibility = 9
|
||||
destinationDirectory = file(JAVA9_OUT + VERSIONS9)
|
||||
source = file(JAVA9_SRC)
|
||||
classpath = files()
|
||||
options.compilerArgs = [
|
||||
'--patch-module', "${MODULE_NAME}=${sourceSets.main.output.classesDirs.asPath}",
|
||||
'--module-path', files(MAIN_MODULE_PATH).asPath
|
||||
]
|
||||
}
|
||||
|
||||
task cacheJava9(type: Copy) {
|
||||
dependsOn 'compileJava9'
|
||||
|
||||
from(file(JAVA9_OUT + VERSIONS9))
|
||||
into(JAVA9_SRC)
|
||||
}
|
||||
|
||||
jar {
|
||||
destinationDirectory = file("../build/dist/maven/${project.archivesBaseName}")
|
||||
|
||||
if (JavaVersion.current() == JavaVersion.VERSION_1_8) {
|
||||
into('META-INF/versions/9') {
|
||||
from JAVA9_SRC include '*.class'
|
||||
}
|
||||
}
|
||||
|
||||
manifest {
|
||||
attributes('Automatic-Module-Name': MODULE_NAME, 'Multi-Release': 'true')
|
||||
}
|
||||
}
|
||||
|
||||
sourcesJar {
|
||||
destinationDirectory = file("../build/dist/maven/${project.archivesBaseName}")
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue