From: Sanjay Dalal Date: Wed, 24 Jun 2009 18:46:04 +0000 (+0000) Subject: CSPACE-253 uses jboss system property to read config file. commented in NuxeoConnecto... X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=6235c271a39c52cbdd6384d96be26430a192c462;p=tmp%2Fjakarta-migration.git CSPACE-253 uses jboss system property to read config file. commented in NuxeoConnector that ServiceMain.getInstance().getServerRootDir() can't be used during loadBundles due to recursion --- diff --git a/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java b/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java index c96971c5e..c55a2f71e 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java +++ b/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java @@ -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 serviceWorkspaces = new Hashtable(); 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; + } } diff --git a/services/common/src/main/java/org/collectionspace/services/nuxeo/NuxeoConnector.java b/services/common/src/main/java/org/collectionspace/services/nuxeo/NuxeoConnector.java index 87a55d1c0..ff61a8c72 100644 --- a/services/common/src/main/java/org/collectionspace/services/nuxeo/NuxeoConnector.java +++ b/services/common/src/main/java/org/collectionspace/services/nuxeo/NuxeoConnector.java @@ -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;