From c904f310e7ed9298966260207c28a60ff3a8949f Mon Sep 17 00:00:00 2001
From: "Norbraten, Terry" <tdnorbra@nps.edu>
Date: Wed, 12 May 2021 10:11:35 -0700
Subject: [PATCH] [Terry N.] bump the version # 2.2 -> 2.3. Hope I got all the
 places to report this

---
 HowToInstall.html                             |  2 +-
 RELEASE_NOTES                                 | 25 ++++++++++++-------
 bin/install/izpack/build.xml                  |  2 +-
 build.properties                              |  4 +--
 build.xml                                     |  4 +--
 installers/README.txt                         |  4 +--
 jars/README.txt                               | 18 ++++++-------
 src/install/izpack/macosx/Info.plist          |  2 +-
 .../izpack/xj3d-mac-install-description.xml   |  2 +-
 .../xj3d-win-linux-install-description.xml    |  2 +-
 10 files changed, 36 insertions(+), 29 deletions(-)

diff --git a/HowToInstall.html b/HowToInstall.html
index 70b03664..c3af1c04 100644
--- a/HowToInstall.html
+++ b/HowToInstall.html
@@ -1 +1 @@
-<!DOCTYPE HTML>

<html>
    <head>
        <title>How To Install and Compile Xj3D</title>
    </head>
    <body>

        <center>
            <table border="0" cellspacing="0" cellpadding="0" summary="">
                <tr align="center">
                <td><pre>   </pre></td>
                <td><h1>How To Install and Compile Xj3D</h1></td>
            </table>
            <font size="-.5">
                <a href="#Libs">Required Libs</a> |
                <a href="#PATH">PATH</a> |
                <a href="#Build">Building Xj3D</a>
            </font>
        </center>


<br/>
        <hr width="100%" />
<br/>

        <h2><a name="Xj3D">What is Xj3D?</a></h2>

        <p>
            <b>Xj3D</b> is an example Open Source implementation for the
            <a href="http://www.web3d.org/standards">X3D and VRML97 specifications</a>.
        </p>

        <p>
            This page is intended to help software developers examine and contribute to the
            source code. This code is under active development,  if you are just
            interested in using the codebase you do not need this document! We have a user
            install available <a href="https://savage.nps.edu/Xj3D.nps/izpackInstallers/">here</a>.
            This install includes everything you need to use Xj3D as a Java3D loader and
            includes a sample VRML97/X3D Browser.  Use the latest version installer
            for best results.
        </p>


        <br/>
        <hr width="100%" />
        <br/>


        <h2>Setting up your Laptop to compile and run the Xj3D Source</h2>

        This section will take you through the steps needed to setup your system to
        compile Xj3D.  It will help you locate all the required utilities/libraries
        and detail which versions have been tested to work.  This version will provide
        a checklist view.
        <p>
        Install the packages to whatever directories you like, but record their locations.
        We recommend a directory location that will be used in example paths.
        You will use these locations later to setup your CLASSPATH and PATH environment
        variables.  If a package is mentioned as residing in the lib directory then we
        suggest you use that version.  Some of these are hard to find, tracking at a
        different version or we have modified them.
        </p>
        <a name="Libs"></a>
        <ol>
            <li>
                <b><a href="http://www.netbeans.org/">NetBeans IDE</a></b> is an Integrated Development Environment (IDE) which is the easiest to use for Xj3D development.
                There are many other IDEs out there, i.e. IntelliJ, Eclipse, etc., but we prefer NetBeans.
                To check out the latest JDK + NetBeans bundle, search online for <code>Java SE bundle of NetBeans IDE</code>.
                This bundle will give you the latest JDK, Apache Ant and an IDE that includes all tools to checkout, build and run the code
                all within the IDE.

                <p>
                <b>Checking out the Code:</b>
                <ul>
                    <li>Read the online tutorials for NetBeans SVN checkouts.</li>
                    <li>https://svn.code.sf.net/p/xj3d/code/branches/NPS</li>
                </ul>

            </li>

            <li>
                <p>
                <b>JavaCC</b> - version 5.0 is included in the checked out codebase.

            </li>

            <li>
                <b>JInput</b> - Java Input library for USB devices<p>
                <font color="red">The 2.0 codebase has not been updated to support the latest Jinput.  Its been removed from the compile list for now.</font>
                You can download it here: <a href="https://games-binaries.dev.java.net/build/index.html">https://games-binaries.dev.java.net/build/index.html</a>
                <p>
                These instructions assume you've installed this in the project /lib directory
            </li>

            <li>
            <p>
                <b>JOAL</b> - latest version from JogAmp included.
            </li>

            <li>

            <p>
                <b>JMF</b> - Java Media Framework provides video libraries.
            <p>This is also included in the codebase</p>
            </li>

            <li>

            <p>
                <b>SWT</b> - Standard Widget Toolkit<P>
                You'll need a 3.2 version of SWT.
                <p>
                All SWT libs are included in the codebase, however, SWT is now unsupported in
                the NPS Branch of development.
            </li>

            <li>

            <p>
                <b>Vecmath</b> - Vector Math<P>
                This comes in the Java3D distribution from JogAmp, but a copy
                is included with the codebase.
            </li>

        </ol>

        Xj3D currently supports two renderers.  Each one uses a different underlying rendering library.

        <ul>
            <li>
                <b>JOGL</b> - The default renderer is an OpenGL based renderer.
                <p>
                Latest version 2.2.4 included from JogAmp.

            </li>

            <li>
                <b>GL4Java</b> - The mobile renderer is implemented using GL4Java.  It will be moving to JOGL soon.
                Download here: <a href="http://www.jausoft.com/gl4java.html">GL4Java</a>
            </li>
        </ul>

        <hr width="100%" />
        <br/>

        <H3>Environment Variable Setup</H3>
        <p>
        <a name="PATH">
        <b>PATH</b></a> settings are always
        a bit tricky. The easiest way to setup the system environment variables is to
        modify the .bashrc file located in <code>$userid</code>.
        Where <code>$userid</code> is your profile space, i.e. /Users/your-name-here.  For
        Windows machines, modify Environment Variables from the Control Panel's
        advanced settings.  PATH settings are only required if you wish to run
        the code from the command line.  JAVA_HOME and ANT_HOME will be required
        in the PATH setting for the /bin directories for each.
        </p>
        <p>CLASSPATH is already setup to be used in NetBeans, or on the command line via the Apache Ant <a href="build.xml">build.xml</a> located in the base directory of the project.

        <hr width="100%" />
        <br/>

        <a name="Build"><H3>Building the Xj3D source</H3></a>

        Use the NetBeans IDE to compile/build/run Xj3D and examples, or

        <p>
        from the command line, navigate to the project folder/directory and type:
        <pre>ant compile</pre>

        <p>
        This will build all of the parser source code using javacc as well as
        all the java source code for the browser and all applications.
        <p>
        If you wish to run example code type:
        <pre>ant compile.all.examples</pre>

        Typing just
        <pre>ant -p</pre>

        will provide a complete list of options available, including those for
        compiling a code for only a specific renderer.
        <p>

        To test that you have the codebase compiling correctly try the following:
        <pre>ant run</pre>
        hit the Go! button,
        see box, rejoice!

        <p>Command line scripts are also copied down to the base directory for convenience for running Xj3D and the converter.</p>

        <hr width="100%" />

        <h3>More info on Xj3D?</h3>
        <p>Head <a href="indexXj3D.nps.redirect.html">here</a>.</p>
        <p>
            Last Revised: <i>$Date: 2014-10-23 23:45:57 -0700 (Thu, 23 Oct 2014) $</i>
        </p>
    </body>
</html>
\ No newline at end of file
+<!DOCTYPE HTML>

<html>
    <head>
        <title>How To Install and Compile Xj3D</title>
    </head>
    <body>

        <center>
            <table border="0" cellspacing="0" cellpadding="0" summary="">
                <tr align="center">
                <td><pre>   </pre></td>
                <td><h1>How To Install and Compile Xj3D</h1></td>
            </table>
            <font size="-.5">
                <a href="#Libs">Required Libs</a> |
                <a href="#PATH">PATH</a> |
                <a href="#Build">Building Xj3D</a>
            </font>
        </center>


<br/>
        <hr width="100%" />
<br/>

        <h2><a name="Xj3D">What is Xj3D?</a></h2>

        <p>
            <b>Xj3D</b> is an example Open Source implementation for the
            <a href="http://www.web3d.org/standards">X3D and VRML97 specifications</a>.
        </p>

        <p>
            This page is intended to help software developers examine and contribute to the
            source code. This code is under active development,  if you are just
            interested in using the codebase you do not need this document! We have a user
            install available <a href="https://savage.nps.edu/Xj3D.nps/izpackInstallers/">here</a>.
            This install includes everything you need to use Xj3D as a Java3D loader and
            includes a sample VRML97/X3D Browser.  Use the latest version installer
            for best results.
        </p>


        <br/>
        <hr width="100%" />
        <br/>


        <h2>Setting up your Laptop to compile and run the Xj3D Source</h2>

        This section will take you through the steps needed to setup your system to
        compile Xj3D.  It will help you locate all the required utilities/libraries
        and detail which versions have been tested to work.  This version will provide
        a checklist view.
        <p>
        Install the packages to whatever directories you like, but record their locations.
        We recommend a directory location that will be used in example paths.
        You will use these locations later to setup your CLASSPATH and PATH environment
        variables.  If a package is mentioned as residing in the lib directory then we
        suggest you use that version.  Some of these are hard to find, tracking at a
        different version or we have modified them.
        </p>
        <a name="Libs"></a>
        <ol>
            <li>
                <b><a href="http://www.netbeans.org/">NetBeans IDE</a></b> is an Integrated Development Environment (IDE) which is the easiest to use for Xj3D development.
                There are many other IDEs out there, i.e. IntelliJ, Eclipse, etc., but we prefer NetBeans.
                To check out the latest JDK + NetBeans bundle, search online for <code>Java SE bundle of NetBeans IDE</code>.
                This bundle will give you the latest JDK, Apache Ant and an IDE that includes all tools to checkout, build and run the code
                all within the IDE.

                <p>
                <b>Checking out the Code:</b>
                <ul>
                    <li>Read the online tutorials for NetBeans SVN checkouts.</li>
                    <li>https://gitlab.nps.edu/Savage/xj3d.git</li>
                </ul>

            </li>

            <li>
                <p>
                <b>JavaCC</b> - version 5.0 is included in the checked out codebase.

            </li>

            <li>
                <b>JInput</b> - Java Input library for USB devices<p>
                <font color="red">The 2.0 codebase has not been updated to support the latest Jinput.  Its been removed from the compile list for now.</font>
                You can download it here: <a href="https://games-binaries.dev.java.net/build/index.html">https://games-binaries.dev.java.net/build/index.html</a>
                <p>
                These instructions assume you've installed this in the project /lib directory
            </li>

            <li>
            <p>
                <b>JOAL</b> - latest version from JogAmp included.
            </li>

            <li>

            <p>
                <b>JMF</b> - Java Media Framework provides video libraries.
            <p>This is also included in the codebase</p>
            </li>

            <li>

            <p>
                <b>SWT</b> - Standard Widget Toolkit<P>
                You'll need a 3.2 version of SWT.
                <p>
                All SWT libs are included in the codebase, however, SWT is now unsupported in
                the NPS Branch of development.
            </li>

            <li>

            <p>
                <b>Vecmath</b> - Vector Math<P>
                This comes in the Java3D distribution from JogAmp, but a copy
                is included with the codebase.
            </li>

        </ol>

        Xj3D currently supports two renderers.  Each one uses a different underlying rendering library.

        <ul>
            <li>
                <b>JOGL</b> - The default renderer is an OpenGL based renderer.
                <p>
                Latest version 2.4.0-rc-20210111 included from JogAmp.

            </li>

            <li>
                <b>GL4Java</b> - The mobile renderer is implemented using GL4Java.  It will be moving to JOGL soon.
                Download here: <a href="http://www.jausoft.com/gl4java.html">GL4Java</a>
            </li>
        </ul>

        <hr width="100%" />
        <br/>

        <H3>Environment Variable Setup</H3>
        <p>
        <a name="PATH">
        <b>PATH</b></a> settings are always
        a bit tricky. The easiest way to setup the system environment variables is to
        modify the .bashrc file located in <code>$userid</code>.
        Where <code>$userid</code> is your profile space, i.e. /Users/your-name-here.  For
        Windows machines, modify Environment Variables from the Control Panel's
        advanced settings.  PATH settings are only required if you wish to run
        the code from the command line.  JAVA_HOME and ANT_HOME will be required
        in the PATH setting for the /bin directories for each.
        </p>
        <p>CLASSPATH is already setup to be used in NetBeans, or on the command line via the Apache Ant <a href="build.xml">build.xml</a> located in the base directory of the project.

        <hr width="100%" />
        <br/>

        <a name="Build"><H3>Building the Xj3D source</H3></a>

        Use the NetBeans IDE to compile/build/run Xj3D and examples, or

        <p>
        from the command line, navigate to the project folder/directory and type:
        <pre>ant compile</pre>

        <p>
        This will build all of the parser source code using javacc as well as
        all the java source code for the browser and all applications.
        <p>
        If you wish to run example code type:
        <pre>ant compile.all.examples</pre>

        Typing just
        <pre>ant -p</pre>

        will provide a complete list of options available, including those for
        compiling a code for only a specific renderer.
        <p>

        To test that you have the codebase compiling correctly try the following:
        <pre>ant run</pre>
        hit the Go! button,
        see box, rejoice!

        <p>Command line scripts are also copied down to the base directory for convenience for running Xj3D and the converter.</p>

        <hr width="100%" />

        <h3>More info on Xj3D?</h3>
        <p>Head <a href="indexXj3D.nps.redirect.html">here</a>.</p>
        <p>
            Last Revised: <i>$Date: 2021-05-12 10:00:00 -0700 (Wed, 12 May 2021) $</i>
        </p>
    </body>
</html>
\ No newline at end of file
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 74d74f27..1fc27553 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -34,6 +34,13 @@ Post release fixes / upgrades / issues:
 
   ****** FIXES / UPGRADES:
 
+Release: 2.3 (May 12, 2021)
+-------------------------
+Major changes since 2.2 (Feb 09, 2020):
+
+  Fixed a bug in org.web3d.vrml.util.URLChecker that wouldn't allow Windows
+  file system URLs to pass through
+
   The HTTPClient lib, a dependency in Justin Couch's URIlib, now supports
   the https:// protocol :-)
 
@@ -51,16 +58,16 @@ Post release fixes / upgrades / issues:
   Shapeways (Alan H.) continued work on the original codebase.
 
   Align w/ latest Aviatrix3D as much as possible harnessing the efficient 
-  refactors Justin Couch has implemented in v3.1.0 with the rendering surfaces, 
-  rendering processors, the canvas descriptors and the various threading managers.
-  Some refactors that could not be used in Xj3D are the retention of the vecmath 
-  lib, retention of float vs. double backing arrays and the original 
-  DefaultPickingHandler. The screen resolution issue with some screen sizes issue 
-  noted during upgrade to JOGL v2.4 was fixed this round.
-
-Release: 2.2(Feb 09, 2020)
+  refactors Justin Couch has implemented in v3.1.0 (GitHub) with the rendering 
+  surfaces, rendering processors, the canvas descriptors and the various 
+  threading managers. Some refactors that could not be used in Xj3D are the 
+  retention of the vecmath lib, retention of float vs. double backing arrays and 
+  the original DefaultPickingHandler. The screen resolution issue with some 
+  screen sizes issue noted during upgrade to JOGL v2.4 was fixed this round.
+
+Release: 2.2 (Feb 09, 2020)
 -------------------------
-Major changes since 2.1(May 22, 2014):
+Major changes since 2.1 (May 22, 2014):
 
   ${java.home}/lib/content-types.properties was removed in JDK9+. It is now 
   included internally in the binary java.base module. Workaround implemented in 
diff --git a/bin/install/izpack/build.xml b/bin/install/izpack/build.xml
index 4ba3c910..b2804db9 100644
--- a/bin/install/izpack/build.xml
+++ b/bin/install/izpack/build.xml
@@ -3,7 +3,7 @@
 <!-- Seems to render in Mozilla Firefox the best.  Broken in IE7 -->
 <?xml-stylesheet type="text/xsl" href="./ant2html.xsl"?>
 
-<project name="Xj3D v2.2 izpack" default="run" basedir=".">
+<project name="Xj3D v2.3 izpack" default="run" basedir=".">
 
     <!-- $Id: build.xml 12537 2015-11-02 22:56:36Z tnorbraten $ -->
 
diff --git a/build.properties b/build.properties
index 0089c400..cdab8474 100644
--- a/build.properties
+++ b/build.properties
@@ -18,10 +18,10 @@ my.name=Contact: X3D Working Group public mailing list
 product.Name=Xj3D Graphics Browser
 product.shortname=xj3d
 product.version.major=2
-product.version.level=2
+product.version.level=3
 product.Version=${product.version.major}.${product.version.level}-nps
 product.url=https://savage.nps.edu/Savage/developers.html#Xj3D
-years=1995-2020
+years=1995-2021
 copyright=Copyright \u00a9 ${years} held by the author(s).  All Rights Reserved.
 nps=Naval Postgraduate School (NPS)
 moves.institute=Modeling, Virtual Environments and Simulation (MOVES) Institute
diff --git a/build.xml b/build.xml
index fb121bf2..e3762af1 100644
--- a/build.xml
+++ b/build.xml
@@ -1427,8 +1427,8 @@ Nearby:
             <fileset dir="installers">
                 <include name="README.installers.txt"/>
                 <include name="README.txt"/>
-                <include name="xj3d-2.2-nps-macosx-installer.jar"/>
-                <include name="xj3d-2.2-nps-win-linux-32-64-installer.jar"/>
+                <include name="${project.shortname}-${product.Version}-macosx-installer.jar"/>
+                <include name="${project.shortname}-${product.Version}-win-linux-32-64-installer.jar"/>
                 <!-- excluding these -->
                 <exclude name="access.properties*"/>
             </fileset>
diff --git a/installers/README.txt b/installers/README.txt
index 9fdd53bc..ca1f3435 100644
--- a/installers/README.txt
+++ b/installers/README.txt
@@ -3,8 +3,8 @@ Xj3D installers README.txt
 The following application installers are created when building the Xj3D project.
 Project administrators upload official releases to GitLab for user availability.
 
-xj3d-2.2-nps-macosx-installer.jar
-xj3d-2.2-nps-win-linux-32-64-installer.jar
+xj3d-2.3-nps-macosx-installer.jar
+xj3d-2.3-nps-win-linux-32-64-installer.jar
 
 Deployment:    https://savage.nps.edu/Xj3D.nps/installers
 
diff --git a/jars/README.txt b/jars/README.txt
index edc24c98..3b059f17 100644
--- a/jars/README.txt
+++ b/jars/README.txt
@@ -6,15 +6,15 @@ Project administrators upload official releases to GitLab for user availability.
 README.txt
 jhall.jar
 jogamp-fat.jar
-xj3d.browser_2.2.0-nps.jar
-xj3d.browser_2.2.0-nps-src.jar
-xj3d.cadfilter_2.2.0-nps.jar
-xj3d.cadfilter_2.2.0-nps-src.jar
-xj3d.replica_2.2.0-nps.jar
-xj3d.replica_2.2.0-nps-src.jar
-xj3d-2.2-3rdparty-nps.jar
-xj3d-2.2-nps.jar
-xj3d-2.2-nps-src.jar
+xj3d.browser_2.3.0-nps.jar
+xj3d.browser_2.3.0-nps-src.jar
+xj3d.cadfilter_2.3.0-nps.jar
+xj3d.cadfilter_2.3.0-nps-src.jar
+xj3d.replica_2.3.0-nps.jar
+xj3d.replica_2.3.0-nps-src.jar
+xj3d-2.3-3rdparty-nps.jar
+xj3d-2.3-nps.jar
+xj3d-2.3-nps-src.jar
 
 Deployment:    https://savage.nps.edu/Xj3D.nps/jars
 
diff --git a/src/install/izpack/macosx/Info.plist b/src/install/izpack/macosx/Info.plist
index 68f1e24f..fe3e85d2 100644
--- a/src/install/izpack/macosx/Info.plist
+++ b/src/install/izpack/macosx/Info.plist
@@ -15,7 +15,7 @@
         <key>CFBundleName</key>
         <string>Xj3DBrowser</string>
         <key>CFBundleVersion</key>
-        <string>2.2</string>
+        <string>2.3</string>
         <key>CFBundleGetInfoString</key>
         <string>Copyright © 1995-2020. All rights reserved.</string>
         <key>CFBundleShortVersionString</key>
diff --git a/src/install/izpack/xj3d-mac-install-description.xml b/src/install/izpack/xj3d-mac-install-description.xml
index 73694d9c..faf1954d 100644
--- a/src/install/izpack/xj3d-mac-install-description.xml
+++ b/src/install/izpack/xj3d-mac-install-description.xml
@@ -26,7 +26,7 @@
     <!-- the application official website url -->
     <uninstaller write="yes" name="Xj3Duninstaller.jar"/>
     <!-- specifies whether to create an uninstaller after installation, and which name to use for it. This tag has the write attribute, with default value `` yes``. If this tag is not specified, the uninstaller will still be written. The name attribute can be used to change the default name of the generated uninstaller, i.e. `` uninstaller.jar``. -->
-    <javaversion>11</javaversion>
+    <javaversion>15</javaversion>
     <!-- specifies the minimum version of Java required to install your program. Values can be 1.2, 1.2.2, 1.4, etc. The test is a lexical comparison against the java.version System property on the install machine. -->
     <requiresjdk>no</requiresjdk>
     <!-- specifies the path for the logfile of the SummaryLoggerInstallerListener. -->
diff --git a/src/install/izpack/xj3d-win-linux-install-description.xml b/src/install/izpack/xj3d-win-linux-install-description.xml
index 5bffdff5..41c94768 100644
--- a/src/install/izpack/xj3d-win-linux-install-description.xml
+++ b/src/install/izpack/xj3d-win-linux-install-description.xml
@@ -30,7 +30,7 @@
     <!-- the application official website url -->
     <uninstaller write="yes" name="Xj3Duninstaller.jar"/>
     <!-- specifies whether to create an uninstaller after installation, and which name to use for it. This tag has the write attribute, with default value `` yes``. If this tag is not specified, the uninstaller will still be written. The name attribute can be used to change the default name of the generated uninstaller, i.e. `` uninstaller.jar``. -->
-    <javaversion>11</javaversion>
+    <javaversion>15</javaversion>
     <!-- specifies the minimum version of Java required to install your program. Values can be 1.2, 1.2.2, 1.4, etc. The test is a lexical comparison against the java.version System property on the install machine. -->
     <requiresjdk>no</requiresjdk>
     <!-- specifies the path for the logfile of the SummaryLoggerInstallerListener. -->
-- 
GitLab