From 38c4a6a2b3785a7a5d7841e3f8c3229030d42e90 Mon Sep 17 00:00:00 2001
From: SebastianEbert <sebastian.ebert@tu-dresden.de>
Date: Tue, 26 Jan 2021 13:53:18 +0100
Subject: [PATCH] bugfix on java backend

---
 .../java/org/jastadd/ragconnect/compiler/Compiler.java   | 1 +
 ragconnect.base/src/main/resources/JavaHandler.jadd      | 6 +++++-
 .../src/main/resources/receiveDefinition.mustache        | 4 ++--
 .../src/main/resources/sendDefinition.mustache           | 9 +++------
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Compiler.java b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Compiler.java
index 8c649c4..0c4900d 100644
--- a/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Compiler.java
+++ b/ragconnect.base/src/main/java/org/jastadd/ragconnect/compiler/Compiler.java
@@ -227,6 +227,7 @@ public class Compiler extends AbstractCompiler {
     ASTNode.loggingEnabledForReads = optionLogReads.value();
     ASTNode.loggingEnabledForWrites = optionLogWrites.value();
     ASTNode.usesMqtt = optionProtocols.hasValue(OPTION_PROTOCOL_MQTT);
+    ASTNode.usesJava = optionProtocols.hasValue(OPTION_PROTOCOL_JAVA);
     ASTNode.usesRest = optionProtocols.hasValue(OPTION_PROTOCOL_REST);
     return ragConnect;
   }
diff --git a/ragconnect.base/src/main/resources/JavaHandler.jadd b/ragconnect.base/src/main/resources/JavaHandler.jadd
index 217ae63..60f43b8 100644
--- a/ragconnect.base/src/main/resources/JavaHandler.jadd
+++ b/ragconnect.base/src/main/resources/JavaHandler.jadd
@@ -29,7 +29,7 @@ aspect JavaHandler {
             return JAVA_HANDLER_INSTANCE;
         }
 
-        public void registerCallback(String topic, Consumer<byte[]> callback) {
+        public boolean registerCallback(String topic, Consumer<byte[]> callback) {
 
             logger.debug("[JAVA_HANDLER] Registering new callback.");
 
@@ -42,8 +42,12 @@ aspect JavaHandler {
             } else {
                 registeredCallbacks.add(callback);
             }
+
+            return true;
         }
 
+        public void close(){};
+
         public boolean push(String topic, byte[] data) {
 
             logger.debug("[JAVA_HANDLER] Pushing a message.");
diff --git a/ragconnect.base/src/main/resources/receiveDefinition.mustache b/ragconnect.base/src/main/resources/receiveDefinition.mustache
index 86523f5..95340e5 100644
--- a/ragconnect.base/src/main/resources/receiveDefinition.mustache
+++ b/ragconnect.base/src/main/resources/receiveDefinition.mustache
@@ -12,10 +12,10 @@ public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterNam
     case "mqtt": return {{mqttHandlerAttribute}}().newConnection(uri, consumer);
   {{/usesMqtt}}
   {{#usesJava}}
-    case "mqtt": return {{javaHandlerAttribute}}().registerCallback(uri, consumer);
+    case "java": return {{javaHandlerAttribute}}().registerCallback(path, consumer);
   {{/usesJava}}
   {{#usesRest}}
-    case "java": return {{restHandlerAttribute}}().newPUTConnection(uri, input -> {
+    case "rest": return {{restHandlerAttribute}}().newPUTConnection(uri, input -> {
       consumer.accept(input.getBytes());
     });
   {{/usesRest}}
diff --git a/ragconnect.base/src/main/resources/sendDefinition.mustache b/ragconnect.base/src/main/resources/sendDefinition.mustache
index a913710..248ea2d 100644
--- a/ragconnect.base/src/main/resources/sendDefinition.mustache
+++ b/ragconnect.base/src/main/resources/sendDefinition.mustache
@@ -22,13 +22,10 @@ public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterNam
   {{/usesMqtt}}
   {{#usesJava}}
       case "java":
-      final JavaHandler handler = {{javaHandlerAttribute}}().resolveHandler(uri);
-      final String topic = {{javaHandlerAttribute}}().extractTopic(uri);
+      final JavaHandler handler = {{javaHandlerAttribute}}().getInstance();
+
       {{sender}} = () -> {
-        {{#loggingEnabledForWrites}}
-        System.out.println("[Send] {{tokenName}} = " + get{{tokenName}}() + " -> " + {{connectParameterName}});
-        {{/loggingEnabledForWrites}}
-        handler.publish(topic, {{lastValue}});
+        handler.push(path, {{lastValue}});
       };
     {{updateMethod}}();
     if (writeCurrentValue) {
-- 
GitLab