Skip to content
Snippets Groups Projects
Commit d84cd0c7 authored by Nikolaus Huber's avatar Nikolaus Huber
Browse files

Extracted event stuff

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@11900 9e42b895-fcda-4063-8a3b-11be15eb1bbd
parent 4f2ac2c6
No related branches found
No related tags found
No related merge requests found
......@@ -3,7 +3,7 @@
#perfdatarepo.metamodel=edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository
#perfdatarepo.instance=/Users/nhuber/Documents/workspace/descartes/metamodel/edu.kit.ipd.descartes.adaptation.test/test_models/PerformanceDataRepositoryDummy.xmi
#process.maxiterations=2
## The list of triggering events can be found in AdaptationControl.java
## The list of triggering events can be found in EventTypeEnum.java
#event.type=
#process.name=SEAMS_PushPull-v1
......@@ -11,7 +11,7 @@
#perfdatarepo.metamodel=edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository
#perfdatarepo.instance=/Users/nhuber/Documents/workspace/descartes/metamodel/Examples/SEAMS_Case_Study/simucomresults.perfdatarepo
#process.maxiterations=2
## The list of triggering events can be found in AdaptationControl.java
## The list of triggering events can be found in EventTypeEnum.java
#event.type=SlaViolatedEvent
#process.name=BlueYonderTestAdaptationProcess
......@@ -19,7 +19,7 @@
#perfdatarepo.metamodel=edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository
#perfdatarepo.instance=../Examples/SEAMS_Case_Study/simucom-simulationResults.perfdatarepo
#process.maxiterations=1
### The list of triggering events can be found in AdaptationControl.java
### The list of triggering events can be found in EventTypeEnum.java
#event.type=BottleneckFoundEvent
#process.name=SEAMS_PushPull-v2
......@@ -27,7 +27,7 @@
#perfdatarepo.metamodel=edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository
#perfdatarepo.instance=/Users/nhuber/Documents/workspace/descartes/metamodel/edu.kit.ipd.descartes.adaptation.test/SEAMSv2_Case_Study/simucom-simulationResults.perfdatarepo
#process.maxiterations=2
## The list of triggering events can be found in AdaptationControl.java
## The list of triggering events can be found in EventTypeEnum.java
#event.type=SlaViolatedEvent
process.name=SEAMS_PushPull-v1
......@@ -35,5 +35,5 @@ adaptationprocess.instance=/Users/nhuber/Documents/workspace/descartes/metamodel
perfdatarepo.metamodel=edu.kit.ipd.descartes.ql.models.repository.ObservationRepository
perfdatarepo.instance=/Users/nhuber/Documents/workspace/descartes/metamodel/Examples/SEAMS_Case_Study/pushpull-simresults.pdr
process.maxiterations=2
# The list of triggering events can be found in AdaptationControl.java
# The list of triggering events can be found in EventTypeEnum.java
event.type=SlaViolatedEvent
\ No newline at end of file
......@@ -11,6 +11,7 @@ import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.xmi.DanglingHREFException;
import edu.kit.ipd.descartes.adaptation.evaluation.WeightingFunctionEvaluator;
import edu.kit.ipd.descartes.adaptation.event.EventTypeEnum;
import edu.kit.ipd.descartes.adaptation.model.analysis.IModelAnalyzer;
import edu.kit.ipd.descartes.adaptation.model.analysis.pcm.PcmModelAnalyzer;
import edu.kit.ipd.descartes.adaptation.model.dmm.AdaptationProcessModelLoader;
......@@ -26,32 +27,6 @@ import edu.kit.ipd.descartes.perfdatarepo.Impact;
public class AdaptationControl {
public enum EventType {
SLA_VIOLATION("SlaViolatedEvent", "12345"), SCHEDULED_OPTIMIZATION("ScheduledOptimizationEvent",
"_H_MTgIAnEeKW2vVcg5ekRw"), BOTTLENECK_FOUND("BottleneckFoundEvent", "_VvZEwKEoEeKDl52Xojo4CQ"),
CUSTOMER_WORKLOAD_UPDATE("CustomerWorkloadUpdate","_XvZEwKEoEeKDl52Xojo4KQ");
private final String name;
private final String id;
EventType(String name, String id) {
this.name = name;
this.id = id;
}
public static EventType getEventType(String eventTypeName) {
if (eventTypeName.equals(SLA_VIOLATION.name))
return SLA_VIOLATION;
if (eventTypeName.equals(SCHEDULED_OPTIMIZATION.name))
return SCHEDULED_OPTIMIZATION;
if (eventTypeName.equals(BOTTLENECK_FOUND.name))
return BOTTLENECK_FOUND;
if (eventTypeName.equals(CUSTOMER_WORKLOAD_UPDATE.name))
return CUSTOMER_WORKLOAD_UPDATE;
return null;
}
}
private static final String DEFAULT_PROP_FILE_PATH = "./default.properties";
private static final String PROP_ADAPTATION_PROCESS_XMI_FILE_PATH_NAME = "adaptationprocess.instance";
private static final String PROP_PERF_DATA_REPO_XMI_FILE_PATH_NAME = "perfdatarepo.instance";
......@@ -143,12 +118,14 @@ public class AdaptationControl {
}
public void init(String propertiesFile) {
if (propertiesFile == null || propertiesFile.equals("")) {
logger.warn("No properties file given. Using default properties...");
propertiesFile = DEFAULT_PROP_FILE_PATH;
}
try {
// load properties file
if (propertiesFile == null || propertiesFile.equals(""))
loadProperties(DEFAULT_PROP_FILE_PATH);
else
loadProperties(propertiesFile);
loadProperties(propertiesFile);
// load required models
adaptationProcess = adaptationProcessModelLoader.load(URI.createFileURI(adaptationProcessXmiFilePath));
......@@ -196,7 +173,7 @@ public class AdaptationControl {
// Creates an "artifical event". Will be replaced later when integrated in the system
private Event findTriggeringEvent() {
EventType type = EventType.getEventType(eventType);
EventTypeEnum type = EventTypeEnum.getEventType(eventType);
if (type == null) {
logger.error("Could not create event " + eventType);
......@@ -205,7 +182,7 @@ public class AdaptationControl {
for (Strategy strategy : adaptationProcess.getStrategies()) {
Event event = strategy.getTriggeringEvents();
if (event.getId().equals(type.id)&&event.getName().equals(type.name)){
if (event.getId().equals(type.getId())&&event.getName().equals(type.getName())){
cause = event;
return event;
}
......
package edu.kit.ipd.descartes.adaptation.event;
public enum EventTypeEnum {
SLA_VIOLATION("SlaViolatedEvent", "12345"),
SCHEDULED_OPTIMIZATION("ScheduledOptimizationEvent","_H_MTgIAnEeKW2vVcg5ekRw"),
BOTTLENECK_FOUND("BottleneckFoundEvent", "_VvZEwKEoEeKDl52Xojo4CQ"),
CUSTOMER_WORKLOAD_UPDATE("CustomerWorkloadUpdate", "_XvZEwKEoEeKDl52Xojo4KQ"),
OPTIMIZATION_PERIOD("OptimizationPeriod","_E6I-wMwxEeKRorfNQMmH1Q");
private final String name;
private final String id;
public String getId() {
return id;
}
public String getName() {
return name;
}
EventTypeEnum(String name, String id) {
this.name = name;
this.id = id;
}
public static EventTypeEnum getEventType(String eventTypeName) {
if (eventTypeName.equals(SLA_VIOLATION.name))
return SLA_VIOLATION;
if (eventTypeName.equals(SCHEDULED_OPTIMIZATION.name))
return SCHEDULED_OPTIMIZATION;
if (eventTypeName.equals(BOTTLENECK_FOUND.name))
return BOTTLENECK_FOUND;
if (eventTypeName.equals(CUSTOMER_WORKLOAD_UPDATE.name))
return CUSTOMER_WORKLOAD_UPDATE;
if (eventTypeName.equals(OPTIMIZATION_PERIOD.name))
return OPTIMIZATION_PERIOD;
return null;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment