You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2020/05/05 13:36:30 UTC
svn commit: r1877398 [1/3] - in /poi: site/src/documentation/content/xdocs/
trunk/ trunk/compile-lib/ trunk/lib/ trunk/lib/main/ trunk/lib/ooxml/
trunk/ooxml-lib/ trunk/src/java/org/apache/poi/sl/draw/
trunk/src/java/org/apache/poi/sl/draw/binding/ tru...
Author: kiwiwings
Date: Tue May 5 13:36:30 2020
New Revision: 1877398
URL: http://svn.apache.org/viewvc?rev=1877398&view=rev
Log:
#64411 - Provide JigSaw modules
Added:
poi/trunk/lib/main/
poi/trunk/lib/ooxml/
poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustHandle.java (with props)
poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustPoint.java (with props)
poi/trunk/src/java/org/apache/poi/sl/draw/geom/ConnectionSite.java (with props)
poi/trunk/src/java/org/apache/poi/sl/draw/geom/PolarAdjustHandle.java (with props)
poi/trunk/src/java/org/apache/poi/sl/draw/geom/PresetParser.java (with props)
poi/trunk/src/java/org/apache/poi/sl/draw/geom/XYAdjustHandle.java (with props)
poi/trunk/src/multimodule/
poi/trunk/src/multimodule/ooxml-schemas/
poi/trunk/src/multimodule/ooxml-schemas/java9/
poi/trunk/src/multimodule/ooxml-schemas/java9/module-info.class (with props)
poi/trunk/src/multimodule/ooxml-schemas/java9/module-info.java (with props)
poi/trunk/src/multimodule/ooxml-security/
poi/trunk/src/multimodule/ooxml-security/java9/
poi/trunk/src/multimodule/ooxml-security/java9/module-info.class (with props)
poi/trunk/src/multimodule/ooxml-security/java9/module-info.java (with props)
poi/trunk/src/multimodule/poi/
poi/trunk/src/multimodule/poi/java9/
poi/trunk/src/multimodule/poi/java9/module-info.java (with props)
Removed:
poi/trunk/compile-lib/
poi/trunk/ooxml-lib/
poi/trunk/src/java/org/apache/poi/sl/draw/binding/
Modified:
poi/site/src/documentation/content/xdocs/changes.xml
poi/trunk/build.xml
poi/trunk/lib/ (props changed)
poi/trunk/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustValue.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/ArcToCommand.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/ClosePathCommand.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/CurveToCommand.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/CustomGeometry.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/Guide.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/LineToCommand.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/MoveToCommand.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/Path.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/PresetGeometries.java
poi/trunk/src/java/org/apache/poi/sl/draw/geom/QuadToCommand.java
poi/trunk/src/java/org/apache/poi/sl/usermodel/RectAlign.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/geom/TestFormulaParser.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSimpleShape.java
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFAutoShape.java
poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSimpleShape.java
poi/trunk/src/testcases/org/apache/poi/sl/draw/geom/TestPresetGeometries.java
Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/changes.xml (original)
+++ poi/site/src/documentation/content/xdocs/changes.xml Tue May 5 13:36:30 2020
@@ -70,12 +70,14 @@
</p>
</section>
- <release version="4.1.3" date="2020-05-??">
+ <release version="5.0.0" date="2020-06-??">
<summary>
<summary-item>Upgrade to XMLSec 2.1.5</summary-item>
<summary-item>updated dependencies to Bouncycastle 1.65, Commons-Codec 1.14, Commons-Compress 1.20</summary-item>
<summary-item>XWPF - improvements in table and paragraph</summary-item>
<summary-item>XSLF - improvements for paragraph</summary-item>
+ <summary-item>provide JigSaw modules</summary-item>
+ <summary-item>removed dependencies to jaxb</summary-item>
</summary>
<actions>
<action type="add" context="SS">SS method to check if a Named Range is hidden or not</action>
@@ -95,6 +97,7 @@
<action type="fix" fixes-bug="57843" context="HWPF">RuntimeException on extracting text from Word 97-2004 Document</action>
<action type="fix" fixes-bug="55505" context="HSSF">CountryRecord not found</action>
<action type="fix" fixes-bug="64387" context="POIFS">Big POIFS stream result in OOM</action>
+ <action type="add" fixes-bug="64411" context="POI_Overall">Provide JigSaw modules</action>
</actions>
</release>
Modified: poi/trunk/build.xml
URL: http://svn.apache.org/viewvc/poi/trunk/build.xml?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/trunk/build.xml (original)
+++ poi/trunk/build.xml Tue May 5 13:36:30 2020
@@ -50,10 +50,11 @@ under the License.
<property name="repository.m2" value="https://repo1.maven.org"/>
<property name="repository.pentaho" value="https://nexus.pentaho.org/"/>
- <property name="main.lib" location="lib"/>
- <property name="ooxml.lib" location="ooxml-lib"/>
- <property name="ooxml.test.lib" location="ooxml-testlib"/>
- <property name="compile.lib" location="compile-lib"/>
+ <property name="main.lib" location="${basedir}/lib/main"/>
+ <property name="ooxml.lib" location="${basedir}/lib/ooxml"/>
+ <property name="ooxml-tests.lib" location="${basedir}/lib/ooxml-tests"/>
+ <property name="util.lib" location="${basedir}/lib/util"/>
+
<!-- compiler options options -->
<property name="jdk.version.source" value="1.8" description="JDK version of source code"/>
@@ -64,6 +65,10 @@ under the License.
<contains string="${java.vendor}" substring="IBM" casesensitive="false"/>
</condition>
+ <condition property="isJava8">
+ <equals arg1="${ant.java.version}" arg2="1.8"/>
+ </condition>
+
<!-- add addOpens parameter for Java 9 and higher -->
<condition property="addOpens">
<not><matches pattern="^1\..*" string="${java.version}"/></not>
@@ -168,137 +173,99 @@ under the License.
<property name="excelant.output.test.dir" location="build/excelant-test-classes"/>
<property name="excelant.testokfile" location="build/excelant-testokfile.txt"/>
+
+ <scriptdef name="dependency" language="javascript" description="define properties for library dependency">
+ <attribute name="prefix"/>
+ <attribute name="artifact"/>
+ <attribute name="usage"/>
+ <attribute name="packaging"/>
+ <attribute name="repo"/>
+ <attribute name="snapshot"/>
+ <attribute name="query"/>
+ <![CDATA[
+ var parts = attributes.get("artifact").split(/:/);
+ var packaging = attributes.get("packaging") || "jar";
+ var version = attributes.get("snapshot") || parts[2];
+ var repo = attributes.get("repo");
+ if (repo == null) {
+ repo = project.getProperty("repository.m2")+"/maven2";
+ }
+ var query = attributes.get("query") || "";
+ var jarLoc = project.getProperty("basedir")+"/lib/"+attributes.get("usage")+"/"+
+ parts[1]+"-"+parts[2]+"."+packaging;
+ var urlLoc = repo+"/"+parts[0].replace(/\./g,"/")+"/"+parts[1]+"/"+parts[2]+"/"+
+ parts[1]+"-"+(attributes.get("snapshot") || parts[2])+"."+packaging+query;
+ project.setProperty(attributes.get("prefix")+"."+packaging, jarLoc);
+ project.setProperty(attributes.get("prefix")+".url", urlLoc);
+ ]]>
+ <!-- TODO: add library to a queue for downloading ... -->
+ </scriptdef>
+
+
<!-- jars in the /lib directory, see the fetch-jars target-->
- <property name="main.commons-logging.jar" location="${main.lib}/commons-logging-1.2.jar"/>
- <property name="main.commons-logging.url"
- value="${repository.m2}/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar"/>
- <property name="main.commons-codec.jar" location="${main.lib}/commons-codec-1.14.jar"/>
- <property name="main.commons-codec.url"
- value="${repository.m2}/maven2/commons-codec/commons-codec/1.14/commons-codec-1.14.jar"/>
- <property name="main.log4j.jar" location="${main.lib}/log4j-1.2.17.jar"/>
- <property name="main.log4j.url" value="${repository.m2}/maven2/log4j/log4j/1.2.17/log4j-1.2.17.jar"/>
- <property name="main.junit.jar" location="${main.lib}/junit-4.13.jar"/>
- <property name="main.junit.url" value="${repository.m2}/maven2/junit/junit/4.13/junit-4.13.jar"/>
- <property name="main.jmh.jar" location="${main.lib}/jmh-core-1.19.jar"/>
- <property name="main.jmh.url" value="${repository.m2}/maven2/org/openjdk/jmh/jmh-core/1.19/jmh-core-1.19.jar"/>
- <property name="main.jmhAnnotation.jar" location="${main.lib}/jmh-generator-annprocess-1.19.jar"/>
- <property name="main.jmhAnnotation.url" value="${repository.m2}/maven2/org/openjdk/jmh/jmh-generator-annprocess/1.19/jmh-generator-annprocess-1.19.jar"/>
-
- <property name="main.hamcrest.jar" location="${main.lib}/hamcrest-core-1.3.jar"/>
- <property name="main.hamcrest.url" value="${repository.m2}/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"/>
- <property name="main.xmlunit.jar" location="${main.lib}/xmlunit-core-2.5.1.jar"/>
- <property name="main.xmlunit.url" value="${repository.m2}/maven2/org/xmlunit/xmlunit-core/2.5.1/xmlunit-core-2.5.1.jar"/>
- <property name="main.mockito.jar" location="${main.lib}/mockito-core-3.2.4.jar"/>
- <property name="main.mockito.url" value="${repository.m2}/maven2/org/mockito/mockito-core/3.2.4/mockito-core-3.2.4.jar"/>
- <property name="main.byte-buddy.jar" location="${main.lib}/byte-buddy-1.10.1.jar"/>
- <property name="main.byte-buddy.url" value="${repository.m2}/maven2/net/bytebuddy/byte-buddy/1.10.1/byte-buddy-1.10.1.jar"/>
- <property name="main.byte-buddy-agent.jar" location="${main.lib}/byte-buddy-agent-1.10.1.jar"/>
- <property name="main.byte-buddy-agent.url" value="${repository.m2}/maven2/net/bytebuddy/byte-buddy-agent/1.10.1/byte-buddy-agent-1.10.1.jar"/>
- <property name="main.ant.jar" location="${main.lib}/ant-1.10.1.jar"/>
- <property name="main.objenesis.jar" location="${main.lib}/objenesis-2.6.jar"/>
- <property name="main.objenesis.url" value="${repository.m2}/maven2/org/objenesis/objenesis/2.6/objenesis-2.6.jar"/>
- <property name="main.ant.url" value="${repository.m2}/maven2/org/apache/ant/ant/1.10.1/ant-1.10.1.jar"/>
- <property name="main.antlauncher.jar" location="${main.lib}/ant-launcher-1.10.1.jar"/>
- <property name="main.antlauncher.url" value="${repository.m2}/maven2/org/apache/ant/ant-launcher/1.10.1/ant-launcher-1.10.1.jar"/>
- <property name="main.commons-collections4.jar" location="${main.lib}/commons-collections4-4.4.jar"/>
- <property name="main.commons-collections4.url"
- value="${repository.m2}/maven2/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4.jar"/>
- <property name="main.commons-math3.jar" location="${main.lib}/commons-math3-3.6.1.jar"/>
- <property name="main.commons-math3.url"
- value="${repository.m2}/maven2/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar"/>
- <property name="main.xmlbind.jar" location="${main.lib}/jaxb-api-2.3.1.jar"/>
- <property name="main.xmlbind.url"
- value="${repository.m2}/maven2/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar"/>
- <property name="main.xmlbind-impl.jar" location="${main.lib}/jaxb-impl-2.3.2.jar"/>
- <property name="main.xmlbind-impl.url"
- value="${repository.m2}/maven2/com/sun/xml/bind/jaxb-impl/2.3.2/jaxb-impl-2.3.2.jar"/>
- <property name="main.xmlbind-core.jar" location="${main.lib}/jaxb-core-2.3.0.1.jar"/>
- <property name="main.xmlbind-core.url"
- value="${repository.m2}/maven2/com/sun/xml/bind/jaxb-core/2.3.0.1/jaxb-core-2.3.0.1.jar"/>
- <property name="main.activation.jar" location="${main.lib}/activation-1.1.1.jar"/>
- <property name="main.activation.url"
- value="${repository.m2}/maven2/javax/activation/activation/1.1.1/activation-1.1.1.jar"/>
- <property name="main.com.zaxxer.jar" location="${main.lib}/SparseBitSet-1.2.jar"/>
- <property name="main.com.zaxxer.url"
- value="${repository.m2}/maven2/com/zaxxer/SparseBitSet/1.2/SparseBitSet-1.2.jar"/>
-
- <!-- xml signature libs -->
- <property name="dsig.xmlsec.jar" location="${compile.lib}/xmlsec-2.1.5.jar"/>
- <property name="dsig.xmlsec.url" value="${repository.m2}/maven2/org/apache/santuario/xmlsec/2.1.5/xmlsec-2.1.5.jar"/>
- <property name="dsig.bouncycastle-prov.jar" location="${compile.lib}/bcprov-ext-jdk15on-1.65.jar"/>
- <property name="dsig.bouncycastle-prov.url" value="${repository.m2}/maven2/org/bouncycastle/bcprov-ext-jdk15on/1.65/bcprov-ext-jdk15on-1.65.jar"/>
- <property name="dsig.bouncycastle-pkix.jar" location="${compile.lib}/bcpkix-jdk15on-1.65.jar"/>
- <property name="dsig.bouncycastle-pkix.url" value="${repository.m2}/maven2/org/bouncycastle/bcpkix-jdk15on/1.65/bcpkix-jdk15on-1.65.jar"/>
- <property name="dsig.sl4j-api.jar" location="${compile.lib}/slf4j-api-1.7.30.jar"/>
- <property name="dsig.sl4j-api.url" value="${repository.m2}/maven2/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar"/>
+ <dependency prefix="main.commons-logging" artifact="commons-logging:commons-logging:1.2" usage="main"/>
+ <dependency prefix="main.commons-codec" artifact="commons-codec:commons-codec:1.14" usage="main"/>
+ <dependency prefix="main.log4j" artifact="log4j:log4j:1.2.17" usage="main"/>
+ <dependency prefix="main.commons-collections4" artifact="org.apache.commons:commons-collections4:4.4" usage="main"/>
+ <dependency prefix="main.commons-math3" artifact="org.apache.commons:commons-math3:3.6.1" usage="main"/>
+ <dependency prefix="main.com.zaxxer" artifact="com.zaxxer:SparseBitSet:1.2" usage="main"/>
+
+ <dependency prefix="main.junit" artifact="junit:junit:4.13" usage="main-tests"/>
+ <dependency prefix="main.jmh" artifact="org.openjdk.jmh:jmh-core:1.19" usage="main-tests"/>
+ <dependency prefix="main.jmhAnnotation" artifact="org.openjdk.jmh:jmh-generator-annprocess:1.19" usage="main-tests"/>
+ <dependency prefix="main.hamcrest" artifact="org.hamcrest:hamcrest-core:1.3" usage="main-tests"/>
+ <dependency prefix="main.xmlunit" artifact="org.xmlunit:xmlunit-core:2.5.1" usage="main-tests"/>
+ <dependency prefix="main.mockito" artifact="org.mockito:mockito-core:3.2.4" usage="main-tests"/>
+ <dependency prefix="main.byte-buddy" artifact="net.bytebuddy:byte-buddy:1.10.1" usage="main-tests"/>
+ <dependency prefix="main.byte-buddy-agent" artifact="net.bytebuddy:byte-buddy-agent:1.10.1" usage="main-tests"/>
+ <dependency prefix="main.objenesis" artifact="org.objenesis:objenesis:2.6" usage="main-tests"/>
+
+ <dependency prefix="main.ant" artifact="org.apache.ant:ant:1.10.1" usage="excelant"/>
+ <dependency prefix="main.antlauncher" artifact="org.apache.ant:ant-launcher:1.10.1" usage="excelant"/>
+
+ <!-- xml signature libs - not part of the distribution -->
+ <dependency prefix="dsig.xmlsec" artifact="org.apache.santuario:xmlsec:2.1.5" usage="ooxml-provided"/>
+ <dependency prefix="dsig.bouncycastle-prov" artifact="org.bouncycastle:bcprov-ext-jdk15on:1.65" usage="ooxml-provided"/>
+ <dependency prefix="dsig.bouncycastle-pkix" artifact="org.bouncycastle:bcpkix-jdk15on:1.65" usage="ooxml-provided"/>
+ <dependency prefix="dsig.sl4j-api" artifact="org.slf4j:slf4j-api:1.7.30" usage="ooxml-provided"/>
<!-- svg/batik libs - not part of the distribution -->
- <property name="svg.batik-all.url" value="${repository.m2}/maven2/org/apache/xmlgraphics/batik-all/1.12/batik-all-1.12.jar"/>
- <property name="svg.batik-all.jar" value="${compile.lib}/batik-all-1.12.jar"/>
- <property name="svg.xml-apis-ext.url" value="${repository.m2}/maven2/xml-apis/xml-apis-ext/1.3.04/xml-apis-ext-1.3.04.jar"/>
- <property name="svg.xml-apis-ext.jar" value="${compile.lib}/xml-apis-ext-1.3.04.jar"/>
- <property name="svg.xmlgraphics-commons.url" value="${repository.m2}/maven2/org/apache/xmlgraphics/xmlgraphics-commons/2.3/xmlgraphics-commons-2.3.jar"/>
- <property name="svg.xmlgraphics-commons.jar" value="${compile.lib}/xmlgraphics-commons-2.3.jar"/>
+ <dependency prefix="svg.xml-apis-ext" artifact="xml-apis:xml-apis-ext:1.3.04" usage="ooxml-provided"/>
+ <dependency prefix="svg.xmlgraphics-commons" artifact="org.apache.xmlgraphics:xmlgraphics-commons:2.3" usage="ooxml-provided"/>
+ <dependency prefix="svg.batik-all" artifact="org.apache.xmlgraphics:batik-all:1.12" usage="ooxml-provided"/>
<!-- jars in the ooxml-lib directory, see the fetch-ooxml-jars target-->
- <property name="ooxml.curvesapi.jar" location="${ooxml.lib}/curvesapi-1.06.jar"/>
- <property name="ooxml.curvesapi.url"
- value="${repository.m2}/maven2/com/github/virtuald/curvesapi/1.06/curvesapi-1.06.jar"/>
- <property name="ooxml.xmlbeans.jar" location="${ooxml.lib}/xmlbeans-3.1.0.jar"/>
- <property name="ooxml.xmlbeans.url"
- value="https://repository.apache.org/content/repositories/releases/org/apache/xmlbeans/xmlbeans/3.1.0/xmlbeans-3.1.0.jar"/>
- <property name="ooxml.commons-compress.jar" location="${main.lib}/commons-compress-1.20.jar"/>
- <property name="ooxml.commons-compress.url"
- value="${repository.m2}/maven2/org/apache/commons/commons-compress/1.20/commons-compress-1.20.jar"/>
+ <dependency prefix="ooxml.curvesapi" artifact="com.github.virtuald:curvesapi:1.06" usage="ooxml"/>
+ <dependency prefix="ooxml.xmlbeans" artifact="org.apache.xmlbeans:xmlbeans:3.1.0" usage="ooxml"/>
+ <dependency prefix="ooxml.commons-compress" artifact="org.apache.commons:commons-compress:1.20" usage="ooxml"/>
<!-- jars in the ooxml-test-lib directory, see the fetch-ooxml-jars target-->
- <property name="ooxml.test.reflections.jar" location="${ooxml.test.lib}/reflections.jar"/>
- <property name="ooxml.test.reflections.url"
- value="${repository.m2}/maven2/org/reflections/reflections/0.9.11/reflections-0.9.11.jar"/>
- <property name="ooxml.test.guava.jar" location="${ooxml.test.lib}/guava.jar"/>
- <property name="ooxml.test.guava.url"
- value="${repository.m2}/maven2/com/google/guava/guava/20.0/guava-20.0.jar"/>
- <property name="ooxml.test.javassist.jar" location="${ooxml.test.lib}/javassist.jar"/>
- <property name="ooxml.test.javassist.url"
- value="${repository.m2}/maven2/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar"/>
+ <dependency prefix="ooxml.test.reflections" artifact="org.reflections:reflections:0.9.11" usage="ooxml-tests"/>
+ <dependency prefix="ooxml.test.guava" artifact="com.google.guava:guava:20.0" usage="ooxml-tests"/>
+ <dependency prefix="ooxml.test.javassist" artifact="org.javassist:javassist:3.21.0-GA" usage="ooxml-tests"/>
<!-- coverage libs -->
- <property name="jacoco.zip" location="${main.lib}/jacoco-0.8.5.zip"/>
- <property name="jacoco.url" value="${repository.m2}/maven2/org/jacoco/jacoco/0.8.5/jacoco-0.8.5.zip"/>
- <property name="asm.jar" location="${main.lib}/asm-7.2.jar"/>
- <property name="asm.url" value="${repository.m2}/maven2/org/ow2/asm/asm/7.2/asm-7.2.jar"/>
- <property name="asmcommons.jar" location="${main.lib}/asm-commons-7.2.jar"/>
- <property name="asmcommons.url" value="${repository.m2}/maven2/org/ow2/asm/asm-commons/7.2/asm-commons-7.2.jar"/>
- <property name="asmtree.jar" location="${main.lib}/asm-tree-7.2.jar"/>
- <property name="asmtree.url" value="${repository.m2}/maven2/org/ow2/asm/asm-tree/7.2/asm-tree-7.2.jar"/>
+ <dependency prefix="jacoco" artifact="org.jacoco:jacoco:0.8.5" usage="util" packaging="zip"/>
+ <dependency prefix="asm" artifact="org.ow2.asm:asm:7.2" usage="util"/>
+ <dependency prefix="asmcommons" artifact="org.ow2.asm:asm-commons:7.2" usage="util"/>
+ <dependency prefix="asmtree" artifact="org.ow2.asm:asm-tree:7.2" usage="util"/>
<!-- license and api checks -->
- <property name="rat.jar" location="${main.lib}/apache-rat-0.12.jar"/>
- <property name="rat.url" value="${repository.m2}/maven2/org/apache/rat/apache-rat/0.12/apache-rat-0.12.jar"/>
- <property name="forbidden.jar" location="${main.lib}/forbiddenapis-2.6.jar"/>
- <property name="forbidden.url" value="${repository.m2}/maven2/de/thetaphi/forbiddenapis/2.6/forbiddenapis-2.6.jar"/>
+ <dependency prefix="rat" artifact="org.apache.rat:apache-rat:0.12" usage="util"/>
+ <dependency prefix="forbidden" artifact="de.thetaphi:forbiddenapis:2.6" usage="util"/>
<property name="maven.ooxml.xsds.version.id" value="1.4"/>
<!-- See https://www.ecma-international.org/publications/standards/Ecma-376.htm -->
<!-- "Copy these file(s), free of charge" -->
- <property name="ooxml.xsds.ozip.1" value="OfficeOpenXML-Part4.zip"/>
- <property name="ooxml.xsds.izip.1" value="OfficeOpenXML-XMLSchema.zip"/>
- <property name="ooxml.xsds.url.1"
- value="https://www.ecma-international.org/publications/files/ECMA-ST/Office%20Open%20XML%201st%20edition%20Part%204%20(PDF).zip"/>
+ <property name="ooxml.xsds.izip.1" value="${basedir}/src/ooxml/resources/org/apache/poi/schemas/OfficeOpenXML-XMLSchema.zip"/>
<property name="ooxml.xsds.src.dir" location="build/ooxml-xsds-src"/>
<property name="ooxml.xsds.src.jar" location="${ooxml.lib}/ooxml-schemas-${maven.ooxml.xsds.version.id}-sources.jar"/>
<property name="ooxml.xsds.jar" location="${ooxml.lib}/ooxml-schemas-${maven.ooxml.xsds.version.id}.jar"/>
<!-- additional schemas are packed into the poi schemas jar, -->
<!-- so we don't have to care about a seperate versioning of the original ooxml schemas -->
- <property name="ooxml.xsds.dsig.1" value="https://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
- <!-- property name="ooxml.xsds.dsig.2" value="https://uri.etsi.org/01903/v1.3.2/XAdES.xsd"/ -->
- <!-- property name="ooxml.xsds.dsig.3" value="https://uri.etsi.org/01903/v1.4.1/XAdESv141.xsd"/ -->
- <property name="ooxml.xsds.ozip.2" value="OfficeOpenXML-Part2.zip"/>
- <property name="ooxml.xsds.izip.2" value="OpenPackagingConventions-XMLSchema.zip"/>
- <property name="ooxml.xsds.url.2"
- value="https://www.ecma-international.org/publications/files/ECMA-ST/Office%20Open%20XML%201st%20edition%20Part%202%20(PDF).zip"/>
+ <property name="ooxml.xsds.izip.2" value="${basedir}/src/ooxml/resources/org/apache/poi/schemas/OpenPackagingConventions-XMLSchema.zip"/>
<property name="ooxml.security.src.dir" location="build/ooxml-security-src"/>
<property name="ooxml.security.src.jar" location="${ooxml.lib}/ooxml-security-1.1-sources.jar"/>
<property name="ooxml.security.jar" location="${ooxml.lib}/ooxml-security-1.1.jar"/>
@@ -325,35 +292,25 @@ under the License.
<property name="halt.on.test.failure" value="true"/>
<!-- helper jars for pgp signing, building and nexus staging -->
- <property name="dist.bouncycastle-prov.jar" location="${compile.lib}/bcprov-ext-jdk15on-1.65.jar"/>
- <property name="dist.bouncycastle-prov.url" value="${repository.m2}/maven2/org/bouncycastle/bcprov-ext-jdk15on/1.65/bcprov-ext-jdk15on-1.65.jar"/>
- <property name="dist.bouncycastle-bcpg.jar" location="${compile.lib}/bcpg-jdk15on-1.65.jar"/>
- <property name="dist.bouncycastle-bcpg.url" value="${repository.m2}/maven2/org/bouncycastle/bcpg-jdk15on/1.65/bcpg-jdk15on-1.65.jar"/>
- <property name="dist.commons-openpgp.jar" location="${compile.lib}/commons-openpgp-1.0-SNAPSHOT.jar"/>
- <property name="dist.commons-openpgp.url" value="https://repository.apache.org/content/groups/snapshots/org/apache/commons/commons-openpgp/1.0-SNAPSHOT/commons-openpgp-1.0-20190121.221905-12.jar"/>
- <property name="dist.nexus-staging.jar" location="${compile.lib}/nexus-staging-ant-tasks-1.6.3-uber.jar"/>
- <property name="dist.nexus-staging.url" value="${repository.m2}/maven2/org/sonatype/nexus/ant/nexus-staging-ant-tasks/1.6.3/nexus-staging-ant-tasks-1.6.3-uber.jar"/>
- <!-- jars required for maven helper targets -->
- <property name="maven.ant.url" value="${repository.m2}/maven2/org/apache/maven/maven-ant-tasks/2.1.3/maven-ant-tasks-2.1.3.jar"/>
- <property name="maven.ant.jar" value="${compile.lib}/maven-ant-tasks-2.1.3.jar"/>
-
- <property name="dist.svnant.jar" location="${compile.lib}/svnant/svnant-1.3.1.jar"/>
- <property name="dist.svnant.url" value="https://dl.bintray.com/openmeetings/maven/org/tigris/subclipse/svnant/1.3.1/svnant-1.3.1.jar"/>
- <property name="dist.svnclient.jar" location="${compile.lib}/svnant/svnClientAdapter-1.3.1.jar"/>
- <property name="dist.svnclient.url" value="https://dl.bintray.com/openmeetings/maven/org/tigris/subclipse/svnclientadapter/1.3.1//svnclientadapter-1.3.1.jar"/>
- <property name="dist.svnkit.jar" location="${compile.lib}/svnant/svnkit-1.8.11.jar"/>
- <property name="dist.svnkit.url" value="${repository.m2}/maven2/org/tmatesoft/svnkit/svnkit/1.8.11/svnkit-1.8.11.jar"/>
- <property name="dist.svnkit-javahl16.jar" location="${compile.lib}/svnant/svnkit-javahl16-1.8.11.jar"/>
- <property name="dist.svnkit-javahl16.url" value="${repository.m2}/maven2/org/tmatesoft/svnkit/svnkit-javahl16/1.8.11/svnkit-javahl16-1.8.11.jar"/>
- <property name="dist.sqljet.jar" location="${compile.lib}/svnant/sqljet-1.1.10.jar"/>
- <property name="dist.sqljet.url" value="${repository.m2}/maven2/org/tmatesoft/sqljet/sqljet/1.1.10/sqljet-1.1.10.jar"/>
- <property name="dist.antlr.jar" location="${compile.lib}/svnant/antlr-runtime-3.5.2.jar"/>
- <property name="dist.antlr.url" value="${repository.m2}/maven2/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar"/>
- <property name="dist.sequence-library.jar" location="${compile.lib}/svnant/sequence-library-1.0.3.jar"/>
- <property name="dist.sequence-library.url" value="${repository.m2}/maven2/de/regnis/q/sequence/sequence-library/1.0.3/sequence-library-1.0.3.jar"/>
+ <dependency prefix="dist.bouncycastle-prov" artifact="org.bouncycastle:bcprov-ext-jdk15on:1.65" usage="util"/>
+ <dependency prefix="dist.bouncycastle-prov" artifact="org.bouncycastle:bcpg-jdk15on:1.65" usage="util"/>
+ <dependency prefix="dist.commons-openpgp" artifact="org.apache.commons:commons-openpgp:1.0-SNAPSHOT" usage="util"
+ repo="https://repository.apache.org/content/groups/snapshots" snapshot="1.0-20190121.221905-12"/>
+ <dependency prefix="dist.nexus-staging" artifact="org.sonatype.nexus.ant:nexus-staging-ant-tasks:1.6.3-uber" usage="util"/>
- <property name="findbugs.url" value="https://downloads.sourceforge.net/project/findbugs/findbugs/3.0.1/findbugs-noUpdateChecks-3.0.1.zip?download="/>
- <property name="findbugs.jar" location="${main.lib}/findbugs-noUpdateChecks-3.0.1.zip"/>
+ <!-- jars required for maven helper targets -->
+ <dependency prefix="maven.ant" artifact="org.apache.maven:maven-ant-tasks:2.1.3" usage="util"/>
+ <dependency prefix="dist.svnant" artifact="org.tigris.subclipse:svnant:1.3.1" usage="util"
+ repo="https://dl.bintray.com/openmeetings/maven"/>
+ <dependency prefix="dist.svnclient" artifact="org.tigris.subclipse:svnclientadapter:1.3.1" usage="util"
+ repo="https://dl.bintray.com/openmeetings/maven"/>
+ <dependency prefix="dist.svnkit" artifact="org.tmatesoft.svnkit:svnkit:1.8.11" usage="util"/>
+ <dependency prefix="dist.svnkit-javahl16" artifact="org.tmatesoft.svnkit:svnkit-javahl16:1.8.11" usage="util"/>
+ <dependency prefix="dist.sqljet" artifact="org.tmatesoft.svnkit:sqljet:1.1.10" usage="util"/>
+ <dependency prefix="dist.antlr" artifact="org.antlr:antlr-runtime:3.5.2" usage="util"/>
+ <dependency prefix="dist.sequence-library" artifact="de.regnis.q.sequence:sequence-library:1.0.3" usage="util"/>
+ <dependency prefix="findbugs" artifact="findbugs:findbugs:3.0.1" usage="util"
+ repo="https://downloads.sourceforge.net/project" snapshot="noUpdateChecks-3.0.1" query="?download="/>
<propertyset id="junit.properties">
<propertyref name="POI.testdata.path"/>
@@ -377,10 +334,6 @@ under the License.
<pathelement location="${main.commons-codec.jar}"/>
<pathelement location="${main.commons-collections4.jar}"/>
<pathelement location="${main.commons-math3.jar}"/>
- <pathelement location="${main.xmlbind.jar}"/>
- <pathelement location="${main.xmlbind-impl.jar}"/>
- <pathelement location="${main.xmlbind-core.jar}"/>
- <pathelement location="${main.activation.jar}"/>
<pathelement location="${main.com.zaxxer.jar}"/>
</path>
@@ -548,7 +501,7 @@ under the License.
</path>
<path id="lib.jacoco">
- <fileset dir="lib">
+ <fileset dir="${util.lib}">
<include name="org.jacoco*.jar" />
<include name="asm-*.jar" />
</fileset>
@@ -629,6 +582,9 @@ under the License.
<attribute name="src"/>
<attribute name="dest"/>
<sequential>
+ <local name="destdir"/>
+ <dirname property="destdir" file="@{dest}"/>
+ <mkdir dir="${destdir}"/>
<get src="@{src}" dest="@{dest}" skipexisting="true"/>
</sequential>
</macrodef>
@@ -637,102 +593,11 @@ under the License.
<!-- remove previous versions of third-party jars to prevent them from lingering around,
we often had hard-to-find build/CI-problems because of these! -->
<mkdir dir="${main.lib}"/>
- <mkdir dir="${compile.lib}"/>
<mkdir dir="${ooxml.lib}"/>
- <mkdir dir="${ooxml.test.lib}"/>
+ <mkdir dir="${ooxml-tests.lib}"/>
<delete verbose="true">
- <fileset dir="${main.lib}">
- <include name="ant-1.8*"/>
- <include name="ant-1.9.4*"/>
- <include name="ant-launcher-1.9.4*"/>
- <include name="asm-all-4*"/>
- <include name="asm-all-5.0.3*"/>
- <include name="asm-all-5.2*"/>
- <include name="asm*-6.*"/>
- <include name="asm*-7.0.*"/>
- <include name="commons-codec-1.5*"/>
- <include name="commons-codec-1.9*"/>
- <include name="commons-codec-1.10*"/>
- <include name="commons-codec-1.11*"/>
- <include name="commons-codec-1.12*"/>
- <include name="commons-codec-1.13*"/>
- <include name="commons-compress-1.1*"/>
- <include name="commons-collections4-4.1*"/>
- <include name="commons-collections4-4.2*"/>
- <include name="commons-collections4-4.3*"/>
- <include name="commons-logging-1.1*.jar"/>
- <include name="findbugs-noUpdateChecks-2.0.3*"/>
- <include name="jacoco-0.6*"/>
- <include name="jacoco-0.7*"/>
- <include name="jacoco-0.8.1*"/>
- <include name="jacoco-0.8.2*"/>
- <include name="jacoco-0.8.3*"/>
- <include name="jmh-core-1.15*"/>
- <include name="jmh-generator-annprocess-1.15*"/>
- <include name="log4j-1.2.13*"/>
- <include name="org.jacoco.*-0.6*"/>
- <include name="org.jacoco.*-0.7**"/>
- <include name="org.jacoco.*-0.8.1*"/>
- <include name="org.jacoco.*-0.8.2*"/>
- <include name="org.jacoco.*-0.8.3*"/>
- <include name="dom4j*"/>
- <include name="apache-rat-0.10*"/>
- <include name="xercesImpl-*.jar"/>
- <include name="junit-3*"/>
- <include name="junit-4.11*"/>
- <include name="junit-4.12*"/>
- <include name="forbiddenapis-1.*.jar"/>
- <include name="forbiddenapis-2.0.jar"/>
- <include name="forbiddenapis-2.1.jar"/>
- <include name="forbiddenapis-2.3.jar"/>
- <include name="forbiddenapis-2.5.jar"/>
- <include name="apache-rat-0.11.jar"/>
- <include name="mockito-core-2*.jar"/>
- <include name="mockito-core-3.0*.jar"/>
- <include name="byte-buddy-*1.7*.jar"/>
- <include name="byte-buddy-*1.9*.jar"/>
- <include name="jaxb-api-2.3.0.jar"/>
- <include name="jaxb-impl-2.3.0.1.jar"/>
- </fileset>
- <fileset dir="${ooxml.lib}">
- <!-- remove jars from previous versions, but not the current version -->
- <include name="ooxml-schemas-1.0-sources.jar"/>
- <include name="ooxml-schemas-1.0.jar"/>
- <include name="ooxml-schemas-src-1.1.jar"/>
- <include name="ooxml-schemas-1.1-sources.jar"/>
- <include name="ooxml-schemas-1.1.jar"/>
- <include name="ooxml-schemas-1.2-sources.jar"/>
- <include name="ooxml-schemas-1.2.jar"/>
- <include name="ooxml-schemas-1.3-sources.jar"/>
- <include name="ooxml-schemas-1.3.jar"/>
- <include name="ooxml-security-1.0-sources.jar"/>
- <include name="ooxml-security-1.0.jar"/>
- <include name="curvesapi-1.03.jar"/>
- <include name="curvesapi-1.04.jar"/>
- <include name="curvesapi-1.05.jar"/>
- <include name="xmlbeans-2.*.jar"/>
- <include name="xmlbeans-3.0*.jar"/>
- </fileset>
- <fileset dir="${compile.lib}">
- <include name="xercesImpl-*.jar"/>
- <include name="xmlsec-2.0*.jar"/>
- <include name="xmlsec-2.1.0.jar"/>
- <include name="xmlsec-2.1.1.jar"/>
- <include name="xmlsec-2.1.2.jar"/>
- <include name="xmlsec-2.1.3.jar"/>
- <include name="xmlsec-2.1.4.jar"/>
- <include name="bc*jdk15on-1.5*.jar"/>
- <include name="bc*jdk15on-1.60*.jar"/>
- <include name="bc*jdk15on-1.61*.jar"/>
- <include name="bc*jdk15on-1.62*.jar"/>
- <include name="bc*jdk15on-1.63*.jar"/>
- <include name="bc*jdk15on-1.64*.jar"/>
- <include name="batik-all-1.10.jar"/>
- <include name="batik-all-1.11.jar"/>
- <include name="slf4j-api-1.7.7.jar"/>
- <include name="slf4j-api-1.7.1*.jar"/>
- <include name="slf4j-api-1.7.2*.jar"/>
- </fileset>
+ <fileset dir="${basedir}/lib" includes="*.jar"/>
+ <!-- remove jars from previous versions, but not the current version -->
</delete>
<condition property="jars.present">
@@ -764,14 +629,10 @@ under the License.
<available file="${dsig.sl4j-api.jar}"/>
<available file="${main.commons-collections4.jar}"/>
<available file="${main.commons-math3.jar}"/>
- <available file="${main.xmlbind.jar}"/>
- <available file="${main.xmlbind-impl.jar}"/>
- <available file="${main.xmlbind-core.jar}"/>
- <available file="${main.activation.jar}"/>
<available file="${main.com.zaxxer.jar}"/>
<!-- we had some CI failures when the extracted files for JaCoCo were missing somehow... -->
- <available file="${main.lib}/jacocoagent.jar"/>
+ <available file="${util.lib}/jacocoagent.jar"/>
</and>
<isset property="disconnected"/>
</or>
@@ -801,15 +662,12 @@ under the License.
<downloadfile src="${jacoco.url}" dest="${jacoco.zip}"/>
<downloadfile src="${main.commons-collections4.url}" dest="${main.commons-collections4.jar}"/>
<downloadfile src="${main.commons-math3.url}" dest="${main.commons-math3.jar}"/>
- <downloadfile src="${main.xmlbind.url}" dest="${main.xmlbind.jar}"/>
- <downloadfile src="${main.xmlbind-impl.url}" dest="${main.xmlbind-impl.jar}"/>
- <downloadfile src="${main.xmlbind-core.url}" dest="${main.xmlbind-core.jar}"/>
- <downloadfile src="${main.activation.url}" dest="${main.activation.jar}"/>
<downloadfile src="${main.com.zaxxer.url}" dest="${main.com.zaxxer.jar}"/>
- <unzip src="${jacoco.zip}" dest=".">
+ <unzip src="${jacoco.zip}" dest="${util.lib}">
<patternset>
<include name="lib/*.jar"/>
</patternset>
+ <mapper type="flatten"/>
</unzip>
<downloadfile src="${rat.url}" dest="${rat.jar}"/>
<downloadfile src="${forbidden.url}" dest="${forbidden.jar}"/>
@@ -839,7 +697,7 @@ under the License.
</target>
<target name="fetch-ooxml-jars" depends="check-ooxml-jars" unless="ooxml.jars.present">
<mkdir dir="${ooxml.lib}"/>
- <mkdir dir="${ooxml.test.lib}"/>
+ <mkdir dir="${ooxml-tests.lib}"/>
<downloadfile src="${ooxml.curvesapi.url}" dest="${ooxml.curvesapi.jar}"/>
<downloadfile src="${ooxml.xmlbeans.url}" dest="${ooxml.xmlbeans.jar}"/>
<downloadfile src="${ooxml.commons-compress.url}" dest="${ooxml.commons-compress.jar}"/>
@@ -867,7 +725,6 @@ under the License.
</condition>
</target>
<target name="fetch-svn-jars" depends="check-svn-jars" unless="svn.jars.present">
- <mkdir dir="${compile.lib}/svnant"/>
<downloadfile src="${dist.svnant.url}" dest="${dist.svnant.jar}"/>
<downloadfile src="${dist.svnclient.url}" dest="${dist.svnclient.jar}"/>
<downloadfile src="${dist.svnkit.url}" dest="${dist.svnkit.jar}"/>
@@ -877,53 +734,14 @@ under the License.
<downloadfile src="${dist.sequence-library.url}" dest="${dist.sequence-library.jar}"/>
</target>
- <target name="check-ooxml-xsds">
- <condition property="ooxml-xsds.present">
- <or>
- <and>
- <available file="${ooxml.lib}/${ooxml.xsds.izip.1}"/>
- <available file="${ooxml.lib}/${ooxml.xsds.izip.2}"/>
- </and>
- <isset property="disconnected"/>
- </or>
- </condition>
- </target>
- <target name="fetch-ooxml-xsds" unless="ooxml-xsds.present"
- depends="check-ooxml-xsds"
- description="Fetches needed OOXML xsd files from the Internet">
- <get dest="${ooxml.lib}" skipexisting="true">
- <url url="${ooxml.xsds.url.1}"/>
- <url url="${ooxml.xsds.url.2}"/>
- <url url="${ooxml.xsds.dsig.1}"/>
- <!--url url="${ooxml.xsds.dsig.2}"/ -->
- <!--url url="${ooxml.xsds.dsig.3}"/ -->
- <chainedmapper>
- <flattenmapper/>
- <firstmatchmapper>
- <globmapper from="Office%20Open%20XML%201st%20edition%20Part%20*%20(PDF).zip" to="OfficeOpenXML-Part*.zip"/>
- <identitymapper/>
- </firstmatchmapper>
- </chainedmapper>
- </get>
- <unzip src="${ooxml.lib}/${ooxml.xsds.ozip.1}" dest="${ooxml.lib}">
- <fileset dir="${ooxml.lib}" includes="OfficeOpenXML-Part*.zip"/>
- <patternset>
- <include name="${ooxml.xsds.izip.1}"/>
- <include name="${ooxml.xsds.izip.2}"/>
- </patternset>
- </unzip>
- </target>
- <target name="check-compiled-ooxml-xsds" depends="fetch-ooxml-xsds">
+ <target name="check-compiled-ooxml-xsds">
<condition property="ooxml-compiled-xsds.present">
- <or>
- <and>
- <available file="${ooxml.xsds.jar}"/>
- <available file="${ooxml.security.jar}"/>
- <available file="${ooxml.xsds.src.jar}"/>
- <available file="${ooxml.security.src.jar}"/>
- </and>
- <isset property="disconnected"/>
- </or>
+ <and>
+ <available file="${ooxml.xsds.jar}"/>
+ <available file="${ooxml.xsds.src.jar}"/>
+ <available file="${ooxml.security.jar}"/>
+ <available file="${ooxml.security.src.jar}"/>
+ </and>
</condition>
</target>
@@ -932,6 +750,8 @@ under the License.
<attribute name="sources-jar"/>
<attribute name="noupa" default="false"/>
<attribute name="nopvr" default="false"/>
+ <attribute name="multi-src"/>
+ <attribute name="typesystemname"/>
<element name="xsds"/>
<sequential>
<!-- We need a fair amount of memory to compile the xml schema, -->
@@ -948,6 +768,7 @@ under the License.
<property name="xmlbean.xsds.dir" location="build/xmlbean-xsds"/>
<property name="xmlbean.sources.dir" location="build/xmlbean-sources"/>
<property name="xmlbean.classes.dir" location="build/xmlbean-classes"/>
+
<delete dir="${xmlbean.xsds.dir}"/>
<mkdir dir="${xmlbean.xsds.dir}"/>
<delete dir="${xmlbean.sources.dir}"/>
@@ -972,12 +793,12 @@ under the License.
memoryMaximumSize="${ooxml.memory}"
noupa="@{noupa}"
nopvr="@{nopvr}"
+ typesystemname="@{typesystemname}"
>
<classpath>
<path location="${ooxml.xmlbeans.jar}"/>
</classpath>
</xmlbean>
-
<local name="loaderMethod"/>
<!-- the space between "public static" is on purpose to prevent double execution -->
<property name="loaderMethod"><![CDATA[
@@ -993,7 +814,6 @@ under the License.
}
public static \2 newInstance\(\) \{]]></property>
-
<replaceregexp byline="true" match="(\s*)public static ([^ ]+) newInstance\(\) \{" replace="${loaderMethod}">
<fileset dir="${xmlbean.sources.dir}" includes="**/*.java" excludes="**/impl/**"/>
</replaceregexp>
@@ -1020,16 +840,43 @@ under the License.
optimize="true"
memoryMaximumSize="${ooxml.memory}"
includeantruntime="false">
- <!-- debug="${compile.debug}" -->
<classpath refid="ooxml.classpath"/>
</javac>
+ <local name="module-package"/>
+ <loadfile property="module-package" srcFile="@{multi-src}/java9/module-info.java">
+ <filterchain>
+ <containsregex pattern=".*module ([^ ]+).*" replace="\1" flags="i"/>
+ <striplinebreaks/>
+ </filterchain>
+ </loadfile>
+
+ <mkdir dir="${xmlbean.classes.dir}/META-INF/versions/9"/>
+
+ <javac release="9"
+ srcdir="@{multi-src}/java9"
+ destdir="${xmlbean.classes.dir}/META-INF/versions/9"
+ includeantruntime="false"
+ fork="true"
+ modulepath="${ooxml.lib}"
+ unless:true="${isJava8}">
+ <compilerarg line="--patch-module ${module-package}=${xmlbean.classes.dir}"/>
+ </javac>
+
+ <delete file="@{classes-jar}"/>
+ <delete file="@{sources-jar}"/>
+
<jar destfile="@{classes-jar}" level="9">
<fileset dir="${xmlbean.classes.dir}" excludes="org/apache/**"/>
+ <zipfileset prefix="META-INF/versions/9/" dir="@{multi-src}/java9" includes="**/*.class" if:true="${isJava8}"/>
<metainf dir="legal"/>
+ <manifest>
+ <attribute name="Multi-Release" value="true"/>
+ </manifest>
</jar>
<jar destfile="@{sources-jar}" level="9">
<fileset dir="${xmlbean.sources.dir}" excludes="org/apache/**"/>
+ <zipfileset prefix="META-INF/versions/9/" dir="@{multi-src}/java9" excludes="**/*.class"/>
<metainf dir="legal"/>
</jar>
@@ -1040,23 +887,34 @@ under the License.
</sequential>
</macrodef>
- <target name="compile-ooxml-xsds" unless="ooxml-compiled-xsds.present"
+ <target name="compile-ooxml-xsds"
depends="init,check-compiled-ooxml-xsds"
+ unless="ooxml-compiled-xsds.present"
description="Unpacks the OOXML xsd files, and compiles them into XmlBeans">
- <compile-ooxml-xmlbean classes-jar="${ooxml.xsds.jar}" sources-jar="${ooxml.xsds.src.jar}">
+ <compile-ooxml-xmlbean
+ classes-jar="${ooxml.xsds.jar}"
+ sources-jar="${ooxml.xsds.src.jar}"
+ multi-src="${basedir}/src/multimodule/ooxml-schemas"
+ typesystemname="OoxmlSchemas"
+ >
<xsds>
- <zipfileset src="${ooxml.lib}/${ooxml.xsds.izip.1}"/>
+ <zipfileset src="${ooxml.xsds.izip.1}"/>
<fileset dir="${ooxml.visio.xsd.dir}"/>
- <fileset dir="${ooxml.schema.xsdconfig.dir}" excludes="XAdES*.xsd"/>
+ <fileset dir="${ooxml.schema.xsdconfig.dir}" includes="ooxmlSchemas.xsdconfig,markup-compatibility.xsd"/>
</xsds>
</compile-ooxml-xmlbean>
+
<!-- Now do the same for the security schemas -->
- <compile-ooxml-xmlbean classes-jar="${ooxml.security.jar}" sources-jar="${ooxml.security.src.jar}">
+ <compile-ooxml-xmlbean
+ classes-jar="${ooxml.security.jar}"
+ sources-jar="${ooxml.security.src.jar}"
+ multi-src="${basedir}/src/multimodule/ooxml-security"
+ typesystemname="OoxmlSecurity"
+ >
<xsds>
- <zipfileset src="${ooxml.lib}/${ooxml.xsds.izip.2}" includes="opc-digSig.xsd,opc-relationships.xsd"/>
- <fileset dir="${ooxml.lib}" includes="xmldsig*.xsd"/>
+ <zipfileset src="${ooxml.xsds.izip.2}" includes="opc-digSig.xsd,opc-relationships.xsd"/>
<fileset dir="${ooxml.security.xsd.dir}"/>
- <fileset dir="${ooxml.schema.xsdconfig.dir}" includes="XAdES*.xsd,*.xsdconfig"/>
+ <fileset dir="${ooxml.schema.xsdconfig.dir}" includes="XAdES*.xsd,*.xsdconfig,xmldsig*.xsd"/>
</xsds>
</compile-ooxml-xmlbean>
</target>
@@ -1095,42 +953,22 @@ under the License.
<copy todir="${main.output.dir}">
<fileset dir="${main.resource1.dir}"/>
</copy>
- </target>
- <target name="generate-geometry" depends="fetch-ooxml-xsds" if="ignoreme">
- <delete dir="${geometry.output.tmpdir}"/>
- <unzip src="${ooxml.lib}/${ooxml.xsds.izip.1}" dest="${geometry.output.tmpdir}"/>
- <exec executable="${env.JAVA_HOME}/bin/xjc">
- <arg value="-p"/>
- <arg value="${geometry.pkg}"/>
- <arg value="-b"/>
- <arg file="src/types/definitions/dml-shapeGeometry.xjb"/>
- <arg value="-readOnly"/>
- <arg value="-no-header"/>
- <!--arg value="-npa"/ -->
- <!--arg value="-mark-generated"/ -->
- <!--arg value="-Xlocator"/ -->
- <arg file="${geometry.output.tmpdir}/dml-shapeGeometry.xsd"/>
- <arg value="-d"/>
- <arg file="${geometry.output.tmpdir}"/>
- </exec>
- <copy file="src/java/org/apache/poi/POIDocument.java" tofile="${geometry.output.tmpdir}/apache-license.txt">
- <filterchain>
- <headfilter lines="16"/>
- </filterchain>
- </copy>
- <copy todir="${main.src}">
- <fileset dir="${geometry.output.tmpdir}" includes="**/*.java"/>
- <filterchain>
- <concatfilter prepend="${geometry.output.tmpdir}/apache-license.txt"/>
- <!-- fix javadocs for java 8 doclint -->
- <replaceregex pattern="&lt;(.*)>" replace="&lt;\1&gt;" flags="g"/>
- <fixcrlf eol="lf"/>
- </filterchain>
- </copy>
+
+ <mkdir dir="${main.output.dir}/META-INF/versions/9"/>
+
+ <javac release="9"
+ srcdir="${basedir}/src/multimodule/poi/java9"
+ destdir="${main.output.dir}/META-INF/versions/9"
+ includeantruntime="false"
+ fork="true"
+ modulepath="${main.lib}"
+ unless:true="${isJava8}">
+ <compilerarg line="--patch-module org.apache.poi.poi=${main.output.dir}"/>
+ </javac>
</target>
- <target name="compile-scratchpad" depends="compile-main,generate-geometry">
+ <target name="compile-scratchpad" depends="compile-main">
<!-- compile the sources -->
<javac target="${jdk.version.class}"
source="${jdk.version.source}"
@@ -1983,6 +1821,11 @@ under the License.
</sequential>
</macrodef>
+ <target name="bla" depends="compile-main, compile-version, -manifest">
+ <maven-jar src="${main.output.dir}"/>
+ </target>
+
+
<target name="jar" depends="compile, compile-version, compile-ooxml-lite, -manifest" description="Creates jar files for distribution">
<maven-jar src="${main.output.dir}"/>
<maven-jar src="${scratchpad.output.dir}"/>
@@ -2235,6 +2078,8 @@ under the License.
<exclude name="resources/ooxml/org/apache/poi/xssf/usermodel/presetTableStyles.xml" />
<exclude name="ooxml/resources/org/apache/poi/xdgf/visio.xsd" />
<exclude name="ooxml/resources/org/apache/poi/schemas/XAdES*.xsd" />
+ <exclude name="ooxml/resources/org/apache/poi/schemas/xmldsig-core-schema.xsd" />
+ <exclude name="ooxml/resources/org/apache/poi/schemas/*.zip" />
<exclude name="**/*.iml" />
<exclude name="documentation/resources/images/pb-poi.cdr"/>
<exclude name="scratchpad/models/poi-hdf.zargo"/>
@@ -2366,10 +2211,6 @@ under the License.
<auxClasspath path="${main.jmh.jar}"/>
<auxClasspath path="${main.jmhAnnotation.jar}"/>
<auxClasspath path="${main.ant.jar}" />
- <auxClasspath path="${main.xmlbind.jar}" />
- <auxClasspath path="${main.xmlbind-impl.jar}" />
- <auxClasspath path="${main.xmlbind-core.jar}" />
- <auxClasspath path="${main.activation.jar}" />
<auxClasspath path="${main.com.zaxxer.jar}" />
<auxClasspath path="${svg.batik-all.jar}"/>
<auxClasspath path="${svg.xml-apis-ext.jar}"/>
@@ -2550,7 +2391,13 @@ under the License.
</fail>
<path id="path.svnant">
- <fileset dir="${compile.lib}/svnant" includes="*.jar"/>
+ <pathelement location="${dist.svnant.jar}"/>
+ <pathelement location="${dist.svnclient.jar}"/>
+ <pathelement location="${dist.svnkit.jar}"/>
+ <pathelement location="${dist.svnkit-javahl16.jar}"/>
+ <pathelement location="${dist.sqljet.jar}"/>
+ <pathelement location="${dist.antlr.jar}"/>
+ <pathelement location="${dist.sequence-library.jar}"/>
</path>
<taskdef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="path.svnant"/>
@@ -2843,15 +2690,15 @@ under the License.
Doesn't work with Java6 - the https urls can't be accessed via loadChecksum
-->
<target name="update-download">
- <downloadfile src="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/missing-link/ml-ant-http-1.1.3.zip" dest="${compile.lib}/ml-ant-http-1.1.3.zip"/>
- <unzip src="${compile.lib}/ml-ant-http-1.1.3.zip" dest="${compile.lib}">
+ <downloadfile src="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/missing-link/ml-ant-http-1.1.3.zip" dest="${util.lib}/ml-ant-http-1.1.3.zip"/>
+ <unzip src="${util.lib}/ml-ant-http-1.1.3.zip" dest="${util.lib}">
<patternset>
<include name="ml-ant-http-1.1.3.jar"/>
</patternset>
</unzip>
<taskdef name="http" classname="org.missinglink.ant.task.http.HttpClientTask">
<classpath>
- <path location="${compile.lib}/ml-ant-http-1.1.3.jar"/>
+ <path location="${util.lib}/ml-ant-http-1.1.3.jar"/>
</classpath>
</taskdef>
Propchange: poi/trunk/lib/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue May 5 13:36:30 2020
@@ -1,3 +1,9 @@
*.jar
jacoco-*.zip
findbugs*.zip
+main
+main-tests
+ooxml
+ooxml-tests
+ooxml-provided
+util
Modified: poi/trunk/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java Tue May 5 13:36:30 2020
@@ -225,7 +225,9 @@ public class DrawSimpleShape extends Dra
break;
case STEALTH:
case ARROW:
- p = new Path(false, true);
+ p = new Path();
+ p.setFill(PaintModifier.NONE);
+ p.setStroke(true);
Path2D.Double arrow = new Path2D.Double();
arrow.moveTo((-lineWidth * scaleX), (-lineWidth * scaleY / 2));
arrow.lineTo(0, 0);
@@ -297,7 +299,9 @@ public class DrawSimpleShape extends Dra
break;
case STEALTH:
case ARROW:
- p = new Path(false, true);
+ p = new Path();
+ p.setFill(PaintModifier.NONE);
+ p.setStroke(true);
Path2D.Double arrow = new Path2D.Double();
arrow.moveTo((lineWidth * scaleX), (-lineWidth * scaleY / 2));
arrow.lineTo(0, 0);
Added: poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustHandle.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustHandle.java?rev=1877398&view=auto
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustHandle.java (added)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustHandle.java Tue May 5 13:36:30 2020
@@ -0,0 +1,23 @@
+/*
+ * ====================================================================
+ * 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.sl.draw.geom;
+
+public interface AdjustHandle {
+}
Propchange: poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustHandle.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustPoint.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustPoint.java?rev=1877398&view=auto
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustPoint.java (added)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustPoint.java Tue May 5 13:36:30 2020
@@ -0,0 +1,119 @@
+/* ====================================================================
+ 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.sl.draw.geom;
+
+import java.util.Objects;
+
+/**
+ * <p>Java class for CT_AdjPoint2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_AdjPoint2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="x" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="y" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+// @XmlAccessorType(XmlAccessType.FIELD)
+// @XmlType(name = "CT_AdjPoint2D")
+public class AdjustPoint {
+
+ // @XmlAttribute(name = "x", required = true)
+ private String x;
+ // @XmlAttribute(name = "y", required = true)
+ private String y;
+
+
+ /**
+ * Gets the value of the x property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getX() {
+ return x;
+ }
+
+ /**
+ * Sets the value of the x property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setX(String value) {
+ this.x = value;
+ }
+
+ public boolean isSetX() {
+ return (this.x!= null);
+ }
+
+ /**
+ * Gets the value of the y property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getY() {
+ return y;
+ }
+
+ /**
+ * Sets the value of the y property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setY(String value) {
+ this.y = value;
+ }
+
+ public boolean isSetY() {
+ return (this.y!= null);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof AdjustPoint)) return false;
+ AdjustPoint that = (AdjustPoint) o;
+ return Objects.equals(x, that.x) &&
+ Objects.equals(y, that.y);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(x, y);
+ }
+}
Propchange: poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustPoint.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustValue.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustValue.java?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustValue.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/AdjustValue.java Tue May 5 13:36:30 2020
@@ -19,17 +19,11 @@
package org.apache.poi.sl.draw.geom;
-import org.apache.poi.sl.draw.binding.CTGeomGuide;
-
/**
* Represents a shape adjust values (see section 20.1.9.5 in the spec)
*/
public class AdjustValue extends Guide {
- public AdjustValue(CTGeomGuide gd) {
- super(gd.getName(), gd.getFmla());
- }
-
@Override
public double evaluate(Context ctx){
String name = getName();
Modified: poi/trunk/src/java/org/apache/poi/sl/draw/geom/ArcToCommand.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/ArcToCommand.java?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/ArcToCommand.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/ArcToCommand.java Tue May 5 13:36:30 2020
@@ -24,28 +24,64 @@ import static org.apache.poi.sl.draw.geo
import java.awt.geom.Arc2D;
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
+import java.util.Objects;
-import org.apache.poi.sl.draw.binding.CTPath2DArcTo;
import org.apache.poi.util.Internal;
/**
* ArcTo command within a shape path in DrawingML:
- * {@code <arcTo wR="wr" hR="hr" stAng="stAng" swAng="swAng"/>}<p>
- *
- * Where {@code wr} and {@code wh} are the height and width radiuses
+ * {@code <arcTo wR="wr" hR="hr" stAng="stAng" swAng="swAng"/>}
+ * <p>
+ * Where {@code wr} and {@code wh} are the height and width radii
* of the supposed circle being used to draw the arc. This gives the circle
* a total height of (2 * hR) and a total width of (2 * wR)
- *
+ * <p>
* stAng is the {@code start} angle and {@code swAng} is the swing angle
+ * <p>
+ * Java class for CT_Path2DArcTo complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DArcTo">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="wR" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="hR" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="stAng" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
+ * <attribute name="swAng" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
*/
+// @XmlAccessorType(XmlAccessType.FIELD)
+// @XmlType(name = "CT_Path2DArcTo")
public class ArcToCommand implements PathCommand {
- private String hr, wr, stAng, swAng;
- ArcToCommand(CTPath2DArcTo arc){
- hr = arc.getHR();
- wr = arc.getWR();
- stAng = arc.getStAng();
- swAng = arc.getSwAng();
+ // @XmlAttribute(name = "wR", required = true)
+ private String wr;
+ // @XmlAttribute(name = "hR", required = true)
+ private String hr;
+ // @XmlAttribute(name = "stAng", required = true)
+ private String stAng;
+ // @XmlAttribute(name = "swAng", required = true)
+ private String swAng;
+
+ public void setHR(String hr) {
+ this.hr = hr;
+ }
+
+ public void setWR(String wr) {
+ this.wr = wr;
+ }
+
+ public void setStAng(String stAng) {
+ this.stAng = stAng;
+ }
+
+ public void setSwAng(String swAng) {
+ this.swAng = swAng;
}
@Override
@@ -141,4 +177,21 @@ public class ArcToCommand implements Pat
awtAngle = Math.toDegrees(Math.atan2(Math.tan(Math.toRadians(awtAngle2)), aspect)) + awtAngle3;
return awtAngle;
}
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof ArcToCommand)) return false;
+ ArcToCommand that = (ArcToCommand) o;
+ return Objects.equals(wr, that.wr) &&
+ Objects.equals(hr, that.hr) &&
+ Objects.equals(stAng, that.stAng) &&
+ Objects.equals(swAng, that.swAng);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(wr, hr, stAng, swAng);
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/sl/draw/geom/ClosePathCommand.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/ClosePathCommand.java?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/ClosePathCommand.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/ClosePathCommand.java Tue May 5 13:36:30 2020
@@ -21,13 +21,39 @@ package org.apache.poi.sl.draw.geom;
import java.awt.geom.Path2D;
+/**
+ * <p>Java class for CT_Path2DClose complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DClose">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+// @XmlAccessorType(XmlAccessType.FIELD)
+// @XmlType(name = "CT_Path2DClose")
public class ClosePathCommand implements PathCommand {
- ClosePathCommand(){
- }
-
@Override
public void execute(Path2D.Double path, Context ctx){
path.closePath();
}
+
+
+ @Override
+ public int hashCode() {
+ return 0xC105E;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return (obj instanceof ClosePathCommand);
+ }
}
Added: poi/trunk/src/java/org/apache/poi/sl/draw/geom/ConnectionSite.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/ConnectionSite.java?rev=1877398&view=auto
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/ConnectionSite.java (added)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/ConnectionSite.java Tue May 5 13:36:30 2020
@@ -0,0 +1,119 @@
+/* ====================================================================
+ 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.sl.draw.geom;
+
+import java.util.Objects;
+
+/**
+ * <p>Java class for CT_ConnectionSite complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_ConnectionSite">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pos" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>
+ * </sequence>
+ * <attribute name="ang" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+// @XmlAccessorType(XmlAccessType.FIELD)
+// @XmlType(name = "CT_ConnectionSite", propOrder = {"pos"})
+public final class ConnectionSite {
+
+ // @XmlElement(required = true)
+ private final AdjustPoint pos = new AdjustPoint();
+ // @XmlAttribute(name = "ang", required = true)
+ private String ang;
+
+ /**
+ * Gets the value of the pos property.
+ *
+ * @return
+ * possible object is
+ * {@link AdjustPoint }
+ *
+ */
+ public AdjustPoint getPos() {
+ return pos;
+ }
+
+ /**
+ * Sets the value of the pos property.
+ *
+ * @param pos
+ * allowed object is
+ * {@link AdjustPoint }
+ *
+ */
+ public void setPos(AdjustPoint pos) {
+ if (pos != null) {
+ this.pos.setX(pos.getX());
+ this.pos.setY(pos.getY());
+ }
+ }
+
+ /**
+ * Gets the value of the ang property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAng() {
+ return ang;
+ }
+
+ /**
+ * Sets the value of the ang property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAng(String value) {
+ this.ang = value;
+ }
+
+ public boolean isSetAng() {
+ return (this.ang!= null);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof ConnectionSite)) return false;
+ ConnectionSite that = (ConnectionSite) o;
+ return Objects.equals(pos, that.pos) &&
+ Objects.equals(ang, that.ang);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(pos, ang);
+ }
+}
Propchange: poi/trunk/src/java/org/apache/poi/sl/draw/geom/ConnectionSite.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: poi/trunk/src/java/org/apache/poi/sl/draw/geom/CurveToCommand.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/CurveToCommand.java?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/CurveToCommand.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/CurveToCommand.java Tue May 5 13:36:30 2020
@@ -20,29 +20,82 @@
package org.apache.poi.sl.draw.geom;
import java.awt.geom.Path2D;
+import java.util.Objects;
-import org.apache.poi.sl.draw.binding.CTAdjPoint2D;
+/**
+ * <p>Java class for CT_Path2DCubicBezierTo complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DCubicBezierTo">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D" maxOccurs="3" minOccurs="3"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+// @XmlAccessorType(XmlAccessType.FIELD)
+// @XmlType(name = "CT_Path2DCubicBezierTo", propOrder = {"pt"})
+public final class CurveToCommand implements PathCommand {
-public class CurveToCommand implements PathCommand {
- private String arg1, arg2, arg3, arg4, arg5, arg6;
+ // @XmlElement(required = true)
+ private final AdjustPoint pt1 = new AdjustPoint();
+ // @XmlElement(required = true)
+ private final AdjustPoint pt2 = new AdjustPoint();
+ // @XmlElement(required = true)
+ private final AdjustPoint pt3 = new AdjustPoint();
- CurveToCommand(CTAdjPoint2D pt1, CTAdjPoint2D pt2, CTAdjPoint2D pt3){
- arg1 = pt1.getX();
- arg2 = pt1.getY();
- arg3 = pt2.getX();
- arg4 = pt2.getY();
- arg5 = pt3.getX();
- arg6 = pt3.getY();
+ public void setPt1(AdjustPoint pt1) {
+ if (pt1 != null) {
+ this.pt1.setX(pt1.getX());
+ this.pt1.setY(pt1.getY());
+ }
+ }
+
+ public void setPt2(AdjustPoint pt2) {
+ if (pt2 != null) {
+ this.pt2.setX(pt2.getX());
+ this.pt2.setY(pt2.getY());
+ }
+ }
+
+ public void setPt3(AdjustPoint pt3) {
+ if (pt3 != null) {
+ this.pt3.setX(pt3.getX());
+ this.pt3.setY(pt3.getY());
+ }
}
@Override
public void execute(Path2D.Double path, Context ctx){
- double x1 = ctx.getValue(arg1);
- double y1 = ctx.getValue(arg2);
- double x2 = ctx.getValue(arg3);
- double y2 = ctx.getValue(arg4);
- double x3 = ctx.getValue(arg5);
- double y3 = ctx.getValue(arg6);
+ double x1 = ctx.getValue(pt1.getX());
+ double y1 = ctx.getValue(pt1.getY());
+ double x2 = ctx.getValue(pt2.getX());
+ double y2 = ctx.getValue(pt2.getY());
+ double x3 = ctx.getValue(pt3.getX());
+ double y3 = ctx.getValue(pt3.getY());
path.curveTo(x1, y1, x2, y2, x3, y3);
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof CurveToCommand)) return false;
+ CurveToCommand that = (CurveToCommand) o;
+ return Objects.equals(pt1, that.pt1) &&
+ Objects.equals(pt2, that.pt2) &&
+ Objects.equals(pt3, that.pt3);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(pt1, pt2, pt3);
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/sl/draw/geom/CustomGeometry.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/CustomGeometry.java?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/CustomGeometry.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/CustomGeometry.java Tue May 5 13:36:30 2020
@@ -22,56 +22,89 @@ package org.apache.poi.sl.draw.geom;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-
-import org.apache.poi.sl.draw.binding.CTCustomGeometry2D;
-import org.apache.poi.sl.draw.binding.CTGeomGuide;
-import org.apache.poi.sl.draw.binding.CTGeomGuideList;
-import org.apache.poi.sl.draw.binding.CTGeomRect;
-import org.apache.poi.sl.draw.binding.CTPath2D;
-import org.apache.poi.sl.draw.binding.CTPath2DList;
+import java.util.Objects;
/**
* Definition of a custom geometric shape
+ *
+ *
+ * <p>Java class for CT_CustomGeometry2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_CustomGeometry2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="avLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>
+ * <element name="gdLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>
+ * <element name="ahLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjustHandleList" minOccurs="0"/>
+ * <element name="cxnLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_ConnectionSiteList" minOccurs="0"/>
+ * <element name="rect" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomRect" minOccurs="0"/>
+ * <element name="pathLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DList"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
*/
-public class CustomGeometry implements Iterable<Path>{
- final List<Guide> adjusts = new ArrayList<>();
+public final class CustomGeometry implements Iterable<Path>{
+ final List<AdjustValue> adjusts = new ArrayList<>();
final List<Guide> guides = new ArrayList<>();
final List<Path> paths = new ArrayList<>();
+ final List<AdjustHandle> handles = new ArrayList<>();
+ final List<ConnectionSite> connections = new ArrayList<>();
Path textBounds;
- public CustomGeometry(CTCustomGeometry2D geom) {
- CTGeomGuideList avLst = geom.getAvLst();
- if(avLst != null) {
- for(CTGeomGuide gd : avLst.getGd()){
- adjusts.add(new AdjustValue(gd));
- }
- }
-
- CTGeomGuideList gdLst = geom.getGdLst();
- if(gdLst != null) {
- for(CTGeomGuide gd : gdLst.getGd()){
- guides.add(new Guide(gd));
- }
- }
-
- CTPath2DList pathLst = geom.getPathLst();
- if(pathLst != null) {
- for(CTPath2D spPath : pathLst.getPath()){
- paths.add(new Path(spPath));
- }
- }
-
- CTGeomRect rect = geom.getRect();
- if(rect != null) {
- textBounds = new Path();
- textBounds.addCommand(new MoveToCommand(rect.getL(), rect.getT()));
- textBounds.addCommand(new LineToCommand(rect.getR(), rect.getT()));
- textBounds.addCommand(new LineToCommand(rect.getR(), rect.getB()));
- textBounds.addCommand(new LineToCommand(rect.getL(), rect.getB()));
- textBounds.addCommand(new ClosePathCommand());
- }
+ public void addAdjustGuide(AdjustValue guide) {
+ adjusts.add(guide);
+ }
+
+ public void addGeomGuide(Guide guide) {
+ guides.add(guide);
+ }
+
+ public void addAdjustHandle(AdjustHandle handle) {
+ handles.add(handle);
+ }
+
+ public void addConnectionSite(ConnectionSite connection) {
+ connections.add(connection);
+ }
+
+ public void addPath(Path path) {
+ paths.add(path);
}
+ public void setTextBounds(String left, String top, String right, String bottom) {
+ textBounds = new Path();
+ textBounds.addCommand(moveTo(left,top));
+ textBounds.addCommand(lineTo(right, top));
+ textBounds.addCommand(lineTo(right, bottom));
+ textBounds.addCommand(lineTo(left, bottom));
+ textBounds.addCommand(new ClosePathCommand());
+ }
+
+ private static MoveToCommand moveTo(String x, String y) {
+ AdjustPoint pt = new AdjustPoint();
+ pt.setX(x);
+ pt.setY(y);
+ MoveToCommand cmd = new MoveToCommand();
+ cmd.setPt(pt);
+ return cmd;
+ }
+
+ private static LineToCommand lineTo(String x, String y) {
+ AdjustPoint pt = new AdjustPoint();
+ pt.setX(x);
+ pt.setY(y);
+ LineToCommand cmd = new LineToCommand();
+ cmd.setPt(pt);
+ return cmd;
+ }
+
+
@Override
public Iterator<Path> iterator() {
return paths.iterator();
@@ -80,4 +113,23 @@ public class CustomGeometry implements I
public Path getTextBounds(){
return textBounds;
}
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof CustomGeometry)) return false;
+ CustomGeometry that = (CustomGeometry) o;
+ return Objects.equals(adjusts, that.adjusts) &&
+ Objects.equals(guides, that.guides) &&
+ Objects.equals(handles, that.handles) &&
+ Objects.equals(connections, that.connections) &&
+ Objects.equals(textBounds, that.textBounds) &&
+ Objects.equals(paths, that.paths);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(adjusts, guides, handles, connections, textBounds, paths);
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/sl/draw/geom/Guide.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/Guide.java?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/Guide.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/Guide.java Tue May 5 13:36:30 2020
@@ -21,13 +21,29 @@ package org.apache.poi.sl.draw.geom;
import static java.lang.Math.*;
+import java.util.Objects;
import java.util.regex.Pattern;
-import org.apache.poi.sl.draw.binding.CTGeomGuide;
-
/**
- * A simple pattern parser of shape guide formulas in DrawingML
+ * <p>Java class for CT_GeomGuide complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_GeomGuide">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="name" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />
+ * <attribute name="fmla" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideFormula" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
*/
+// @XmlAccessorType(XmlAccessType.FIELD)
+// @XmlType(name = "CT_GeomGuide")
public class Guide implements Formula {
enum Op {
muldiv,addsub,adddiv,ifelse,val,abs,sqrt,max,min,at2,sin,cos,tan,cat2,sat2,pin,mod
@@ -35,20 +51,30 @@ public class Guide implements Formula {
private static final Pattern WHITESPACE = Pattern.compile("\\s+");
- @SuppressWarnings({"FieldCanBeLocal", "unused"})
- private final String name, fmla;
- private final Op op;
- private final String[] operands;
+ // @XmlAttribute(name = "name", required = true)
+ // @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ private String name;
+ // @XmlAttribute(name = "fmla", required = true)
+ private String fmla;
+
+ private Op op;
+ private String[] operands;
+ public String getName(){
+ return name;
+ }
- public Guide(CTGeomGuide gd) {
- this(gd.getName(), gd.getFmla());
+ public void setName(String name) {
+ this.name = name;
}
- public Guide(String nm, String fm){
- name = nm;
- fmla = fm;
- operands = WHITESPACE.split(fm);
+ public String getFmla() {
+ return fmla;
+ }
+
+ public void setFmla(String fmla) {
+ this.fmla = fmla;
+ operands = WHITESPACE.split(fmla);
switch (operands[0]) {
case "*/": op = Op.muldiv; break;
case "+-": op = Op.addsub; break;
@@ -58,10 +84,6 @@ public class Guide implements Formula {
}
}
- public String getName(){
- return name;
- }
-
@Override
public double evaluate(Context ctx) {
double x = (operands.length > 1) ? ctx.getValue(operands[1]) : 0;
@@ -126,4 +148,18 @@ public class Guide implements Formula {
return 0;
}
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Guide guide = (Guide) o;
+ return Objects.equals(name, guide.name) &&
+ Objects.equals(fmla, guide.fmla);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, fmla);
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/sl/draw/geom/LineToCommand.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/geom/LineToCommand.java?rev=1877398&r1=1877397&r2=1877398&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/geom/LineToCommand.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/geom/LineToCommand.java Tue May 5 13:36:30 2020
@@ -20,26 +20,63 @@
package org.apache.poi.sl.draw.geom;
import java.awt.geom.Path2D;
+import java.util.Objects;
-import org.apache.poi.sl.draw.binding.CTAdjPoint2D;
+/**
+ * <p>Java class for CT_Path2DLineTo complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DLineTo">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+// @XmlAccessorType(XmlAccessType.FIELD)
+// @XmlType(name = "CT_Path2DLineTo", propOrder = {"pt"})
+public final class LineToCommand implements PathCommand {
-public class LineToCommand implements PathCommand {
- private String arg1, arg2;
+ // @XmlElement(required = true)
+ private final AdjustPoint pt = new AdjustPoint();
- LineToCommand(CTAdjPoint2D pt){
- arg1 = pt.getX();
- arg2 = pt.getY();
+ public AdjustPoint getPt() {
+ return pt;
}
- LineToCommand(String s1, String s2){
- arg1 = s1;
- arg2 = s2;
+ public void setPt(AdjustPoint pt) {
+ if (pt != null) {
+ this.pt.setX(pt.getX());
+ this.pt.setY(pt.getY());
+ }
}
@Override
public void execute(Path2D.Double path, Context ctx){
- double x = ctx.getValue(arg1);
- double y = ctx.getValue(arg2);
+ double x = ctx.getValue(pt.getX());
+ double y = ctx.getValue(pt.getY());
path.lineTo(x, y);
}
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof LineToCommand)) return false;
+ LineToCommand that = (LineToCommand) o;
+ return Objects.equals(pt, that.pt);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(pt);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org