/** * Init the Derby Datasource in JNDI. * * @param context the naming context * @param name the dabase name in the context * @param datasourceName the datasource Name * @param user * @param password * @return <code>true</code> if initialized, <code>false</code> otherwise */ public static boolean initDerbyDatasource( final InitialContext context, final String name, final String datasourceName, final String user, final String password) { boolean init = true; try { context.createSubcontext("java:"); context.createSubcontext("java:/comp"); context.createSubcontext("java:/comp/env"); context.createSubcontext("java:/comp/env/jdbc"); // Construct DataSource final EmbeddedConnectionPoolDataSource40 datasource = new EmbeddedConnectionPoolDataSource40(); datasource.setDatabaseName(datasourceName); datasource.setUser("user"); datasource.setPassword("password"); LOGGER.info("Datasource created"); validateDerbyConnection(datasource); context.bind("java:/comp/env/jdbc/" + name, datasource); } catch (NamingException e) { LOGGER.error("Naming Exception", e); init = false; } return init; }
/** * Get a connection pool data source for use by Java DB storage engines * * @param dbPath The path where the db will be located * @param memory whether to actually use a memory database * @return the {@link ConnectionPoolDataSource} */ public static ConnectionPoolDataSource getDataSource(String dbPath, boolean memory) { EmbeddedConnectionPoolDataSource40 ds = new EmbeddedConnectionPoolDataSource40(); if (memory) { ds.setDatabaseName("memory:SyncDB"); } else { String path = "SyncDB"; if (dbPath != null) { File f = new File(dbPath, "SyncDB"); path = f.getAbsolutePath(); } ds.setDatabaseName(path); } ds.setCreateDatabase("create"); ds.setUser("floodlight"); ds.setPassword("floodlight"); return ds; }