From 4bac5407b974362c34618fea40b80ab3d7ca5de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Sch=C3=B6ne?= <rene.schoene@tu-dresden.de> Date: Wed, 25 Jan 2023 15:50:01 +0100 Subject: [PATCH] Resolve ""error: variable handler is already defined" when using multiple protocols" --- pages/docs/changelog.md | 8 ++++++ .../main/resources/sendDefinition.mustache | 27 ++++++++++--------- ragconnect.tests/build.gradle | 2 +- .../ragconnect/tests/AttributeTest.java | 1 - .../tests/tree/AbstractTreeTest.java | 1 - 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/pages/docs/changelog.md b/pages/docs/changelog.md index 79386ad..138ad9b 100644 --- a/pages/docs/changelog.md +++ b/pages/docs/changelog.md @@ -1,5 +1,13 @@ # Changelog +## 1.0.1 (dev) + +### Changes + +### Development Changes + +- Bugfix: "error: variable handler is already defined" when using multiple protocols [#58](https://git-st.inf.tu-dresden.de/jastadd/ragconnect/-/issues/58) + ## 1.0.0 ### Changes diff --git a/ragconnect.base/src/main/resources/sendDefinition.mustache b/ragconnect.base/src/main/resources/sendDefinition.mustache index 9c7dac4..d976185 100644 --- a/ragconnect.base/src/main/resources/sendDefinition.mustache +++ b/ragconnect.base/src/main/resources/sendDefinition.mustache @@ -7,23 +7,24 @@ public boolean {{parentTypeName}}.{{connectMethodName}}(String {{connectParamete switch (scheme) { {{#javaHandler}} {{#InUse}} - case "java": - final JavaHandler handler = {{attributeName}}(); + case "java": { + final JavaHandler handler = {{attributeName}}(); - {{senderName}}.add(() -> { - handler.push(path, {{lastValueGetterCall}}); - }{{#IndexBasedListAccess}}, index{{/IndexBasedListAccess}}, connectToken); - {{updateMethodName}}(); - if (writeCurrentValue) { - {{writeMethodName}}({{#IndexBasedListAccess}}index, {{/IndexBasedListAccess}}connectToken); + {{senderName}}.add(() -> { + handler.push(path, {{lastValueGetterCall}}); + }{{#IndexBasedListAccess}}, index{{/IndexBasedListAccess}}, connectToken); + {{updateMethodName}}(); + if (writeCurrentValue) { + {{writeMethodName}}({{#IndexBasedListAccess}}index, {{/IndexBasedListAccess}}connectToken); + } + success = true; + break; } - success = true; - break; {{/InUse}} {{/javaHandler}} {{#mqttHandler}} {{#InUse}} - case "mqtt": + case "mqtt": { final MqttHandler handler = {{attributeName}}().resolveHandler(uri); final String topic = {{attributeName}}().extractTopic(uri); {{senderName}}.add(() -> { @@ -45,16 +46,18 @@ public boolean {{parentTypeName}}.{{connectMethodName}}(String {{connectParamete } success = true; break; + } {{/InUse}} {{/mqttHandler}} {{#restHandler}} {{#InUse}} - case "rest": + case "rest": { success = {{attributeName}}().newGETConnection(connectToken, () -> { {{updateMethodName}}({{#IndexBasedListAccess}}index{{/IndexBasedListAccess}}); return new String({{lastValueGetterCall}}); }); break; + } {{/InUse}} {{/restHandler}} default: diff --git a/ragconnect.tests/build.gradle b/ragconnect.tests/build.gradle index c5e6f13..fb5e710 100644 --- a/ragconnect.tests/build.gradle +++ b/ragconnect.tests/build.gradle @@ -244,7 +244,7 @@ task compileVia(type: RagConnectTest) { inputFiles = [file('src/test/01-input/via/Test.relast'), file('src/test/01-input/via/Test.connect')] rootNode = 'A' - protocols = ['mqtt', 'rest'] + protocols = ['mqtt', 'rest', 'java'] extraOptions = defaultRagConnectOptionsAnd() } relast { diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/AttributeTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/AttributeTest.java index 7073e6d..ee1b7e5 100644 --- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/AttributeTest.java +++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/AttributeTest.java @@ -26,7 +26,6 @@ import static org.junit.jupiter.api.Assertions.*; * @author rschoene - Initial contribution */ @Tag("Incremental") -@Tag("New") public class AttributeTest extends AbstractMqttTest { private static final String TOPIC_WILDCARD = "attr/#"; diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/tree/AbstractTreeTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/tree/AbstractTreeTest.java index 9b2e18f..c8f87c1 100644 --- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/tree/AbstractTreeTest.java +++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/tree/AbstractTreeTest.java @@ -16,7 +16,6 @@ import static org.junit.jupiter.api.Assertions.*; * @author rschoene - Initial contribution */ @Tag("Tree") -@Tag("New") public abstract class AbstractTreeTest extends AbstractMqttTest { protected static final String TOPIC_ALFA = "alfa"; protected ReceiverData data; -- GitLab