From abe8a70bf5ad35cfa4ca87813bd935b60c86bfcb Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Fri, 14 Aug 2020 14:05:33 +0200
Subject: [PATCH] Update to version 0.2.1

- optimize mqtt-send performance (resolve handler only once)
---
 new-version.sh                                        |  7 +++++++
 ragconnect.base/build.gradle                          |  4 +++-
 ragconnect.base/src/main/resources/MqttHandler.jadd   |  2 +-
 .../src/main/resources/ragConnectVersion.properties   |  4 ++--
 .../src/main/resources/sendDefinition.mustache        | 11 ++++-------
 .../src/main/resources/tokenComponent.mustache        |  2 --
 6 files changed, 17 insertions(+), 13 deletions(-)
 create mode 100755 new-version.sh

diff --git a/new-version.sh b/new-version.sh
new file mode 100755
index 0000000..0f4eb43
--- /dev/null
+++ b/new-version.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+echo "Old version: '$(./gradlew -q :ragconnect.base:run --args=--version)'"
+if [ -z "$1" ]; then
+	echo "Missing parameter for version"
+	exit 1
+fi
+./gradlew newVersion -Pvalue=$1
diff --git a/ragconnect.base/build.gradle b/ragconnect.base/build.gradle
index f331878..953e9c5 100644
--- a/ragconnect.base/build.gradle
+++ b/ragconnect.base/build.gradle
@@ -61,8 +61,10 @@ jar {
     }
 
     from {
-        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
+        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
     }
+
+    archiveBaseName = 'ragconnect'
 }
 
 task relast(type: JavaExec) {
diff --git a/ragconnect.base/src/main/resources/MqttHandler.jadd b/ragconnect.base/src/main/resources/MqttHandler.jadd
index 6f40612..d9f99fb 100644
--- a/ragconnect.base/src/main/resources/MqttHandler.jadd
+++ b/ragconnect.base/src/main/resources/MqttHandler.jadd
@@ -53,7 +53,7 @@ public class MqttServerHandler {
     resolveHandler(uri).publish(extractTopic(uri), bytes, qos, retain);
   }
 
-  private String extractTopic(java.net.URI uri) {
+  public static String extractTopic(java.net.URI uri) {
     String path = uri.getPath();
     if (path.charAt(0) == '/') {
       path = path.substring(1);
diff --git a/ragconnect.base/src/main/resources/ragConnectVersion.properties b/ragconnect.base/src/main/resources/ragConnectVersion.properties
index 8ec4416..768893e 100644
--- a/ragconnect.base/src/main/resources/ragConnectVersion.properties
+++ b/ragconnect.base/src/main/resources/ragConnectVersion.properties
@@ -1,2 +1,2 @@
-#Wed Jul 29 16:29:05 CEST 2020
-version=0.2.0
+#Fri Aug 14 13:28:32 CEST 2020
+version=0.2.1
diff --git a/ragconnect.base/src/main/resources/sendDefinition.mustache b/ragconnect.base/src/main/resources/sendDefinition.mustache
index fac4ecd..d6601aa 100644
--- a/ragconnect.base/src/main/resources/sendDefinition.mustache
+++ b/ragconnect.base/src/main/resources/sendDefinition.mustache
@@ -1,21 +1,18 @@
 private Runnable {{parentTypeName}}.{{sender}} = null;
 private byte[] {{parentTypeName}}.{{lastValue}} = null;
 
-public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterName}}, boolean writeCurrentValue) {
+public boolean {{parentTypeName}}.{{connectMethod}}(String {{connectParameterName}}, boolean writeCurrentValue) throws java.io.IOException {
   {{>handleUri}}
   switch (scheme) {
   {{#usesMqtt}}
     case "mqtt":
-      // MqttHandler handler = {{mqttHandlerAttribute}}().resolveHandler(uri);{{!optimize later}}
+      final MqttHandler handler = {{mqttHandlerAttribute}}().resolveHandler(uri);
+      final String topic = {{mqttHandlerAttribute}}().extractTopic(uri);
       {{sender}} = () -> {
         {{#loggingEnabledForWrites}}
         System.out.println("[Send] {{tokenName}} = " + get{{tokenName}}() + " -> " + {{connectParameterName}});
         {{/loggingEnabledForWrites}}
-        try {
-          {{mqttHandlerAttribute}}().publish(uri, {{lastValue}});
-        } catch (java.io.IOException e) {
-          e.printStackTrace();
-        }
+        handler.publish(topic, {{lastValue}});
       };
       {{updateMethod}}();
       if (writeCurrentValue) {
diff --git a/ragconnect.base/src/main/resources/tokenComponent.mustache b/ragconnect.base/src/main/resources/tokenComponent.mustache
index e78efb9..ec91e68 100644
--- a/ragconnect.base/src/main/resources/tokenComponent.mustache
+++ b/ragconnect.base/src/main/resources/tokenComponent.mustache
@@ -3,11 +3,9 @@ public {{parentTypeName}} {{parentTypeName}}.set{{name}}({{javaType}} value) {
   {{#DependencyDefinitions}}
   for ({{targetParentTypeName}} target : get{{internalRelationPrefix}}TargetList()) {
     {{#targetEndpointDefinition}}
-    {{!#isPush}}
     if (target.{{updateMethod}}()) {
       target.{{writeMethod}}();
     }
-    {{!/isPush}}
     {{/targetEndpointDefinition}}
   }
   {{/DependencyDefinitions}}
-- 
GitLab