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();

Reply via email to