From 810588728e017427efcacdcb8e38820b5e3d4758 Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Thu, 3 Jun 2021 10:39:26 +0200
Subject: [PATCH] add checks for scheme, host and path after processing an uri
 for connection

---
 .../src/main/resources/handleUri.mustache     | 14 +++-
 .../ragconnect/tests/DefaultOnlyReadTest.java | 67 ++++++++++---------
 .../tests/DefaultOnlyWriteTest.java           | 66 +++++++++---------
 .../jastadd/ragconnect/tests/ExampleTest.java |  6 +-
 .../tests/IncrementalDependencyTest.java      |  8 +--
 .../jastadd/ragconnect/tests/MappingTest.java | 46 ++++++-------
 .../ragconnect/tests/Read1Write2Test.java     | 18 ++---
 .../ragconnect/tests/Read2Write1Test.java     | 16 ++---
 .../ragconnect/tests/RegressionTests.java     | 29 +++++++-
 .../ragconnect/tests/TokenValueSendTest.java  | 12 ++--
 .../TreeAllowedTokensIncrementalTest.java     | 16 ++---
 .../tests/TreeAllowedTokensManualTest.java    | 16 ++---
 .../ragconnect/tests/TreeIncrementalTest.java |  4 +-
 .../ragconnect/tests/TreeManualTest.java      |  4 +-
 .../ragconnect/tests/TutorialTest.java        |  9 +--
 .../org/jastadd/ragconnect/tests/ViaTest.java | 24 +++----
 16 files changed, 198 insertions(+), 157 deletions(-)

diff --git a/ragconnect.base/src/main/resources/handleUri.mustache b/ragconnect.base/src/main/resources/handleUri.mustache
index 1a20e7c..aa4176e 100644
--- a/ragconnect.base/src/main/resources/handleUri.mustache
+++ b/ragconnect.base/src/main/resources/handleUri.mustache
@@ -1,4 +1,4 @@
-String scheme,host, path;
+String scheme, host, path;
 java.net.URI uri;
 try {
   uri = new java.net.URI({{connectParameterName}});
@@ -9,3 +9,15 @@ try {
   System.err.println(e.getMessage());  // Maybe re-throw error?
   return false;
 }
+if (scheme == null || scheme.isBlank()) {
+  System.err.println("Missing or empty scheme in " + uri);
+  return false;
+}
+if (host == null || host.isBlank()) {
+  System.err.println("Missing or empty host in " + uri);
+  return false;
+}
+if (path == null || path.isBlank()) {
+  System.err.println("Missing or empty path in " + uri);
+  return false;
+}
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/DefaultOnlyReadTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/DefaultOnlyReadTest.java
index cd4c998..d9cf9d9 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/DefaultOnlyReadTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/DefaultOnlyReadTest.java
@@ -12,6 +12,7 @@ import java.util.concurrent.TimeUnit;
 import static org.jastadd.ragconnect.tests.TestUtils.mqttUri;
 import static org.jastadd.ragconnect.tests.TestUtils.testJaddContainReferenceToJackson;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Test case "defaultOnlyRead".
@@ -67,39 +68,39 @@ public class DefaultOnlyReadTest extends AbstractMqttTest {
   protected void setupReceiverAndConnect(boolean writeCurrentValue) throws IOException {
     model.ragconnectSetupMqttWaitUntilReady(2, TimeUnit.SECONDS);
 
-    integers.connectBooleanValue(mqttUri(TOPIC_NATIVE_BOOLEAN));
-    integers.connectIntValue(mqttUri(TOPIC_NATIVE_INT));
-    integers.connectShortValue(mqttUri(TOPIC_NATIVE_SHORT));
-    integers.connectLongValue(mqttUri(TOPIC_NATIVE_LONG));
-    floats.connectFloatValue(mqttUri(TOPIC_NATIVE_FLOAT));
-    floats.connectDoubleValue(mqttUri(TOPIC_NATIVE_DOUBLE));
-    chars.connectCharValue(mqttUri(TOPIC_NATIVE_CHAR));
-    chars.connectStringValue(mqttUri(TOPIC_NATIVE_STRING));
-
-    integers.connectBooleanValueTransformed(mqttUri(TOPIC_NATIVE_BOOLEAN));
-    integers.connectIntValueTransformed(mqttUri(TOPIC_NATIVE_INT));
-    integers.connectShortValueTransformed(mqttUri(TOPIC_NATIVE_SHORT));
-    integers.connectLongValueTransformed(mqttUri(TOPIC_NATIVE_LONG));
-    floats.connectFloatValueTransformed(mqttUri(TOPIC_NATIVE_FLOAT));
-    floats.connectDoubleValueTransformed(mqttUri(TOPIC_NATIVE_DOUBLE));
-    chars.connectCharValueTransformed(mqttUri(TOPIC_NATIVE_CHAR));
-    chars.connectStringValueTransformed(mqttUri(TOPIC_NATIVE_STRING));
-
-    allBoxed.connectBooleanValue(mqttUri(TOPIC_BOXED_BOOLEAN));
-    allBoxed.connectIntValue(mqttUri(TOPIC_BOXED_INTEGER));
-    allBoxed.connectShortValue(mqttUri(TOPIC_BOXED_SHORT));
-    allBoxed.connectLongValue(mqttUri(TOPIC_BOXED_LONG));
-    allBoxed.connectFloatValue(mqttUri(TOPIC_BOXED_FLOAT));
-    allBoxed.connectDoubleValue(mqttUri(TOPIC_BOXED_DOUBLE));
-    allBoxed.connectCharValue(mqttUri(TOPIC_BOXED_CHARACTER));
-
-    allBoxed.connectBooleanValueTransformed(mqttUri(TOPIC_BOXED_BOOLEAN));
-    allBoxed.connectIntValueTransformed(mqttUri(TOPIC_BOXED_INTEGER));
-    allBoxed.connectShortValueTransformed(mqttUri(TOPIC_BOXED_SHORT));
-    allBoxed.connectLongValueTransformed(mqttUri(TOPIC_BOXED_LONG));
-    allBoxed.connectFloatValueTransformed(mqttUri(TOPIC_BOXED_FLOAT));
-    allBoxed.connectDoubleValueTransformed(mqttUri(TOPIC_BOXED_DOUBLE));
-    allBoxed.connectCharValueTransformed(mqttUri(TOPIC_BOXED_CHARACTER));
+    assertTrue(integers.connectBooleanValue(mqttUri(TOPIC_NATIVE_BOOLEAN)));
+    assertTrue(integers.connectIntValue(mqttUri(TOPIC_NATIVE_INT)));
+    assertTrue(integers.connectShortValue(mqttUri(TOPIC_NATIVE_SHORT)));
+    assertTrue(integers.connectLongValue(mqttUri(TOPIC_NATIVE_LONG)));
+    assertTrue(floats.connectFloatValue(mqttUri(TOPIC_NATIVE_FLOAT)));
+    assertTrue(floats.connectDoubleValue(mqttUri(TOPIC_NATIVE_DOUBLE)));
+    assertTrue(chars.connectCharValue(mqttUri(TOPIC_NATIVE_CHAR)));
+    assertTrue(chars.connectStringValue(mqttUri(TOPIC_NATIVE_STRING)));
+
+    assertTrue(integers.connectBooleanValueTransformed(mqttUri(TOPIC_NATIVE_BOOLEAN)));
+    assertTrue(integers.connectIntValueTransformed(mqttUri(TOPIC_NATIVE_INT)));
+    assertTrue(integers.connectShortValueTransformed(mqttUri(TOPIC_NATIVE_SHORT)));
+    assertTrue(integers.connectLongValueTransformed(mqttUri(TOPIC_NATIVE_LONG)));
+    assertTrue(floats.connectFloatValueTransformed(mqttUri(TOPIC_NATIVE_FLOAT)));
+    assertTrue(floats.connectDoubleValueTransformed(mqttUri(TOPIC_NATIVE_DOUBLE)));
+    assertTrue(chars.connectCharValueTransformed(mqttUri(TOPIC_NATIVE_CHAR)));
+    assertTrue(chars.connectStringValueTransformed(mqttUri(TOPIC_NATIVE_STRING)));
+
+    assertTrue(allBoxed.connectBooleanValue(mqttUri(TOPIC_BOXED_BOOLEAN)));
+    assertTrue(allBoxed.connectIntValue(mqttUri(TOPIC_BOXED_INTEGER)));
+    assertTrue(allBoxed.connectShortValue(mqttUri(TOPIC_BOXED_SHORT)));
+    assertTrue(allBoxed.connectLongValue(mqttUri(TOPIC_BOXED_LONG)));
+    assertTrue(allBoxed.connectFloatValue(mqttUri(TOPIC_BOXED_FLOAT)));
+    assertTrue(allBoxed.connectDoubleValue(mqttUri(TOPIC_BOXED_DOUBLE)));
+    assertTrue(allBoxed.connectCharValue(mqttUri(TOPIC_BOXED_CHARACTER)));
+
+    assertTrue(allBoxed.connectBooleanValueTransformed(mqttUri(TOPIC_BOXED_BOOLEAN)));
+    assertTrue(allBoxed.connectIntValueTransformed(mqttUri(TOPIC_BOXED_INTEGER)));
+    assertTrue(allBoxed.connectShortValueTransformed(mqttUri(TOPIC_BOXED_SHORT)));
+    assertTrue(allBoxed.connectLongValueTransformed(mqttUri(TOPIC_BOXED_LONG)));
+    assertTrue(allBoxed.connectFloatValueTransformed(mqttUri(TOPIC_BOXED_FLOAT)));
+    assertTrue(allBoxed.connectDoubleValueTransformed(mqttUri(TOPIC_BOXED_DOUBLE)));
+    assertTrue(allBoxed.connectCharValueTransformed(mqttUri(TOPIC_BOXED_CHARACTER)));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/DefaultOnlyWriteTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/DefaultOnlyWriteTest.java
index c18b185..d8ce0c0 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/DefaultOnlyWriteTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/DefaultOnlyWriteTest.java
@@ -137,39 +137,39 @@ public class DefaultOnlyWriteTest extends AbstractMqttTest {
     dataNormal = createReceiver(false);
     dataTransformed = createReceiver(true);
 
-    nativeIntegers.connectBooleanValue(mqttUri(TOPIC_NATIVE_BOOLEAN), writeCurrentValue);
-    nativeIntegers.connectIntValue(mqttUri(TOPIC_NATIVE_INT), writeCurrentValue);
-    nativeIntegers.connectShortValue(mqttUri(TOPIC_NATIVE_SHORT), writeCurrentValue);
-    nativeIntegers.connectLongValue(mqttUri(TOPIC_NATIVE_LONG), writeCurrentValue);
-    nativeFloats.connectFloatValue(mqttUri(TOPIC_NATIVE_FLOAT), writeCurrentValue);
-    nativeFloats.connectDoubleValue(mqttUri(TOPIC_NATIVE_DOUBLE), writeCurrentValue);
-    nativeChars.connectCharValue(mqttUri(TOPIC_NATIVE_CHAR), writeCurrentValue);
-    nativeChars.connectStringValue(mqttUri(TOPIC_NATIVE_STRING), writeCurrentValue);
-
-    nativeIntegers.connectBooleanValueTransformed(mqttUri(TOPIC_NATIVE_BOOLEAN_TRANSFORMED), writeCurrentValue);
-    nativeIntegers.connectIntValueTransformed(mqttUri(TOPIC_NATIVE_INT_TRANSFORMED), writeCurrentValue);
-    nativeIntegers.connectShortValueTransformed(mqttUri(TOPIC_NATIVE_SHORT_TRANSFORMED), writeCurrentValue);
-    nativeIntegers.connectLongValueTransformed(mqttUri(TOPIC_NATIVE_LONG_TRANSFORMED), writeCurrentValue);
-    nativeFloats.connectFloatValueTransformed(mqttUri(TOPIC_NATIVE_FLOAT_TRANSFORMED), writeCurrentValue);
-    nativeFloats.connectDoubleValueTransformed(mqttUri(TOPIC_NATIVE_DOUBLE_TRANSFORMED), writeCurrentValue);
-    nativeChars.connectCharValueTransformed(mqttUri(TOPIC_NATIVE_CHAR_TRANSFORMED), writeCurrentValue);
-    nativeChars.connectStringValueTransformed(mqttUri(TOPIC_NATIVE_STRING_TRANSFORMED), writeCurrentValue);
-
-    boxedIntegers.connectBooleanValue(mqttUri(TOPIC_BOXED_BOOLEAN), writeCurrentValue);
-    boxedIntegers.connectIntValue(mqttUri(TOPIC_BOXED_INTEGER), writeCurrentValue);
-    boxedIntegers.connectShortValue(mqttUri(TOPIC_BOXED_SHORT), writeCurrentValue);
-    boxedIntegers.connectLongValue(mqttUri(TOPIC_BOXED_LONG), writeCurrentValue);
-    boxedFloats.connectFloatValue(mqttUri(TOPIC_BOXED_FLOAT), writeCurrentValue);
-    boxedFloats.connectDoubleValue(mqttUri(TOPIC_BOXED_DOUBLE), writeCurrentValue);
-    boxedChars.connectCharValue(mqttUri(TOPIC_BOXED_CHARACTER), writeCurrentValue);
-
-    boxedIntegers.connectBooleanValueTransformed(mqttUri(TOPIC_BOXED_BOOLEAN_TRANSFORMED), writeCurrentValue);
-    boxedIntegers.connectIntValueTransformed(mqttUri(TOPIC_BOXED_INTEGER_TRANSFORMED), writeCurrentValue);
-    boxedIntegers.connectShortValueTransformed(mqttUri(TOPIC_BOXED_SHORT_TRANSFORMED), writeCurrentValue);
-    boxedIntegers.connectLongValueTransformed(mqttUri(TOPIC_BOXED_LONG_TRANSFORMED), writeCurrentValue);
-    boxedFloats.connectFloatValueTransformed(mqttUri(TOPIC_BOXED_FLOAT_TRANSFORMED), writeCurrentValue);
-    boxedFloats.connectDoubleValueTransformed(mqttUri(TOPIC_BOXED_DOUBLE_TRANSFORMED), writeCurrentValue);
-    boxedChars.connectCharValueTransformed(mqttUri(TOPIC_BOXED_CHARACTER_TRANSFORMED), writeCurrentValue);
+    assertTrue(nativeIntegers.connectBooleanValue(mqttUri(TOPIC_NATIVE_BOOLEAN), writeCurrentValue));
+    assertTrue(nativeIntegers.connectIntValue(mqttUri(TOPIC_NATIVE_INT), writeCurrentValue));
+    assertTrue(nativeIntegers.connectShortValue(mqttUri(TOPIC_NATIVE_SHORT), writeCurrentValue));
+    assertTrue(nativeIntegers.connectLongValue(mqttUri(TOPIC_NATIVE_LONG), writeCurrentValue));
+    assertTrue(nativeFloats.connectFloatValue(mqttUri(TOPIC_NATIVE_FLOAT), writeCurrentValue));
+    assertTrue(nativeFloats.connectDoubleValue(mqttUri(TOPIC_NATIVE_DOUBLE), writeCurrentValue));
+    assertTrue(nativeChars.connectCharValue(mqttUri(TOPIC_NATIVE_CHAR), writeCurrentValue));
+    assertTrue(nativeChars.connectStringValue(mqttUri(TOPIC_NATIVE_STRING), writeCurrentValue));
+
+    assertTrue(nativeIntegers.connectBooleanValueTransformed(mqttUri(TOPIC_NATIVE_BOOLEAN_TRANSFORMED), writeCurrentValue));
+    assertTrue(nativeIntegers.connectIntValueTransformed(mqttUri(TOPIC_NATIVE_INT_TRANSFORMED), writeCurrentValue));
+    assertTrue(nativeIntegers.connectShortValueTransformed(mqttUri(TOPIC_NATIVE_SHORT_TRANSFORMED), writeCurrentValue));
+    assertTrue(nativeIntegers.connectLongValueTransformed(mqttUri(TOPIC_NATIVE_LONG_TRANSFORMED), writeCurrentValue));
+    assertTrue(nativeFloats.connectFloatValueTransformed(mqttUri(TOPIC_NATIVE_FLOAT_TRANSFORMED), writeCurrentValue));
+    assertTrue(nativeFloats.connectDoubleValueTransformed(mqttUri(TOPIC_NATIVE_DOUBLE_TRANSFORMED), writeCurrentValue));
+    assertTrue(nativeChars.connectCharValueTransformed(mqttUri(TOPIC_NATIVE_CHAR_TRANSFORMED), writeCurrentValue));
+    assertTrue(nativeChars.connectStringValueTransformed(mqttUri(TOPIC_NATIVE_STRING_TRANSFORMED), writeCurrentValue));
+
+    assertTrue(boxedIntegers.connectBooleanValue(mqttUri(TOPIC_BOXED_BOOLEAN), writeCurrentValue));
+    assertTrue(boxedIntegers.connectIntValue(mqttUri(TOPIC_BOXED_INTEGER), writeCurrentValue));
+    assertTrue(boxedIntegers.connectShortValue(mqttUri(TOPIC_BOXED_SHORT), writeCurrentValue));
+    assertTrue(boxedIntegers.connectLongValue(mqttUri(TOPIC_BOXED_LONG), writeCurrentValue));
+    assertTrue(boxedFloats.connectFloatValue(mqttUri(TOPIC_BOXED_FLOAT), writeCurrentValue));
+    assertTrue(boxedFloats.connectDoubleValue(mqttUri(TOPIC_BOXED_DOUBLE), writeCurrentValue));
+    assertTrue(boxedChars.connectCharValue(mqttUri(TOPIC_BOXED_CHARACTER), writeCurrentValue));
+
+    assertTrue(boxedIntegers.connectBooleanValueTransformed(mqttUri(TOPIC_BOXED_BOOLEAN_TRANSFORMED), writeCurrentValue));
+    assertTrue(boxedIntegers.connectIntValueTransformed(mqttUri(TOPIC_BOXED_INTEGER_TRANSFORMED), writeCurrentValue));
+    assertTrue(boxedIntegers.connectShortValueTransformed(mqttUri(TOPIC_BOXED_SHORT_TRANSFORMED), writeCurrentValue));
+    assertTrue(boxedIntegers.connectLongValueTransformed(mqttUri(TOPIC_BOXED_LONG_TRANSFORMED), writeCurrentValue));
+    assertTrue(boxedFloats.connectFloatValueTransformed(mqttUri(TOPIC_BOXED_FLOAT_TRANSFORMED), writeCurrentValue));
+    assertTrue(boxedFloats.connectDoubleValueTransformed(mqttUri(TOPIC_BOXED_DOUBLE_TRANSFORMED), writeCurrentValue));
+    assertTrue(boxedChars.connectCharValueTransformed(mqttUri(TOPIC_BOXED_CHARACTER_TRANSFORMED), writeCurrentValue));
   }
 
   private ReceiverData createReceiver(boolean transformed) {
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ExampleTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ExampleTest.java
index 17bc074..5ad824b 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ExampleTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ExampleTest.java
@@ -97,9 +97,9 @@ public class ExampleTest extends AbstractMqttTest {
       }
     });
 
-    robotArm.connectAppropriateSpeed(mqttUri(TOPIC_CONFIG), writeCurrentValue);
-    link1.connectCurrentPosition(mqttUri(TOPIC_JOINT1));
-    link2.connectCurrentPosition(mqttUri(TOPIC_JOINT2));
+    assertTrue(robotArm.connectAppropriateSpeed(mqttUri(TOPIC_CONFIG), writeCurrentValue));
+    assertTrue(link1.connectCurrentPosition(mqttUri(TOPIC_JOINT1)));
+    assertTrue(link2.connectCurrentPosition(mqttUri(TOPIC_JOINT2)));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/IncrementalDependencyTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/IncrementalDependencyTest.java
index 60d099c..580c4fc 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/IncrementalDependencyTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/IncrementalDependencyTest.java
@@ -73,10 +73,10 @@ public class IncrementalDependencyTest extends AbstractMqttTest {
       dataB2.lastStringValue = TestUtils.DefaultMappings.BytesToString(bytes);
     });
 
-    model.connectInput(mqttUri(TOPIC_IN));
-    model.connectOutputOnA(mqttUri(TOPIC_OUT_A), writeCurrentValue);
-    b1.connectOutputOnB(mqttUri(TOPIC_OUT_B1), writeCurrentValue);
-    b2.connectOutputOnB(mqttUri(TOPIC_OUT_B2), writeCurrentValue);
+    assertTrue(model.connectInput(mqttUri(TOPIC_IN)));
+    assertTrue(model.connectOutputOnA(mqttUri(TOPIC_OUT_A), writeCurrentValue));
+    assertTrue(b1.connectOutputOnB(mqttUri(TOPIC_OUT_B1), writeCurrentValue));
+    assertTrue(b2.connectOutputOnB(mqttUri(TOPIC_OUT_B2), writeCurrentValue));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/MappingTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/MappingTest.java
index 7f83e33..52d7502 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/MappingTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/MappingTest.java
@@ -89,29 +89,29 @@ public class MappingTest extends AbstractMqttTest {
       data.lastNativeBooleanValue = TestUtils.DefaultMappings.BytesToBool(bytes);
     });
 
-    natives.connectWriteIntValue(mqttUri(TOPIC_WRITE_NATIVE_INT), writeCurrentValue);
-    natives.connectWriteShortValue(mqttUri(TOPIC_WRITE_NATIVE_SHORT), writeCurrentValue);
-    natives.connectWriteLongValue(mqttUri(TOPIC_WRITE_NATIVE_LONG), writeCurrentValue);
-    natives.connectWriteFloatValue(mqttUri(TOPIC_WRITE_NATIVE_FLOAT), writeCurrentValue);
-    natives.connectWriteDoubleValue(mqttUri(TOPIC_WRITE_NATIVE_DOUBLE), writeCurrentValue);
-    natives.connectWriteCharValue(mqttUri(TOPIC_WRITE_NATIVE_CHAR), writeCurrentValue);
-    natives.connectWriteBooleanValue(mqttUri(TOPIC_WRITE_NATIVE_BOOLEAN), writeCurrentValue);
-
-    natives.connectIntValue(mqttUri(TOPIC_INPUT));
-    natives.connectShortValue(mqttUri(TOPIC_INPUT));
-    natives.connectLongValue(mqttUri(TOPIC_INPUT));
-    natives.connectFloatValue(mqttUri(TOPIC_INPUT));
-    natives.connectDoubleValue(mqttUri(TOPIC_INPUT));
-    natives.connectCharValue(mqttUri(TOPIC_INPUT));
-    natives.connectBooleanValue(mqttUri(TOPIC_INPUT));
-
-    boxes.connectIntValue(mqttUri(TOPIC_INPUT));
-    boxes.connectShortValue(mqttUri(TOPIC_INPUT));
-    boxes.connectLongValue(mqttUri(TOPIC_INPUT));
-    boxes.connectFloatValue(mqttUri(TOPIC_INPUT));
-    boxes.connectDoubleValue(mqttUri(TOPIC_INPUT));
-    boxes.connectCharValue(mqttUri(TOPIC_INPUT));
-    boxes.connectBooleanValue(mqttUri(TOPIC_INPUT));
+    assertTrue(natives.connectWriteIntValue(mqttUri(TOPIC_WRITE_NATIVE_INT), writeCurrentValue));
+    assertTrue(natives.connectWriteShortValue(mqttUri(TOPIC_WRITE_NATIVE_SHORT), writeCurrentValue));
+    assertTrue(natives.connectWriteLongValue(mqttUri(TOPIC_WRITE_NATIVE_LONG), writeCurrentValue));
+    assertTrue(natives.connectWriteFloatValue(mqttUri(TOPIC_WRITE_NATIVE_FLOAT), writeCurrentValue));
+    assertTrue(natives.connectWriteDoubleValue(mqttUri(TOPIC_WRITE_NATIVE_DOUBLE), writeCurrentValue));
+    assertTrue(natives.connectWriteCharValue(mqttUri(TOPIC_WRITE_NATIVE_CHAR), writeCurrentValue));
+    assertTrue(natives.connectWriteBooleanValue(mqttUri(TOPIC_WRITE_NATIVE_BOOLEAN), writeCurrentValue));
+
+    assertTrue(natives.connectIntValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(natives.connectShortValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(natives.connectLongValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(natives.connectFloatValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(natives.connectDoubleValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(natives.connectCharValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(natives.connectBooleanValue(mqttUri(TOPIC_INPUT)));
+
+    assertTrue(boxes.connectIntValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(boxes.connectShortValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(boxes.connectLongValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(boxes.connectFloatValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(boxes.connectDoubleValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(boxes.connectCharValue(mqttUri(TOPIC_INPUT)));
+    assertTrue(boxes.connectBooleanValue(mqttUri(TOPIC_INPUT)));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/Read1Write2Test.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/Read1Write2Test.java
index 889ce05..76eac95 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/Read1Write2Test.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/Read1Write2Test.java
@@ -100,15 +100,15 @@ public class Read1Write2Test extends AbstractMqttTest {
       dataOther2.lastStringValue = TestUtils.DefaultMappings.BytesToString(bytes);
     });
 
-    onSameNonterminal.connectInput(mqttUri(TOPIC_SAME_READ));
-    onSameNonterminal.connectOutInteger(mqttUri(TOPIC_SAME_WRITE_INT), writeCurrentValue);
-    onSameNonterminal.connectOutString(mqttUri(TOPIC_SAME_WRITE_STRING), writeCurrentValue);
-
-    onDifferentNonterminal.connectInput(mqttUri(TOPIC_DIFFERENT_READ));
-    other1.connectOutInteger(mqttUri(TOPIC_DIFFERENT_WRITE1_INT), writeCurrentValue);
-    other1.connectOutString(mqttUri(TOPIC_DIFFERENT_WRITE1_STRING), writeCurrentValue);
-    other2.connectOutInteger(mqttUri(TOPIC_DIFFERENT_WRITE2_INT), writeCurrentValue);
-    other2.connectOutString(mqttUri(TOPIC_DIFFERENT_WRITE2_STRING), writeCurrentValue);
+    assertTrue(onSameNonterminal.connectInput(mqttUri(TOPIC_SAME_READ)));
+    assertTrue(onSameNonterminal.connectOutInteger(mqttUri(TOPIC_SAME_WRITE_INT), writeCurrentValue));
+    assertTrue(onSameNonterminal.connectOutString(mqttUri(TOPIC_SAME_WRITE_STRING), writeCurrentValue));
+
+    assertTrue(onDifferentNonterminal.connectInput(mqttUri(TOPIC_DIFFERENT_READ)));
+    assertTrue(other1.connectOutInteger(mqttUri(TOPIC_DIFFERENT_WRITE1_INT), writeCurrentValue));
+    assertTrue(other1.connectOutString(mqttUri(TOPIC_DIFFERENT_WRITE1_STRING), writeCurrentValue));
+    assertTrue(other2.connectOutInteger(mqttUri(TOPIC_DIFFERENT_WRITE2_INT), writeCurrentValue));
+    assertTrue(other2.connectOutString(mqttUri(TOPIC_DIFFERENT_WRITE2_STRING), writeCurrentValue));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/Read2Write1Test.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/Read2Write1Test.java
index f0f634c..f6a0d33 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/Read2Write1Test.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/Read2Write1Test.java
@@ -89,14 +89,14 @@ public class Read2Write1Test extends AbstractMqttTest {
       dataOther2.lastIntValue = TestUtils.DefaultMappings.BytesToInt(bytes);
     });
 
-    onSameNonterminal.connectInput1(mqttUri(TOPIC_SAME_READ1));
-    onSameNonterminal.connectInput2(mqttUri(TOPIC_SAME_READ2));
-    onSameNonterminal.connectOutInteger(mqttUri(TOPIC_SAME_WRITE_INT), writeCurrentValue);
-
-    onDifferentNonterminal.connectInput1(mqttUri(TOPIC_DIFFERENT_READ1));
-    onDifferentNonterminal.connectInput2(mqttUri(TOPIC_DIFFERENT_READ2));
-    other1.connectOutInteger(mqttUri(TOPIC_DIFFERENT_WRITE1_INT), writeCurrentValue);
-    other2.connectOutInteger(mqttUri(TOPIC_DIFFERENT_WRITE2_INT), writeCurrentValue);
+    assertTrue(onSameNonterminal.connectInput1(mqttUri(TOPIC_SAME_READ1)));
+    assertTrue(onSameNonterminal.connectInput2(mqttUri(TOPIC_SAME_READ2)));
+    assertTrue(onSameNonterminal.connectOutInteger(mqttUri(TOPIC_SAME_WRITE_INT), writeCurrentValue));
+
+    assertTrue(onDifferentNonterminal.connectInput1(mqttUri(TOPIC_DIFFERENT_READ1)));
+    assertTrue(onDifferentNonterminal.connectInput2(mqttUri(TOPIC_DIFFERENT_READ2)));
+    assertTrue(other1.connectOutInteger(mqttUri(TOPIC_DIFFERENT_WRITE1_INT), writeCurrentValue));
+    assertTrue(other2.connectOutInteger(mqttUri(TOPIC_DIFFERENT_WRITE2_INT), writeCurrentValue));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/RegressionTests.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/RegressionTests.java
index d4d7389..67c8217 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/RegressionTests.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/RegressionTests.java
@@ -1,11 +1,17 @@
 package org.jastadd.ragconnect.tests;
 
 import org.junit.jupiter.api.Test;
+import via.ast.A;
 
 import java.io.IOException;
-import java.nio.file.*;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
 import java.util.Collections;
 
+import static org.junit.jupiter.api.Assertions.*;
+
 /**
  * Regression tests for fixed issues.
  *
@@ -15,6 +21,27 @@ public class RegressionTests {
 
   private static final String REGRESSION_TEST_OUTPUT_DIRECTORY = "regression-test/";
 
+  @Test
+  public void issue22() {
+    // use model of "via" test case as it uses both mqtt and rest as protocols
+    A a = new A();
+    try {
+      // should fail because of missing scheme
+      assertFalse(a.connectBoth2BothInput("missing/scheme"));
+
+      // should fail because of missing host
+      assertFalse(a.connectBoth2BothInput("mqtt://"));
+
+      // should fail because of missing part
+      assertFalse(a.connectBoth2BothInput("mqtt://localhost"));
+
+      // should fail because of unknown scheme
+      assertFalse(a.connectBoth2BothInput("badScheme://host/some/topic"));
+    } catch (IOException e) {
+      fail(e);
+    }
+  }
+
   @Test
   public void issue27() throws IOException {
     String grammarFile = "regression-tests/issue27/Test.relast";
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TokenValueSendTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TokenValueSendTest.java
index b22a2fb..6d99149 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TokenValueSendTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TokenValueSendTest.java
@@ -87,12 +87,12 @@ public class TokenValueSendTest extends AbstractMqttTest {
       dataThreeOther.lastStringValue = TestUtils.DefaultMappings.BytesToString(bytes);
     });
 
-    one.connectValue(mqttUri(TOPIC_SEND_ONE), writeCurrentValue);
-    two.connectValue(mqttUri(TOPIC_RECEIVE_TWO));
-    two.connectValue(mqttUri(TOPIC_SEND_TWO), writeCurrentValue);
-    three.connectValue(mqttUri(TOPIC_RECEIVE_THREE_VALUE));
-    three.connectValue(mqttUri(TOPIC_SEND_THREE_VALUE), writeCurrentValue);
-    three.connectOtherOutput(mqttUri(TOPIC_SEND_THREE_OTHER), writeCurrentValue);
+    assertTrue(one.connectValue(mqttUri(TOPIC_SEND_ONE), writeCurrentValue));
+    assertTrue(two.connectValue(mqttUri(TOPIC_RECEIVE_TWO)));
+    assertTrue(two.connectValue(mqttUri(TOPIC_SEND_TWO), writeCurrentValue));
+    assertTrue(three.connectValue(mqttUri(TOPIC_RECEIVE_THREE_VALUE)));
+    assertTrue(three.connectValue(mqttUri(TOPIC_SEND_THREE_VALUE), writeCurrentValue));
+    assertTrue(three.connectOtherOutput(mqttUri(TOPIC_SEND_THREE_OTHER), writeCurrentValue));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeAllowedTokensIncrementalTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeAllowedTokensIncrementalTest.java
index 8661608..0edfbd6 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeAllowedTokensIncrementalTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeAllowedTokensIncrementalTest.java
@@ -61,14 +61,14 @@ public class TreeAllowedTokensIncrementalTest extends AbstractTreeAllowedTokensT
     handler.newConnection(TOPIC_ALFA_PRIMITIVE, bytes -> data.numberOfPrimitiveTrees += 1);
 
     // connect. important: first receiver, then sender. to not miss initial value.
-    senderRoot.connectInput1WhenFlagIsFalse(mqttUri(TOPIC_INPUT1FALSE));
-    senderRoot.connectInput1WhenFlagIsTrue(mqttUri(TOPIC_INPUT1TRUE));
-    senderRoot.connectInput2(mqttUri(TOPIC_INPUT2));
-    senderRoot.connectInput3(mqttUri(TOPIC_INPUT3));
-    receiverRoot.connectAlfa(mqttUri(TOPIC_ALFA));
-    receiverRoot.connectAlfaPrimitive(mqttUri(TOPIC_ALFA_PRIMITIVE));
-    senderRoot.connectAlfa(mqttUri(TOPIC_ALFA), writeCurrentValue);
-    senderRoot.connectAlfaPrimitive(mqttUri(TOPIC_ALFA_PRIMITIVE), writeCurrentValue);
+    assertTrue(senderRoot.connectInput1WhenFlagIsFalse(mqttUri(TOPIC_INPUT1FALSE)));
+    assertTrue(senderRoot.connectInput1WhenFlagIsTrue(mqttUri(TOPIC_INPUT1TRUE)));
+    assertTrue(senderRoot.connectInput2(mqttUri(TOPIC_INPUT2)));
+    assertTrue(senderRoot.connectInput3(mqttUri(TOPIC_INPUT3)));
+    assertTrue(receiverRoot.connectAlfa(mqttUri(TOPIC_ALFA)));
+    assertTrue(receiverRoot.connectAlfaPrimitive(mqttUri(TOPIC_ALFA_PRIMITIVE)));
+    assertTrue(senderRoot.connectAlfa(mqttUri(TOPIC_ALFA), writeCurrentValue));
+    assertTrue(senderRoot.connectAlfaPrimitive(mqttUri(TOPIC_ALFA_PRIMITIVE), writeCurrentValue));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeAllowedTokensManualTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeAllowedTokensManualTest.java
index 99aacc3..9780d56 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeAllowedTokensManualTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeAllowedTokensManualTest.java
@@ -65,14 +65,14 @@ public class TreeAllowedTokensManualTest extends AbstractTreeAllowedTokensTest {
     handler.newConnection(TOPIC_ALFA_PRIMITIVE, bytes -> data.numberOfPrimitiveTrees += 1);
 
     // connect. important: first receiver, then sender. to not miss initial value.
-    senderRoot.connectInput1WhenFlagIsFalse(mqttUri(TOPIC_INPUT1FALSE));
-    senderRoot.connectInput1WhenFlagIsTrue(mqttUri(TOPIC_INPUT1TRUE));
-    senderRoot.connectInput2(mqttUri(TOPIC_INPUT2));
-    senderRoot.connectInput3(mqttUri(TOPIC_INPUT3));
-    receiverRoot.connectAlfa(mqttUri(TOPIC_ALFA));
-    receiverRoot.connectAlfaPrimitive(mqttUri(TOPIC_ALFA_PRIMITIVE));
-    senderRoot.connectAlfa(mqttUri(TOPIC_ALFA), writeCurrentValue);
-    senderRoot.connectAlfaPrimitive(mqttUri(TOPIC_ALFA_PRIMITIVE), writeCurrentValue);
+    assertTrue(senderRoot.connectInput1WhenFlagIsFalse(mqttUri(TOPIC_INPUT1FALSE)));
+    assertTrue(senderRoot.connectInput1WhenFlagIsTrue(mqttUri(TOPIC_INPUT1TRUE)));
+    assertTrue(senderRoot.connectInput2(mqttUri(TOPIC_INPUT2)));
+    assertTrue(senderRoot.connectInput3(mqttUri(TOPIC_INPUT3)));
+    assertTrue(receiverRoot.connectAlfa(mqttUri(TOPIC_ALFA)));
+    assertTrue(receiverRoot.connectAlfaPrimitive(mqttUri(TOPIC_ALFA_PRIMITIVE)));
+    assertTrue(senderRoot.connectAlfa(mqttUri(TOPIC_ALFA), writeCurrentValue));
+    assertTrue(senderRoot.connectAlfaPrimitive(mqttUri(TOPIC_ALFA_PRIMITIVE), writeCurrentValue));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeIncrementalTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeIncrementalTest.java
index 53ed825..9d455b6 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeIncrementalTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeIncrementalTest.java
@@ -56,8 +56,8 @@ public class TreeIncrementalTest extends AbstractTreeTest {
     handler.newConnection(TOPIC_ALFA, bytes -> data.numberOfTrees += 1);
 
     // connect. important: first receiver, then sender. to not miss initial value.
-    receiverRoot.connectAlfa(mqttUri(TOPIC_ALFA));
-    senderRoot.connectAlfa(mqttUri(TOPIC_ALFA), writeCurrentValue);
+    assertTrue(receiverRoot.connectAlfa(mqttUri(TOPIC_ALFA)));
+    assertTrue(senderRoot.connectAlfa(mqttUri(TOPIC_ALFA), writeCurrentValue));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeManualTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeManualTest.java
index e15ba23..10c73ae 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeManualTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TreeManualTest.java
@@ -58,8 +58,8 @@ public class TreeManualTest extends AbstractTreeTest {
     handler.newConnection(TOPIC_ALFA, bytes -> data.numberOfTrees += 1);
 
     // connect. important: first receiver, then sender. to not miss initial value.
-    receiverRoot.connectAlfa(mqttUri(TOPIC_ALFA));
-    senderRoot.connectAlfa(mqttUri(TOPIC_ALFA), writeCurrentValue);
+    assertTrue(receiverRoot.connectAlfa(mqttUri(TOPIC_ALFA)));
+    assertTrue(senderRoot.connectAlfa(mqttUri(TOPIC_ALFA), writeCurrentValue));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TutorialTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TutorialTest.java
index 6e66c76..64ad5fb 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TutorialTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/TutorialTest.java
@@ -6,6 +6,7 @@ import tutorial.ast.B;
 import java.io.IOException;
 
 import static org.jastadd.ragconnect.tests.TestUtils.mqttUri;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Testcase "Tutorial".
@@ -38,10 +39,10 @@ public class TutorialTest extends AbstractMqttTest {
     // b2.OutputOnB -> a.Input
     b2.addDependencyB(a);
 
-    a.connectInput(mqttUri("topic/for/input"));
-    a.connectOutputOnA(mqttUri("a/out"), true);
-    b1.connectOutputOnB(mqttUri("b1/out"), true);
-    b2.connectOutputOnB(mqttUri("b2/out"), false);
+    assertTrue(a.connectInput(mqttUri("topic/for/input")));
+    assertTrue(a.connectOutputOnA(mqttUri("a/out"), true));
+    assertTrue(b1.connectOutputOnB(mqttUri("b1/out"), true));
+    assertTrue(b2.connectOutputOnB(mqttUri("b2/out"), false));
   }
 
   @Override
diff --git a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ViaTest.java b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ViaTest.java
index 5433514..7ab46f7 100644
--- a/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ViaTest.java
+++ b/ragconnect.tests/src/test/java/org/jastadd/ragconnect/tests/ViaTest.java
@@ -106,18 +106,18 @@ public class ViaTest extends AbstractMqttTest {
     senderRest2Mqtt = client.target(REST_SERVER_BASE_URL + PATH_REST_2_MQTT_RECEIVE);
     senderBoth2Rest = client.target(REST_SERVER_BASE_URL + PATH_BOTH_REST_RECEIVE);
 
-    model.connectMqtt2MqttInput(mqttUri(TOPIC_MQTT_2_MQTT_RECEIVE));
-    model.connectMqtt2MqttOutput(mqttUri(TOPIC_MQTT_2_MQTT_SEND), writeCurrentValue);
-    model.connectMqtt2RestInput(mqttUri(TOPIC_MQTT_2_REST_RECEIVE));
-    model.connectMqtt2RestOutput(restUri(PATH_MQTT_2_REST_SEND, REST_PORT), writeCurrentValue);
-    model.connectRest2MqttInput(restUri(PATH_REST_2_MQTT_RECEIVE, REST_PORT));
-    model.connectRest2MqttOutput(mqttUri(TOPIC_REST_2_MQTT_SEND), writeCurrentValue);
-    model.connectRest2RestInput(restUri(PATH_REST_2_REST_RECEIVE, REST_PORT));
-    model.connectRest2RestOutput(restUri(PATH_REST_2_REST_SEND, REST_PORT), writeCurrentValue);
-    model.connectBoth2BothInput(mqttUri(TOPIC_BOTH_MQTT_RECEIVE));
-    model.connectBoth2BothInput(restUri(PATH_BOTH_REST_RECEIVE, REST_PORT));
-    model.connectBoth2MqttOutput(mqttUri(TOPIC_BOTH_2_MQTT_SEND), writeCurrentValue);
-    model.connectBoth2RestOutput(restUri(PATH_BOTH_2_REST_SEND, REST_PORT), writeCurrentValue);
+    assertTrue(model.connectMqtt2MqttInput(mqttUri(TOPIC_MQTT_2_MQTT_RECEIVE)));
+    assertTrue(model.connectMqtt2MqttOutput(mqttUri(TOPIC_MQTT_2_MQTT_SEND), writeCurrentValue));
+    assertTrue(model.connectMqtt2RestInput(mqttUri(TOPIC_MQTT_2_REST_RECEIVE)));
+    assertTrue(model.connectMqtt2RestOutput(restUri(PATH_MQTT_2_REST_SEND, REST_PORT), writeCurrentValue));
+    assertTrue(model.connectRest2MqttInput(restUri(PATH_REST_2_MQTT_RECEIVE, REST_PORT)));
+    assertTrue(model.connectRest2MqttOutput(mqttUri(TOPIC_REST_2_MQTT_SEND), writeCurrentValue));
+    assertTrue(model.connectRest2RestInput(restUri(PATH_REST_2_REST_RECEIVE, REST_PORT)));
+    assertTrue(model.connectRest2RestOutput(restUri(PATH_REST_2_REST_SEND, REST_PORT), writeCurrentValue));
+    assertTrue(model.connectBoth2BothInput(mqttUri(TOPIC_BOTH_MQTT_RECEIVE)));
+    assertTrue(model.connectBoth2BothInput(restUri(PATH_BOTH_REST_RECEIVE, REST_PORT)));
+    assertTrue(model.connectBoth2MqttOutput(mqttUri(TOPIC_BOTH_2_MQTT_SEND), writeCurrentValue));
+    assertTrue(model.connectBoth2RestOutput(restUri(PATH_BOTH_2_REST_SEND, REST_PORT), writeCurrentValue));
   }
 
   @Override
-- 
GitLab