Class LocalDynamoDBContainer

java.lang.Object
io.ebean.test.containers.LocalDynamoDBContainer
All Implemented Interfaces:
Container<LocalDynamoDBContainer>

public class LocalDynamoDBContainer extends Object
Container using amazon/dynamodb-local.


     LocalDynamoDBContainer container = LocalDynamoDBContainer.builder"1.13.2")
       //.port(8001)
       //.containerName("ut_dynamodb")
       //.image("amazon/dynamodb-local:1.13.2")
       .build();

     // start the container (if not already started)
     container.start();

     // obtain the AWS DynamoDB client
     AmazonDynamoDB amazonDynamoDB = container.dynamoDB();

     createTableIfNeeded(amazonDynamoDB);

     // container will be shutdown and removed via shutdown hook
     // local devs touch ~/.ebean/ignore-docker-shutdown
     // to keep the container running for faster testing etc

 

Shutdown

By default, the container will be shutdown and removed via shutdown hook

Local development

For local development we typically want to keep the container running such that tests are fast to run. To do this:

   touch ~/.ebean/ignore-docker-shutdown
 
  • Field Details

    • buildConfig

      protected final io.ebean.test.containers.BaseBuilder<?,?> buildConfig
    • config

      protected io.ebean.test.containers.InternalConfig config
    • commands

      protected final Commands commands
    • waitForConnectivityAttempts

      protected int waitForConnectivityAttempts
    • shutdownMode

      protected StopMode shutdownMode
    • usingContainerId

      protected boolean usingContainerId
    • usingRandomPort

      protected boolean usingRandomPort
    • removeOnExit

      protected boolean removeOnExit
  • Constructor Details

  • Method Details

    • start

      public LocalDynamoDBContainer start()
      Description copied from interface: Container
      Start and return the container.

      Throws an IllegalStateException if the container can not be started.

    • builder

      public static LocalDynamoDBContainer.Builder builder(String version)
      Create a builder for LocalDynamoDBContainer given the localstack image version.
    • endpointUrl

      public String endpointUrl()
      Return the endpoint URL that can be used to connect to this container.
    • dynamoDB

      public com.amazonaws.services.dynamodbv2.AmazonDynamoDB dynamoDB()
      Return the AmazonDynamoDB that can be used for this container.

      This should be used AFTER the container is started.

    • checkConnectivity

      public boolean checkConnectivity()
    • runProcess

      protected ProcessBuilder runProcess()
      Return the ProcessBuilder used to execute the container run command.
    • config

      public ContainerConfig config()
      Description copied from interface: Container
      Returns the container configuration.
      Specified by:
      config in interface Container<C extends Container<C>>
    • startMaybe

      public boolean startMaybe()
      Description copied from interface: Container
      Start the container returning true if successful.
      Specified by:
      startMaybe in interface Container<C extends Container<C>>
    • startOrThrow

      public void startOrThrow()
      Description copied from interface: Container
      Start the container or throw a IllegalStateException.
      Specified by:
      startOrThrow in interface Container<C extends Container<C>>
    • port

      public int port()
      Description copied from interface: Container
      Return the port this container is using.

      This is typically useful if the container was started with a random port and, we need to know what that port was.

      Specified by:
      port in interface Container<C extends Container<C>>
    • setDefaultContainerName

      protected void setDefaultContainerName()
      Set a default container name if not using random port.
    • isRunning

      public boolean isRunning()
      Description copied from interface: Container
      Return true if the container is running.
      Specified by:
      isRunning in interface Container<C extends Container<C>>
    • registerShutdownHook

      public void registerShutdownHook()
      Register a JVM Shutdown hook to stop the container with the given mode.
    • shutdownHook

      protected boolean shutdownHook(boolean started)
    • startWithConnectivity

      protected boolean startWithConnectivity()
    • stop

      public void stop()
      Stop using the configured stopMode of 'stop' or 'remove'.

      Remove additionally removes the container (expected use in build agents).

      Specified by:
      stop in interface Container<C extends Container<C>>
    • stopRemove

      public void stopRemove()
      Stop and remove the container effectively deleting the container.
      Specified by:
      stopRemove in interface Container<C extends Container<C>>
    • createProcessBuilder

      protected ProcessBuilder createProcessBuilder(List<String> args)
    • dockerRun

      protected List<String> dockerRun()
    • readUrlContent

      protected String readUrlContent(String url) throws IOException
      Return http GET content given the url.
      Throws:
      IOException