]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-253 uses jboss system property to read config file. commented in NuxeoConnecto...
authorSanjay Dalal <sanjay.dalal@berkeley.edu>
Wed, 24 Jun 2009 18:46:04 +0000 (18:46 +0000)
committerSanjay Dalal <sanjay.dalal@berkeley.edu>
Wed, 24 Jun 2009 18:46:04 +0000 (18:46 +0000)
services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java
services/common/src/main/java/org/collectionspace/services/nuxeo/NuxeoConnector.java

index c96971c5e128fd47c5c6461df77b8a0263476ea8..c55a2f71ec9d7e7680402bfc1a4adf5f510954ed 100644 (file)
@@ -22,11 +22,14 @@ import org.slf4j.LoggerFactory;
 public class ServiceMain {
 
     private static volatile ServiceMain instance = null;
-    final private static String CONFIG_FILE_NAME = "./cs/service-config.xml";
+    final public static String CSPACE_DIR_NAME = "cspace";
+    final public static String CONFIG_DIR_NAME = "config" + File.separator + "services";
+    final private static String CONFIG_FILE_NAME = "service-config.xml";
     final Logger logger = LoggerFactory.getLogger(ServiceMain.class);
     private ServiceConfig serviceConfig;
     private Hashtable<String, String> serviceWorkspaces = new Hashtable<String, String>();
     private NuxeoConnector nuxeoConnector;
+    private String serverRootDir = null;
 
     private ServiceMain() {
     }
@@ -59,6 +62,7 @@ public class ServiceMain {
     }
 
     private void initialize() throws Exception {
+        setServerRootDir();
         serviceConfig = readConfig();
         nuxeoConnector = NuxeoConnector.getInstance();
         nuxeoConnector.initialize(serviceConfig.getNuxeoClientConfig());
@@ -84,9 +88,13 @@ public class ServiceMain {
     private ServiceConfig readConfig() throws Exception {
         JAXBContext jc = JAXBContext.newInstance(ServiceConfig.class);
         Unmarshaller um = jc.createUnmarshaller();
-        File configFile = new File(CONFIG_FILE_NAME);
+        String configFileName = getServerRootDir() +
+                File.separator + CSPACE_DIR_NAME +
+                File.separator + CONFIG_DIR_NAME +
+                File.separator + CONFIG_FILE_NAME;
+        File configFile = new File(configFileName);
         if(!configFile.exists()){
-            String msg = "Could not find configuration file " + CONFIG_FILE_NAME;
+            String msg = "Could not find configuration file " + configFileName;
             logger.error(msg);
             throw new RuntimeException(msg);
         }
@@ -134,4 +142,18 @@ public class ServiceMain {
     public NuxeoConnector getNuxeoConnector() {
         return nuxeoConnector;
     }
+
+    private void setServerRootDir() {
+        serverRootDir = System.getProperty("jboss.server.home.dir");
+        if(serverRootDir == null){
+            serverRootDir = "."; //assume server is started from server root, e.g. server/cspace
+        }
+    }
+
+    /**
+     * @return the serverRootDir
+     */
+    public String getServerRootDir() {
+        return serverRootDir;
+    }
 }
index 87a55d1c000f1d14e0f90a146518299331106faa..ff61a8c729ef81be3450ea9bc24ec55ae144b8c3 100644 (file)
@@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory;
  */
 public class NuxeoConnector {
 
+    public final static String NUXEO_CLIENT_DIR = "nuxeo-client";
     private Logger logger = LoggerFactory.getLogger(NuxeoConnector.class);
     private static final NuxeoConnector self = new NuxeoConnector();
     private NuxeoApp app;
@@ -83,11 +84,14 @@ public class NuxeoConnector {
 
     private void loadBundles() throws Exception {
         String bundles = "nuxeo-client/lib/nuxeo-runtime-*:nuxeo-client/lib/nuxeo-*";
+//        String serverRootDir = ServiceMain.getInstance().getServerRootDir();
+        //can't call ServiceMain here because loadBundles is called within
+        //the iniitialization context of ServiceMain, recrusion problem
         String serverRootDir = System.getProperty("jboss.server.home.dir");
         if(serverRootDir == null){
             serverRootDir = "."; //assume server is started from server root, e.g. server/cspace
         }
-        File clientLibDir = new File(serverRootDir + File.separator + "nuxeo-client");
+        File clientLibDir = new File(serverRootDir);
         if(!clientLibDir.exists()){
             String msg = "Library bundles requried to deploy Nuxeo client not found: " +
                     " directory named nuxeo-client with bundles does not exist in " + serverRootDir;