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() {
}
}
private void initialize() throws Exception {
+ setServerRootDir();
serviceConfig = readConfig();
nuxeoConnector = NuxeoConnector.getInstance();
nuxeoConnector.initialize(serviceConfig.getNuxeoClientConfig());
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);
}
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;
+ }
}
*/
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;
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;