Class CassandraContainer

java.lang.Object
org.testcontainers.containers.GenericContainer<CassandraContainer>
org.testcontainers.cassandra.CassandraContainer
All Implemented Interfaces:
AutoCloseable, org.testcontainers.containers.Container<CassandraContainer>, org.testcontainers.containers.ContainerState, org.testcontainers.containers.traits.LinkableContainer, org.testcontainers.containers.wait.strategy.WaitStrategyTarget, org.testcontainers.lifecycle.Startable

public class CassandraContainer extends org.testcontainers.containers.GenericContainer<CassandraContainer>
Testcontainers implementation for Apache Cassandra.

Supported image: cassandra

Exposed ports: 9042

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.testcontainers.containers.Container

    org.testcontainers.containers.Container.ExecResult
  • Field Summary

    Fields inherited from class org.testcontainers.containers.GenericContainer

    CONTAINER_RUNNING_TIMEOUT_SEC, dependencies, dockerClient, INTERNAL_HOST_HOSTNAME, waitStrategy

    Fields inherited from interface org.testcontainers.containers.ContainerState

    STATE_HEALTHY
  • Constructor Summary

    Constructors
    Constructor
    Description
    CassandraContainer(String dockerImageName)
     
    CassandraContainer(org.testcontainers.utility.DockerImageName dockerImageName)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
     
    protected void
    containerIsStarted(com.github.dockerjava.api.command.InspectContainerResponse containerInfo)
     
    Retrieve an InetSocketAddress for connecting to the Cassandra container via the driver.
    Retrieve the Local Datacenter for connecting to the Cassandra container via the driver.
    Get password
    Get username
    Initialize Cassandra with the custom overridden Cassandra configuration
    withInitScript(String initScriptPath)
    Initialize Cassandra with init CQL script
    withSsl(String clientCertFile, String clientKeyFile)
    Configure secured connection (TLS) when required by the Cassandra configuration (i.e.

    Methods inherited from class org.testcontainers.containers.GenericContainer

    addEnv, addExposedPort, addExposedPorts, addFileSystemBind, addFixedExposedPort, addFixedExposedPort, addLink, canBeReused, containerIsCreated, containerIsStarted, containerIsStarting, containerIsStarting, containerIsStopped, containerIsStopping, copyFileFromContainer, createVolumeDirectory, dependsOn, dependsOn, dependsOn, doStart, equals, getBinds, getCommandParts, getContainerId, getContainerInfo, getContainerName, getCopyToFileContainerPathMap, getCreateContainerCmdModifiers, getDependencies, getDockerClient, getDockerImageName, getEnv, getEnvMap, getExposedPorts, getExtraHosts, getImage, getIpAddress, getLabels, getLinkedContainers, getLivenessCheckPort, getLivenessCheckPortNumbers, getLivenessCheckPorts, getLogConsumers, getNetwork, getNetworkAliases, getNetworkMode, getPortBindings, getShmSize, getStartupAttempts, getStartupCheckStrategy, getTestHostIpAddress, getTmpFsMapping, getVolumesFroms, getWaitStrategy, getWorkingDirectory, hashCode, isHostAccessible, isPrivilegedMode, isShouldBeReused, logger, setBinds, setCommand, setCommand, setCommandParts, setContainerDef, setCopyToFileContainerPathMap, setDockerImageName, setEnv, setExposedPorts, setExtraHosts, setHostAccessible, setImage, setLabels, setLinkedContainers, setLogConsumers, setNetwork, setNetworkAliases, setNetworkMode, setPortBindings, setPrivilegedMode, setShmSize, setStartupAttempts, setStartupCheckStrategy, setTmpFsMapping, setVolumesFroms, setWaitStrategy, setWorkingDirectory, start, stop, toString, waitingFor, waitUntilContainerStarted, withAccessToHost, withClasspathResourceMapping, withClasspathResourceMapping, withCommand, withCommand, withCopyFileToContainer, withCopyToContainer, withCreateContainerCmdModifier, withEnv, withEnv, withExposedPorts, withExtraHost, withFileSystemBind, withImagePullPolicy, withLabel, withLabels, withLogConsumer, withMinimumRunningDuration, withNetwork, withNetworkAliases, withNetworkMode, withPrivilegedMode, withReuse, withSharedMemorySize, withStartupAttempts, withStartupCheckStrategy, withStartupTimeout, withTmpFs, withVolumesFrom, withWorkingDirectory

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.testcontainers.containers.Container

    addFileSystemBind, followOutput, followOutput, self, withEnv, withFileSystemBind

    Methods inherited from interface org.testcontainers.containers.ContainerState

    copyFileFromContainer, copyFileToContainer, copyFileToContainer, execInContainer, execInContainer, execInContainer, execInContainer, execInContainerWithUser, execInContainerWithUser, getBoundPortNumbers, getContainerIpAddress, getCurrentContainerInfo, getFirstMappedPort, getHost, getLogs, getLogs, getMappedPort, isCreated, isHealthy, isRunning

    Methods inherited from interface org.testcontainers.lifecycle.Startable

    close
  • Constructor Details

    • CassandraContainer

      public CassandraContainer(String dockerImageName)
    • CassandraContainer

      public CassandraContainer(org.testcontainers.utility.DockerImageName dockerImageName)
  • Method Details

    • configure

      protected void configure()
      Overrides:
      configure in class org.testcontainers.containers.GenericContainer<CassandraContainer>
    • containerIsStarted

      protected void containerIsStarted(com.github.dockerjava.api.command.InspectContainerResponse containerInfo)
      Overrides:
      containerIsStarted in class org.testcontainers.containers.GenericContainer<CassandraContainer>
    • withConfigurationOverride

      public CassandraContainer withConfigurationOverride(String configLocation)
      Initialize Cassandra with the custom overridden Cassandra configuration

      Be aware, that Docker effectively replaces all /etc/cassandra content with the content of config location, so if Cassandra.yaml in configLocation is absent or corrupted, then Cassandra just won't launch.

      Parameters:
      configLocation - relative classpath with the directory that contains cassandra.yaml and other configuration files
      Returns:
      The updated CassandraContainer.
    • withInitScript

      public CassandraContainer withInitScript(String initScriptPath)
      Initialize Cassandra with init CQL script

      CQL script will be applied after container is started (see using WaitStrategy).

      Parameters:
      initScriptPath - relative classpath resource
      Returns:
      The updated CassandraContainer.
    • withSsl

      public CassandraContainer withSsl(String clientCertFile, String clientKeyFile)
      Configure secured connection (TLS) when required by the Cassandra configuration (i.e. cassandra.yaml file contains the property client_encryption_options.optional with value false).
      Parameters:
      clientCertFile - The client certificate required to execute CQL scripts.
      clientKeyFile - The client key required to execute CQL scripts.
      Returns:
      The updated CassandraContainer.
    • getUsername

      public String getUsername()
      Get username

      By default, Cassandra has authenticator: AllowAllAuthenticator in cassandra.yaml If username and password need to be used, then authenticator should be set as PasswordAuthenticator (through custom Cassandra configuration) and through CQL with default cassandra-cassandra credentials user management should be modified

    • getPassword

      public String getPassword()
      Get password

      By default, Cassandra has authenticator: AllowAllAuthenticator in cassandra.yaml If username and password need to be used, then authenticator should be set as PasswordAuthenticator (through custom Cassandra configuration) and through CQL with default cassandra-cassandra credentials user management should be modified

    • getContactPoint

      public InetSocketAddress getContactPoint()
      Retrieve an InetSocketAddress for connecting to the Cassandra container via the driver.
      Returns:
      A InetSocketAddress representation of this Cassandra container's host and port.
    • getLocalDatacenter

      public String getLocalDatacenter()
      Retrieve the Local Datacenter for connecting to the Cassandra container via the driver.
      Returns:
      The configured local Datacenter name.