Changeset 7848 for mauRepo/newmoon
- Timestamp:
- 27/01/11 08:49:51 (10 years ago)
- Location:
- mauRepo/newmoon/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
mauRepo/newmoon/src/main/java/ndg/services/newmoon/DBManager.java
r7830 r7848 10 10 import org.apache.commons.lang.StringUtils; 11 11 import org.exist.xmldb.EXistResource; 12 import org.exist.xmldb.UserManagementService;13 12 import org.exist.xmldb.XQueryService; 14 13 import org.slf4j.Logger; … … 23 22 import org.xmldb.api.modules.XMLResource; 24 23 24 25 25 public class DBManager { 26 26 27 private static boolean running = false; 27 private static String user; 28 private static String psw; 29 private static String rootCollectionPath; 30 private static boolean initialized = false; 28 31 29 32 private final static DBManager instance = new DBManager(); 33 34 private final static void initialize() { 35 String driver = "org.exist.xmldb.DatabaseImpl"; 36 // initialize database driver 37 try { 38 Class<?> cl = Class.forName(driver); 39 Database database = (Database) cl.newInstance(); 40 DatabaseManager.registerDatabase(database); 41 } catch (ClassNotFoundException e) { 42 LOG.error("Error", e); 43 } catch (InstantiationException e) { 44 LOG.error("Error", e); 45 } catch (IllegalAccessException e) { 46 LOG.error("Error", e); 47 } catch (XMLDBException e) { 48 LOG.error("Error", e); 49 } 50 initialized = true; 51 } 30 52 31 private static Collection rootCollection = null;32 33 53 /** 34 54 * User name for database access. 35 55 */ 36 static final String XMLDB_USER = "admin";56 // static final String XMLDB_USER = "admin"; 37 57 38 58 /** 39 59 * Password for the XMLDB_USER account. 40 60 */ 41 static final String XMLDB_PASSWORD = "newmoon";61 // static final String XMLDB_PASSWORD = "newmoon"; 42 62 43 63 /** … … 102 122 } 103 123 104 public static boolean isRunning() { 105 return running; 106 } 107 124 public static void setDBAccess(String newUser, String newPwd, String newRootCollectionPath) { 125 if (StringUtils.isEmpty(newUser) || StringUtils.isEmpty(newPwd) || StringUtils.isEmpty(newRootCollectionPath)) 126 return; 127 user = newUser; 128 psw = newPwd; 129 rootCollectionPath = newRootCollectionPath; 130 isInitialized(); 131 } 132 133 private static boolean isInitialized() { 134 if (!initialized) { 135 initialize(); 136 } 137 return initialized; 138 } 139 140 /* 108 141 public static String getROOT_COLLECTION_PATH() { 109 142 return "xmldb:exist://localhost:8080/exist/xmlrpc/db"; 110 143 } 111 144 */ 145 112 146 /** 113 147 * Creates a collection as an immediate child of the root collection. … … 149 183 150 184 public Collection getCollection(String parentCollection, String collectionName) throws XMLDBException { 151 Collection parent = getCollection(parentCollection , XMLDB_USER, XMLDB_PASSWORD);185 Collection parent = getCollection(parentCollection); 152 186 String[] children = collectionName.split("/"); 153 187 if (ArrayUtils.isEmpty(children)) { … … 161 195 } 162 196 163 private Collection getCollection(String collectionName, String user, String pwd) throws XMLDBException { 164 collectionName = StringUtils.isBlank(collectionName) ? getROOT_COLLECTION_PATH() : collectionName; 165 return DatabaseManager.getCollection(collectionName, user, pwd); 197 private Collection getCollection(String collectionName) throws XMLDBException { 198 if(!isInitialized()) { 199 throw new XMLDBException(); 200 } 201 collectionName = StringUtils.isBlank(collectionName) ? DBManager.rootCollectionPath : collectionName; 202 return DatabaseManager.getCollection(collectionName, DBManager.user, DBManager.psw); 166 203 } 167 204 … … 203 240 204 241 private Collection getRootCollection() throws XMLDBException { 205 if (rootCollection == null) { 206 rootCollection = getCollection(getROOT_COLLECTION_PATH(), XMLDB_USER, XMLDB_PASSWORD); 207 } 208 return rootCollection; 209 } 210 211 private void initEnv() throws NewmoonException { 212 System.setProperty("exist.initdb", "true"); 213 String existHome = System.getProperty("exist.home"); 214 File existHomeDir = new File(existHome); 215 if (!existHomeDir.exists() || (existHomeDir.exists() && !existHomeDir.isDirectory())) { 216 throw new NewmoonException("the System property exist.home does not refer to a directory"); 217 } 218 File logs = new File(existHome + "/logs"); 219 logs.mkdir(); 220 File data = new File(existHome + "/data"); 221 data.mkdir(); 222 } 223 242 return getCollection(rootCollectionPath); 243 } 244 224 245 /** 225 246 * Create and initialise an instance of the database. 226 * @throws XMLDBException 247 * 248 * @throws XMLDBException 227 249 * 228 250 * @throws Exception … … 232 254 Collection root = getRootCollection(); 233 255 234 // Log in to the database using default admin account and create a 235 // new user 236 UserManagementService srvUserMgmt = (UserManagementService) root.getService(USER_MGMT_SERVICE_NAME, 237 USER_MGMT_SERVICE_VERSION); 238 CollectionManagementService mgtService = (CollectionManagementService)root.getService(COLLECTION_MGMT_SERVICE_NAME, COLLECTION_MGMT_SERVICE_VERSION); 239 /* 240 User user = srvUserMgmt.getUser(XMLDB_USER); 241 if (user != null) 242 srvUserMgmt.removeUser(new User(XMLDB_USER)); 243 user = new User(XMLDB_USER, XMLDB_PASSWORD, "dba"); 244 user.setHome(XmldbURI.create("/db")); 245 try { 246 srvUserMgmt.addUser(user); 247 } catch (XMLDBException e) { 248 249 } 250 */ 256 CollectionManagementService mgtService = (CollectionManagementService) root.getService( 257 COLLECTION_MGMT_SERVICE_NAME, COLLECTION_MGMT_SERVICE_VERSION); 258 251 259 for (NewmoonManager.MODULE_NAME def_coll : NewmoonManager.MODULE_NAME.values()) { 252 260 mgtService.removeCollection(def_coll.getCollectionName()); … … 258 266 LOG.info("Successfully created default collections."); 259 267 } 260 261 public void startExist() throws XMLDBException, NewmoonException { 262 //initEnv(); 263 Database database; 264 try { 265 Class<?> cl = Class.forName("org.exist.xmldb.DatabaseImpl"); 266 database = (Database) cl.newInstance(); 267 //database.setProperty("create-database", "true"); 268 DatabaseManager.registerDatabase(database); 269 running = true; 270 // initialize the deafult DB 271 initialiseDBase(); 272 } catch (ClassNotFoundException e) { 273 // TODO Auto-generated catch block 274 e.printStackTrace(); 275 } catch (InstantiationException e) { 276 // TODO Auto-generated catch block 277 e.printStackTrace(); 278 } catch (IllegalAccessException e) { 279 // TODO Auto-generated catch block 280 e.printStackTrace(); 281 } 282 } 268 269 /* 270 * public void startExist() throws XMLDBException, NewmoonException { 271 * //initEnv(); Database database; try { Class<?> cl = 272 * Class.forName("org.exist.xmldb.DatabaseImpl"); database = (Database) 273 * cl.newInstance(); //database.setProperty("create-database", "true"); 274 * DatabaseManager.registerDatabase(database); running = true; // initialize 275 * the deafult DB initialiseDBase(); } catch (ClassNotFoundException e) { // 276 * TODO Auto-generated catch block e.printStackTrace(); } catch 277 * (InstantiationException e) { // TODO Auto-generated catch block 278 * e.printStackTrace(); } catch (IllegalAccessException e) { // TODO 279 * Auto-generated catch block e.printStackTrace(); } } 280 */ 283 281 284 282 public void stopExist() throws XMLDBException { 285 283 // shut down the database 286 284 /* 287 DatabaseInstanceManager manager = (DatabaseInstanceManager) rootCollection.getService(288 289 manager.shutdown();290 */285 * DatabaseInstanceManager manager = (DatabaseInstanceManager) 286 * rootCollection.getService( "DatabaseInstanceManager", "1.0"); 287 * manager.shutdown(); 288 */ 291 289 } 292 290 -
mauRepo/newmoon/src/main/java/ndg/services/newmoon/NewmoonManager.java
r7830 r7848 201 201 + NM_PARAM.OUTPUT_DIR.getParamName()); 202 202 // -------------------- 203 variables.put(NM_PARAM.ROOT_COLLECTION_URI.getParamName(), DBManager.getROOT_COLLECTION_PATH()); 204 String user = DBManager.XMLDB_USER; 205 variables.put(NM_PARAM.XMLDB_USER.getParamName(), user); 206 String pass = DBManager.XMLDB_PASSWORD; 207 variables.put(NM_PARAM.XMLDB_PASSWORD.getParamName(), pass); 208 209 String rootCollectionPath = DBManager.getROOT_COLLECTION_PATH(); 203 //variables.put(NM_PARAM.ROOT_COLLECTION_URI.getParamName(), DBManager.getROOT_COLLECTION_PATH()); 204 //String user = DBManager.XMLDB_USER; 205 //variables.put(NM_PARAM.XMLDB_USER.getParamName(), user); 206 //String pass = DBManager.XMLDB_PASSWORD; 207 //variables.put(NM_PARAM.XMLDB_PASSWORD.getParamName(), pass); 208 209 //String rootCollectionPath = DBManager.getROOT_COLLECTION_PATH(); 210 //rootCollectionPath = rootCollectionPath.replaceAll("^(.*/exist/xmlrpc)(/[^/]*)$", "$2"); 211 //variables.put(NM_PARAM.ROOT_COLLECTION_PATH.getParamName(), rootCollectionPath); 212 //variables.put(NM_PARAM.ROOT_COLLECTION_URI.getParamName(), variables.get(NM_PARAM.ROOT_COLLECTION_PATH.getParamName())); 213 String rootCollectionPath = (String)variables.get(NM_PARAM.ROOT_COLLECTION_URI.getParamName()); 210 214 rootCollectionPath = rootCollectionPath.replaceAll("^(.*/exist/xmlrpc)(/[^/]*)$", "$2"); 211 215 variables.put(NM_PARAM.ROOT_COLLECTION_PATH.getParamName(), rootCollectionPath); … … 341 345 buffy.append((String) result.getContent()).append(LS); 342 346 } catch (Exception e) { 343 LOG.info("possible error", e); 347 if(LOG.isDebugEnabled()) { 348 LOG.debug("possible error", e); 349 } 344 350 } 345 351 } -
mauRepo/newmoon/src/main/java/ndg/services/newmoon/XMIEncoder.java
r7830 r7848 29 29 */ 30 30 private static final Logger LOG = LoggerFactory.getLogger(XMIEncoder.class); 31 32 private void checkExistStatus() throws XMLDBException, NewmoonException {33 if (!DBManager.isRunning()) {34 DBManager.getInstance().startExist();35 }36 }37 31 38 32 public String getOutputdirPath() { … … 43 37 throws NewmoonException { 44 38 try { 45 checkExistStatus();46 39 executeEncode(params); 47 40 } catch (XMLDBException e) { … … 56 49 NewmoonManager nm = new NewmoonManager(); 57 50 nm.setVariables(params); 51 DBManager.setDBAccess(nm.getVariables(NM_PARAM.XMLDB_USER), 52 nm.getVariables(NM_PARAM.XMLDB_PASSWORD), 53 nm.getVariables(NM_PARAM.ROOT_COLLECTION_URI)); 58 54 59 55 File xmiDoc = new File(nm.getVariables(NM_PARAM.WORKING_DIRECTORY), nm.getVariables(NM_PARAM.XMI_DOC)); -
mauRepo/newmoon/src/test/java/ndg/services/newmoon/XMIEncoderTest.java
r7830 r7848 3 3 import java.net.URL; 4 4 import java.util.HashMap; 5 import java.util.List;6 5 import java.util.Map; 7 6 … … 47 46 params.put(NM_PARAM.RESOURCE_NAME, RESOURCE_ID); 48 47 params.put(NM_PARAM.XMI_DOC, sample); 48 params.put(NM_PARAM.XMLDB_USER, "admin"); 49 params.put(NM_PARAM.XMLDB_PASSWORD, "newmoon"); 50 params.put(NM_PARAM.ROOT_COLLECTION_URI, "xmldb:exist://localhost:8080/exist/xmlrpc/db"); 49 51 encoder.doEncode(params); 50 52 System.out.println(encoder.getOutputdirPath());
Note: See TracChangeset
for help on using the changeset viewer.