Class SmileCdrContainer
- All Implemented Interfaces:
AutoCloseable
,org.junit.rules.TestRule
,org.testcontainers.containers.Container<SmileCdrContainer>
,org.testcontainers.containers.ContainerState
,org.testcontainers.containers.traits.LinkableContainer
,org.testcontainers.containers.wait.strategy.WaitStrategyTarget
,org.testcontainers.lifecycle.Startable
Instances of this container allow for flexible customization and configuration of Smile CDR images, including properties file specifications, logback configurations, and support for customer JAR files. It supports smooth integration and automated provisioning of Smile CDR services for testing and development environments.
The design facilitates: - Configuration of Smile CDR version and the corresponding Docker image. - Mounting of custom resources such as properties files, logback configurations, or JARs. - Automatic setup of exposed ports based on specified or default configurations. - Log consumption to aid in debugging and diagnostics during container runtime. - Ensuring modular support with organized port mapping and harness configuration.
This class was generated partly with the help of Claude Sonnet 3.7
-
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
ConstructorsConstructorDescriptionSmileCdrContainer
(String theSmileCdrVersion) Use this constructor to change the version of Smile CDR, but use Smile's container registry.SmileCdrContainer
(org.testcontainers.utility.DockerImageName imageName) Use this constructor to provide a completely custom Docker Image Name to use. -
Method Summary
Modifier and TypeMethodDescriptionGets the port values organized by Module Type and Module ID.void
start()
withCustomerJars
(String... theJarNames) Specifies which JAR files from the cdr-interceptor-starterproject's target folder should be copied into the SmileCdrContainer at /home/smile/smilecdr/customerlib/.withCustomHarnessContext
(HarnessContext theHarnessContext) withCustomLogback
(String theCustomLogbackLocation) withPropertiesFile
(String thePropertiesFileLocation) Methods inherited from class org.testcontainers.containers.GenericContainer
addEnv, addExposedPort, addExposedPorts, addFileSystemBind, addFixedExposedPort, addFixedExposedPort, addLink, apply, canBeReused, configure, containerIsCreated, containerIsStarted, containerIsStarted, containerIsStarting, containerIsStarting, containerIsStopped, containerIsStopping, copyFileFromContainer, createVolumeDirectory, dependsOn, dependsOn, dependsOn, doStart, equals, failed, finished, 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, starting, stop, succeeded, 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
-
SmileCdrContainer
public SmileCdrContainer() -
SmileCdrContainer
Use this constructor to change the version of Smile CDR, but use Smile's container registry. -
SmileCdrContainer
Use this constructor to provide a completely custom Docker Image Name to use. Use this if you need to use your own private registry
-
-
Method Details
-
start
- Specified by:
start
in interfaceorg.testcontainers.lifecycle.Startable
- Overrides:
start
in classorg.testcontainers.containers.GenericContainer<SmileCdrContainer>
-
withBoundProjectClasspath
-
withCustomHarnessContext
-
withPropertiesFile
-
withCustomLogback
-
withAllTroubleshootingLogsEnabled
-
withCustomerJars
Specifies which JAR files from the cdr-interceptor-starterproject's target folder should be copied into the SmileCdrContainer at /home/smile/smilecdr/customerlib/.First looks in the classpath for a jar with a given name. If it does not find one, it also looks in the target/ directory. If it still doesn't find one, then it fails.
- Parameters:
theJarNames
- A comma-separated list of JAR filenames to copy. If null or empty, all JAR files in the target directory will be copied.- Returns:
- This container instance for method chaining
-
getHarness
-
getPortMapping
-
getPortValuesByModuleType
Gets the port values organized by Module Type and Module ID.- Returns:
- A map where the key is the Module Type and the value is a map of Module ID to port
-