Class DerbyImpl

java.lang.Object
com.iizix.jdbc.DerbyImpl

public class DerbyImpl extends Object
Class containing Derby client data and optionally to start/stop the database server.
Author:
Christopher Mindus
  • Field Details

    • DERBY_DEFAULT_PORT

      public static final int DERBY_DEFAULT_PORT
      The default Derby server network port: 1527.
      See Also:
    • DERBY_CLIENT_DRIVER_CLASS

      public static final String DERBY_CLIENT_DRIVER_CLASS
      The Derby Client driver class name.
      See Also:
  • Constructor Details

    • DerbyImpl

      public DerbyImpl(File jdbcDriversDir, File dir, boolean doStartDBServer, String host, int port, String database, boolean doCreateDB, String username, String password)
      Constructor.
      Parameters:
      dir - The directory to the derby Database server current directory. If the directory does not exist, it will be created. null means that the database server is not started.
      doStartDBServer - Flag to start the Derby network database server.
      host - The host name of the Derby network database server. The server will not be started, regardless of doStartDBSeerver if host is not "localhost", "127.0.0.1" or null.
      port - The port number to use, -1 or zero for default.
      database - The database name.
      doCreateDB - Flag to create database if not existing.
      username - The user name.
      password - The password.
      Throws:
      NullPointerException - If jdbcDriversDir is null.
      IllegalArgumentException - If port is not 1 to 65535, or the directory jdbcDriversDir or dir does not exist.
  • Method Details

    • getServerState

      public static DBServerState getServerState()
      Gets the state of the Derby network server.
      Returns:
      The state.
    • addServerStateListener

      public static boolean addServerStateListener(Runnable listener)
      Adds a new listener for the server state. Calling this method multiple times with the same listener will have no effect (but to return false).
      Parameters:
      listener - The listener.
      Returns:
      true if the listener was added, false otherwise.
      Throws:
      NullPointerException - If the listener is null.
    • removeServerStateListener

      public static boolean removeServerStateListener(Runnable listener)
      Removes a listener for the server state.
      Parameters:
      listener - The listener.
      Returns:
      true if listener is successfully removed, false otherwise.
      Throws:
      NullPointerException - If the listener is null.
    • canStopServer

      public static boolean canStopServer()
      Checks if the Derby network server can be stopped, or if it running outside of our reach.
      Returns:
      true if it can probably be stopped, false if not, or already stopped.
    • getServerPort

      public static int getServerPort()
      Gets the server port being used.
      Returns:
      The port number, zero if not started/starting.
    • isSocketConnectable

      public static DBServerState isSocketConnectable(String host, int port, int timeout, IWebServiceEngine wsEngine)
      Checks if a host is Socket connectable on the specified host name and port. This call does just tries to access the Socket with the specified host and port, nothing else.
      Parameters:
      host - The host name or address.
      port - The port name.
      timeout - Specifies the timeout value, in milliseconds, to be used when opening a communications link to the specified host and port. A timeout of zero is interpreted as an infinite timeout and is NOT recommended.
      wsEngine - The web service engine used to resolve a proxy in case it's not a "localhost". Set to null to use Proxy.NO_PROXY.
      Returns:
      One of:
    • startServer

      public static DBServerState startServer(File jdbcDriversDir, File dbDir, int port)
      Starts the Derby network server with configured port if running on "localhost". Otherwise nothing is done.

      If network server process failed starting, the error will be logged as SEVERE.

      Parameters:
      jdbcDriversDir - The directory for the JDBC drivers.
      dbDir - The directory for the databases.
      port - The port number.
      Returns:
      One of:
      Throws:
      NullPointerException - If dir is null.
      IllegalArgumentException - If port is not 1 to 65535, or the directory dir does not exist.
    • stopServer

      public static DBServerState stopServer(File jdbcDriversDir)
      Stops the Derby network server if started from this instance.
      Parameters:
      jdbcDriversDir - The directory for the JDBC drivers.
      Returns:
      The state of the server, one of:
      • STOPPED,
      • CONNECTION_FAILED,
      • START_FAILED,
      • UNKNOWN.