These are release notes for Viskit from 0.1 forward. Each release will detail its functionality in meeting the applicable specifications and document any known issues. Release: 1.0.0(March 10, 2015) ------------------------- Major changes since 0.7.0: Major refactor of the MVC components to implement undo / redo on both the EG and Assy editors Fixed potential NPE when attempting to capture a frame image with no file loaded in either the EG or Assy. editors Further improvements to the state transitions panel in that when we wish to invoke methods on state variables, a combo box of choices is presented. If a method requires a parameter, the parameter is typed into the action field Fixed issue where canceling a local variable method call in the state transition dialog did not initiate an auto row delete Improvements to the state transitions panel in that we can now invoke void return type, zero parameter method calls as part of a state transition. This is accomplished by declaring a local variable within an EventNode, or by using an event argument supplied by an Edge. The type will be used to reflect on which method types will be available for use on either the local variable, or the argument Implemented capability to provide an unqualified Java class name and have the fully qualified class found on the classpath. Implemented in viskit.VStatics Fixed bug to prevent edge parameter values from being wiped out during a node modification Preventing a case where we have simkit.jar in both the working classpath and in a project's /lib directory. We don't need to expose multiple libs of the same name in the LEGOs tree because they happen to be in two different places Added a feature to the state transition panel whereby we can now assign local variables to return type invoke on "." methods, i.e. boolean b = queue.add(E); Before, we could only accomplish this type call and fire the state transition manually via code block entries. This is a step in reducing code block usage. Fixed and issue where super type more than one level up were not being resolved in the EG to Java translator Corrected issue with EG image capture being stuck on the last showing EG and not cycling through open EG tabs Improved EG Node tooltips by including code blocks The translator for generation of Event Graph XML to Java now handles generic array types as well as primitive array types, generic containers, and of course, primitive types. JGraph extended and overridden components now behave like actual DES EG nodes in that EG node edges take on the classic parabolic shape when two edges connect between nodes. Self-referential edges now begin hear the top of the node instead of at the bottom and form around the node in a clockwise fashion. Fixed issue with the StateVariableDialog where if an array type was entered in the type field, the array length field was still disabled Fixed issue of the metadata description field not updating after an edit Fixed potential NPE in the PclEdgeInspectorDialog when the Introspector can't determine a property type Fixed an issue where EG and Assy file open history was not being preserved Fixed an issue where a PropertyChangeListener edge with no selected property was forcing a "" (empty string) property which is non-existent. Implemented a self-referential drag and drop, or menu selected canceling edge option for the EG editor. Implemented an extension feature for EGs. Instead of extending the default SimEntityBase, type in your SimEntityBase subclass name instead when creating a new event graph, i.e. extends ArrivalProcess. Fixed an issue where and IllegalStateException would occur when added a simkit.random.RandomVariate to the parameter list Fixed an issue with not being able to use normal java package naming conventions when crafting EG package names Fixed an issue with cut & paste where the selected cache was not being cleared after a confirmed delete by the user. Fixed a bug where canceling the edit on any of the Assembly edge dialogs caused that edge to delete. Fixed an issue where a good intention to have nodes snap to grid on either editor pallette caused the node cluster to keep positioning down and to the right upon every file save. If an EG XML file save goes bad, or its corresponding source code compilation reveals an error, the tab that represents the EG will change from a green color (signifying good XML, good source compilation) to red which signifies either an XML save, or its source compilation went bad. The user will be unable to advance to the Assembly Editor tab until the problem is corrected. If an EG compilation went bad, any previously compiled byte code *.class files of the same name will be deleted preventing inclusion on the classpath. A bad compile will also cause removal of the EG MD5 hash entry from the project's viskitProject.xml file. If upon start up, a previously opened XML file passes validation, but fails compilation, the user will again be unable to advance to the Assy Editor tab. Fixed an issue where if a EG did not compile correctly, the whole EG LEGO tree for would dissappear Bugfix 1425 More gracefully handle and inform the user of a missing third party library Fixed issue where if we had already compiled an Assembly, then the ClassLoader has changed, and we need to go back and fix something in the Assembly. Switch back to the Viskit ClassLoader and disable the Assembly Run tab until the Assy is recompiled. Fixed timing issue when an Assembly file is given as an argument at startup which firsts loads associated Event Graphs, but the Assembly was being compiled before the Event Graphs finished loading causing ClassLoader issues due to the Assembly being compiled in a separate ClassLoader. Shortened the path names for the LEGOs tree to be more readable. If the user does not select the Analyst Report tab to be visible, then the Enable Analyst Report checkbox on the Assembly Runner panel will not be enabled. Better Mac OS X installer support by upgrading the javaApplicationStub to work better with Oracle's JDK 8+. Better Windows installer support by actually getting it to work with the executable jar's Class-Path header. Still need to fully test on Unix though. Implemented better message pop-up reporting during EG and Assy loading for the user to better determine what errors have occurred Bugfix 1377 Allow deselection of both the Design of Experiments (DOE) and Cluster Run panels via the Files -> Settings dialog -> Tabs Visible Ensure that when switching Event Graph tabs, or to the Assembly Editor, any unsaved EGs will be saved, revalidated and re-compiled Remember user set sizes for the main app frame so that it will restart at those dimensions Fix a long standing bug where modifications to EGs did not get re-validate XML, generate java source, or re-compile. Fix bug where a duplicate icon could reappear in the EG node pallette Fix UI issue where a node name could be changed for either an EG or Assy and would not reflect until a mouse was re-clicked on the editor canvas Refactor source code packaging to more closely resemble MVC organization Release: 0.7.0(November 14, 2014) ------------------------- Major changes since 0.6.2: Platform specific startup items are discerned at app startup, i.e. MAX OS X "About Viskit" Fix a long standing bug where local variables declared in an EG doRun method where not being utilized as indicies for arrays in state transition changes Enable a single click selection of a Viskit project icon w/o having to select "OK" Upgrade to JAXB v2.2.11 Fix issue where a single opened EG did not close when selecting another Viskit project If a user selects JVM exit and an EG, or Assy were modified, allow a cancel closing Viskit when the save dialog appears Always show what Viskit project is open in the app title bar Implemented a nuke.dot.viskit Ant target. This is an attempt to draconically fix an issue where Viskit startup in an unknown state via its .viskit kept config files and can't recover to usability Fix bug to allow generically type arrays to be properly translated to java source Fix a NPE in the AssemblyControllerImpl Had to break the "dirty Assembly" issue in the DOE's LocalBootLoader so as to load generated and modified EGs and Assys from build/classes of each loaded Viskit project. The documentation for viskit.doe.LocalBootLoader explains the requirement for multi-threaded Grid Design Point Experiments to run with fresh ClassLoader contexts. At this time, Grid (cluster) runs are disabled until such time as we can re-implement using the Viskit Project paradigm Annotated a note in the InternalAssemblyRunner where the RandomVariate seed was is being reset via reflection. This is critical in creating standalone projects where they are run independently outside of the Viskit environment Upgrade to JGrpah 5.14.0. Improved threading on the drawing canvas, but need to refine how the control points could make better scheduling edge arcs. Upgrade JAXB to 2.2+ Fix EG node cancel cursor bug issue Upgrade to Simkit v1.4.2 Fix issue with generating a lot of temp files and jars and not cleaning up after the main app shuts down Implemented a completely enclosed runtime compilation scheme using the JDK's runtime compiler for EG and Assy generated source code, thus removing the requirement to ship the current JDK's tools.jar with the installers. A JDK is still required to run Viskit though. Improve the whole Viskit app build process; must faster compile time Ensure that a Viskit project /lib populated with jars is read upon startup in order to resolve external classpaths selected in the Setting Dialog Ensure the lib/ext can be ignored for pure Viskit operation, i.e. no requirement for Diskit, or other advanced DES libs Upgrade to JDom v2.0.5 Upgrade to Xerces v2.11.0 Upgrade Apache Commons libs to v3.2.1 Fix NPE on model property editor Improve iZpack installer creation Release: 0.6.1(May 10, 2011) --------------------------------- Major changes since 0.6.0: Implemented a dedicated Viskit Project space "MyViskitProjects" in order to properly designate a project space for specific user projects Fix NPE when canceling out of creating a project Fix bug where the Viskit Project file chooser was causing unnecessary recursive calls Implemented a draconian runtime fix to nuke the ${user.home}/.viskit directory incase of a startup failure that has historically rendered Viskit unusable until .viskit was manually deleted anyway. The goal will be to never have to do this if configuration metadata was stable enough to continue usability. Improved iZPack installer support for creating 64 bit installers. Shoe-horned is a USA flag to denote "English" as an install language vice the UK flag. Release: 0.6.0(October 8, 2010) --------------------------------- Major changes since 0.5.4: Upgrade to Simkit v1.3.8 Provide for launching Viskit either standalone, or as a process within another runtime application observing proper EDT protocol Disable TRANG building of the EG and Assy Schema's from DTD. These Schemas are now solid on their own. Fix bug where .svn folders would display on the LegosTree for SimEntities and PropertyChangeListeners Bugfix 1248 Improved parsing for BasicSimEntity subclasses in order to populate the LegosTree Display current Viskit Project name in the main app title bar Improved EG caching scheme so that we don't recompile unnecessarily Improved recently opened files and projects history caching Fix NPE bug when opening an existing Project from a newly installed Viskit Bugfix 706 Upgrade to JAXB v2.1.8 Improved output stream flushing when writing out to text at runtime Fix bug where EG description fields were not rendering for a newly added EG tab Improved JDK shutdown if Viskit is a third-party lib within another app Bugfix 1364 Viskit was becoming too tightly integrated with a specific project (Savage Studio). Broke up such dependencies and refactored to be a standalone app that can be integrated into other applications. Fix issue where Assembly Adapter and PropertyChangeListener edges behave properly if the user cancels an edit function The Assembly description field in not yet implemented and noted in source Assembly properties (metadata) are now immediately reflected in the Assembly Runner The proper mode for a PropertyChangeListener is singular. However, for back- wards compatibility for older EG, allow plural as well Fixed bug where improper GraphMetaData was being supplied to a new Assembly Fix issue where EG and Assy Editor toolbars were not being made visible when creating new EGs and Assys Better resizing accomplished for the Assembly Editor to allow more weight to the JGraph side of the splitpane Implemented full XML validation for EGs and Assy XML files Minor EG and Assy Schema modification to allow for SMAL metadata to be used as CDATA entries Implemented multi-file opening choice for EGs and Assys Bugfixes 1396, 1398 & 1412 Fix issue to allow building of the ParameterMap and Constructor where no concrete doRun or doReset methods were defined Implemented package creation when naming newly created EG and Assy files Implemented configuration awareness of current Viskit project Added a "Verbose" checkbox on each Assembly Node editor which operates as a "detailed output." Clamp simulation output to 8M and truncate from the front if required Implemented dumping of Event List only if not in verbose, or reallyVerbose modes Internal class checking to populate EG editors unable to discern unqualified class names except java.lang.* Viskit Project can now be stored and opened from any location on the local machine Bugfixes 1400 & 1407 Release: 0.5.4(August 12, 2008) ---------------------------------------- Major changes since 0.5.3: Implement a clear recent files option to the File menus Implement a "detailed output" checkbox option for EG node inspector dialog Implement an incrementing trailing digit in node names when dragging new node onto the Assembly editor canvas. Add check for existing node name prompting use of the incrementing trailing digit. Release: 0.5.3(August 5, 2008) --------------------------------- Major changes since 0.5.2: Implemented specific platform L&F options upon app startup Fix issue in SimkitXML2Java translator when an interrupt would cause an unclosed if block statement causing startup compile errors Fix for issue where varargs can throw a mostly harmless compiler warning if there is only one arg supplied to the SimkitXML2Java translator Fix issue where the EG inspector dialog "Apply" button had no effect Bugfix 1399 Release: 0.5.2(June 11, 2008) ------------------------------- Major changes since 0.4.8: Bugfixes 1402 & 1405 Implemented creating new projects from either the EG or Assy editor panel menus Bugfix 1373 Announce any compile errors to output screens Release: 0.4.8(June 3, 2008) ------------------------------- Major changes since 0.4.7: Implemented Log4J for debugging, output info status Switch from Sun's Base64 encoder to Apache version Fix NPE when user didn't check "Enabled Analyst Report" and attempted to view anyway Fix bug where a SimplePropertyDumper could not co-exist with a SimpleStatsTimeVarying PCL defined on the same Assembly Stricter BeanShell interpreter checking for EG and Assy authoring, esp. for typed containers <SomeType> Enable regression line fitting to scatter plot graphs generated for the Analyst Report Implemented enabling of the Assembly Run panel only after a successful Assy compilation and validation. Implemented firing property changes using state variable "getters". Container getters return a clone for the FPC in the doRun event. Modify the Assembly DTD to offer a raw count or mean of raw count statistic for all PCL dialogs Implemented a "Number x of n Replications" output on the Assembly Runner Update JFreeChart to v1.2.0. Improve chart output by counting raw counts vice the mean of raw counts for histogram charts Fix issue where Assys were being compiled while the EG tree was still being parsed for compilation causing conflicts Upgrade Simkit to v1.3.4 Bugfix 1183 Improvements to Analyst Report building, editing, reopening and rendering in HTML Implemented Ant targets to translate EGs and Assy XML files to Java source Further decoupling of Diskit being too tightly integrated w/ Viskit for convenience of another application Refinements to external javac exec process for EGs and Assys Implemented generics utilzing JAXB v2.1. This is a whole Viskit upgrade prompting tagging a pre-generics JAXB branch. Authored a script to delete temp files and history, a hack to clean up cruft left behind from Viskit multiple operation of quarantining separate classpaths, keeping scratch EG and Assy files, and multiple compilations of source code. Implemented notification of when an Analyst Report is ready to view at the end of a local Assembly Run of 1 or more replications Bugfixes 936, 1195, 1246, 1249 & 1260 Implemented figure caption auto increment in the Analyst Report. Xalan required as 3rd party lib for this functionality Implemented a cleaner exit strategy vice a blunt System.exit(0) scheme Implemented image capturing of all opened EG and Assy files for PNG insertion in the Analyst Report Improved Analyst Report generation by consolidating all material required for report in a project specific location. Fix various bug discovered in AR generation improvements. ****************************************************************************** End of this report on Viskit history 26 SEP 2007. Please see doc/viskitSVNLogs.txt for previous developer commit log entries dating back to 18 NOV 2002 when Viskit migrated from CVS to SVN. ******************************************************************************