You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2020/01/12 19:53:21 UTC
[plc4x] branch next-gen-core-2 updated: - Make the KNXnet/IP driver
actually work ...
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch next-gen-core-2
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/next-gen-core-2 by this push:
new 4f78772 - Make the KNXnet/IP driver actually work ...
4f78772 is described below
commit 4f78772b3249adbc86e65e0ccaacc59f4bc24426
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sun Jan 12 20:52:59 2020 +0100
- Make the KNXnet/IP driver actually work ...
---
.../java/spi/configuration/ConfigurationFactory.java | 6 +++++-
.../plc4x/java/transport/udp/UdpChannelFactory.java | 7 +++++++
.../configuration/KnxNetIpConfiguration.java | 20 +++++++++++++++++++-
.../src/test/resources/logback.xml | 2 +-
4 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/ConfigurationFactory.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/ConfigurationFactory.java
index 7d41f7e..fe272e9 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/ConfigurationFactory.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/ConfigurationFactory.java
@@ -29,9 +29,11 @@ import org.apache.plc4x.java.spi.configuration.annotations.defaults.DoubleDefaul
import org.apache.plc4x.java.spi.configuration.annotations.defaults.IntDefaultValue;
import org.apache.plc4x.java.spi.configuration.annotations.defaults.StringDefaultValue;
+import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.ParameterizedType;
+import java.net.URLDecoder;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -89,9 +91,11 @@ public class ConfigurationFactory {
if (paramStringValues.containsKey(configName)) {
String stringValue = paramStringValues.get(configName).get(0);
try {
+ // As the arguments might be URL encoded, be sure it's decoded.
+ stringValue = URLDecoder.decode(stringValue, "utf-8");
BeanUtils.setProperty(instance, field.getName(), toFieldValue(field, stringValue));
missingFieldNames.remove(configName);
- } catch (InvocationTargetException e) {
+ } catch (InvocationTargetException | UnsupportedEncodingException e) {
throw new IllegalArgumentException("Error setting property of bean: " + field.getName(), e);
}
} else {
diff --git a/plc4j/transports/udp/src/main/java/org/apache/plc4x/java/transport/udp/UdpChannelFactory.java b/plc4j/transports/udp/src/main/java/org/apache/plc4x/java/transport/udp/UdpChannelFactory.java
index 24a953f..a546e49 100644
--- a/plc4j/transports/udp/src/main/java/org/apache/plc4x/java/transport/udp/UdpChannelFactory.java
+++ b/plc4j/transports/udp/src/main/java/org/apache/plc4x/java/transport/udp/UdpChannelFactory.java
@@ -20,9 +20,11 @@ package org.apache.plc4x.java.transport.udp;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
+import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.nio.NioDatagramChannel;
import org.apache.plc4x.java.spi.configuration.HasConfiguration;
import org.apache.plc4x.java.spi.connection.NettyChannelFactory;
+import org.apache.plc4x.java.transport.udp.protocol.DatagramUnpackingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -55,4 +57,9 @@ public class UdpChannelFactory extends NettyChannelFactory implements HasConfigu
}
}
+ @Override
+ public void initializePipeline(ChannelPipeline pipeline) {
+ pipeline.addLast(new DatagramUnpackingHandler());
+ }
+
}
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/configuration/KnxNetIpConfiguration.java b/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/configuration/KnxNetIpConfiguration.java
index d1276ce..b16b95b 100644
--- a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/configuration/KnxNetIpConfiguration.java
+++ b/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/configuration/KnxNetIpConfiguration.java
@@ -21,6 +21,7 @@ package org.apache.plc4x.java.knxnetip.configuration;
import org.apache.plc4x.java.knxnetip.KnxNetIpDriver;
import org.apache.plc4x.java.spi.configuration.Configuration;
import org.apache.plc4x.java.spi.configuration.annotations.ConfigurationParameter;
+import org.apache.plc4x.java.spi.configuration.annotations.defaults.IntDefaultValue;
import org.apache.plc4x.java.transport.udp.UdpTransportConfiguration;
public class KnxNetIpConfiguration implements Configuration, UdpTransportConfiguration {
@@ -28,9 +29,26 @@ public class KnxNetIpConfiguration implements Configuration, UdpTransportConfigu
@ConfigurationParameter("knxproj-file-path")
public String knxprojFilePath;
- @ConfigurationParameter
+ @ConfigurationParameter("group-address-type")
+ @IntDefaultValue(3)
public int groupAddressType = 3;
+ public String getKnxprojFilePath() {
+ return knxprojFilePath;
+ }
+
+ public void setKnxprojFilePath(String knxprojFilePath) {
+ this.knxprojFilePath = knxprojFilePath;
+ }
+
+ public int getGroupAddressType() {
+ return groupAddressType;
+ }
+
+ public void setGroupAddressType(int groupAddressType) {
+ this.groupAddressType = groupAddressType;
+ }
+
@Override
public int getDefaultPort() {
return KnxNetIpDriver.KNXNET_IP_PORT;
diff --git a/sandbox/test-java-knxnetip-driver/src/test/resources/logback.xml b/sandbox/test-java-knxnetip-driver/src/test/resources/logback.xml
index a8ddebb..27d40c0 100644
--- a/sandbox/test-java-knxnetip-driver/src/test/resources/logback.xml
+++ b/sandbox/test-java-knxnetip-driver/src/test/resources/logback.xml
@@ -29,7 +29,7 @@
</encoder>
</appender>
- <root level="trace">
+ <root level="info">
<appender-ref ref="STDOUT" />
</root>