Interface EntityConnectionProvider

All Superinterfaces:
AutoCloseable
All Known Subinterfaces:
HttpEntityConnectionProvider, LocalEntityConnectionProvider, RemoteEntityConnectionProvider
All Known Implementing Classes:
AbstractEntityConnectionProvider

public interface EntityConnectionProvider extends AutoCloseable
Provides a managed EntityConnection instance with automatic reconnection handling.

EntityConnectionProvider serves as the primary entry point for database access in Codion applications. It manages connection lifecycle, handles reconnection for both local and remote connections, and provides a consistent interface regardless of the underlying connection type.

Connection Types

Basic Usage

// Local connection
EntityConnectionProvider provider = LocalEntityConnectionProvider.builder()
    .domainType(DOMAIN)
    .user(User.parse("scott:tiger"))
    .build();

// Remote connection
EntityConnectionProvider provider = RemoteEntityConnectionProvider.builder()
    .domainType(DOMAIN)
    .hostName("localhost")
    .port(2223)
    .registryPort(1099)
    .user(User.parse("scott:tiger"))
    .build();

// Use the connection
try (EntityConnectionProvider connProvider = provider) {
    EntityConnection connection = connProvider.connection();
    List<Entity> customers = connection.select(all(Customer.TYPE));
}

Configuration-based Creation

// Configure via system properties
System.setProperty("codion.client.connectionType", "remote");
System.setProperty("codion.client.domainType", "chinook:Chinook");

// Create provider based on configuration
EntityConnectionProvider provider = EntityConnectionProvider.builder()
    .user(User.parse("scott:tiger"))
    .build();
See Also:
  • Field Details

  • Method Details

    • entities

      Entities entities()
      Returns the domain entities this connection is based on
      Returns:
      the underlying domain entities
    • connection

      EntityConnection connection()
      Provides a EntityConnection object, is responsible for returning a healthy EntityConnection object, that is, it must reconnect an invalid connection whether remotely or locally
      Returns:
      a EntityConnection instance
    • connectionType

      String connectionType()
      Returns a String specifying the type of connection provided by this connection provider
      Returns:
      a String specifying the type of connection, e.g. "local" or "remote"
    • description

      String description()
      Returns:
      a short description of the database provider
    • connectionValid

      boolean connectionValid()
      Returns:
      true if a connection has been establised and the connection is in a valid state
    • connected

      Returns:
      an observer notified when a connection is established
    • close

      void close()
      Closes the underlying connection and performs cleanup if required
      Specified by:
      close in interface AutoCloseable
      See Also:
    • user

      User user()
      Returns:
      the user used by this connection provider
    • domainType

      DomainType domainType()
      Returns:
      the domain type
    • clientId

      UUID clientId()
      Returns:
      the UUID identifying this client connection
    • clientType

      Optional<String> clientType()
      Returns:
      the String identifying the client type for this connection provider
    • clientVersion

      Optional<Version> clientVersion()
      Returns:
      the client version
    • builder

      static EntityConnectionProvider.Builder<?,?> builder()
      Creates a connection provider builder based on system configuration.
      // Configure connection type and domain
      System.setProperty("codion.client.connectionType", "remote");
      System.setProperty("codion.client.domainType", "Chinook");
      
      // Create builder based on configuration
      EntityConnectionProvider provider = EntityConnectionProvider.builder()
          .user(User.parse("scott:tiger"))
          .clientType("MyApp")
          .build();
      
      Returns:
      an unconfigured EntityConnectionProvider.Builder instance, based on the CLIENT_CONNECTION_TYPE and CLIENT_DOMAIN_TYPE configuration values
      Throws:
      IllegalStateException - in case the required connection provider builder is not available on the classpath
      See Also: