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;