#59268 - Work on providing an updated version of XMLBeans
(imported from https://github.com/apache/poi/pull/113) git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1834165 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0a999d8cd3
commit
18db483a72
@ -18,7 +18,7 @@
|
|||||||
<classpathentry kind="lib" path="lib/ant-1.10.1.jar"/>
|
<classpathentry kind="lib" path="lib/ant-1.10.1.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/ant-launcher-1.10.1.jar"/>
|
<classpathentry kind="lib" path="lib/ant-launcher-1.10.1.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/log4j-1.2.17.jar"/>
|
<classpathentry kind="lib" path="lib/log4j-1.2.17.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="ooxml-lib/xmlbeans-2.6.0.jar" sourcepath="ooxml-lib/xmlbeans-2.6.0.jar"/>
|
<classpathentry exported="true" kind="lib" path="ooxml-lib/xmlbeans-3.0.0.jar" sourcepath="ooxml-lib/xmlbeans-3.0.0.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/hamcrest-core-1.3.jar"/>
|
<classpathentry kind="lib" path="lib/hamcrest-core-1.3.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/junit-4.12.jar"/>
|
<classpathentry kind="lib" path="lib/junit-4.12.jar"/>
|
||||||
<classpathentry kind="lib" path="ooxml-lib/curvesapi-1.05.jar"/>
|
<classpathentry kind="lib" path="ooxml-lib/curvesapi-1.05.jar"/>
|
||||||
|
@ -25,6 +25,12 @@ buildscript {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
maven { url "https://repository.apache.org/content/repositories/staging" }
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Only add the plugin for Sonar if enabled
|
// Only add the plugin for Sonar if enabled
|
||||||
if (project.hasProperty('enableSonar')) {
|
if (project.hasProperty('enableSonar')) {
|
||||||
println 'Enabling Sonar support'
|
println 'Enabling Sonar support'
|
||||||
@ -189,7 +195,7 @@ project('ooxml') {
|
|||||||
compileJava.dependsOn 'ant-compile-ooxml-xsds'
|
compileJava.dependsOn 'ant-compile-ooxml-xsds'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile 'org.apache.xmlbeans:xmlbeans:2.6.0'
|
compile 'org.apache.xmlbeans:xmlbeans:3.0.0'
|
||||||
compile 'org.apache.commons:commons-collections4:4.1'
|
compile 'org.apache.commons:commons-collections4:4.1'
|
||||||
compile 'org.apache.commons:commons-math3:3.6.1'
|
compile 'org.apache.commons:commons-math3:3.6.1'
|
||||||
compile 'org.apache.commons:commons-compress:1.17'
|
compile 'org.apache.commons:commons-compress:1.17'
|
||||||
|
20
build.xml
20
build.xml
@ -199,9 +199,9 @@ under the License.
|
|||||||
<property name="ooxml.curvesapi.jar" location="${ooxml.lib}/curvesapi-1.05.jar"/>
|
<property name="ooxml.curvesapi.jar" location="${ooxml.lib}/curvesapi-1.05.jar"/>
|
||||||
<property name="ooxml.curvesapi.url"
|
<property name="ooxml.curvesapi.url"
|
||||||
value="${repository.m2}/maven2/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar"/>
|
value="${repository.m2}/maven2/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar"/>
|
||||||
<property name="ooxml.xmlbeans.jar" location="${ooxml.lib}/xmlbeans-2.6.0.jar"/>
|
<property name="ooxml.xmlbeans.jar" location="${ooxml.lib}/xmlbeans-3.0.0.jar"/>
|
||||||
<property name="ooxml.xmlbeans.url"
|
<property name="ooxml.xmlbeans.url"
|
||||||
value="${repository.m2}/maven2/org/apache/xmlbeans/xmlbeans/2.6.0/xmlbeans-2.6.0.jar"/>
|
value="https://repository.apache.org/content/repositories/staging/org/apache/xmlbeans/xmlbeans/3.0.0/xmlbeans-3.0.0.jar"/>
|
||||||
<property name="ooxml.commons-compress.jar" location="${main.lib}/commons-compress-1.17.jar"/>
|
<property name="ooxml.commons-compress.jar" location="${main.lib}/commons-compress-1.17.jar"/>
|
||||||
<property name="ooxml.commons-compress.url"
|
<property name="ooxml.commons-compress.url"
|
||||||
value="${repository.m2}/maven2/org/apache/commons/commons-compress/1.17/commons-compress-1.17.jar"/>
|
value="${repository.m2}/maven2/org/apache/commons/commons-compress/1.17/commons-compress-1.17.jar"/>
|
||||||
@ -624,7 +624,7 @@ under the License.
|
|||||||
<include name="ooxml-security-1.0.jar"/>
|
<include name="ooxml-security-1.0.jar"/>
|
||||||
<include name="curvesapi-1.03.jar"/>
|
<include name="curvesapi-1.03.jar"/>
|
||||||
<include name="curvesapi-1.04.jar"/>
|
<include name="curvesapi-1.04.jar"/>
|
||||||
<include name="xmlbeans-2.3.0.jar*"/>
|
<include name="xmlbeans-2.*.jar*"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
<fileset dir="${compile.lib}">
|
<fileset dir="${compile.lib}">
|
||||||
<include name="xercesImpl-*.jar"/>
|
<include name="xercesImpl-*.jar"/>
|
||||||
@ -729,12 +729,8 @@ under the License.
|
|||||||
<target name="fetch-ooxml-jars" depends="check-ooxml-jars" unless="ooxml.jars.present">
|
<target name="fetch-ooxml-jars" depends="check-ooxml-jars" unless="ooxml.jars.present">
|
||||||
<mkdir dir="${ooxml.lib}"/>
|
<mkdir dir="${ooxml.lib}"/>
|
||||||
<downloadfile src="${ooxml.curvesapi.url}" dest="${ooxml.curvesapi.jar}"/>
|
<downloadfile src="${ooxml.curvesapi.url}" dest="${ooxml.curvesapi.jar}"/>
|
||||||
<downloadfile src="${ooxml.xmlbeans.url}" dest="${ooxml.xmlbeans.jar}.orig"/>
|
<downloadfile src="${ooxml.xmlbeans.url}" dest="${ooxml.xmlbeans.jar}"/>
|
||||||
<downloadfile src="${ooxml.commons-compress.url}" dest="${ooxml.commons-compress.jar}"/>
|
<downloadfile src="${ooxml.commons-compress.url}" dest="${ooxml.commons-compress.jar}"/>
|
||||||
<!-- remove piccolo parser, so we don't use unsafe calls to it instead of using jaxp -->
|
|
||||||
<zip destfile="${ooxml.xmlbeans.jar}">
|
|
||||||
<zipfileset src="${ooxml.xmlbeans.jar}.orig" excludes="org/apache/xmlbeans/impl/piccolo/**"/>
|
|
||||||
</zip>
|
|
||||||
</target>
|
</target>
|
||||||
<target name="check-svn-jars">
|
<target name="check-svn-jars">
|
||||||
<condition property="svn.jars.present">
|
<condition property="svn.jars.present">
|
||||||
@ -840,7 +836,7 @@ under the License.
|
|||||||
|
|
||||||
<taskdef name="xmlbean"
|
<taskdef name="xmlbean"
|
||||||
classname="org.apache.xmlbeans.impl.tool.XMLBean"
|
classname="org.apache.xmlbeans.impl.tool.XMLBean"
|
||||||
classpath="${ooxml.xmlbeans.jar}.orig"/>
|
classpath="${ooxml.xmlbeans.jar}"/>
|
||||||
|
|
||||||
<property name="xmlbean.xsds.dir" location="build/xmlbean-xsds"/>
|
<property name="xmlbean.xsds.dir" location="build/xmlbean-xsds"/>
|
||||||
<property name="xmlbean.sources.dir" location="build/xmlbean-sources"/>
|
<property name="xmlbean.sources.dir" location="build/xmlbean-sources"/>
|
||||||
@ -871,7 +867,7 @@ under the License.
|
|||||||
nopvr="@{nopvr}"
|
nopvr="@{nopvr}"
|
||||||
>
|
>
|
||||||
<classpath>
|
<classpath>
|
||||||
<path location="${ooxml.xmlbeans.jar}.orig"/>
|
<path location="${ooxml.xmlbeans.jar}"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
</xmlbean>
|
</xmlbean>
|
||||||
|
|
||||||
@ -1954,8 +1950,8 @@ under the License.
|
|||||||
<globmapper from="*" to="${zipdir}/lib/*"/>
|
<globmapper from="*" to="${zipdir}/lib/*"/>
|
||||||
</mappedresources>
|
</mappedresources>
|
||||||
<mappedresources cache="true">
|
<mappedresources cache="true">
|
||||||
<fileset dir="${ooxml.lib}" includes="xmlbeans-2.6.0.jar.orig,curvesapi-*.jar"/>
|
<fileset dir="${ooxml.lib}" includes="xmlbeans-3.0.0.jar,curvesapi-*.jar"/>
|
||||||
<regexpmapper from="^(.*\.jar)(\.orig)?$$" to="${zipdir}/ooxml-lib/\1"/>
|
<regexpmapper from="^(.*\.jar)$$" to="${zipdir}/ooxml-lib/\1"/>
|
||||||
</mappedresources>
|
</mappedresources>
|
||||||
<mappedresources cache="true">
|
<mappedresources cache="true">
|
||||||
<fileset dir="${dist.dir}/maven" includes="**/*.jar" excludes="**/*-javadoc.jar,**/*-sources.jar"/>
|
<fileset dir="${dist.dir}/maven" includes="**/*.jar" excludes="**/*-javadoc.jar,**/*-sources.jar"/>
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.xmlbeans</groupId>
|
<groupId>org.apache.xmlbeans</groupId>
|
||||||
<artifactId>xmlbeans</artifactId>
|
<artifactId>xmlbeans</artifactId>
|
||||||
<version>2.6.0</version>
|
<version>3.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
<sonar.scm.disabled>true</sonar.scm.disabled>
|
<sonar.scm.disabled>true</sonar.scm.disabled>
|
||||||
|
|
||||||
<!-- define some of the third-party or plugin-versions globally to use the same in all modules -->
|
<!-- define some of the third-party or plugin-versions globally to use the same in all modules -->
|
||||||
<xmlbeans.version>2.6.0</xmlbeans.version>
|
<xmlbeans.version>3.0.0</xmlbeans.version>
|
||||||
<junit.version>4.12</junit.version>
|
<junit.version>4.12</junit.version>
|
||||||
<xmlunit.version>2.5.1</xmlunit.version>
|
<xmlunit.version>2.5.1</xmlunit.version>
|
||||||
<mockito.version>2.13.0</mockito.version>
|
<mockito.version>2.13.0</mockito.version>
|
||||||
|
@ -119,8 +119,8 @@ Before running this, you should execute the "assemble" target in the main build.
|
|||||||
</fileset>
|
</fileset>
|
||||||
<fileset dir="../../ooxml-lib">
|
<fileset dir="../../ooxml-lib">
|
||||||
<include name="ooxml-schemas-*.jar"/>
|
<include name="ooxml-schemas-*.jar"/>
|
||||||
<include name="xmlbeans-*.jar"/>
|
<include name="xmlbeans-3.*.jar"/>
|
||||||
<exclude name="xmlbeans-2.3.*.jar"/>
|
<exclude name="xmlbeans-2.*.jar"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
</path>
|
</path>
|
||||||
|
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
package org.apache.poi.xssf.streaming;
|
||||||
|
|
||||||
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
|
import org.apache.poi.util.TempFile;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class TestSXSSFUnicodeSurrogates {
|
||||||
|
|
||||||
|
private static String unicodeText = "𝝊𝝋𝝌𝝍𝝎𝝏𝝐𝝑𝝒𝝓𝝔𝝕𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮𝝯𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWriteUnicodeSurrogates() throws IOException {
|
||||||
|
String sheetName = "Sheet1";
|
||||||
|
File tf = TempFile.createTempFile("poi-xmlbeans-test", ".xlsx");
|
||||||
|
try (SXSSFWorkbook wb = new SXSSFWorkbook()) {
|
||||||
|
Sheet sheet = wb.createSheet(sheetName);
|
||||||
|
Row row = sheet.createRow(0);
|
||||||
|
Cell cell = row.createCell(0);
|
||||||
|
cell.setCellValue(unicodeText);
|
||||||
|
try (FileOutputStream os = new FileOutputStream(tf)) {
|
||||||
|
wb.write(os);
|
||||||
|
}
|
||||||
|
try (FileInputStream fis = new FileInputStream(tf);
|
||||||
|
XSSFWorkbook wb2 = new XSSFWorkbook(fis)) {
|
||||||
|
Sheet sheet2 = wb2.getSheet(sheetName);
|
||||||
|
Cell cell2 = sheet2.getRow(0).getCell(0);
|
||||||
|
Assert.assertEquals(unicodeText, cell2.getStringCellValue());
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
tf.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
package org.apache.poi.xssf.usermodel;
|
||||||
|
|
||||||
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
|
import org.apache.poi.util.TempFile;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class TestXSSFUnicodeSurrogates {
|
||||||
|
|
||||||
|
private static String unicodeText = "𝝊𝝋𝝌𝝍𝝎𝝏𝝐𝝑𝝒𝝓𝝔𝝕𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝧𝝨𝝩𝝪𝝫𝝬𝝭𝝮𝝯𝝰𝝱𝝲𝝳𝝴𝝵𝝶𝝷𝝸𝝹𝝺";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWriteUnicodeSurrogates() throws IOException {
|
||||||
|
String sheetName = "Sheet1";
|
||||||
|
File tf = TempFile.createTempFile("poi-xmlbeans-test", ".xlsx");
|
||||||
|
try (XSSFWorkbook wb = new XSSFWorkbook()) {
|
||||||
|
Sheet sheet = wb.createSheet(sheetName);
|
||||||
|
Row row = sheet.createRow(0);
|
||||||
|
Cell cell = row.createCell(0);
|
||||||
|
cell.setCellValue(unicodeText);
|
||||||
|
try (FileOutputStream os = new FileOutputStream(tf)) {
|
||||||
|
wb.write(os);
|
||||||
|
}
|
||||||
|
try (FileInputStream fis = new FileInputStream(tf);
|
||||||
|
XSSFWorkbook wb2 = new XSSFWorkbook(fis)) {
|
||||||
|
Sheet sheet2 = wb2.getSheet(sheetName);
|
||||||
|
Cell cell2 = sheet2.getRow(0).getCell(0);
|
||||||
|
Assert.assertEquals(unicodeText, cell2.getStringCellValue());
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
tf.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user