[x3d-public] second release: X3DJSAIL Java translations, javadoc in X3DExamples Archives
Don Brutzman
brutzman at nps.edu
Tue Apr 18 00:44:23 PDT 2017
On 4/17/2017 10:47 PM, yottzumm at gmail.com wrote:
> Great effort Don, I hope I helped in some small way (heh, heh, waiting for a replacement computer now).
Thanks John you have helped tons. Identifying bugs and experimenting with design patterns is totally important and has greatly accelerated our progress, on multiple topics simultaneously.
> I am anxious to look at your output Java code/X3dToJava.xslt to see how I can fix the runtime bugs I encountered.
Each java file is individually inspectable now in the online archives, just like .json versions.
Are you differencing the output of Java against original XML yet? That would certainly be good test to add.
Agreed that would be good to add to the build scripts, .x3d via .xslt to .java, compiled, and then runtime serialization back out to .x3d. Every round trip adds multiple QA checks... also a great way to find holes in code.
Have looked for Ant-based XML-diff (or plain-diff) tools, haven't found a native task or seen anything custom that stands out yet. Suggestions welcome... hey wait a minute, this should work well:
XMLUnit - Unit Testing XML for Java and .NET
http://www.xmlunit.org
"XMLUnit for Java 2.3.0 has been released on 2016-11-12, XMLUnit.NET 2.3.1 has been released on 2017-03-23."
Also, just noticed that Ant received an upgrade to v10.1 for Java8 about 10 weeks ago, will look at upgrading to that. That community is extremely careful and thorough with Ant upgrades so it is likely very well tested.
btw have a hunch about how to handle the java-compilation "code too big" error in example scenes (that generate a method > 64K) when using XSLT. The tail-recursion pattern can only returns a single string from each node and its children. The stylesheet console logs reveal that the XSLT is already diagnosing large string values OK already. Am thinking that I will surround long data structures with delimiters as it proceeds, keeping them inline, then upon completed generation will use the embedded delimiters to split that big comprehensive call into data structures plus call. Of course, similar to your approach, will also have to come up with a good naming mechanism for those data structures too. Stay tuned, i should be able to tackle that in another weekend or two.
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
More information about the x3d-public
mailing list