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(); } }