From ee48f4b52bc3916f16e52d10b75ac7bf56ca995d Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 4 Jan 2020 21:26:30 +0000 Subject: [PATCH 01/24] updated version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e39a82b..791d0cf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ javasim javasim javasim - 2.1 + 2.3 http://maven.apache.org UTF-8 From ecd77b0abf795862a6178f258b166bd6a95dada2 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 4 Jan 2020 21:26:52 +0000 Subject: [PATCH 02/24] first attempt to fix https://github.com/nmcl/JavaSim/issues/64 --- src/main/java/org/javasim/Scheduler.java | 11 ++++++++++- src/main/java/org/javasim/Simulation.java | 9 +++++++++ src/main/java/org/javasim/SimulationProcess.java | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/Scheduler.java b/src/main/java/org/javasim/Scheduler.java index f743665..7b56612 100644 --- a/src/main/java/org/javasim/Scheduler.java +++ b/src/main/java/org/javasim/Scheduler.java @@ -130,6 +130,7 @@ static synchronized void reset () throws SimulationException Scheduler.SimulatedTime = 0.0; SimulationProcess.Current = null; + SimulationProcess.allProcesses = new SimulationProcessList(); } private Scheduler () @@ -148,10 +149,16 @@ static synchronized boolean schedule () throws SimulationException if (Simulation.isStarted()) { SimulationProcess p = SimulationProcess.current(); - + try { SimulationProcess.Current = Scheduler.ReadyQueue.remove(); + + if (SimulationProcess.Current.getThreadGroup() == null) + { + SimulationProcess.Current = Scheduler.ReadyQueue.remove(); + p = SimulationProcess.Current; + } } catch (NoSuchElementException e) { @@ -165,6 +172,8 @@ static synchronized boolean schedule () throws SimulationException if (p != SimulationProcess.Current) { + Simulation.printQueue(); + SimulationProcess.Current.resumeProcess(); return true; diff --git a/src/main/java/org/javasim/Simulation.java b/src/main/java/org/javasim/Simulation.java index ade771f..76de245 100644 --- a/src/main/java/org/javasim/Simulation.java +++ b/src/main/java/org/javasim/Simulation.java @@ -94,6 +94,15 @@ public static synchronized void start () Simulation.running = true; } + /** + * Print out the contents of the current simulation queue. + */ + + public static synchronized void printQueue () + { + SimulationProcess.allProcesses.print(); + } + /** * Has the simulation started? * diff --git a/src/main/java/org/javasim/SimulationProcess.java b/src/main/java/org/javasim/SimulationProcess.java index 86b3840..39c5794 100644 --- a/src/main/java/org/javasim/SimulationProcess.java +++ b/src/main/java/org/javasim/SimulationProcess.java @@ -544,6 +544,7 @@ public static void mainResume () throws SimulationException protected SimulationProcess() { + Thread.currentThread().dumpStack(); wakeuptime = SimulationProcess.NEVER; terminated = false; passivated = true; From 3c766d48c6fce5a4a1e987c552f0806d33a1d592 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 5 Jan 2020 16:52:36 +0000 Subject: [PATCH 03/24] removed rogue dumpStack --- src/main/java/org/javasim/SimulationProcess.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/javasim/SimulationProcess.java b/src/main/java/org/javasim/SimulationProcess.java index 39c5794..86b3840 100644 --- a/src/main/java/org/javasim/SimulationProcess.java +++ b/src/main/java/org/javasim/SimulationProcess.java @@ -544,7 +544,6 @@ public static void mainResume () throws SimulationException protected SimulationProcess() { - Thread.currentThread().dumpStack(); wakeuptime = SimulationProcess.NEVER; terminated = false; passivated = true; From 7368fc0fc3f8bf2b27e301a84b8a36c0809e05eb Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 5 Jan 2020 16:59:55 +0000 Subject: [PATCH 04/24] improved workaround for thread group issue --- src/main/java/org/javasim/Scheduler.java | 40 ++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/javasim/Scheduler.java b/src/main/java/org/javasim/Scheduler.java index 7b56612..06569de 100644 --- a/src/main/java/org/javasim/Scheduler.java +++ b/src/main/java/org/javasim/Scheduler.java @@ -152,18 +152,52 @@ static synchronized boolean schedule () throws SimulationException try { + /* + * For some reason when executing tests in junit an old and dead + * thread appears in the simulation queue. Have only ever seen this + * be a single thread instance, but it is reproducible every time. + * + * https://github.com/nmcl/JavaSim/issues/64 + * + * Will try to find out what actually causes this and remove the + * workaround eventually. + * + * https://github.com/nmcl/JavaSim/issues/76 + */ + SimulationProcess.Current = Scheduler.ReadyQueue.remove(); + boolean done = true; - if (SimulationProcess.Current.getThreadGroup() == null) + do { - SimulationProcess.Current = Scheduler.ReadyQueue.remove(); - p = SimulationProcess.Current; + if (SimulationProcess.Current != null) + { + if (SimulationProcess.Current.getThreadGroup() == null) + { + SimulationProcess.Current = Scheduler.ReadyQueue.remove(); + p = SimulationProcess.current(); + done = false; + } + else + done = true; + } + else + throw new NoSuchElementException(); } + while (!done); } catch (NoSuchElementException e) { System.out.println("Simulation queue empty."); + + return false; } + catch (NullPointerException e) + { + System.out.println("Simulation queue empty."); + + return false; + } if (SimulationProcess.Current.evtime() < 0) throw new SimulationException("Invalid SimulationProcess wakeup time."); From fbc7af18f6332b46137cdb57727b537b08586694 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 7 Jan 2020 17:06:28 +0000 Subject: [PATCH 05/24] tidyup --- src/main/java/org/javasim/internal/SimulationProcessList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/internal/SimulationProcessList.java b/src/main/java/org/javasim/internal/SimulationProcessList.java index 4c02620..b58623f 100644 --- a/src/main/java/org/javasim/internal/SimulationProcessList.java +++ b/src/main/java/org/javasim/internal/SimulationProcessList.java @@ -204,4 +204,4 @@ public void print () // package? protected SimulationProcessCons Head; -} \ No newline at end of file +} From 4934e2e991afa31bdd18a47bfbde8643a95d7c68 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 7 Jan 2020 17:06:44 +0000 Subject: [PATCH 06/24] removed spurious print --- src/main/java/org/javasim/Scheduler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/Scheduler.java b/src/main/java/org/javasim/Scheduler.java index 06569de..247fc5d 100644 --- a/src/main/java/org/javasim/Scheduler.java +++ b/src/main/java/org/javasim/Scheduler.java @@ -69,7 +69,7 @@ public static double currentTime () * * @throws SimulationException if an error occurs. */ - + static synchronized void reset () throws SimulationException { boolean finished = false; @@ -206,7 +206,7 @@ static synchronized boolean schedule () throws SimulationException if (p != SimulationProcess.Current) { - Simulation.printQueue(); + // Simulation.printQueue(); SimulationProcess.Current.resumeProcess(); From 6a74414aba655f530e9b4760eba990749ed23139 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 7 Jan 2020 18:19:07 +0000 Subject: [PATCH 07/24] Update BasicExampleUnitTest.java --- .../javasim/tests/examples/basic/BasicExampleUnitTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java b/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java index 07d0c71..ff61b87 100644 --- a/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java +++ b/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java @@ -33,11 +33,10 @@ public class BasicExampleUnitTest public void testNoBreaks () { boolean isBreaks = false; - MachineShop m = new MachineShop(isBreaks); m.await(); - + try { Simulation.reset(); @@ -51,7 +50,6 @@ public void testNoBreaks () public void testBreaks () { boolean isBreaks = true; - MachineShop m = new MachineShop(isBreaks); m.await(); From 7dcf558da25cc6cf18c1aea8a45e3a1e746d186a Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 8 Jan 2020 16:26:05 +0000 Subject: [PATCH 08/24] added ability to skip tests --- pom.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 791d0cf..89b9a75 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,7 @@ http://maven.apache.org UTF-8 + false @@ -26,7 +27,10 @@ maven-surefire-plugin 2.17 - + + ${skipTests} -Djdk.net.URLClassPath.disableClassPathURLCheck=true From fbfbcea2aeddb3a3b24ab8b61f82186ae274918f Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 11 Jan 2020 14:31:21 +0000 Subject: [PATCH 09/24] Start of refactoring examples https://github.com/nmcl/JavaSim/issues/81 --- examples/pom.xml | 54 +++++++++++++++++++ .../org/javasim/examples/basic/Arrivals.java | 0 .../org/javasim/examples/basic/Breaks.java | 0 .../java/org/javasim/examples/basic/Job.java | 0 .../org/javasim/examples/basic/Machine.java | 0 .../javasim/examples/basic/MachineShop.java | 0 .../java/org/javasim/examples/basic/Main.java | 0 .../org/javasim/examples/basic/Queue.java | 0 .../java/org/javasim/examples/basic/README.md | 0 .../javasim/examples/basic/expected_output | 0 .../javasim/examples/interrupt/Arrivals.java | 0 .../org/javasim/examples/interrupt/Job.java | 0 .../examples/interrupt/MachineShop.java | 0 .../org/javasim/examples/interrupt/Main.java | 0 .../javasim/examples/interrupt/Processor.java | 0 .../org/javasim/examples/interrupt/Queue.java | 0 .../org/javasim/examples/interrupt/README.md | 0 .../javasim/examples/interrupt/Signaller.java | 0 .../java/org/javasim/examples/stats/README.md | 0 .../org/javasim/examples/stats/Stats.java | 0 .../org/javasim/examples/streams/README.md | 0 .../org/javasim/examples/streams/Streams.java | 0 .../examples/basic/BasicExampleUnitTest.java | 0 .../interrupt/InterruptExampleUnitTest.java | 0 .../examples/stats/StatsExampleUnitTest.java | 0 .../streams/StreamsExampleUnitTest.java | 0 .../streams/TriangularExampleStreamTest.java | 0 27 files changed, 54 insertions(+) create mode 100644 examples/pom.xml rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Arrivals.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Breaks.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Job.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Machine.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/MachineShop.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Main.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Queue.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/README.md (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/expected_output (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Arrivals.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Job.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/MachineShop.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Main.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Processor.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Queue.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/README.md (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Signaller.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/stats/README.md (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/stats/Stats.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/streams/README.md (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/streams/Streams.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java (100%) diff --git a/examples/pom.xml b/examples/pom.xml new file mode 100644 index 0000000..fb6c5c6 --- /dev/null +++ b/examples/pom.xml @@ -0,0 +1,54 @@ + + + 4.0.0 + javasim-examples + javasim-examples + javasim-examples + 2.3 + http://maven.apache.org + + UTF-8 + + + + + maven-compiler-plugin + org.apache.maven.plugins + 3.6.0 + + 1.8 + 1.8 + UTF-8 + ../target/classes + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.17 + + 1 + false + + ../target/classes + + + -Djdk.net.URLClassPath.disableClassPathURLCheck=true + + + + + + + junit + junit + 4.0 + jar + test + true + + + + diff --git a/src/test/java/org/javasim/examples/basic/Arrivals.java b/examples/src/main/java/org/javasim/examples/basic/Arrivals.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Arrivals.java rename to examples/src/main/java/org/javasim/examples/basic/Arrivals.java diff --git a/src/test/java/org/javasim/examples/basic/Breaks.java b/examples/src/main/java/org/javasim/examples/basic/Breaks.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Breaks.java rename to examples/src/main/java/org/javasim/examples/basic/Breaks.java diff --git a/src/test/java/org/javasim/examples/basic/Job.java b/examples/src/main/java/org/javasim/examples/basic/Job.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Job.java rename to examples/src/main/java/org/javasim/examples/basic/Job.java diff --git a/src/test/java/org/javasim/examples/basic/Machine.java b/examples/src/main/java/org/javasim/examples/basic/Machine.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Machine.java rename to examples/src/main/java/org/javasim/examples/basic/Machine.java diff --git a/src/test/java/org/javasim/examples/basic/MachineShop.java b/examples/src/main/java/org/javasim/examples/basic/MachineShop.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/MachineShop.java rename to examples/src/main/java/org/javasim/examples/basic/MachineShop.java diff --git a/src/test/java/org/javasim/examples/basic/Main.java b/examples/src/main/java/org/javasim/examples/basic/Main.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Main.java rename to examples/src/main/java/org/javasim/examples/basic/Main.java diff --git a/src/test/java/org/javasim/examples/basic/Queue.java b/examples/src/main/java/org/javasim/examples/basic/Queue.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Queue.java rename to examples/src/main/java/org/javasim/examples/basic/Queue.java diff --git a/src/test/java/org/javasim/examples/basic/README.md b/examples/src/main/java/org/javasim/examples/basic/README.md similarity index 100% rename from src/test/java/org/javasim/examples/basic/README.md rename to examples/src/main/java/org/javasim/examples/basic/README.md diff --git a/src/test/java/org/javasim/examples/basic/expected_output b/examples/src/main/java/org/javasim/examples/basic/expected_output similarity index 100% rename from src/test/java/org/javasim/examples/basic/expected_output rename to examples/src/main/java/org/javasim/examples/basic/expected_output diff --git a/src/test/java/org/javasim/examples/interrupt/Arrivals.java b/examples/src/main/java/org/javasim/examples/interrupt/Arrivals.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Arrivals.java rename to examples/src/main/java/org/javasim/examples/interrupt/Arrivals.java diff --git a/src/test/java/org/javasim/examples/interrupt/Job.java b/examples/src/main/java/org/javasim/examples/interrupt/Job.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Job.java rename to examples/src/main/java/org/javasim/examples/interrupt/Job.java diff --git a/src/test/java/org/javasim/examples/interrupt/MachineShop.java b/examples/src/main/java/org/javasim/examples/interrupt/MachineShop.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/MachineShop.java rename to examples/src/main/java/org/javasim/examples/interrupt/MachineShop.java diff --git a/src/test/java/org/javasim/examples/interrupt/Main.java b/examples/src/main/java/org/javasim/examples/interrupt/Main.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Main.java rename to examples/src/main/java/org/javasim/examples/interrupt/Main.java diff --git a/src/test/java/org/javasim/examples/interrupt/Processor.java b/examples/src/main/java/org/javasim/examples/interrupt/Processor.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Processor.java rename to examples/src/main/java/org/javasim/examples/interrupt/Processor.java diff --git a/src/test/java/org/javasim/examples/interrupt/Queue.java b/examples/src/main/java/org/javasim/examples/interrupt/Queue.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Queue.java rename to examples/src/main/java/org/javasim/examples/interrupt/Queue.java diff --git a/src/test/java/org/javasim/examples/interrupt/README.md b/examples/src/main/java/org/javasim/examples/interrupt/README.md similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/README.md rename to examples/src/main/java/org/javasim/examples/interrupt/README.md diff --git a/src/test/java/org/javasim/examples/interrupt/Signaller.java b/examples/src/main/java/org/javasim/examples/interrupt/Signaller.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Signaller.java rename to examples/src/main/java/org/javasim/examples/interrupt/Signaller.java diff --git a/src/test/java/org/javasim/examples/stats/README.md b/examples/src/main/java/org/javasim/examples/stats/README.md similarity index 100% rename from src/test/java/org/javasim/examples/stats/README.md rename to examples/src/main/java/org/javasim/examples/stats/README.md diff --git a/src/test/java/org/javasim/examples/stats/Stats.java b/examples/src/main/java/org/javasim/examples/stats/Stats.java similarity index 100% rename from src/test/java/org/javasim/examples/stats/Stats.java rename to examples/src/main/java/org/javasim/examples/stats/Stats.java diff --git a/src/test/java/org/javasim/examples/streams/README.md b/examples/src/main/java/org/javasim/examples/streams/README.md similarity index 100% rename from src/test/java/org/javasim/examples/streams/README.md rename to examples/src/main/java/org/javasim/examples/streams/README.md diff --git a/src/test/java/org/javasim/examples/streams/Streams.java b/examples/src/main/java/org/javasim/examples/streams/Streams.java similarity index 100% rename from src/test/java/org/javasim/examples/streams/Streams.java rename to examples/src/main/java/org/javasim/examples/streams/Streams.java diff --git a/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java b/examples/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java rename to examples/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java diff --git a/src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java b/examples/src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java rename to examples/src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java diff --git a/src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java b/examples/src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java rename to examples/src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java diff --git a/src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java b/examples/src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java rename to examples/src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java diff --git a/src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java b/examples/src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java rename to examples/src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java From 1bd0a76577f97ced05fa82102f4d766e0b50ecf7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 15 Jan 2020 11:07:00 -0500 Subject: [PATCH 10/24] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index b0a0449..8a38680 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,18 @@ To build: mvn compile +Run tests: + +mvn tests + Run tests and create installation: mvn install +Run examples, go into examples directory: + +mvn compile + To cleanup: mvn clean From dbe97db6237bbcd92091a88091649fe9465ad9c1 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:23:54 +0000 Subject: [PATCH 11/24] Fixed typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a38680..b4e12ad 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ mvn compile Run tests: -mvn tests +mvn test Run tests and create installation: From 6ac82d0c59ee88c64e2c8520e7f7c9751b894898 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:35:00 +0000 Subject: [PATCH 12/24] Fixed classpath issue https://github.com/nmcl/JavaSim/issues/83 --- examples/pom.xml | 13 ++++++++----- pom.xml | 5 ++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/examples/pom.xml b/examples/pom.xml index fb6c5c6..0165804 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -19,7 +19,6 @@ 1.8 1.8 UTF-8 - ../target/classes @@ -29,9 +28,6 @@ 1 false - - ../target/classes - @@ -48,7 +44,14 @@ jar test true - + + + javasim + javasim + 2.3 + system + ${basedir}/../target/javasim-${version}.jar + diff --git a/pom.xml b/pom.xml index 89b9a75..f296fd4 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,14 @@ 4.0.0 + javasim javasim - javasim 2.3 + javasim + http://maven.apache.org + UTF-8 false From 034f1a649419d1e7ab577945fd9abf793f7435ba Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:36:02 +0000 Subject: [PATCH 13/24] Create README.md https://github.com/nmcl/JavaSim/issues/84 --- examples/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 examples/README.md diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..a13a2e8 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,3 @@ +To build and run the examples: + +mvn test From 30a44e44a997f377737b5da0ecca0bd982b062bc Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:37:45 +0000 Subject: [PATCH 14/24] tidy up --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index b4e12ad..fcfecab 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,4 @@ Run tests and create installation: mvn install -Run examples, go into examples directory: - -mvn compile - -To cleanup: - -mvn clean +Run examples check the README in that directory. From 4acbefb7a4fe03ce8c4bf676c538d4a521f39cf0 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:45:10 +0000 Subject: [PATCH 15/24] Update README.md https://github.com/nmcl/JavaSim/issues/81 --- examples/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index a13a2e8..ff52105 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,3 +1,7 @@ -To build and run the examples: +To build the examples: + +mvn compile + +If you want to run the examples as unit tests then: mvn test From 5aad991be384528405353a3bec891d73d8f3e06d Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jan 2020 17:34:08 +0000 Subject: [PATCH 16/24] Update README.md --- examples/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index ff52105..1bf9cff 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ -To build the examples: +To build the examples (after the main source tree has been built using mvn install): mvn compile From a5832734eb7121eeeb579cd7b9bd37624c738f06 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jan 2020 17:35:09 +0000 Subject: [PATCH 17/24] Update README.md --- examples/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index 1bf9cff..ee13590 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ -To build the examples (after the main source tree has been built using mvn install): +To build the examples (after the main source tree has been built using 'mvn install'): mvn compile From 16abd0299097b7988241a6e4d5320db12ee9ce67 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 23 Jan 2020 15:34:56 +0000 Subject: [PATCH 18/24] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fcfecab..4594798 100644 --- a/README.md +++ b/README.md @@ -29,4 +29,4 @@ Run tests and create installation: mvn install -Run examples check the README in that directory. +To run the examples check the README in that directory. From daf9941854dc0946653f41bcd91fdd494e66fff7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 10 Apr 2020 19:49:21 +0100 Subject: [PATCH 19/24] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 4594798..c757baa 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,10 @@ The system also comes with complete examples and tests which illustrate many of Over the years C++SIM and JavaSim have been used by many commercial and academic organisations. -Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 Newcastle University decided that everything could be released into open source under LGPL. +Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 Newcastle University decided that everything could be released into open source under LGPL. In 2015 the code was moved from Codehaus to github. All JIRAs from there were also recreated as github issues. You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads for some releases. -In 2015 the code was moved from Codehaus to github. All JIRAs from there were also recreated as github issues. - ---- To build: From d865bd7c4d11585d62a7f7593d6ccf2b916577a2 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 13 Apr 2020 16:59:09 +0100 Subject: [PATCH 20/24] Update README.md --- examples/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index ee13590..c09058a 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ -To build the examples (after the main source tree has been built using 'mvn install'): +To build the examples first ensure that the main source tree has been built using 'mvn install'. Then here: mvn compile From 0df5667b3d754fe11ad1e0281d1543efc87c2d03 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 May 2020 18:03:15 +0100 Subject: [PATCH 21/24] fixed syntax --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index fbbea07..956d60e 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -12,7 +12,7 @@ These requirements were realised in the following design decisions: - the discrete-event process based simulation facilities provided by SIMULA and its simulation classes and libraries have a considerable experience and user community which have found them to be successful for a wide variety of simulations. In later versions of the system additional simulation classes were added which provide extra functionality. -- inheritance was to be used throughout the design to even a greater extent than is already provided in SIMULA. This enables JavaSim to be more flexible and extensible, allowing new functionality to be added without affecting the overall system structure. For example, our I/O facilities, random number generators and probability distribution functions are entirely object-oriented, relying on inheritance to specialise their behaviour. +- inheritance was to be used throughout the design to an even greater extent than is already provided in SIMULA. This enables JavaSim to be more flexible and extensible, allowing new functionality to be added without affecting the overall system structure. For example, our I/O facilities, random number generators and probability distribution functions are entirely object-oriented, relying on inheritance to specialise their behaviour. NOTE: It is not necessary for the reader to know anything about the SIMULA programming language or its simulation classes, but such knowledge would aid in the understanding of the concepts and classes presented within. From 7a864db99e012277c45a3a691fa3ab5884ea17b9 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 20 May 2020 20:11:54 +0100 Subject: [PATCH 22/24] Update manual.adoc --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 956d60e..efbf2ea 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -36,7 +36,7 @@ Thus, the first step towards building a simulation model of a system is to deter === Terminology -The system components chosen for the simulation are termed simulation entities. Associated with each _entity_ in the simulation are zero or more _attributes_ that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed _events_. +The system components chosen for the simulation are termed _simulation entities_. Associated with each _entity_ in the simulation are zero or more _attributes_ that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed _events_. The collection of these component attributes at any given time _t_ defines the system state at _t_. In general, the system state can take any of a variety of values, and a given simulation run results in one realisation of a set of these values (the _operation path_) over the _observation period_. From 85845dea16843bd03834c20cf27cd4cad146771e Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 2 Aug 2020 16:49:24 +0100 Subject: [PATCH 23/24] updated for https --- .gitignore | 1 + pom.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f904c43..fb9ab82 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ target .idea .DS_Store *.out +*~* diff --git a/pom.xml b/pom.xml index f296fd4..2147312 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ javasim http://maven.apache.org - + UTF-8 false From 9ce1fcea4fa9e64d7385fd224c82152ba70ed9e5 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 9 Dec 2020 13:57:37 +0000 Subject: [PATCH 24/24] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c757baa..97e7422 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ JavaSIM is an object-oriented simulation package based upon C++SIM and has been in use since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the capabilities provided follows: -- The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and in the C++ original there are thread package interfaces, though for Java that's not necessary. +- The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and in C++SIM there are thread package interfaces, though for Java that's not necessary. - Entity and set manipulation facilities similar to SIMSET. - Classes allow "non-causal" events, such as interrupts, to be handled. - Various routines for gathering statistics, such as histogram and variance classes.