This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new b8cc43717a NIFI-14225 Replaced deprecated Testcontainers usage with
suggested replacements (#9687)
b8cc43717a is described below
commit b8cc43717a49421ce2aed8e7e3c9da27b8d4a496
Author: dan-s1 <[email protected]>
AuthorDate: Thu Feb 6 13:07:26 2025 -0500
NIFI-14225 Replaced deprecated Testcontainers usage with suggested
replacements (#9687)
- Replaced the use of org.testcontainers.kafka.KafkaContainer with
org.testcontainers.kafka.ConfluentKafkaContainer
- Applied patch which updates the Kafka image version and configures the
Kafka container to start with the additional needed listener configuration
Co-authored-by: Paul Grey <[email protected]>
Co-authored-by: dan-s1 <[email protected]>
---
.../nifi/kafka/processors/AbstractKafkaBaseIT.java | 6 ++---
.../PublishKafkaAuthSaslPlaintextIT.java | 6 ++---
.../service/Kafka3ConnectionServiceBaseIT.java | 8 +++----
.../service/Kafka3ConnectionServiceSSLIT.java | 2 +-
.../Kafka3ConnectionServiceSaslPlaintextIT.java | 2 +-
.../nifi/kafka/service/KafkaConnectivityIT.java | 6 ++---
.../nifi/redis/testcontainers/RedisContainer.java | 5 ++---
.../nifi/services/smb/SmbjClientServiceIT.java | 26 ++++++++++++++++------
8 files changed, 36 insertions(+), 25 deletions(-)
diff --git
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-integration/src/test/java/org/apache/nifi/kafka/processors/AbstractKafkaBaseIT.java
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-integration/src/test/java/org/apache/nifi/kafka/processors/AbstractKafkaBaseIT.java
index 837432ef18..0d2583bcd6 100644
---
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-integration/src/test/java/org/apache/nifi/kafka/processors/AbstractKafkaBaseIT.java
+++
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-integration/src/test/java/org/apache/nifi/kafka/processors/AbstractKafkaBaseIT.java
@@ -28,7 +28,7 @@ import org.apache.nifi.serialization.RecordReaderFactory;
import org.apache.nifi.serialization.RecordSetWriterFactory;
import org.apache.nifi.util.TestRunner;
import org.junit.jupiter.api.BeforeAll;
-import org.testcontainers.containers.KafkaContainer;
+import org.testcontainers.kafka.ConfluentKafkaContainer;
import org.testcontainers.utility.DockerImageName;
import java.time.Duration;
@@ -44,11 +44,11 @@ public abstract class AbstractKafkaBaseIT {
protected static final Duration DURATION_POLL = Duration.ofSeconds(3);
- protected static final KafkaContainer kafkaContainer;
+ protected static final ConfluentKafkaContainer kafkaContainer;
// NIFI-11259 - single testcontainers Kafka instance needed for all module
integration tests
static {
- kafkaContainer = new KafkaContainer(DockerImageName.parse(IMAGE_NAME));
+ kafkaContainer = new
ConfluentKafkaContainer(DockerImageName.parse(IMAGE_NAME));
kafkaContainer.start();
}
diff --git
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-integration/src/test/java/org/apache/nifi/kafka/processors/PublishKafkaAuthSaslPlaintextIT.java
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-integration/src/test/java/org/apache/nifi/kafka/processors/PublishKafkaAuthSaslPlaintextIT.java
index 21a3f4cbc5..de28ed5593 100644
---
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-integration/src/test/java/org/apache/nifi/kafka/processors/PublishKafkaAuthSaslPlaintextIT.java
+++
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-integration/src/test/java/org/apache/nifi/kafka/processors/PublishKafkaAuthSaslPlaintextIT.java
@@ -38,7 +38,7 @@ import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
-import org.testcontainers.containers.KafkaContainer;
+import org.testcontainers.kafka.ConfluentKafkaContainer;
import org.testcontainers.utility.DockerImageName;
import java.util.Collections;
@@ -61,11 +61,11 @@ public class PublishKafkaAuthSaslPlaintextIT {
private static final String USERNAME = "nifi";
private static final String PASSWORD = UUID.randomUUID().toString();
- private static KafkaContainer kafka;
+ private static ConfluentKafkaContainer kafka;
@BeforeAll
static void beforeAll() {
- kafka = new
KafkaContainer(DockerImageName.parse(AbstractKafkaBaseIT.IMAGE_NAME))
+ kafka = new
ConfluentKafkaContainer(DockerImageName.parse(AbstractKafkaBaseIT.IMAGE_NAME))
.withEnv(getEnvironmentSaslPlaintext());
kafka.start();
}
diff --git
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceBaseIT.java
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceBaseIT.java
index a5b9311fce..998be030df 100644
---
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceBaseIT.java
+++
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceBaseIT.java
@@ -50,7 +50,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
import org.junit.jupiter.api.io.TempDir;
-import org.testcontainers.containers.KafkaContainer;
+import org.testcontainers.kafka.ConfluentKafkaContainer;
import org.testcontainers.utility.DockerImageName;
import org.testcontainers.utility.MountableFile;
@@ -92,7 +92,7 @@ public class Kafka3ConnectionServiceBaseIT {
// This Base class executes its tests with Ssl off and Sasl off.
// There are subclasses which execute these same tests and enable Ssl or
Sasl
- public static final String IMAGE_NAME = "confluentinc/cp-kafka:7.6.1"; //
April 2024
+ public static final String IMAGE_NAME = "confluentinc/cp-kafka:7.8.0"; //
December 2024
private static final String GROUP_ID =
Kafka3ConnectionService.class.getSimpleName();
@@ -134,7 +134,7 @@ public class Kafka3ConnectionServiceBaseIT {
protected TestRunner runner;
- private KafkaContainer kafkaContainer;
+ private ConfluentKafkaContainer kafkaContainer;
private Kafka3ConnectionService service;
@@ -161,7 +161,7 @@ public class Kafka3ConnectionServiceBaseIT {
trustStore.store(outputStream, KEY_STORE_PASSWORD.toCharArray());
}
- kafkaContainer = new KafkaContainer(DockerImageName.parse(IMAGE_NAME));
+ kafkaContainer = new
ConfluentKafkaContainer(DockerImageName.parse(IMAGE_NAME));
initializeContainer();
kafkaContainer.start();
}
diff --git
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceSSLIT.java
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceSSLIT.java
index 403e93b7a1..a277500c68 100644
---
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceSSLIT.java
+++
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceSSLIT.java
@@ -28,7 +28,7 @@ public class Kafka3ConnectionServiceSSLIT extends
Kafka3ConnectionServiceBaseIT
protected Map<String, String> getKafkaContainerConfigProperties() {
final Map<String, String> properties = new
LinkedHashMap<>(super.getKafkaContainerConfigProperties());
- properties.put("KAFKA_LISTENER_SECURITY_PROTOCOL_MAP",
"BROKER:SSL,PLAINTEXT:SSL");
+ properties.put("KAFKA_LISTENER_SECURITY_PROTOCOL_MAP",
"BROKER:SSL,PLAINTEXT:SSL,CONTROLLER:SSL");
properties.put("KAFKA_SSL_KEYSTORE_LOCATION", keyStorePath.toString());
properties.put("KAFKA_SSL_KEYSTORE_TYPE", keyStoreType);
properties.put("KAFKA_SSL_KEYSTORE_PASSWORD", KEY_STORE_PASSWORD);
diff --git
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceSaslPlaintextIT.java
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceSaslPlaintextIT.java
index 69e06b5989..3ef1065c26 100644
---
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceSaslPlaintextIT.java
+++
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/Kafka3ConnectionServiceSaslPlaintextIT.java
@@ -29,7 +29,7 @@ public class Kafka3ConnectionServiceSaslPlaintextIT extends
Kafka3ConnectionServ
protected Map<String, String> getKafkaContainerConfigProperties() {
final Map<String, String> properties = new
LinkedHashMap<>(super.getKafkaContainerConfigProperties());
- properties.put("KAFKA_LISTENER_SECURITY_PROTOCOL_MAP",
"BROKER:PLAINTEXT,PLAINTEXT:SASL_PLAINTEXT");
+ properties.put("KAFKA_LISTENER_SECURITY_PROTOCOL_MAP",
"BROKER:PLAINTEXT,PLAINTEXT:SASL_PLAINTEXT,CONTROLLER:PLAINTEXT");
properties.put("KAFKA_LISTENER_NAME_PLAINTEXT_SASL_ENABLED_MECHANISMS",
"PLAIN");
properties.put("KAFKA_LISTENER_NAME_PLAINTEXT_PLAIN_SASL_JAAS_CONFIG",
getJaasConfigKafkaContainer(TEST_USERNAME, TEST_PASSWORD));
diff --git
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/KafkaConnectivityIT.java
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/KafkaConnectivityIT.java
index 0def454af5..0eb1730c88 100644
---
a/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/KafkaConnectivityIT.java
+++
b/nifi-extension-bundles/nifi-kafka-bundle/nifi-kafka-3-service/src/test/java/org/apache/nifi/kafka/service/KafkaConnectivityIT.java
@@ -32,7 +32,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.KafkaContainer;
+import org.testcontainers.kafka.ConfluentKafkaContainer;
import org.testcontainers.utility.DockerImageName;
import java.time.Duration;
@@ -50,11 +50,11 @@ public class KafkaConnectivityIT {
private static final String TEST_TOPIC = "nifi-" +
System.currentTimeMillis();
- private static KafkaContainer kafka;
+ private static ConfluentKafkaContainer kafka;
@BeforeAll
static void beforeAll() {
- kafka = new
KafkaContainer(DockerImageName.parse(Kafka3ConnectionServiceBaseIT.IMAGE_NAME));
+ kafka = new
ConfluentKafkaContainer(DockerImageName.parse(Kafka3ConnectionServiceBaseIT.IMAGE_NAME));
kafka.start();
}
diff --git
a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisContainer.java
b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisContainer.java
index cd06d3e9a0..285c1059f4 100644
---
a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisContainer.java
+++
b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/test/java/org/apache/nifi/redis/testcontainers/RedisContainer.java
@@ -18,9 +18,9 @@ package org.apache.nifi.redis.testcontainers;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
-import org.testcontainers.containers.BindMode;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.utility.DockerImageName;
+import org.testcontainers.utility.MountableFile;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -99,9 +99,8 @@ public class RedisContainer extends
GenericContainer<RedisContainer> {
adjustConfiguration();
Path configurationFilePath = writeConfigurationFile().toAbsolutePath();
- String hostPath = configurationFilePath.toString();
String containerPath = "/usr/local/etc/redis/redis.conf";
- addFileSystemBind(hostPath, containerPath, BindMode.READ_WRITE);
+ withCopyToContainer(MountableFile.forHostPath(configurationFilePath),
containerPath);
setCommand(containerPath);
}
diff --git
a/nifi-extension-bundles/nifi-smb-bundle/nifi-smb-smbj-client/src/test/java/org/apache/nifi/services/smb/SmbjClientServiceIT.java
b/nifi-extension-bundles/nifi-smb-bundle/nifi-smb-smbj-client/src/test/java/org/apache/nifi/services/smb/SmbjClientServiceIT.java
index dba495814e..fc1d4ca3b5 100644
---
a/nifi-extension-bundles/nifi-smb-bundle/nifi-smb-smbj-client/src/test/java/org/apache/nifi/services/smb/SmbjClientServiceIT.java
+++
b/nifi-extension-bundles/nifi-smb-bundle/nifi-smb-smbj-client/src/test/java/org/apache/nifi/services/smb/SmbjClientServiceIT.java
@@ -27,7 +27,11 @@ import static
org.apache.nifi.smb.common.SmbProperties.TIMEOUT;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
+import eu.rekawek.toxiproxy.Proxy;
+import eu.rekawek.toxiproxy.ToxiproxyClient;
import eu.rekawek.toxiproxy.model.ToxicDirection;
+
+import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@@ -46,7 +50,6 @@ import org.slf4j.LoggerFactory;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.Network;
import org.testcontainers.containers.ToxiproxyContainer;
-import org.testcontainers.containers.ToxiproxyContainer.ContainerProxy;
import org.testcontainers.containers.output.Slf4jLogConsumer;
import org.testcontainers.containers.wait.strategy.Wait;
import org.testcontainers.images.builder.Transferable;
@@ -90,12 +93,15 @@ public class SmbjClientServiceIT {
writeFile("testDirectory/directory1/file", "content");
writeFile("testDirectory/directory2/file", "content");
writeFile("testDirectory/directory2/nested_directory/file", "content");
- ContainerProxy sambaProxy = toxiproxy.getProxy("samba", 445);
+ final ToxiproxyClient toxiproxyClient = new
ToxiproxyClient(toxiproxy.getHost(), toxiproxy.getControlPort());
+ final Proxy proxy = toxiproxyClient.createProxy("samba",
"0.0.0.0:8666", "samba:445");
+ final String ipAddressViaToxiproxy = toxiproxy.getHost();
+ final int portViaToxiproxy = toxiproxy.getMappedPort(8666);
SmbjClientProviderService smbjClientProviderService = new
SmbjClientProviderService();
Map<PropertyDescriptor, String> properties = new HashMap<>();
- properties.put(HOSTNAME, sambaProxy.getContainerIpAddress());
- properties.put(PORT, String.valueOf(sambaProxy.getProxyPort()));
+ properties.put(HOSTNAME, ipAddressViaToxiproxy);
+ properties.put(PORT, String.valueOf(portViaToxiproxy));
properties.put(SHARE, "share");
properties.put(USERNAME, "username");
properties.put(PASSWORD, "password");
@@ -105,7 +111,7 @@ public class SmbjClientServiceIT {
smbjClientProviderService.onEnabled(mockConfigurationContext);
- sambaProxy.toxics().latency("slow", ToxicDirection.DOWNSTREAM, 300);
+ proxy.toxics().latency("slow", ToxicDirection.DOWNSTREAM, 300);
AtomicInteger i = new AtomicInteger(0);
@@ -126,7 +132,8 @@ public class SmbjClientServiceIT {
s = smbjClientProviderService.getClient();
if (iteration == 25) {
- sambaProxy.setConnectionCut(true);
+ proxy.toxics().bandwidth("CUT_CONNECTION_DOWNSTREAM",
ToxicDirection.DOWNSTREAM, 0L);
+ proxy.toxics().bandwidth("CUT_CONNECTION_UPSTREAM",
ToxicDirection.UPSTREAM, 0L);
}
final Set<String> actual = s.listFiles("testDirectory")
@@ -141,7 +148,12 @@ public class SmbjClientServiceIT {
} catch (Exception e) {
if (iteration == 50) {
- sambaProxy.setConnectionCut(false);
+ try {
+
proxy.toxics().get("CUT_CONNECTION_DOWNSTREAM").remove();
+
proxy.toxics().get("CUT_CONNECTION_UPSTREAM").remove();
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
}
if (iteration == 100) {
fail();