Class OracleContainer

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

public class OracleContainer extends Object
Commands for controlling an Oracle docker container.
  • 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 OracleContainer start()
      Description copied from interface: Container
      Start and return the container.

      Throws an IllegalStateException if the container can not be started.

    • builder

      public static OracleContainer.Builder builder(String version)
      Create a builder for OracleContainer.
    • newBuilder

      @Deprecated public static OracleContainer.Builder newBuilder(String version)
      Deprecated.
      Deprecated - migrate to builder().
    • runProcess

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

      public boolean startWithCreate()
      Start the DB container ensuring the DB and user exist creating them if necessary.
    • startWithDropCreate

      public boolean startWithDropCreate()
      Start the DB container ensuring the DB and user are dropped and then created.
    • checkAlreadyRunning

      protected boolean checkAlreadyRunning()
    • waitForDatabaseReady

      public boolean waitForDatabaseReady()
      Return true when the DB is ready for taking commands (like create database, user etc).
    • isDatabaseReady

      protected boolean isDatabaseReady()
      Return true when the database is ready to take commands.
    • isDatabaseAdminReady

      protected boolean isDatabaseAdminReady()
      Return true when the database is ready to take admin commands.
    • jdbcUrl

      public String jdbcUrl()
      Return the JDBC url to connect to this container.
    • createConnection

      public Connection createConnection() throws SQLException
      Create a connection to this database container.
      Throws:
      SQLException
    • startMaybe

      public boolean startMaybe()
      Description copied from interface: Container
      Start the container returning true if successful.
      Specified by:
      startMaybe in interface Container<C extends io.ebean.test.containers.DbContainer<C>>
    • startForMode

      protected boolean startForMode()
      Start with a mode of 'create', 'dropCreate' or 'container'.

      Expected that mode create will be best most of the time.

    • startContainerOnly

      public boolean startContainerOnly()
      Start the container only without creating database, user, extensions etc.
    • fastStart

      protected boolean fastStart()
      If we are using FastStartMode just check is the DB exists and if so assume it is all created correctly.

      This should only be used with Mode.Create and when the container is already running.

    • isFastStartDatabaseExists

      protected boolean isFastStartDatabaseExists()
    • executeSqlFile

      protected void executeSqlFile(String dbUser, String dbName, String containerFilePath)
    • config

      public ContainerConfig config()
      Description copied from interface: Container
      Returns the container configuration.
      Specified by:
      config 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