This is an automated email from the ASF dual-hosted git repository.

bossenti pushed a commit to branch dev
in repository 
https://gitbox.apache.org/repos/asf/incubator-streampipes-extensions.git

commit 6632618308cdafebee15b4bcf1d74875bbb8a1c7
Author: bossenti <[email protected]>
AuthorDate: Thu Feb 25 13:32:16 2021 +0100

    [STREAMPIPES-301] introduce helper class OpcUaConnect & refactoring
---
 .../streampipes/connect/adapters/opcua/OpcUa.java  | 35 +++++++-------
 .../connect/adapters/opcua/OpcUaAdapter.java       | 54 +++++++++-------------
 .../connect/adapters/opcua/utils/OpcUaConnect.java | 30 ++++++++++++
 3 files changed, 68 insertions(+), 51 deletions(-)

diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUa.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUa.java
index 303ef3e..0e5c6a3 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUa.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUa.java
@@ -24,6 +24,7 @@ import static 
org.eclipse.milo.opcua.stack.core.util.ConversionUtil.toList;
 
 import org.apache.streampipes.connect.adapter.exception.AdapterException;
 import org.apache.streampipes.connect.adapters.opcua.utils.OpcUaConnect;
+import 
org.apache.streampipes.connect.adapters.opcua.utils.OpcUaConnect.OpcUaLabels;
 import org.apache.streampipes.connect.adapters.opcua.utils.OpcUaNodeVariants;
 import org.apache.streampipes.connect.adapters.opcua.utils.OpcUaTypes;
 import org.apache.streampipes.model.connect.adapter.AdapterDescription;
@@ -114,44 +115,44 @@ public class OpcUa {
 
     public static OpcUa from(StaticPropertyExtractor extractor) {
 
-        String selectedAlternativeConnection = 
extractor.selectedAlternativeInternalId(OpcUaConnect.getOpcHostOrUrl());
-        String selectedAlternativeAuthentication = 
extractor.selectedAlternativeInternalId(OpcUaConnect.getAccessMode());
+        String selectedAlternativeConnection = 
extractor.selectedAlternativeInternalId(OpcUaLabels.OPC_HOST_OR_URL.name());
+        String selectedAlternativeAuthentication = 
extractor.selectedAlternativeInternalId(OpcUaLabels.ACCESS_MODE.name());
 
-        int namespaceIndex = 
extractor.singleValueParameter(OpcUaConnect.getNamespaceIndex(), int.class);
-        String nodeId = 
extractor.singleValueParameter(OpcUaConnect.getNodeId(), String.class);
+        int namespaceIndex = 
extractor.singleValueParameter(OpcUaLabels.NAMESPACE_INDEX.name(), int.class);
+        String nodeId = 
extractor.singleValueParameter(OpcUaLabels.NODE_ID.name(), String.class);
 
-        boolean useURL = 
selectedAlternativeConnection.equals(OpcUaConnect.getOpcUrl());
-        boolean unauthenticated =  
selectedAlternativeAuthentication.equals(OpcUaConnect.getUnauthenticated());
+        boolean useURL = 
selectedAlternativeConnection.equals(OpcUaLabels.OPC_URL.name());
+        boolean unauthenticated =  
selectedAlternativeAuthentication.equals(OpcUaLabels.UNAUTHENTICATED.name());
 
-        List<String> selectedNodeNames = 
extractor.selectedMultiValues(OpcUaConnect.getAvailableNodes(), String.class);
+        List<String> selectedNodeNames = 
extractor.selectedMultiValues(OpcUaLabels.AVAILABLE_NODES.name(), String.class);
 
         if (useURL && unauthenticated){
 
-            String serverAddress = 
extractor.singleValueParameter(OpcUaConnect.getOpcServerUrl(), String.class);
+            String serverAddress = 
extractor.singleValueParameter(OpcUaLabels.OPC_SERVER_URL.name(), String.class);
             serverAddress = OpcUaConnect.formatServerAddress(serverAddress);
 
             return new OpcUa(serverAddress, namespaceIndex, nodeId, 
selectedNodeNames);
 
         } else if(!useURL && unauthenticated){
-            String serverAddress = 
extractor.singleValueParameter(OpcUaConnect.getOpcServerHost(), String.class);
+            String serverAddress = 
extractor.singleValueParameter(OpcUaLabels.OPC_SERVER_HOST.name(), 
String.class);
             serverAddress = OpcUaConnect.formatServerAddress(serverAddress);
-            int port = 
extractor.singleValueParameter(OpcUaConnect.getOpcServerPort(), int.class);
+            int port = 
extractor.singleValueParameter(OpcUaLabels.OPC_SERVER_PORT.name(), int.class);
 
             return new OpcUa(serverAddress, port, namespaceIndex, nodeId, 
selectedNodeNames);
         } else {
 
-            String username = 
extractor.singleValueParameter(OpcUaConnect.getUsername(), String.class);
-            String password = 
extractor.secretValue(OpcUaConnect.getPassword());
+            String username = 
extractor.singleValueParameter(OpcUaLabels.USERNAME.name(), String.class);
+            String password = 
extractor.secretValue(OpcUaLabels.PASSWORD.name());
 
             if (useURL) {
-                String serverAddress = 
extractor.singleValueParameter(OpcUaConnect.getOpcServerUrl(), String.class);
+                String serverAddress = 
extractor.singleValueParameter(OpcUaLabels.OPC_SERVER_URL.name(), String.class);
                 serverAddress = 
OpcUaConnect.formatServerAddress(serverAddress);
 
                 return new OpcUa(serverAddress, namespaceIndex, nodeId, 
username, password, selectedNodeNames);
             } else {
-                String serverAddress = 
extractor.singleValueParameter(OpcUaConnect.getOpcServerHost(), String.class);
+                String serverAddress = 
extractor.singleValueParameter(OpcUaLabels.OPC_SERVER_HOST.name(), 
String.class);
                 serverAddress = 
OpcUaConnect.formatServerAddress(serverAddress);
-                int port = 
extractor.singleValueParameter(OpcUaConnect.getOpcServerPort(), int.class);
+                int port = 
extractor.singleValueParameter(OpcUaLabels.OPC_SERVER_PORT.name(), int.class);
 
                 return new OpcUa(serverAddress, port, namespaceIndex, nodeId, 
username, password, selectedNodeNames);
             }
@@ -456,9 +457,7 @@ public class OpcUa {
     public static boolean isInteger(String s) {
         try {
             Integer.parseInt(s);
-        } catch(NumberFormatException e) {
-            return false;
-        } catch(NullPointerException e) {
+        } catch(NumberFormatException | NullPointerException e) {
             return false;
         }
         // only got here if we didn't return false
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUaAdapter.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUaAdapter.java
index cae6778..c79ddf7 100644
--- 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUaAdapter.java
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/OpcUaAdapter.java
@@ -22,6 +22,7 @@ import org.apache.streampipes.connect.adapter.Adapter;
 import org.apache.streampipes.connect.adapter.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.exception.ParseException;
 import 
org.apache.streampipes.connect.adapter.model.specific.SpecificDataStreamAdapter;
+import 
org.apache.streampipes.connect.adapters.opcua.utils.OpcUaConnect.OpcUaLabels;
 import org.apache.streampipes.container.api.ResolvesContainerProvidedOptions;
 import org.apache.streampipes.model.AdapterType;
 import 
org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription;
@@ -46,22 +47,6 @@ public class OpcUaAdapter extends SpecificDataStreamAdapter 
implements ResolvesC
 
     public static final String ID = 
"org.apache.streampipes.connect.adapters.opcua";
 
-    private static final String OPC_HOST_OR_URL = "OPC_HOST_OR_URL";
-    private static final String OPC_URL = "OPC_URL";
-    private static final String OPC_HOST = "OPC_HOST";
-    private static final String OPC_SERVER_URL = "OPC_SERVER_URL";
-    private static final String OPC_SERVER_HOST = "OPC_SERVER_HOST";
-    private static final String OPC_SERVER_PORT = "OPC_SERVER_PORT";
-    private static final String NAMESPACE_INDEX = "NAMESPACE_INDEX";
-    private static final String NODE_ID = "NODE_ID";
-    private static final String ACCESS_MODE = "ACCESS_MODE";
-    private static final String USERNAME_GROUP = "USERNAME_GROUP";
-    private static final String USERNAME = "USERNAME";
-    private static final String PASSWORD = "PASSWORD";
-    private static final String UNAUTHENTICATED = "UNAUTHENTICATED";
-    private static final String AVAILABLE_NODES = "AVAILABLE_NODES";
-
-
     private Map<String, Object> event;
     private List<OpcNode> allNodes;
     private OpcUa opcUa;
@@ -89,23 +74,26 @@ public class OpcUaAdapter extends SpecificDataStreamAdapter 
implements ResolvesC
                 .withAssets(Assets.DOCUMENTATION, Assets.ICON)
                 .withLocales(Locales.EN)
                 .category(AdapterType.Generic, AdapterType.Manufacturing)
-                .requiredAlternatives(Labels.withId(ACCESS_MODE),
-                        Alternatives.from(Labels.withId(UNAUTHENTICATED)),
-                        Alternatives.from(Labels.withId(USERNAME_GROUP),
-                                
StaticProperties.group(Labels.withId(USERNAME_GROUP),
-                                
StaticProperties.stringFreeTextProperty(Labels.withId(USERNAME)),
-                                
StaticProperties.secretValue(Labels.withId(PASSWORD)))))
-                .requiredAlternatives(Labels.withId(OPC_HOST_OR_URL),
-                        Alternatives.from(Labels.withId(OPC_URL),
-                                
StaticProperties.stringFreeTextProperty(Labels.withId(OPC_SERVER_URL))
+                
.requiredAlternatives(Labels.withId(OpcUaLabels.ACCESS_MODE.name()),
+                        
Alternatives.from(Labels.withId(OpcUaLabels.UNAUTHENTICATED.name())),
+                        
Alternatives.from(Labels.withId(OpcUaLabels.USERNAME_GROUP.name()),
+                                
StaticProperties.group(Labels.withId(OpcUaLabels.USERNAME_GROUP.name()),
+                                
StaticProperties.stringFreeTextProperty(Labels.withId(OpcUaLabels.USERNAME.name())),
+                                
StaticProperties.secretValue(Labels.withId(OpcUaLabels.PASSWORD.name())))))
+                
.requiredAlternatives(Labels.withId(OpcUaLabels.OPC_HOST_OR_URL.name()),
+                        
Alternatives.from(Labels.withId(OpcUaLabels.OPC_URL.name()),
+                                
StaticProperties.stringFreeTextProperty(Labels.withId(OpcUaLabels.OPC_SERVER_URL.name()))
                         ),
-                        Alternatives.from(Labels.withId(OPC_HOST),
+                        
Alternatives.from(Labels.withId(OpcUaLabels.OPC_HOST.name()),
                                 
StaticProperties.group(Labels.withId("host-port"),
-                                        
StaticProperties.stringFreeTextProperty(Labels.withId(OPC_SERVER_HOST)),
-                                        
StaticProperties.stringFreeTextProperty(Labels.withId(OPC_SERVER_PORT)))))
-                .requiredTextParameter(Labels.withId(NAMESPACE_INDEX))
-                .requiredTextParameter(Labels.withId(NODE_ID))
-                
.requiredMultiValueSelectionFromContainer(Labels.withId(AVAILABLE_NODES), 
Arrays.asList(NAMESPACE_INDEX, NODE_ID))
+                                        
StaticProperties.stringFreeTextProperty(Labels.withId(OpcUaLabels.OPC_SERVER_HOST.name())),
+                                        
StaticProperties.stringFreeTextProperty(Labels.withId(OpcUaLabels.OPC_SERVER_PORT.name())))))
+                
.requiredTextParameter(Labels.withId(OpcUaLabels.NAMESPACE_INDEX.name()))
+                
.requiredTextParameter(Labels.withId(OpcUaLabels.NODE_ID.name()))
+                .requiredMultiValueSelectionFromContainer(
+                        Labels.withId(OpcUaLabels.AVAILABLE_NODES.name()),
+                        Arrays.asList(OpcUaLabels.NAMESPACE_INDEX.name(), 
OpcUaLabels.NODE_ID.name())
+                )
                 .build();
         description.setAppId(ID);
 
@@ -222,8 +210,8 @@ public class OpcUaAdapter extends SpecificDataStreamAdapter 
implements ResolvesC
     public List<Option> resolveOptions(String requestId, 
StaticPropertyExtractor parameterExtractor) {
 
         try {
-            parameterExtractor.selectedAlternativeInternalId(OPC_HOST_OR_URL);
-            parameterExtractor.selectedAlternativeInternalId(ACCESS_MODE);
+            
parameterExtractor.selectedAlternativeInternalId(OpcUaLabels.OPC_HOST_OR_URL.name());
+            
parameterExtractor.selectedAlternativeInternalId(OpcUaLabels.ACCESS_MODE.name());
         } catch (NullPointerException npe){
             return new ArrayList<>();
         }
diff --git 
a/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/utils/OpcUaConnect.java
 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/utils/OpcUaConnect.java
new file mode 100644
index 0000000..d56bcbf
--- /dev/null
+++ 
b/streampipes-connect-adapters/src/main/java/org/apache/streampipes/connect/adapters/opcua/utils/OpcUaConnect.java
@@ -0,0 +1,30 @@
+package org.apache.streampipes.connect.adapters.opcua.utils;
+
+public class OpcUaConnect {
+
+    public static String formatServerAddress(String serverAddress) {
+
+        if (!serverAddress.startsWith("opc.tcp://")) {
+            serverAddress = "opc.tcp://" + serverAddress;
+        }
+
+        return serverAddress;
+    }
+
+    public enum OpcUaLabels {
+        OPC_HOST_OR_URL,
+        OPC_URL,
+        OPC_HOST,
+        OPC_SERVER_URL,
+        OPC_SERVER_HOST,
+        OPC_SERVER_PORT,
+        NAMESPACE_INDEX,
+        NODE_ID,
+        ACCESS_MODE,
+        USERNAME_GROUP,
+        USERNAME,
+        PASSWORD,
+        UNAUTHENTICATED,
+        AVAILABLE_NODES;
+    }
+}

Reply via email to