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

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x-extras.git


The following commit(s) were added to refs/heads/develop by this push:
     new 7d32acc3 fix(plc4j): adapt to new CachedPlcConnectionManager builder 
API
7d32acc3 is described below

commit 7d32acc39f1043b9df1d153c2be57b3512c9cc95
Author: Sebastian Rühl <[email protected]>
AuthorDate: Fri Jul 10 08:32:40 2026 +0200

    fix(plc4j): adapt to new CachedPlcConnectionManager builder API
    
    The connection-cache re-implementation in plc4x core (1b961389c8) changed
    the CachedPlcConnectionManager builder contract:
    
    - build() now requires an explicit PlcConnectionManager set via
      withConnectionManager() (previously defaulted to DefaultPlcDriverManager)
    - the getBuilder(PlcConnectionManager) overload was removed
    - withMaxLeaseTime/withMaxWaitTime now take (long, TimeUnit) instead of
      Duration
    
    Adapt all call sites accordingly, preserving the previous default
    semantics by passing new DefaultPlcDriverManager() explicitly:
    
    - apache-calcite: construct ScraperImpl with an explicit connection
      manager instead of the config convenience constructor (which still
      builds a manager-less cache internally); promote plc4j-connection-cache
      from test to compile scope
    - apache-kafka: source and sink tasks; pass the existing connection
      manager to TriggeredScraperImpl instead of the internally-created one
    - apache-nifi (nifi-1 and nifi-2): BasePlc4xProcessor builder call and
      TimeUnit-based timeouts
    - plc4x-server, opcua-server, hello-opm example
    
    Also remove a duplicate mockito-core declaration in the nifi-1
    processors pom (hard error under Maven 4).
    
    Fixes the failing Java Platform compatibility CI workflow.
---
 .../org/apache/plc4x/java/examples/helloopm/HelloOpm.java     |  5 ++++-
 plc4j/integrations/apache-calcite/pom.xml                     | 11 +++++------
 .../src/main/java/org/apache/plc4x/Plc4xSchema.java           |  8 +++++++-
 .../src/main/java/org/apache/plc4x/kafka/Plc4xSinkTask.java   |  5 ++++-
 .../src/main/java/org/apache/plc4x/kafka/Plc4xSourceTask.java |  7 +++++--
 .../apache-nifi/nifi-1/nifi-plc4x-processors/pom.xml          |  5 -----
 .../main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java   |  8 +++++---
 .../main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java   |  8 +++++---
 .../plc4x/java/opcuaserver/backend/Plc4xCommunication.java    |  4 +++-
 .../org/apache/plc4x/java/tools/plc4xserver/Plc4xServer.java  |  5 ++++-
 10 files changed, 42 insertions(+), 24 deletions(-)

diff --git 
a/plc4j/examples/hello-opm/src/main/java/org/apache/plc4x/java/examples/helloopm/HelloOpm.java
 
b/plc4j/examples/hello-opm/src/main/java/org/apache/plc4x/java/examples/helloopm/HelloOpm.java
index 4c48bf4e..7c0e73ab 100644
--- 
a/plc4j/examples/hello-opm/src/main/java/org/apache/plc4x/java/examples/helloopm/HelloOpm.java
+++ 
b/plc4j/examples/hello-opm/src/main/java/org/apache/plc4x/java/examples/helloopm/HelloOpm.java
@@ -18,6 +18,7 @@
  */
 package org.apache.plc4x.java.examples.helloopm;
 
+import org.apache.plc4x.java.DefaultPlcDriverManager;
 import org.apache.plc4x.java.opm.OPMException;
 import org.apache.plc4x.java.opm.PlcEntity;
 import org.apache.plc4x.java.opm.PlcEntityManager;
@@ -53,7 +54,9 @@ public class HelloOpm {
     }
 
     public HelloOpm() {
-        entityManager = new 
PlcEntityManager(CachedPlcConnectionManager.getBuilder().build());
+        entityManager = new 
PlcEntityManager(CachedPlcConnectionManager.getBuilder()
+            .withConnectionManager(new DefaultPlcDriverManager())
+            .build());
     }
 
     /**
diff --git a/plc4j/integrations/apache-calcite/pom.xml 
b/plc4j/integrations/apache-calcite/pom.xml
index 1f1a710a..40ded625 100644
--- a/plc4j/integrations/apache-calcite/pom.xml
+++ b/plc4j/integrations/apache-calcite/pom.xml
@@ -62,6 +62,11 @@
       <artifactId>plc4j-scraper</artifactId>
       <version>${plc4x.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-connection-cache</artifactId>
+      <version>${plc4x.version}</version>
+    </dependency>
 
     <!-- Include all drivers -->
     <dependency>
@@ -90,12 +95,6 @@
       <version>4.5.0</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-connection-cache</artifactId>
-      <version>${plc4x.version}</version>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
diff --git 
a/plc4j/integrations/apache-calcite/src/main/java/org/apache/plc4x/Plc4xSchema.java
 
b/plc4j/integrations/apache-calcite/src/main/java/org/apache/plc4x/Plc4xSchema.java
index 16222d4b..9f1b3ee3 100644
--- 
a/plc4j/integrations/apache-calcite/src/main/java/org/apache/plc4x/Plc4xSchema.java
+++ 
b/plc4j/integrations/apache-calcite/src/main/java/org/apache/plc4x/Plc4xSchema.java
@@ -20,6 +20,7 @@ package org.apache.plc4x;
 
 import org.apache.calcite.schema.Table;
 import org.apache.calcite.schema.impl.AbstractSchema;
+import org.apache.plc4x.java.DefaultPlcDriverManager;
 import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
 import org.apache.plc4x.java.scraper.ResultHandler;
 import org.apache.plc4x.java.scraper.Scraper;
@@ -27,6 +28,7 @@ import org.apache.plc4x.java.scraper.ScraperImpl;
 import org.apache.plc4x.java.scraper.config.JobConfiguration;
 import org.apache.plc4x.java.scraper.config.ScraperConfiguration;
 import org.apache.plc4x.java.scraper.exception.ScraperException;
+import org.apache.plc4x.java.utils.cache.CachedPlcConnectionManager;
 
 import java.time.Instant;
 import java.util.Map;
@@ -45,7 +47,11 @@ public class Plc4xSchema extends AbstractSchema {
     public Plc4xSchema(ScraperConfiguration configuration, long tableCutoff) 
throws ScraperException {
         this.configuration = configuration;
         this.handler = new QueueHandler();
-        this.scraper = new ScraperImpl(configuration, handler);
+        this.scraper = new ScraperImpl(handler,
+            CachedPlcConnectionManager.getBuilder()
+                .withConnectionManager(new DefaultPlcDriverManager())
+                .build(),
+            configuration.getJobs());
         this.queues = configuration.getJobConfigurations().stream()
             .collect(Collectors.toMap(
                 JobConfiguration::getName,
diff --git 
a/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSinkTask.java
 
b/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSinkTask.java
index 55da47c4..2a6c1815 100644
--- 
a/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSinkTask.java
+++ 
b/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSinkTask.java
@@ -26,6 +26,7 @@ import org.apache.kafka.connect.transforms.Transformation;
 import org.apache.kafka.connect.sink.SinkRecord;
 import org.apache.kafka.connect.sink.SinkTask;
 import org.apache.kafka.connect.errors.RetriableException;
+import org.apache.plc4x.java.DefaultPlcDriverManager;
 import org.apache.plc4x.java.api.PlcConnectionManager;
 import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
 import org.apache.plc4x.java.api.PlcConnection;
@@ -148,7 +149,9 @@ public class Plc4xSinkTask extends SinkTask {
         }
 
         log.info("Creating Pooled PLC4x driver manager");
-        connectionManager = CachedPlcConnectionManager.getBuilder().build();
+        connectionManager = CachedPlcConnectionManager.getBuilder()
+            .withConnectionManager(new DefaultPlcDriverManager())
+            .build();
     }
 
     @Override
diff --git 
a/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSourceTask.java
 
b/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSourceTask.java
index b8fa26c0..9a4a3538 100644
--- 
a/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSourceTask.java
+++ 
b/plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSourceTask.java
@@ -25,6 +25,7 @@ import org.apache.kafka.connect.data.Date;
 import org.apache.kafka.connect.errors.ConnectException;
 import org.apache.kafka.connect.source.SourceRecord;
 import org.apache.kafka.connect.source.SourceTask;
+import org.apache.plc4x.java.DefaultPlcDriverManager;
 import org.apache.plc4x.java.api.PlcConnectionManager;
 import org.apache.plc4x.java.api.value.PlcValue;
 import 
org.apache.plc4x.java.scraper.config.triggeredscraper.JobConfigurationTriggeredImplBuilder;
@@ -152,9 +153,11 @@ public class Plc4xSourceTask extends SourceTask {
         ScraperConfigurationTriggeredImpl scraperConfig = builder.build();
 
         try {
-            PlcConnectionManager connectionManager = 
CachedPlcConnectionManager.getBuilder().build();
+            PlcConnectionManager connectionManager = 
CachedPlcConnectionManager.getBuilder()
+                .withConnectionManager(new DefaultPlcDriverManager())
+                .build();
             TriggerCollector triggerCollector = new 
TriggerCollectorImpl(connectionManager);
-            scraper = new TriggeredScraperImpl(scraperConfig, (jobName, 
sourceName, results) -> {
+            scraper = new TriggeredScraperImpl(scraperConfig, 
connectionManager, (jobName, sourceName, results) -> {
                 try {
                     Long timestamp = System.currentTimeMillis();
 
diff --git 
a/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/pom.xml 
b/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/pom.xml
index 38d0091a..b9d3b179 100644
--- a/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/pom.xml
+++ b/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/pom.xml
@@ -168,11 +168,6 @@
       <version>${plc4x.version}</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
diff --git 
a/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/src/main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java
 
b/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/src/main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java
index 0f55fea8..52cc63f4 100644
--- 
a/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/src/main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java
+++ 
b/plc4j/integrations/apache-nifi/nifi-1/nifi-plc4x-processors/src/main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java
@@ -19,7 +19,6 @@
 package org.apache.plc4x.nifi;
 
 import java.io.OutputStream;
-import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -28,6 +27,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.nifi.annotation.lifecycle.OnScheduled;
@@ -45,6 +45,7 @@ import 
org.apache.nifi.processor.ProcessorInitializationContext;
 import org.apache.nifi.processor.Relationship;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.apache.nifi.serialization.record.RecordSchema;
+import org.apache.plc4x.java.DefaultPlcDriverManager;
 import org.apache.plc4x.java.api.PlcConnection;
 import org.apache.plc4x.java.api.PlcDriver;
 import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
@@ -79,8 +80,9 @@ public abstract class BasePlc4xProcessor extends 
AbstractProcessor {
 
     protected void refreshConnectionManager() {
         connectionManager = CachedPlcConnectionManager.getBuilder()
-            .withMaxLeaseTime(Duration.ofSeconds(1000L))
-            .withMaxWaitTime(Duration.ofSeconds(500L))
+            .withConnectionManager(new DefaultPlcDriverManager())
+            .withMaxLeaseTime(1000L, TimeUnit.SECONDS)
+            .withMaxWaitTime(500L, TimeUnit.SECONDS)
             .build();
     }
 
diff --git 
a/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-processors/src/main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java
 
b/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-processors/src/main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java
index 2d03e767..4f2a3991 100644
--- 
a/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-processors/src/main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java
+++ 
b/plc4j/integrations/apache-nifi/nifi-2/nifi-2-plc4x-processors/src/main/java/org/apache/plc4x/nifi/BasePlc4xProcessor.java
@@ -19,7 +19,6 @@
 package org.apache.plc4x.nifi;
 
 import java.io.OutputStream;
-import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -28,6 +27,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.nifi.annotation.lifecycle.OnScheduled;
@@ -45,6 +45,7 @@ import 
org.apache.nifi.processor.ProcessorInitializationContext;
 import org.apache.nifi.processor.Relationship;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.apache.nifi.serialization.record.RecordSchema;
+import org.apache.plc4x.java.DefaultPlcDriverManager;
 import org.apache.plc4x.java.api.PlcConnection;
 import org.apache.plc4x.java.api.PlcDriver;
 import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
@@ -79,8 +80,9 @@ public abstract class BasePlc4xProcessor extends 
AbstractProcessor {
 
     protected void refreshConnectionManager() {
         connectionManager = CachedPlcConnectionManager.getBuilder()
-            .withMaxLeaseTime(Duration.ofSeconds(1000L))
-            .withMaxWaitTime(Duration.ofSeconds(500L))
+            .withConnectionManager(new DefaultPlcDriverManager())
+            .withMaxLeaseTime(1000L, TimeUnit.SECONDS)
+            .withMaxWaitTime(500L, TimeUnit.SECONDS)
             .build();
     }
 
diff --git 
a/plc4j/tools/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java
 
b/plc4j/tools/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java
index 30eac9d6..5ce4919b 100644
--- 
a/plc4j/tools/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java
+++ 
b/plc4j/tools/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java
@@ -85,7 +85,9 @@ public class Plc4xCommunication extends AbstractLifecycle {
 
     public void setDriverManager(PlcDriverManager driverManager) {
         this.driverManager = driverManager;
-        this.cachedPlcConnectionManager = 
CachedPlcConnectionManager.getBuilder(driverManager.getConnectionManager()).build();
+        this.cachedPlcConnectionManager = 
CachedPlcConnectionManager.getBuilder()
+            .withConnectionManager(driverManager.getConnectionManager())
+            .build();
     }
 
     public PlcTag getTag(String tag, String connectionString) throws 
PlcConnectionException {
diff --git 
a/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/Plc4xServer.java
 
b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/Plc4xServer.java
index 40657f6d..c7d74ac3 100644
--- 
a/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/Plc4xServer.java
+++ 
b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/Plc4xServer.java
@@ -33,6 +33,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import javax.net.ssl.SSLServerSocket;
 import javax.net.ssl.SSLServerSocketFactory;
+import org.apache.plc4x.java.DefaultPlcDriverManager;
 import org.apache.plc4x.java.api.PlcConnectionManager;
 import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
 import org.apache.plc4x.java.plc4x.Plc4xMessageCodec;
@@ -76,7 +77,9 @@ public class Plc4xServer {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(Plc4xServer.class);
 
-    private final PlcConnectionManager connectionManager = 
CachedPlcConnectionManager.getBuilder().build();
+    private final PlcConnectionManager connectionManager = 
CachedPlcConnectionManager.getBuilder()
+        .withConnectionManager(new DefaultPlcDriverManager())
+        .build();
 
     private Integer port;
     private String username;

Reply via email to