From 552abf7bc2331cf458d90fb71282bb4840656d11 Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Wed, 19 Jan 2022 16:10:56 +0100 Subject: [PATCH] working on forwarding using implicit NTAs - fix regression errors --- .../src/main/jastadd/Intermediate.jadd | 8 +++++++- .../ragconnect/tests/ForwardingTest.java | 1 - .../singleList/AbstractSingleListTest.java | 19 +++++++++---------- .../singleList/SingleListIncrementalTest.java | 17 +++++------------ .../singleList/SingleListManualTest.java | 17 +++++------------ 5 files changed, 26 insertions(+), 36 deletions(-) diff --git a/ragconnect.base/src/main/jastadd/Intermediate.jadd b/ragconnect.base/src/main/jastadd/Intermediate.jadd index 438ce31..1fdb8c8 100644 --- a/ragconnect.base/src/main/jastadd/Intermediate.jadd +++ b/ragconnect.base/src/main/jastadd/Intermediate.jadd @@ -5,6 +5,10 @@ Design considerations */ aspect NewStuff { // unsorted + inh boolean EndpointDefinition.isImplied(); + eq ConnectSpecification.getEndpointDefinition().isImplied() = false; + eq EndpointTarget.impliedEndpointDefinitions().isImplied() = true; + syn String TypeComponent.disconnectMethodName() { List<TypeEndpointTarget> typeEndpointTargets = getTypeEndpointTargets(); if (typeEndpointTargets.isEmpty()) { @@ -414,7 +418,9 @@ aspect MustacheReceiveAndSendAndHandleUri { private String TypeEndpointTarget.getterMethodeNameHelper(boolean useForwarding) { return (useForwarding && needForwardingNTA() ? forwardingNTA_Name() : - "get" + getType().getName() + (typeIsList() && (!containingEndpointDefinition().getIndexBasedListAccess() || containingEndpointDefinition().getWithAdd()) ? "List" : "") + (typeIsOpt() ? "Opt" : "") + "NoTransform"); + "get" + getType().getName() + (typeIsList() && (!containingEndpointDefinition().getIndexBasedListAccess() || + containingEndpointDefinition().getWithAdd()) ? "List" : "") + (typeIsOpt() ? "Opt" : "") + + (needForwardingNTA() ? "NoTransform" : "")); } eq ContextFreeTypeEndpointTarget.getterMethodName() = null; diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ForwardingTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ForwardingTest.java index f52459e..64430eb 100644 --- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ForwardingTest.java +++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ForwardingTest.java @@ -25,7 +25,6 @@ import static org.junit.jupiter.api.Assertions.*; * @author rschoene - Initial contribution */ @Tag("Incremental") -@Tag("New") public class ForwardingTest extends AbstractMqttTest { private static final String TOPIC_A_SINGLE = "a-single"; diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/AbstractSingleListTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/AbstractSingleListTest.java index 3301877..832ba76 100644 --- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/AbstractSingleListTest.java +++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/AbstractSingleListTest.java @@ -1,6 +1,5 @@ package org.jastadd.ragconnect.tests.singleList; -import org.awaitility.Awaitility; import org.jastadd.ragconnect.tests.AbstractMqttTest; import org.jastadd.ragconnect.tests.TestUtils; import org.jastadd.ragconnect.tests.TestUtils.IntList; @@ -10,11 +9,7 @@ import singleList.ast.MqttHandler; import java.io.IOException; import java.nio.file.Paths; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Function; @@ -34,6 +29,8 @@ import static org.junit.jupiter.api.Assertions.*; @Tag("SingleList") public abstract class AbstractSingleListTest extends AbstractMqttTest { + protected MqttHandler handler; + public interface TestWrapperJastAddList<T> extends Iterable<T> { int getNumChild(); } @@ -144,10 +141,13 @@ public abstract class AbstractSingleListTest extends AbstractMqttTest { assertTrue(receiverRoot.connectUsingWildcardWithAddA(mqttUri(TOPIC_A_WILDCARD))); // send: explicit topics, wait between connections to ensure correct arrival at receiver - MqttHandler checkArrivalHandler = new MqttHandler().dontSendWelcomeMessage().setHost(TestUtils.getMqttHost()); - ReceiverData checkArrivalData = new ReceiverData(); - checkArrivalHandler.waitUntilReady(2, TimeUnit.SECONDS); - checkArrivalHandler.newConnection("#", bytes -> checkArrivalData.valueSentSinceLastCheck.set(true)); + handler = new MqttHandler().dontSendWelcomeMessage().setHost(TestUtils.getMqttHost()); + data = new ReceiverData(); + handler.waitUntilReady(2, TimeUnit.SECONDS); + handler.newConnection("#", bytes -> { + data.valueSentSinceLastCheck.set(true); + data.numberOfElements += 1; + }); assertTrue(senderRoot.connectA4(mqttUri(TOPIC_A_4), isWriteCurrentValue())); waitForValue(); @@ -163,7 +163,6 @@ public abstract class AbstractSingleListTest extends AbstractMqttTest { assertTrue(senderRoot.connectInOutput(mqttUri(TOPIC_A_5_INOUT), isWriteCurrentValue())); // no need to wait here, because first "checkTree" will wait anyway - checkArrivalHandler.close(); } private void waitForValue() { diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/SingleListIncrementalTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/SingleListIncrementalTest.java index 54bbf67..71280af 100644 --- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/SingleListIncrementalTest.java +++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/SingleListIncrementalTest.java @@ -1,14 +1,14 @@ package org.jastadd.ragconnect.tests.singleList; -import org.jastadd.ragconnect.tests.TestUtils; import org.junit.jupiter.api.Tag; -import singleListInc.ast.*; +import singleListInc.ast.A; +import singleListInc.ast.ReceiverRoot; +import singleListInc.ast.Root; +import singleListInc.ast.SenderRoot; -import java.io.IOException; import java.util.concurrent.TimeUnit; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * Test case "single list incremental". @@ -19,7 +19,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class SingleListIncrementalTest extends AbstractSingleListTest { private Root model; - private MqttHandler handler; SingleListIncrementalTest() { super("singleListInc"); @@ -43,16 +42,10 @@ public class SingleListIncrementalTest extends AbstractSingleListTest { } @Override - protected void setupReceiverAndConnectPart() throws IOException { + protected void setupReceiverAndConnectPart() { model.ragconnectSetupMqttWaitUntilReady(2, TimeUnit.SECONDS); - handler = new MqttHandler().dontSendWelcomeMessage().setHost(TestUtils.getMqttHost()); - assertTrue(handler.waitUntilReady(2, TimeUnit.SECONDS)); - // no dependencies - - data = new ReceiverData(); - handler.newConnection(TOPIC_A_WILDCARD, bytes -> data.numberOfElements += 1); } @Override diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/SingleListManualTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/SingleListManualTest.java index 9a8bf0a..3944322 100644 --- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/SingleListManualTest.java +++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/singleList/SingleListManualTest.java @@ -1,13 +1,13 @@ package org.jastadd.ragconnect.tests.singleList; -import org.jastadd.ragconnect.tests.TestUtils; -import singleList.ast.*; +import singleList.ast.A; +import singleList.ast.ReceiverRoot; +import singleList.ast.Root; +import singleList.ast.SenderRoot; -import java.io.IOException; import java.util.concurrent.TimeUnit; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * Test case "single list manual". @@ -17,7 +17,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class SingleListManualTest extends AbstractSingleListTest { private Root model; - private MqttHandler handler; SingleListManualTest() { super("singleList"); @@ -41,20 +40,14 @@ public class SingleListManualTest extends AbstractSingleListTest { } @Override - protected void setupReceiverAndConnectPart() throws IOException { + protected void setupReceiverAndConnectPart() { model.ragconnectSetupMqttWaitUntilReady(2, TimeUnit.SECONDS); - handler = new MqttHandler().dontSendWelcomeMessage().setHost(TestUtils.getMqttHost()); - assertTrue(handler.waitUntilReady(2, TimeUnit.SECONDS)); - // add dependencies ((SenderRoot) senderRoot).addInputDependencyToA1((SenderRoot) senderRoot); ((SenderRoot) senderRoot).addInputDependencyToA2((SenderRoot) senderRoot); ((SenderRoot) senderRoot).addInputDependencyToA3((SenderRoot) senderRoot); ((SenderRoot) senderRoot).addInputDependencyToA4((SenderRoot) senderRoot); - - data = new ReceiverData(); - handler.newConnection(TOPIC_A_WILDCARD, bytes -> data.numberOfElements += 1); } @Override -- GitLab