svn commit: r1059006 - /lenya/branches/BRANCH_2_1_X/src/impl/java/org/apache/lenya/cms/cluster/impl/ClusterManagerImpl.java

[email protected] Fri, 14 Jan 2011 13:44:41 -0000
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: froethenbacher
Date: Fri Jan 14 13:44:40 2011
New Revision: 1059006

URL: http://svn.apache.org/viewvc?rev=1059006&view=rev
Log:
Support system property -Dlenya.cluster.configFile to specify cluster configuration file.
E.g. $ export JAVA_OPTS=-Dlenya.cluster.configFile=/tmp/cluster.xconf
If system property is missing, the default cluster configuration file will be used.

Modified:
    lenya/branches/BRANCH_2_1_X/src/impl/java/org/apache/lenya/cms/cluster/impl/ClusterManagerImpl.java

Modified: lenya/branches/BRANCH_2_1_X/src/impl/java/org/apache/lenya/cms/cluster/impl/ClusterManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/impl/java/org/apache/lenya/cms/cluster/impl/ClusterManagerImpl.java?rev=1059006&r1=1059005&r2=1059006&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/impl/java/org/apache/lenya/cms/cluster/impl/ClusterManagerImpl.java (original)
+++ lenya/branches/BRANCH_2_1_X/src/impl/java/org/apache/lenya/cms/cluster/impl/ClusterManagerImpl.java Fri Jan 14 13:44:40 2011
@@ -40,6 +40,8 @@ public class ClusterManagerImpl extends 
 implements ClusterManager, Initializable, Serviceable
 {
 
+    private final static String SYS_PROP_CONFIG_URI =
+        "lenya.cluster.configFile";
     private final static String CONFIG_URI =
         "context:/lenya/config/cluster/cluster.xconf";
 
@@ -74,6 +76,20 @@ implements ClusterManager, Initializable
                 isRsyncSynchronizationEnabled;
     }
 
+    /**
+     * Get configuration URI.
+     * @return Configuration URI.
+     */
+    private String getConfigurationUri() {
+        String configUri = System.getProperty(SYS_PROP_CONFIG_URI);
+        if (configUri != null) {
+            configUri = "file://" + configUri;
+        } else {
+            configUri = CONFIG_URI;
+        }
+        return configUri;
+    }
+
     @Override
     public String getRsyncCommand() {
         return rsyncCommand;
@@ -127,7 +143,16 @@ implements ClusterManager, Initializable
     throws ClusterConfigurationException
     {
         try {
-            Source configSource = resolver.resolveURI(CONFIG_URI);
+            String configUri = getConfigurationUri();
+            Source configSource = resolver.resolveURI(configUri);
+            if (!configSource.exists()) {
+                throw new ClusterConfigurationException("Cluster " +
+                        "configuration file not found [" + configUri + "]");
+            }
+            if (getLogger().isInfoEnabled()) {
+                getLogger().info("Using cluster configuration file [" +
+                        configUri + "]");
+            }
             DefaultConfigurationBuilder builder =
                 new DefaultConfigurationBuilder();
             Configuration config =