diff --git a/build.xml b/build.xml index b05bcb13e87f3a12baf02fc9289044e88f1cbbe8..631de636b5321466d72a51916182ba9ea1894109 100644 --- a/build.xml +++ b/build.xml @@ -4,7 +4,7 @@ customized build.xml for each autogenerated X3D example archive build.xml --> <!-- - Copyright (c) 1995-2021 held by the author(s). All rights reserved. + Copyright (c) 1995-2022 held by the author(s). All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -59,8 +59,6 @@ POSSIBILITY OF SUCH DAMAGE. <property environment="env"/> - <!-- compiled stylesheets are no longer supported as of saxon 9.4 --> - <!-- java jvmarg parameters ignored on server unless forked --> <!-- Xj3D converter tends to lock up Netbeans unless forked --> <property name="fork" value="true"/> @@ -106,23 +104,27 @@ POSSIBILITY OF SUCH DAMAGE. <!-- trouble report json-schema-validator-2.2.11.jar at https://github.com/java-json-tools/json-schema-validator/issues/287#issuecomment-544100447 --> <property name="json-schema-validator.jar" value="lib/json-schema-validator-2.2.6-lib.jar"/> - <!-- https://mvnrepository.com/artifact/net.sf.saxon/Saxon-HE/9.8.0-5 --> - <!-- https://www.saxonica.com/documentation9.5/using-xsl/commandline.html --> + <!-- https://www.saxonica.com/html/documentation11/about/index.html --> + <!-- https://www.saxonica.com/html/documentation11/using-xsl/commandline --> <property name="saxon.dir" location="../../../tools/jar" description="relative path from archive examples/Subdirectory"/> - <property name="saxon.jar" value="saxon-he-10.6.jar"/><!-- saxon9he.jar --> - <property name="saxononicaSA.dir" location="C:/java/saxonsa9-1-0-6j"/><!-- not actively used --> + <property name="saxon.jar" value="saxon-he-11.2.jar"/><!-- previously saxon-he-10.6.jar saxon9he.jar --> + + <!-- compiled stylesheets are no longer supported as of saxon 9.4 --> +<!--<property name="saxononicaSA.dir" location="C:/java/saxonsa9-1-0-6j"/> not actively used --> <property name="c14n.dir" value="../../../tools/canonical/dist/lib"/> <property name="c14n.jar" value="X3dC14n.jar"/> - <property name="log4j.dir" value="../../../tools/canonical/lib"/> - <property name="log4j.jar" value="log4j-1.2.15.jar"/> + <!-- https://logging.apache.org/log4j/2.x/manual/api.html --> + <property name="log4j.dir" location="../../../tools/canonical/lib"/> + <property name="log4j-api.jar" value="log4j-api-2.17.1.jar"/> + <property name="log4j-core.jar" value="log4j-core-2.17.1.jar"/> <property name="stylesheet.dir" location="../../../stylesheets"/> <property name="local.dir" location="."/> <!-- ensure backwards compatibility to specified version of Java --> - <property name="java.source" value="1.8"/> - <property name="java.target" value="1.8"/> + <property name="java.source" value="17"/><!-- 1.8 is strictest, 15 or higher allows use of """text blocks""" for Script CDATA --> + <property name="java.target" value="17"/> <property name="javac.verbose" value="false"/> <property name="java.classes.dir" value="classes"/> @@ -1541,13 +1543,13 @@ ignoreSetupDownloadErrors=true <antcall target="get.slideshowTools"/> </target> - <target name="get.saxon" description="get saxon.jar if not checked out" depends="get.saxon.check" unless="saxon.found"> + <target name="get.web3d.saxon" description="get saxon.jar if not checked out" depends="get.web3d.saxon.check" unless="saxon.found"> <echo message="get saxon.jar if not checked out"/> <mkdir dir="${saxon.dir}"/> <get src="https://svn.code.sf.net/p/x3d/code/www.web3d.org/x3d/tools/jar/${saxon.jar}" dest="${saxon.dir}/${saxon.jar}" verbose="true" ignoreerrors="${ignoreSetupDownloadErrors}"/> </target> - <target name="get.saxon.check"> + <target name="get.web3d.saxon.check"> <condition property="saxon.found" else="false"> <available file="${saxon.dir}/${saxon.jar}"/> </condition> @@ -1598,7 +1600,7 @@ ignoreSetupDownloadErrors=true <diagnostics/> </target> - <target name="HelloWorld" description="Copy HelloWorld.x3d example from common example archives and convert to other encodings" depends="get.saxon"> + <target name="HelloWorld" description="Copy HelloWorld.x3d example from common example archives and convert to other encodings" depends="get.web3d.saxon"> <delete failonerror="false"> <fileset dir="." includes="HelloWorld.*"/> <fileset dir="." includes="HelloWorldX_ITE.html"/> @@ -1751,9 +1753,10 @@ ignoreSetupDownloadErrors=true <Saxon10 scene="HelloWorld" stylesheet="${stylesheet.dir}/X3dToJava" extension="java" - expand="on" - parameterPair1="className=HelloWorld"/> - <!-- expand:on since DTD defaults needed --> + expand="on" + parameterPair1="className=HelloWorld" + parameterPair2="strictJava8=false"/> + <!-- expand:on since DTD defaults needed --> <echo>HelloWorld.py creation with X3dToPython.xslt</echo> <!-- JavaScript Object Notation (JSON) --> <Saxon10 scene="HelloWorld" @@ -1805,7 +1808,7 @@ ignoreSetupDownloadErrors=true </if> </target> - <target name="newScene" description="Copy newScene.x3d example from common example archives and convert to other encodings" depends="get.saxon"> + <target name="newScene" description="Copy newScene.x3d example from common example archives and convert to other encodings" depends="get.web3d.saxon"> <delete failonerror="false"> <fileset dir="." includes="newScene*"/> <fileset dir="." includes="newSceneX_ITE.html"/> @@ -1927,9 +1930,10 @@ ignoreSetupDownloadErrors=true <Saxon10 scene="newScene" stylesheet="${stylesheet.dir}/X3dToJava" extension="java" - expand="on" - parameterPair1="className=newScene"/> - <!-- expand:on since DTD defaults needed --> + expand="on" + parameterPair1="className=newScene" + parameterPair2="strictJava8=false"/> + <!-- expand:on since DTD defaults needed --> <echo>newScene.py creation with X3dToPython.xslt</echo> <!-- JavaScript Object Notation (JSON) --> <Saxon10 scene="newScene" @@ -2157,7 +2161,7 @@ ignoreSetupDownloadErrors=true </target> <target name="validate.schematron" description="validate each .x3d scene using X3D Schematron rules (caution: time consuming unless xmlcatalog points to local copy)" - depends="get.saxon,clean.duplicates"> + depends="get.web3d.saxon,clean.duplicates"> <echo message="Validate using X3D Schematron: ${archive.name} archive"/> <echo message=" using ${X3dSchematronValidityChecks.dir}/${X3dSchematronValidityChecks}.xslt"/> <echo message="https://www.web3d.org/x3d/tools/schematron/X3dSchematron.html"/> @@ -2325,7 +2329,7 @@ ignoreSetupDownloadErrors=true <echo message="${archive.name}.zip upload complete."/> </target> - <target name="processScenes" description="process all scenes with all conversion tasks" depends="get.saxon"> + <target name="processScenes" description="process all scenes with all conversion tasks" depends="get.web3d.saxon"> <echo>TODO: note that if Viewpoint descriptions changed, or the visible rendered scene changed,</echo> <echo> then you must delete the pretty-print .html version in order to trigger target task</echo> <echo> processScenes.captureImages that regenerates the viewpoint snapshot images.</echo> @@ -2354,7 +2358,7 @@ ignoreSetupDownloadErrors=true <echo message="${archive.name} processScenes complete."/> </target> - <target name="processScenes.htmlPrettyPrintPages" description="convert each .x3d scene into pretty-print .html version, also generate SVG diagrams of 2D plots such as Extrusion crossSection" depends="get.saxon"> + <target name="processScenes.htmlPrettyPrintPages" description="convert each .x3d scene into pretty-print .html version, also generate SVG diagrams of 2D plots such as Extrusion crossSection" depends="get.web3d.saxon"> <for param="file.path.name"> <path> <fileset refid="x3dScenes"/> @@ -2422,7 +2426,7 @@ ignoreSetupDownloadErrors=true <echo>processScenes.htmlPrettyPrintPages complete.</echo> </target> - <target name="processScenes.X3dToX3domXhtml" description="convert each .x3d scene into *X3dom.xhtml version for X3DOM" depends="get.saxon,clean.RoundTrip"> + <target name="processScenes.X3dToX3domXhtml" description="convert each .x3d scene into *X3dom.xhtml version for X3DOM" depends="get.web3d.saxon,clean.RoundTrip"> <for param="file.path.name"> <path> <fileset refid="x3dScenes"/> @@ -2485,7 +2489,7 @@ ignoreSetupDownloadErrors=true <echo>processScenes.X3dToX3domXhtml complete.</echo> </target> - <target name="processScenes.X3dToX_ITE.html" description="convert each .x3d scene into *X_ITE.html version for X3DOM" depends="get.saxon,clean.RoundTrip"> + <target name="processScenes.X3dToX_ITE.html" description="convert each .x3d scene into *X_ITE.html version for X3DOM" depends="get.web3d.saxon,clean.RoundTrip"> <for param="file.path.name"> <path> <fileset refid="x3dScenes"/> @@ -2548,7 +2552,7 @@ ignoreSetupDownloadErrors=true <echo>processScenes.X3dToX_ITE.html complete.</echo> </target> - <target name="processScenes.X3DtoVRML97" description="convert each .x3d scene to .wrl VRML97 encoding" depends="get.saxon"> + <target name="processScenes.X3DtoVRML97" description="convert each .x3d scene to .wrl VRML97 encoding" depends="get.web3d.saxon"> <for param="file.path.name"> <path> <fileset refid="x3dScenes"/> @@ -2778,7 +2782,7 @@ ignoreSetupDownloadErrors=true <antcall target="processScenes.json"/> </target> --> - <target name="processScenes.json" description="convert each .x3d scene to Javascript Object Notation .json version" depends="get.saxon,clean.RoundTrip"> + <target name="processScenes.json" description="convert each .x3d scene to Javascript Object Notation .json version" depends="get.web3d.saxon,clean.RoundTrip"> <for param="file.path.name"> <path> <fileset refid="x3dScenes"/> @@ -2860,7 +2864,7 @@ ignoreSetupDownloadErrors=true <echo>processScenes.json complete.</echo> </target> - <target name="processScenes.X3dToX3dvClassicVrmlEncoding" description="convert each .x3d scene to .x3dv ClassicVrml encoding" depends="get.saxon,clean.RoundTrip"> + <target name="processScenes.X3dToX3dvClassicVrmlEncoding" description="convert each .x3d scene to .x3dv ClassicVrml encoding" depends="get.web3d.saxon,clean.RoundTrip"> <for param="file.path.name"> <path> <fileset refid="x3dScenes"/> @@ -3496,7 +3500,8 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos <path id="project-classpath"> <pathelement location="."/> <pathelement location="lib/CreateContentCatalog.jar"/> - <pathelement location="${log4j.dir}/${log4j.jar}"/> + <pathelement location="${log4j.dir}/${log4j-api.jar}"/> + <pathelement location="${log4j.dir}/${log4j-core.jar}"/> <!-- ensure system JAVA_HOME points to JDK --> <pathelement location="${java.home}/lib/rt.jar"/> <!-- @@ -3525,6 +3530,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos <!-- Will be overridden if called from catalog.server or jenkins --> <property name="catalog.local.dtd" value="-localDTD"/> <!-- -localDTD or -onlineDTD for scene validation --> <echo message="catalog.builder: catalog.local.dtd=${catalog.local.dtd}, passed archive.name=../${archive.name}, CreateContentCatalog.dir=${CreateContentCatalog.dir}"/> + <echo message="$log4j.dir=${log4j.dir} $log4j-api.jar=${log4j-api.jar} $log4j-core.jar=${log4j-core.jar}"/> <java classname="ContentCatalogBuilder" fork="no" failonerror="false"> <classpath refid="project-classpath"/> <jvmarg value="-DentityExpansionLimit=4000000"/> @@ -3544,7 +3550,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos <xmlvalidate file="ContentCatalog${archive.name}.xml" failonerror="true" warn="true" lenient="true"/> </target> - <target name="catalog.generateHtmlPages" description="generate HTML pages for entire catalog" depends="get.saxon"> + <target name="catalog.generateHtmlPages" description="generate HTML pages for entire catalog" depends="get.web3d.saxon"> <echo message="local.dir=${local.dir}"/> <echo message="check well-formedness ${CreateContentCatalog.dir}/CreateContentCatalogPages.xslt"/> <xmlvalidate file="${CreateContentCatalog.dir}/CreateContentCatalogPages.xslt" failonerror="true" warn="true" lenient="true"/> @@ -4222,6 +4228,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos <!-- process individual files here. show full path to facilitate user loading, editing of reported files --> <echo>${archive.path}/${relative.path1}/${relative.path2}/${name.short}.x3d converted to ${name.short}.java</echo> <!-- Saxon10 is locally defined macro --> + <!-- option parameterPair3="strictJava8=false" --> <Saxon10 scene="${relative.path1}/${relative.path2}/${name.short}" stylesheet="${stylesheet.dir}/X3dToJava" parameterPair1="packageName=${archive.name}.${relative.path1}.${relative.path2}" @@ -4233,15 +4240,15 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos <!-- expand:on since DTD defaults needed --> <!-- <echo message="... compiling ${name.short}.java"/> --> <javac srcdir="${relative.path1}/${relative.path2}/" - includes="${name.short}.java" - classpath="${x3djsail.stylesheets.dir}/${jsai.full.archive.jar.name}" - destdir="${java.classes.dir}" - debug="on" - source="${java.source}" - target="${java.target}" - verbose="${javac.verbose}" - failonerror="false" - includeantruntime="false"> + includes="${name.short}.java" + classpath="${x3djsail.stylesheets.dir}/${jsai.full.archive.jar.name}" + destdir="${java.classes.dir}" + debug="on" + source="${java.source}" + target="${java.target}" + verbose="${javac.verbose}" + failonerror="false" + includeantruntime="false"> <!-- the following exclude statements are duplicated in processScenes.java and processScenes.javadoc since fileset is not allowed here --> <exclude name="newX3dScript.java"/> <exclude name="**/CircleLines.*"/> @@ -4310,7 +4317,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos <!-- https://stackoverflow.com/questions/20174355/how-class-loading-is-done-by-using-xbootclasspath-ppath --> <!-- https://stackoverflow.com/questions/48148607/how-to-add-a-jar-to-the-boot-classpath-in-java-9 --> <!-- -Xbootclasspath/p became -Xbootclasspath/a in jdk 9 --> - <compilerarg value="-Xbootclasspath/p:${toString:lib.path.ref}"/> + <!-- <compilerarg value="-Xbootclasspath/p:${toString:lib.path.ref}"/> not allowed with target 15 --> </javac> <echo message="now run and validate the java model"/> <echo message="java -classpath ${java.classes.dir};${x3djsail.stylesheets.dir}/${jsai.full.archive.jar.name} ${archive.name}.${relative.path1}.${name.short}"/>