Skip to content

Commit

Permalink
Merge pull request #108 from d3scomp/newgen-keznikl
Browse files Browse the repository at this point in the history
AnnotationProcessor convoy test update
  • Loading branch information
keznikl committed Nov 15, 2013
2 parents 379ef61 + 7704c3e commit 7d259db
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import cz.cuni.mff.d3s.deeco.model.runtime.api.ComponentInstance;
import cz.cuni.mff.d3s.deeco.model.runtime.api.ComponentProcess;
import cz.cuni.mff.d3s.deeco.model.runtime.api.Condition;
import cz.cuni.mff.d3s.deeco.model.runtime.api.EnsembleController;
import cz.cuni.mff.d3s.deeco.model.runtime.api.EnsembleDefinition;
import cz.cuni.mff.d3s.deeco.model.runtime.api.Exchange;
import cz.cuni.mff.d3s.deeco.model.runtime.api.KnowledgeChangeTrigger;
Expand Down Expand Up @@ -159,11 +160,26 @@ void processObject(Object obj) throws AnnotationParsingException {
+ "->Both @Component or @Ensemble annotation found.");
}
if (isComponentDefinition(clazz)) {
model.getComponentInstances().add(createComponentInstance(obj));
ComponentInstance ci = createComponentInstance(obj);
model.getComponentInstances().add(ci);
// Create ensemble controllers for all the already-processed ensemble definitions
for (EnsembleDefinition ed: model.getEnsembleDefinitions()) {
EnsembleController ec = factory.createEnsembleController();
ec.setComponentInstance(ci);
ec.setEnsembleDefinition(ed);
ci.getEnsembleControllers().add(ec);
}
return;
}
if (isEnsembleDefinition(clazz)) {
model.getEnsembleDefinitions().add(createEnsembleDefinition(obj));
} if (isEnsembleDefinition(clazz)) {
EnsembleDefinition ed = createEnsembleDefinition(obj);
model.getEnsembleDefinitions().add(ed);
// Create ensemble controllers for all the already-processed component instance definitions
for (ComponentInstance ci: model.getComponentInstances()) {
EnsembleController ec = factory.createEnsembleController();
ec.setComponentInstance(ci);
ec.setEnsembleDefinition(ed);
ci.getEnsembleControllers().add(ec);
}
return;
}
throw new AnnotationParsingException("Class: "
Expand All @@ -177,7 +193,7 @@ ComponentInstance createComponentInstance(Object obj) throws AnnotationParsingEx
componentInstance.setName(clazz.getCanonicalName());
CloningKnowledgeManagerContainer container = new CloningKnowledgeManagerContainer();
//TODO Below should be the id of the component passed instead of "String"
KnowledgeManager km = container.createLocal("String");
KnowledgeManager km = container.createLocal(clazz.getSimpleName());
km.update(extractInitialKnowledge(obj));
componentInstance.setKnowledgeManager(km);
KnowledgeManagersView view = new KnowledgeManagerViewImpl(km, container);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,9 @@
</knowledgePath>
</triggers>
</componentProcesses>
<ensembleControllers ensembleDefinition="//@ensembleDefinitions.0"/>
<ensembleControllers ensembleDefinition="//@ensembleDefinitions.1"/>
<ensembleControllers ensembleDefinition="//@ensembleDefinitions.2"/>
</componentInstances>
<componentInstances name="cz.cuni.mff.d3s.deeco.annotations.processor.input.samples.CorrectC2">
<componentProcesses method="public static void cz.cuni.mff.d3s.deeco.annotations.processor.input.samples.CorrectC2.process1(java.lang.Integer,java.lang.String,java.lang.Boolean)" name="process1">
Expand All @@ -194,6 +197,9 @@
</knowledgePath>
</triggers>
</componentProcesses>
<ensembleControllers ensembleDefinition="//@ensembleDefinitions.0"/>
<ensembleControllers ensembleDefinition="//@ensembleDefinitions.1"/>
<ensembleControllers ensembleDefinition="//@ensembleDefinitions.2"/>
</componentInstances>
<componentInstances name="cz.cuni.mff.d3s.deeco.annotations.processor.input.samples.CorrectC3">
<componentProcesses method="public static void cz.cuni.mff.d3s.deeco.annotations.processor.input.samples.CorrectC3.process1(java.lang.String)" name="process1">
Expand All @@ -211,5 +217,8 @@
</parameters>
<triggers xsi:type="cz.cuni.mff.d3s.deeco.model.runtime:PeriodicTrigger" period="2000"/>
</componentProcesses>
<ensembleControllers ensembleDefinition="//@ensembleDefinitions.0"/>
<ensembleControllers ensembleDefinition="//@ensembleDefinitions.1"/>
<ensembleControllers ensembleDefinition="//@ensembleDefinitions.2"/>
</componentInstances>
</cz.cuni.mff.d3s.deeco.model.runtime:RuntimeMetadata>
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import cz.cuni.mff.d3s.deeco.annotations.Membership;
import cz.cuni.mff.d3s.deeco.annotations.Out;
import cz.cuni.mff.d3s.deeco.annotations.PeriodicScheduling;
import cz.cuni.mff.d3s.deeco.knowledge.OutWrapper;
import cz.cuni.mff.d3s.deeco.task.ParamHolder;


/**
Expand All @@ -35,7 +35,7 @@ public static boolean membership(

@KnowledgeExchange
public static void map(
@Out("member.leaderPosition") OutWrapper<Waypoint> fLeaderPosition,
@Out("member.leaderPosition") ParamHolder<Waypoint> fLeaderPosition,
@In("coord.position") Waypoint lPosition) {

fLeaderPosition.value = lPosition;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.containsString;

import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.StandardOutputStreamLog;
Expand All @@ -30,8 +29,11 @@ public class ConvoyTest {
@Rule
public final StandardOutputStreamLog log = new StandardOutputStreamLog ();

public static void main(String[] args) throws AnnotationParsingException, InterruptedException {
new ConvoyTest().testConvoy();
}

@Test
@Ignore
public void testConvoy() throws AnnotationParsingException, InterruptedException {

AnnotationProcessor processor = new AnnotationProcessor(RuntimeMetadataFactoryExt.eINSTANCE);
Expand All @@ -52,6 +54,6 @@ public void testConvoy() throws AnnotationParsingException, InterruptedException
runtime.stop();

// THEN the follower reaches his destination
assertThat(log.getLog(), containsString("Follower F: me = (1,4)"));
assertThat(log.getLog(), containsString("Follower F: me = (1,3)"));
}
}

0 comments on commit 7d259db

Please sign in to comment.