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