Post release fixes / upgrades / issues:

  ***** ISSUES:

  Do to the nature of XML to Java translation, any derived class from a super
  type must list the super type's fields in identical order so that type
  matching can verify the super type for correct calls to super from the
  derived translated java source.

  On Mac OS X 10.10.3 (Yosemite) & JDK 1.8.0_45, in the default L&F mode, while
  inputting EG Parameters when the user selects more... to expose RandomVariate
  types, a NPE will be thrown:

    at com.apple.laf.AquaMenuPainter.paintSelectedMenuItemBackground(AquaMenuPainter.java:153)

  Another apple.laf NPE discovered when using default L&F:

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException:
    Cannot invoke "javax.swing.border.Border.paintBorder(java.awt.Component,
    java.awt.Graphics, int, int, int, int)" because the return value of
    "com.apple.laf.AquaMenuPainter$RecyclableBorder.get()" is null

  Select the Platform L&F for OS X users as the solution. On Win machines, the
  platform L&F is not the best choice as the background coloring for tabs is
  quite glaring. The default L&F for Win machines is recommended. Also WIN
  machine will not see EG tab status coloring in the platform mode.

  Due to the way the SimkitXML2Java generates EG extensions of super
  SimEntities, a default constructor will not be generated in subclasses
  accordingly. When it is time to parameterize EG constructors at Assy creation
  time, an EG with a default (no arg) constructor will conveniently establish a
  Random Variate Factory instance automatically within the Event Node Inspector.
  A subclass of a SimEntity will not automatically establish a RVF instance,
  therefore one must select the instantiation wizard, select "factory", accept
  the change and then a RVF instance will be established and ready to accept
  direct (String, Object...) inputs.

  At this time, the XML to Java translators cannot handle a super type generic
  container declaration in XML, then instantiate it as a dynamic type, i.e.
  List<String> list = new ArrayList<>(). The static declaration must match the
  dynamic type accordingly.

  Because of the unique nature of XML IDs, we are not able to have similar
  method names, i.e. Arrival, in an EG file even with differing method
  signatures. As such, subclassing is still possible, but the user will have
  to manually name Events in this manner using an underscore character, i.e.
  Arrival, Arrival_e (where the "e" hints at the type argument of the event).

  If a single Assy file was closed, it will close all open EGs file including
  non-associated EGs. This happens due to the EG caching system that relies on
  parsing SimEntities of Assy files to know which EG to keep open.

  If one strays from the Java Bean convention of naming variables by starting
  with a lower case letter, then be prepared to manually enter variable names
  of interest when parameterizing a PropertyChangeListener edge such as a
  SimplePropertyDumper as the PropertyDescriptor returned by the Introspector
  will force lower case, i.e. variable int N will be returned as "n".

  BeanShell checking of code snippets was a good idea in the beginning, but
  since we are only giving BeanShell a snippet and not the whole source file, it
  can only perform very minor primitive checking and some instantiating checks
  of generic containers. The compiler will notify of any errors at which time
  the user can investigate and fix during EG or Assy authoring.

7/23/24 (Critical)
    Can place more than one scheduling edge between nodes

        (Minor)

    Placing a scheduling edge between two nodes does not immediately populate
    the scheduling priority. If priority was missing on startup, or file
    reopening, it gets placed then

  ****** FIXES / UPGRADES:
    The validation tool now finds the assembly and simkit schemas inside the
    viskit.jar

    (Critical)
    Removed source for unnecessary compilation and file checking when pointing
    to an assembly file in the same project space. Fixed bug where rebuilding of
    the LEGO tree was not performed on the Event Dispatch Thread (EDT) which
    caused UI hang when opening a large set of EGs. A big performance increase
    is now observed during start up

    Fix CMD Q for macOS. Will perform Exit cleanups

    (Critical)
    Restored creation of the Analyst Report

    (Critical)
    Fix issue where a leading "/" of a URL was hiding an additional classpath
    jar on WIN

    If a user submits a path to an assy file, and the assy does not reside in
    the current project, Viskit will then close the current project and open the
    project that the assy belongs in

    (Critical)
    Fix issue where if another project was opened, lingering recent proj. file
    references were maintained causing a NPE due to a recent class from the old
    project which is no longer found on the current classpath

    We now have a unicode character displayed on conditional scheduling edges

    (Critical)
    Fixed runaway recursion when selecting a PCL for edit

    Better formatting on the Local run panel console output of rep. stats and
    rep. summary report

    Consolidated VertexRenderers for efficiency

    Control points for self scheduling edges now outline the offset edge shape

    Upgrade to JDOM v1.1.3

    (Critical)
    Fixed Log4j output to file. Using log4j2.xml config file. Console output is
    now colorized per logging level.

    (Critical)
    Selection of edges on macOS laptop displays was intermittent. Fix on
    13 DEC 22 did not take. Turns out all edges need a label, even if an empty
    string. Null strings caused edge bounding box null issues which interfered
    with proper bounding box / edge shape intersections. Overrode JGraph
    EdgeRenderer intersect method to back off of deep dive Graphics2D hits to
    find intersections between edge shape and their corresponding bounding
    boxes. Replaced with simpler shape.intersects(rectangle) calls. No issues
    now when working between MBP laptop displays and Mac Thunderbolt displays.

    (Critical)
    https://groove.cs.utwente.nl/mac.html
    Fixed accessabilityContext was null in JGraph. Needed a parent's Component
    accessabilityContext

    On 05/03/24, moved main development work back to https://gitlab.nps.edu/Savage/viskit

    Updated most 3rd party libs, esp. Commons Config to fix File menu histories
    not being retained for next start of the application.

    Simkit updated to v1.5.6

    Fixed unit tests to run independently in their own ant target, some were
    dormant.

    Tested on JDK 22.0.1


Release: 1.0.16(December 13, 2022)
-----------------------------------
Major changes since 1.0.15

    Fix to JAXB exception for not finding files from deleted project spaces.

    Fixed NPE from version attempting to read SVN strings, which are no longer
    relevant since switching to git.

    Upgraded to latest JAXB. Bumped src release to 11 and tested to run on
    JDK17+.

    In an attempt to maintain a clean/fresh classloader for each assy run (the
    idea being that we don't want any previous static references to interfere
    with independent runs), and since the inception of the Java Module Platform
    System (JPMS), stripping out all but the "boot" class loader is accomplished
    in the LocalBootLoader, thus preserving our goal of isolated class loaders.


Release: 1.0.15(June 08, 2015)
-------------------------
Major changes since 1.0.10:

  Moved codebase to new repository at: https://gitlab.nps.edu/tdnorbra/viskit
  The codebase was forked at R2900 from the old SVN repository at:
  https://eos.nps.edu/wcm/Viskit. Due to the many refactorings that took place
  since R2900 (09 DEC 2015), R2900 marks the revision that was the last known
  functional build of Viskit. Rather than branch at the original SVN site, it
  was decided to move to a more functional repository for version control w/
  Git.

  EventNodes that are similarly named can be achieved using an underscore
  character, i.e. Arrival, Arrival_e. The "e" would denote an event argument
  name. The EventNode will graphically render correctly without the underscore
  character and the generated java code will observe overloaded method names.

  We now label the name of the parameter in addition to its type for the Event
  Graph Node Inspector Dialog's Instantiation Panels. This will aid in proper
  EG parameterization

  JavaHelp contents now render external links. Update jhall.jar to v2.0_05
  to account for missing helper classes from v2.0.0.

  Config files for initial startup will now force the platform L&F for Macs and
  leave the default L&F for Win and other machines. This is due to what is
  described above under issues.

  Now using relative paths for all images generated for the Analyst Report


Release: 1.0.10(June 03, 2015)
-------------------------
Major changes since 1.0.5:

  Attempted to fix some buggy NPE within JGraph lib when running on Mac OS X


Release: 1.0.5(June 01, 2015)
-------------------------
Major changes since 1.0.0:

  Fixed NPE when unqualified names were being used for local variables as well
  as in parameters. User is now notified to fix by stating qualified names.

  Fixed issue where user desires a specific replication to be verbose and only
  that one in particular. If a specific rep. is given, that will uncheck the
  verbose box

  Since canceling edges to nodes with parameters do not have to actually send
  parameters, we've hidden the parameters sub-panel from the canceling edge
  inspector

  Fixed NPE in the Source Window frame title when generating Assy source code

  Added support for when a user wishes to generate a statistical run report in
  that when the report is ready for further editing/input by the user, the UI
  will auto select to the analyst report tab

  Added support for the user to zip a current Viskit project, to include the
  current debug.log, and email it to the Viskit mailing list

  Fixed and exception issue when verbose debug was selected from the Settings
  dialog

  Fixed several menu activated NPEs when no EG or Assy files are loaded

  Implemented an Open Recent Projects menu item for the EventGraphViewFrame

  Added a header to the output replication report to better understand the order
  of stats data presented.

  Fixed issue where designPointStats names were not being correctly set during
  Assy. runtime causing a NPE and incorrect stat output due to name mismatches.

  Fixed an issue where the default Random Number Generator's seed reset call was
  performed incorrectly and was unnecessary. The default RNG is the Mersenne
  Twister with a seed state generated at instantiation time in Simkit with a
  default seed.

  Fixed issue when a user used the Assy editor's recent project's list to
  select a recent project and the selected project's title wasn't correctly
  displayed.

  Added support for Object... (varargs) for the
  RandomVariateFactor.getInstance(String, Object...) static Simkit method.  We
  can now write out java.lang.Object... to XML, parse it and apply it correctly
  during SimEntity parameterization at Assy. creation time.

  Major refactor to implement a combo box selection for scheduling edge time
  delays. Can now select parameters, local or argument vars and invoke methods,
  or simply type in a delay value

  Fixed a potential NPE issue in the File Based Assembly Node (FBAN) when
  parsing node files that are of *.class origin only and not XML