Author: nfilotto
Date: 2010-09-08 03:40:32 -0400 (Wed, 08 Sep 2010)
New Revision: 3089
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
Log:
EXOJCR-942: The JChannelFactory is now a static instance to avoid defining several times
the same multiplexer stack, some info has been added into the log file and the
configuration has been modified to ensure that only 3 cache instances will be created at
the end (i.e. JCR_CACHE, LOCK_CACHE and INDEX_CACHE)
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2010-09-08
06:19:33 UTC (rev 3088)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2010-09-08
07:40:32 UTC (rev 3089)
@@ -258,7 +258,7 @@
configureJDBCCacheLoader(config.getLockManager());
cache = factory.createCache(config.getLockManager());
-
+
Fqn<String> rootFqn = Fqn.fromElements(config.getUniqueName());
cache = ExoJBossCacheFactory.getUniqueInstance(CacheType.LOCK_CACHE, rootFqn,
cache);
cache.create();
@@ -266,7 +266,7 @@
{
// Add the cache loader needed to prevent TimeoutException
addCacheLoader();
- cache.start();
+ PrivilegedCacheHelper.start(cache);
}
createStructuredNode(lockRoot);
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java 2010-09-08
06:19:33 UTC (rev 3088)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java 2010-09-08
07:40:32 UTC (rev 3089)
@@ -75,6 +75,7 @@
{
indexers.put(Fqn.fromElements(searchManager.getWsId()), new Indexer(searchManager,
parentSearchManager, handler,
parentHandler));
+ if (log.isDebugEnabled()) log.debug("Register " + searchManager.getWsId()
+ " " + this + " in " + indexers);
}
/**
@@ -93,8 +94,16 @@
try
{
Indexer indexer = indexers.get(name.getParent());
- indexer.updateIndex(wrapper.getAddedNodes(), wrapper.getRemovedNodes(),
wrapper.getParentAddedNodes(), wrapper
- .getParentRemovedNodes());
+ if (indexer == null)
+ {
+ log.warn("No indexer could be found for the fqn " +
name.getParent());
+ if (log.isDebugEnabled()) log.debug("The current content of the map
of indexers is " + indexers);
+ }
+ else
+ {
+ indexer.updateIndex(wrapper.getAddedNodes(), wrapper.getRemovedNodes(),
wrapper.getParentAddedNodes(), wrapper
+ .getParentRemovedNodes());
+ }
}
finally
{
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java 2010-09-08
06:19:33 UTC (rev 3088)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java 2010-09-08
07:40:32 UTC (rev 3089)
@@ -70,6 +70,11 @@
public static final String JGROUPS_MUX_ENABLED =
"jgroups-multiplexer-stack";
/**
+ * Keep only one reference of the {@link JChannelFactory}
+ */
+ private static final JChannelFactory CHANNEL_FACTORY = new JChannelFactory();
+
+ /**
* A Map that contains all the registered JBC instances, ordered by
* {@link ExoContainer} instances, {@link CacheType} and JBC Configuration.
*/
@@ -170,17 +175,14 @@
if (jgroupsConfigurationFilePath != null)
{
// Create and inject multiplexer factory
- JChannelFactory muxFactory = new JChannelFactory();
-
muxFactory.setMultiplexerConfig(configurationManager.getResource(jgroupsConfigurationFilePath));
-
-
cache.getConfiguration().getRuntimeConfig().setMuxChannelFactory(muxFactory);
+
CHANNEL_FACTORY.setMultiplexerConfig(configurationManager.getResource(jgroupsConfigurationFilePath));
+
cache.getConfiguration().getRuntimeConfig().setMuxChannelFactory(CHANNEL_FACTORY);
log.info("Multiplexer stack successfully enabled for the
cache.");
}
}
catch (Exception e)
{
// exception occurred setting mux factory
- e.printStackTrace();
throw new RepositoryConfigurationException("Error setting multiplexer
configuration.", e);
}
}
@@ -259,6 +261,8 @@
try
{
cfg = cache.getConfiguration().clone();
+ // Ignore the eviction config, since each cache will have his own region
+ cfg.setEvictionConfig(null);
}
catch (CloneNotSupportedException e)
{
@@ -267,22 +271,23 @@
if (caches.containsKey(cfg))
{
cache = caches.get(cfg);
- if (log.isInfoEnabled())
- log.info("The region " + rootFqn + " has been registered for a
cache of type " + cacheType
- + " and the container " + container.getContext().getName());
}
else
{
caches.put(cfg, cache);
}
addEvictionRegion(rootFqn, cache, cfg);
+ if (log.isInfoEnabled())
+ log.info("The region " + rootFqn + " has been registered for a
cache of type " + cacheType
+ + " and the container " + container.getContext().getName());
return cache;
}
/**
* All the known cache types
*/
- public enum CacheType {
+ public enum CacheType
+ {
JCR_CACHE, INDEX_CACHE, LOCK_CACHE
- };
+ }
}
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 2010-09-08
06:19:33 UTC (rev 3088)
+++
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml 2010-09-08
07:40:32 UTC (rev 3089)
@@ -51,7 +51,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-db1-ws" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
@@ -62,7 +62,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer-db1-ws" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
</properties>
</query-handler>
@@ -72,11 +72,11 @@
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-locks-db1-ws" />
- <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks_db1_ws" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
+ <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
<property name="jbosscache-cl-cache.jdbc.table.drop"
value="false" />
- <property
name="jbosscache-cl-cache.jdbc.table.primarykey"
value="jcrlocks_db1_ws_pk" />
+ <property
name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk"
/>
<property name="jbosscache-cl-cache.jdbc.fqn.column"
value="fqn" />
<property name="jbosscache-cl-cache.jdbc.node.column"
value="node" />
<property name="jbosscache-cl-cache.jdbc.parent.column"
value="parent" />
@@ -112,7 +112,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-db1-ws1" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
@@ -123,7 +123,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer-db1-ws1" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
<property name="synonymprovider-class"
@@ -143,11 +143,11 @@
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-locks-db1-ws1" />
- <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks_db1_ws1" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
+ <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
<property name="jbosscache-cl-cache.jdbc.table.drop"
value="false" />
- <property
name="jbosscache-cl-cache.jdbc.table.primarykey"
value="jcrlocks_db1_ws1_pk" />
+ <property
name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk"
/>
<property name="jbosscache-cl-cache.jdbc.fqn.column"
value="fqn" />
<property name="jbosscache-cl-cache.jdbc.node.column"
value="node" />
<property name="jbosscache-cl-cache.jdbc.parent.column"
value="parent" />
@@ -183,7 +183,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-db1-ws2" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
@@ -194,7 +194,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer-db1-ws2" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
<property name="synonymprovider-class"
@@ -214,11 +214,11 @@
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-locks-db1-ws2" />
- <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks_db1_ws2" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
+ <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
<property name="jbosscache-cl-cache.jdbc.table.drop"
value="false" />
- <property
name="jbosscache-cl-cache.jdbc.table.primarykey"
value="jcrlocks_db1_ws2_pk" />
+ <property
name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk"
/>
<property name="jbosscache-cl-cache.jdbc.fqn.column"
value="fqn" />
<property name="jbosscache-cl-cache.jdbc.node.column"
value="node" />
<property name="jbosscache-cl-cache.jdbc.parent.column"
value="parent" />
@@ -268,7 +268,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-db1-ws3" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
@@ -279,7 +279,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer-db1-ws3" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
<property name="synonymprovider-class"
@@ -299,11 +299,11 @@
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-locks-db1-ws3" />
- <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks_db1_ws3" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
+ <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
<property name="jbosscache-cl-cache.jdbc.table.drop"
value="false" />
- <property
name="jbosscache-cl-cache.jdbc.table.primarykey"
value="jcrlocks_db1_ws3_pk" />
+ <property
name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk"
/>
<property name="jbosscache-cl-cache.jdbc.fqn.column"
value="fqn" />
<property name="jbosscache-cl-cache.jdbc.node.column"
value="node" />
<property name="jbosscache-cl-cache.jdbc.parent.column"
value="parent" />
@@ -358,7 +358,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-db1tck-ws" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
@@ -369,7 +369,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer-db1tck-ws" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
<property name="synonymprovider-class"
@@ -389,11 +389,11 @@
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-locks-db1tck-ws" />
- <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks_db1tck_ws" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
+ <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
<property name="jbosscache-cl-cache.jdbc.table.drop"
value="false" />
- <property
name="jbosscache-cl-cache.jdbc.table.primarykey"
value="jcrlocks_db1tck_ws_pk" />
+ <property
name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk"
/>
<property name="jbosscache-cl-cache.jdbc.fqn.column"
value="fqn" />
<property name="jbosscache-cl-cache.jdbc.node.column"
value="node" />
<property name="jbosscache-cl-cache.jdbc.parent.column"
value="parent" />
@@ -436,7 +436,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-db1tck-ws1" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
@@ -447,7 +447,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer-db1tck-ws1" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider"
/>
@@ -465,11 +465,11 @@
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-locks-db1tck-ws1" />
- <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks_db1tck_ws1" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
+ <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
<property name="jbosscache-cl-cache.jdbc.table.drop"
value="false" />
- <property
name="jbosscache-cl-cache.jdbc.table.primarykey"
value="jcrlocks_db1tck_ws1_pk" />
+ <property
name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk"
/>
<property name="jbosscache-cl-cache.jdbc.fqn.column"
value="fqn" />
<property name="jbosscache-cl-cache.jdbc.node.column"
value="node" />
<property name="jbosscache-cl-cache.jdbc.parent.column"
value="parent" />
@@ -512,7 +512,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-db1tck-ws2" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
@@ -523,7 +523,7 @@
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer-db1tck-ws2" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider"
/>
@@ -544,11 +544,11 @@
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack"
value="true" />
- <property name="jbosscache-cluster-name"
value="JCR-cluster-locks-db1tck-ws2" />
- <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks_db1tck_ws2" />
+ <property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
+ <property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
<property name="jbosscache-cl-cache.jdbc.table.drop"
value="false" />
- <property
name="jbosscache-cl-cache.jdbc.table.primarykey"
value="jcrlocks_db1tck_ws2_pk" />
+ <property
name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk"
/>
<property name="jbosscache-cl-cache.jdbc.fqn.column"
value="fqn" />
<property name="jbosscache-cl-cache.jdbc.node.column"
value="node" />
<property name="jbosscache-cl-cache.jdbc.parent.column"
value="parent" />