From 5a081145f67897b6ee859fc8f59b5735aa01663e Mon Sep 17 00:00:00 2001
From: brutzman <brutzman@nps.edu>
Date: Sun, 5 Jan 2020 21:49:48 -0800
Subject: [PATCH] processScenes.touch.HtmlPages and related changes

---
 build.xml | 357 +++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 244 insertions(+), 113 deletions(-)

diff --git a/build.xml b/build.xml
index 9ad8a65842..af544cd0b9 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-2019 held by the author(s).  All rights reserved.
+  Copyright (c) 1995-2020 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
@@ -361,7 +361,7 @@ Key references:
 				<jvmarg value="-Dxml.catalog.files=C:/www.web3d.org/specifications/OasisXmlCatalogX3D.xml"/>
 				<jvmarg value="-Dxml.catalog.verbosity=4"/>
 				use the Apache commons resolver for XML Catalog resolution of online DTD, schema addresses
-                https://sourceforge.net/projects/saxon
+                                https://sourceforge.net/projects/saxon
 				https://www.saxonica.com/html/documentation/sourcedocs/xml-catalogs.html
 				"How to use a catalog file:  Using catalogs with Saxon"
 				https://www.sagehill.net/docbookxsl/UseCatalog.html
@@ -417,21 +417,25 @@ Key references:
         <attribute name="scene"/>
         <attribute name="title"/>
         <sequential>
-			<java classname="net.sf.saxon.Transform" classpath="${saxon.dir}/${saxon.jar};." fork="${fork}">
-				<arg value="-warnings:recover"/> <!-- recover after writing a warning message -->
-				<arg value="-t"/> <!-- saxon version and timing information -->
-				<arg value="-s:@{scene}.x3d"/>
-				<arg value="-o:@{scene}Tidy.x3d"/>
-				<arg value="-xsl:${stylesheet.dir}/X3dTidy.xslt"/> <!--  regular stylesheet -->
-				<arg value="title=@{title}"/>
-				<arg value="conversionRequired=true"/>
-				<arg value="reviseCurrentDate=true"/>
-				<arg value="fixMFStringQuotes=true"/>
-				<arg value="fixUrlAdditionHttpAddresses=true"/>
-				<arg value="appendMissingMetaLicense=true"/>
-				<arg value="licenseLink=../license.html"/>
-				<!-- numerous other parameters are available in X3dTidy.xslt -->
-			</java>
+            <java classname="net.sf.saxon.Transform" classpath="${saxon.dir}/${saxon.jar};." fork="${fork}">
+                <!-- https://www.saxonica.com/documentation9.5/using-xsl/commandline.html -->
+                    <arg value="-warnings:recover"/> <!-- recover after writing a warning message -->
+                    <arg value="-t"/> <!-- saxon version and timing information -->
+                    <arg value="-s:@{scene}.x3d"/>
+                    <arg value="-o:@{scene}Tidy.x3d"/>
+                    <arg value="-xsl:${stylesheet.dir}/X3dTidy.xslt"/> <!--  regular stylesheet -->
+                    <arg value="-dtd:recover"/> <!-- recover from failures -->
+                    <arg value="-expand:on"/>   <!-- whether to expand (i.e. add) DTD default values (on|off) -->
+                    <arg value="title=@{title}"/>
+                    <arg value="conversionRequired=true"/>
+                    <arg value="reviseCurrentDate=true"/>
+                    <arg value="fixMFStringQuotes=true"/>
+                    <arg value="fixUrlAdditionHttpAddresses=true"/>
+                    <arg value="appendMissingMetaLicense=true"/>
+                    <arg value="licenseLink=../license.html"/>
+                    <!-- numerous other parameters are available in X3dTidy.xslt -->
+                    <!-- expand:on since DTD defaults needed -->
+            </java>
             <echo message="now canonicalize X3dTidy output:"/>
             <java classname="org.web3d.x3d.tools.x3db.X3dCanonicalizer"
                   classpath="${c14n.dir}/${c14n.jar}"
@@ -2333,8 +2337,8 @@ ignoreSetupDownloadErrors=true
                             stylesheet="${stylesheet.dir}/X3dToXhtml"
                              extension="html"
                         parameterPair1="linkImages=true"
-								expand="on"/>
-						<!-- expand:on since DTD defaults needed -->
+				expand="on"/>
+			<!-- expand:on since DTD defaults needed -->
                         <!-- TODO -dtd:off -->
                         <echo>${archive.path}/${relative.path1}/${relative.path2}/${name.short}.x3d processing with X3dExtrusionToSvgViaXslt1.1 stylesheet for SVG diagrams of Extrusion crossSection</echo>
                         <!-- Saxon9 is locally defined macro -->
@@ -2403,8 +2407,8 @@ ignoreSetupDownloadErrors=true
                         parameterPair1="player=X3DOM"
                                 suffix="X3dom"
                              extension="xhtml"
-								expand="on"/>
-						<!-- expand:on since DTD defaults needed -->
+				expand="on"/>
+			<!-- expand:on since DTD defaults needed -->
                         <!-- TODO -dtd:off -->
                     </sequential>
                 </outofdate>
@@ -2467,8 +2471,8 @@ ignoreSetupDownloadErrors=true
                         parameterPair2="urlScene=${name.short}.x3d"
                                 suffix="X_ITE"
                              extension="html"
-								expand="on"/>
-						<!-- expand:on since DTD defaults needed -->
+				expand="on"/>
+			<!-- expand:on since DTD defaults needed -->
                         <!-- TODO -dtd:off -->
                     </sequential>
                 </outofdate>
@@ -2895,7 +2899,7 @@ ignoreSetupDownloadErrors=true
         <echo>processScenes.X3dToX3dbCompressedBinaryEncoding complete.</echo>
     </target>
 
-    <target name="processScenes.touchViewpointImages" description="update timestamp on captured viewpoint images to avoid need to reshoot">
+    <target name="processScenes.touch.ViewpointImages" description="update timestamp on captured viewpoint images to avoid need to reshoot">
         <touch verbose="true"> <!-- verbose logs creation of new files -->
             <fileset dir=".">
                 <include name="**/_viewpoints/${name.short}.x3d.*.png"/>
@@ -2903,12 +2907,137 @@ ignoreSetupDownloadErrors=true
         </touch>
     </target>
 
-    <target name="processScenes.touchX3dScenes" description="update timestamp on X3D scenes to allow reshooting images and processing scenes">
-        <touch verbose="true"> <!-- verbose logs creation of new files -->
+    <target name="processScenes.touch.X3dScenes" description="update timestamp on X3D scenes to allow reshooting images and processing scenes">
+        <for param="file.path.name">
+            <path>
+                <fileset refid="x3dScenes"/>
+            </path>
+            <sequential>
+                <propertyregex
+                        property="name.short"
+                        override="true"
+                        input="@{file.path.name}"
+                        regexp="([^\n]*)[\\/]([^\n]*)\.x3d"
+                        select="\2"/>
+                <propertyregex
+                        property="relative.path1"
+                        override="true"
+                        input="@{file.path.name}"
+                        regexp="([^\n]*)Savage[\\/]([^\n^\\^/]*)[\\/]([^\n]*)\.x3d"
+                        select="\2"/>
+                <propertyregex
+                        property="relative.path2"
+                        override="true"
+                        input="@{file.path.name}"
+                        regexp="([^\n]*)Savage[\\/]([^\n^\\^/]*)[\\/]([^\n^\\^/]*)([\\/][^\n]*)\.x3d"
+                        select="\3"/>
+                <!-- process individual files here.  show full path to facilitate user loading, editing of reported files -->
+                <if>
+                    <available file="${relative.path1}/${relative.path2}/${name.short}.x3d"/>
+                    <then>
+                        <!-- verbose logs creation of new files -->
+                        <touch file="${relative.path1}/${relative.path2}/${name.short}.x3d" verbose="true"/>
+                         <echo>touch ${relative.path1}/${relative.path2}/${name.short}.x3d</echo>
+                    </then>
+                </if>
+            </sequential>
+        </for>
+        <!-- original was silent:
+        <touch verbose="true"> 
             <fileset dir=".">
                 <include name="*.x3d"/>
             </fileset>
-        </touch>
+        </touch> -->
+    </target>
+
+    <target name="processScenes.touch.HtmlPages" description="update timestamp on X3D documentation pages to allow reshooting images and processing scenes">
+        <for param="file.path.name">
+            <path>
+                <fileset refid="x3dScenes"/>
+            </path>
+            <sequential>
+                <propertyregex
+                        property="name.short"
+                        override="true"
+                        input="@{file.path.name}"
+                        regexp="([^\n]*)[\\/]([^\n]*)\.x3d"
+                        select="\2"/>
+                <propertyregex
+                        property="relative.path1"
+                        override="true"
+                        input="@{file.path.name}"
+                        regexp="([^\n]*)Savage[\\/]([^\n^\\^/]*)[\\/]([^\n]*)\.x3d"
+                        select="\2"/>
+                <propertyregex
+                        property="relative.path2"
+                        override="true"
+                        input="@{file.path.name}"
+                        regexp="([^\n]*)Savage[\\/]([^\n^\\^/]*)[\\/]([^\n^\\^/]*)([\\/][^\n]*)\.x3d"
+                        select="\3"/>
+                <!-- process individual files here.  show full path to facilitate user loading, editing of reported files -->
+                <if>
+                    <available file="${relative.path1}/${relative.path2}/${name.short}.html"/>
+                    <then>
+                        <!-- verbose logs creation of new files -->
+                        <touch file="${relative.path1}/${relative.path2}/${name.short}.html" verbose="true"/>
+                         <echo>touch ${relative.path1}/${relative.path2}/${name.short}.html</echo>
+                    </then>
+                </if>
+            </sequential>
+        </for>        
+    </target>
+
+    <target name="processScenes.touch.conversions" description="update timestamp on converted X3D models (java json python) to allow selectively rerunning other tasks">
+        <for param="file.path.name">
+            <path>
+                <fileset refid="x3dScenes"/>
+            </path>
+            <sequential>
+                <propertyregex
+                        property="name.short"
+                        override="true"
+                        input="@{file.path.name}"
+                        regexp="([^\n]*)[\\/]([^\n]*)\.x3d"
+                        select="\2"/>
+                <propertyregex
+                        property="relative.path1"
+                        override="true"
+                        input="@{file.path.name}"
+                        regexp="([^\n]*)Savage[\\/]([^\n^\\^/]*)[\\/]([^\n]*)\.x3d"
+                        select="\2"/>
+                <propertyregex
+                        property="relative.path2"
+                        override="true"
+                        input="@{file.path.name}"
+                        regexp="([^\n]*)Savage[\\/]([^\n^\\^/]*)[\\/]([^\n^\\^/]*)([\\/][^\n]*)\.x3d"
+                        select="\3"/>
+                <!-- process individual files here.  show full path to facilitate user loading, editing of reported files -->
+                <if>
+                    <available file="${relative.path1}/${relative.path2}/${name.short}.java"/>
+                    <then>
+                        <!-- verbose logs creation of new files -->
+                        <touch file="${relative.path1}/${relative.path2}/${name.short}.java" verbose="true"/>
+                         <echo>touch ${relative.path1}/${relative.path2}/${name.short}.java</echo>
+                    </then>
+                </if>
+                <if>
+                    <available file="${relative.path1}/${relative.path2}/${name.short}.json"/>
+                    <then>
+                        <!-- verbose logs creation of new files -->
+                        <touch file="${relative.path1}/${relative.path2}/${name.short}.json" verbose="true"/>
+                         <echo>touch ${relative.path1}/${relative.path2}/${name.short}.json</echo>
+                    </then>
+                </if>
+                <if>
+                    <available file="${relative.path1}/${relative.path2}/${name.short}.py"/>
+                    <then>
+                        <!-- verbose logs creation of new files -->
+                        <touch file="${relative.path1}/${relative.path2}/${name.short}.py" verbose="true"/>
+                         <echo>touch ${relative.path1}/${relative.path2}/${name.short}.py</echo>
+                    </then>
+                </if>
+            </sequential>
+        </for>        
     </target>
 
     <target name="processScenes.regularExpressionChecks" description="find offensive lines using regexes">
@@ -3153,7 +3282,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
 
     <target name="processScenes.captureThumbnailImages"
      description="use Xj3D's replica app to create thumbnails of each scene for use as icons">
-		<echo message="processScenes.captureThumbnailImages depends on local Xj3D installation, current directory xj3d.dir=${xj3d.dir}"/>
+	<echo message="processScenes.captureThumbnailImages depends on local Xj3D installation, current directory xj3d.dir=${xj3d.dir}"/>
         <for param="file.path.name">
             <path>
                 <fileset refid="x3dScenes"/>
@@ -3754,13 +3883,13 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                         </filelist>
                     </sourcefiles>
                     <mapper dir="." type="glob" from="*.x3d" to="*.html"/>
-					<sequential>
+                    <sequential>
                         <!-- 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 processing with X3dTidy.xslt stylesheet for tidied-up .x3d</echo>
-						<!-- X3dTidy is locally defined macro -->
-						<X3dTidy scene="${relative.path1}/${relative.path2}/${name.short}" title="${name.short}"/>
-            		</sequential>
-				</outofdate>
+                        <!-- X3dTidy is locally defined macro -->
+                        <X3dTidy scene="${relative.path1}/${relative.path2}/${name.short}" title="${name.short}"/>
+                    </sequential>
+                </outofdate>
             </sequential>
         </for>
         <antcall target="echo.timestamp"/>
@@ -3771,75 +3900,76 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
         <echo message="ensuring any prior java source files and javadoc are cleaned out..."/>
         <delete verbose="true">
             <fileset dir=".">
-							<include name="**/*.java"/>
-							<include name="**/*.class"/>
-							<exclude name="_archive/*"/>
-							<exclude name="**/CircleLines.*"/>
-							<exclude name="**/javasrc/**/*"/>
-							<exclude name="**/originals/**/*"/>
-							<!-- X3dForWebAuthors -->
-							<exclude name="KelpForestExhibit/FishSchoolCode/*"/>
-							<!-- Basic -->
-							<exclude name="course\ExtrusionXj3dGoldberg1999.*"/>
-							<exclude name="development/TestRegularExpressionChecks.*"/>
-							<exclude name="development/TestSchematronDiagnostics.*"/>
-							<exclude name="development/QuadTreeExamples.*"/>
-							<exclude name="development/SpinGroupInternalSubsetDeclaration.*"/>
-							<exclude name="DistributedInteractiveSimulation/EntityProcessor*"/>
-							<exclude name="DistributedInteractiveSimulation/BaseballBackspin/*"/>
-							<exclude name="DistributedInteractiveSimulation/CannonProject/*"/>
-							<exclude name="DistributedInteractiveSimulation/EntityProcessor.*"/>
-							<exclude name="ExperimentalBinaryCompression/isenburg/**/*"/>
-							<exclude name="ExternalAuthoringInterface/BoxEai.*"/>
-							<exclude name="ExternalAuthoringInterface/CreateSphereEai.*"/>
-							<exclude name="ExternalAuthoringInterface/HelixEai.*"/>
-							<exclude name="ExternalAuthoringInterface/SwitcherEai.*"/>
-							<exclude name="ExternalAuthoringInterface/ViewSwitchEai.*"/>
-							<exclude name="ExternalAuthoringInterface/BoxEai.*"/>
-							<exclude name="ExternalAuthoringInterface/CreateSphereEai.*"/>
-							<exclude name="ExternalAuthoringInterface/HelixEai.*"/>
-							<exclude name="ExternalAuthoringInterface/SwitcherEai.*"/>
-							<exclude name="ExternalAuthoringInterface/ViewSwitchEai.*"/>
-							<exclude name="ExternalAuthoringInterface/code/**/*"/>
-							<exclude name="ExternalAuthoringInterface/GraphicalLogAnalyzer*"/>
-							<exclude name="Geospatial/GeoVrmlSiteExamples/**/*"/>
-							<exclude name="HumanoidAnimation/ClientNetListener.*"/>
-							<exclude name="HumanoidAnimation/VoiceActivated/*"/>
-							<exclude name="LatticeXvl/XvlShell.*"/>
-							<exclude name="Networking/ConnectionScript.*"/>
-							<exclude name="Networking/NetworkSensorScript.*"/>
-							<exclude name="NURBS/NurbsCurve.*"/>
-							<exclude name="NURBS/NurbsPatchSurface.*"/>
-							<exclude name="NURBS/NurbsPositionInterpolator.*"/>
-							<exclude name="ScriptConformance/originalExamples/*"/>
-							<exclude name="ScriptConformance/SAIExample*.*"/>
-							<exclude name="ScriptConformance/ScriptNodeEventOutControl.*"/>
-							<exclude name="ScriptConformance/ScriptNodeFieldControl.*"/>
-							<exclude name="ScriptConformance/vrml/**/*"/>
-							<exclude name="ScriptConformance/originalExamples/*"/>
-							<exclude name="StudentProjects/DeadReckoningComparisons/*"/>
-							<exclude name="StudentProjects/melon/*"/>
-							<exclude name="StudentProjects/Race20/**/*"/>
-							<exclude name="X3dSpecifications/SAIExample*.*"/>
-							<!-- ConformanceNist -->
-							<exclude name="Miscellaneous/Script/**/*"/>
-							<!-- Vrml2Sourcebook/Siggraph98Course -->
-							<exclude name="**/Bounce2Script.*"/>
-							<!-- Savage -->
-							<exclude name="services/WebServices/**/*"/>
-							<exclude name="CommunicationsAndSensors/Sonobuoys/rra/**/*"/>
-							<exclude name="CommunicationsAndSensors/Sonobuoys/rra-orig/**/*"/>
-							<exclude name="CommunicationsAndSensors/TSSR/CommPduGenerator.*"/>
-							<exclude name="Scenarios/PiracyIncidents/java/**/*"/>
-							<exclude name="Scenarios/TankManeuver/SRTG.*"/>
-							<exclude name="Tools/Slider/FloatScaler.*"/>
-							<exclude name="Tools/Slider/ScaledSFFloatScript.*"/>
-							<exclude name="Tools/Slider/SingleTypeConversionScript.*"/>
-							<exclude name="Tools/Slider/SliderScript.*"/>
-							<exclude name="Tools/Slider/widget/**/*"/>
-							<exclude name="Tools/Terrain/GeoManager.*"/>
-							<!-- SavageDefense -->
-							<exclude name="qrcode/**/*.*"/>
+                    <include name="**/*.java"/>
+                    <include name="**/*.class"/>
+                    <exclude name="_archive/*"/>
+                    <exclude name="**/CircleLines.*"/>
+                    <exclude name="**/javasrc/**/*"/>
+                    <exclude name="**/originals/**/*"/>
+                    <!-- X3dForWebAuthors -->
+                    <exclude name="KelpForestExhibit/FishSchoolCode/*"/>
+                    <!-- Basic -->
+                    <exclude name="course\ExtrusionXj3dGoldberg1999.*"/>
+                    <exclude name="development/TestRegularExpressionChecks.*"/>
+                    <exclude name="development/TestSchematronDiagnostics.*"/>
+                    <exclude name="development/QuadTreeExamples.*"/>
+                    <exclude name="development/SpinGroupInternalSubsetDeclaration.*"/>
+                    <exclude name="DistributedInteractiveSimulation/EntityProcessor*"/>
+                    <exclude name="DistributedInteractiveSimulation/BaseballBackspin/*"/>
+                    <exclude name="DistributedInteractiveSimulation/CannonProject/*"/>
+                    <exclude name="DistributedInteractiveSimulation/EntityProcessor.*"/>
+                    <exclude name="ExperimentalBinaryCompression/isenburg/**/*"/>
+                    <exclude name="ExternalAuthoringInterface/BoxEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/CreateSphereEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/HelixEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/SwitcherEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/ViewSwitchEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/BoxEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/CreateSphereEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/HelixEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/SwitcherEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/ViewSwitchEai.*"/>
+                    <exclude name="ExternalAuthoringInterface/code/**/*"/>
+                    <exclude name="ExternalAuthoringInterface/GraphicalLogAnalyzer*"/>
+                    <exclude name="Geospatial/GeoVrmlSiteExamples/**/*"/>
+                    <exclude name="HumanoidAnimation/ClientNetListener.*"/>
+                    <exclude name="HumanoidAnimation/VoiceActivated/*"/>
+                    <exclude name="LatticeXvl/XvlShell.*"/>
+                    <exclude name="Networking/ConnectionScript.*"/>
+                    <exclude name="Networking/NetworkSensorScript.*"/>
+                    <exclude name="NURBS/NurbsCurve.*"/>
+                    <exclude name="NURBS/NurbsPatchSurface.*"/>
+                    <exclude name="NURBS/NurbsPositionInterpolator.*"/>
+                    <exclude name="ScriptConformance/originalExamples/*"/>
+                    <exclude name="ScriptConformance/SAIExample*.*"/>
+                    <exclude name="ScriptConformance/ScriptNodeEventOutControl.*"/>
+                    <exclude name="ScriptConformance/ScriptNodeFieldControl.*"/>
+                    <exclude name="ScriptConformance/vrml/**/*"/>
+                    <exclude name="ScriptConformance/originalExamples/*"/>
+                    <exclude name="StudentProjects/DeadReckoningComparisons/*"/>
+                    <exclude name="StudentProjects/melon/*"/>
+                    <exclude name="StudentProjects/Race20/**/*"/>
+                    <exclude name="X3dSpecifications/SAIExample*.*"/>
+                    <!-- ConformanceNist -->
+                    <exclude name="Miscellaneous/Script/**/*"/>
+                    <!-- Vrml2Sourcebook/Siggraph98Course -->
+                    <exclude name="**/Bounce2Script.*"/>
+                    <!-- Savage -->
+                    <exclude name="services/WebServices/**/*"/>
+                    <exclude name="CommunicationsAndSensors/Sonobuoys/rra/**/*"/>
+                    <exclude name="CommunicationsAndSensors/Sonobuoys/rra-orig/**/*"/>
+                    <exclude name="CommunicationsAndSensors/TSSR/CommPduGenerator.*"/>
+                    <exclude name="Scenarios/PiracyIncidents/java/**/*"/>
+                    <exclude name="Scenarios/TankManeuver/SRTG.*"/>
+                    <exclude name="Tools/Authoring/PixelTextureGenerator.*"/>
+                    <exclude name="Tools/Slider/FloatScaler.*"/>
+                    <exclude name="Tools/Slider/ScaledSFFloatScript.*"/>
+                    <exclude name="Tools/Slider/SingleTypeConversionScript.*"/>
+                    <exclude name="Tools/Slider/SliderScript.*"/>
+                    <exclude name="Tools/Slider/widget/**/*"/>
+                    <exclude name="Tools/Terrain/GeoManager.*"/>
+                    <!-- SavageDefense -->
+                    <exclude name="qrcode/**/*.*"/>
             </fileset>
 			<!--
             <fileset dir="javadoc">
@@ -3889,8 +4019,8 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
     </target>
 
     <target name="processScenes.X3DJSAIL.DomLoaderTests" description="test DOM-based scene loading by X3DJSAIL.X3DLoader" depends="">
-		<echo message="test DOM-based scene loading by X3DJSAIL.X3DLoader"/>
-		<echo message="Verifying Apache Ant XML Catalog resolver classpath: ${resolver.dir}/resolver.jar (${resolver.jar.length} bytes)"/>
+        <echo message="test DOM-based scene loading by X3DJSAIL.X3DLoader"/>
+        <echo message="Verifying Apache Ant XML Catalog resolver classpath: ${resolver.dir}/resolver.jar (${resolver.jar.length} bytes)"/>
         <for param="file.path.name">
             <path>
                 <fileset refid="x3dScenes"/>
@@ -3935,7 +4065,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
     </target>
 
     <target name="processScenes.java" description="generate java source, .class files, javadoc" depends="clean.RoundTrip">
-		<mkdir  dir="${java.classes.dir}"/>
+	<mkdir  dir="${java.classes.dir}"/>
         <echo message="Verifying Apache Ant XML Catalog resolver classpath: ${resolver.dir}/resolver.jar (${resolver.jar.length} bytes)"/>
         <for param="file.path.name">
             <path>
@@ -4098,13 +4228,15 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
         <exec executable="python"  dir="." vmlauncher="false">
             <arg value="--version"/>
         </exec>
-        <echo message="pip install --user --upgrade x3d"/>
+        <!--
+        <echo message="pip install - -user - -upgrade x3d"/>
         <exec executable="pip"  dir="." vmlauncher="false">
             <arg value="install"/>
-            <arg value="--user"/>
-            <arg value="--upgrade"/>
+            <arg value="- -user"/>
+            <arg value="- -upgrade"/>
             <arg value="x3d"/>
         </exec>
+        -->
         <echo message="pip show x3d"/>
         <exec executable="pip"  dir="." vmlauncher="false">
             <arg value="show"/><!-- verbose -->
@@ -4119,8 +4251,8 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
         <echo message="$pyjnius.X3DautoclassPath =${pyjnius.X3DautoclassPath}"/>
         <echo message="$pyjnius.configurationPath=${pyjnius.configurationPath}"/>
         -->
-		<echo message="Verifying Apache Ant XML Catalog resolver classpath: ${resolver.dir}/resolver.jar (${resolver.jar.length} bytes)"/>
-		<echo message="====================="/>
+        <echo message="Verifying Apache Ant XML Catalog resolver classpath: ${resolver.dir}/resolver.jar (${resolver.jar.length} bytes)"/>
+        <echo message="====================="/>
         <for param="file.path.name">
             <path>
                 <fileset refid="x3dScenes"/>
@@ -4159,7 +4291,6 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                         </filelist>
                     </sourcefiles>
                     <mapper dir="." type="glob" from="*.x3d" to="*.py"/>
-                <!--<mapper dir="." type="glob" from="*.x3d" to="*.future.py"/>-->
                     <sequential>
                         <!-- process individual files here. show full path to facilitate user loading, editing of reported files -->
                         <!-- see stylesheets/java/src/python/pyjnius/build.xml -->
@@ -4171,7 +4302,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                         </java>
                         <echo message="- - - - - - - - - - -"/>
                         -->
-						<echo message="create python:"/>
+			<echo message="create python:"/>
                         <!-- 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 processing with X3dToPython stylesheet...</echo>
                         <!-- Saxon9 is locally defined macro -->
@@ -4214,7 +4345,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
 
     <target name="processScenes.turtle" description="generate turtle source, run validation test" depends="">
         <echo message="Verifying Apache Ant XML Catalog resolver classpath: ${resolver.dir}/resolver.jar (${resolver.jar.length} bytes)"/>
-		<echo message="==================================="/>
+	<echo message="==================================="/>
         <for param="file.path.name">
             <path>
                 <fileset refid="x3dScenes"/>
-- 
GitLab