Class ContainerConnectionDetailsFactory<C extends org.testcontainers.containers.Container<?>,D extends org.springframework.boot.autoconfigure.service.connection.ConnectionDetails>

java.lang.Object
org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory<C,D>
Type Parameters:
D - the connection details type
C - the container type
All Implemented Interfaces:
org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory<ContainerConnectionSource<C>,D>

public abstract class ContainerConnectionDetailsFactory<C extends org.testcontainers.containers.Container<?>,D extends org.springframework.boot.autoconfigure.service.connection.ConnectionDetails> extends Object implements org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory<ContainerConnectionSource<C>,D>
Base class for ConnectionDetailsFactory implementations that provide ConnectionDetails from a ContainerConnectionSource.
Since:
3.1.0
  • Field Details

    • ANY_CONNECTION_NAME

      protected static final String ANY_CONNECTION_NAME
      Constant passed to the constructor when any connection name is accepted.
  • Constructor Details

    • ContainerConnectionDetailsFactory

      protected ContainerConnectionDetailsFactory()
      Create a new ContainerConnectionDetailsFactory instance that accepts any connection name.
    • ContainerConnectionDetailsFactory

      protected ContainerConnectionDetailsFactory(String connectionName, String... requiredClassNames)
      Create a new ContainerConnectionDetailsFactory instance with the given connection name restriction.
      Parameters:
      connectionName - the required connection name or ANY_CONNECTION_NAME
      requiredClassNames - the names of classes that must be present
    • ContainerConnectionDetailsFactory

      protected ContainerConnectionDetailsFactory(List<String> connectionNames, String... requiredClassNames)
      Create a new ContainerConnectionDetailsFactory instance with the given supported connection names.
      Parameters:
      connectionNames - the supported connection names
      requiredClassNames - the names of classes that must be present
      Since:
      3.4.0
  • Method Details

    • getConnectionDetails

      public final D getConnectionDetails(ContainerConnectionSource<C> source)
      Specified by:
      getConnectionDetails in interface org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory<C extends org.testcontainers.containers.Container<?>,D extends org.springframework.boot.autoconfigure.service.connection.ConnectionDetails>
    • sourceAccepts

      protected boolean sourceAccepts(ContainerConnectionSource<C> source, Class<?> requiredContainerType, Class<?> requiredConnectionDetailsType)
      Return if the given source accepts the connection. By default this method checks each connection name.
      Parameters:
      source - the container connection source
      requiredContainerType - the required container type
      requiredConnectionDetailsType - the required connection details type
      Returns:
      if the source accepts the connection
      Since:
      3.4.0
    • getContainerConnectionDetails

      protected abstract D getContainerConnectionDetails(ContainerConnectionSource<C> source)
      Get the ConnectionDetails from the given ContainerConnectionSource source. May return null if no connection can be created. Result types should consider extending ContainerConnectionDetailsFactory.ContainerConnectionDetails.
      Parameters:
      source - the source
      Returns:
      the service connection or null.