Mercurial > hg > mpdl-group
view software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/externalObjects/db/DbEnvExternalObjects.java @ 6:2396a569e446
new functions: externalObjects, normalizer, Unicode2Betacode
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 08 Feb 2011 14:54:09 +0100 |
parents | |
children |
line wrap: on
line source
package de.mpg.mpiwg.berlin.mpdl.externalObjects.db; import java.io.File; import com.sleepycat.je.Database; import com.sleepycat.je.DatabaseConfig; import com.sleepycat.je.DatabaseException; import com.sleepycat.je.Environment; import com.sleepycat.je.EnvironmentConfig; import de.mpg.mpiwg.berlin.mpdl.exception.ApplicationException; public class DbEnvExternalObjects { private String dataDir; private File envPath; private Environment env; private EnvironmentConfig envConfig; private DatabaseConfig dbConfig; private Database elementDB; private Database objectDB; public DbEnvExternalObjects() { } public void setDataDir(String dataDir) { this.dataDir = dataDir; } public void init() throws ApplicationException { try { envConfig = new EnvironmentConfig(); dbConfig = new DatabaseConfig(); envConfig.setReadOnly(false); dbConfig.setReadOnly(false); envConfig.setAllowCreate(true); dbConfig.setAllowCreate(true); envConfig.setTransactional(true); dbConfig.setTransactional(true); // allow duplicates for keys dbConfig.setSortedDuplicates(true); envPath = new File(dataDir); env = new Environment(envPath, envConfig); } catch (DatabaseException e) { throw new ApplicationException(e); } } public void openDatabases() throws ApplicationException { try { // open databases (and create them if they do not exist) elementDB = env.openDatabase(null, "ElementDB", dbConfig); objectDB = env.openDatabase(null, "ObjectDB", dbConfig); } catch (DatabaseException e) { throw new ApplicationException(e); } } public void removeDatabases() throws ApplicationException { try { if (objectDB != null) objectDB.close(); if (elementDB != null) elementDB.close(); env.removeDatabase(null, "ElementDB"); env.removeDatabase(null, "ObjectDB"); objectDB = null; elementDB = null; /* env.truncateDatabase(null, "ElementDB", bla); env.truncateDatabase(null, "ObjectDB", bla); */ } catch (DatabaseException e) { throw new ApplicationException(e); } } public Environment getEnv() { return env; } public Database getElementDB() { return elementDB; } public Database getObjectDB() { return objectDB; } public void close() throws ApplicationException { if (env != null) { try { if (objectDB != null) objectDB.close(); if (elementDB != null) elementDB.close(); if (env != null) env.close(); } catch (DatabaseException e) { throw new ApplicationException(e); } } } }