comparison 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
comparison
equal deleted inserted replaced
5:94305c504178 6:2396a569e446
1 package de.mpg.mpiwg.berlin.mpdl.externalObjects.db;
2
3 import java.io.File;
4
5 import com.sleepycat.je.Database;
6 import com.sleepycat.je.DatabaseConfig;
7 import com.sleepycat.je.DatabaseException;
8 import com.sleepycat.je.Environment;
9 import com.sleepycat.je.EnvironmentConfig;
10
11 import de.mpg.mpiwg.berlin.mpdl.exception.ApplicationException;
12
13 public class DbEnvExternalObjects {
14 private String dataDir;
15 private File envPath;
16 private Environment env;
17 private EnvironmentConfig envConfig;
18 private DatabaseConfig dbConfig;
19 private Database elementDB;
20 private Database objectDB;
21
22 public DbEnvExternalObjects() {
23 }
24
25 public void setDataDir(String dataDir) {
26 this.dataDir = dataDir;
27 }
28
29 public void init() throws ApplicationException {
30 try {
31 envConfig = new EnvironmentConfig();
32 dbConfig = new DatabaseConfig();
33 envConfig.setReadOnly(false);
34 dbConfig.setReadOnly(false);
35 envConfig.setAllowCreate(true);
36 dbConfig.setAllowCreate(true);
37 envConfig.setTransactional(true);
38 dbConfig.setTransactional(true);
39 // allow duplicates for keys
40 dbConfig.setSortedDuplicates(true);
41 envPath = new File(dataDir);
42 env = new Environment(envPath, envConfig);
43 } catch (DatabaseException e) {
44 throw new ApplicationException(e);
45 }
46 }
47
48 public void openDatabases() throws ApplicationException {
49 try {
50 // open databases (and create them if they do not exist)
51 elementDB = env.openDatabase(null, "ElementDB", dbConfig);
52 objectDB = env.openDatabase(null, "ObjectDB", dbConfig);
53 } catch (DatabaseException e) {
54 throw new ApplicationException(e);
55 }
56 }
57
58 public void removeDatabases() throws ApplicationException {
59 try {
60 if (objectDB != null)
61 objectDB.close();
62 if (elementDB != null)
63 elementDB.close();
64 env.removeDatabase(null, "ElementDB");
65 env.removeDatabase(null, "ObjectDB");
66 objectDB = null;
67 elementDB = null;
68 /*
69 env.truncateDatabase(null, "ElementDB", bla);
70 env.truncateDatabase(null, "ObjectDB", bla);
71 */
72 } catch (DatabaseException e) {
73 throw new ApplicationException(e);
74 }
75 }
76
77 public Environment getEnv() {
78 return env;
79 }
80
81 public Database getElementDB() {
82 return elementDB;
83 }
84
85 public Database getObjectDB() {
86 return objectDB;
87 }
88
89 public void close() throws ApplicationException {
90 if (env != null) {
91 try {
92 if (objectDB != null)
93 objectDB.close();
94 if (elementDB != null)
95 elementDB.close();
96 if (env != null)
97 env.close();
98 } catch (DatabaseException e) {
99 throw new ApplicationException(e);
100 }
101 }
102 }
103 }
104