Yellow Duck

J-Sim History – Changelog for All Versions

Here is a list of all released J-Sim versions. Click on a version number to get information about features and bugs of the respective version.

Version Release Date Notes
0.6.0 2006-Aug-16 Current version – Download it!
0.5.0 2004-Nov-30 Last version running with Java 1.4.
0.4.0 2004-Sep-16  
0.3.1 2004-Jun-22  
0.3.0 2004-May-12  
0.2.0 2003-Nov-04  
0.1.2 2002-May-02 Last version running with Java 1.1.
0.1.1 2001-Apr-28  
0.1.0 2001-Apr-17 First public release.
0.0.2 2001-Jan-15 Not a public release.
0.0.1 2000-Dec-04 Not a public release.

Changelogs

Below are displayed changelogs for all released versions.

J-Sim version 0.6.0

New features of this version:

  • Methods getState(), getName(), getNumber(), etc of JSimProcess, JSimHead, JSimSemaphore, etc. have been renamed to getProcessState(), getProcessName() etc. The getState() method in JSimProcess was the cause of Java-1.5-compatibility problems and had to be renamed. In order to keep the naming conventions consistent through all classes, the same naming rules were applied everywhere.
  • Generics everywhere! Since we are at 1.5 level now, generics are used for all classes of the collections framework and also at some other places, like implementation of Comparable etc. So the code should be a bit safer and simplier now.
  • There are enum types for process states, simulation modes etc., replacing int constants. Much safer than before.
  • The following parts have been kicked-off without any replacement:
    1. The Insecure package (cz.zcu.fav.kiv.jsim.insecure)
    2. The JiJ package (cz.zcu.fav.kiv.jsim.jij)
    3. The JiJ examples (because of 2)
    4. Case study #1 (because of 2)

    Authors note:
    I think that J-Sim is now much more compact and does not contain any code which does not serve J-Sim's original purpose – to provide an environment for discrete-time process-oriented simulation. The Insecure package was used by 2 Master's theses only, the JiJ package by one PhD thesis. Now it's the right time to return to the roots and to clear J-Sim from all those more-or-less unusable "academic exercises" that polluted the code (access rights etc). All removed parts will be still available online on the web in older versions (0.5.0) so don't cry :-)

  • Access rights of some attributes (mainly in classes JSimSimulation and JSimProcess) have been reverted to the state before the packages Insecure and JiJ were introduced. It means changed from protected to private.
  • Some older sources have been reformatted using an automatic formatter.
  • GUI examples have been considerably reduced, about half of them was dropped. They did not add any extra value to those that were kept and made if harder for people to learn the features (~ more stuff to go through).
  • All source code in now encoded in UTF-8. You will see some difference in comments only.
  • In JSimSimulation.shutdown(), explicit call to System.exit() has been removed when the number of simulations gets to zero. Java 1.5 can properly detect that it should exit (no GUI, no threads, ...) so there is no need for it anymore.
  • Now examples have their own packages instead of the default package. This will allow in the future to eliminate code duplication.
  • Eclipse is now used for development. Currently J-Sim source code is separated into 2 Eclipse projects: J-Sim and Examples. In J-Sim Subversion repository, you'll find 2 Eclipse projects that you can checkout directly into your Eclipse workspace, using an SVN plugin, for example Subclipse. (Updated in 2009: The SVN repository is not available anymore.)

Known bugs and things to do of this version:

  • The new documentation is not ready yet. (This is an evergreen in the TODO section.)
  • No other bugs known yet, please report to jtesty [@] kacer [.] biz.

J-Sim version 0.5.0

New features of this version:

  • Starting with this version, J-Sim is released under the Academic Free Licence v. 2.1, a licence certified by the Open Source Initiative (OSI). J-Sim can be therefore called an "OSI Certified Open Source Software". We believe that the transition from the old licence to the AFL will better fit needs of J-Sim users, no matter whether they are from an academic environment or from the industry.
  • No new features. This version was released just because of the new licence. The functionality is exactly the same as in version 0.4.0.

Known bugs and things to do of this version:

  • The JiJ package does not cover the whole JVM multithreading functionality yet.
  • The new documentation is not ready yet.
  • No other bugs known.

J-Sim version 0.4.0

New features of this version:

  • The 'JiJ' package has been added to J-Sim. JiJ stands for Java in Java. The package allows Java concurrent programs to be simulated in J-Sim, possibly with standard J-Sim processes. Supported features in this version are: synchronization (locking), suspension and resumption in monitors using wait(), notify(), and notifyAll(), sleeping.
  • Case study #1 has been reworked again to fully use possibilities if the new JiJ package.
  • JiJ examples have been added to the Examples directory. Look for Examples\12_JavaInJava. Every example contains a real Java program and its modified version that can be simulated using J-Sim JiJ. So far, there are 5 examples: an example on basic synchronization (simple monitor methods), two examples on suspension and resumption inside monitor methods (a producer-consumer example and a barrier example), an example on mixed simulation (JiJ simulation + "classic old" J-Sim simulation), and an example on thread sleeping.
  • J-Sim now uses the standard Java Logging API available since Java 1.4. Logging is fully configurable with a single logging.properties file that comes with J-Sim. Log messages of different severity can be forwarded to different destinations (console, file, network, ...), they can be filtered by their source or severity and the output format can be customized using various formatters.

Known bugs and things to do of this version:

  • The JiJ package does not cover the whole JVM multithreading functionality yet.
  • The new documentation is not ready yet.
  • No other bugs known.

J-Sim version 0.3.1

New features of this version:

  • Case study #1 has been reworked a bit. However, it is not completed yet. Will be fully completed when the JiJ package is ready, probably in J-Sim version 0.4.0.

Known bugs and things to to of this version:

  • Case study #1 not finished completely. It requires the JiJ package to be written first.
  • The new documentation is not ready yet.
  • No other bugs known.

J-Sim version 0.3.0

New features of this version:

  • J-Sim now uses Ant for building.
  • The kernel has been rewritten. Hashtables have been dropped, all objects are now stored in ordered sets. The kernel works with references, not with ordinal numbers.
  • New package `Insecure' added. Purpose: Experiments with distributed simulation at the UWB.
  • New package `Random' added. Contains generators of random numbers. These generators can now be instantiated, so different processes can have different (independent) generators. The initial seed can be specified which allows deterministic and repeatable experiments.
  • A generator of random user-defined objects added. The generator can now return apples, pears, cats, dogs and other beasts that the user loves :-) The generator needs an array of objects and an array of their corresponding absolute rates.
  • New package `IPC' (for Inter-process Communication) added. Provides Dijkstra semaphores and message passing. Both blocking and non-blocking send and receive operations are supported. Messages can be sent directly from a process to another process or indirectly via a message box.
  • GUI source code has been simplified while the functionality remains.
  • New examples added. This includes examples on IPC and random number generators.
  • The old documentation (describes J-Sim 0.1.1) has been deprecated. However, the new documentation in DocBook format is not ready yet.
  • Case studies added to the distribution. The first case study is a simulation of an embedded control system. The case study is not completely finished yet. The `JiJ' package has to be written first, which can be expeceted in version 0.4.0.

Known bugs of this version:

  • Case study #1 not finished completely. It requires the JiJ package to be written first.
  • The new documentation is not ready yet.
  • No other bugs known.

J-Sim version 0.2.0

New features of this version:

  • New Swing GUI with much more features.
  • Many GUI examples added.
  • You can now use and redistribute J-Sim packed in a JAR file together with your application.

Known bugs of this version:

  • No bugs known.

J-Sim version 0.1.2

New features of this version:

  • Much faster switching between the main simulation thread and processes. From 50 times to 500 times faster for big number of processes (around 500). See Examples/10_PerformanceTesting.
  • All bugs from the previous version removed.
  • J-Sim should be 100% compatible with C-Sim now.
  • The Examples directory's structure has slightly changed for better clarity.
  • A process can have at most one event in the calendar now – C-Sim compatible behavior.

Known bugs of this version:

  • No bugs known.

J-Sim version 0.1.1

New features of this version:

  • Possibility to run in graphics mode – simulation is driven interactively by the user clicking on buttons.
  • API documentation available on-line and as a part of the distribution archive.

Known bugs of this version:

  • Invoking cancel() on the currently running process will cause the next scheduled process to be skipped – the first event in the calendar will be lost.
  • JSimLink.follow() and JSimLink.precede() do not throw out a JSimSecurityException when the parameter of the methods is not inserted in a queue.
  • JSimLink.out() should set enterTime to zero.
  • If the graphics mode is used and at least two simulations are created, JSimSimulation.shutdown() causes the program to exit even if a simulation (not the simulation being shut down) is still active.

J-Sim version 0.1.0

Main features (new features) of this version:

  • The concept of simulation introduced – processes can now belong to different simulation models.
  • Process management rewritten and improved no testing of the kill command necessary anymore.
  • Processes can be created and run at any time (before the simulation terminates) – dynamic processes.
  • No hang-ups – all bugs from previous releases corrected.
  • Queues rewritten and improved.
  • Random-values functions added.
  • Many examples.
  • Directory structure has changed slightly.

Known bugs of this version:

  • Generator of uniform-distribution random numbers returns only values from <a,b), not <a,b>.

J-Sim version 0.0.2

Main features (new features) of this version:

  • No changes on the kernel.
  • Support for queues added.

Known bugs of this version:

  • The same bugs as in previous version.
  • Hopefully no new bugs concerning queues.

J-Sim version 0.0.1

Main features of this version:

  • Process switching and scheduling OK.
  • Processes must be created before the simulation starts.
  • All processes run within the same simulation.
  • The user (programmer) must test whether a process should finish – possible danger of deadlock if he/she doesn't.
  • No support for queues.

Known bugs of this version:

  • A process which dies naturally hangs up the simulation.
  • A process which never runs very likely hangs up the simulation.
Copyright © 2012 Jaroslav Kačer. All rights reserved.
This page was last updated on $Date: 2014-11-16 00:05:30 +0100 (ne, 16 XI 2014) $.