diff --git a/src/main/java/fr/labri/starnet/SimulationFactory.java b/src/main/java/fr/labri/starnet/SimulationFactory.java index cfb2759..6cec5d9 100644 --- a/src/main/java/fr/labri/starnet/SimulationFactory.java +++ b/src/main/java/fr/labri/starnet/SimulationFactory.java @@ -131,10 +131,10 @@ public SimulationFactory setPolicyAdapterFactory(String path) throws JDOMExcepti public SimulationFactory setPolicyAdapterFactory(String path, String namespace) throws JDOMException, IOException { ClassLoader cl = new AutoQualifiedClassLoader(DEFAULT_NAMESPACE); if(!DEFAULT_NAMESPACE.equals(namespace)) - cl = new AutoQualifiedClassLoader(namespace); + cl = new AutoQualifiedClassLoader(namespace, cl); final TimedAutomataFactory timaFactory = new TimedAutomataFactory<>(TimedAutomataFactory.getReflectNodeBuilder(cl, INode.class)); - timaFactory.loadXML(getClass().getResourceAsStream(path)); + timaFactory.loadXML(getClass().getResourceAsStream(path)).get(0).compile(); _policyAdapterFactory = new PolicyAdapterFactory() { @Override diff --git a/src/main/java/fr/labri/starnet/policies/commons/BasicActions.java b/src/main/java/fr/labri/starnet/policies/commons/BasicActions.java index e600fdc..f6be7d4 100644 --- a/src/main/java/fr/labri/starnet/policies/commons/BasicActions.java +++ b/src/main/java/fr/labri/starnet/policies/commons/BasicActions.java @@ -16,7 +16,8 @@ public static class InitEnv extends ActionAdapter { public Map storage; @Override - public void preAction(INode context, String key) { + public void postAction(INode context, String key) { + System.out.println("InitEnv"); storage = context.getStorage(); storage.put(CommonVar.DATA_SET, new DataSet()); storage.put(CommonVar.HELLO_SET, new HelloSet()); @@ -29,6 +30,7 @@ public static class SaveMailBox extends ActionAdapter { @Override public void postAction(INode context, String key) { + System.out.println("SaveMailBox"); storage = context.getStorage(); Message[] r = context.receive(); Deque stack = new ArrayDeque(Arrays.asList(r)); diff --git a/src/main/java/fr/labri/starnet/policies/commons/DataActions.java b/src/main/java/fr/labri/starnet/policies/commons/DataActions.java index 4dd3268..a1208bf 100644 --- a/src/main/java/fr/labri/starnet/policies/commons/DataActions.java +++ b/src/main/java/fr/labri/starnet/policies/commons/DataActions.java @@ -8,6 +8,7 @@ public class DataActions { public static class AddToDataSet extends ITimedAutomata.ActionAdapter { @Override public void postAction(INode context, String key) { + System.out.println("AddToDataSet"); Utils.addToSet(context.getStorage(), CommonVar.DATA_SET, CommonVar.CURRENT_MESSAGE); } } @@ -15,6 +16,7 @@ public void postAction(INode context, String key) { public static class AddToForwardedSet extends ITimedAutomata.ActionAdapter { @Override public void postAction(INode context, String key) { + System.out.println("AddToForwardSet"); Utils.addToSet(context.getStorage(), CommonVar.FORWARDED_MESSAGE_SET, CommonVar.CURRENT_MESSAGE); } } diff --git a/src/main/java/fr/labri/starnet/policies/commons/HelloActions.java b/src/main/java/fr/labri/starnet/policies/commons/HelloActions.java index c60bab9..82ad618 100644 --- a/src/main/java/fr/labri/starnet/policies/commons/HelloActions.java +++ b/src/main/java/fr/labri/starnet/policies/commons/HelloActions.java @@ -11,6 +11,7 @@ public class HelloActions { public static class AddToHelloSet extends ActionAdapter { @Override public void postAction(INode context, String key) { + System.out.println("AddToHelloSet"); Utils.addToSet(context.getStorage(), CommonVar.HELLO_SET, CommonVar.CURRENT_MESSAGE); } } @@ -30,6 +31,7 @@ public void postAction(INode context, String key) { public static class SendHello extends ActionAdapter { @Override public void postAction(INode context, String key) { + System.out.println("SendHello"); context.send(context.newMessage().create(Message.Type.HELLO)); } } diff --git a/src/main/java/fr/labri/starnet/policies/commons/HelloGuards.java b/src/main/java/fr/labri/starnet/policies/commons/HelloGuards.java index 6457f0d..d9c1f85 100644 --- a/src/main/java/fr/labri/starnet/policies/commons/HelloGuards.java +++ b/src/main/java/fr/labri/starnet/policies/commons/HelloGuards.java @@ -16,6 +16,7 @@ public static class IsEmpty extends PredicateAdapter { public IsEmpty() {} @Override public boolean isValid(INode context, String key) { + System.out.println("IsEmpty"); return isEmpty(context.getStorage(),CommonVar.HELLO_SET); } } @@ -24,6 +25,7 @@ public static class IsNotEmpty extends PredicateAdapter { public IsNotEmpty() {} @Override public boolean isValid(INode context, String key) { + System.out.println("IsNotEmpty"); return !isEmpty(context.getStorage(),CommonVar.HELLO_SET); } } diff --git a/src/main/java/fr/labri/starnet/policies/commons/MailBoxGuards.java b/src/main/java/fr/labri/starnet/policies/commons/MailBoxGuards.java index 7bf69ce..aadbc2f 100644 --- a/src/main/java/fr/labri/starnet/policies/commons/MailBoxGuards.java +++ b/src/main/java/fr/labri/starnet/policies/commons/MailBoxGuards.java @@ -13,7 +13,7 @@ public class MailBoxGuards { static public boolean popIfTypeAndSetCurrent(Map storage, Message.Type type) { @SuppressWarnings("unchecked") Deque mailbox = (Deque) storage.get(CommonVar.SAVED_MAILBOX); - if(mailbox.peek().getType()==type){ + if(!mailbox.isEmpty() && mailbox.peek().getType()==type){ storage.put(CommonVar.CURRENT_MESSAGE, mailbox.pop()); return true; } @@ -24,6 +24,7 @@ public static class PopAndIsHelloMsg extends PredicateAdapter { public PopAndIsHelloMsg() {} @Override public boolean isValid(INode context, String key) { + System.out.println("IsHello"); return popIfTypeAndSetCurrent(context.getStorage(), Message.Type.HELLO); } } @@ -32,6 +33,7 @@ public static class PopAndIsDataMsg extends PredicateAdapter { public PopAndIsDataMsg() {} @Override public boolean isValid(INode context, String key) { + System.out.println("IsData"); return popIfTypeAndSetCurrent(context.getStorage(), Message.Type.DATA); } } @@ -48,6 +50,7 @@ public static class IsEmpty extends PredicateAdapter { public IsEmpty() {} @Override public boolean isValid(INode context, String key) { + System.out.println("MailBoxIsEmpty"); return Utils.isEmpty(context.getStorage(),CommonVar.SAVED_MAILBOX); } } @@ -56,7 +59,8 @@ public static class IsNotEmpty extends PredicateAdapter { public IsNotEmpty() {} @Override public boolean isValid(INode context, String key) { - return !Utils.isEmpty(context.getStorage(),CommonVar.SAVED_MAILBOX); + System.out.println("MailBoxIsNotEmpty"); + return !Utils.isEmpty(context.getStorage(), CommonVar.SAVED_MAILBOX); } } } diff --git a/src/main/java/fr/labri/starnet/policies/push/GossipPush.xml b/src/main/java/fr/labri/starnet/policies/push/GossipPush.xml deleted file mode 100644 index 5a638e2..0000000 --- a/src/main/java/fr/labri/starnet/policies/push/GossipPush.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/java/fr/labri/starnet/policies/push/GossipPushGuards.java b/src/main/java/fr/labri/starnet/policies/push/GossipPushGuards.java index 8bd18e7..f52db00 100644 --- a/src/main/java/fr/labri/starnet/policies/push/GossipPushGuards.java +++ b/src/main/java/fr/labri/starnet/policies/push/GossipPushGuards.java @@ -15,6 +15,7 @@ public static class ShouldForwardMsg extends PredicateAdapter { DataSet data_set; @Override public boolean isValid(INode context, String key) { + System.out.println("ShouldForwardMsg"); storage= context.getStorage(); Message msg = (Message) storage.get(CommonVar.CURRENT_MESSAGE); data_set=(DataSet) storage.get(CommonVar.DATA_SET); diff --git a/src/main/java/fr/labri/starnet/policies/rbop/RBOP.xml b/src/main/java/fr/labri/starnet/policies/rbop/RBOP.xml index 720f0a5..7c8cc14 100644 --- a/src/main/java/fr/labri/starnet/policies/rbop/RBOP.xml +++ b/src/main/java/fr/labri/starnet/policies/rbop/RBOP.xml @@ -107,7 +107,7 @@ - + diff --git a/src/main/resources/fr/labri/starnet/policies/push/GossipPush.xml b/src/main/resources/fr/labri/starnet/policies/push/GossipPush.xml index 4818632..08805e6 100644 --- a/src/main/resources/fr/labri/starnet/policies/push/GossipPush.xml +++ b/src/main/resources/fr/labri/starnet/policies/push/GossipPush.xml @@ -1,35 +1,28 @@ - + - - + - - - - + + + - + - - - - - + - + - + diff --git a/src/test/java/fr/labri/starnet/TestSimuDav.java b/src/test/java/fr/labri/starnet/TestSimuDav.java new file mode 100644 index 0000000..f3e37a2 --- /dev/null +++ b/src/test/java/fr/labri/starnet/TestSimuDav.java @@ -0,0 +1,21 @@ +package fr.labri.starnet; + +import java.io.IOException; + +import org.jdom2.JDOMException; + +import fr.labri.starnet.models.FailureModel; +import fr.labri.starnet.models.RandomSend; +import fr.labri.starnet.ui.SimpleUI; + +public class TestSimuDav { + + public static void main(String[] args) throws JDOMException, IOException { + SimulationFactory factory = new SimulationFactory().add(new FailureModel()).add(new RandomSend()); + factory.setPolicyAdapterFactory("fr.labri.starnet.policies.push.GossipPush"); + Simulation simu = factory.createSimulation(); + SimpleUI.createDefaultLayout(simu).setVisible(true); + simu.start(); + } + +} diff --git a/src/test/java/fr/labri/tima/TestViewer.java b/src/test/java/fr/labri/tima/TestViewer.java index c0d7e8c..b75c41e 100644 --- a/src/test/java/fr/labri/tima/TestViewer.java +++ b/src/test/java/fr/labri/tima/TestViewer.java @@ -15,7 +15,7 @@ public class TestViewer { public static void main(String[] args) throws JDOMException, IOException { SimpleNodeFactory factory = new SimpleNodeFactory(); - List> autos = new TimedAutomataFactory(factory).loadXML(TestViewer.class.getResourceAsStream("/fr/labri/starnet/policies/pull/GossipPull.xml")); + List> autos = new TimedAutomataFactory(factory).loadXML(TestViewer.class.getResourceAsStream("/fr/labri/starnet/policies/push/GossipPush.xml")); JFrame frame = new JFrame("test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);