diff --git a/src/main/jastadd/gen/Package.relast b/src/main/jastadd/gen/Package.relast index ea32545781a9288dca92f444503c39c64dcd01c7..5375c99a9ea93652b719bc0cdee47c51c7035c72 100644 --- a/src/main/jastadd/gen/Package.relast +++ b/src/main/jastadd/gen/Package.relast @@ -11,8 +11,8 @@ GradleFile:TemplateFile ; abstract JavaFile:TemplateFile ; NodeFile:JavaFile ; -SubscriberFile:JavaFile ; -ServerFile:JavaFile ; +SubscriberFile:JavaFile ::= <NetCount:Integer> <SubscriberCount:Integer>; +ServerFile:JavaFile ::= <NetCount:Integer> <ServerCount:Integer>; MainFile:JavaFile ; MapperFile:JavaFile ; TokenFile:JavaFile ; diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java b/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java index bd96711cd071cef60d46a1ba1963c41f40c84231..edea8a0082e6857ffce2df835e1e88783bda39f6 100644 --- a/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java +++ b/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java @@ -18,13 +18,13 @@ public class Main { public static void main(java.lang.String[] args) throws IOException { - if(args.length != 1){ - System.out.println("Error: Invalid arguments."); - return; - } + // if(args.length != 1){ + // System.out.println("Error: Invalid arguments."); + // return; + // } - String configPath = args[0]; - // String configPath = "src/test/resources/GeneratorConfig.json"; + //String configPath = args[0]; + String configPath = "src/test/resources/GeneratorConfig.json"; ObjectMapper generatorConfigObjectMapper = new ObjectMapper(); GeneratorConfig gc = generatorConfigObjectMapper.readValue(Files.readString(Paths.get(configPath)), GeneratorConfig.class); diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java b/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java index c19c514194652515bbea00e387951cf0481cbaf0..6c0ce0c69fd4984f54c3f58e97b7f8502a6597d7 100644 --- a/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java +++ b/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java @@ -64,13 +64,13 @@ public class PackageStructureBuilder { if(pf.isTemplateFile()) { if(pf.isJavaFile()){ - System.out.println("Writing file " + pf.getName() + " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java"); + // System.out.println("Writing file " + pf.getName() + " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java"); - System.out.println("Content: \n" + pf.asTemplateFile().getFileContent()); + //System.out.println("Content: \n" + pf.asTemplateFile().getFileContent()); writeToFile(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java", pf.asTemplateFile().getFileContent()); }else { - System.out.println("Writing file " + pf.getName() + " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName()); + //System.out.println("Writing file " + pf.getName() + " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName()); writeToFile(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName(), pf.asTemplateFile().getFileContent()); } } @@ -138,6 +138,8 @@ public class PackageStructureBuilder { if (transitionType.equals(PnmlConstants.TRANSITION_TYPE_SERVICE_REQUEST_OUT)) { ServerFile server = new ServerFile(); server.setName("Node" + i + "Server" + serverCount); + server.setNetCount(i); + server.setServerCount(serverCount); server.setFileID(UUID.randomUUID().toString()); pd.addFile(server); serverCount++; @@ -146,6 +148,8 @@ public class PackageStructureBuilder { || transitionType.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_UNLIMITED_IN)) { SubscriberFile subscriber = new SubscriberFile(); subscriber.setName("Node" + i + "Subscriber" + subscriberCount); + subscriber.setNetCount(i); + subscriber.setSubscriberCount(subscriberCount); subscriber.setFileID(UUID.randomUUID().toString()); pd.addFile(subscriber); subscriberCount++; @@ -363,9 +367,10 @@ public class PackageStructureBuilder { if (transitionType.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_LIMITED_IN) || transitionType.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_UNLIMITED_IN)) { - pf.setName("Node" + i + "Subscriber" + (subscriberCountMap.get(nets.get(i).getId()) -1 )); + System.out.println("t:" + t.getId()); + pf.setName("Node" + pf.asSubscriberFile().getNetCount() + "Subscriber" + pf.asSubscriberFile().getSubscriberCount()); pf.asSubscriberFile().generate(); - subscriberCountMap.put(nets.get(i).getId(), subscriberCountMap.get(nets.get(i).getId()) + 1); + //subscriberCountMap.put(nets.get(i).getId(), subscriberCountMap.get(nets.get(i).getId()) + 1); visitedPackageFileIDs.add(pf.getFileID()); } } diff --git a/src/main/resources/mustache/JavaMain.mustache b/src/main/resources/mustache/JavaMain.mustache index 63a5bf41398d2c0ad9ac339792f42b2d9ef15dda..b4e6585d23b1844d61f7fa86062ecdcf542e427d 100644 --- a/src/main/resources/mustache/JavaMain.mustache +++ b/src/main/resources/mustache/JavaMain.mustache @@ -1,7 +1,6 @@ {{#mainExecutionContext}} package de.tudresden.inf.st.{{{packageNamespace}}}; -import com.fasterxml.jackson.databind.ObjectMapper; import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback; import de.tudresden.inf.st.pnml.engine.execution.TransitionCallbackService; import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; @@ -13,9 +12,15 @@ import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; import de.tudresden.inf.st.sample.balloon.Token; import de.tudresden.inf.st.sample.callback.AbstractNetCallback; import de.tudresden.inf.st.sample.callback.CallbackMapper; -import de.tudresden.inf.st.sample.communication.Node2Subscriber1; -import de.tudresden.inf.st.sample.nodes.Node1; -import de.tudresden.inf.st.sample.nodes.Node2; +{{#serverInfos}} +import de.tudresden.inf.st.sample.communication.{{{serverClassName}}}; +{{/serverInfos}} +{{#subscriberInfos}} +import de.tudresden.inf.st.sample.communication.{{{subscriberClassName}}}; +{{/subscriberInfos}} +{{#nodeInfos}} +import de.tudresden.inf.st.sample.nodes.{{{nodeClassName}}}; +{{/nodeInfos}} import org.ros.node.DefaultNodeMainExecutor; import org.ros.node.NodeConfiguration; import org.ros.node.NodeMainExecutor; @@ -75,9 +80,9 @@ public class Main { */ {{#nodeInfos}} - Map<String, List<AbstractNetCallback>> callbackMap{{{nodeName}}} = CallbackMapper.initCallbacksFor{{{nodeName}}}(petriNets.get({{{nodeIndex}}})); + Map<String, List<AbstractNetCallback>> callbackMap{{{nodeClassName}}} = CallbackMapper.initCallbacksFor{{{nodeClassName}}}(petriNets.get({{{nodeIndex}}})); - for (Map.Entry<String, List<AbstractNetCallback>> entry : callbackMap{{{nodeName}}}.entrySet()) { + for (Map.Entry<String, List<AbstractNetCallback>> entry : callbackMap{{{nodeClassName}}}.entrySet()) { for(AbstractNetCallback anc : entry.getValue()){ transitionCallbackService.registerCallback(petriNets.get({{{nodeIndex}}}), entry.getKey(), anc); } @@ -108,4 +113,7 @@ public class Main { start(); } }; {{/nodeInfos}} + + } + } {{/mainExecutionContext}} \ No newline at end of file diff --git a/src/test/resources/EngineConfig.json b/src/test/resources/EngineConfig.json index dec50c2628996d2a3e55bb9695964d16cf1b4237..53855b3de91f045427a103fde80d3c15056c8fc9 100644 --- a/src/test/resources/EngineConfig.json +++ b/src/test/resources/EngineConfig.json @@ -1,6 +1,9 @@ [{ - "net" : "/home/sebastian/Desktop/publisher-net.pnml" + "net" : "/home/sebastian/Desktop/tmp/net00.pnml" }, { - "net" : "/home/sebastian/Desktop/subscriber-net.pnml" + "net" : "/home/sebastian/Desktop/tmp/net01.pnml" +}, +{ + "net" : "/home/sebastian/Desktop/tmp/net02.pnml" }] diff --git a/src/test/resources/GeneratorConfig.json b/src/test/resources/GeneratorConfig.json index 9c185f5402837000fa30cd96c8939720eb5e538b..ca8bd504638918f52c170d3f51f133c3e571c3fb 100644 --- a/src/test/resources/GeneratorConfig.json +++ b/src/test/resources/GeneratorConfig.json @@ -3,9 +3,9 @@ "rootName" : "sample-pkg", "namespace" : "sample", "version" : "0.1", - "configFile" : "/home/sebastian/jastadd-workspaces/dineros-linked-ws/pnml-relast-tools/pnml-relast-pkg-gen/src/test/resources/EngineConfig.json", + "configFile" : "EngineConfig.json", "rosHost" : "localhost", "rosMasterUri" : "http://localhost:11311", "mqttHost" : "localhost", - "targetPath" :"/home/sebastian/Desktop" + "targetPath" :"" } \ No newline at end of file