[exo-jcr-commits] exo-jcr SVN: r4177 - in jcr/trunk: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/infinispan and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Mar 25 12:21:35 EDT 2011


Author: nfilotto
Date: 2011-03-25 12:21:35 -0400 (Fri, 25 Mar 2011)
New Revision: 4177

Modified:
   jcr/trunk/exo.jcr.component.core/pom.xml
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/infinispan/ISPNCacheFactory.java
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
   jcr/trunk/packaging/module/src/main/javascript/jcr.packaging.module.js
Log:
EXOJCR-1268: Allow to rely on the ConfigurationManager to get the JGroups configuration when we use ISPN as underlying cache

Modified: jcr/trunk/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/pom.xml	2011-03-25 15:13:50 UTC (rev 4176)
+++ jcr/trunk/exo.jcr.component.core/pom.xml	2011-03-25 16:21:35 UTC (rev 4177)
@@ -160,6 +160,10 @@
         <artifactId>commons-beanutils</artifactId>
       </dependency>
       <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+      </dependency>
+      <dependency>
         <groupId>org.jgroups</groupId>
         <artifactId>jgroups</artifactId>
       </dependency>

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/infinispan/ISPNCacheFactory.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/infinispan/ISPNCacheFactory.java	2011-03-25 15:13:50 UTC (rev 4176)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/infinispan/ISPNCacheFactory.java	2011-03-25 16:21:35 UTC (rev 4177)
@@ -18,6 +18,7 @@
  */
 package org.exoplatform.services.jcr.infinispan;
 
+import org.apache.commons.io.IOUtils;
 import org.exoplatform.commons.utils.SecurityHelper;
 import org.exoplatform.container.ExoContainer;
 import org.exoplatform.container.ExoContainerContext;
@@ -35,11 +36,13 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URL;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.security.PrivilegedExceptionAction;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 
 /**
  * Factory that creates and starts pre-configured instances of Infinispan.
@@ -56,6 +59,7 @@
 
    public static final String INFINISPAN_CONFIG = "infinispan-configuration";
 
+   private final ConfigurationManager configurationManager;
    private final TemplateConfigurationHelper configurationHelper;
 
    private static final Log log = ExoLogger.getLogger("exo.jcr.component.core.InfinispanCacheFactory");
@@ -75,6 +79,7 @@
     */
    public ISPNCacheFactory(ConfigurationManager configurationManager)
    {
+      this.configurationManager = configurationManager;
       this.configurationHelper = new ISPNCacheHelper(configurationManager);
    }
 
@@ -119,7 +124,9 @@
          {
             public EmbeddedCacheManager run() throws IOException
             {
-               return getUniqueInstance(regionIdEscaped, new DefaultCacheManager(configStream));
+               DefaultCacheManager manager = new DefaultCacheManager(configStream, false);
+               loadJGroupsConfig(manager);
+               return getUniqueInstance(regionIdEscaped, manager);
             }
          });
 
@@ -142,6 +149,48 @@
    }
 
    /**
+    * This method is used to load the file corresponding to the path set on the property 
+    * <tt>configurationFile</tt> using the configuration manager, then set the XML content
+    *  as value of the property <tt>configurationXml</tt>.
+    * @param manager the manager from which we extract the transport properties in which
+    * we will find the path of the JGroups configuration
+    * @throws IOException if the configuration file cannot be read
+    */
+   private void loadJGroupsConfig(DefaultCacheManager manager) throws IOException
+   {
+      Properties p = manager.getGlobalConfiguration().getTransportProperties();
+      if (p != null && p.containsKey("configurationFile"))
+      {
+         URL jgroupsConfigURL = null;
+         InputStream jgroupsConfigInputStream = null;
+         try
+         {
+            // Trying to get the configuration from the configuration manager
+            String configurationFile = p.getProperty("configurationFile");
+            jgroupsConfigInputStream = configurationManager.getInputStream(configurationFile);
+            jgroupsConfigURL = configurationManager.getResource(configurationFile);
+         }
+         catch (Exception e)
+         {
+            // ignore me
+         }
+         if (jgroupsConfigInputStream != null)
+         {
+            try
+            {
+               log.info("Custom JGroups configuration set: " + jgroupsConfigURL);
+               p.setProperty("configurationXml", IOUtils.toString(jgroupsConfigInputStream));
+               p.remove("configurationFile");
+            }
+            finally
+            {
+               jgroupsConfigInputStream.close();
+            }
+         }
+      }
+   }
+
+   /**
     * Try to find if a {@link EmbeddedCacheManager} of the same type (i.e. their {@link GlobalConfiguration} are equals)
     * has already been registered for the same current container.
     * If no cache manager has been registered, we register the given cache manager otherwise we

Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml	2011-03-25 15:13:50 UTC (rev 4176)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml	2011-03-25 16:21:35 UTC (rev 4177)
@@ -55,7 +55,7 @@
                   class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
                   <properties>
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                   </properties>
                </cache>
@@ -64,7 +64,7 @@
                      <property name="index-dir" value="target/temp/index/db1/ws" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-indexer.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="max-volatile-time" value="60" />
                   </properties>
@@ -73,7 +73,7 @@
                   <properties>
                      <property name="time-out" value="15m" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
                      <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -113,7 +113,7 @@
                   class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
                   <properties>
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                   </properties>
                </cache>
@@ -121,7 +121,7 @@
                   <properties>
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-indexer.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="max-volatile-time" value="60" />
                      <property name="index-dir" value="target/temp/index/db1/ws1" />
@@ -139,7 +139,7 @@
                   <properties>
                      <property name="time-out" value="15m" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
                      <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -179,7 +179,7 @@
                   class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
                   <properties>
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                   </properties>
                </cache>
@@ -187,7 +187,7 @@
                   <properties>
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-indexer.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="max-volatile-time" value="60" />
                      <property name="index-dir" value="target/temp/index/db1/ws2" />
@@ -205,7 +205,7 @@
                   <properties>
                      <property name="time-out" value="15m" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
                      <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -268,7 +268,7 @@
                   class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
                   <properties>
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                   </properties>
                </cache>
@@ -276,7 +276,7 @@
                   <properties>
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-indexer.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="max-volatile-time" value="60" />
                      <property name="index-dir" value="target/temp/index/db1/ws3" />
@@ -294,7 +294,7 @@
                   <properties>
                      <property name="time-out" value="15m" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
                      <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -351,7 +351,7 @@
                   class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
                   <properties>
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                   </properties>
                </cache>
@@ -359,7 +359,7 @@
                   <properties>
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-indexer.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="max-volatile-time" value="60" />
                      <property name="index-dir" value="target/temp/index/db2/ws" />
@@ -369,7 +369,7 @@
                   <properties>
                      <property name="time-out" value="15m" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
                      <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -415,7 +415,7 @@
                   class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
                   <properties>
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                   </properties>
                </cache>
@@ -423,7 +423,7 @@
                   <properties>
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-indexer.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="max-volatile-time" value="60" />
                      <property name="index-dir" value="target/temp/index/db2/ws1" />
@@ -433,7 +433,7 @@
                   <properties>
                      <property name="time-out" value="15m" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
                      <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -490,7 +490,7 @@
                   class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
                   <properties>
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                   </properties>
                </cache>
@@ -498,7 +498,7 @@
                   <properties>
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-indexer.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="max-volatile-time" value="60" />
                      <property name="index-dir" value="target/temp/index/db1tck/ws" />
@@ -517,7 +517,7 @@
                   <properties>
                      <property name="time-out" value="15m" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
                      <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -564,7 +564,7 @@
                   class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
                   <properties>
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                   </properties>
                </cache>
@@ -572,7 +572,7 @@
                   <properties>
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-indexer.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="max-volatile-time" value="60" />
                      <property name="index-dir" value="target/temp/index/db1tck/ws1" />
@@ -590,7 +590,7 @@
                   <properties>
                      <property name="time-out" value="15m" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
                      <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -637,7 +637,7 @@
                   class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
                   <properties>
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-config.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                   </properties>
                </cache>
@@ -645,7 +645,7 @@
                   <properties>
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-indexer.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="max-volatile-time" value="60" />
                      <property name="index-dir" value="target/temp/index/db1tck/ws2" />
@@ -666,7 +666,7 @@
                   <properties>
                      <property name="time-out" value="15m" />
                      <property name="infinispan-configuration" value="conf/standalone/cluster/test-infinispan-lock.xml" />
-                     <property name="jgroups-configuration" value="flush-udp.xml" />
+                     <property name="jgroups-configuration" value="udp-mux.xml" />
                      <property name="infinispan-cluster-name" value="JCR-cluster" />
                      <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
                      <property name="infinispan-cl-cache.jdbc.table.create" value="true" />

Modified: jcr/trunk/packaging/module/src/main/javascript/jcr.packaging.module.js
===================================================================
--- jcr/trunk/packaging/module/src/main/javascript/jcr.packaging.module.js	2011-03-25 15:13:50 UTC (rev 4176)
+++ jcr/trunk/packaging/module/src/main/javascript/jcr.packaging.module.js	2011-03-25 16:21:35 UTC (rev 4177)
@@ -22,8 +22,7 @@
     addDependency(new Project("jcr", "jcr", "jar", "1.0")).
     addDependency(new Project("concurrent", "concurrent", "jar", "1.3.4")).
     addDependency(new Project("org.jgroups", "jgroups", "jar", "2.11.1.Final")).
-//  addDependency(new Project("stax", "stax-api", "jar", "1.0")).
-//  addDependency(new Project("stax", "stax", "jar", "1.2.0")).
+    addDependency(new Project("commons-io", "commons-io", "jar", "1.3.2")).
     addDependency(new Project("org.jboss.cache","jbosscache-core","jar","3.2.6.GA")).
     addDependency(new Project("jboss.jbossts","jbossjts","jar","4.6.1.GA")).
     addDependency(new Project("jboss.jbossts","jbossts-common","jar","4.6.1.GA")).



More information about the exo-jcr-commits mailing list