Class DerbyMaster

  • All Implemented Interfaces:
    AutoCloseable

    public class DerbyMaster
    extends Object
    implements AutoCloseable
    Set up an instance of Derby for use with unit tests
    • Constructor Detail

      • DerbyMaster

        public DerbyMaster​(String database)
        Public constructor
        Parameters:
        database -
        Throws:
        IllegalStateException - if the Derby driver class is not found
    • Method Detail

      • createSchemaIfNeeded

        public void createSchemaIfNeeded​(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​(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 Connection getConnection()
                                 throws SQLException
        Get a connection to the configured Derby database, creating the database if necessary.
        Returns:
        Throws:
        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 pool
        pdm - 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 pool
        vhs - current version history service
        pdm - the data model we want to create
      • runWithAdapter

        public void runWithAdapter​(Consumer<IDatabaseAdapter> fn)
        Run the function with an adapter configured for this database
        Parameters:
        fn -
      • dumpLockInfo

        public void dumpLockInfo()
        Diagnostic utility to display all the current locks in the Derby database
      • dumpLockInfo

        public static void dumpLockInfo​(Connection c)
        Dump locks using the given connection
        Parameters:
        c -
      • shutdown

        public static void shutdown​(String databaseName)