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 2022/03/31 14:48:00 UTC
[plc4x] 07/10: fix(plc4j/spi): Made it simpler to detect configuration problems
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 551868fab9dbe6577414e2a21c74019ae88868cf
Author: cdutz <ch...@c-ware.de>
AuthorDate: Thu Mar 31 16:46:03 2022 +0200
fix(plc4j/spi): Made it simpler to detect configuration problems
---
.../plc4x/java/spi/configuration/ConfigurationFactory.java | 13 +++++++++++--
.../plc4x/java/spi/connection/NettyChannelFactory.java | 6 +++---
2 files changed, 14 insertions(+), 5 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 4bd2456..728f0f9 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
@@ -21,8 +21,11 @@ package org.apache.plc4x.java.spi.configuration;
import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
+import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
import org.apache.plc4x.java.spi.configuration.annotations.*;
import org.apache.plc4x.java.spi.configuration.annotations.defaults.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
@@ -30,7 +33,6 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -47,6 +49,8 @@ import static java.util.stream.Collectors.toList;
*/
public class ConfigurationFactory {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationFactory.class);
+
// TODO Respect Path Params
public <T extends Configuration> T createConfiguration(Class<T> pClazz, String configurationString) {
// Get a map of all configuration parameter fields.
@@ -130,7 +134,12 @@ public class ConfigurationFactory {
if (configType instanceof Class) {
Class<?> configClass = (Class<?>) configType;
if (configClass.isAssignableFrom(configuration.getClass())) {
- ((HasConfiguration) obj).setConfiguration(configuration);
+ try {
+ ((HasConfiguration) obj).setConfiguration(configuration);
+ } catch(Throwable t) {
+ LOGGER.error("Error setting the configuration", t);
+ throw new PlcRuntimeException("Error setting the configuration", t);
+ }
}
}
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
index caedca7..cd41459 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
@@ -118,7 +118,7 @@ public abstract class NettyChannelFactory implements ChannelFactory {
final Channel channel = f.channel();
- // Add to Event Loop Group
+ // Add to event-loop group
if (workerGroup != null) {
eventLoops.put(channel, workerGroup);
}
@@ -137,8 +137,8 @@ public abstract class NettyChannelFactory implements ChannelFactory {
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new PlcConnectionException("Error creating channel.", e);
- } catch (Exception e) {
- throw new PlcConnectionException("Error creating channel.", e);
+ } catch (Throwable t) {
+ throw new PlcConnectionException("Error creating channel.", t);
}
}