Class DerbyMaster
- java.lang.Object
-
- org.linuxforhealth.fhir.database.utils.derby.DerbyMaster
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class DerbyMaster extends java.lang.Object implements java.lang.AutoCloseable
Set up an instance of Derby for use with unit tests
-
-
Constructor Summary
Constructors Constructor Description DerbyMaster(java.lang.String database)
Public constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
createSchema(IConnectionProvider pool, IVersionHistoryService vhs, PhysicalDataModel pdm)
Ask the schema to apply itself to our target (adapter pattern)void
createSchema(IConnectionProvider pool, PhysicalDataModel pdm)
Ask the schema to apply itself to our target (adapter pattern)void
createSchemaIfNeeded(java.lang.String schemaName)
Derby setSchema fails if the schema doesn't exist, so we need to create that now in order for our connections to succeed when we build out the FHIR databasestatic void
dropDatabase(java.lang.String database)
Drop the contents of the database on disk.void
dumpLockInfo()
Diagnostic utility to display all the current locks in the Derby databasestatic void
dumpLockInfo(java.sql.Connection c)
Dump locks using the given connectionjava.sql.Connection
getConnection()
Get a connection to the configured Derby database, creating the database if necessary.IDatabaseTranslator
getTranslator()
Get the statement translator we use for Derbyvoid
runWithAdapter(java.util.function.Consumer<ISchemaAdapter> fn)
Run the function with an adapter configured for this databasevoid
runWithAdapter(IConnectionProvider pool, java.util.function.Consumer<ISchemaAdapter> fn)
Run theIDatabaseAdapter
command fn using a DerbyAdapter for the given connection poolstatic void
shutdown(java.lang.String databaseName)
static ISchemaAdapter
wrap(IDatabaseAdapter databaseAdapter)
Utility method to wrap the database adapter in a plain schema adapter which acts as a pass-through to the underlying databaseAdapter
-
-
-
Method Detail
-
createSchemaIfNeeded
public void createSchemaIfNeeded(java.lang.String schemaName)
Derby setSchema fails if the schema doesn't exist, so we need to create that now in order for our connections to succeed when we build out the FHIR database- Parameters:
schemaName
-
-
dropDatabase
public static void dropDatabase(java.lang.String database)
Drop the contents of the database on disk. Must contain 'derby/' in the path as a simple check against accidentally wiping the wrong files- Parameters:
database
-
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLException
Get a connection to the configured Derby database, creating the database if necessary.- Returns:
- Throws:
java.sql.SQLException
-
getTranslator
public IDatabaseTranslator getTranslator()
Get the statement translator we use for Derby- Returns:
-
createSchema
public void createSchema(IConnectionProvider pool, PhysicalDataModel pdm)
Ask the schema to apply itself to our target (adapter pattern)- Parameters:
pool
- the connection poolpdm
- the data model to create
-
createSchema
public void createSchema(IConnectionProvider pool, IVersionHistoryService vhs, PhysicalDataModel pdm)
Ask the schema to apply itself to our target (adapter pattern)- Parameters:
pool
- the connection poolvhs
- current version history servicepdm
- the data model we want to create
-
runWithAdapter
public void runWithAdapter(IConnectionProvider pool, java.util.function.Consumer<ISchemaAdapter> fn)
Run theIDatabaseAdapter
command fn using a DerbyAdapter for the given connection pool- Parameters:
pool
- provides database connectionsfn
- the command to execute
-
runWithAdapter
public void runWithAdapter(java.util.function.Consumer<ISchemaAdapter> fn)
Run the function with an adapter configured for this database- Parameters:
fn
-
-
wrap
public static ISchemaAdapter wrap(IDatabaseAdapter databaseAdapter)
Utility method to wrap the database adapter in a plain schema adapter which acts as a pass-through to the underlying databaseAdapter- Parameters:
databaseAdapter
-- Returns:
-
dumpLockInfo
public void dumpLockInfo()
Diagnostic utility to display all the current locks in the Derby database
-
dumpLockInfo
public static void dumpLockInfo(java.sql.Connection c)
Dump locks using the given connection- Parameters:
c
-
-
close
public void close() throws java.lang.Exception
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Throws:
java.lang.Exception
-
shutdown
public static void shutdown(java.lang.String databaseName)
-
-