<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Further improvement patches.  Note that I use file names instead of paths because they are JavaScript filenames--paths don’t work—but by all means try to get paths to work. I just don’t think you’ll be able to do it—and it will be a hairy mess.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>2 patches attached.  Patching same two files as last time (see below included message).</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Note that there may be future patches, especially related to comments in the JavaScript serializer.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I am hoping this patch will make test.nashorn work for you <span style='font-family:"Segoe UI Emoji",sans-serif'>😊</span>.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>As soon as these patches are integrated, I will be doing a full checkout of <a href="http://www.web3d.org">www.web3d.org</a> for a final test.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>MetadataString still missing from JS outputted X3D XML (I’m hoping you get this this time, I don’t think you’ve seen it before).  Probably because it’s missing from the JSON and JS, but I haven’t investigated this time.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Sent: </b>Saturday, January 13, 2018 4:04 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: Errors in my X3DJSAIL HelloWorldProgramOutput.java commandline,generating XML, JSON and JS</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 1/13/2018 4:49 AM, John Carlson wrote:</p><p class=MsoNormal>> Here are the deltas, and a pointer to a new nashorn zip</p><p class=MsoNormal>> </p><p class=MsoNormal>> 2 files attached. One for www.web3d.org/x3d/stylesheets/java/build.xml </p><p class=MsoNormal>> <http://www.web3d.org/x3d/stylesheets/java/build.xml> and one for </p><p class=MsoNormal>> www.web3d.org/x3d/stylesheets/CreateX3dSceneAccessInterfaceJava.xslt</p><p class=MsoNormal>> </p><p class=MsoNormal>> https://coderextreme.net/X3DJSONLD/nashorn3.zip</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>thanks for helpful patches.  all integrated, made some changes along the way.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>- yes overriding XSLT engine for json/javascript conversions, but then restoring prior setting.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>- am copying files from parent examples directory to ensure comparisons look at correct latest release version.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-  some further cleanup appears possible.  please also check that added comments match your intent.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>- HelloWorldProgramOutputOutput is too recursive for filename comprehension, replaced with</p><p class=MsoNormal>   HelloWorldProgramOutput.Nashorn.x3d etc.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>- improved test.nashorn task, it mostly works now (and also reports a conversion diff) until the "line 3" failure.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all these changes are checked in, upload in progress.  console log follows, back to you John.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>========================================================================================================================</p><p class=MsoNormal>     <target name="test.nashorn" description="Test Nashorn output from X3DJSAIL"></p><p class=MsoNormal>                                <echo message="Compile:"/></p><p class=MsoNormal>                 <!-- local developer modification checks, apparently --></p><p class=MsoNormal>                                <javac srcdir ="${java.examples.dir}"</p><p class=MsoNormal>                                                   classpath=""</p><p class=MsoNormal>                                                   destdir="${java.classes.dir}"</p><p class=MsoNormal>                                                   debug="on"</p><p class=MsoNormal>                                                   verbose="${javac.verbose}"</p><p class=MsoNormal>                                                   includeantruntime="false" fork="${fork}"></p><p class=MsoNormal>                                </javac></p><p class=MsoNormal>                 <!-- Dev testing: copying of originals, reconversion and then comparison of files --></p><p class=MsoNormal>                                <echo message="Copy:"/></p><p class=MsoNormal>                 <copy file="examples/HelloWorldProgramOutput.x3d"  tofile="nashorn/examples/HelloWorldProgramOutput.x3d"  overwrite="true" verbose="true"/></p><p class=MsoNormal>                 <copy file="examples/HelloWorldProgramOutput.json" tofile="nashorn/examples/HelloWorldProgramOutput.json" overwrite="true" verbose="true"/></p><p class=MsoNormal>                                <echo message="Run:"/></p><p class=MsoNormal>                 <java classname="HelloWorldProgramOutput" classpath="${java.classes.dir};${java.jars.dir}/${jsai.full.archive.jar.name}" fork="${fork}"></p><p class=MsoNormal>                     <arg value="examples/HelloWorldProgramOutput.x3d"/></p><p class=MsoNormal>                     <arg value="-toJS"/><!-- alternatively -toJavaScript --></p><p class=MsoNormal>                     <arg value="-toFile"/></p><p class=MsoNormal>                     <arg value="nashorn/examples/HelloWorldProgramOutput.Nashorn.js"/></p><p class=MsoNormal>                 </java></p><p class=MsoNormal>                 <java classname="HelloWorldProgramOutput" classpath="${java.classes.dir};${java.jars.dir}/${jsai.full.archive.jar.name}" fork="${fork}"></p><p class=MsoNormal>                     <arg value="examples/HelloWorldProgramOutput.x3d"/></p><p class=MsoNormal>                     <arg value="-toJSON"/></p><p class=MsoNormal>                     <arg value="-toFile"/></p><p class=MsoNormal>                     <arg value="nashorn/examples/HelloWorldProgramOutput.Nashorn.json"/></p><p class=MsoNormal>                 </java></p><p class=MsoNormal>                 <java classname="HelloWorldProgramOutput" classpath="${java.classes.dir};${java.jars.dir}/${jsai.full.archive.jar.name}" fork="${fork}"></p><p class=MsoNormal>                     <arg value="examples/HelloWorldProgramOutput.x3d"/></p><p class=MsoNormal>                     <arg value="-toX3D"/></p><p class=MsoNormal>                     <arg value="-toFile"/></p><p class=MsoNormal>                     <arg value="nashorn/examples/HelloWorldProgramOutput.Nashorn.x3d"/></p><p class=MsoNormal>                 </java></p><p class=MsoNormal>                                <echo message="==========================================="/></p><p class=MsoNormal>                                <echo message="HelloWorldProgramOutput.Nashorn.x3d"/></p><p class=MsoNormal>                                <xmlvalidate lenient="yes" warn="yes" file="nashorn/examples/HelloWorldProgramOutput.Nashorn.x3d"/></p><p class=MsoNormal>                                <xmlvalidate lenient="no"  warn="yes" file="nashorn/examples/HelloWorldProgramOutput.Nashorn.x3d"/></p><p class=MsoNormal>                                <condition property="Nashorn.x3d.match" value="true"></p><p class=MsoNormal>                     <filesmatch file1="nashorn/examples/HelloWorldProgramOutput.x3d"</p><p class=MsoNormal>                                 file2="nashorn/examples/HelloWorldProgramOutput.Nashorn.x3d"/></p><p class=MsoNormal>                                </condition></p><p class=MsoNormal>                                <!-- otherwise --><property name="Nashorn.x3d.match" value="false"/></p><p class=MsoNormal>                                <echo message="matches HelloWorldProgramOutput.x3d: ${Nashorn.x3d.match}"/></p><p class=MsoNormal>                                <echo message="==========================================="/></p><p class=MsoNormal>                                <echo message="script:"/></p><p class=MsoNormal><!--    <script language="nashorn"> TODO debugging --></p><p class=MsoNormal>                                <script language="javascript" manager="javax"></p><p class=MsoNormal>                                                <classpath></p><p class=MsoNormal>                                                                <fileset dir="${saxon.dir}"      includes="${saxon.jar}"/></p><p class=MsoNormal>                                                                <fileset dir="${exificient.dir}" includes="${exificient.jar}"/></p><p class=MsoNormal>                                                                <fileset dir="${openexi.dir}"    includes="${openexi.jar}"/></p><p class=MsoNormal>                                                                <fileset dir="${java.jars.dir}"  includes="${jsai.classes.archive.jar.name}"/></p><p class=MsoNormal>                                                </classpath></p><p class=MsoNormal>                                                load('nashorn/jvm-npm.js');</p><p class=MsoNormal>                                                load('nashorn/repeatPolyfill.js');</p><p class=MsoNormal>                                                /*</p><p class=MsoNormal>                                                load('nashorn/examples/HelloWorldProgramOutputNashorn.js.intermediate.js');</p><p class=MsoNormal>                                                */</p><p class=MsoNormal>                                                load('nashorn/examples/HelloWorldProgramOutputNashorn.js');</p><p class=MsoNormal>                                </script></p><p class=MsoNormal>     </target></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>========================================================================================================================</p><p class=MsoNormal>ant -f C:\\x3d-code\\www.web3d.org\\x3d\\stylesheets\\java test.nashorn</p><p class=MsoNormal>test.nashorn:</p><p class=MsoNormal>Compile:</p><p class=MsoNormal>Compiling 1 source file to C:\x3d-code\www.web3d.org\x3d\stylesheets\java\classes</p><p class=MsoNormal>Copy:</p><p class=MsoNormal>Copying 1 file to C:\x3d-code\www.web3d.org\x3d\stylesheets\java\nashorn\examples</p><p class=MsoNormal>Copying C:\x3d-code\www.web3d.org\x3d\stylesheets\java\examples\HelloWorldProgramOutput.x3d to C:\x3d-code\www.web3d.org\x3d\stylesheets\java\nashorn\examples\HelloWorldProgramOutput.x3d</p><p class=MsoNormal>Copying 1 file to C:\x3d-code\www.web3d.org\x3d\stylesheets\java\nashorn\examples</p><p class=MsoNormal>Copying C:\x3d-code\www.web3d.org\x3d\stylesheets\java\examples\HelloWorldProgramOutput.json to C:\x3d-code\www.web3d.org\x3d\stylesheets\java\nashorn\examples\HelloWorldProgramOutput.json</p><p class=MsoNormal>Run:</p><p class=MsoNormal>parameter: source file HelloWorldProgramOutput.x3d filesize 20715 bytes</p><p class=MsoNormal>parameter: "-toJS" for conversion to X3DJSONLD JavaScript source</p><p class=MsoNormal>parameter: "-toFile" "nashorn/examples/HelloWorldProgramOutput.Nashorn.js" for result file name root nashorn/examples/HelloWorldProgramOutput.Nashorn</p><p class=MsoNormal>convert to JS JavaScript:</p><p class=MsoNormal>Script DEF=colorTypeConversionScript contains CDATA source-code text, copied as "#sourceText" using "strings" mode</p><p class=MsoNormal>Script DEF=MaterialModulatorScript contains CDATA source-code text, copied as "#sourceText" using "strings" mode</p><p class=MsoNormal>[Error] file conversion unsuccessful!</p><p class=MsoNormal>parameter: source file HelloWorldProgramOutput.x3d filesize 20715 bytes</p><p class=MsoNormal>parameter: "-toJSON" for conversion to JSON encoding</p><p class=MsoNormal>parameter: "-toFile" "nashorn/examples/HelloWorldProgramOutput.Nashorn.json" for result file name root nashorn/examples/HelloWorldProgramOutput.Nashorn</p><p class=MsoNormal>convert to JSON:</p><p class=MsoNormal>Warning: toFileStylesheetConversion(X3dToJson.xslt) is overwriting prior file nashorn/examples/HelloWorldProgramOutput.Nashorn.json</p><p class=MsoNormal>Script DEF=colorTypeConversionScript contains CDATA source-code text, copied as "#sourceText" using "strings" mode</p><p class=MsoNormal>Script DEF=MaterialModulatorScript contains CDATA source-code text, copied as "#sourceText" using "strings" mode</p><p class=MsoNormal>file conversion successful: HelloWorldProgramOutput.Nashorn.json (39061 bytes)</p><p class=MsoNormal>parameter: source file HelloWorldProgramOutput.x3d filesize 20715 bytes</p><p class=MsoNormal>parameter: "-toX3D" for conversion to X3D encoding</p><p class=MsoNormal>parameter: "-toFile" "nashorn/examples/HelloWorldProgramOutput.Nashorn.x3d" for result file name root nashorn/examples/HelloWorldProgramOutput.Nashorn</p><p class=MsoNormal>convert to X3D:</p><p class=MsoNormal>Warning: toFileX3D() is overwriting prior file nashorn/examples/HelloWorldProgramOutput.Nashorn.x3d</p><p class=MsoNormal>file conversion successful: HelloWorldProgramOutput.Nashorn.x3d (20715 bytes)</p><p class=MsoNormal>===========================================</p><p class=MsoNormal>HelloWorldProgramOutput.Nashorn.x3d</p><p class=MsoNormal>1 file(s) have been successfully validated.</p><p class=MsoNormal>1 file(s) have been successfully validated.</p><p class=MsoNormal>matches HelloWorldProgramOutput.x3d: true</p><p class=MsoNormal>===========================================</p><p class=MsoNormal>script:</p><p class=MsoNormal>C:\x3d-code\www.web3d.org\x3d\stylesheets\java\build.xml:186:</p><p class=MsoNormal>javax.script.ScriptException: TypeError: Cannot load script from nashorn/jvm-npm.js in <eval> at line number 3</p><p class=MsoNormal>                at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470)</p><p class=MsoNormal>                at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:454)</p><p class=MsoNormal>                at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406)</p><p class=MsoNormal>                at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402)</p><p class=MsoNormal>                at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155)</p><p class=MsoNormal>                at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)</p><p class=MsoNormal>                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</p><p class=MsoNormal>                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)</p><p class=MsoNormal>                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)</p><p class=MsoNormal>                at java.lang.reflect.Method.invoke(Method.java:498)</p><p class=MsoNormal>                at org.apache.tools.ant.util.ReflectUtil.invoke(ReflectUtil.java:109)</p><p class=MsoNormal>                at org.apache.tools.ant.util.ReflectWrapper.invoke(ReflectWrapper.java:81)</p><p class=MsoNormal>                at org.apache.tools.ant.util.optional.JavaxScriptRunner.evaluateScript(JavaxScriptRunner.java:103)</p><p class=MsoNormal>                at org.apache.tools.ant.util.optional.JavaxScriptRunner.executeScript(JavaxScriptRunner.java:67)</p><p class=MsoNormal>                at org.apache.tools.ant.taskdefs.optional.Script.execute(Script.java:53)</p><p class=MsoNormal>                at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)</p><p class=MsoNormal>                at sun.reflect.GeneratedMethodAccessor413.invoke(Unknown Source)</p><p class=MsoNormal>                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)</p><p class=MsoNormal>                at java.lang.reflect.Method.invoke(Method.java:498)</p><p class=MsoNormal>                at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)</p><p class=MsoNormal>                at org.apache.tools.ant.Task.perform(Task.java:348)</p><p class=MsoNormal>                at org.apache.tools.ant.Target.execute(Target.java:435)</p><p class=MsoNormal>                at org.apache.tools.ant.Target.performTasks(Target.java:456)</p><p class=MsoNormal>                at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)</p><p class=MsoNormal>                at org.apache.tools.ant.Project.executeTarget(Project.java:1376)</p><p class=MsoNormal>                at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)</p><p class=MsoNormal>                at org.apache.tools.ant.Project.executeTargets(Project.java:1260)</p><p class=MsoNormal>                at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:286)</p><p class=MsoNormal>                at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:555)</p><p class=MsoNormal>                at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)</p><p class=MsoNormal>Caused by: <eval>:3 TypeError: Cannot load script from nashorn/jvm-npm.js</p><p class=MsoNormal>                at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)</p><p class=MsoNormal>                at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:213)</p><p class=MsoNormal>                at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:185)</p><p class=MsoNormal>                at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:172)</p><p class=MsoNormal>                at jdk.nashorn.internal.runtime.Context.load(Context.java:868)</p><p class=MsoNormal>                at jdk.nashorn.internal.objects.Global.load(Global.java:1545)</p><p class=MsoNormal>                at jdk.nashorn.internal.scripts.Script$4$\^eval\_.:program(<eval>:3)</p><p class=MsoNormal>                at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:637)</p><p class=MsoNormal>                at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494)</p><p class=MsoNormal>                at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)</p><p class=MsoNormal>                at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:449)</p><p class=MsoNormal>                ... 28 more</p><p class=MsoNormal>BUILD FAILED (total time: 16 seconds)</p><p class=MsoNormal>========================================================================================================================</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don</p><p class=MsoNormal>-- </p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu</p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>