From a8a23cc63eadbc6ad1f44f49da958b2e48014465 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 25 Mar 2012 14:23:24 +0200 Subject: [PATCH] load server configuration from config directory if a config file exists --- .../scm/orientdb/ConnectionProvider.java | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/scm-dao-orientdb/src/main/java/sonia/scm/orientdb/ConnectionProvider.java b/scm-dao-orientdb/src/main/java/sonia/scm/orientdb/ConnectionProvider.java index b5bc7c2d87..ca687bd799 100644 --- a/scm-dao-orientdb/src/main/java/sonia/scm/orientdb/ConnectionProvider.java +++ b/scm-dao-orientdb/src/main/java/sonia/scm/orientdb/ConnectionProvider.java @@ -33,6 +33,7 @@ package sonia.scm.orientdb; //~--- non-JDK imports -------------------------------------------------------- +import com.google.common.io.Files; import com.google.common.io.Resources; import com.google.inject.Provider; import com.google.inject.Singleton; @@ -84,6 +85,10 @@ public class ConnectionProvider public static final String EMBEDDED_CONFIGURATION = "sonia/scm/orientdb/server-configuration.xml"; + /** Field description */ + public static final String CONFIG_PATH_SERVER = + "config".concat(File.separator).concat("orientdb-server.xml"); + /** Field description */ public static final String CONFIG_PATH_CLIENT = "config".concat(File.separator).concat("orientdb-client.xml"); @@ -118,10 +123,10 @@ public class ConnectionProvider { try { + File baseDirectory = SCMContext.getContext().getBaseDirectory(); // create connection configuration for embedded server - File directory = new File(SCMContext.getContext().getBaseDirectory(), - DEFAULT_DB_DIRECTORY); + File directory = new File(baseDirectory, DEFAULT_DB_DIRECTORY); if (logger.isInfoEnabled()) { @@ -131,7 +136,23 @@ public class ConnectionProvider server = OServerMain.create(); - URL configUrl = Resources.getResource(EMBEDDED_CONFIGURATION); + URL configUrl = null; + File serverConfiguration = new File(baseDirectory, CONFIG_PATH_SERVER); + + if (serverConfiguration.exists()) + { + configUrl = serverConfiguration.toURI().toURL(); + } + else + { + configUrl = Resources.getResource(EMBEDDED_CONFIGURATION); + } + + if (logger.isInfoEnabled()) + { + logger.info("load orientdb server configuration from {}", configUrl); + } + String config = Resources.toString(configUrl, Charset.defaultCharset()); server.startup(config);