Package com.iizix.jdbc
Class DerbyImpl
java.lang.Object
com.iizix.jdbc.DerbyImpl
Class containing Derby client data and optionally to start/stop the database server.
- Author:
- Christopher Mindus
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The Derby Client driver class name.static final int
The default Derby server network port: 1527.Constructor Summary
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
addServerStateListener
(Runnable listener) Adds a new listener for the server state.static boolean
Checks if the Derby network server can be stopped, or if it running outside of our reach.static int
Gets the server port being used.static DBServerState
Gets the state of the Derby network server.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.static boolean
removeServerStateListener
(Runnable listener) Removes a listener for the server state.static DBServerState
startServer
(File jdbcDriversDir, File dbDir, int port) Starts the Derby network server with configured port if running on "localhost".static DBServerState
stopServer
(File jdbcDriversDir) Stops the Derby network server if started from this instance.
Field Details
DERBY_DEFAULT_PORT
public static final int DERBY_DEFAULT_PORTThe default Derby server network port: 1527.- See Also:
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 ofdoStartDBSeerver
ifhost
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
- IfjdbcDriversDir
isnull
.IllegalArgumentException
- Ifport
is not 1 to 65535, or the directoryjdbcDriversDir
ordir
does not exist.
Method Details
getServerState
Gets the state of the Derby network server.- Returns:
- The state.
addServerStateListener
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 isnull
.
removeServerStateListener
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 isnull
.
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 specifiedhost
andport
, 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 tonull
to useProxy.NO_PROXY
.- Returns:
- One of:
startServer
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
- Ifdir
isnull
.IllegalArgumentException
- Ifport
is not 1 to 65535, or the directorydir
does not exist.
stopServer
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.