All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.tnb.db.cassandra.resource.local.CassandraContainer Maven / Gradle / Ivy

package software.tnb.db.cassandra.resource.local;

import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.wait.strategy.Wait;

import java.time.Duration;
import java.util.HashMap;
import java.util.Map;

public class CassandraContainer extends GenericContainer {

    private final int port;

    public CassandraContainer(String image, int port, Map env) {
        super(image);
        this.port = port;
        withExposedPorts(port);
        Map localEnv = new HashMap<>(env);
        localEnv.put("MAX_HEAP_SIZE", "256M");
        localEnv.put("HEAP_NEWSIZE", "128M");
        withEnv(localEnv);
        withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withMemory(1024L * 1024 * 1024));
        waitingFor(Wait
            .forLogMessage(".*Startup complete.*", 1)
            .withStartupTimeout(Duration.ofMinutes(5))
        );
    }

    public int getPort() {
        return getMappedPort(port);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy