diff --git a/jdeeco-core-model/.settings/org.eclipse.core.resources.prefs b/jdeeco-core-model/.settings/org.eclipse.core.resources.prefs
index 3de81983d..043444d16 100644
--- a/jdeeco-core-model/.settings/org.eclipse.core.resources.prefs
+++ b/jdeeco-core-model/.settings/org.eclipse.core.resources.prefs
@@ -1,4 +1,6 @@
eclipse.preferences.version=1
+encoding//model-refactoring/AdaptationArchitecture.ecore=UTF-8
+encoding//model-refactoring/AdaptationArchitecture.ecorediag=UTF-8
encoding//model-refactoring/Providers.ecore=UTF-8
encoding//model-refactoring/Providers.ecorediag=UTF-8
encoding//model-refactoring/RuntimeArchitecture.ecore=UTF-8
diff --git a/jdeeco-core-model/META-INF/MANIFEST.MF b/jdeeco-core-model/META-INF/MANIFEST.MF
index ec989bec5..4141ea31a 100644
--- a/jdeeco-core-model/META-INF/MANIFEST.MF
+++ b/jdeeco-core-model/META-INF/MANIFEST.MF
@@ -7,9 +7,6 @@ Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Export-Package: cz.cuni.mff.d3s.jdeeco.core.model.runtimemodel,
- cz.cuni.mff.d3s.jdeeco.core.model.runtimemodel.impl,
- cz.cuni.mff.d3s.jdeeco.core.model.runtimemodel.util
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.emf.ecore;visibility:=reexport
Bundle-ActivationPolicy: lazy
diff --git a/jdeeco-core-model/model-refactoring/AdaptationArchitecture.ecore b/jdeeco-core-model/model-refactoring/AdaptationArchitecture.ecore
new file mode 100644
index 000000000..0bfed864f
--- /dev/null
+++ b/jdeeco-core-model/model-refactoring/AdaptationArchitecture.ecore
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jdeeco-core-model/model-refactoring/AdaptationArchitecture.ecorediag b/jdeeco-core-model/model-refactoring/AdaptationArchitecture.ecorediag
new file mode 100644
index 000000000..4cdcf1c04
--- /dev/null
+++ b/jdeeco-core-model/model-refactoring/AdaptationArchitecture.ecorediag
@@ -0,0 +1,459 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jdeeco-core-model/model-refactoring/RuntimeMetadata.ecorediag b/jdeeco-core-model/model-refactoring/RuntimeMetadata.ecorediag
index eb39dcb7e..16cb4bd41 100644
--- a/jdeeco-core-model/model-refactoring/RuntimeMetadata.ecorediag
+++ b/jdeeco-core-model/model-refactoring/RuntimeMetadata.ecorediag
@@ -22,7 +22,7 @@
-
+
@@ -593,7 +593,7 @@
-
+
@@ -800,10 +800,10 @@
-
+
-
+
diff --git a/jdeeco-core/.classpath b/jdeeco-core/.classpath
index 702b7cda1..798f6d99d 100644
--- a/jdeeco-core/.classpath
+++ b/jdeeco-core/.classpath
@@ -8,7 +8,7 @@
-
+
diff --git a/jdeeco-core/pom.xml b/jdeeco-core/pom.xml
index 8a622531f..e9c54e8f8 100644
--- a/jdeeco-core/pom.xml
+++ b/jdeeco-core/pom.xml
@@ -55,7 +55,7 @@
${coreJar}
${dist}
-
+
uk.com.robust-it
cloning
@@ -126,6 +126,26 @@
+
+ org.ow2.sat4j
+ org.ow2.sat4j.core
+ 2.3.4
+
+
+ org.ow2.sat4j
+ org.ow2.sat4j.pb
+ 2.3.4
+
+
+ org.ow2.sat4j
+ org.ow2.sat4j.maxsat
+ 2.3.4
+
+
+ org.ow2.sat4j
+ org.ow2.sat4j.csp
+ 2.3.4
+
uk.com.robust-it
cloning
diff --git a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/annotations/Membership.java b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/annotations/Condition.java
similarity index 92%
rename from jdeeco-core/src/cz/cuni/mff/d3s/deeco/annotations/Membership.java
rename to jdeeco-core/src/cz/cuni/mff/d3s/deeco/annotations/Condition.java
index 0ca186d88..eb4595228 100644
--- a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/annotations/Membership.java
+++ b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/annotations/Condition.java
@@ -21,7 +21,7 @@
import java.lang.annotation.Target;
/**
- * Membership is used to mark the method in the ensemble definition
+ * Condition is used to mark the method in the ensemble definition
* class as the membership function.
*
* @author Michal Kit
@@ -29,6 +29,6 @@
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
-public @interface Membership {
+public @interface Condition {
double value() default 0.0;
}
diff --git a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/processor/ConditionParser.java b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/processor/ConditionParser.java
new file mode 100644
index 000000000..b33ce39b9
--- /dev/null
+++ b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/processor/ConditionParser.java
@@ -0,0 +1,40 @@
+package cz.cuni.mff.d3s.deeco.processor;
+
+import static cz.cuni.mff.d3s.deeco.processor.AnnotationHelper.getAnnotatedMethods;
+import static cz.cuni.mff.d3s.deeco.processor.ParserHelper.getParameterList;
+
+import java.lang.reflect.Method;
+import java.util.LinkedList;
+import java.util.List;
+
+import cz.cuni.mff.d3s.deeco.annotations.Condition;
+import cz.cuni.mff.d3s.deeco.exceptions.ComponentEnsembleParseException;
+import cz.cuni.mff.d3s.deeco.path.grammar.ParseException;
+import cz.cuni.mff.d3s.deeco.runtime.model.BooleanCondition;
+import cz.cuni.mff.d3s.deeco.runtime.model.Parameter;
+
+public class ConditionParser {
+
+ public static List parseBooleanConditions(Class> c) {
+ assert (c != null);
+ List result = new LinkedList<>();
+ List parameters;
+ for (Method m : getAnnotatedMethods(c, Condition.class)) {
+ if (m == null) {
+ continue;
+ }
+ if (!m.getReturnType().isAssignableFrom(boolean.class)) {
+ continue;
+ }
+ try {
+ parameters = getParameterList(m);
+ } catch (ParseException pe) {
+ continue;
+ } catch (ComponentEnsembleParseException cepe) {
+ continue;
+ }
+ result.add(new BooleanCondition(parameters, m));
+ }
+ return result;
+ }
+}
diff --git a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/processor/EnsembleParser.java b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/processor/EnsembleParser.java
index c6c867525..947700686 100644
--- a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/processor/EnsembleParser.java
+++ b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/processor/EnsembleParser.java
@@ -1,7 +1,8 @@
package cz.cuni.mff.d3s.deeco.processor;
-import static cz.cuni.mff.d3s.deeco.processor.ParserHelper.getParameterList;
import static cz.cuni.mff.d3s.deeco.processor.AnnotationHelper.getAnnotatedMethod;
+import static cz.cuni.mff.d3s.deeco.processor.ConditionParser.parseBooleanConditions;
+import static cz.cuni.mff.d3s.deeco.processor.ParserHelper.getParameterList;
import static cz.cuni.mff.d3s.deeco.processor.ScheduleHelper.getPeriodicSchedule;
import static cz.cuni.mff.d3s.deeco.processor.ScheduleHelper.getTriggeredSchedule;
@@ -9,14 +10,13 @@
import java.util.List;
import cz.cuni.mff.d3s.deeco.annotations.KnowledgeExchange;
-import cz.cuni.mff.d3s.deeco.annotations.Membership;
import cz.cuni.mff.d3s.deeco.annotations.PeriodicScheduling;
import cz.cuni.mff.d3s.deeco.definitions.EnsembleDefinition;
import cz.cuni.mff.d3s.deeco.exceptions.ComponentEnsembleParseException;
import cz.cuni.mff.d3s.deeco.knowledge.KnowledgeManager;
import cz.cuni.mff.d3s.deeco.path.grammar.ParseException;
+import cz.cuni.mff.d3s.deeco.runtime.model.BooleanCondition;
import cz.cuni.mff.d3s.deeco.runtime.model.Ensemble;
-import cz.cuni.mff.d3s.deeco.runtime.model.Condition;
import cz.cuni.mff.d3s.deeco.runtime.model.Exchange;
import cz.cuni.mff.d3s.deeco.runtime.model.Parameter;
import cz.cuni.mff.d3s.deeco.runtime.model.PeriodicSchedule;
@@ -49,25 +49,14 @@ public static Ensemble extractEnsembleProcess(Class> c)
throw new ParseException("The class " + c.getName()
+ " is not an ensemble definition.");
}
- Method m = getAnnotatedMethod(c, Membership.class);
- if (m == null) {
- throw new ParseException("The ensemble " + c.getName()
- + " definition does not define a membership function");
- }
- if (!m.getReturnType().isAssignableFrom(boolean.class)) {
- throw new ParseException(c.getName()
- + ": MembershipMethod function needs to return boolean");
+ List conditions = parseBooleanConditions(c);
+ if (conditions.size() != 1) {
+ throw new ParseException("The class " + c.getName()
+ + " should contain exactly one membership condition.");
}
+ BooleanCondition mc = conditions.get(0);
List parameters;
- try {
- parameters = getParameterList(m);
- } catch (ComponentEnsembleParseException cepe) {
- throw new ParseException(c.getName()
- + ": Parameters for the method " + m.getName()
- + " cannot be parsed.");
- }
- Condition mc = new Condition(parameters, m);
- m = getAnnotatedMethod(c, KnowledgeExchange.class);
+ Method m = getAnnotatedMethod(c, KnowledgeExchange.class);
if (m == null) {
throw new ParseException(
"The ensemble definition does not define a knowledge exchange function");
diff --git a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/Runtime.java b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/Runtime.java
index 8def78426..85350c5b7 100644
--- a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/Runtime.java
+++ b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/Runtime.java
@@ -25,26 +25,24 @@
public class Runtime {
private RuntimeMetadata runtimeMetadata;
- private KnowledgeManager km;
- private Scheduler scheduler;
- private List triggeredJobProducers;
-
- private Runtime(boolean useMXBeans) {
- if (useMXBeans)
- RuntimeMX.registerMBeanForRuntime(this);
- }
+ private final KnowledgeManager km;
+ private final Scheduler scheduler;
+ private final List triggeredJobProducers;
+ //private final Oracle oracle;
public Runtime(Scheduler scheduler, KnowledgeManager km) {
this(scheduler, km, false);
}
public Runtime(Scheduler scheduler, KnowledgeManager km, boolean useMXBeans) {
- this(useMXBeans);
assert (km != null);
assert (scheduler != null);
+ if (useMXBeans)
+ RuntimeMX.registerMBeanForRuntime(this);
this.scheduler = scheduler;
this.km = km;
this.triggeredJobProducers = new LinkedList<>();
+ //this.oracle = new Oracle(new SAT4JSolver());
}
public boolean isRunning() {
@@ -69,10 +67,16 @@ public void shutdown() {
}
//TODO add hot deployment - merge metadata
- public synchronized void deploy(RuntimeMetadata runtimeMetadata) {
+ public synchronized void deployRuntimeMetadata(RuntimeMetadata runtimeMetadata) {
assert (runtimeMetadata != null);
this.runtimeMetadata = runtimeMetadata;
}
+
+// public synchronized void deployIRMInvariant(Invariant invariant) {
+// assert (invariant != null);
+// //oracle.addIRMInvariant(invariant);
+// }
+
private void deployComponentInstances() {
for (ComponentInstance ci : runtimeMetadata.getComponentInstances()) {
diff --git a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/jmx/RuntimeMX.java b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/jmx/RuntimeMX.java
index f5738b2f0..d65c1424e 100644
--- a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/jmx/RuntimeMX.java
+++ b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/jmx/RuntimeMX.java
@@ -57,7 +57,7 @@ public void registerNewComponent(String className) {
}
InstanceRuntimeMetadataProvider provider = new InstanceRuntimeMetadataProvider();
provider.fromComponentInstance(extractInitialKnowledge(clazz));
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
}
/**
diff --git a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/Condition.java b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/BooleanCondition.java
similarity index 55%
rename from jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/Condition.java
rename to jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/BooleanCondition.java
index 7d8c181c2..ea4dfe54a 100644
--- a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/Condition.java
+++ b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/BooleanCondition.java
@@ -3,13 +3,13 @@
import java.lang.reflect.Method;
import java.util.List;
-public class Condition extends Invocable {
+public class BooleanCondition extends Invocable {
- public Condition(List parameters, Method method) {
+ public BooleanCondition(List parameters, Method method) {
super(parameters, method, LockingMode.STRONG);
}
- public Condition(Method method) {
+ public BooleanCondition(Method method) {
super(method, LockingMode.STRONG);
}
}
diff --git a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/Ensemble.java b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/Ensemble.java
index c3f8349f1..5c4b34d41 100644
--- a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/Ensemble.java
+++ b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/runtime/model/Ensemble.java
@@ -2,11 +2,11 @@
public class Ensemble {
private String id;
- private Condition membership;
+ private BooleanCondition membership;
private Exchange knowledgeExchange;
private Schedule schedule;
- public Ensemble(String id, Condition membership,
+ public Ensemble(String id, BooleanCondition membership,
Exchange knowledgeExchange, Schedule schedule) {
super();
this.id = id;
@@ -19,7 +19,7 @@ public String getId() {
return id;
}
- public Condition getMembership() {
+ public BooleanCondition getMembership() {
return membership;
}
diff --git a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/scheduling/EnsembleJob.java b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/scheduling/EnsembleJob.java
index eb6efaf47..4646d52dc 100644
--- a/jdeeco-core/src/cz/cuni/mff/d3s/deeco/scheduling/EnsembleJob.java
+++ b/jdeeco-core/src/cz/cuni/mff/d3s/deeco/scheduling/EnsembleJob.java
@@ -5,7 +5,7 @@
import cz.cuni.mff.d3s.deeco.executor.JobExecutionListener;
import cz.cuni.mff.d3s.deeco.knowledge.ISession;
import cz.cuni.mff.d3s.deeco.logging.Log;
-import cz.cuni.mff.d3s.deeco.runtime.model.Condition;
+import cz.cuni.mff.d3s.deeco.runtime.model.BooleanCondition;
import cz.cuni.mff.d3s.deeco.runtime.model.Ensemble;
import cz.cuni.mff.d3s.deeco.runtime.model.Exchange;
import cz.cuni.mff.d3s.deeco.runtime.model.Parameter;
@@ -14,7 +14,7 @@
public class EnsembleJob extends Job {
- private Condition membership;
+ private BooleanCondition membership;
private Exchange knowledgeExchange;
private String coordinator;
private String member;
diff --git a/jdeeco-core/top.xml b/jdeeco-core/top.xml
new file mode 100644
index 000000000..4ce246d36
--- /dev/null
+++ b/jdeeco-core/top.xml
@@ -0,0 +1,5 @@
+
+
+ Emergency measures are taken
+ OR
+
diff --git a/jdeeco-demo/.classpath b/jdeeco-demo/.classpath
index aff554c39..0eb3c4fb7 100644
--- a/jdeeco-demo/.classpath
+++ b/jdeeco-demo/.classpath
@@ -6,7 +6,7 @@
-
+
diff --git a/jdeeco-demo/pom.xml b/jdeeco-demo/pom.xml
index 8ab431f55..c4e4060f4 100644
--- a/jdeeco-demo/pom.xml
+++ b/jdeeco-demo/pom.xml
@@ -194,6 +194,18 @@
+
+ uk.com.robust-it
+ cloning
+ 1.9.0
+ runtime
+
+
+ org.objenesis
+ objenesis
+ 1.2
+ runtime
+
cz.cuni.mff.d3s.jdeeco
cz.cuni.mff.d3s.jdeeco.core
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudJPF.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudJPF.java
index c267902fe..dc9baf91e 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudJPF.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudJPF.java
@@ -19,7 +19,7 @@ public static void main(String[] args) {
Scheduler scheduler = new RealTimeSchedulerJPF();
RuntimeMetadataProvider provider = new ParsedObjectReader().read();
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudNoJPF.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudNoJPF.java
index d068b24ee..f3e3c03c4 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudNoJPF.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudNoJPF.java
@@ -28,7 +28,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new NodeA("NodeA", .5f, 1));
provider.fromEnsembleDefinition(MigrationEnsemble.class);
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudNoJPFDiscreteScheduler.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudNoJPFDiscreteScheduler.java
index 5f93da1e7..4f018de03 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudNoJPFDiscreteScheduler.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherCloudNoJPFDiscreteScheduler.java
@@ -29,7 +29,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new NodeA("NodeA", .5f, 1));
provider.fromEnsembleDefinition(MigrationEnsemble.class);
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherDynamicCloudNoJPF.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherDynamicCloudNoJPF.java
index b5832b643..e89484bbb 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherDynamicCloudNoJPF.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/LocalLauncherDynamicCloudNoJPF.java
@@ -38,7 +38,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new NodeC());
provider.fromEnsembleDefinition(MigrationEnsemble.class);
Runtime rt = new Runtime(scheduler, km, true);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/MigrationEnsemble.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/MigrationEnsemble.java
index 4198e7d34..10a220501 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/MigrationEnsemble.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/MigrationEnsemble.java
@@ -17,7 +17,7 @@
import cz.cuni.mff.d3s.deeco.annotations.In;
import cz.cuni.mff.d3s.deeco.annotations.KnowledgeExchange;
-import cz.cuni.mff.d3s.deeco.annotations.Membership;
+import cz.cuni.mff.d3s.deeco.annotations.Condition;
import cz.cuni.mff.d3s.deeco.annotations.Out;
import cz.cuni.mff.d3s.deeco.annotations.PeriodicScheduling;
import cz.cuni.mff.d3s.deeco.definitions.EnsembleDefinition;
@@ -35,7 +35,7 @@ public class MigrationEnsemble extends EnsembleDefinition {
public final static long serialVersionUID = 1L;
- @Membership
+ @Condition
public static boolean membership(
@In("member.id") String mId,
@In("member.loadRatio") Float mLoadRatio,
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/NodeC.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/NodeC.java
index 972cbf361..d6aaf50d4 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/NodeC.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/NodeC.java
@@ -56,7 +56,7 @@ public static void process2(@InOut("counter") OutWrapper counter) {
System.out.println("Introducing new component...");
InstanceRuntimeMetadataProvider provider = new InstanceRuntimeMetadataProvider();
provider.fromComponentInstance(new NodeD());
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
System.out.println("New component successfully introduced ;-)");
counter.value = new Integer(2);
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/TSLauncherCloudNoJPF.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/TSLauncherCloudNoJPF.java
index 44205e32a..a4fe5e6dc 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/TSLauncherCloudNoJPF.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/cloud/TSLauncherCloudNoJPF.java
@@ -28,7 +28,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new NodeB());
provider.fromEnsembleDefinition(MigrationEnsemble.class);
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/ConvoyEnsemble.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/ConvoyEnsemble.java
index 9e0fe1f71..8953daf0e 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/ConvoyEnsemble.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/ConvoyEnsemble.java
@@ -20,7 +20,7 @@
import cz.cuni.mff.d3s.deeco.annotations.In;
import cz.cuni.mff.d3s.deeco.annotations.KnowledgeExchange;
-import cz.cuni.mff.d3s.deeco.annotations.Membership;
+import cz.cuni.mff.d3s.deeco.annotations.Condition;
import cz.cuni.mff.d3s.deeco.annotations.Out;
import cz.cuni.mff.d3s.deeco.annotations.PeriodicScheduling;
import cz.cuni.mff.d3s.deeco.annotations.TriggerOnChange;
@@ -55,7 +55,7 @@ public static class EnsemblePath extends Knowledge {
public List remainingPath;
}
- @Membership
+ @Condition
public static boolean membership(@In("member.id") String mId,
@In("member.path.remainingPath") List mRemainingPath,
@In("coord.id") String cId,
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/LocalLauncherConvoyJPF.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/LocalLauncherConvoyJPF.java
index 4322f77f8..6601af39b 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/LocalLauncherConvoyJPF.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/LocalLauncherConvoyJPF.java
@@ -27,7 +27,7 @@ public static void main(String[] args) {
Scheduler scheduler = new RealTimeSchedulerJPF();
RuntimeMetadataProvider provider = new ParsedObjectReader().read();
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/LocalLauncherConvoyNoJPF.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/LocalLauncherConvoyNoJPF.java
index 85e000a63..fd6d17b7c 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/LocalLauncherConvoyNoJPF.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/LocalLauncherConvoyNoJPF.java
@@ -28,7 +28,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new RobotFollowerComponent());
provider.fromEnsembleDefinition(ConvoyEnsemble.class);
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/TSLauncherConvoyNoJPF.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/TSLauncherConvoyNoJPF.java
index ee81726bb..8d444417c 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/TSLauncherConvoyNoJPF.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoy/TSLauncherConvoyNoJPF.java
@@ -28,7 +28,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new RobotLeaderComponent());
provider.fromEnsembleDefinition(ConvoyEnsemble.class);
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoytut/ConvoyEnsemble.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoytut/ConvoyEnsemble.java
index a10001cc3..0d22677c7 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoytut/ConvoyEnsemble.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoytut/ConvoyEnsemble.java
@@ -4,7 +4,7 @@
import cz.cuni.mff.d3s.deeco.annotations.In;
import cz.cuni.mff.d3s.deeco.annotations.KnowledgeExchange;
-import cz.cuni.mff.d3s.deeco.annotations.Membership;
+import cz.cuni.mff.d3s.deeco.annotations.Condition;
import cz.cuni.mff.d3s.deeco.annotations.Out;
import cz.cuni.mff.d3s.deeco.annotations.PeriodicScheduling;
import cz.cuni.mff.d3s.deeco.definitions.EnsembleDefinition;
@@ -14,7 +14,7 @@
public class ConvoyEnsemble extends EnsembleDefinition {
- @Membership
+ @Condition
public static boolean membership(
@In("member.position") Waypoint fPosition,
@In("member.destination") Waypoint fDestination,
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoytut/LocalLauncherLTL.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoytut/LocalLauncherLTL.java
index 9362bbf81..0f0eed016 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoytut/LocalLauncherLTL.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/convoytut/LocalLauncherLTL.java
@@ -31,7 +31,7 @@ public static void main(String[] args) {
RuntimeMetadataProvider provider = new ParsedObjectReader().read();
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
// TODO: manage via runtime event listener mechanism (to be done)
// instead
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataAggregation.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataAggregation.java
index e3c7a3519..4944396f9 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataAggregation.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataAggregation.java
@@ -21,7 +21,7 @@
import cz.cuni.mff.d3s.deeco.annotations.In;
import cz.cuni.mff.d3s.deeco.annotations.InOut;
import cz.cuni.mff.d3s.deeco.annotations.KnowledgeExchange;
-import cz.cuni.mff.d3s.deeco.annotations.Membership;
+import cz.cuni.mff.d3s.deeco.annotations.Condition;
import cz.cuni.mff.d3s.deeco.annotations.TriggerOnChange;
import cz.cuni.mff.d3s.deeco.definitions.EnsembleDefinition;
@@ -35,7 +35,7 @@ public class CriticalDataAggregation extends EnsembleDefinition {
private static final long serialVersionUID = 7576890075702914993L;
- @Membership
+ @Condition
public static boolean membership(
@In("member.isSiteLeader") Boolean isSiteLeaderMember,
@In("coord.isSiteLeader") Boolean isSiteLeaderCoord) {
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataAggregationOnHexacopter.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataAggregationOnHexacopter.java
index e5f9ed762..816b30fb7 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataAggregationOnHexacopter.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataAggregationOnHexacopter.java
@@ -21,7 +21,7 @@
import cz.cuni.mff.d3s.deeco.annotations.In;
import cz.cuni.mff.d3s.deeco.annotations.InOut;
import cz.cuni.mff.d3s.deeco.annotations.KnowledgeExchange;
-import cz.cuni.mff.d3s.deeco.annotations.Membership;
+import cz.cuni.mff.d3s.deeco.annotations.Condition;
import cz.cuni.mff.d3s.deeco.annotations.PeriodicScheduling;
import cz.cuni.mff.d3s.deeco.definitions.EnsembleDefinition;
@@ -35,7 +35,7 @@ public class CriticalDataAggregationOnHexacopter extends EnsembleDefinition {
private static final long serialVersionUID = -7835430643756278821L;
- @Membership
+ @Condition
public static boolean membership(@In("member.id") String mId,
@In("coord.id") String cId,
@In("member.leaderPosition") Position mLeaderPosition,
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataCopyFromHexacopterToSL.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataCopyFromHexacopterToSL.java
index 1e0734bbb..363339eba 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataCopyFromHexacopterToSL.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/CriticalDataCopyFromHexacopterToSL.java
@@ -21,7 +21,7 @@
import cz.cuni.mff.d3s.deeco.annotations.In;
import cz.cuni.mff.d3s.deeco.annotations.InOut;
import cz.cuni.mff.d3s.deeco.annotations.KnowledgeExchange;
-import cz.cuni.mff.d3s.deeco.annotations.Membership;
+import cz.cuni.mff.d3s.deeco.annotations.Condition;
import cz.cuni.mff.d3s.deeco.annotations.PeriodicScheduling;
import cz.cuni.mff.d3s.deeco.definitions.EnsembleDefinition;
@@ -35,7 +35,7 @@ public class CriticalDataCopyFromHexacopterToSL extends EnsembleDefinition {
private static final long serialVersionUID = 409847004319943982L;
- @Membership
+ @Condition
public static boolean membership(@In("member.id") String mId,
@In("coord.id") String cId,
@In("member.leaderPosition") Position mLeaderPosition,
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncher.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncher.java
index fa497fb61..a145ee60f 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncher.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncher.java
@@ -37,7 +37,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new GroupLeader("GL2", "T2", true,
new Position(0, 0)));
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherDiscreteScheduler.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherDiscreteScheduler.java
index decc5e8b0..69aea366b 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherDiscreteScheduler.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherDiscreteScheduler.java
@@ -38,7 +38,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new GroupLeader("GL2", "T2", false,
new Position(1000, 1000)));
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherDiscreteSchedulerHexacopter.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherDiscreteSchedulerHexacopter.java
index d8e5a47a1..f997abb8f 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherDiscreteSchedulerHexacopter.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherDiscreteSchedulerHexacopter.java
@@ -40,7 +40,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new GroupLeader("GL2", "T2", false,
new Position(1000, 1000)));
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherHexacopter.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherHexacopter.java
index 2f119c7fc..609b8c79d 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherHexacopter.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/FFLauncherHexacopter.java
@@ -39,7 +39,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new GroupLeader("GL2", "T2", true,
new Position(0, 0)));
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
}
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/SensorDataAggregation.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/SensorDataAggregation.java
index d8c5b64db..5ad4a6ece 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/SensorDataAggregation.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/firefighters/SensorDataAggregation.java
@@ -20,7 +20,7 @@
import cz.cuni.mff.d3s.deeco.annotations.In;
import cz.cuni.mff.d3s.deeco.annotations.InOut;
import cz.cuni.mff.d3s.deeco.annotations.KnowledgeExchange;
-import cz.cuni.mff.d3s.deeco.annotations.Membership;
+import cz.cuni.mff.d3s.deeco.annotations.Condition;
import cz.cuni.mff.d3s.deeco.annotations.PeriodicScheduling;
import cz.cuni.mff.d3s.deeco.definitions.EnsembleDefinition;
@@ -34,7 +34,7 @@ public class SensorDataAggregation extends EnsembleDefinition {
private static final long serialVersionUID = 5991804902054860542L;
- @Membership
+ @Condition
public static boolean membership(@In("member.teamId") String mteamId,
@In("member.temperature") Float temperature,
@In("coord.temperatures") Map temperatures,
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/parkinglotbooking/BookingEnsemble.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/parkinglotbooking/BookingEnsemble.java
index fa2c6a730..8d4d6b06d 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/parkinglotbooking/BookingEnsemble.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/parkinglotbooking/BookingEnsemble.java
@@ -15,7 +15,7 @@
******************************************************************************/
package cz.cuni.mff.d3s.deeco.demo.parkinglotbooking;
-import cz.cuni.mff.d3s.deeco.annotations.Membership;
+import cz.cuni.mff.d3s.deeco.annotations.Condition;
import cz.cuni.mff.d3s.deeco.annotations.In;
import cz.cuni.mff.d3s.deeco.annotations.PeriodicScheduling;
@@ -46,7 +46,7 @@ public static class CarParkInterface extends RequestResponseEnsemble.ResponderIn
public Position position;
}
- @Membership
+ @Condition
@PeriodicScheduling(2000)
public static boolean membership(
@In("member.targetPosition") Position targetPosition,
diff --git a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/parkinglotbooking/TSParkingLotLauncherNoJPF.java b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/parkinglotbooking/TSParkingLotLauncherNoJPF.java
index ff3104830..5919d1ac8 100644
--- a/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/parkinglotbooking/TSParkingLotLauncherNoJPF.java
+++ b/jdeeco-demo/src/cz/cuni/mff/d3s/deeco/demo/parkinglotbooking/TSParkingLotLauncherNoJPF.java
@@ -29,7 +29,7 @@ public static void main(String[] args) {
provider.fromComponentInstance(new ParkingLot());
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
diff --git a/jdeeco-jpf/.classpath b/jdeeco-jpf/.classpath
index aff554c39..0eb3c4fb7 100644
--- a/jdeeco-jpf/.classpath
+++ b/jdeeco-jpf/.classpath
@@ -6,7 +6,7 @@
-
+
diff --git a/jdeeco-jpf/src/cz/cuni/mff/d3s/deeco/ltl/LocalLauncherExampleJPF.java b/jdeeco-jpf/src/cz/cuni/mff/d3s/deeco/ltl/LocalLauncherExampleJPF.java
index ed273a7ed..4591a1920 100644
--- a/jdeeco-jpf/src/cz/cuni/mff/d3s/deeco/ltl/LocalLauncherExampleJPF.java
+++ b/jdeeco-jpf/src/cz/cuni/mff/d3s/deeco/ltl/LocalLauncherExampleJPF.java
@@ -43,7 +43,7 @@ public Boolean evaluate(KnowledgeJPF knowledge) {
RuntimeMetadataProvider provider = new ParsedObjectReader().read();
Runtime rt = new Runtime(scheduler, km);
- rt.deploy(provider.getRuntimeMetadata());
+ rt.deployRuntimeMetadata(provider.getRuntimeMetadata());
rt.run();
}
}