Fixed DSE BPMN example
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/META-INF/MANIFEST.MF b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/META-INF/MANIFEST.MF
index af22804..2f3b463 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/META-INF/MANIFEST.MF
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/META-INF/MANIFEST.MF
@@ -21,3 +21,4 @@
org.eclipse.xtend.lib.macro
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: org.apache.log4j;version="1.2.15"
+Automatic-Module-Name: org.eclipse.viatra.dse.examples.bpmn.dse
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/dse/BpmnExamples.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/dse/BpmnExamples.java
index ecd4d3c..8c017f9 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/dse/BpmnExamples.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/dse/BpmnExamples.java
@@ -23,11 +23,11 @@
import org.eclipse.viatra.dse.examples.bpmn.objectives.AvgResponseTimeSoftObjective;
import org.eclipse.viatra.dse.examples.bpmn.objectives.CostOfCreateResource;
import org.eclipse.viatra.dse.examples.bpmn.objectives.MinResourceUsageSoftObjective;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.AbsenceOfResourceInstancesQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.EnoughResourceInstancesQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.EveryTaskHasVariantQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.UnassignedTaskQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.UnrequiredResourceInstanceQuerySpecification;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.AbsenceOfResourceInstances;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.EnoughResourceInstances;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.EveryTaskHasVariant;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.UnassignedTask;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.UnrequiredResourceInstance;
import org.eclipse.viatra.dse.examples.bpmn.problems.BpmnProblems;
import org.eclipse.viatra.dse.examples.bpmn.rules.BpmnRuleProvider;
import org.eclipse.viatra.dse.examples.bpmn.statecoder.BpmnStateCoderFactory;
@@ -107,14 +107,14 @@
dse.addTransformationRule(ruleProvider.makeSequentialRule);
dse.addGlobalConstraint(new ModelQueriesGlobalConstraint()
- .withConstraint(UnrequiredResourceInstanceQuerySpecification.instance()));
+ .withConstraint(UnrequiredResourceInstance.instance()));
// Guidance objective
dse.addObjective(new ConstraintsObjective()
- .withHardConstraint(EnoughResourceInstancesQuerySpecification.instance())
- .withHardConstraint(EveryTaskHasVariantQuerySpecification.instance())
- .withSoftConstraint(AbsenceOfResourceInstancesQuerySpecification.instance(), 1)
- .withSoftConstraint(UnassignedTaskQuerySpecification.instance(), 10)
+ .withHardConstraint(EnoughResourceInstances.instance())
+ .withHardConstraint(EveryTaskHasVariant.instance())
+ .withSoftConstraint(AbsenceOfResourceInstances.instance(), 1)
+ .withSoftConstraint(UnassignedTask.instance(), 10)
.withComparator(Comparators.LOWER_IS_BETTER)
.withLevel(0));
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnEvolutionaryExample.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnEvolutionaryExample.java
index 2828ba0..be7e71c 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnEvolutionaryExample.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnEvolutionaryExample.java
@@ -17,11 +17,11 @@
import org.eclipse.viatra.dse.examples.bpmn.objectives.AvgResponseTimeSoftObjective;
import org.eclipse.viatra.dse.examples.bpmn.objectives.CostOfCreateResource;
import org.eclipse.viatra.dse.examples.bpmn.objectives.MinResourceUsageSoftObjective;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.AbsenceOfResourceInstancesQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.EnoughResourceInstancesQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.EveryTaskHasVariantQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.UnassignedTaskQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.UnrequiredResourceInstanceQuerySpecification;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.AbsenceOfResourceInstances;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.EnoughResourceInstances;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.EveryTaskHasVariant;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.UnassignedTask;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.UnrequiredResourceInstance;
import org.eclipse.viatra.dse.examples.bpmn.problems.BpmnProblems;
import org.eclipse.viatra.dse.examples.bpmn.rules.BpmnRuleProvider;
import org.eclipse.viatra.dse.examples.bpmn.statecoder.BpmnStateCoderFactory;
@@ -61,14 +61,14 @@
dse.addTransformationRule(ruleProvider.makeSequentialRule);
dse.addGlobalConstraint(new ModelQueriesGlobalConstraint()
- .withConstraint(UnrequiredResourceInstanceQuerySpecification.instance()));
+ .withConstraint(UnrequiredResourceInstance.instance()));
dse.addObjective(new ConstraintsObjective()
- .withHardConstraint(EnoughResourceInstancesQuerySpecification.instance())
- .withHardConstraint(EveryTaskHasVariantQuerySpecification.instance())
- .withSoftConstraint("LackOfResourceInstances", AbsenceOfResourceInstancesQuerySpecification.instance(), 1)
- .withSoftConstraint("UnassignedTask", UnassignedTaskQuerySpecification.instance(), 10)
- .withSoftConstraint("UnrequiredResources", UnrequiredResourceInstanceQuerySpecification.instance(), 100)
+ .withHardConstraint(EnoughResourceInstances.instance())
+ .withHardConstraint(EveryTaskHasVariant.instance())
+ .withSoftConstraint("LackOfResourceInstances", AbsenceOfResourceInstances.instance(), 1)
+ .withSoftConstraint("UnassignedTask", UnassignedTask.instance(), 10)
+ .withSoftConstraint("UnrequiredResources", UnrequiredResourceInstance.instance(), 100)
.withComparator(Comparators.LOWER_IS_BETTER)
.withLevel(0));
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/objectives/CostOfCreateResource.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/objectives/CostOfCreateResource.java
index 7def32d..b85db7a 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/objectives/CostOfCreateResource.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/objectives/CostOfCreateResource.java
@@ -1,6 +1,6 @@
package org.eclipse.viatra.dse.examples.bpmn.objectives;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResourceMatch;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResource;
import org.eclipse.viatra.dse.examples.bpmn.problems.BpmnProblems;
import org.eclipse.viatra.dse.objectives.ActivationFitnessProcessor;
import org.eclipse.viatra.query.runtime.api.IPatternMatch;
@@ -11,7 +11,7 @@
public final class CostOfCreateResource implements ActivationFitnessProcessor {
@Override
public double process(IPatternMatch match) {
- CreateResourceMatch m = (CreateResourceMatch) match;
+ CreateResource.Match m = (CreateResource.Match) match;
String name = m.getRTV().getName();
Double result;
if (name.equals(BpmnProblems.NOSQL_FAST)) {
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/rules/BpmnRuleProvider.xtend b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/rules/BpmnRuleProvider.xtend
index 03fd1ae..c4fe7d1 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/rules/BpmnRuleProvider.xtend
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/rules/BpmnRuleProvider.xtend
@@ -1,9 +1,9 @@
package org.eclipse.viatra.dse.examples.bpmn.rules
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.AllocateTaskToVariantQuerySpecification
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.CreateResourceQuerySpecification
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.MakeParallelQuerySpecification
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.MakeSequentialQuerySpecification
+import org.eclipse.viatra.dse.examples.bpmn.patterns.AllocateTaskToVariant
+import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResource
+import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeParallel
+import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeSequential
import org.eclipse.viatra.dse.examples.bpmn.problems.BpmnProblems
import org.eclipse.viatra.dse.examples.bpmn.problems.SimplifiedBpmnBuilder
import org.eclipse.viatra.dse.examples.simplifiedbpmn.SimplifiedbpmnFactory
@@ -23,7 +23,7 @@
new() {
allocateRule = createRule
.name("AllocateTaskToVariantRule")
- .precondition(AllocateTaskToVariantQuerySpecification.instance())
+ .precondition(AllocateTaskToVariant.instance())
.action[
t.variant = RTV
]
@@ -31,7 +31,7 @@
allocateRuleFilteredExample = createRule
.name("FilteredAllocateTaskToVariantRule")
- .precondition(AllocateTaskToVariantQuerySpecification.instance())
+ .precondition(AllocateTaskToVariant.instance())
.action[
t.variant = RTV
]
@@ -46,7 +46,7 @@
createResourceRule = createRule
.name("CreateResourceRule")
- .precondition(CreateResourceQuerySpecification.instance())
+ .precondition(CreateResource.instance())
.action[
RTV.instances += SimplifiedbpmnFactory.eINSTANCE.createResourceInstance()
]
@@ -54,7 +54,7 @@
makeParallelRule = createRule
.name("MakeParallelRule")
- .precondition(MakeParallelQuerySpecification.instance())
+ .precondition(MakeParallel.instance())
.action[
val builder = new SimplifiedBpmnBuilder(root)
@@ -86,7 +86,7 @@
makeSequentialRule = createRule
.name("MakeSequentialRule")
- .precondition(MakeSequentialQuerySpecification.instance())
+ .precondition(MakeSequential.instance())
.action[
var flows = t1.inFlows
val divergingGateway = flows.get(0).getSource()
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/statecoder/BpmnStateCoder.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/statecoder/BpmnStateCoder.java
index 358d8d4..5e9e50e 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/statecoder/BpmnStateCoder.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/statecoder/BpmnStateCoder.java
@@ -15,10 +15,10 @@
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.viatra.dse.api.DSEException;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.AllocateTaskToVariantMatch;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResourceMatch;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeParallelMatch;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeSequentialMatch;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.AllocateTaskToVariant;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResource;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeParallel;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeSequential;
import org.eclipse.viatra.dse.examples.bpmn.problems.SimplifiedBpmnBuilder;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ParallelGateway;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ResourceType;
@@ -96,17 +96,17 @@
@Override
public Object createActivationCode(IPatternMatch match) {
- if (match instanceof CreateResourceMatch) {
- CreateResourceMatch m = (CreateResourceMatch) match;
+ if (match instanceof CreateResource.Match) {
+ CreateResource.Match m = (CreateResource.Match) match;
return m.getRTV().getName().intern();
- } else if (match instanceof AllocateTaskToVariantMatch) {
- AllocateTaskToVariantMatch m = (AllocateTaskToVariantMatch) match;
+ } else if (match instanceof AllocateTaskToVariant.Match) {
+ AllocateTaskToVariant.Match m = (AllocateTaskToVariant.Match) match;
return (m.getT().getName() + "-" + m.getRTV().getName()).intern();
- } else if (match instanceof MakeParallelMatch) {
- MakeParallelMatch m = (MakeParallelMatch) match;
+ } else if (match instanceof MakeParallel.Match) {
+ MakeParallel.Match m = (MakeParallel.Match) match;
return ("Parallel:" + SimplifiedBpmnBuilder.createOrderedString(m.getT1().getName(), m.getT2().getName())).intern();
- } else if (match instanceof MakeSequentialMatch) {
- MakeSequentialMatch m = (MakeSequentialMatch) match;
+ } else if (match instanceof MakeSequential.Match) {
+ MakeSequential.Match m = (MakeSequential.Match) match;
return ("Sequential:" + SimplifiedBpmnBuilder.createOrderedString(m.getT1().getName(), m.getT2().getName())).intern();
} else {
throw new DSEException("Unsupported rule.");
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/.BpmnRuleProvider.java._trace b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/.BpmnRuleProvider.java._trace
index b6a7590..0a80b7b 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/.BpmnRuleProvider.java._trace
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/.BpmnRuleProvider.java._trace
Binary files differ
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/.BpmnRuleProvider.xtendbin b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/.BpmnRuleProvider.xtendbin
index fe97265..b8f7304 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/.BpmnRuleProvider.xtendbin
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/.BpmnRuleProvider.xtendbin
Binary files differ
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/BpmnRuleProvider.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/BpmnRuleProvider.java
index a15f5c3..61f513b 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/BpmnRuleProvider.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/xtend-gen/org/eclipse/viatra/dse/examples/bpmn/rules/BpmnRuleProvider.java
@@ -1,18 +1,10 @@
package org.eclipse.viatra.dse.examples.bpmn.rules;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.AllocateTaskToVariantMatch;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.AllocateTaskToVariantMatcher;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResourceMatch;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResourceMatcher;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeParallelMatch;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeParallelMatcher;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeSequentialMatch;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeSequentialMatcher;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.AllocateTaskToVariantQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.CreateResourceQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.MakeParallelQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.MakeSequentialQuerySpecification;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.AllocateTaskToVariant;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResource;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeParallel;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeSequential;
import org.eclipse.viatra.dse.examples.bpmn.problems.BpmnProblems;
import org.eclipse.viatra.dse.examples.bpmn.problems.SimplifiedBpmnBuilder;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.BaseElement;
@@ -26,7 +18,6 @@
import org.eclipse.viatra.transformation.evm.api.event.EventFilter;
import org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRule;
import org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRuleFactory;
-import org.eclipse.xtext.xbase.lib.Exceptions;
import org.eclipse.xtext.xbase.lib.Extension;
@SuppressWarnings("all")
@@ -45,97 +36,93 @@
public BatchTransformationRule<?, ?> allocateRuleFilteredExample;
public BpmnRuleProvider() {
- try {
- final IMatchProcessor<AllocateTaskToVariantMatch> _function = (AllocateTaskToVariantMatch it) -> {
- Task _t = it.getT();
- _t.setVariant(it.getRTV());
- };
- this.allocateRule = this.factory.<AllocateTaskToVariantMatch, AllocateTaskToVariantMatcher>createRule().name("AllocateTaskToVariantRule").precondition(AllocateTaskToVariantQuerySpecification.instance()).action(_function).build();
- final IMatchProcessor<AllocateTaskToVariantMatch> _function_1 = (AllocateTaskToVariantMatch it) -> {
- Task _t = it.getT();
- _t.setVariant(it.getRTV());
- };
- final EventFilter<AllocateTaskToVariantMatch> _function_2 = (AllocateTaskToVariantMatch it) -> {
- if ((it.getRTV().getName().equals(BpmnProblems.NOSQL_MEDIUM) ||
- it.getRTV().getName().equals(BpmnProblems.SQL_MEDIUM))) {
- return false;
+ final IMatchProcessor<AllocateTaskToVariant.Match> _function = (AllocateTaskToVariant.Match it) -> {
+ Task _t = it.getT();
+ _t.setVariant(it.getRTV());
+ };
+ this.allocateRule = this.factory.<AllocateTaskToVariant.Match, AllocateTaskToVariant.Matcher>createRule().name("AllocateTaskToVariantRule").precondition(AllocateTaskToVariant.instance()).action(_function).build();
+ final IMatchProcessor<AllocateTaskToVariant.Match> _function_1 = (AllocateTaskToVariant.Match it) -> {
+ Task _t = it.getT();
+ _t.setVariant(it.getRTV());
+ };
+ final EventFilter<AllocateTaskToVariant.Match> _function_2 = (AllocateTaskToVariant.Match it) -> {
+ if ((it.getRTV().getName().equals(BpmnProblems.NOSQL_MEDIUM) ||
+ it.getRTV().getName().equals(BpmnProblems.SQL_MEDIUM))) {
+ return false;
+ }
+ return true;
+ };
+ this.allocateRuleFilteredExample = this.factory.<AllocateTaskToVariant.Match, AllocateTaskToVariant.Matcher>createRule().name("FilteredAllocateTaskToVariantRule").precondition(AllocateTaskToVariant.instance()).action(_function_1).filter(_function_2).build();
+ final IMatchProcessor<CreateResource.Match> _function_3 = (CreateResource.Match it) -> {
+ EList<ResourceInstance> _instances = it.getRTV().getInstances();
+ ResourceInstance _createResourceInstance = SimplifiedbpmnFactory.eINSTANCE.createResourceInstance();
+ _instances.add(_createResourceInstance);
+ };
+ this.createResourceRule = this.factory.<CreateResource.Match, CreateResource.Matcher>createRule().name("CreateResourceRule").precondition(CreateResource.instance()).action(_function_3).build();
+ final IMatchProcessor<MakeParallel.Match> _function_4 = (MakeParallel.Match it) -> {
+ SimplifiedBPMN _root = it.getRoot();
+ final SimplifiedBpmnBuilder builder = new SimplifiedBpmnBuilder(_root);
+ final ParallelGateway divergingGateway = builder.createParallelGateway(it.getT1(), it.getT2(), true);
+ final ParallelGateway convergingGateway = builder.createParallelGateway(it.getT1(), it.getT2(), false);
+ EList<SequenceFlow> flows = it.getT1().getInFlows();
+ while ((!flows.isEmpty())) {
+ {
+ final SequenceFlow flow = flows.get(0);
+ flow.setTarget(divergingGateway);
}
- return true;
- };
- this.allocateRuleFilteredExample = this.factory.<AllocateTaskToVariantMatch, AllocateTaskToVariantMatcher>createRule().name("FilteredAllocateTaskToVariantRule").precondition(AllocateTaskToVariantQuerySpecification.instance()).action(_function_1).filter(_function_2).build();
- final IMatchProcessor<CreateResourceMatch> _function_3 = (CreateResourceMatch it) -> {
- EList<ResourceInstance> _instances = it.getRTV().getInstances();
- ResourceInstance _createResourceInstance = SimplifiedbpmnFactory.eINSTANCE.createResourceInstance();
- _instances.add(_createResourceInstance);
- };
- this.createResourceRule = this.factory.<CreateResourceMatch, CreateResourceMatcher>createRule().name("CreateResourceRule").precondition(CreateResourceQuerySpecification.instance()).action(_function_3).build();
- final IMatchProcessor<MakeParallelMatch> _function_4 = (MakeParallelMatch it) -> {
- SimplifiedBPMN _root = it.getRoot();
- final SimplifiedBpmnBuilder builder = new SimplifiedBpmnBuilder(_root);
- final ParallelGateway divergingGateway = builder.createParallelGateway(it.getT1(), it.getT2(), true);
- final ParallelGateway convergingGateway = builder.createParallelGateway(it.getT1(), it.getT2(), false);
- EList<SequenceFlow> flows = it.getT1().getInFlows();
- while ((!flows.isEmpty())) {
- {
- final SequenceFlow flow = flows.get(0);
- flow.setTarget(divergingGateway);
- }
+ }
+ flows = it.getT2().getOutFlows();
+ while ((!flows.isEmpty())) {
+ {
+ final SequenceFlow flow = flows.get(0);
+ flow.setSource(convergingGateway);
}
- flows = it.getT2().getOutFlows();
- while ((!flows.isEmpty())) {
- {
- final SequenceFlow flow = flows.get(0);
- flow.setSource(convergingGateway);
- }
+ }
+ final SequenceFlow flow = it.getT1().getOutFlows().get(0);
+ EList<SequenceFlow> _sequenceFlows = it.getRoot().getSequenceFlows();
+ _sequenceFlows.remove(flow);
+ flow.setTarget(null);
+ flow.setSource(null);
+ builder.createFlow(divergingGateway, it.getT1());
+ builder.createFlow(divergingGateway, it.getT2());
+ builder.createFlow(it.getT1(), convergingGateway);
+ builder.createFlow(it.getT2(), convergingGateway);
+ };
+ this.makeParallelRule = this.factory.<MakeParallel.Match, MakeParallel.Matcher>createRule().name("MakeParallelRule").precondition(MakeParallel.instance()).action(_function_4).build();
+ final IMatchProcessor<MakeSequential.Match> _function_5 = (MakeSequential.Match it) -> {
+ EList<SequenceFlow> flows = it.getT1().getInFlows();
+ final BaseElement divergingGateway = flows.get(0).getSource();
+ it.getRoot().getParallelGateways().remove(divergingGateway);
+ it.getRoot().getSequenceFlows().removeAll(flows);
+ flows.clear();
+ flows = it.getT2().getInFlows();
+ it.getRoot().getSequenceFlows().removeAll(flows);
+ flows.clear();
+ flows = it.getT1().getOutFlows();
+ it.getRoot().getSequenceFlows().removeAll(flows);
+ flows.clear();
+ flows = it.getT2().getOutFlows();
+ final BaseElement convergingGateway = flows.get(0).getTarget();
+ it.getRoot().getParallelGateways().remove(convergingGateway);
+ it.getRoot().getSequenceFlows().removeAll(flows);
+ flows.clear();
+ flows = divergingGateway.getInFlows();
+ while ((!flows.isEmpty())) {
+ {
+ final SequenceFlow flow = flows.get(0);
+ flow.setTarget(it.getT1());
}
- final SequenceFlow flow = it.getT1().getOutFlows().get(0);
- EList<SequenceFlow> _sequenceFlows = it.getRoot().getSequenceFlows();
- _sequenceFlows.remove(flow);
- flow.setTarget(null);
- flow.setSource(null);
- builder.createFlow(divergingGateway, it.getT1());
- builder.createFlow(divergingGateway, it.getT2());
- builder.createFlow(it.getT1(), convergingGateway);
- builder.createFlow(it.getT2(), convergingGateway);
- };
- this.makeParallelRule = this.factory.<MakeParallelMatch, MakeParallelMatcher>createRule().name("MakeParallelRule").precondition(MakeParallelQuerySpecification.instance()).action(_function_4).build();
- final IMatchProcessor<MakeSequentialMatch> _function_5 = (MakeSequentialMatch it) -> {
- EList<SequenceFlow> flows = it.getT1().getInFlows();
- final BaseElement divergingGateway = flows.get(0).getSource();
- it.getRoot().getParallelGateways().remove(divergingGateway);
- it.getRoot().getSequenceFlows().removeAll(flows);
- flows.clear();
- flows = it.getT2().getInFlows();
- it.getRoot().getSequenceFlows().removeAll(flows);
- flows.clear();
- flows = it.getT1().getOutFlows();
- it.getRoot().getSequenceFlows().removeAll(flows);
- flows.clear();
- flows = it.getT2().getOutFlows();
- final BaseElement convergingGateway = flows.get(0).getTarget();
- it.getRoot().getParallelGateways().remove(convergingGateway);
- it.getRoot().getSequenceFlows().removeAll(flows);
- flows.clear();
- flows = divergingGateway.getInFlows();
- while ((!flows.isEmpty())) {
- {
- final SequenceFlow flow = flows.get(0);
- flow.setTarget(it.getT1());
- }
+ }
+ flows = convergingGateway.getOutFlows();
+ while ((!flows.isEmpty())) {
+ {
+ final SequenceFlow flow = flows.get(0);
+ flow.setSource(it.getT2());
}
- flows = convergingGateway.getOutFlows();
- while ((!flows.isEmpty())) {
- {
- final SequenceFlow flow = flows.get(0);
- flow.setSource(it.getT2());
- }
- }
- SimplifiedBPMN _root = it.getRoot();
- new SimplifiedBpmnBuilder(_root).createFlow(it.getT1(), it.getT2());
- };
- this.makeSequentialRule = this.factory.<MakeSequentialMatch, MakeSequentialMatcher>createRule().name("MakeSequentialRule").precondition(MakeSequentialQuerySpecification.instance()).action(_function_5).build();
- } catch (Throwable _e) {
- throw Exceptions.sneakyThrow(_e);
- }
+ }
+ SimplifiedBPMN _root = it.getRoot();
+ new SimplifiedBpmnBuilder(_root).createFlow(it.getT1(), it.getT2());
+ };
+ this.makeSequentialRule = this.factory.<MakeSequential.Match, MakeSequential.Matcher>createRule().name("MakeSequentialRule").precondition(MakeSequential.instance()).action(_function_5).build();
}
}
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.model/META-INF/MANIFEST.MF b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.model/META-INF/MANIFEST.MF
index 4433de2..5f90e06 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.model/META-INF/MANIFEST.MF
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.model/META-INF/MANIFEST.MF
@@ -12,3 +12,4 @@
org.eclipse.emf.ecore;visibility:=reexport
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.viatra.dse.examples.bpmn.model
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.patterns/META-INF/MANIFEST.MF b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.patterns/META-INF/MANIFEST.MF
index e29e614..e7b8212 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.patterns/META-INF/MANIFEST.MF
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.patterns/META-INF/MANIFEST.MF
@@ -3,11 +3,11 @@
Bundle-Name: org.eclipse.viatra.dse.examples.bpmn.patterns
Bundle-SymbolicName: org.eclipse.viatra.dse.examples.bpmn.patterns;singleton:=true
Bundle-Version: 0.20.0.qualifier
-Export-Package: org.eclipse.viatra.dse.examples.bpmn.patterns,
- org.eclipse.viatra.dse.examples.bpmn.patterns.util
+Export-Package: org.eclipse.viatra.dse.examples.bpmn.patterns
Require-Bundle: org.eclipse.viatra.dse.examples.bpmn.model,
- org.eclipse.emf.ecore,
- org.eclipse.xtext.xbase.lib,
- org.eclipse.viatra.query.runtime
+ org.eclipse.emf.ecore,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.viatra.query.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: org.apache.log4j
+Automatic-Module-Name: org.eclipse.viatra.dse.examples.bpmn.patterns
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.test/META-INF/MANIFEST.MF b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.test/META-INF/MANIFEST.MF
index 08d3a9d..1d9101e 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.test/META-INF/MANIFEST.MF
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.test/META-INF/MANIFEST.MF
@@ -11,3 +11,4 @@
com.google.guava,
org.junit
Import-Package: org.apache.log4j
+Automatic-Module-Name: org.eclipse.viatra.dse.examples.bpmn.test
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.test/src/org/eclipse/viatra/dse/examples/bpmn/test/BpmnExamplesTest.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.test/src/org/eclipse/viatra/dse/examples/bpmn/test/BpmnExamplesTest.java
index e4a1323..9ee25ab 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.test/src/org/eclipse/viatra/dse/examples/bpmn/test/BpmnExamplesTest.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.test/src/org/eclipse/viatra/dse/examples/bpmn/test/BpmnExamplesTest.java
@@ -19,11 +19,11 @@
import org.eclipse.viatra.dse.examples.bpmn.objectives.AvgResponseTimeSoftObjective;
import org.eclipse.viatra.dse.examples.bpmn.objectives.CostOfCreateResource;
import org.eclipse.viatra.dse.examples.bpmn.objectives.MinResourceUsageSoftObjective;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.AbsenceOfResourceInstancesQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.EnoughResourceInstancesQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.EveryTaskHasVariantQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.UnassignedTaskQuerySpecification;
-import org.eclipse.viatra.dse.examples.bpmn.patterns.util.UnrequiredResourceInstanceQuerySpecification;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.AbsenceOfResourceInstances;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.EnoughResourceInstances;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.EveryTaskHasVariant;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.UnassignedTask;
+import org.eclipse.viatra.dse.examples.bpmn.patterns.UnrequiredResourceInstance;
import org.eclipse.viatra.dse.examples.bpmn.problems.BpmnProblems;
import org.eclipse.viatra.dse.examples.bpmn.rules.BpmnRuleProvider;
import org.eclipse.viatra.dse.examples.bpmn.statecoder.BpmnStateCoderFactory;
@@ -90,14 +90,14 @@
dse.addTransformationRule(ruleProvider.makeSequentialRule);
dse.addGlobalConstraint(new ModelQueriesGlobalConstraint()
- .withConstraint(UnrequiredResourceInstanceQuerySpecification.instance()));
+ .withConstraint(UnrequiredResourceInstance.instance()));
// Guidance objective
dse.addObjective(new ConstraintsObjective()
- .withHardConstraint(EnoughResourceInstancesQuerySpecification.instance())
- .withHardConstraint(EveryTaskHasVariantQuerySpecification.instance())
- .withSoftConstraint(AbsenceOfResourceInstancesQuerySpecification.instance(), 1)
- .withSoftConstraint(UnassignedTaskQuerySpecification.instance(), 10)
+ .withHardConstraint(EnoughResourceInstances.instance())
+ .withHardConstraint(EveryTaskHasVariant.instance())
+ .withSoftConstraint(AbsenceOfResourceInstances.instance(), 1)
+ .withSoftConstraint(UnassignedTask.instance(), 10)
.withComparator(Comparators.LOWER_IS_BETTER)
.withLevel(0));
diff --git a/dse/bpmn/pom.xml b/dse/bpmn/pom.xml
index daef438..5d40514 100644
--- a/dse/bpmn/pom.xml
+++ b/dse/bpmn/pom.xml
@@ -46,6 +46,11 @@
<url>${viatra.repository.url}</url>
</repository>
<repository>
+ <id>eclipse.collections.update</id>
+ <layout>p2</layout>
+ <url>${ec.repository.url}</url>
+ </repository>
+ <repository>
<id>xtext.update</id>
<layout>p2</layout>
<url>${xtext.repository.url}</url>
@@ -76,6 +81,7 @@
<tycho.version>1.0.0</tycho.version>
<xtend.compiler.version>2.13.0</xtend.compiler.version>
<viatra.repository.url>http://download.eclipse.org/viatra/updates/integration</viatra.repository.url>
+ <ec.repository.url>http://download.eclipse.org/collections/9.2.0.M1/repository</ec.repository.url>
<xtext.repository.url>http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.13.0</xtext.repository.url>
<eclipse.repository.release.url>http://download.eclipse.org/releases/neon</eclipse.repository.release.url>
<eclipse.repository.url>http://download.eclipse.org/eclipse/updates/4.6</eclipse.repository.url>