Author: fanningpj
Date: Sat May 26 08:31:14 2018
New Revision: 1832298
URL: http://svn.apache.org/viewvc?rev=1832298&view=rev
Log:
make java 6 the min supported version, fix build and bring in fixes from
https://github.com/pjfanning/xmlbeans/blob/trunk/CHANGES.txt
Added:
xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/NullLogger.java
xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/SAXHelper.java
xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogFactory.java
xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogger.java
Removed:
xmlbeans/trunk/external/lib/piccolo.LICENSE.txt
xmlbeans/trunk/external/lib/piccolo_apache_dist_20040629.jar
xmlbeans/trunk/external/lib/piccolo_apache_dist_20040629_v2.jar
xmlbeans/trunk/external/lib/piccolo_apache_dist_20040711.jar
xmlbeans/trunk/external/lib/piccolo_apache_dist_20040711_v2.jar
xmlbeans/trunk/src/store/org/w3c/
xmlbeans/trunk/src/xmlpublic/javax/
Modified:
xmlbeans/trunk/build.xml
xmlbeans/trunk/samples/AbstractTypes/build.xml
xmlbeans/trunk/samples/Any/build.xml
xmlbeans/trunk/samples/DateTime/build.xml
xmlbeans/trunk/samples/MixedContent/build.xml
xmlbeans/trunk/samples/OrderMatters/build.xml
xmlbeans/trunk/samples/SampleTemplate/build.xml
xmlbeans/trunk/samples/SchemaEnum/build.xml
xmlbeans/trunk/samples/SubstitutionGroup/build.xml
xmlbeans/trunk/samples/Validation/build.xml
xmlbeans/trunk/samples/XQueryXPath/build.xml
xmlbeans/trunk/samples/XmlSort/build.xml
xmlbeans/trunk/samples/XmlTree/build.xml
xmlbeans/trunk/samples/XsdConfig/build.xml
xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Cur.java
xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java
xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java
xmlbeans/trunk/test/perf/build.xml
xmlbeans/trunk/test/src/xmlcursor/checkin/StoreTests.java
xmlbeans/trunk/test/src/xmlobject/checkin/AssortedTests.java
xmlbeans/trunk/test/src/xmlobject/checkin/CDataTest.java
xmlbeans/trunk/testbuild.xml
Modified: xmlbeans/trunk/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/build.xml (original)
+++ xmlbeans/trunk/build.xml Sat May 26 08:31:14 2018
@@ -15,11 +15,11 @@
-->
<project name="Xbean" default="default" basedir=".">
- <property name="build.compiler" value="javac1.4"/>
- <property name="javac.source" value="1.4"/>
- <property name="javac.target" value="1.4"/>
+ <property name="build.compiler" value="javac1.6"/>
+ <property name="javac.source" value="1.6"/>
+ <property name="javac.target" value="1.6"/>
- <property name="version.base" value="2.6.0"/>
+ <property name="version.base" value="2.7.0"/>
<property name="version.rc" value=""/>
<!-- manifest entries -->
@@ -114,7 +114,7 @@
http://easynews.dl.sourceforge.net/sourceforge/saxon/saxonb8-8j.zip
-->
<get dest="external/lib/saxonb9-0-0-4j.zip"
- src="http://prdownloads.sourceforge.net/saxon/saxonb9-0-0-4j.zip"
+
src="https://master.dl.sourceforge.net/project/saxon/OldFiles/9.0/9.0.0.4/saxonb9-0-0-4j.zip"
verbose="true" usetimestamp="true" ignoreerrors="true"/>
<unzip src="external/lib/saxonb9-0-0-4j.zip" dest="external/lib/">
<patternset>
@@ -128,39 +128,6 @@
<copy file="external/lib/saxon9-dom.jar"
tofile="build/lib/saxon9-dom.jar"/>
</target>
- <target name="jsr173-bundle.downloaded">
- <condition property="jsr173-bundle.exists">
- <available file="external/lib/jsr173_1.0_api_bundle.jar"/>
- </condition>
- </target>
-
- <target name="jsr173-bundle.jar"
- depends="jsr173-bundle.downloaded, dirs"
- unless="jsr173-bundle.exists">
- <get dest="external/lib/jsr173_1.0_api_bundle.jar"
-
src="http://www.apache.org/dist/java-repository/xmlbeans/jars/jsr173_1.0_api_bundle.jar"
- verbose="true" usetimestamp="true" ignoreerrors="true"/>
- </target>
-
- <target name="jsr173_1.0.jars.extracted">
- <condition property="jsr173_1.0.jars.exist">
- <available file="build/lib/jsr173_1.0_api.jar"/>
- </condition>
- </target>
-
- <target name="jsr173_1.0.jars"
- depends="jsr173-bundle.jar, jsr173_1.0.jars.extracted"
- unless="jsr173_1.0.jars.exist">
- <unjar src="external/lib/jsr173_1.0_api_bundle.jar"
dest="external/lib" >
- <patternset>
- <include name="jsr173_1.0_api.jar"/>
- </patternset>
- </unjar>
-
- <!-- copy jsr173 API jar and license files to build/lib -->
- <copy file="external/lib/jsr173_1.0_api.jar"
tofile="build/lib/jsr173_1.0_api.jar"/>
- </target>
-
<!-- get resolver.jar -->
<target name="check.xcresolver.zip">
<condition property="xcresolver.zip.exists">
@@ -353,12 +320,8 @@
<fileset dir="build/lib">
<include name="xbean.jar"/>
<include name="xmlpublic.jar"/>
- <include name="xmlbeans-qname.jar"/>
<include name="xbean_xpath.jar"/>
<include name="resolver.jar"/>
- <include name="jsr173_1.0_api.jar"/>
- <include name="BEA Binary RI License (JSR 173).1(Clean).txt"/>
- <include name="README(jsr_173 api and ri).txt"/>
</fileset>
</copy>
@@ -488,8 +451,8 @@
store.classes, saaj_api.classes,
marshal.classes, xpath.classes, oldxbean.jar,
xsdschema.classes,
xmlinputstream.classes, resolver.jar, xbean_xpath.jar,
- piccolo.classes, tools.classes, jamsupport.classes">
- <jar jarfile="build/lib/xbean.jar" index="true">
+ tools.classes, jamsupport.classes">
+ <jar jarfile="build/lib/xbean.jar" index="true" duplicate="preserve">
<fileset dir="build/classes/xmlpublic"
excludes="javax/**"/>
<fileset dir="build/classes/typeholder"/>
@@ -509,7 +472,6 @@
<fileset dir="build/classes/marshal"/>
<fileset dir="build/classes/repackage"/>
<fileset dir="build/classes/jam"/>
- <fileset dir="build/classes/piccolo"/>
<fileset dir="build/classes/tools"/>
<fileset file="LICENSE.txt"/>
<fileset file="NOTICE.txt"/>
@@ -523,10 +485,6 @@
</section>
</manifest>
</jar>
- <jar jarfile="build/lib/xmlbeans-qname.jar">
- <fileset dir="build/classes/xmlpublic"
-
includes="javax/xml/namespace/QName.class,javax/xml/namespace/NamespaceContext.class"/>
- </jar>
</target>
<!-- build XMLInputStream interface
============================================= -->
@@ -545,12 +503,10 @@
<!-- xmlpublic target ============================================== -->
- <target name="xmlpublic.classes" depends="dirs, jsr173_1.0.jars">
+ <target name="xmlpublic.classes" depends="dirs">
<mkdir dir="build/classes/xmlpublic"/>
<javac srcdir="src/xmlpublic" sourcepath="src/xmlinputstream"
destdir="build/classes/xmlpublic" source="${javac.source}"
target="${javac.target}" debug="on">
- <classpath>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
- </classpath>
+ <classpath/>
</javac>
<!-- Need properties files for XmlError -->
@@ -586,7 +542,6 @@
<mkdir dir="build/classes/typestore"/>
<javac srcdir="src/typestore" destdir="build/classes/typestore"
source="${javac.source}" target="${javac.target}" debug="on">
<classpath>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/xmlpublic"/>
<pathelement location="build/classes/common"/>
@@ -597,11 +552,10 @@
<!-- common target ============================================= -->
- <target name="common.classes" depends="dirs, xmlpublic.classes,
xmlinputstream.classes, jsr173_1.0.jars">
+ <target name="common.classes" depends="dirs, xmlpublic.classes,
xmlinputstream.classes">
<mkdir dir="build/classes/common"/>
<javac srcdir="src/common" destdir="build/classes/common"
source="${javac.source}" target="${javac.target}" debug="on">
<classpath>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/xmlpublic"/>
</classpath>
@@ -639,7 +593,7 @@
<target name="typeimpl.classes" depends="dirs, store.classes,
repackage.classes, xmlpublic.classes, typeholder.template,
typestore.classes, xsdschema.classes,
- configschema.classes, toolschema.classes, jsr173_1.0.jars,
jam.classes">
+ configschema.classes, toolschema.classes, jam.classes">
<mkdir dir="build/classes/typeimpl"/>
<javac destdir="build/classes/typeimpl" source="${javac.source}"
target="${javac.target}" debug="on">
<classpath>
@@ -655,7 +609,6 @@
<pathelement location="build/classes/xmlschema"/>
<pathelement location="build/classes/toolschema"/>
<pathelement location="build/classes/jam"/>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
</classpath>
<src path="src/typeimpl"/>
@@ -681,7 +634,6 @@
<mkdir dir="build/classes/xmlcomp"/>
<javac srcdir="src/xmlcomp" destdir="build/classes/xmlcomp"
source="${javac.source}" target="${javac.target}" debug="on">
<classpath>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/xmlpublic"/>
<pathelement location="build/classes/common"/>
@@ -691,17 +643,17 @@
<pathelement location="build/classes/configschema"/>
<pathelement location="build/classes/toolschema"/>
<pathelement location="build/classes/xsdschema"/>
+ <pathelement location="build/classes/typestore"/>
</classpath>
</javac>
</target>
<!-- marshal target =============================================== -->
- <target name="marshal.classes" depends="dirs, typeimpl.classes,
xmlpublic.classes, jsr173_1.0.jars">
+ <target name="marshal.classes" depends="dirs, typeimpl.classes,
xmlpublic.classes">
<mkdir dir="build/classes/marshal"/>
<javac srcdir="src/marshal" destdir="build/classes/marshal"
source="${javac.source}" target="${javac.target}" debug="on">
<classpath>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
<pathelement location="build/classes/configschema"/>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/xmlpublic"/>
@@ -738,17 +690,15 @@
<!-- store target ============================================== -->
<target name="store.classes"
- depends="dirs, common.classes, xmlpublic.classes, typestore.classes,
saaj_api.classes, piccolo.classes">
+ depends="dirs, common.classes, xmlpublic.classes, typestore.classes,
saaj_api.classes">
<mkdir dir="build/classes/store"/>
<javac srcdir="src/store" destdir="build/classes/store"
source="${javac.source}" target="${javac.target}" debug="on">
<classpath id="store.compile.path">
<pathelement location="build/classes/typestore"/>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/xmlpublic"/>
<pathelement location="build/classes/common"/>
<pathelement location="build/classes/saaj_api"/>
- <pathelement location="build/classes/piccolo"/>
</classpath>
</javac>
</target>
@@ -756,18 +706,16 @@
<!-- tools target ============================================== -->
<target name="tools.classes"
- depends="dirs, common.classes, xmlpublic.classes, typestore.classes,
saaj_api.classes, piccolo.classes,
+ depends="dirs, common.classes, xmlpublic.classes, typestore.classes,
saaj_api.classes,
typeimpl.classes, xmlcomp.classes">
<mkdir dir="build/classes/tools"/>
<javac srcdir="src/tools" destdir="build/classes/tools"
source="${javac.source}" target="${javac.target}" debug="on">
<classpath id="tools.compile.path">
<pathelement location="build/classes/typestore"/>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/xmlpublic"/>
<pathelement location="build/classes/common"/>
<pathelement location="build/classes/saaj_api"/>
- <pathelement location="build/classes/piccolo"/>
<pathelement location="build/classes/typeimpl"/>
<pathelement location="build/classes/xmlcomp"/>
</classpath>
@@ -784,13 +732,11 @@
<path id="bootstrap.run.path">
<pathelement location="build/private/lib/oldxbean.jar"/>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
<pathelement location="build/classes/xmlpublic"/>
</path>
<path id="bootstrap.compile.path">
<pathelement location="build/classes/xmlpublic"/>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
</path>
<property name="bootstrap.compile.path" refid="bootstrap.compile.path"/>
@@ -834,7 +780,7 @@
</condition>
</target>
- <target name="xmlschema.classes" depends="xmlschema.check,
xmlpublic.classes, oldxbean.jar, jsr173_1.0.jars"
unless="xmlschema.notRequired">
+ <target name="xmlschema.classes" depends="xmlschema.check,
xmlpublic.classes, oldxbean.jar" unless="xmlschema.notRequired">
<delete dir="build/classes/xmlschema"/>
<delete dir="build/src/xmlschema"/>
<java classname="${bootstrap_schema_compiler}"
classpathref="bootstrap.run.path" fork="true" failonerror="true">
@@ -919,7 +865,6 @@
<property name="repackage_arg" value=""/>
<property name="schema_compiler"
value="org.apache.xmlbeans.impl.tool.SchemaCompiler"/>
<property name="bootstrap_schema_compiler"
value="org.apache.xmlbeans.impl.tool.SchemaCompiler"/>
- <property name="piccolo_package_name"
value="org.apache.xmlbeans.impl.piccolo"/>
<property name="jam_package_name" value="org.apache.xmlbeans.impl.jam"/>
<!--
@@ -1063,7 +1008,6 @@
<pathelement location="build/classes/common"/>
<pathelement location="external/lib/junit.jar"/>
<pathelement location="build/ar/xbean.jar"/>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
<pathelement location="build/classes/xmlinputstream"/>
</path>
@@ -1073,7 +1017,7 @@
</path>
- <target name="drt.classes" depends="dirs,jsr173_1.0.jars">
+ <target name="drt.classes" depends="dirs">
<mkdir dir="build/private/classes/drt"/>
<javac
destdir="build/private/classes/drt"
@@ -1093,7 +1037,6 @@
<path id="scomp.run.path">
<pathelement location="build/lib/xbean.jar"/>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
</path>
<target name="stsschema.check">
@@ -1118,7 +1061,7 @@
</uptodate>
</target>
- <target name="jam.classes" depends="jam.classes.check, dirs,
repackage.classes, jsr173_1.0.jars" unless="jam.classes.notRequired">
+ <target name="jam.classes" depends="jam.classes.check, dirs,
repackage.classes" unless="jam.classes.notRequired">
<delete dir="build/private/jam"/>
<mkdir dir="build/private/jam"/>
<unjar src="external/lib/jam-0.1.0-src.jar" dest="build/private/jam"/>
@@ -1137,46 +1080,10 @@
<mkdir dir="build/classes/jam"/>
<javac
destdir="build/classes/jam"
- source="1.4" target="1.4"
+ source="${javac.source}" target="${javac.target}"
debug="on">
<src path="build/private/jam/src_repackage"/>
- <classpath>
- <pathelement location="build/lib/jsr173_1.0_api.jar"/>
- </classpath>
- </javac>
- </target>
-
- <!-- Piccolo deployment -->
- <target name="piccolo.classes.check">
- <uptodate property="piccolo.classes.notRequired"
- targetfile="build/ar/xbean.jar">
- <srcfiles dir="external/lib" includes="**/piccolo_*.jar"/>
- </uptodate>
- </target>
-
- <target name="piccolo.classes" depends="piccolo.classes.check, dirs,
repackage.classes" unless="piccolo.classes.notRequired">
- <delete dir="build/private/piccolo"/>
- <mkdir dir="build/private/piccolo"/>
- <unjar src="external/lib/piccolo_apache_dist_20040711_v2.jar"
dest="build/private/piccolo"/>
-
- <echo message="Re-packaging Piccolo"/>
-
- <java classname="repackage.Repackage" fork="true" failonerror="true">
- <classpath>
- <pathelement location="build/classes/repackage"/>
- </classpath>
- <arg line="-repackage com.bluecast:${piccolo_package_name} -f
build/private/piccolo/src -t build/private/piccolo/src_repackage"/>
- </java>
-
- <delete dir="build/classes/piccolo"/>
- <mkdir dir="build/classes/piccolo"/>
- <javac
- destdir="build/classes/piccolo"
- classpath=""
- source="1.3" target="1.4"
- debug="on">
- <src path="build/private/piccolo/src_repackage"/>
+ <classpath/>
</javac>
</target>
-
</project>
Modified: xmlbeans/trunk/samples/AbstractTypes/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/AbstractTypes/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/AbstractTypes/build.xml (original)
+++ xmlbeans/trunk/samples/AbstractTypes/build.xml Sat May 26 08:31:14 2018
@@ -70,7 +70,7 @@
<path refid="xmlbeans.classpath"/>
</classpath>
</scomp>
- <javac srcdir="src" destdir="build" debug="on" source="1.4">
+ <javac srcdir="src" destdir="build" debug="on" source="1.6">
<classpath>
<path refid="xmlbeans.classpath"/>
<pathelement location="build/${abstract.jar}"/>
Modified: xmlbeans/trunk/samples/Any/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/Any/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/Any/build.xml (original)
+++ xmlbeans/trunk/samples/Any/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="Any.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/DateTime/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/DateTime/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/DateTime/build.xml (original)
+++ xmlbeans/trunk/samples/DateTime/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="DateTime.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/MixedContent/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/MixedContent/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/MixedContent/build.xml (original)
+++ xmlbeans/trunk/samples/MixedContent/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="MixedContent.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/OrderMatters/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/OrderMatters/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/OrderMatters/build.xml (original)
+++ xmlbeans/trunk/samples/OrderMatters/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="OrderMatters.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/SampleTemplate/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/SampleTemplate/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/SampleTemplate/build.xml (original)
+++ xmlbeans/trunk/samples/SampleTemplate/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="SampleTemplate.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/SchemaEnum/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/SchemaEnum/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/SchemaEnum/build.xml (original)
+++ xmlbeans/trunk/samples/SchemaEnum/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="SchemaEnum.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/SubstitutionGroup/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/SubstitutionGroup/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/SubstitutionGroup/build.xml (original)
+++ xmlbeans/trunk/samples/SubstitutionGroup/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="SubstitutionGroup.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/Validation/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/Validation/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/Validation/build.xml (original)
+++ xmlbeans/trunk/samples/Validation/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="Validation.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/XQueryXPath/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/XQueryXPath/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/XQueryXPath/build.xml (original)
+++ xmlbeans/trunk/samples/XQueryXPath/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="XQueryXPath.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/XmlSort/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/XmlSort/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/XmlSort/build.xml (original)
+++ xmlbeans/trunk/samples/XmlSort/build.xml Sat May 26 08:31:14 2018
@@ -65,7 +65,7 @@ limitations under the License.
destdir="build/classes"
classpathref="XmlSort.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/XmlTree/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/XmlTree/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/XmlTree/build.xml (original)
+++ xmlbeans/trunk/samples/XmlTree/build.xml Sat May 26 08:31:14 2018
@@ -89,7 +89,7 @@ limitations under the License.
destdir="build/classes"
classpathref="XmlTree.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/samples/XsdConfig/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/samples/XsdConfig/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/samples/XsdConfig/build.xml (original)
+++ xmlbeans/trunk/samples/XsdConfig/build.xml Sat May 26 08:31:14 2018
@@ -120,13 +120,13 @@ limitations under the License.
destdir="build/classes"
classpathref="XsdConfig.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
<javac srcdir="src"
includes="org/apache/xmlbeans/samples/xsdconfig/CatalogXsd.java
org/apache/xmlbeans/samples/xsdconfig/XsdTest.java "
destdir="build/classes"
classpathref="Xsd.path"
debug="on"
- source="1.4"
+ source="1.6"
/>
</target>
Modified: xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Cur.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Cur.java?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Cur.java (original)
+++ xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Cur.java Sat May 26
08:31:14 2018
@@ -3466,28 +3466,36 @@ final class Cur
String s = CharUtil.getString( src, off, cch );
- for ( int i = 0 ; i < s.length() ; i++ )
+ for ( int i = 0 ; i < s.length(); )
{
- if (i== 36)
+ if (i == 36)
{
o.print( "..." );
break;
}
- char ch = s.charAt( i );
-
- if (ch >= 32 && ch < 127)
- o.print( ch );
- else if (ch == '\n')
- o.print( "\\n" );
- else if (ch == '\r')
- o.print( "\\r" );
- else if (ch == '\t')
- o.print( "\\t" );
- else if (ch == '\"')
- o.print( "\\\"" );
- else
- o.print( "<#" + ((int) ch) + ">" );
+ int codePoint = s.codePointAt( i );
+ char[] chars = Character.toChars(codePoint);
+
+ if ( chars.length == 1 ) {
+ char ch = chars[0];
+ if (ch >= 32 && ch < 127)
+ o.print( ch );
+ else if (ch == '\n')
+ o.print( "\\n" );
+ else if (ch == '\r')
+ o.print( "\\r" );
+ else if (ch == '\t')
+ o.print( "\\t" );
+ else if (ch == '\"')
+ o.print( "\\\"" );
+ else
+ o.print( "<#" + ((int) ch) + ">" );
+ } else {
+ o.print( "<#" + codePoint + ">" );
+ }
+
+ i += Character.charCount(codePoint);
}
o.print( "\"" );
Modified: xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java
(original)
+++ xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java Sat May
26 08:31:14 2018
@@ -1,4 +1,4 @@
-/* Copyright 2004 The Apache Software Foundation
+/* Copyright 2004-2017 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,6 @@ import org.xml.sax.InputSource;
import org.xml.sax.ext.LexicalHandler;
import org.xml.sax.ext.DeclHandler;
import org.xml.sax.SAXParseException;
-import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.SAXException;
import org.xml.sax.DTDHandler;
@@ -38,8 +37,6 @@ import java.lang.ref.Reference;
import java.lang.ref.PhantomReference;
import java.lang.ref.SoftReference;
-import java.lang.reflect.Method;
-
import java.io.InputStream;
import java.io.Reader;
import java.io.StringReader;
@@ -106,9 +103,6 @@ import org.apache.xmlbeans.impl.values.T
import org.apache.xmlbeans.impl.values.TypeStoreUser;
import org.apache.xmlbeans.impl.values.TypeStoreUserFactory;
-import org.apache.xmlbeans.impl.piccolo.xml.Piccolo;
-import org.apache.xmlbeans.impl.piccolo.io.FileFormatException;
-
public final class Locale
implements DOMImplementation, SaajCallback, XmlLocale
{
@@ -3035,18 +3029,7 @@ public final class Locale
}
}
- private static SaxLoader getPiccoloSaxLoader()
- {
- SaxLoader piccoloLoader = (SaxLoader) SystemCache.get().getSaxLoader();
- if (piccoloLoader == null)
- {
- piccoloLoader = PiccoloSaxLoader.newInstance();
- SystemCache.get().setSaxLoader(piccoloLoader);
- }
- return piccoloLoader;
- }
-
- private static SaxLoader getSaxLoader(XmlOptions options)
+ private static SaxLoader getSaxLoader(XmlOptions options) throws
XmlException
{
options = XmlOptions.maskNull(options);
@@ -3063,31 +3046,23 @@ public final class Locale
er = new DefaultEntityResolver();
}
- SaxLoader sl;
-
- if (options.hasOption(XmlOptions.LOAD_USE_XMLREADER))
- {
- XMLReader xr = (XMLReader) options.get(
- XmlOptions.LOAD_USE_XMLREADER);
+ XMLReader xr = (XMLReader) options.get(
+ XmlOptions.LOAD_USE_XMLREADER);
- if (xr == null)
- throw new IllegalArgumentException("XMLReader is null");
-
- sl = new XmlReaderSaxLoader(xr);
-
- // I've noticed that most XMLReaders don't like a null
EntityResolver...
-
- if (er != null)
- xr.setEntityResolver(er);
+ if (xr == null) {
+ try {
+ xr = SAXHelper.newXMLReader();
+ } catch(Exception e) {
+ throw new XmlException("Problem creating XMLReader", e);
+ }
}
- else
- {
- sl = getPiccoloSaxLoader();
- // Piccolo doesnot mind a null entity resolver ...
+ SaxLoader sl = new XmlReaderSaxLoader(xr);
- sl.setEntityResolver(er);
- }
+ // I've noticed that most XMLReaders don't like a null
EntityResolver...
+
+ if (er != null)
+ xr.setEntityResolver(er);
return sl;
}
@@ -3101,34 +3076,6 @@ public final class Locale
}
}
- private static class PiccoloSaxLoader
- extends SaxLoader
- {
- private PiccoloSaxLoader(Piccolo p)
- {
- super(p, p.getStartLocator());
-
- _piccolo = p;
- }
-
- static PiccoloSaxLoader newInstance()
- {
- return new PiccoloSaxLoader(new Piccolo());
- }
-
- void postLoad(Cur c)
- {
- XmlDocumentProperties props = getDocProps(c, true);
-
- props.setEncoding(_piccolo.getEncoding());
- props.setVersion(_piccolo.getVersion());
-
- super.postLoad(c);
- }
-
- private Piccolo _piccolo;
- }
-
private static abstract class SaxHandler
implements ContentHandler, LexicalHandler , DeclHandler, DTDHandler
{
@@ -3183,7 +3130,7 @@ public final class Locale
if (local.length() == 0)
local = qName;
- // Out current parser (Piccolo) does not error when a
+ // Out current parser does not error when a
// namespace is used and not defined. Check for these here
if (qName.indexOf(':') >= 0 && uri.length() == 0)
@@ -3473,12 +3420,6 @@ public final class Locale
return c;
}
- catch (FileFormatException e)
- {
- _context.abort();
-
- throw new XmlException(e.getMessage(), e);
- }
catch (XmlRuntimeException e)
{
_context.abort();
Added: xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/NullLogger.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/NullLogger.java?rev=1832298&view=auto
==============================================================================
--- xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/NullLogger.java
(added)
+++ xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/NullLogger.java Sat
May 26 08:31:14 2018
@@ -0,0 +1,81 @@
+/* Copyright 2017 The Apache Software Foundation
+ *
+ * Licensed 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.xmlbeans.impl.store;
+
+/**
+ * A logger class that strives to make it as easy as possible for
+ * developers to write log calls, while simultaneously making those
+ * calls as cheap as possible by performing lazy evaluation of the log
+ * message.<p>
+ */
+public class NullLogger extends XBLogger {
+ @Override
+ public void initialize(final String cat) {
+ // do nothing
+ }
+
+ /**
+ * Log a message
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The object to log.
+ */
+
+ @Override
+ protected void _log(final int level, final Object obj1) {
+ // do nothing
+ }
+
+ /**
+ * Log a message
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The object to log. This is converted to a string.
+ * @param exception An exception to be logged
+ */
+ @Override
+ protected void _log(int level, Object obj1, final Throwable exception) {
+ // do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ * If the last parameter is a {@link Throwable} it is logged specially.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param objs the objects to place in the message
+ */
+ @Override
+ public void log(int level, Object... objs) {
+ // do nothing
+ }
+
+
+ /**
+ * Check if a logger is enabled to log at the specified level
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ */
+ @Override
+ public boolean check(final int level) {
+ return false;
+ }
+}
+
+
+
+
+
Added: xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/SAXHelper.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/SAXHelper.java?rev=1832298&view=auto
==============================================================================
--- xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/SAXHelper.java
(added)
+++ xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/SAXHelper.java Sat
May 26 08:31:14 2018
@@ -0,0 +1,99 @@
+/* Copyright 2017 The Apache Software Foundation
+ *
+ * Licensed 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.xmlbeans.impl.store;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.lang.reflect.Method;
+import java.util.concurrent.TimeUnit;
+
+import javax.xml.XMLConstants;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+
+/**
+ * Provides handy methods for working with SAX parsers and readers
+ */
+public final class SAXHelper {
+ private static final XBLogger logger =
XBLogFactory.getLogger(SAXHelper.class);
+ private static long lastLog;
+
+ private SAXHelper() {}
+
+ /**
+ * Creates a new SAX XMLReader, with sensible defaults
+ */
+ public static synchronized XMLReader newXMLReader() throws SAXException,
ParserConfigurationException {
+ XMLReader xmlReader = saxFactory.newSAXParser().getXMLReader();
+ xmlReader.setEntityResolver(IGNORING_ENTITY_RESOLVER);
+ trySetSAXFeature(xmlReader, XMLConstants.FEATURE_SECURE_PROCESSING);
+ trySetXercesSecurityManager(xmlReader);
+ return xmlReader;
+ }
+
+ static final EntityResolver IGNORING_ENTITY_RESOLVER = new
EntityResolver() {
+ @Override
+ public InputSource resolveEntity(String publicId, String systemId)
+ throws SAXException, IOException {
+ return new InputSource(new StringReader(""));
+ }
+ };
+
+ private static final SAXParserFactory saxFactory;
+ static {
+ saxFactory = SAXParserFactory.newInstance();
+ saxFactory.setValidating(false);
+ saxFactory.setNamespaceAware(true);
+ }
+
+ private static void trySetSAXFeature(XMLReader xmlReader, String feature) {
+ try {
+ xmlReader.setFeature(feature, true);
+ } catch (Exception e) {
+ logger.log(XBLogger.WARN, "SAX Feature unsupported", feature, e);
+ } catch (AbstractMethodError ame) {
+ logger.log(XBLogger.WARN, "Cannot set SAX feature because outdated
XML parser in classpath", feature, ame);
+ }
+ }
+
+ private static void trySetXercesSecurityManager(XMLReader xmlReader) {
+ // Try built-in JVM one first, standalone if not
+ for (String securityManagerClassName : new String[] {
+ "com.sun.org.apache.xerces.internal.util.SecurityManager",
+ "org.apache.xerces.util.SecurityManager"
+ }) {
+ try {
+ Object mgr =
Class.forName(securityManagerClassName).newInstance();
+ Method setLimit =
mgr.getClass().getMethod("setEntityExpansionLimit", Integer.TYPE);
+ setLimit.invoke(mgr, 4096);
+
xmlReader.setProperty("http://apache.org/xml/properties/security-manager", mgr);
+ // Stop once one can be setup without error
+ return;
+ } catch (Throwable e) { // NOSONAR - also catch things like
NoClassDefError here
+ // throttle the log somewhat as it can spam the log otherwise
+ if(System.currentTimeMillis() > lastLog +
TimeUnit.MINUTES.toMillis(5)) {
+ logger.log(XBLogger.WARN, "SAX Security Manager could not
be setup [log suppressed for 5 minutes]", e);
+ lastLog = System.currentTimeMillis();
+ }
+ }
+ }
+ }
+}
Modified: xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java
(original)
+++ xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java Sat May
26 08:31:14 2018
@@ -275,7 +275,23 @@ abstract class Saver
end.moveToCur( c );
end.toEnd();
}
-
+
+ /**
+ * Test if a character is valid in xml character content. See
+ * http://www.w3.org/TR/REC-xml#NT-Char
+ */
+ static boolean isBadChar ( char ch )
+ {
+ return ! (
+ Character.isHighSurrogate(ch) ||
+ Character.isLowSurrogate(ch) ||
+ (ch >= 0x20 && ch <= 0xD7FF ) ||
+ (ch >= 0xE000 && ch <= 0xFFFD) ||
+ (ch >= 0x10000 && ch <= 0x10FFFF) ||
+ (ch == 0x9) || (ch == 0xA) || (ch == 0xD)
+ );
+ }
+
protected boolean saveNamespacesFirst ( )
{
return _saveNamespacesFirst;
@@ -1387,7 +1403,7 @@ abstract class Saver
if (++i == _buf.length)
i = 0;
- for ( int cch = _lastEmitCch ; cch > 0 ; cch-- )
+ for ( int cch = _lastEmitCch - 2 ; cch > 0 ; cch-- )
{
char ch = _buf[ i ];
@@ -1552,21 +1568,6 @@ abstract class Saver
}
/**
- * Test if a character is valid in xml character content. See
- * http://www.w3.org/TR/REC-xml#NT-Char
- */
-
- private boolean isBadChar ( char ch )
- {
- return ! (
- (ch >= 0x20 && ch <= 0xD7FF ) ||
- (ch >= 0xE000 && ch <= 0xFFFD) ||
- (ch >= 0x10000 && ch <= 0x10FFFF) ||
- (ch == 0x9) || (ch == 0xA) || (ch == 0xD)
- );
- }
-
- /**
* Test if a character is to be replaced with an escaped value
*/
private boolean isEscapedChar ( char ch )
@@ -2190,20 +2191,6 @@ abstract class Saver
}
}
- /**
- * Test if a character is valid in xml character content. See
- * http://www.w3.org/TR/REC-xml#NT-Char
- */
- private boolean isBadChar ( char ch )
- {
- return ! (
- (ch >= 0x20 && ch <= 0xD7FF ) ||
- (ch >= 0xE000 && ch <= 0xFFFD) ||
- (ch >= 0x10000 && ch <= 0x10FFFF) ||
- (ch == 0x9) || (ch == 0xA) || (ch == 0xD)
- );
- }
-
private void emitLiteral ( String literal )
{
// TODO: systemId production
http://www.w3.org/TR/REC-xml/#NT-SystemLiteral
Added: xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogFactory.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogFactory.java?rev=1832298&view=auto
==============================================================================
--- xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogFactory.java
(added)
+++ xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogFactory.java
Sat May 26 08:31:14 2018
@@ -0,0 +1,119 @@
+/* Copyright 2017 The Apache Software Foundation
+ *
+ * Licensed 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.xmlbeans.impl.store;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Provides logging without clients having to mess with
+ * configuration/initialization.
+ *
+ * @author Andrew C. Oliver (acoliver at apache dot org)
+ * @author Marc Johnson (mjohnson at apache dot org)
+ * @author Nicola Ken Barozzi (nicolaken at apache.org)
+ */
+public final class XBLogFactory {
+ /**
+ * Map of XBLogger instances, with classes as keys
+ */
+ private static final Map<String,XBLogger> _loggers = new
HashMap<String,XBLogger>();
+
+ /**
+ * A common instance of NullLogger, as it does nothing
+ * we only need the one
+ */
+ private static final XBLogger _nullLogger = new NullLogger();
+ /**
+ * The name of the class to use. Initialised the
+ * first time we need it
+ */
+ static String _loggerClassName = null;
+
+ /**
+ * Construct a XBLogFactory.
+ */
+ private XBLogFactory() {}
+
+ /**
+ * Get a logger, based on a class name
+ *
+ * @param theclass the class whose name defines the log
+ *
+ * @return a XBLogger for the specified class
+ */
+ public static XBLogger getLogger(final Class<?> theclass) {
+ return getLogger(theclass.getName());
+ }
+
+ /**
+ * Get a logger, based on a String
+ *
+ * @param cat the String that defines the log
+ *
+ * @return a XBLogger for the specified class
+ */
+ public static XBLogger getLogger(final String cat) {
+ // If we haven't found out what logger to use yet,
+ // then do so now
+ // Don't look it up until we're first asked, so
+ // that our users can set the system property
+ // between class loading and first use
+ if(_loggerClassName == null) {
+ try {
+ _loggerClassName =
System.getProperty("org.apache.xmlbeans.impl.store.XBLogger");
+ } catch(Exception e) {
+ // ignore any exception here
+ }
+
+ // Use the default logger if none specified,
+ // or none could be fetched
+ if(_loggerClassName == null) {
+ _loggerClassName = _nullLogger.getClass().getName();
+ }
+ }
+
+ // Short circuit for the null logger, which
+ // ignores all categories
+ if(_loggerClassName.equals(_nullLogger.getClass().getName())) {
+ return _nullLogger;
+ }
+
+
+ // Fetch the right logger for them, creating
+ // it if that's required
+ XBLogger logger = _loggers.get(cat);
+ if (logger == null) {
+ try {
+ @SuppressWarnings("unchecked")
+ Class<? extends XBLogger> loggerClass =
+ (Class<? extends XBLogger>)
Class.forName(_loggerClassName);
+ logger = loggerClass.newInstance();
+ logger.initialize(cat);
+ } catch(Exception e) {
+ // Give up and use the null logger
+ logger = _nullLogger;
+ _loggerClassName = _nullLogger.getClass().getName();
+ }
+
+ // Save for next time
+ _loggers.put(cat, logger);
+ }
+ return logger;
+ }
+}
+
+
Added: xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogger.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogger.java?rev=1832298&view=auto
==============================================================================
--- xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogger.java
(added)
+++ xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/XBLogger.java Sat
May 26 08:31:14 2018
@@ -0,0 +1,115 @@
+/* Copyright 2017 The Apache Software Foundation
+ *
+ * Licensed 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.xmlbeans.impl.store;
+
+/**
+ * A logger interface that strives to make it as easy as possible for
+ * developers to write log calls, while simultaneously making those
+ * calls as cheap as possible by performing lazy evaluation of the log
+ * message.<p>
+ */
+public abstract class XBLogger {
+
+ public static final int DEBUG = 1;
+ public static final int INFO = 3;
+ public static final int WARN = 5;
+ public static final int ERROR = 7;
+ public static final int FATAL = 9;
+
+ /** Short strings for numeric log level. Use level as array index. */
+ protected static final String LEVEL_STRINGS_SHORT[] = {"?", "D", "?", "I",
"?", "W", "?", "E", "?", "F", "?"};
+ /** Long strings for numeric log level. Use level as array index. */
+ protected static final String LEVEL_STRINGS[] = {"?0?", "DEBUG", "?2?",
"INFO", "?4?", "WARN", "?6?", "ERROR", "?8?", "FATAL", "?10+?"};
+
+
+ /**
+ * package scope so it cannot be instantiated outside of the util
+ * package. You need a XBLogger? Go to the XBLogFactory for one
+ */
+ XBLogger() {
+ // no fields to initialize
+ }
+
+ abstract public void initialize(String cat);
+
+ /**
+ * Log a message
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The object to log. This is converted to a string.
+ */
+ abstract protected void _log(int level, Object obj1);
+
+ /**
+ * Log a message
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The object to log. This is converted to a string.
+ * @param exception An exception to be logged
+ */
+ abstract protected void _log(int level, Object obj1, final Throwable
exception);
+
+
+ /**
+ * Check if a logger is enabled to log at the specified level
+ * This allows code to avoid building strings or evaluating functions in
+ * the arguments to log.
+ *
+ * An example:
+ * <code><pre>
+ * if (logger.check(XBLogger.INFO)) {
+ * logger.log(XBLogger.INFO, "Avoid concatenating " + " strings and
evaluating " + functions());
+ * }
+ * </pre></code>
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ */
+ abstract public boolean check(int level);
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ * If the last parameter is a {@link Throwable} it is logged specially.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param objs the objects to place in the message
+ */
+ public void log(int level, Object... objs) {
+ if (!check(level)) return;
+ StringBuilder sb = new StringBuilder(32);
+ Throwable lastEx = null;
+ for (int i=0; i<objs.length; i++) {
+ if (i == objs.length-1 && objs[i] instanceof Throwable) {
+ lastEx = (Throwable)objs[i];
+ } else {
+ sb.append(objs[i]);
+ }
+ }
+
+ String msg = sb.toString();
+ msg = msg.replaceAll("[\r\n]+", " "); // log forging escape
+
+ // somehow this ambiguity works and doesn't lead to a loop,
+ // but it's confusing ...
+ if (lastEx == null) {
+ _log(level, msg);
+ } else {
+ _log(level, msg, lastEx);
+ }
+ }
+}
+
+
+
Modified: xmlbeans/trunk/test/perf/build.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/test/perf/build.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/test/perf/build.xml (original)
+++ xmlbeans/trunk/test/perf/build.xml Sat May 26 08:31:14 2018
@@ -348,7 +348,7 @@
executable="${env.JAVA_HOME}/bin/javac"
classpathref="tools.classpath"
includes="org/apache/xmlbeans/test/tools/**"
- source="1.4">
+ source="1.6">
</javac>
</target>
@@ -363,7 +363,7 @@
executable="${env.JAVA_HOME}/bin/javac"
classpathref="svn.classpath"
includes="org/apache/xmlbeans/test/performance/svn/**,org/apache/xmlbeans/test/performance/utils/**"
- source="1.4">
+ source="1.6">
</javac>
</target>
@@ -378,7 +378,7 @@
executable="${env.JAVA_HOME}/bin/javac"
classpathref="v1.classpath"
includes="org/apache/xmlbeans/test/performance/v1/**,org/apache/xmlbeans/test/performance/utils/**"
- source="1.4">
+ source="1.6">
</javac>
</target>
@@ -393,7 +393,7 @@
executable="${env.JAVA_HOME}/bin/javac"
classpathref="v2.classpath"
includes="org/apache/xmlbeans/test/performance/v2/**,org/apache/xmlbeans/test/performance/utils/**"
- source="1.4">
+ source="1.6">
</javac>
</target>
@@ -408,7 +408,7 @@
executable="${env.JAVA_HOME}/bin/javac"
classpathref="castor.classpath"
includes="org/apache/xmlbeans/test/performance/castor/**,org/apache/xmlbeans/test/performance/utils/**"
- source="1.4">
+ source="1.6">
</javac>
</target>
@@ -424,7 +424,7 @@
classpathref="jibx.classpath"
includes="org/apache/xmlbeans/test/performance/jibx/**,org/apache/xmlbeans/test/performance/utils/**"
excludes="org/apache/xmlbeans/test/performance/jibx/binding/**"
- source="1.4">
+ source="1.6">
</javac>
</target>
@@ -439,7 +439,7 @@
executable="${env.JAVA_HOME}/bin/javac"
classpathref="jaxb.classpath"
includes="org/apache/xmlbeans/test/performance/jaxb/**,org/apache/xmlbeans/test/performance/utils/**"
- source="1.4">
+ source="1.6">
</javac>
</target>
@@ -470,7 +470,7 @@
executable="${env.JAVA_HOME}/bin/javac"
classpathref="xerces.classpath"
includes="org/apache/xmlbeans/test/performance/xerces/**,org/apache/xmlbeans/test/performance/utils/**"
- source="1.4">
+ source="1.6">
</javac>
</target>
@@ -667,7 +667,7 @@
memoryMaximumSize="1000M"
compiler="modern"
executable="${env.JAVA_HOME}/bin/javac"
- source="1.4"
+ source="1.6"
classpathref="castor.classpath"/>
<jar destfile="${schema.jar.build.dir}/${jar.name}"
basedir="${castor.temp.dir}"/>
@@ -689,7 +689,7 @@
classpathref="jibx.binding.classpath"
includes="org/apache/xmlbeans/test/performance/jibx/binding/**"
excludes="org/apache/xmlbeans/test/performance/castor/**,org/apache/xmlbeans/test/performance/svn/**,org/apache/xmlbeans/test/performance/utils/**"
- source="1.4">
+ source="1.6">
</javac>
<java classname="org.jibx.binding.Compile"
fork="true"
@@ -750,7 +750,7 @@
compiler="modern"
executable="${env.JAVA_HOME}/bin/javac"
classpathref="jaxb.classpath"
- source="1.4">
+ source="1.6">
</javac>
<jar destfile="${schema.jar.build.dir}/${jar.name}"
basedir="${jaxb.temp.dir}"/>
Modified: xmlbeans/trunk/test/src/xmlcursor/checkin/StoreTests.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/xmlcursor/checkin/StoreTests.java?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/test/src/xmlcursor/checkin/StoreTests.java (original)
+++ xmlbeans/trunk/test/src/xmlcursor/checkin/StoreTests.java Sat May 26
08:31:14 2018
@@ -1112,7 +1112,7 @@ public class StoreTests extends TestCase
throws Exception
{
XmlCursor c = XmlObject.Factory.parse( xml ).newCursor();
- Assert.assertTrue( c.xmlText().equals( xml ) );
+ Assert.assertEquals( xml, c.xmlText() );
}
private void doSaveTest ( String xml )
@@ -1121,6 +1121,16 @@ public class StoreTests extends TestCase
doSaverTest( xml );
}
+ public void testCDATA() throws Exception
+ {
+ // https://issues.apache.org/jira/browse/XMLBEANS-404
+ String xml = "<foo>Unable to render embedded object:
<![CDATA[>>>>>>>><<<<<<<<<<<]]></foo>";
+ String expected = "<foo><![CDATA[Unable to render embedded object:
>>>>>>>><<<<<<<<<<<]]></foo>";
+ XmlOptions options = new XmlOptions().setSaveCDataLengthThreshold(0);
+ XmlCursor c = XmlObject.Factory.parse(xml, options).newCursor();
+ Assert.assertEquals( expected, c.xmlText(options) );
+ }
+
public void testSaving ( )
throws Exception
{
Modified: xmlbeans/trunk/test/src/xmlobject/checkin/AssortedTests.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/xmlobject/checkin/AssortedTests.java?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/test/src/xmlobject/checkin/AssortedTests.java (original)
+++ xmlbeans/trunk/test/src/xmlobject/checkin/AssortedTests.java Sat May 26
08:31:14 2018
@@ -40,7 +40,6 @@ public class AssortedTests extends TestC
// bug 27489
public static void testSaverCharEscaping() throws XmlException
{
- String newLine = System.getProperty( "line.separator" );
XmlObject xdoc = XmlObject.Factory.parse("<test>something</test>");
XmlCursor cur = xdoc.newCursor();
cur.toFirstChild();
@@ -48,9 +47,14 @@ public class AssortedTests extends TestC
cur.setTextValue("<something or other:\u03C0\uD7FF>");
Assert.assertEquals("<test><something or
other:\u03C0\uD7FF></test>", xdoc.toString());
- // invalid chars - control chars, unicode surrogates, FFFF/FFFE, etc
-
cur.setTextValue("<something\0or\1other:\u0045\uFFFE\uD800\uDFFF\uDB80\uDC00\u03C0\uD7FF\u001F>");
-
Assert.assertEquals("<test><something?or?other:\u0045?????\u03C0\uD7FF?></test>",
xdoc.toString());
+ // invalid chars - control chars, FFFF/FFFE, etc
+ cur.setTextValue("<something\0or\1other:\u0045\u001F>");
+ Assert.assertEquals("<test><something?or?other:\u0045?></test>",
xdoc.toString());
+
+ String greekChars =
"\uD835\uDF4A\uD835\uDF4B\uD835\uDF4C\uD835\uDF4D\uD835\uDF4E\uD835\uDF4F\uD835\uDF50\uD835"
+ + "\uDF51\uD835\uDF52\uD835\uDF53\uD835\uDF54\uD835\uDF55";
+ cur.setTextValue(greekChars);
+ Assert.assertEquals("<test>" + greekChars + "</test>",
xdoc.toString());
}
// bug 26140/26104
Modified: xmlbeans/trunk/test/src/xmlobject/checkin/CDataTest.java
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/xmlobject/checkin/CDataTest.java?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/test/src/xmlobject/checkin/CDataTest.java (original)
+++ xmlbeans/trunk/test/src/xmlobject/checkin/CDataTest.java Sat May 26
08:31:14 2018
@@ -53,8 +53,8 @@ public class CDataTest
throws Exception
{
String xmlText = "<a><![CDATA[cdata text]]></a>";
-
- checkCData(xmlText, xmlText, xmlText);
+ String resultText = "<a>cdata text</a>";
+ checkCData(xmlText, resultText, resultText);
}
public void testCData2()
@@ -64,10 +64,10 @@ public class CDataTest
"<b><![CDATA[cdata text]]> regular text</b>" + NL +
"</a>";
String expected1 = "<a>\n" +
- "<b><![CDATA[cdata text regular text]]></b>\n" +
+ "<b>cdata text regular text</b>\n" +
"</a>";
String expected2 = "<a>" + NL +
- " <b><![CDATA[cdata text regular text]]></b>" + NL
+
+ " <b>cdata text regular text</b>" + NL +
"</a>";
checkCData(xmlText, expected1, expected2);
@@ -88,6 +88,23 @@ public class CDataTest
checkCData(xmlText, expected1, expected2);
}
+
+ // https://issues.apache.org/jira/browse/XMLBEANS-404
+ public void testXmlBeans404()
+ throws Exception
+ {
+ String xmlText = "<a>\n" +
+ "<c>text <![CDATA[cdata text]]]]></c>\n" +
+ "</a>";
+ String expected1 = "<a>\n" +
+ "<c>text cdata text]]</c>\n" +
+ "</a>";
+ String expected2 = "<a>" + NL +
+ " <c>text cdata text]]</c>" + NL +
+ "</a>";
+
+ checkCData(xmlText, expected1, expected2);
+ }
private void checkCData(String xmlText, String expected1, String expected2)
throws XmlException
Modified: xmlbeans/trunk/testbuild.xml
URL:
http://svn.apache.org/viewvc/xmlbeans/trunk/testbuild.xml?rev=1832298&r1=1832297&r2=1832298&view=diff
==============================================================================
--- xmlbeans/trunk/testbuild.xml (original)
+++ xmlbeans/trunk/testbuild.xml Sat May 26 08:31:14 2018
@@ -580,7 +580,7 @@
destdir="${build.dir.test.src}"
classpathref="test.run.classpath"
debug="on"
- source="1.4"
+ source="1.6"
optimize="on"
verbose="false"
failonerror="true">
@@ -662,7 +662,7 @@
excludes="${excludes}"
classpathref="test.run.classpath"
optimize="on"
- source="1.4"
+ source="1.6"
debug="on"
verbose="false"
failonerror="true"/>
@@ -914,7 +914,7 @@
classpathref="test.run.classpath"
optimize="on"
debug="on"
- source="1.4"
+ source="1.6"
verbose="false"
failonerror="true"/>
<property name="test.area.run" value="${excludes}"/>