From a1d78f65cf68ea99483dac6631788d73f6a8b17c Mon Sep 17 00:00:00 2001 From: LWagner Date: Fri, 8 Apr 2022 07:59:28 +0200 Subject: [PATCH 1/3] Enforced MiSimModel instead of Model for all enitities and events --- .../cambio/simulator/entities/NamedEntity.java | 12 +++++++++++- .../simulator/entities/NamedExternalEvent.java | 13 ++++++++++++- .../simulator/entities/NamedSimProcess.java | 16 +++++++++++++--- .../LoadGeneratorDescriptionExecutor.java | 4 ++-- .../entities/microservice/InstanceKillEvent.java | 3 ++- .../microservice/InstanceShutdownEndEvent.java | 3 ++- .../microservice/InstanceShutdownStartEvent.java | 3 ++- .../microservice/InstanceStartupEvent.java | 3 ++- .../entities/microservice/Microservice.java | 3 ++- .../microservice/MicroserviceInstance.java | 3 ++- .../microservice/MicroserviceScaleEvent.java | 3 ++- .../entities/microservice/Operation.java | 3 ++- .../entities/networking/InternalRequest.java | 3 ++- .../networking/NetworkRequestCanceledEvent.java | 5 +++-- .../entities/networking/NetworkRequestEvent.java | 3 ++- .../networking/NetworkRequestReceiveEvent.java | 3 ++- .../networking/NetworkRequestSendEvent.java | 7 ++++--- .../networking/NetworkRequestTimeoutEvent.java | 3 ++- .../simulator/entities/networking/Request.java | 2 +- .../entities/networking/RequestSender.java | 3 ++- .../networking/ServiceDependencyInstance.java | 3 ++- .../entities/networking/UserRequest.java | 3 ++- .../BasicPeriodicAutoscalingStrategyProxy.java | 3 ++- .../entities/patterns/CircuitBreaker.java | 3 ++- .../entities/patterns/HalfOpenBreakerEvent.java | 3 ++- .../entities/patterns/InstanceOwnedPattern.java | 5 +++-- .../entities/patterns/LoadBalancer.java | 3 ++- .../patterns/PeriodicPatternScheduler.java | 4 ++-- .../patterns/PeriodicServiceOwnedPattern.java | 3 ++- .../simulator/entities/patterns/Retry.java | 6 ++++-- .../entities/patterns/ServiceOwnedPattern.java | 3 ++- .../patterns/StrategicInstanceOwnedPattern.java | 3 ++- .../StrategicPeriodicServiceOwnedPattern.java | 4 ++-- .../patterns/StrategicServiceOwnedPattern.java | 3 ++- .../simulator/events/ChaosMonkeyEvent.java | 5 +++-- .../cambio/simulator/events/DelayInjection.java | 5 +++-- .../simulator/events/ExperimentAction.java | 3 ++- .../events/SelfScheduledExperimentAction.java | 5 +++-- .../simulator/events/SummonerMonkeyEvent.java | 5 +++-- .../cambio/simulator/parsing/EntityCreator.java | 15 ++++++++------- .../parsing/PatternConfigurationParser.java | 3 ++- .../java/cambio/simulator/resources/cpu/CPU.java | 11 ++++++----- .../cpu/ComputationBurstCompletedEvent.java | 3 ++- .../resources/cpu/ComputationCompletedEvent.java | 3 ++- .../cambio/simulator/test/RandomTieredModel.java | 3 ++- .../java/cambio/simulator/test/TestModel.java | 3 ++- .../java/cambio/simulator/test/TestUtils.java | 6 +++--- 47 files changed, 144 insertions(+), 73 deletions(-) diff --git a/src/main/java/cambio/simulator/entities/NamedEntity.java b/src/main/java/cambio/simulator/entities/NamedEntity.java index 2715dfd6..7d5be3d8 100644 --- a/src/main/java/cambio/simulator/entities/NamedEntity.java +++ b/src/main/java/cambio/simulator/entities/NamedEntity.java @@ -1,5 +1,6 @@ package cambio.simulator.entities; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Entity; import desmoj.core.simulator.Model; @@ -33,11 +34,13 @@ public abstract class NamedEntity extends Entity { * @param name The name of the entity. * @param showInTrace Flag indicating whether the entity should be shown in the trace. */ - public NamedEntity(Model model, String name, boolean showInTrace) { + public NamedEntity(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); this.plainName = name; this.quotedPlainName = "'" + name + "'"; this.quotedName = super.getQuotedName(); + + this.model = model; } public String getPlainName() { @@ -73,4 +76,11 @@ public String getQuotedPlainName() { public String getQuotedName() { return this.quotedName; } + + private final MiSimModel model; + + @Override + public MiSimModel getModel() { + return this.model; + } } diff --git a/src/main/java/cambio/simulator/entities/NamedExternalEvent.java b/src/main/java/cambio/simulator/entities/NamedExternalEvent.java index e0dab0e0..bb728330 100644 --- a/src/main/java/cambio/simulator/entities/NamedExternalEvent.java +++ b/src/main/java/cambio/simulator/entities/NamedExternalEvent.java @@ -1,5 +1,6 @@ package cambio.simulator.entities; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.ExternalEvent; import desmoj.core.simulator.Model; @@ -32,11 +33,13 @@ public abstract class NamedExternalEvent extends ExternalEvent { * @param name The name of this event. * @param showInTrace Flag indicating whether the entity should be shown in the trace. */ - public NamedExternalEvent(Model model, String name, boolean showInTrace) { + public NamedExternalEvent(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); this.plainName = name; this.quotedPlainName = "'" + name + "'"; this.quotedName = super.getQuotedName(); + + this.model = model; } public String getPlainName() { @@ -72,4 +75,12 @@ public String getQuotedPlainName() { public String getQuotedName() { return this.quotedName; } + + + private final MiSimModel model; + + @Override + public MiSimModel getModel() { + return this.model; + } } diff --git a/src/main/java/cambio/simulator/entities/NamedSimProcess.java b/src/main/java/cambio/simulator/entities/NamedSimProcess.java index 93f3a25b..5b607a7d 100644 --- a/src/main/java/cambio/simulator/entities/NamedSimProcess.java +++ b/src/main/java/cambio/simulator/entities/NamedSimProcess.java @@ -1,6 +1,6 @@ package cambio.simulator.entities; -import desmoj.core.simulator.Model; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.SimProcess; /** @@ -32,7 +32,7 @@ public abstract class NamedSimProcess extends SimProcess { * @param name The name of this process. * @param showInTrace Flag indicating whether the entity should be shown in the trace. */ - public NamedSimProcess(Model model, String name, boolean showInTrace) { + public NamedSimProcess(MiSimModel model, String name, boolean showInTrace) { this(model, name, false, showInTrace); } @@ -44,11 +44,13 @@ public NamedSimProcess(Model model, String name, boolean showInTrace) { * @param repeating If this process is automatically restart its lifecycle. * @param showInTrace Flag indicating whether the entity should be shown in the trace. */ - public NamedSimProcess(Model model, String name, boolean repeating, boolean showInTrace) { + public NamedSimProcess(MiSimModel model, String name, boolean repeating, boolean showInTrace) { super(model, name, repeating, showInTrace); this.plainName = name; this.quotedPlainName = "'" + name + "'"; this.quotedName = super.getQuotedName(); + + this.model = model; } public String getPlainName() { @@ -84,4 +86,12 @@ public String getQuotedPlainName() { public String getQuotedName() { return this.quotedName; } + + + private final MiSimModel model; + + @Override + public MiSimModel getModel() { + return this.model; + } } diff --git a/src/main/java/cambio/simulator/entities/generator/LoadGeneratorDescriptionExecutor.java b/src/main/java/cambio/simulator/entities/generator/LoadGeneratorDescriptionExecutor.java index 7350c0d8..11af4caa 100644 --- a/src/main/java/cambio/simulator/entities/generator/LoadGeneratorDescriptionExecutor.java +++ b/src/main/java/cambio/simulator/entities/generator/LoadGeneratorDescriptionExecutor.java @@ -9,8 +9,8 @@ import cambio.simulator.entities.patterns.IPatternLifeCycleHooks; import cambio.simulator.events.ISelfScheduled; import cambio.simulator.export.AccumulativeDataPointReporter; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeInstant; import org.jetbrains.annotations.NotNull; @@ -48,7 +48,7 @@ public final class LoadGeneratorDescriptionExecutor extends RequestSender implem * @param model the underlying model * @param loadGeneratorDescription behavioral description of this load generator. */ - public LoadGeneratorDescriptionExecutor(Model model, @NotNull LoadGeneratorDescription loadGeneratorDescription) { + public LoadGeneratorDescriptionExecutor(MiSimModel model, @NotNull LoadGeneratorDescription loadGeneratorDescription) { super(model, loadGeneratorDescription.getName() != null ? loadGeneratorDescription.getName() : "Generator", true); diff --git a/src/main/java/cambio/simulator/entities/microservice/InstanceKillEvent.java b/src/main/java/cambio/simulator/entities/microservice/InstanceKillEvent.java index dbadfe44..c6d848a0 100644 --- a/src/main/java/cambio/simulator/entities/microservice/InstanceKillEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/InstanceKillEvent.java @@ -1,6 +1,7 @@ package cambio.simulator.entities.microservice; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; import desmoj.core.simulator.Model; @@ -11,7 +12,7 @@ * @author Lion Wagner */ public class InstanceKillEvent extends Event { - public InstanceKillEvent(Model model, String name, boolean showInTrace) { + public InstanceKillEvent(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); this.setSchedulingPriority(Priority.VERY_HIGH); } diff --git a/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownEndEvent.java b/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownEndEvent.java index 30214cfe..19f1047b 100644 --- a/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownEndEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownEndEvent.java @@ -1,5 +1,6 @@ package cambio.simulator.entities.microservice; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; import desmoj.core.simulator.Model; @@ -11,7 +12,7 @@ */ public class InstanceShutdownEndEvent extends Event { - public InstanceShutdownEndEvent(Model model, String name, boolean showInTrace) { + public InstanceShutdownEndEvent(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } diff --git a/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownStartEvent.java b/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownStartEvent.java index 217b1cee..9d444cd5 100644 --- a/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownStartEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownStartEvent.java @@ -1,6 +1,7 @@ package cambio.simulator.entities.microservice; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; import desmoj.core.simulator.Model; @@ -17,7 +18,7 @@ public class InstanceShutdownStartEvent extends Event { - public InstanceShutdownStartEvent(Model model, String name, boolean showInTrace) { + public InstanceShutdownStartEvent(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); this.setSchedulingPriority(Priority.HIGH); } diff --git a/src/main/java/cambio/simulator/entities/microservice/InstanceStartupEvent.java b/src/main/java/cambio/simulator/entities/microservice/InstanceStartupEvent.java index 449f2aa7..f158d5a2 100644 --- a/src/main/java/cambio/simulator/entities/microservice/InstanceStartupEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/InstanceStartupEvent.java @@ -1,6 +1,7 @@ package cambio.simulator.entities.microservice; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; import desmoj.core.simulator.Model; @@ -12,7 +13,7 @@ */ public class InstanceStartupEvent extends Event { - public InstanceStartupEvent(Model model, String name, boolean showInTrace) { + public InstanceStartupEvent(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); this.setSchedulingPriority(Priority.HIGH); } diff --git a/src/main/java/cambio/simulator/entities/microservice/Microservice.java b/src/main/java/cambio/simulator/entities/microservice/Microservice.java index 8bf77556..1a876e63 100644 --- a/src/main/java/cambio/simulator/entities/microservice/Microservice.java +++ b/src/main/java/cambio/simulator/entities/microservice/Microservice.java @@ -9,6 +9,7 @@ import cambio.simulator.entities.patterns.*; import cambio.simulator.export.AccumulativeDataPointReporter; import cambio.simulator.export.MultiDataPointReporter; +import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import desmoj.core.dist.NumericalDist; @@ -76,7 +77,7 @@ public class Microservice extends NamedEntity { /** * Creates a new instance of a {@link Microservice}. */ - public Microservice(Model model, String name, boolean showInTrace) { + public Microservice(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); //default load balancer loadBalancer = new LoadBalancer(model, "Loadbalancer", traceIsOn(), null); diff --git a/src/main/java/cambio/simulator/entities/microservice/MicroserviceInstance.java b/src/main/java/cambio/simulator/entities/microservice/MicroserviceInstance.java index a4fdc1eb..ed8697a6 100644 --- a/src/main/java/cambio/simulator/entities/microservice/MicroserviceInstance.java +++ b/src/main/java/cambio/simulator/entities/microservice/MicroserviceInstance.java @@ -7,6 +7,7 @@ import cambio.simulator.entities.networking.*; import cambio.simulator.entities.patterns.*; import cambio.simulator.export.MultiDataPointReporter; +import cambio.simulator.models.MiSimModel; import cambio.simulator.resources.cpu.CPU; import cambio.simulator.resources.cpu.CPUProcess; import cambio.simulator.resources.cpu.scheduling.FIFOScheduler; @@ -56,7 +57,7 @@ public class MicroserviceInstance extends RequestSender implements IRequestUpdat private long waiting = 0; - MicroserviceInstance(Model model, String name, boolean showInTrace, Microservice microservice, + MicroserviceInstance(MiSimModel model, String name, boolean showInTrace, Microservice microservice, int instanceID) { super(model, name, showInTrace); this.owner = microservice; diff --git a/src/main/java/cambio/simulator/entities/microservice/MicroserviceScaleEvent.java b/src/main/java/cambio/simulator/entities/microservice/MicroserviceScaleEvent.java index 7fa34d29..5e74cdaa 100644 --- a/src/main/java/cambio/simulator/entities/microservice/MicroserviceScaleEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/MicroserviceScaleEvent.java @@ -1,6 +1,7 @@ package cambio.simulator.entities.microservice; import cambio.simulator.entities.NamedExternalEvent; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Model; @@ -17,7 +18,7 @@ public class MicroserviceScaleEvent extends NamedExternalEvent { /** * Creates a new scaling event. */ - public MicroserviceScaleEvent(Model model, String name, boolean showInTrace, Microservice microservice, + public MicroserviceScaleEvent(MiSimModel model, String name, boolean showInTrace, Microservice microservice, int targetInstanceCount) { super(model, name, showInTrace); this.microservice = microservice; diff --git a/src/main/java/cambio/simulator/entities/microservice/Operation.java b/src/main/java/cambio/simulator/entities/microservice/Operation.java index eeb399fe..9bf08102 100644 --- a/src/main/java/cambio/simulator/entities/microservice/Operation.java +++ b/src/main/java/cambio/simulator/entities/microservice/Operation.java @@ -5,6 +5,7 @@ import cambio.simulator.entities.NamedEntity; import cambio.simulator.entities.networking.DependencyDescription; import cambio.simulator.entities.networking.ServiceDependencyInstance; +import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import desmoj.core.dist.NumericalDist; import desmoj.core.simulator.Model; @@ -29,7 +30,7 @@ public class Operation extends NamedEntity { * @param ownerMS {@link Microservice} that owns this operation. * @param demand CPU demand of this operation. */ - public Operation(Model model, String name, boolean showInTrace, Microservice ownerMS, int demand) { + public Operation(MiSimModel model, String name, boolean showInTrace, Microservice ownerMS, int demand) { super(model, (ownerMS == null ? "" : ownerMS.getPlainName() + ".") + name, showInTrace); this.demand = demand; this.ownerMS = ownerMS; diff --git a/src/main/java/cambio/simulator/entities/networking/InternalRequest.java b/src/main/java/cambio/simulator/entities/networking/InternalRequest.java index 09ff5ec5..d5bc28f2 100644 --- a/src/main/java/cambio/simulator/entities/networking/InternalRequest.java +++ b/src/main/java/cambio/simulator/entities/networking/InternalRequest.java @@ -1,6 +1,7 @@ package cambio.simulator.entities.networking; import cambio.simulator.entities.microservice.MicroserviceInstance; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Model; /** @@ -19,7 +20,7 @@ public class InternalRequest extends Request { * @param dependency {@link ServiceDependencyInstance} that should be competed by this request. * @param requester {@link MicroserviceInstance} that requests the answer to this request. */ - public InternalRequest(Model model, boolean showInTrace, ServiceDependencyInstance dependency, + public InternalRequest(MiSimModel model, boolean showInTrace, ServiceDependencyInstance dependency, MicroserviceInstance requester) { super(model, String diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestCanceledEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestCanceledEvent.java index 69f821d8..d15e2f3d 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestCanceledEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestCanceledEvent.java @@ -1,6 +1,7 @@ package cambio.simulator.entities.networking; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Model; @@ -14,7 +15,7 @@ public class NetworkRequestCanceledEvent extends NetworkRequestEvent { private final RequestFailedReason reason; private final String details; - public NetworkRequestCanceledEvent(Model model, String name, boolean showInTrace, Request request, + public NetworkRequestCanceledEvent(MiSimModel model, String name, boolean showInTrace, Request request, RequestFailedReason reason) { this(model, name, showInTrace, request, reason, null); } @@ -26,7 +27,7 @@ public NetworkRequestCanceledEvent(Model model, String name, boolean showInTrace * @param reason why the request canceled/failed * @param details optional reasoning string that is used in the trace */ - public NetworkRequestCanceledEvent(Model model, String name, boolean showInTrace, Request request, + public NetworkRequestCanceledEvent(MiSimModel model, String name, boolean showInTrace, Request request, RequestFailedReason reason, String details) { super(model, name, showInTrace, request); this.reason = reason; diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestEvent.java index 1c28199b..0d3aac73 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestEvent.java @@ -3,6 +3,7 @@ import java.util.Collection; import cambio.simulator.entities.NamedExternalEvent; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeInstant; @@ -27,7 +28,7 @@ public abstract class NetworkRequestEvent extends NamedExternalEvent { * * @param travelingRequest the request that is associated with this request. */ - public NetworkRequestEvent(Model model, String name, boolean showInTrace, Request travelingRequest) { + public NetworkRequestEvent(MiSimModel model, String name, boolean showInTrace, Request travelingRequest) { super(model, name, showInTrace); this.travelingRequest = travelingRequest; updateListeners = travelingRequest.getUpdateListeners(); diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestReceiveEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestReceiveEvent.java index 08d350ee..33fa7042 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestReceiveEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestReceiveEvent.java @@ -1,6 +1,7 @@ package cambio.simulator.entities.networking; import cambio.simulator.entities.microservice.MicroserviceInstance; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Model; @@ -16,7 +17,7 @@ public class NetworkRequestReceiveEvent extends NetworkRequestEvent { private final MicroserviceInstance receivingInstance; - public NetworkRequestReceiveEvent(Model model, String name, boolean showInTrace, + public NetworkRequestReceiveEvent(MiSimModel model, String name, boolean showInTrace, Request travelingRequest, MicroserviceInstance receiver) { super(model, name, showInTrace, travelingRequest); diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestSendEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestSendEvent.java index 793b2d08..cde3648a 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestSendEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestSendEvent.java @@ -3,6 +3,7 @@ import java.util.concurrent.atomic.AtomicLong; import cambio.simulator.entities.microservice.*; +import cambio.simulator.models.MiSimModel; import cambio.simulator.export.ReportCollector; import cambio.simulator.misc.RNGStorage; import co.paralleluniverse.fibers.SuspendExecution; @@ -27,17 +28,17 @@ public class NetworkRequestSendEvent extends NetworkRequestEvent { private transient NetworkRequestTimeoutEvent timeoutEvent; private boolean isCanceled = false; - public NetworkRequestSendEvent(Model model, String name, boolean showInTrace, Request request, + public NetworkRequestSendEvent(MiSimModel model, String name, boolean showInTrace, Request request, MicroserviceInstance target) { this(model, name, showInTrace, request, null, target); } - public NetworkRequestSendEvent(Model model, String name, boolean showInTrace, Request request, + public NetworkRequestSendEvent(MiSimModel model, String name, boolean showInTrace, Request request, Microservice target) { this(model, name, showInTrace, request, target, null); } - private NetworkRequestSendEvent(Model model, String name, boolean showInTrace, Request request, + private NetworkRequestSendEvent(MiSimModel model, String name, boolean showInTrace, Request request, Microservice targetService, MicroserviceInstance targetInstance) { super(model, name, showInTrace, request); this.targetService = targetService; diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestTimeoutEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestTimeoutEvent.java index d187c000..201a6029 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestTimeoutEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestTimeoutEvent.java @@ -3,6 +3,7 @@ import java.util.concurrent.TimeUnit; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.*; @@ -23,7 +24,7 @@ public class NetworkRequestTimeoutEvent extends NetworkRequestEvent implements I * * @param request the request that should be able to time out. */ - public NetworkRequestTimeoutEvent(Model model, String name, boolean showInTrace, Request request) { + public NetworkRequestTimeoutEvent(MiSimModel model, String name, boolean showInTrace, Request request) { super(model, name, showInTrace, request); this.setSchedulingPriority(Priority.LOW); this.schedule(new TimeSpan(8, TimeUnit.SECONDS)); diff --git a/src/main/java/cambio/simulator/entities/networking/Request.java b/src/main/java/cambio/simulator/entities/networking/Request.java index 6673ff2c..5f572522 100644 --- a/src/main/java/cambio/simulator/entities/networking/Request.java +++ b/src/main/java/cambio/simulator/entities/networking/Request.java @@ -36,7 +36,7 @@ public abstract class Request extends NamedEntity { private TimeInstant timestampComputationCompleted; private TimeInstant timestampDependenciesCompleted; - protected Request(Model model, String name, boolean showInTrace, Request parent, Operation operation, + protected Request(MiSimModel model, String name, boolean showInTrace, Request parent, Operation operation, MicroserviceInstance requester) { super(model, name, showInTrace); this.operation = operation; diff --git a/src/main/java/cambio/simulator/entities/networking/RequestSender.java b/src/main/java/cambio/simulator/entities/networking/RequestSender.java index 420001cd..48ae1c38 100644 --- a/src/main/java/cambio/simulator/entities/networking/RequestSender.java +++ b/src/main/java/cambio/simulator/entities/networking/RequestSender.java @@ -6,6 +6,7 @@ import cambio.simulator.entities.NamedEntity; import cambio.simulator.entities.microservice.Microservice; import cambio.simulator.entities.microservice.MicroserviceInstance; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.*; /** @@ -43,7 +44,7 @@ public boolean onRequestResultArrivedAtRequester(Request request, TimeInstant wh } }; - public RequestSender(Model model, String name, boolean showInTrace) { + public RequestSender(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } diff --git a/src/main/java/cambio/simulator/entities/networking/ServiceDependencyInstance.java b/src/main/java/cambio/simulator/entities/networking/ServiceDependencyInstance.java index 19d9385d..732375ad 100644 --- a/src/main/java/cambio/simulator/entities/networking/ServiceDependencyInstance.java +++ b/src/main/java/cambio/simulator/entities/networking/ServiceDependencyInstance.java @@ -2,6 +2,7 @@ import cambio.simulator.entities.NamedEntity; import cambio.simulator.entities.microservice.*; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Model; /** @@ -30,7 +31,7 @@ public class ServiceDependencyInstance extends NamedEntity { * @param targetOp {@link Operation} that is targeted by this dependency. * @param dependencyDescription generic data that describes this dependency. */ - public ServiceDependencyInstance(Model model, Request parentRequest, Operation targetOp, + public ServiceDependencyInstance(MiSimModel model, Request parentRequest, Operation targetOp, DependencyDescription dependencyDescription) { super(model, String.format( diff --git a/src/main/java/cambio/simulator/entities/networking/UserRequest.java b/src/main/java/cambio/simulator/entities/networking/UserRequest.java index dad36ee8..cb87653e 100644 --- a/src/main/java/cambio/simulator/entities/networking/UserRequest.java +++ b/src/main/java/cambio/simulator/entities/networking/UserRequest.java @@ -3,6 +3,7 @@ import cambio.simulator.entities.generator.LoadGeneratorDescriptionExecutor; import cambio.simulator.entities.microservice.Operation; import cambio.simulator.export.ReportCollector; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Model; /** @@ -17,7 +18,7 @@ */ public class UserRequest extends Request { - public UserRequest(Model model, String name, boolean showInTrace, Operation operation) { + public UserRequest(MiSimModel model, String name, boolean showInTrace, Operation operation) { super(model, name, showInTrace, null, operation, null); } diff --git a/src/main/java/cambio/simulator/entities/patterns/BasicPeriodicAutoscalingStrategyProxy.java b/src/main/java/cambio/simulator/entities/patterns/BasicPeriodicAutoscalingStrategyProxy.java index 51043731..80b28f2a 100644 --- a/src/main/java/cambio/simulator/entities/patterns/BasicPeriodicAutoscalingStrategyProxy.java +++ b/src/main/java/cambio/simulator/entities/patterns/BasicPeriodicAutoscalingStrategyProxy.java @@ -1,5 +1,6 @@ package cambio.simulator.entities.patterns; +import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; import desmoj.core.simulator.Model; @@ -12,7 +13,7 @@ @JsonTypeName(value = "autoscaling", alternativeNames = "autoscale") public class BasicPeriodicAutoscalingStrategyProxy extends StrategicPeriodicServiceOwnedPattern { - public BasicPeriodicAutoscalingStrategyProxy(Model model, String name, boolean showInTrace) { + public BasicPeriodicAutoscalingStrategyProxy(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); strategy = new ReactiveAutoscalingPolicy(); //default strategy } diff --git a/src/main/java/cambio/simulator/entities/patterns/CircuitBreaker.java b/src/main/java/cambio/simulator/entities/patterns/CircuitBreaker.java index 66e17ead..585f9da1 100644 --- a/src/main/java/cambio/simulator/entities/patterns/CircuitBreaker.java +++ b/src/main/java/cambio/simulator/entities/patterns/CircuitBreaker.java @@ -7,6 +7,7 @@ import cambio.simulator.entities.networking.*; import cambio.simulator.export.MultiDataPointReporter; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; @@ -47,7 +48,7 @@ public final class CircuitBreaker extends InstanceOwnedPattern implements IReque @Expose private int rollingWindow = 20; //window over which error rates are collected - public CircuitBreaker(Model model, String name, boolean showInTrace) { + public CircuitBreaker(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); reporter = new MultiDataPointReporter(String.format("CB[%s]_", name)); } diff --git a/src/main/java/cambio/simulator/entities/patterns/HalfOpenBreakerEvent.java b/src/main/java/cambio/simulator/entities/patterns/HalfOpenBreakerEvent.java index c82c3bfd..5f37a0ba 100644 --- a/src/main/java/cambio/simulator/entities/patterns/HalfOpenBreakerEvent.java +++ b/src/main/java/cambio/simulator/entities/patterns/HalfOpenBreakerEvent.java @@ -2,6 +2,7 @@ import cambio.simulator.entities.NamedExternalEvent; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Model; @@ -19,7 +20,7 @@ public class HalfOpenBreakerEvent extends NamedExternalEvent { * * @param stateToChange circuit breaker that should change its state to half-open */ - public HalfOpenBreakerEvent(Model model, String name, boolean showInTrace, + public HalfOpenBreakerEvent(MiSimModel model, String name, boolean showInTrace, ICircuitBreakerState stateToChange) { super(model, name, showInTrace); this.stateToChange = stateToChange; diff --git a/src/main/java/cambio/simulator/entities/patterns/InstanceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/InstanceOwnedPattern.java index 50146945..11849a3a 100644 --- a/src/main/java/cambio/simulator/entities/patterns/InstanceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/InstanceOwnedPattern.java @@ -3,6 +3,7 @@ import cambio.simulator.entities.NamedEntity; import cambio.simulator.entities.microservice.Microservice; import cambio.simulator.entities.microservice.MicroserviceInstance; +import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; import desmoj.core.simulator.Model; @@ -14,7 +15,7 @@ * instance if their type name is set via the {@link JsonTypeName} annotation. For a successful parsing the subtype * need to have a constructor with the following signature:
*
- * constructor({@link Model}, {@link String}, {@link Boolean}, {@link MicroserviceInstance})
+ * constructor({@link MiSimModel}, {@link String}, {@link Boolean}, {@link MicroserviceInstance})
  * 
* *

@@ -47,7 +48,7 @@ public abstract class InstanceOwnedPattern extends NamedEntity implements IPatte protected final MicroserviceInstance owner = null; - public InstanceOwnedPattern(Model model, String name, boolean showInTrace) { + public InstanceOwnedPattern(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } diff --git a/src/main/java/cambio/simulator/entities/patterns/LoadBalancer.java b/src/main/java/cambio/simulator/entities/patterns/LoadBalancer.java index 2416b48f..2833ee27 100644 --- a/src/main/java/cambio/simulator/entities/patterns/LoadBalancer.java +++ b/src/main/java/cambio/simulator/entities/patterns/LoadBalancer.java @@ -4,6 +4,7 @@ import java.util.stream.Collectors; import cambio.simulator.entities.microservice.*; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Entity; import desmoj.core.simulator.Model; @@ -21,7 +22,7 @@ public final class LoadBalancer extends Entity { /** * Creates a new instance of a loadbalancer that will use the given strategy. */ - public LoadBalancer(Model model, String name, boolean showInTrace, ILoadBalancingStrategy loadBalancingStrategy) { + public LoadBalancer(MiSimModel model, String name, boolean showInTrace, ILoadBalancingStrategy loadBalancingStrategy) { super(model, name, showInTrace); if (loadBalancingStrategy != null) { this.loadBalancingStrategy = loadBalancingStrategy; diff --git a/src/main/java/cambio/simulator/entities/patterns/PeriodicPatternScheduler.java b/src/main/java/cambio/simulator/entities/patterns/PeriodicPatternScheduler.java index b9022e9e..eb319d4a 100644 --- a/src/main/java/cambio/simulator/entities/patterns/PeriodicPatternScheduler.java +++ b/src/main/java/cambio/simulator/entities/patterns/PeriodicPatternScheduler.java @@ -2,8 +2,8 @@ import cambio.simulator.entities.NamedSimProcess; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeSpan; /** @@ -28,7 +28,7 @@ public class PeriodicPatternScheduler extends NamedSimProcess { * @param stop simulation time after which no more triggers should happen. * @param interval interval/period between triggers */ - public PeriodicPatternScheduler(Model model, IPeriodicPattern pattern, double start, double stop, + public PeriodicPatternScheduler(MiSimModel model, IPeriodicPattern pattern, double start, double stop, double interval) { super(model, null, true, false); this.owner = pattern; diff --git a/src/main/java/cambio/simulator/entities/patterns/PeriodicServiceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/PeriodicServiceOwnedPattern.java index 8b7799ff..75f14849 100644 --- a/src/main/java/cambio/simulator/entities/patterns/PeriodicServiceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/PeriodicServiceOwnedPattern.java @@ -1,5 +1,6 @@ package cambio.simulator.entities.patterns; +import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import desmoj.core.simulator.Model; @@ -22,7 +23,7 @@ public abstract class PeriodicServiceOwnedPattern extends ServiceOwnedPattern im private transient PeriodicPatternScheduler scheduler; - public PeriodicServiceOwnedPattern(Model model, String name, boolean showInTrace) { + public PeriodicServiceOwnedPattern(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } diff --git a/src/main/java/cambio/simulator/entities/patterns/Retry.java b/src/main/java/cambio/simulator/entities/patterns/Retry.java index 0ac277b9..090ac96b 100644 --- a/src/main/java/cambio/simulator/entities/patterns/Retry.java +++ b/src/main/java/cambio/simulator/entities/patterns/Retry.java @@ -7,9 +7,11 @@ import cambio.simulator.entities.microservice.MicroserviceInstance; import cambio.simulator.entities.networking.*; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; import com.google.gson.annotations.Expose; -import desmoj.core.simulator.*; +import desmoj.core.simulator.TimeInstant; +import desmoj.core.simulator.TimeSpan; /** * Retry implementation that employs a full jitter based exponential backoff. Jittering can be turned off. @@ -29,7 +31,7 @@ public class Retry extends StrategicInstanceOwnedPattern impleme private int maxTries = 5; - public Retry(final Model model, final String name, final boolean showInTrace) { + public Retry(final MiSimModel model, final String name, final boolean showInTrace) { super(model, name, showInTrace); this.setStrategy(new JitteringExponentialBackoffRetryStrategy()); // set default value } diff --git a/src/main/java/cambio/simulator/entities/patterns/ServiceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/ServiceOwnedPattern.java index be25ea15..15c24a71 100644 --- a/src/main/java/cambio/simulator/entities/patterns/ServiceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/ServiceOwnedPattern.java @@ -2,6 +2,7 @@ import cambio.simulator.entities.NamedEntity; import cambio.simulator.entities.microservice.Microservice; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Model; /** @@ -12,7 +13,7 @@ public abstract class ServiceOwnedPattern extends NamedEntity implements IPatter protected Microservice owner = null; - public ServiceOwnedPattern(Model model, String name, boolean showInTrace) { + public ServiceOwnedPattern(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } diff --git a/src/main/java/cambio/simulator/entities/patterns/StrategicInstanceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/StrategicInstanceOwnedPattern.java index 7220aa42..842cbe00 100644 --- a/src/main/java/cambio/simulator/entities/patterns/StrategicInstanceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/StrategicInstanceOwnedPattern.java @@ -1,5 +1,6 @@ package cambio.simulator.entities.patterns; +import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import desmoj.core.simulator.Model; @@ -15,7 +16,7 @@ public abstract class StrategicInstanceOwnedPattern extends @Expose protected S strategy; - public StrategicInstanceOwnedPattern(Model model, String name, boolean showInTrace) { + public StrategicInstanceOwnedPattern(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } diff --git a/src/main/java/cambio/simulator/entities/patterns/StrategicPeriodicServiceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/StrategicPeriodicServiceOwnedPattern.java index 9b2c457f..9e3ae941 100644 --- a/src/main/java/cambio/simulator/entities/patterns/StrategicPeriodicServiceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/StrategicPeriodicServiceOwnedPattern.java @@ -1,8 +1,8 @@ package cambio.simulator.entities.patterns; +import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeInstant; /** @@ -25,7 +25,7 @@ public abstract class StrategicPeriodicServiceOwnedPattern private transient PeriodicPatternScheduler scheduler; - public StrategicPeriodicServiceOwnedPattern(Model model, String name, boolean showInTrace) { + public StrategicPeriodicServiceOwnedPattern(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } diff --git a/src/main/java/cambio/simulator/entities/patterns/StrategicServiceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/StrategicServiceOwnedPattern.java index ebbbd549..b5415a45 100644 --- a/src/main/java/cambio/simulator/entities/patterns/StrategicServiceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/StrategicServiceOwnedPattern.java @@ -1,5 +1,6 @@ package cambio.simulator.entities.patterns; +import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import desmoj.core.simulator.Model; @@ -14,7 +15,7 @@ public abstract class StrategicServiceOwnedPattern extends @Expose protected S strategy; - public StrategicServiceOwnedPattern(Model model, String name, boolean showInTrace) { + public StrategicServiceOwnedPattern(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } diff --git a/src/main/java/cambio/simulator/events/ChaosMonkeyEvent.java b/src/main/java/cambio/simulator/events/ChaosMonkeyEvent.java index cac99292..9908e509 100644 --- a/src/main/java/cambio/simulator/events/ChaosMonkeyEvent.java +++ b/src/main/java/cambio/simulator/events/ChaosMonkeyEvent.java @@ -2,6 +2,7 @@ import cambio.simulator.entities.microservice.Microservice; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; import co.paralleluniverse.fibers.SuspendExecution; import com.google.gson.annotations.Expose; @@ -23,7 +24,7 @@ public class ChaosMonkeyEvent extends SelfScheduledExperimentAction { @Expose private Microservice microservice; - public ChaosMonkeyEvent(Model model, String name, boolean showInTrace) { + public ChaosMonkeyEvent(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } @@ -37,7 +38,7 @@ public ChaosMonkeyEvent(Model model, String name, boolean showInTrace) { * @param instances int: The number of instances of the specified microservice you want to shut down, can be * greater than the number of currently running instances */ - public ChaosMonkeyEvent(Model owner, String name, boolean showInTrace, Microservice microservice, int instances) { + public ChaosMonkeyEvent(MiSimModel owner, String name, boolean showInTrace, Microservice microservice, int instances) { super(owner, name, showInTrace); this.microservice = microservice; diff --git a/src/main/java/cambio/simulator/events/DelayInjection.java b/src/main/java/cambio/simulator/events/DelayInjection.java index dfb60603..8f0ed90e 100644 --- a/src/main/java/cambio/simulator/events/DelayInjection.java +++ b/src/main/java/cambio/simulator/events/DelayInjection.java @@ -6,6 +6,7 @@ import cambio.simulator.entities.microservice.Microservice; import cambio.simulator.entities.microservice.Operation; import cambio.simulator.entities.networking.InternalRequest; +import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; @@ -34,7 +35,7 @@ public class DelayInjection extends SelfScheduledExperimentAction { @Expose private double duration; - public DelayInjection(Model model, String name, boolean showInTrace) { + public DelayInjection(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } @@ -49,7 +50,7 @@ public DelayInjection(Model model, String name, boolean showInTrace) { * @param operationTrg target {@link Operation} of the operationSrc that should be affected, can be set to {@code * null} to affect all outgoing {@link InternalRequest}s */ - public DelayInjection(Model model, String name, boolean showInTrace, double delay, double stdDeviation, + public DelayInjection(MiSimModel model, String name, boolean showInTrace, double delay, double stdDeviation, Microservice microservice, Operation operationSrc, Operation operationTrg) { super(model, name, showInTrace); Objects.requireNonNull(microservice); diff --git a/src/main/java/cambio/simulator/events/ExperimentAction.java b/src/main/java/cambio/simulator/events/ExperimentAction.java index a92b48d0..ad63a985 100644 --- a/src/main/java/cambio/simulator/events/ExperimentAction.java +++ b/src/main/java/cambio/simulator/events/ExperimentAction.java @@ -1,6 +1,7 @@ package cambio.simulator.events; import cambio.simulator.entities.NamedExternalEvent; +import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import desmoj.core.simulator.Model; @@ -17,7 +18,7 @@ public abstract class ExperimentAction extends NamedExternalEvent implements ISe @SerializedName(value = "start", alternate = {"initial_arrival_time", "arrival_time", "time"}) protected double initialArrivalTime = 0; - public ExperimentAction(Model model, String s, boolean b) { + public ExperimentAction(MiSimModel model, String s, boolean b) { super(model, s, b); } diff --git a/src/main/java/cambio/simulator/events/SelfScheduledExperimentAction.java b/src/main/java/cambio/simulator/events/SelfScheduledExperimentAction.java index 0467cd64..982f679b 100644 --- a/src/main/java/cambio/simulator/events/SelfScheduledExperimentAction.java +++ b/src/main/java/cambio/simulator/events/SelfScheduledExperimentAction.java @@ -2,6 +2,7 @@ import java.util.Objects; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeInstant; @@ -12,8 +13,8 @@ */ public abstract class SelfScheduledExperimentAction extends ExperimentAction implements ISelfScheduled { - public SelfScheduledExperimentAction(Model model, String name, boolean showInTrace) { - super(model, name, showInTrace); + public SelfScheduledExperimentAction(MiSimModel owner, String name, boolean showInTrace) { + super(owner, name, showInTrace); } @Override diff --git a/src/main/java/cambio/simulator/events/SummonerMonkeyEvent.java b/src/main/java/cambio/simulator/events/SummonerMonkeyEvent.java index 808f4483..d30123fe 100644 --- a/src/main/java/cambio/simulator/events/SummonerMonkeyEvent.java +++ b/src/main/java/cambio/simulator/events/SummonerMonkeyEvent.java @@ -2,6 +2,7 @@ import cambio.simulator.entities.microservice.Microservice; import cambio.simulator.misc.Priority; +import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; import co.paralleluniverse.fibers.SuspendExecution; import com.google.gson.annotations.Expose; @@ -19,7 +20,7 @@ public class SummonerMonkeyEvent extends SelfScheduledExperimentAction { @Expose private Microservice microservice; - public SummonerMonkeyEvent(Model model, String name, boolean showInTrace) { + public SummonerMonkeyEvent(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } @@ -32,7 +33,7 @@ public SummonerMonkeyEvent(Model model, String name, boolean showInTrace) { * @param microservice int: The ID of the microservice whose instances should be started * @param instances int: The number of instances of the specified microservice should be started */ - public SummonerMonkeyEvent(Model owner, String name, boolean showInTrace, Microservice microservice, + public SummonerMonkeyEvent(MiSimModel owner, String name, boolean showInTrace, Microservice microservice, int instances) { super(owner, name, showInTrace); diff --git a/src/main/java/cambio/simulator/parsing/EntityCreator.java b/src/main/java/cambio/simulator/parsing/EntityCreator.java index 62c0565e..fea2407d 100644 --- a/src/main/java/cambio/simulator/parsing/EntityCreator.java +++ b/src/main/java/cambio/simulator/parsing/EntityCreator.java @@ -3,6 +3,7 @@ import java.lang.reflect.*; import java.util.Objects; +import cambio.simulator.models.MiSimModel; import com.google.gson.InstanceCreator; import desmoj.core.simulator.Model; import org.jetbrains.annotations.Contract; @@ -10,7 +11,7 @@ /** * Extention of Gsons' {@link InstanceCreator} to create {@link desmoj.core.simulator.Entity} instances of Desmo-J - * objects. Due to type erasure and type saftey the public factory {@link EntityCreator#getCreator(Model, String, + * objects. Due to type erasure and type saftey the public factory {@link EntityCreator#getCreator(MiSimModel, String, * Class)} hast to be used to create instances of this class. * *

@@ -19,14 +20,14 @@ * * @param Type of the pattern * @author Lion Wagner - * @see EntityCreator#getCreator(Model, String, Class) + * @see EntityCreator#getCreator(MiSimModel, String, Class) */ public class EntityCreator implements InstanceCreator { - private final Model model; + private final MiSimModel model; private final String name; private final Class targetClass; - private EntityCreator(Model model, String name, + private EntityCreator(MiSimModel model, String name, Class targetClass) { this.model = model; this.name = name; @@ -45,7 +46,7 @@ private EntityCreator(Model model, String name, */ @Contract("null,_,_ -> fail; _,_,null-> fail") public static @NotNull EntityCreator getCreator( - Model model, String name, Class targetClass) { + MiSimModel model, String name, Class targetClass) { Objects.requireNonNull(model); Objects.requireNonNull(targetClass); return new EntityCreator<>(model, name, targetClass); @@ -58,13 +59,13 @@ private EntityCreator(Model model, String name, public T createInstance(Type type) { try { Constructor c = - targetClass.getDeclaredConstructor(Model.class, String.class, boolean.class); + targetClass.getDeclaredConstructor(MiSimModel.class, String.class, boolean.class); return c.newInstance(model, name, true); } catch (NoSuchMethodException e) { throw new RuntimeException( String.format( "Cannot create an instance of %s. Missing constructor of with parameters (%s, %s, %s)", - targetClass.getName(), Model.class, String.class, Boolean.class), + targetClass.getName(), MiSimModel.class, String.class, Boolean.class), e); } catch (InvocationTargetException | InstantiationException | IllegalAccessException e) { throw new RuntimeException( diff --git a/src/main/java/cambio/simulator/parsing/PatternConfigurationParser.java b/src/main/java/cambio/simulator/parsing/PatternConfigurationParser.java index af470741..0ce6964a 100644 --- a/src/main/java/cambio/simulator/parsing/PatternConfigurationParser.java +++ b/src/main/java/cambio/simulator/parsing/PatternConfigurationParser.java @@ -4,6 +4,7 @@ import java.util.Arrays; import cambio.simulator.entities.patterns.*; +import cambio.simulator.models.MiSimModel; import com.google.gson.Gson; import desmoj.core.simulator.Model; import org.jetbrains.annotations.NotNull; @@ -37,7 +38,7 @@ public class PatternConfigurationParser { * @see JsonTypeName */ public static T getPatternInstance( - Model model, + MiSimModel model, String ownerName, @NotNull TypeNameAssociatedConfigurationData configurationData, Class patternBaseType) throws ClassNotFoundException { diff --git a/src/main/java/cambio/simulator/resources/cpu/CPU.java b/src/main/java/cambio/simulator/resources/cpu/CPU.java index 3edb1cfd..a3727de0 100644 --- a/src/main/java/cambio/simulator/resources/cpu/CPU.java +++ b/src/main/java/cambio/simulator/resources/cpu/CPU.java @@ -5,6 +5,7 @@ import cambio.simulator.entities.NamedExternalEvent; import cambio.simulator.entities.microservice.MicroserviceInstance; import cambio.simulator.export.MultiDataPointReporter; +import cambio.simulator.models.MiSimModel; import cambio.simulator.resources.cpu.scheduling.CPUProcessScheduler; import cambio.simulator.resources.cpu.scheduling.RoundRobinScheduler; import co.paralleluniverse.fibers.SuspendExecution; @@ -22,7 +23,7 @@ * @author Lion Wagner * @see CPUProcess * @see CPUProcessScheduler - * @see CPU#CPU(Model, String, boolean, MicroserviceInstance, int, CPUProcessScheduler, int) + * @see CPU#CPU(MiSimModel, String, boolean, MicroserviceInstance, int, CPUProcessScheduler, int) */ public class CPU extends NamedExternalEvent { @@ -45,7 +46,7 @@ public class CPU extends NamedExternalEvent { * @see CPU#CPU * @see RoundRobinScheduler */ - public CPU(Model model, String name, boolean showInTrace, int capacity, MicroserviceInstance owner) { + public CPU(MiSimModel model, String name, boolean showInTrace, int capacity, MicroserviceInstance owner) { this(model, name, showInTrace, capacity, DEFAULT_THREADPOOLSIZE, owner); } @@ -55,7 +56,7 @@ public CPU(Model model, String name, boolean showInTrace, int capacity, Microser * @see CPU#CPU * @see RoundRobinScheduler */ - public CPU(Model model, String name, boolean showInTrace, int capacity, int threadPoolSize, + public CPU(MiSimModel model, String name, boolean showInTrace, int capacity, int threadPoolSize, MicroserviceInstance owner) { this(model, name, showInTrace, owner, capacity, new RoundRobinScheduler(name + "_scheduler"), threadPoolSize); } @@ -68,7 +69,7 @@ public CPU(Model model, String name, boolean showInTrace, int capacity, int thre * * @see CPU#CPU */ - public CPU(Model model, String name, boolean showInTrace, int capacity, CPUProcessScheduler scheduler, + public CPU(MiSimModel model, String name, boolean showInTrace, int capacity, CPUProcessScheduler scheduler, MicroserviceInstance owner) { this(model, name, showInTrace, owner, capacity, scheduler, DEFAULT_THREADPOOLSIZE); } @@ -87,7 +88,7 @@ public CPU(Model model, String name, boolean showInTrace, int capacity, CPUProce * @see CPUProcessScheduler * @see RoundRobinScheduler */ - public CPU(Model model, String name, boolean showInTrace, MicroserviceInstance owner, int capacity, + public CPU(MiSimModel model, String name, boolean showInTrace, MicroserviceInstance owner, int capacity, CPUProcessScheduler scheduler, int threadPoolSize) { super(model, name, showInTrace); this.owner = owner; diff --git a/src/main/java/cambio/simulator/resources/cpu/ComputationBurstCompletedEvent.java b/src/main/java/cambio/simulator/resources/cpu/ComputationBurstCompletedEvent.java index 25e33ccd..5d2409df 100644 --- a/src/main/java/cambio/simulator/resources/cpu/ComputationBurstCompletedEvent.java +++ b/src/main/java/cambio/simulator/resources/cpu/ComputationBurstCompletedEvent.java @@ -2,6 +2,7 @@ import cambio.simulator.entities.NamedExternalEvent; import cambio.simulator.entities.networking.Request; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Model; @@ -29,7 +30,7 @@ public class ComputationBurstCompletedEvent extends NamedExternalEvent { * @param owner {@link CPU} that is handling the calculation * @param completedDemand demand that was completed by the computation burst. */ - public ComputationBurstCompletedEvent(Model model, String name, boolean showInTrace, CPUProcess endingProcess, + public ComputationBurstCompletedEvent(MiSimModel model, String name, boolean showInTrace, CPUProcess endingProcess, CPU owner, int completedDemand) { super(model, name, showInTrace); this.endingProcess = endingProcess; diff --git a/src/main/java/cambio/simulator/resources/cpu/ComputationCompletedEvent.java b/src/main/java/cambio/simulator/resources/cpu/ComputationCompletedEvent.java index 9ca60794..1b38ea95 100644 --- a/src/main/java/cambio/simulator/resources/cpu/ComputationCompletedEvent.java +++ b/src/main/java/cambio/simulator/resources/cpu/ComputationCompletedEvent.java @@ -1,6 +1,7 @@ package cambio.simulator.resources.cpu; import cambio.simulator.entities.networking.Request; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; import desmoj.core.simulator.Model; @@ -18,7 +19,7 @@ */ public class ComputationCompletedEvent extends Event { - public ComputationCompletedEvent(Model model, String name, boolean showInTrace) { + public ComputationCompletedEvent(MiSimModel model, String name, boolean showInTrace) { super(model, name, showInTrace); } diff --git a/src/test/java/cambio/simulator/test/RandomTieredModel.java b/src/test/java/cambio/simulator/test/RandomTieredModel.java index 3b6b2bf6..fd8369d5 100644 --- a/src/test/java/cambio/simulator/test/RandomTieredModel.java +++ b/src/test/java/cambio/simulator/test/RandomTieredModel.java @@ -21,6 +21,7 @@ import cambio.simulator.entities.microservice.Microservice; import cambio.simulator.entities.microservice.Operation; import cambio.simulator.entities.networking.DependencyDescription; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Model; import org.junit.jupiter.api.Assertions; @@ -145,7 +146,7 @@ public void setGenerator_interval(double generator_interval) { this.generator_interval = generator_interval; } - private void createGenerators(int generator_count, double interval, Model model) { + private void createGenerators(int generator_count, double interval, MiSimModel model) { List tier1Operations = new ArrayList<>(); tiers.get(1).forEach(microservice -> tier1Operations.addAll(Arrays.asList(microservice.getOperations()))); diff --git a/src/test/java/cambio/simulator/test/TestModel.java b/src/test/java/cambio/simulator/test/TestModel.java index 52143cdd..63919846 100644 --- a/src/test/java/cambio/simulator/test/TestModel.java +++ b/src/test/java/cambio/simulator/test/TestModel.java @@ -1,5 +1,6 @@ package cambio.simulator.test; +import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Model; /** @@ -10,7 +11,7 @@ public class TestModel extends Model { private final Runnable init; - public TestModel(Model model, String s, boolean b, boolean b1, Runnable initialSchedule, Runnable init) { + public TestModel(MiSimModel model, String s, boolean b, boolean b1, Runnable initialSchedule, Runnable init) { super(model, s, b, b1); this.initialSchedule = initialSchedule; this.init = init; diff --git a/src/test/java/cambio/simulator/test/TestUtils.java b/src/test/java/cambio/simulator/test/TestUtils.java index fc5e99d9..4c4a0be5 100644 --- a/src/test/java/cambio/simulator/test/TestUtils.java +++ b/src/test/java/cambio/simulator/test/TestUtils.java @@ -150,21 +150,21 @@ public static Experiment getExampleExperiment(final Model currentModel, final do return currentExperiment; } - // public static InstanceOwnedPatternConfiguration getRetryPatternMock(Model model) { + // public static InstanceOwnedPatternConfiguration getRetryPatternMock(MiSimModel model) { // InstanceOwnedPatternConfiguration data = mock(InstanceOwnedPatternConfiguration.class); // Mockito.when(data.getPatternInstance(any(MicroserviceInstance.class))) // .thenAnswer(invocationOnMock -> new Retry(model, "Retry", true)); // return data; // } // - // public static InstanceOwnedPatternConfiguration getCircuitBreaker(Model model) { + // public static InstanceOwnedPatternConfiguration getCircuitBreaker(MiSimModel model) { // InstanceOwnedPatternConfiguration data = mock(InstanceOwnedPatternConfiguration.class); // Mockito.when(data.getPatternInstance(any(MicroserviceInstance.class))) // .thenAnswer(invocationOnMock -> new CircuitBreaker(model, "CircuitBreaker", true)); // return data; // } // - // public static ServiceOwnedPattern getAutoscaler(Model model) { + // public static ServiceOwnedPattern getAutoscaler(MiSimModel model) { // InstanceOwnedPatternConfiguration data = mock(InstanceOwnedPatternConfiguration.class); // Mockito.when(data.getPatternInstance(any(Microservice.class))) // .thenAnswer(invocationOnMock -> new BasicAutoscalingStrategyProxy(model, "AutoScaler", true)); From cb0c54a4fca20781038a7263556cb8840e56e47d Mon Sep 17 00:00:00 2001 From: LWagner Date: Fri, 8 Apr 2022 07:59:51 +0200 Subject: [PATCH 2/3] prepared architecture generator --- .../testutils/ArchitectureGenerator.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/test/java/cambio/simulator/testutils/ArchitectureGenerator.java diff --git a/src/test/java/cambio/simulator/testutils/ArchitectureGenerator.java b/src/test/java/cambio/simulator/testutils/ArchitectureGenerator.java new file mode 100644 index 00000000..e6f9c7f3 --- /dev/null +++ b/src/test/java/cambio/simulator/testutils/ArchitectureGenerator.java @@ -0,0 +1,34 @@ +package cambio.simulator.testutils; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.Function; + +import com.google.gson.Gson; + +/** + * @author Lion Wagner + */ +public final class ArchitectureGenerator { + + public static String createArchitecture(String networkDelay, final int layerCount, final int maxLayerWidth) { + Map archMap = new HashMap<>(); + archMap.put("networkDelay", networkDelay); + + Map layerMap = new HashMap<>(); + + //create a parabolic function that will generate a diamond shaped architecture with max height of + // maxLayerWidth and a width of layerCount + Function distributionFunction = (x) -> (int) Math.max(1, + -4.0 * maxLayerWidth / (layerCount * layerCount) * x * x + 4.0 * maxLayerWidth / layerCount * x); + + for (int i = 1; i < layerCount; i++) { + int currentLayerWidth = distributionFunction.apply(i); + layerMap.put(i, currentLayerWidth); + } + + + return new Gson().toJson(archMap); + } + +} From 51755c180ac955292c50778af7853ad355792654 Mon Sep 17 00:00:00 2001 From: LWagner Date: Sun, 8 May 2022 23:48:30 +0200 Subject: [PATCH 3/3] Further removed traces of normal Model from code --- src/main/java/cambio/simulator/entities/NamedEntity.java | 5 +---- .../java/cambio/simulator/entities/NamedExternalEvent.java | 5 +---- src/main/java/cambio/simulator/entities/NamedSimProcess.java | 4 +--- .../entities/generator/LoadGeneratorDescriptionExecutor.java | 2 +- .../simulator/entities/microservice/InstanceKillEvent.java | 1 - .../entities/microservice/InstanceShutdownEndEvent.java | 1 - .../entities/microservice/InstanceShutdownStartEvent.java | 1 - .../entities/microservice/InstanceStartupEvent.java | 1 - .../cambio/simulator/entities/microservice/Microservice.java | 1 - .../entities/microservice/MicroserviceScaleEvent.java | 1 - .../cambio/simulator/entities/microservice/Operation.java | 1 - .../simulator/entities/networking/InternalRequest.java | 1 - .../entities/networking/NetworkRequestCanceledEvent.java | 1 - .../simulator/entities/networking/NetworkRequestEvent.java | 1 - .../entities/networking/NetworkRequestReceiveEvent.java | 1 - .../entities/networking/NetworkRequestSendEvent.java | 3 +-- .../entities/networking/NetworkRequestTimeoutEvent.java | 3 ++- .../java/cambio/simulator/entities/networking/Request.java | 3 +-- .../cambio/simulator/entities/networking/RequestSender.java | 3 ++- .../entities/networking/ServiceDependencyInstance.java | 1 - .../cambio/simulator/entities/networking/UserRequest.java | 1 - .../patterns/BasicPeriodicAutoscalingStrategyProxy.java | 1 - .../cambio/simulator/entities/patterns/CircuitBreaker.java | 3 +-- .../simulator/entities/patterns/HalfOpenBreakerEvent.java | 1 - .../simulator/entities/patterns/IPatternLifeCycleHooks.java | 4 ++-- .../simulator/entities/patterns/InstanceOwnedPattern.java | 1 - .../patterns/JitteringExponentialBackoffRetryStrategy.java | 5 ++--- .../patterns/JitteringLinearBackoffRetryStrategy.java | 5 ++--- .../cambio/simulator/entities/patterns/LoadBalancer.java | 1 - .../entities/patterns/PeriodicServiceOwnedPattern.java | 3 +-- .../entities/patterns/RandomLoadBalanceStrategy.java | 5 ++--- .../simulator/entities/patterns/ServiceOwnedPattern.java | 1 - .../entities/patterns/StrategicInstanceOwnedPattern.java | 1 - .../patterns/StrategicPeriodicServiceOwnedPattern.java | 2 +- .../entities/patterns/StrategicServiceOwnedPattern.java | 1 - .../entities/patterns/UtilizationBalanceStrategy.java | 5 ++--- src/main/java/cambio/simulator/events/ChaosMonkeyEvent.java | 1 - src/main/java/cambio/simulator/events/DelayInjection.java | 3 ++- src/main/java/cambio/simulator/events/ExperimentAction.java | 1 - .../simulator/events/SelfScheduledExperimentAction.java | 1 - .../java/cambio/simulator/events/SummonerMonkeyEvent.java | 1 - src/main/java/cambio/simulator/parsing/EntityCreator.java | 1 - .../cambio/simulator/parsing/PatternConfigurationParser.java | 1 - .../parsing/adapter/experiment/ExperimentModelAdapter.java | 1 - src/main/java/cambio/simulator/resources/cpu/CPU.java | 1 - .../resources/cpu/ComputationBurstCompletedEvent.java | 1 - .../simulator/resources/cpu/ComputationCompletedEvent.java | 1 - 47 files changed, 25 insertions(+), 68 deletions(-) diff --git a/src/main/java/cambio/simulator/entities/NamedEntity.java b/src/main/java/cambio/simulator/entities/NamedEntity.java index 7d5be3d8..c7993ead 100644 --- a/src/main/java/cambio/simulator/entities/NamedEntity.java +++ b/src/main/java/cambio/simulator/entities/NamedEntity.java @@ -2,7 +2,6 @@ import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Entity; -import desmoj.core.simulator.Model; /** * Class that adds further options for the retrieving of names of {@link Entity}s. Specifically, it provides a plain @@ -22,11 +21,11 @@ */ public abstract class NamedEntity extends Entity { + private final MiSimModel model; private String plainName; private String quotedName; private String quotedPlainName; - /** * Constructor for a named entity. * @@ -77,8 +76,6 @@ public String getQuotedName() { return this.quotedName; } - private final MiSimModel model; - @Override public MiSimModel getModel() { return this.model; diff --git a/src/main/java/cambio/simulator/entities/NamedExternalEvent.java b/src/main/java/cambio/simulator/entities/NamedExternalEvent.java index bb728330..7573b7cb 100644 --- a/src/main/java/cambio/simulator/entities/NamedExternalEvent.java +++ b/src/main/java/cambio/simulator/entities/NamedExternalEvent.java @@ -2,7 +2,6 @@ import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.ExternalEvent; -import desmoj.core.simulator.Model; /** * Class that adds further options for the retrieving of names of {@link ExternalEvent}s. Specifically, it provides a @@ -22,6 +21,7 @@ */ public abstract class NamedExternalEvent extends ExternalEvent { + private final MiSimModel model; private String plainName; private String quotedName; private String quotedPlainName; @@ -76,9 +76,6 @@ public String getQuotedName() { return this.quotedName; } - - private final MiSimModel model; - @Override public MiSimModel getModel() { return this.model; diff --git a/src/main/java/cambio/simulator/entities/NamedSimProcess.java b/src/main/java/cambio/simulator/entities/NamedSimProcess.java index 5b607a7d..72431380 100644 --- a/src/main/java/cambio/simulator/entities/NamedSimProcess.java +++ b/src/main/java/cambio/simulator/entities/NamedSimProcess.java @@ -21,6 +21,7 @@ */ public abstract class NamedSimProcess extends SimProcess { + private final MiSimModel model; private String plainName; private String quotedName; private String quotedPlainName; @@ -87,9 +88,6 @@ public String getQuotedName() { return this.quotedName; } - - private final MiSimModel model; - @Override public MiSimModel getModel() { return this.model; diff --git a/src/main/java/cambio/simulator/entities/generator/LoadGeneratorDescriptionExecutor.java b/src/main/java/cambio/simulator/entities/generator/LoadGeneratorDescriptionExecutor.java index 11af4caa..cd53214b 100644 --- a/src/main/java/cambio/simulator/entities/generator/LoadGeneratorDescriptionExecutor.java +++ b/src/main/java/cambio/simulator/entities/generator/LoadGeneratorDescriptionExecutor.java @@ -28,7 +28,7 @@ */ public final class LoadGeneratorDescriptionExecutor extends RequestSender implements IRequestUpdateListener, ISelfScheduled, IPatternLifeCycleHooks { - private final Model model; + private final MiSimModel model; /** * Target Operation. diff --git a/src/main/java/cambio/simulator/entities/microservice/InstanceKillEvent.java b/src/main/java/cambio/simulator/entities/microservice/InstanceKillEvent.java index c6d848a0..2e09168f 100644 --- a/src/main/java/cambio/simulator/entities/microservice/InstanceKillEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/InstanceKillEvent.java @@ -4,7 +4,6 @@ import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; -import desmoj.core.simulator.Model; /** * For now this is an unused event that represents the killing of an instance. diff --git a/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownEndEvent.java b/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownEndEvent.java index 19f1047b..43bb8c62 100644 --- a/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownEndEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownEndEvent.java @@ -3,7 +3,6 @@ import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; -import desmoj.core.simulator.Model; /** * Represents the end of the shutdown process of an instance. diff --git a/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownStartEvent.java b/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownStartEvent.java index 9d444cd5..300ca4b6 100644 --- a/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownStartEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/InstanceShutdownStartEvent.java @@ -4,7 +4,6 @@ import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; -import desmoj.core.simulator.Model; /** * Triggers the instance to stats its shutdown process. diff --git a/src/main/java/cambio/simulator/entities/microservice/InstanceStartupEvent.java b/src/main/java/cambio/simulator/entities/microservice/InstanceStartupEvent.java index f158d5a2..df8e997a 100644 --- a/src/main/java/cambio/simulator/entities/microservice/InstanceStartupEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/InstanceStartupEvent.java @@ -4,7 +4,6 @@ import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; -import desmoj.core.simulator.Model; /** * Triggers the startup procedure for a {@code MicroserviceInstance}. diff --git a/src/main/java/cambio/simulator/entities/microservice/Microservice.java b/src/main/java/cambio/simulator/entities/microservice/Microservice.java index 1a876e63..47a1b52a 100644 --- a/src/main/java/cambio/simulator/entities/microservice/Microservice.java +++ b/src/main/java/cambio/simulator/entities/microservice/Microservice.java @@ -14,7 +14,6 @@ import com.google.gson.annotations.SerializedName; import desmoj.core.dist.NumericalDist; import desmoj.core.simulator.Event; -import desmoj.core.simulator.Model; /** * A Microservice is one of the core Entities of the simulation. It represents the meta layer of a microservice that is diff --git a/src/main/java/cambio/simulator/entities/microservice/MicroserviceScaleEvent.java b/src/main/java/cambio/simulator/entities/microservice/MicroserviceScaleEvent.java index 5e74cdaa..5e5831fd 100644 --- a/src/main/java/cambio/simulator/entities/microservice/MicroserviceScaleEvent.java +++ b/src/main/java/cambio/simulator/entities/microservice/MicroserviceScaleEvent.java @@ -3,7 +3,6 @@ import cambio.simulator.entities.NamedExternalEvent; import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.Model; /** * For now this is an unused event to represent the scaling of a microservice. diff --git a/src/main/java/cambio/simulator/entities/microservice/Operation.java b/src/main/java/cambio/simulator/entities/microservice/Operation.java index 9bf08102..677c09f9 100644 --- a/src/main/java/cambio/simulator/entities/microservice/Operation.java +++ b/src/main/java/cambio/simulator/entities/microservice/Operation.java @@ -8,7 +8,6 @@ import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import desmoj.core.dist.NumericalDist; -import desmoj.core.simulator.Model; /** * An {@code Operation} represents an endpoint of a service. It has a specific computational demand and may have diff --git a/src/main/java/cambio/simulator/entities/networking/InternalRequest.java b/src/main/java/cambio/simulator/entities/networking/InternalRequest.java index d5bc28f2..b4ed1b1d 100644 --- a/src/main/java/cambio/simulator/entities/networking/InternalRequest.java +++ b/src/main/java/cambio/simulator/entities/networking/InternalRequest.java @@ -2,7 +2,6 @@ import cambio.simulator.entities.microservice.MicroserviceInstance; import cambio.simulator.models.MiSimModel; -import desmoj.core.simulator.Model; /** * Represents a {@code Request} between two {@code MicroserviceInstance}s. Hold information about the {@code diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestCanceledEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestCanceledEvent.java index d15e2f3d..ec00d81f 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestCanceledEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestCanceledEvent.java @@ -3,7 +3,6 @@ import cambio.simulator.misc.Priority; import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.Model; /** * Event that should be scheduled when a request gets canceled. diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestEvent.java index 0d3aac73..3191af81 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestEvent.java @@ -5,7 +5,6 @@ import cambio.simulator.entities.NamedExternalEvent; import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeInstant; /** diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestReceiveEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestReceiveEvent.java index 33fa7042..a0e4cea5 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestReceiveEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestReceiveEvent.java @@ -3,7 +3,6 @@ import cambio.simulator.entities.microservice.MicroserviceInstance; import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.Model; /** * Event that represents the successful arrival of a request at its target instance. diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestSendEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestSendEvent.java index cde3648a..34908a6c 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestSendEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestSendEvent.java @@ -3,13 +3,12 @@ import java.util.concurrent.atomic.AtomicLong; import cambio.simulator.entities.microservice.*; -import cambio.simulator.models.MiSimModel; import cambio.simulator.export.ReportCollector; import cambio.simulator.misc.RNGStorage; +import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.dist.ContDistNormal; import desmoj.core.dist.NumericalDist; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeSpan; /** diff --git a/src/main/java/cambio/simulator/entities/networking/NetworkRequestTimeoutEvent.java b/src/main/java/cambio/simulator/entities/networking/NetworkRequestTimeoutEvent.java index 201a6029..c0d503d9 100644 --- a/src/main/java/cambio/simulator/entities/networking/NetworkRequestTimeoutEvent.java +++ b/src/main/java/cambio/simulator/entities/networking/NetworkRequestTimeoutEvent.java @@ -5,7 +5,8 @@ import cambio.simulator.misc.Priority; import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.*; +import desmoj.core.simulator.TimeInstant; +import desmoj.core.simulator.TimeSpan; /** * Event that represents the timeout of a {@link Request}. Is automatically scheduled with each send and canceled diff --git a/src/main/java/cambio/simulator/entities/networking/Request.java b/src/main/java/cambio/simulator/entities/networking/Request.java index 5f572522..15084632 100644 --- a/src/main/java/cambio/simulator/entities/networking/Request.java +++ b/src/main/java/cambio/simulator/entities/networking/Request.java @@ -7,7 +7,6 @@ import cambio.simulator.entities.microservice.Operation; import cambio.simulator.misc.RNGStorage; import cambio.simulator.models.MiSimModel; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeInstant; import org.apache.commons.math3.util.Precision; @@ -43,7 +42,7 @@ protected Request(MiSimModel model, String name, boolean showInTrace, Request pa this.requester = requester; this.parent = parent; this.prob = RNGStorage.get(this.getClass().getName(), - () -> new Random(((MiSimModel) getModel()).getExperimentMetaData().getSeed())); + () -> new Random(getModel().getExperimentMetaData().getSeed())); createDependencies(); if (dependencies.isEmpty()) { //TODO: clean up this mess (this call is made to neatly trigger onDependenciesComplete) diff --git a/src/main/java/cambio/simulator/entities/networking/RequestSender.java b/src/main/java/cambio/simulator/entities/networking/RequestSender.java index 48ae1c38..e59246cb 100644 --- a/src/main/java/cambio/simulator/entities/networking/RequestSender.java +++ b/src/main/java/cambio/simulator/entities/networking/RequestSender.java @@ -7,7 +7,8 @@ import cambio.simulator.entities.microservice.Microservice; import cambio.simulator.entities.microservice.MicroserviceInstance; import cambio.simulator.models.MiSimModel; -import desmoj.core.simulator.*; +import desmoj.core.simulator.TimeInstant; +import desmoj.core.simulator.TimeSpan; /** * Class that provides the ability to send requests and register listeners to this requests. diff --git a/src/main/java/cambio/simulator/entities/networking/ServiceDependencyInstance.java b/src/main/java/cambio/simulator/entities/networking/ServiceDependencyInstance.java index 732375ad..75ee14f4 100644 --- a/src/main/java/cambio/simulator/entities/networking/ServiceDependencyInstance.java +++ b/src/main/java/cambio/simulator/entities/networking/ServiceDependencyInstance.java @@ -3,7 +3,6 @@ import cambio.simulator.entities.NamedEntity; import cambio.simulator.entities.microservice.*; import cambio.simulator.models.MiSimModel; -import desmoj.core.simulator.Model; /** * This is an instance of a {@link DependencyDescription}. It describes an actual existing dependency of a {@code diff --git a/src/main/java/cambio/simulator/entities/networking/UserRequest.java b/src/main/java/cambio/simulator/entities/networking/UserRequest.java index cb87653e..b192e3c7 100644 --- a/src/main/java/cambio/simulator/entities/networking/UserRequest.java +++ b/src/main/java/cambio/simulator/entities/networking/UserRequest.java @@ -4,7 +4,6 @@ import cambio.simulator.entities.microservice.Operation; import cambio.simulator.export.ReportCollector; import cambio.simulator.models.MiSimModel; -import desmoj.core.simulator.Model; /** * A {@code Request} that represents a request that is created by a user from outside the simulated system. diff --git a/src/main/java/cambio/simulator/entities/patterns/BasicPeriodicAutoscalingStrategyProxy.java b/src/main/java/cambio/simulator/entities/patterns/BasicPeriodicAutoscalingStrategyProxy.java index 80b28f2a..2ba295d0 100644 --- a/src/main/java/cambio/simulator/entities/patterns/BasicPeriodicAutoscalingStrategyProxy.java +++ b/src/main/java/cambio/simulator/entities/patterns/BasicPeriodicAutoscalingStrategyProxy.java @@ -2,7 +2,6 @@ import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; -import desmoj.core.simulator.Model; /** * An examplary implementation of a {@link StrategicPeriodicServiceOwnedPattern} with a potentially varying {@link diff --git a/src/main/java/cambio/simulator/entities/patterns/CircuitBreaker.java b/src/main/java/cambio/simulator/entities/patterns/CircuitBreaker.java index 585f9da1..0edf80bc 100644 --- a/src/main/java/cambio/simulator/entities/patterns/CircuitBreaker.java +++ b/src/main/java/cambio/simulator/entities/patterns/CircuitBreaker.java @@ -11,7 +11,6 @@ import cambio.simulator.parsing.JsonTypeName; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeInstant; /** @@ -157,7 +156,7 @@ private void collectData(TimeInstant when) { } @Override - public void onInitializedCompleted(Model model) { + public void onInitializedCompleted(MiSimModel model) { super.onInitializedCompleted(model); if (errorThresholdPercentage != Double.POSITIVE_INFINITY && errorThresholdPercentage > 1) { diff --git a/src/main/java/cambio/simulator/entities/patterns/HalfOpenBreakerEvent.java b/src/main/java/cambio/simulator/entities/patterns/HalfOpenBreakerEvent.java index 5f37a0ba..d9fcf153 100644 --- a/src/main/java/cambio/simulator/entities/patterns/HalfOpenBreakerEvent.java +++ b/src/main/java/cambio/simulator/entities/patterns/HalfOpenBreakerEvent.java @@ -4,7 +4,6 @@ import cambio.simulator.misc.Priority; import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.Model; /** * Event that represents the half-closing of a circuit breaker. diff --git a/src/main/java/cambio/simulator/entities/patterns/IPatternLifeCycleHooks.java b/src/main/java/cambio/simulator/entities/patterns/IPatternLifeCycleHooks.java index 1463da26..a79ab62b 100644 --- a/src/main/java/cambio/simulator/entities/patterns/IPatternLifeCycleHooks.java +++ b/src/main/java/cambio/simulator/entities/patterns/IPatternLifeCycleHooks.java @@ -1,6 +1,6 @@ package cambio.simulator.entities.patterns; -import desmoj.core.simulator.Model; +import cambio.simulator.models.MiSimModel; /** * Represents all pattern lifecycle hooks. @@ -12,7 +12,7 @@ public interface IPatternLifeCycleHooks { /** * Will be called after completion of the initialization right after the config was injected. */ - default void onInitializedCompleted(Model model) { + default void onInitializedCompleted(MiSimModel model) { } /** diff --git a/src/main/java/cambio/simulator/entities/patterns/InstanceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/InstanceOwnedPattern.java index 11849a3a..46b8f59b 100644 --- a/src/main/java/cambio/simulator/entities/patterns/InstanceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/InstanceOwnedPattern.java @@ -5,7 +5,6 @@ import cambio.simulator.entities.microservice.MicroserviceInstance; import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; -import desmoj.core.simulator.Model; /** * Represents a resilience pattern that is owned by a {@link MicroserviceInstance}. diff --git a/src/main/java/cambio/simulator/entities/patterns/JitteringExponentialBackoffRetryStrategy.java b/src/main/java/cambio/simulator/entities/patterns/JitteringExponentialBackoffRetryStrategy.java index ed516f6e..0fc99808 100644 --- a/src/main/java/cambio/simulator/entities/patterns/JitteringExponentialBackoffRetryStrategy.java +++ b/src/main/java/cambio/simulator/entities/patterns/JitteringExponentialBackoffRetryStrategy.java @@ -4,7 +4,6 @@ import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; -import desmoj.core.simulator.Model; /** * Represents a jittering exponential retry backoff strategy. Generates doubles based on the formula {@code @@ -26,8 +25,8 @@ public double getNextDelay(int tries) { } @Override - public void onInitializedCompleted(Model model) { + public void onInitializedCompleted(MiSimModel model) { super.onInitializedCompleted(model); - rng = new Random(((MiSimModel) model).getExperimentMetaData().getSeed()); + rng = new Random(model.getExperimentMetaData().getSeed()); } } diff --git a/src/main/java/cambio/simulator/entities/patterns/JitteringLinearBackoffRetryStrategy.java b/src/main/java/cambio/simulator/entities/patterns/JitteringLinearBackoffRetryStrategy.java index 6db5a8f7..e4e471db 100644 --- a/src/main/java/cambio/simulator/entities/patterns/JitteringLinearBackoffRetryStrategy.java +++ b/src/main/java/cambio/simulator/entities/patterns/JitteringLinearBackoffRetryStrategy.java @@ -4,7 +4,6 @@ import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; -import desmoj.core.simulator.Model; /** * Represents a jittering linear retry backoff strategy. Generates doubles based on the formula {@code random(0, @@ -26,8 +25,8 @@ public double getNextDelay(int tries) { @Override - public void onInitializedCompleted(Model model) { + public void onInitializedCompleted(MiSimModel model) { super.onInitializedCompleted(model); - rng = new Random(((MiSimModel) model).getExperimentMetaData().getSeed()); + rng = new Random(model.getExperimentMetaData().getSeed()); } } diff --git a/src/main/java/cambio/simulator/entities/patterns/LoadBalancer.java b/src/main/java/cambio/simulator/entities/patterns/LoadBalancer.java index 2833ee27..3a9a7147 100644 --- a/src/main/java/cambio/simulator/entities/patterns/LoadBalancer.java +++ b/src/main/java/cambio/simulator/entities/patterns/LoadBalancer.java @@ -6,7 +6,6 @@ import cambio.simulator.entities.microservice.*; import cambio.simulator.models.MiSimModel; import desmoj.core.simulator.Entity; -import desmoj.core.simulator.Model; /** * Wrapper Class for {@link ILoadBalancingStrategy} to encapsulate common behavior around it. E.g. capture last chosen diff --git a/src/main/java/cambio/simulator/entities/patterns/PeriodicServiceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/PeriodicServiceOwnedPattern.java index 75f14849..ab449994 100644 --- a/src/main/java/cambio/simulator/entities/patterns/PeriodicServiceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/PeriodicServiceOwnedPattern.java @@ -3,7 +3,6 @@ import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeInstant; /** @@ -28,7 +27,7 @@ public PeriodicServiceOwnedPattern(MiSimModel model, String name, boolean showIn } @Override - public void onInitializedCompleted(Model model) { + public void onInitializedCompleted(MiSimModel model) { scheduler = new PeriodicPatternScheduler(getModel(), this, start, stop, period); scheduler.activate(new TimeInstant(start)); } diff --git a/src/main/java/cambio/simulator/entities/patterns/RandomLoadBalanceStrategy.java b/src/main/java/cambio/simulator/entities/patterns/RandomLoadBalanceStrategy.java index 1b6a07e5..f23e9d8e 100644 --- a/src/main/java/cambio/simulator/entities/patterns/RandomLoadBalanceStrategy.java +++ b/src/main/java/cambio/simulator/entities/patterns/RandomLoadBalanceStrategy.java @@ -6,7 +6,6 @@ import cambio.simulator.entities.microservice.NoInstanceAvailableException; import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; -import desmoj.core.simulator.Model; @JsonTypeName("random") final class RandomLoadBalanceStrategy implements ILoadBalancingStrategy { @@ -45,9 +44,9 @@ public MicroserviceInstance getNextInstance(Collection run } @Override - public void onInitializedCompleted(Model model) { + public void onInitializedCompleted(MiSimModel model) { try { - rng = new Random(((MiSimModel) model).getExperimentMetaData().getSeed()); + rng = new Random(model.getExperimentMetaData().getSeed()); } catch (ClassCastException e) { rng = new Random(); } diff --git a/src/main/java/cambio/simulator/entities/patterns/ServiceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/ServiceOwnedPattern.java index 15c24a71..6e478e58 100644 --- a/src/main/java/cambio/simulator/entities/patterns/ServiceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/ServiceOwnedPattern.java @@ -3,7 +3,6 @@ import cambio.simulator.entities.NamedEntity; import cambio.simulator.entities.microservice.Microservice; import cambio.simulator.models.MiSimModel; -import desmoj.core.simulator.Model; /** * Resilience Pattern that is owned by a {@link Microservice}. These patterns should represent mechanics that live on a diff --git a/src/main/java/cambio/simulator/entities/patterns/StrategicInstanceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/StrategicInstanceOwnedPattern.java index 842cbe00..e716d896 100644 --- a/src/main/java/cambio/simulator/entities/patterns/StrategicInstanceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/StrategicInstanceOwnedPattern.java @@ -2,7 +2,6 @@ import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; -import desmoj.core.simulator.Model; /** * Represents a {@link ServiceOwnedPattern} that wants to be injected with an {@link IStrategy} object. diff --git a/src/main/java/cambio/simulator/entities/patterns/StrategicPeriodicServiceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/StrategicPeriodicServiceOwnedPattern.java index 9e3ae941..c0a77fe3 100644 --- a/src/main/java/cambio/simulator/entities/patterns/StrategicPeriodicServiceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/StrategicPeriodicServiceOwnedPattern.java @@ -30,7 +30,7 @@ public StrategicPeriodicServiceOwnedPattern(MiSimModel model, String name, boole } @Override - public void onInitializedCompleted(Model model) { + public void onInitializedCompleted(MiSimModel model) { scheduler = new PeriodicPatternScheduler(getModel(), this, start, stop, period); scheduler.activate(new TimeInstant(start)); } diff --git a/src/main/java/cambio/simulator/entities/patterns/StrategicServiceOwnedPattern.java b/src/main/java/cambio/simulator/entities/patterns/StrategicServiceOwnedPattern.java index b5415a45..d7cbdc2e 100644 --- a/src/main/java/cambio/simulator/entities/patterns/StrategicServiceOwnedPattern.java +++ b/src/main/java/cambio/simulator/entities/patterns/StrategicServiceOwnedPattern.java @@ -2,7 +2,6 @@ import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; -import desmoj.core.simulator.Model; /** * Represents a pattern owned by a {@link cambio.simulator.entities.microservice.Microservice} that employs a {@link diff --git a/src/main/java/cambio/simulator/entities/patterns/UtilizationBalanceStrategy.java b/src/main/java/cambio/simulator/entities/patterns/UtilizationBalanceStrategy.java index cf57ff71..5457909a 100644 --- a/src/main/java/cambio/simulator/entities/patterns/UtilizationBalanceStrategy.java +++ b/src/main/java/cambio/simulator/entities/patterns/UtilizationBalanceStrategy.java @@ -7,7 +7,6 @@ import cambio.simulator.entities.microservice.NoInstanceAvailableException; import cambio.simulator.models.MiSimModel; import cambio.simulator.parsing.JsonTypeName; -import desmoj.core.simulator.Model; /** * Strategy that chooses the least utilized Microservice Instance by current relative Queue demand. @@ -40,7 +39,7 @@ public MicroserviceInstance getNextInstance(Collection run } @Override - public void onInitializedCompleted(Model model) { - rng = new Random(((MiSimModel) model).getExperimentMetaData().getSeed()); + public void onInitializedCompleted(MiSimModel model) { + rng = new Random(model.getExperimentMetaData().getSeed()); } } diff --git a/src/main/java/cambio/simulator/events/ChaosMonkeyEvent.java b/src/main/java/cambio/simulator/events/ChaosMonkeyEvent.java index 9908e509..087f7746 100644 --- a/src/main/java/cambio/simulator/events/ChaosMonkeyEvent.java +++ b/src/main/java/cambio/simulator/events/ChaosMonkeyEvent.java @@ -7,7 +7,6 @@ import co.paralleluniverse.fibers.SuspendExecution; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; -import desmoj.core.simulator.Model; /** * A ChaosMonkeyEvent is an ExternalEvent that gets scheduled at the beginning of the diff --git a/src/main/java/cambio/simulator/events/DelayInjection.java b/src/main/java/cambio/simulator/events/DelayInjection.java index 8f0ed90e..03ba1d51 100644 --- a/src/main/java/cambio/simulator/events/DelayInjection.java +++ b/src/main/java/cambio/simulator/events/DelayInjection.java @@ -11,7 +11,8 @@ import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import desmoj.core.dist.ContDistNormal; -import desmoj.core.simulator.*; +import desmoj.core.simulator.ExternalEvent; +import desmoj.core.simulator.TimeSpan; /** * Event that triggers a latency injection. The injection can be applied on different levels:
Either all outgoing diff --git a/src/main/java/cambio/simulator/events/ExperimentAction.java b/src/main/java/cambio/simulator/events/ExperimentAction.java index ad63a985..07e61d19 100644 --- a/src/main/java/cambio/simulator/events/ExperimentAction.java +++ b/src/main/java/cambio/simulator/events/ExperimentAction.java @@ -4,7 +4,6 @@ import cambio.simulator.models.MiSimModel; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; -import desmoj.core.simulator.Model; import org.jetbrains.annotations.Contract; /** diff --git a/src/main/java/cambio/simulator/events/SelfScheduledExperimentAction.java b/src/main/java/cambio/simulator/events/SelfScheduledExperimentAction.java index 982f679b..f0f02883 100644 --- a/src/main/java/cambio/simulator/events/SelfScheduledExperimentAction.java +++ b/src/main/java/cambio/simulator/events/SelfScheduledExperimentAction.java @@ -3,7 +3,6 @@ import java.util.Objects; import cambio.simulator.models.MiSimModel; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeInstant; /** diff --git a/src/main/java/cambio/simulator/events/SummonerMonkeyEvent.java b/src/main/java/cambio/simulator/events/SummonerMonkeyEvent.java index d30123fe..501a3ced 100644 --- a/src/main/java/cambio/simulator/events/SummonerMonkeyEvent.java +++ b/src/main/java/cambio/simulator/events/SummonerMonkeyEvent.java @@ -6,7 +6,6 @@ import cambio.simulator.parsing.JsonTypeName; import co.paralleluniverse.fibers.SuspendExecution; import com.google.gson.annotations.Expose; -import desmoj.core.simulator.Model; /** * A {@code SummonerMonkeyEvent} is an {@code ExternalEvent} that gets scheduled at the begin of the experiment. It diff --git a/src/main/java/cambio/simulator/parsing/EntityCreator.java b/src/main/java/cambio/simulator/parsing/EntityCreator.java index fea2407d..ffb838f4 100644 --- a/src/main/java/cambio/simulator/parsing/EntityCreator.java +++ b/src/main/java/cambio/simulator/parsing/EntityCreator.java @@ -5,7 +5,6 @@ import cambio.simulator.models.MiSimModel; import com.google.gson.InstanceCreator; -import desmoj.core.simulator.Model; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/cambio/simulator/parsing/PatternConfigurationParser.java b/src/main/java/cambio/simulator/parsing/PatternConfigurationParser.java index 0ce6964a..3df87d53 100644 --- a/src/main/java/cambio/simulator/parsing/PatternConfigurationParser.java +++ b/src/main/java/cambio/simulator/parsing/PatternConfigurationParser.java @@ -6,7 +6,6 @@ import cambio.simulator.entities.patterns.*; import cambio.simulator.models.MiSimModel; import com.google.gson.Gson; -import desmoj.core.simulator.Model; import org.jetbrains.annotations.NotNull; /** diff --git a/src/main/java/cambio/simulator/parsing/adapter/experiment/ExperimentModelAdapter.java b/src/main/java/cambio/simulator/parsing/adapter/experiment/ExperimentModelAdapter.java index 1dae77ff..08d2bbfe 100644 --- a/src/main/java/cambio/simulator/parsing/adapter/experiment/ExperimentModelAdapter.java +++ b/src/main/java/cambio/simulator/parsing/adapter/experiment/ExperimentModelAdapter.java @@ -7,7 +7,6 @@ import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.stream.Collectors; import cambio.simulator.entities.generator.LoadGeneratorDescriptionExecutor; import cambio.simulator.events.ExperimentAction; diff --git a/src/main/java/cambio/simulator/resources/cpu/CPU.java b/src/main/java/cambio/simulator/resources/cpu/CPU.java index a3727de0..5254b008 100644 --- a/src/main/java/cambio/simulator/resources/cpu/CPU.java +++ b/src/main/java/cambio/simulator/resources/cpu/CPU.java @@ -9,7 +9,6 @@ import cambio.simulator.resources.cpu.scheduling.CPUProcessScheduler; import cambio.simulator.resources.cpu.scheduling.RoundRobinScheduler; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.Model; import desmoj.core.simulator.TimeSpan; import org.javatuples.Pair; diff --git a/src/main/java/cambio/simulator/resources/cpu/ComputationBurstCompletedEvent.java b/src/main/java/cambio/simulator/resources/cpu/ComputationBurstCompletedEvent.java index 5d2409df..8c6cb583 100644 --- a/src/main/java/cambio/simulator/resources/cpu/ComputationBurstCompletedEvent.java +++ b/src/main/java/cambio/simulator/resources/cpu/ComputationBurstCompletedEvent.java @@ -4,7 +4,6 @@ import cambio.simulator.entities.networking.Request; import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; -import desmoj.core.simulator.Model; /** * Event that represents the completion of a process burst for a specific {@link CPUProcess}. diff --git a/src/main/java/cambio/simulator/resources/cpu/ComputationCompletedEvent.java b/src/main/java/cambio/simulator/resources/cpu/ComputationCompletedEvent.java index 1b38ea95..b2ad2ee3 100644 --- a/src/main/java/cambio/simulator/resources/cpu/ComputationCompletedEvent.java +++ b/src/main/java/cambio/simulator/resources/cpu/ComputationCompletedEvent.java @@ -4,7 +4,6 @@ import cambio.simulator.models.MiSimModel; import co.paralleluniverse.fibers.SuspendExecution; import desmoj.core.simulator.Event; -import desmoj.core.simulator.Model; /** * Marks the end of the last computation burst of a thread.