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

riemer pushed a commit to branch bump-plc4x-version-0140
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit a856203d6d725c962900024af2f22196effe519a
Author: Dominik Riemer <[email protected]>
AuthorDate: Fri Aug 22 21:04:58 2025 +0200

    feat: Bump PLC4X version, improve connection cache management
---
 pom.xml                                                   | 15 ++++++++++++++-
 .../management/connect/PullAdapterScheduler.java          |  2 +-
 streampipes-extensions/streampipes-connectors-plc/pom.xml |  6 +++++-
 .../generic/connection/ContinuousPlcRequestReader.java    | 14 +++++++-------
 .../plc/adapter/generic/connection/PlcEventGenerator.java |  7 ++-----
 .../adapter/generic/model/Plc4xConnectionExtractor.java   | 11 ++++++++++-
 .../connectors/plc/adapter/s7/Plc4xS7Adapter.java         |  2 +-
 7 files changed, 40 insertions(+), 17 deletions(-)

diff --git a/pom.xml b/pom.xml
index a54fafdccf..fce3dd55d2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -111,7 +111,7 @@
         <okhttp.version>3.13.1</okhttp.version>
         <opencsv.version>5.9</opencsv.version>
         <opennlp.version>2.3.1</opennlp.version>
-        <plc4x.version>0.12.0</plc4x.version>
+        <plc4x.version>0.14.0-SNAPSHOT</plc4x.version>
         
<plexus-component-annotations.version>2.2.0</plexus-component-annotations.version>
         
<plexus-interactivity-api.version>1.1</plexus-interactivity-api.version>
         <plexus-utils.version>4.0.0</plexus-utils.version>
@@ -1180,6 +1180,19 @@
 
     <!-- Build Settings -->
 
+    <repositories>
+        <repository>
+            <id>apache</id>
+            <url>https://repository.apache.org/content/groups/snapshots/</url>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+                <updatePolicy>always</updatePolicy>
+            </snapshots>
+        </repository>
+    </repositories>
 
     <build>
 
diff --git 
a/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/PullAdapterScheduler.java
 
b/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/PullAdapterScheduler.java
index 0daec7c47b..2832435e39 100644
--- 
a/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/PullAdapterScheduler.java
+++ 
b/streampipes-extensions-management/src/main/java/org/apache/streampipes/extensions/management/connect/PullAdapterScheduler.java
@@ -48,7 +48,7 @@ public class PullAdapterScheduler {
       try {
         pullAdapter.pullData();
       } catch (ExecutionException | InterruptedException | TimeoutException e) 
{
-        LOG.error("Error while pulling data", e);
+        LOG.error("Error while pulling data: {}", e.getMessage());
         SpMonitoringManager.INSTANCE.addErrorMessage(
             adapterElementId,
             SpLogEntry.from(System.currentTimeMillis(), SpLogMessage.from(e))
diff --git a/streampipes-extensions/streampipes-connectors-plc/pom.xml 
b/streampipes-extensions/streampipes-connectors-plc/pom.xml
index 4cdc9dadeb..9841f8065f 100644
--- a/streampipes-extensions/streampipes-connectors-plc/pom.xml
+++ b/streampipes-extensions/streampipes-connectors-plc/pom.xml
@@ -52,6 +52,11 @@
             <groupId>org.apache.plc4x</groupId>
             <artifactId>plc4j-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.plc4x</groupId>
+            <artifactId>plc4j-spi</artifactId>
+            <version>${plc4x.version}</version>
+        </dependency>
         <dependency>
             <groupId>org.apache.plc4x</groupId>
             <artifactId>plc4j-driver-all</artifactId>
@@ -78,7 +83,6 @@
             <version>${plc4x.version}</version>
         </dependency>
 
-
         <!-- Test dependencies -->
         <dependency>
             <groupId>org.mockito</groupId>
diff --git 
a/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/ContinuousPlcRequestReader.java
 
b/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/ContinuousPlcRequestReader.java
index 639f4e0534..31d973538a 100644
--- 
a/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/ContinuousPlcRequestReader.java
+++ 
b/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/ContinuousPlcRequestReader.java
@@ -78,12 +78,6 @@ public class ContinuousPlcRequestReader
     }
   }
 
-  private void processPlcReadResponse(PlcReadResponse readResponse) {
-    var event = eventGenerator.makeEvent(readResponse);
-    collector.collect(event);
-    this.resetIdlePulls();
-  }
-
   private void handleFailingPlcRead(Exception e) {
     // ensure that the cached connection manager removes the broken connection
     if (connectionManager instanceof CachedPlcConnectionManager) {
@@ -98,13 +92,19 @@ public class ContinuousPlcRequestReader
     }
 
     LOG.error(
-        "Error while reading from PLC with connection string {}. Setting 
adapter to idle for {} attemtps. {} ",
+        "Error while reading from PLC with connection string {}. Setting 
adapter to idle for {} attempts. {} ",
         settings.connectionString(), idlePullsBeforeNextAttempt, e.getMessage()
     );
 
     currentIdlePulls = 0;
   }
 
+  private void processPlcReadResponse(PlcReadResponse readResponse) {
+    var event = eventGenerator.makeEvent(readResponse);
+    collector.collect(event);
+    this.resetIdlePulls();
+  }
+
   private void idleRead() {
     LOG.debug("Skipping pullData call for {}. Idle pulls left: {}",
               settings.connectionString(), idlePullsBeforeNextAttempt - 
currentIdlePulls);
diff --git 
a/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/PlcEventGenerator.java
 
b/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/PlcEventGenerator.java
index d0dabef4f3..5f0d3099e2 100644
--- 
a/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/PlcEventGenerator.java
+++ 
b/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/connection/PlcEventGenerator.java
@@ -25,7 +25,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 public class PlcEventGenerator {
@@ -43,9 +42,8 @@ public class PlcEventGenerator {
 
     for (String key : nodes.keySet()) {
       if (response.getResponseCode(key) == PlcResponseCode.OK) {
-
         // if the response is a list, add each element to the result
-        if (response.getObject(key) instanceof List) {
+        if (response.getAsPlcValue().getValue(key).isList()) {
           event.put(key,
               response.getAsPlcValue()
                   .getValue(key)
@@ -57,8 +55,7 @@ public class PlcEventGenerator {
           event.put(key, response.getObject(key));
         }
       } else {
-        LOG.error("Error[" + key + "]: "
-            + response.getResponseCode(key).name());
+        LOG.error("Error[{}]: {}", key, response.getResponseCode(key).name());
       }
     }
     return event;
diff --git 
a/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/model/Plc4xConnectionExtractor.java
 
b/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/model/Plc4xConnectionExtractor.java
index 2ed2a13a2b..ce928b1eeb 100644
--- 
a/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/model/Plc4xConnectionExtractor.java
+++ 
b/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/generic/model/Plc4xConnectionExtractor.java
@@ -44,6 +44,7 @@ public class Plc4xConnectionExtractor {
   }
 
   public Plc4xConnectionSettings makeSettings() {
+    var modifiedProtocolCode = checkAndOverrideProtocolCode();
     var host = extractHost();
     var transportCode = extractTransportCode();
     var transportConfigs = extractTransportMetadata(transportCode);
@@ -51,12 +52,20 @@ public class Plc4xConnectionExtractor {
     var configParameters = makeConfigParameters(transportConfigs, 
protocolConfigs);
 
     return new Plc4xConnectionSettings(
-        getConnectionString(host, transportCode, protocolCode, 
configParameters),
+        getConnectionString(host, transportCode, modifiedProtocolCode, 
configParameters),
         extractor.singleValueParameter(Plc4xLabels.PLC_POLLING_INTERVAL, 
Integer.class),
         extractNodes()
     );
   }
 
+  private String checkAndOverrideProtocolCode() {
+    if (protocolCode.equals("s7")) {
+      return "s7-light";
+    } else {
+      return protocolCode;
+    }
+  }
+
   private String getConnectionString(String host,
                                      String transportCode,
                                      String protocolCode,
diff --git 
a/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/s7/Plc4xS7Adapter.java
 
b/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/s7/Plc4xS7Adapter.java
index 1c7657a79a..9355b9f79f 100644
--- 
a/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/s7/Plc4xS7Adapter.java
+++ 
b/streampipes-extensions/streampipes-connectors-plc/src/main/java/org/apache/streampipes/extensions/connectors/plc/adapter/s7/Plc4xS7Adapter.java
@@ -65,7 +65,7 @@ public class Plc4xS7Adapter implements StreamPipesAdapter {
    */
   public static final String ID = 
"org.apache.streampipes.connect.iiot.adapters.plc4x.s7";
 
-  private static final String S7_URL = "s7://";
+  private static final String S7_URL = "s7-light://";
 
   /**
    * Keys of user configuration parameters

Reply via email to