Mercurial > hg > mpdl-group
view software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/donatus/xmlrpc/DonatusBerkeleyDbEnv.java @ 0:408254cf2f1d
Erstellung
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Wed, 24 Nov 2010 17:24:23 +0100 |
parents | |
children |
line wrap: on
line source
package de.mpg.mpiwg.berlin.mpdl.donatus.xmlrpc; 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; public class DonatusBerkeleyDbEnv { private File envPath; private Environment env; private Database lemmaDb; private Database variantDb; public DonatusBerkeleyDbEnv() { } public void setup(boolean readOnly) throws DatabaseException { EnvironmentConfig envConfig = new EnvironmentConfig(); DatabaseConfig dbConfig = new DatabaseConfig(); // If the environment is read-only, then make the databases read-only too. envConfig.setReadOnly(readOnly); dbConfig.setReadOnly(readOnly); // If the environment is opened for write, then we want to be able to create the environment and databases if they do not exist. envConfig.setAllowCreate(!readOnly); dbConfig.setAllowCreate(!readOnly); // Allow transactions if we are writing to the database envConfig.setTransactional(!readOnly); dbConfig.setTransactional(!readOnly); // Open the environment envPath = new File(DonatusConstants.BERKELEY_DB_DIR); env = new Environment(envPath, envConfig); // open databases (and create them if not existent) lemmaDb = env.openDatabase(null, "LemmaDB", dbConfig); variantDb = env.openDatabase(null, "VariantDB", dbConfig); } public void removeDatabases() { try { lemmaDb.close(); variantDb.close(); env.removeDatabase(null, "LemmaDB"); env.removeDatabase(null, "VariantDB"); } catch (DatabaseException e) { e.printStackTrace(); // TODO } } public Environment getEnv() { return env; } public Database getLemmaDB() { return lemmaDb; } public Database getVariantDB() { return variantDb; } public void close() { if (env != null) { try { lemmaDb.close(); variantDb.close(); env.close(); } catch(DatabaseException e) { e.printStackTrace(); // TODO } } } }