From 9b428a147ba1503a314029893b36d93c515d10ba Mon Sep 17 00:00:00 2001 From: Arkadip Date: Thu, 12 Jun 2025 12:33:02 +0530 Subject: [PATCH 1/8] refactor(gradle.properties): updated the dependency --- gradle.properties | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/gradle.properties b/gradle.properties index 55098650..2fc12f62 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,35 +7,35 @@ snapshotsRepoUrl=https://repo.aws.dsinternal.org/artifactory/datastax-snapshots- releasesRepoUrl=https://repo.datastax.com/artifactory/datastax-public-releases-local # deps version -avroVersion=1.11.4 -lombokVersion=1.18.20 -ossDriverVersion=4.16.0 -cassandra3Version=3.11.10 -cassandra4Version=4.0.4 +avroVersion=1.12.0 +lombokVersion=1.18.38 +ossDriverVersion=4.17.0 +cassandra3Version=3.11.19 +cassandra4Version=4.0.18 dse4Version=6.8.23 pulsarGroup=org.apache.pulsar -pulsarVersion=3.0.0 +pulsarVersion=3.0.12 # Used when running tests locally, CI will override those values testPulsarImage=datastax/lunastreaming testPulsarImageTag=2.10_3.4 -kafkaVersion=3.4.0 -vavrVersion=0.10.3 -testContainersVersion=1.19.1 -caffeineVersion=2.8.8 +kafkaVersion=3.4.1 +vavrVersion=0.10.6 +testContainersVersion=1.19.8 +caffeineVersion=2.9.3 guavaVersion=30.1-jre -messagingConnectorsCommonsVersion=1.0.14 -slf4jVersion=1.7.30 +messagingConnectorsCommonsVersion=1.0.15 +slf4jVersion=1.7.36 # pulsar connector -logbackVersion=1.2.9 -jacksonBomVersion=2.13.4.20221013 -jnrVersion=3.1.15 -nettyVersion=4.1.72.Final -nettyTcNativeVersion=2.0.46.Final -commonCompressVersion=1.21 +logbackVersion=1.2.23 +jacksonBomVersion=2.13.5 +jnrVersion=3.1.20 +nettyVersion=4.1.122.Final +nettyTcNativeVersion=4.1.122.Final +commonCompressVersion=1.27.1 gsonVersion=2.8.9 -jsonVersion=20230227 +jsonVersion=20250107 # cassandra settings for docker images commitlog_sync_period_in_ms=2000 From e7828a2f3d4ce161017d96942ed564bfba763628 Mon Sep 17 00:00:00 2001 From: Arkadip Date: Thu, 12 Jun 2025 12:57:01 +0530 Subject: [PATCH 2/8] refactor(deprecation): updated avro toString to SchemaFormatter.getInstance("json") --- .../main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/commons/src/main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java b/commons/src/main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java index ea9dfcec..164087ed 100644 --- a/commons/src/main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java +++ b/commons/src/main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java @@ -16,6 +16,7 @@ package com.datastax.oss.cdc; import org.apache.avro.Schema; +import org.apache.avro.SchemaFormatter; import org.apache.pulsar.client.api.schema.SchemaInfoProvider; import org.apache.pulsar.common.schema.SchemaInfo; import org.apache.pulsar.common.schema.SchemaType; @@ -35,7 +36,7 @@ public NativeSchemaWrapper(Schema nativeSchema, SchemaType pulsarSchemaType) { this.nativeSchema = nativeSchema; this.pulsarSchemaType = pulsarSchemaType; this.pulsarSchemaInfo = SchemaInfo.builder() - .schema(nativeSchema.toString(false).getBytes(StandardCharsets.UTF_8)) + .schema(SchemaFormatter.getInstance("json").format(nativeSchema).getBytes(StandardCharsets.UTF_8)) .properties(new HashMap<>()) .type(pulsarSchemaType) .name(nativeSchema.getName()) From 3f35a261566f889288c237e60f7cbbf12093e87b Mon Sep 17 00:00:00 2001 From: Arkadip Date: Thu, 12 Jun 2025 12:58:05 +0530 Subject: [PATCH 3/8] refactor(deprecation): updated addFileSystemBind to withCopyToContainer --- .../datastax/oss/cdc/PulsarDualNodeTests.java | 25 +++++++------------ .../testcontainers/ChaosNetworkContainer.java | 2 +- .../cassandra/CassandraContainer.java | 5 ++-- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/testcontainers/src/main/java/com/datastax/oss/cdc/PulsarDualNodeTests.java b/testcontainers/src/main/java/com/datastax/oss/cdc/PulsarDualNodeTests.java index 72d4ece3..5f921da9 100644 --- a/testcontainers/src/main/java/com/datastax/oss/cdc/PulsarDualNodeTests.java +++ b/testcontainers/src/main/java/com/datastax/oss/cdc/PulsarDualNodeTests.java @@ -19,13 +19,7 @@ import com.datastax.testcontainers.PulsarContainer; import com.datastax.testcontainers.cassandra.CassandraContainer; import lombok.extern.slf4j.Slf4j; -import org.apache.pulsar.client.api.Consumer; -import org.apache.pulsar.client.api.Message; -import org.apache.pulsar.client.api.PulsarClient; -import org.apache.pulsar.client.api.Schema; -import org.apache.pulsar.client.api.SubscriptionInitialPosition; -import org.apache.pulsar.client.api.SubscriptionMode; -import org.apache.pulsar.client.api.SubscriptionType; +import org.apache.pulsar.client.api.*; import org.apache.pulsar.client.api.schema.GenericRecord; import org.apache.pulsar.client.api.schema.RecordSchemaBuilder; import org.apache.pulsar.client.api.schema.SchemaBuilder; @@ -39,14 +33,11 @@ import org.junit.jupiter.api.Test; import org.testcontainers.containers.Container; import org.testcontainers.containers.Network; +import org.testcontainers.images.builder.Transferable; import java.io.IOException; import java.time.Duration; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -229,10 +220,12 @@ public void testUnorderedMutations() throws InterruptedException, IOException { String pulsarServiceUrl = "pulsar://pulsar:" + pulsarContainer.BROKER_PORT; Long testId = Math.abs(AgentTestUtil.random.nextLong()); String randomDataDir = System.getProperty("buildDir") + "/data-" + testId + "-"; - try (CassandraContainer cassandraContainer1 = createCassandraContainer(1, pulsarServiceUrl, testNetwork) - .withFileSystemBind(randomDataDir + "1", "/var/lib/cassandra"); - CassandraContainer cassandraContainer2 = createCassandraContainer(2, pulsarServiceUrl, testNetwork) - .withFileSystemBind(randomDataDir + "2", "/var/lib/cassandra")) { + try ( + CassandraContainer cassandraContainer1 = createCassandraContainer(1, pulsarServiceUrl, testNetwork) + .withCopyToContainer(Transferable.of(randomDataDir + "1"), "/var/lib/cassandra"); + CassandraContainer cassandraContainer2 = createCassandraContainer(2, pulsarServiceUrl, testNetwork) + .withCopyToContainer(Transferable.of(randomDataDir + "2"), "/var/lib/cassandra") + ) { cassandraContainer1.start(); cassandraContainer2.start(); diff --git a/testcontainers/src/main/java/com/datastax/testcontainers/ChaosNetworkContainer.java b/testcontainers/src/main/java/com/datastax/testcontainers/ChaosNetworkContainer.java index fda04663..278d78bf 100644 --- a/testcontainers/src/main/java/com/datastax/testcontainers/ChaosNetworkContainer.java +++ b/testcontainers/src/main/java/com/datastax/testcontainers/ChaosNetworkContainer.java @@ -35,7 +35,7 @@ public class ChaosNetworkContainer> ext public ChaosNetworkContainer(String targetContainer, String pause) { super(PUMBA_IMAGE); setCommand("--log-level debug netem --tc-image gaiadocker/iproute2 --duration " + pause + " loss --percent 100 " + targetContainer); - addFileSystemBind("/var/run/docker.sock", "/var/run/docker.sock", BindMode.READ_WRITE); + withFileSystemBind("/var/run/docker.sock", "/var/run/docker.sock", BindMode.READ_WRITE); setWaitStrategy(Wait.forLogMessage(".*tc container created.*", 1)); withLogConsumer(o -> { final String line = o.getUtf8String(); diff --git a/testcontainers/src/main/java/com/datastax/testcontainers/cassandra/CassandraContainer.java b/testcontainers/src/main/java/com/datastax/testcontainers/cassandra/CassandraContainer.java index 8e4c0bdb..8914889e 100644 --- a/testcontainers/src/main/java/com/datastax/testcontainers/cassandra/CassandraContainer.java +++ b/testcontainers/src/main/java/com/datastax/testcontainers/cassandra/CassandraContainer.java @@ -30,6 +30,7 @@ import org.testcontainers.delegate.DatabaseDelegate; import org.testcontainers.ext.ScriptUtils; import org.testcontainers.ext.ScriptUtils.ScriptLoadException; +import org.testcontainers.images.builder.Transferable; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; @@ -288,8 +289,8 @@ public static CassandraContainer createCassandraContainerWithAgent(DockerImag .withCreateContainerCmdModifier(c -> c.withName("cassandra-" + nodeIndex)) .withNetwork(network) .withConfigurationOverride(configLocation) - .withFileSystemBind( - String.format(Locale.ROOT, "%s/libs/%s", agentBuildDir, jarFile), + .withCopyToContainer( + Transferable.of(String.format(Locale.ROOT, "%s/libs/%s", agentBuildDir, jarFile)), String.format(Locale.ROOT, "/%s", jarFile)) .withEnv("JVM_EXTRA_OPTS", String.format(Locale.ROOT, "-javaagent:/%s=%s -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=" + From 334254845e2ce812cd48dc0dc49c1f6450bc450d Mon Sep 17 00:00:00 2001 From: Arkadip Date: Fri, 13 Jun 2025 09:35:42 +0530 Subject: [PATCH 4/8] refactor(gradle.properties): updated pulsarVersion and avroVersion to eliminate gradle error --- gradle.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2fc12f62..dbde6ba1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ snapshotsRepoUrl=https://repo.aws.dsinternal.org/artifactory/datastax-snapshots- releasesRepoUrl=https://repo.datastax.com/artifactory/datastax-public-releases-local # deps version -avroVersion=1.12.0 +avroVersion=1.11.4 lombokVersion=1.18.38 ossDriverVersion=4.17.0 cassandra3Version=3.11.19 @@ -15,7 +15,7 @@ cassandra4Version=4.0.18 dse4Version=6.8.23 pulsarGroup=org.apache.pulsar -pulsarVersion=3.0.12 +pulsarVersion=3.0.0 # Used when running tests locally, CI will override those values testPulsarImage=datastax/lunastreaming testPulsarImageTag=2.10_3.4 @@ -28,11 +28,11 @@ guavaVersion=30.1-jre messagingConnectorsCommonsVersion=1.0.15 slf4jVersion=1.7.36 # pulsar connector -logbackVersion=1.2.23 +logbackVersion=1.2.13 jacksonBomVersion=2.13.5 jnrVersion=3.1.20 nettyVersion=4.1.122.Final -nettyTcNativeVersion=4.1.122.Final +nettyTcNativeVersion=2.0.72.Final commonCompressVersion=1.27.1 gsonVersion=2.8.9 jsonVersion=20250107 @@ -45,4 +45,4 @@ cdc_total_space_in_mb=70 dockerRepo=myrepo/ # CDC backfilling Client -dsbulkVersion=1.10.0 +dsbulkVersion=1.11.0 From 1c994ae6fa9ab29a4bd3fc2d496005744ffe1898 Mon Sep 17 00:00:00 2001 From: Arkadip Date: Fri, 13 Jun 2025 09:37:31 +0530 Subject: [PATCH 5/8] refactor(NativeSchemaWrapper): downgraded avro version to the previous version --- .../main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/commons/src/main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java b/commons/src/main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java index 164087ed..ea9dfcec 100644 --- a/commons/src/main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java +++ b/commons/src/main/java/com/datastax/oss/cdc/NativeSchemaWrapper.java @@ -16,7 +16,6 @@ package com.datastax.oss.cdc; import org.apache.avro.Schema; -import org.apache.avro.SchemaFormatter; import org.apache.pulsar.client.api.schema.SchemaInfoProvider; import org.apache.pulsar.common.schema.SchemaInfo; import org.apache.pulsar.common.schema.SchemaType; @@ -36,7 +35,7 @@ public NativeSchemaWrapper(Schema nativeSchema, SchemaType pulsarSchemaType) { this.nativeSchema = nativeSchema; this.pulsarSchemaType = pulsarSchemaType; this.pulsarSchemaInfo = SchemaInfo.builder() - .schema(SchemaFormatter.getInstance("json").format(nativeSchema).getBytes(StandardCharsets.UTF_8)) + .schema(nativeSchema.toString(false).getBytes(StandardCharsets.UTF_8)) .properties(new HashMap<>()) .type(pulsarSchemaType) .name(nativeSchema.getName()) From 172641d22317f01aff05d5325d5c352c4ee89c83 Mon Sep 17 00:00:00 2001 From: Arkadip Date: Fri, 13 Jun 2025 09:39:29 +0530 Subject: [PATCH 6/8] refactor: updated all the converters containing CqlVectorType to VectorType as per driver version 4.17 --- .../converters/AbstractNativeConverter.java | 13 ++-- .../converters/NativeAvroConverter.java | 64 ++++++++++--------- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/connector/src/main/java/com/datastax/oss/pulsar/source/converters/AbstractNativeConverter.java b/connector/src/main/java/com/datastax/oss/pulsar/source/converters/AbstractNativeConverter.java index c53ec5e8..be63f02d 100644 --- a/connector/src/main/java/com/datastax/oss/pulsar/source/converters/AbstractNativeConverter.java +++ b/connector/src/main/java/com/datastax/oss/pulsar/source/converters/AbstractNativeConverter.java @@ -22,7 +22,7 @@ import com.datastax.oss.driver.api.core.metadata.schema.ColumnMetadata; import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata; import com.datastax.oss.driver.api.core.metadata.schema.TableMetadata; -import com.datastax.oss.driver.api.core.type.CqlVectorType; +import com.datastax.oss.driver.api.core.type.VectorType; import com.datastax.oss.driver.api.core.type.DataType; import com.datastax.oss.driver.api.core.type.ListType; import com.datastax.oss.driver.api.core.type.MapType; @@ -76,7 +76,7 @@ public AbstractNativeConverter(KeyspaceMetadata ksm, TableMetadata tm, List vectorValue = new ArrayList<>(); - vector.getValues().forEach(vectorValue::add); + vector.stream().forEach(vectorValue::add); genericRecordBuilder.put(fieldName, buildArrayValue(vectorSchema, vectorValue)); } } @@ -275,35 +276,35 @@ GenericRecord buildUDTValue(Schema udtSchema, UdtValue udtValue) { genericRecord.put(field.toString(), udtValue.getBigInteger(field)); break; case ProtocolConstants.DataType.LIST: { - ListType listType = (ListType) udtValue.getType(field); - List listValue = udtValue.getList(field, CodecRegistry.DEFAULT.codecFor(listType.getElementType()).getJavaType().getRawType()); - String path = typeName + "." + field.toString(); - Schema elementSchema = subSchemas.get(path); - log.debug("path={} elementSchema={} listType={} listValue={}", path, elementSchema, listType, listValue); - genericRecord.put(field.toString(), buildArrayValue(elementSchema, listValue)); - } - break; + ListType listType = (ListType) udtValue.getType(field); + List listValue = udtValue.getList(field, CodecRegistry.DEFAULT.codecFor(listType.getElementType()).getJavaType().getRawType()); + String path = typeName + "." + field.toString(); + Schema elementSchema = subSchemas.get(path); + log.debug("path={} elementSchema={} listType={} listValue={}", path, elementSchema, listType, listValue); + genericRecord.put(field.toString(), buildArrayValue(elementSchema, listValue)); + } + break; case ProtocolConstants.DataType.SET: { - SetType setType = (SetType) udtValue.getType(field); - Set setValue = udtValue.getSet(field, CodecRegistry.DEFAULT.codecFor(setType.getElementType()).getJavaType().getRawType()); - String path = typeName + "." + field.toString(); - Schema elementSchema = subSchemas.get(path); - log.debug("path={} elementSchema={} setType={} setValue={}", path, elementSchema, setType, setValue); - genericRecord.put(field.toString(), buildArrayValue(elementSchema, setValue)); - } - break; + SetType setType = (SetType) udtValue.getType(field); + Set setValue = udtValue.getSet(field, CodecRegistry.DEFAULT.codecFor(setType.getElementType()).getJavaType().getRawType()); + String path = typeName + "." + field.toString(); + Schema elementSchema = subSchemas.get(path); + log.debug("path={} elementSchema={} setType={} setValue={}", path, elementSchema, setType, setValue); + genericRecord.put(field.toString(), buildArrayValue(elementSchema, setValue)); + } + break; case ProtocolConstants.DataType.MAP: { - MapType mapType = (MapType) udtValue.getType(field); - Map mapValue = udtValue.getMap(field, - CodecRegistry.DEFAULT.codecFor(mapType.getKeyType()).getJavaType().getRawType(), - CodecRegistry.DEFAULT.codecFor(mapType.getValueType()).getJavaType().getRawType()) - .entrySet().stream().collect(Collectors.toMap(e -> stringify(mapType.getKeyType(), e.getKey()), Map.Entry::getValue)); - String path = typeName + "." + field.toString(); - Schema valueSchema = subSchemas.get(path); - log.debug("path={} valueSchema={} mapType={} mapValue={}", path, valueSchema, mapType, mapValue); - genericRecord.put(field.toString(), mapValue); - } - break; + MapType mapType = (MapType) udtValue.getType(field); + Map mapValue = udtValue.getMap(field, + CodecRegistry.DEFAULT.codecFor(mapType.getKeyType()).getJavaType().getRawType(), + CodecRegistry.DEFAULT.codecFor(mapType.getValueType()).getJavaType().getRawType()) + .entrySet().stream().collect(Collectors.toMap(e -> stringify(mapType.getKeyType(), e.getKey()), Map.Entry::getValue)); + String path = typeName + "." + field.toString(); + Schema valueSchema = subSchemas.get(path); + log.debug("path={} valueSchema={} mapType={} mapValue={}", path, valueSchema, mapType, mapValue); + genericRecord.put(field.toString(), mapValue); + } + break; default: log.debug("Ignoring unsupported type field name={} type={}", field, dataType.asCql(false, true)); } @@ -418,3 +419,4 @@ public IndexedRecord toRecord(CqlDuration value, Schema schema, LogicalType type } } } + From 2717dd42f0fa70fa365d1627b255a847230089d5 Mon Sep 17 00:00:00 2001 From: Arkadip Date: Fri, 13 Jun 2025 09:41:41 +0530 Subject: [PATCH 7/8] refactor(NativeJsonConverter): updated Jackson JsonNodeFactory to remove the deprication warning --- .../oss/pulsar/source/converters/NativeJsonConverter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/connector/src/main/java/com/datastax/oss/pulsar/source/converters/NativeJsonConverter.java b/connector/src/main/java/com/datastax/oss/pulsar/source/converters/NativeJsonConverter.java index b9fa0803..2b309f0b 100644 --- a/connector/src/main/java/com/datastax/oss/pulsar/source/converters/NativeJsonConverter.java +++ b/connector/src/main/java/com/datastax/oss/pulsar/source/converters/NativeJsonConverter.java @@ -63,7 +63,7 @@ public class NativeJsonConverter extends AbstractNativeConverter { private static final ObjectMapper mapper = new ObjectMapper(); - private static final JsonNodeFactory jsonNodeFactory = JsonNodeFactory.withExactBigDecimals(true); + private static final JsonNodeFactory jsonNodeFactory = new JsonNodeFactory(true); public NativeJsonConverter(KeyspaceMetadata ksm, TableMetadata tm, List columns) { super(ksm, tm, columns); From 3473196f053eba46bdc670eaa793a7b49377af98 Mon Sep 17 00:00:00 2001 From: Arkadip Date: Fri, 13 Jun 2025 14:53:16 +0530 Subject: [PATCH 8/8] refactor(testcontainers): replaced withCopyToContainer with withFileSystemBind and downgraded testContainersVersion --- gradle.properties | 2 +- .../main/java/com/datastax/oss/cdc/PulsarDualNodeTests.java | 4 ++-- .../com/datastax/testcontainers/ChaosNetworkContainer.java | 2 +- .../datastax/testcontainers/cassandra/CassandraContainer.java | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index dbde6ba1..33b7d1b9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,7 +22,7 @@ testPulsarImageTag=2.10_3.4 kafkaVersion=3.4.1 vavrVersion=0.10.6 -testContainersVersion=1.19.8 +testContainersVersion=1.19.1 caffeineVersion=2.9.3 guavaVersion=30.1-jre messagingConnectorsCommonsVersion=1.0.15 diff --git a/testcontainers/src/main/java/com/datastax/oss/cdc/PulsarDualNodeTests.java b/testcontainers/src/main/java/com/datastax/oss/cdc/PulsarDualNodeTests.java index 5f921da9..c7730393 100644 --- a/testcontainers/src/main/java/com/datastax/oss/cdc/PulsarDualNodeTests.java +++ b/testcontainers/src/main/java/com/datastax/oss/cdc/PulsarDualNodeTests.java @@ -222,9 +222,9 @@ public void testUnorderedMutations() throws InterruptedException, IOException { String randomDataDir = System.getProperty("buildDir") + "/data-" + testId + "-"; try ( CassandraContainer cassandraContainer1 = createCassandraContainer(1, pulsarServiceUrl, testNetwork) - .withCopyToContainer(Transferable.of(randomDataDir + "1"), "/var/lib/cassandra"); + .withFileSystemBind(randomDataDir + "1", "/var/lib/cassandra"); CassandraContainer cassandraContainer2 = createCassandraContainer(2, pulsarServiceUrl, testNetwork) - .withCopyToContainer(Transferable.of(randomDataDir + "2"), "/var/lib/cassandra") + .withFileSystemBind(randomDataDir + "2", "/var/lib/cassandra"); ) { cassandraContainer1.start(); cassandraContainer2.start(); diff --git a/testcontainers/src/main/java/com/datastax/testcontainers/ChaosNetworkContainer.java b/testcontainers/src/main/java/com/datastax/testcontainers/ChaosNetworkContainer.java index 278d78bf..fda04663 100644 --- a/testcontainers/src/main/java/com/datastax/testcontainers/ChaosNetworkContainer.java +++ b/testcontainers/src/main/java/com/datastax/testcontainers/ChaosNetworkContainer.java @@ -35,7 +35,7 @@ public class ChaosNetworkContainer> ext public ChaosNetworkContainer(String targetContainer, String pause) { super(PUMBA_IMAGE); setCommand("--log-level debug netem --tc-image gaiadocker/iproute2 --duration " + pause + " loss --percent 100 " + targetContainer); - withFileSystemBind("/var/run/docker.sock", "/var/run/docker.sock", BindMode.READ_WRITE); + addFileSystemBind("/var/run/docker.sock", "/var/run/docker.sock", BindMode.READ_WRITE); setWaitStrategy(Wait.forLogMessage(".*tc container created.*", 1)); withLogConsumer(o -> { final String line = o.getUtf8String(); diff --git a/testcontainers/src/main/java/com/datastax/testcontainers/cassandra/CassandraContainer.java b/testcontainers/src/main/java/com/datastax/testcontainers/cassandra/CassandraContainer.java index 8914889e..40b054bf 100644 --- a/testcontainers/src/main/java/com/datastax/testcontainers/cassandra/CassandraContainer.java +++ b/testcontainers/src/main/java/com/datastax/testcontainers/cassandra/CassandraContainer.java @@ -289,8 +289,8 @@ public static CassandraContainer createCassandraContainerWithAgent(DockerImag .withCreateContainerCmdModifier(c -> c.withName("cassandra-" + nodeIndex)) .withNetwork(network) .withConfigurationOverride(configLocation) - .withCopyToContainer( - Transferable.of(String.format(Locale.ROOT, "%s/libs/%s", agentBuildDir, jarFile)), + .withFileSystemBind( + String.format(Locale.ROOT, "%s/libs/%s", agentBuildDir, jarFile), String.format(Locale.ROOT, "/%s", jarFile)) .withEnv("JVM_EXTRA_OPTS", String.format(Locale.ROOT, "-javaagent:/%s=%s -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=" +