ScyllaDB
Testcontainers module for ScyllaDB
ScyllaDB's usage examples
You can start a ScyllaDB container instance from any Java application by using:
ScyllaDBContainer scylladb = new ScyllaDBContainer("scylladb/scylla:6.2")
ScyllaDBContainer scylladb = new ScyllaDBContainer("scylladb/scylla:6.2")
.withConfigurationOverride("scylla-test-ssl")
.withSsl(
MountableFile.forClasspathResource("keys/scylla.cer.pem"),
MountableFile.forClasspathResource("keys/scylla.key.pem"),
MountableFile.forClasspathResource("keys/scylla.truststore")
)
Building CqlSession
CqlSession session = CqlSession
.builder()
.addContactPoint(scylladb.getContactPoint())
.withLocalDatacenter("datacenter1")
.build();
String testResourcesDir = getClass().getClassLoader().getResource("keys/").getPath();
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(
Files.newInputStream(Paths.get(testResourcesDir + "scylla.keystore")),
"scylla".toCharArray()
);
KeyStore trustStore = KeyStore.getInstance("PKCS12");
trustStore.load(
Files.newInputStream(Paths.get(testResourcesDir + "scylla.truststore")),
"scylla".toCharArray()
);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(
KeyManagerFactory.getDefaultAlgorithm()
);
keyManagerFactory.init(keyStore, "scylla".toCharArray());
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(
TrustManagerFactory.getDefaultAlgorithm()
);
trustManagerFactory.init(trustStore);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null);
CqlSession session = CqlSession
.builder()
.addContactPoint(scylladb.getShardAwareContactPoint())
.withLocalDatacenter("datacenter1")
.build();
Alternator
ScyllaDBContainer scylladb = new ScyllaDBContainer(SCYLLADB_IMAGE).withAlternator()
DynamoDbClient client = DynamoDbClient
.builder()
.endpointOverride(URI.create(scylladb.getAlternatorEndpoint()))
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("test", "test")))
.region(Region.US_EAST_1)
.build();
Adding this module to your project dependencies
Add the following dependency to your pom.xml
/build.gradle
file:
testImplementation "org.testcontainers:scylladb:1.20.4"
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>scylladb</artifactId>
<version>1.20.4</version>
<scope>test</scope>
</dependency>