Mercurial > hg > mpdl-group
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 |