[exo-jcr-commits] exo-jcr SVN: r1588 - in jcr/trunk/exo.jcr.component.core/src: main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache and 9 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Jan 27 07:31:51 EST 2010


Author: nzamosenchuk
Date: 2010-01-27 07:31:50 -0500 (Wed, 27 Jan 2010)
New Revision: 1588

Added:
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/readme.txt
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-configuration.xml
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-data.tpl.xml
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-indexer.tpl.xml
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-lock.tpl.xml
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jcr-config.xml
Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/QueryHandlerParams.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManager.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/config/TestTemplateConfigurationHelper.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestJBossCacheWorkspaceStorageCache.java
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/cluster/test-jcr-config.xml
   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/test-jcr-config.xml
Log:
EXOJCR-434: Template in JBossCache configuration is handled in all class now. Template-based configuration created and used parameters names are aligned.

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/QueryHandlerParams.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/QueryHandlerParams.java	2010-01-27 10:47:12 UTC (rev 1587)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/QueryHandlerParams.java	2010-01-27 12:31:50 UTC (rev 1588)
@@ -105,5 +105,5 @@
 
    public static final String PARAM_CHANGES_FILTER_CLASS = "changesfilter-class";
 
-   public static final String PARAM_CHANGES_FILTER_CONFIG_PATH = "changesfilter-config-path";
+   public static final String PARAM_JBOSSCACHE_CONFIGURATION = "jbosscache-configuration";
 }

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManager.java	2010-01-27 10:47:12 UTC (rev 1587)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManager.java	2010-01-27 12:31:50 UTC (rev 1588)
@@ -23,6 +23,7 @@
 import org.exoplatform.services.jcr.access.SystemIdentity;
 import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
 import org.exoplatform.services.jcr.config.SimpleParameterEntry;
+import org.exoplatform.services.jcr.config.TemplateConfigurationHelper;
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.dataflow.ChangesLogIterator;
 import org.exoplatform.services.jcr.dataflow.CompositeChangesLog;
@@ -59,6 +60,8 @@
 import org.jboss.cache.loader.CacheLoader;
 import org.picocontainer.Startable;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.io.Serializable;
 import java.math.BigInteger;
 import java.security.MessageDigest;
@@ -248,13 +251,27 @@
          && (config.getLockManager().getCacheConfig() != null || (paramenerts != null && config.getLockManager()
             .getParameterValue(JBOSSCACCHE_CONFIG, null) != null)))
       {
-         String pathToConfig =
+         String jbcConfig =
             (paramenerts != null && config.getLockManager().getParameterValue(JBOSSCACCHE_CONFIG, null) != null)
                ? config.getLockManager().getParameterValue(JBOSSCACCHE_CONFIG) : config.getLockManager()
                   .getCacheConfig();
+
+         // initialize template 
+         TemplateConfigurationHelper configurationHelper = TemplateConfigurationHelper.createJBossCacheHelper();
+         InputStream configStream;
+         try
+         {
+            // fill template
+            configStream = configurationHelper.fillTemplate(jbcConfig, config.getLockManager().getParameters());
+         }
+         catch (IOException e)
+         {
+            throw new RepositoryConfigurationException(e);
+         }
+
          CacheFactory<Serializable, Object> factory = new DefaultCacheFactory<Serializable, Object>();
 
-         cache = factory.createCache(pathToConfig, false);
+         cache = factory.createCache(configStream, false);
 
          this.tm = transactionManager;
          if (transactionManager != null)

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java	2010-01-27 10:47:12 UTC (rev 1587)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java	2010-01-27 12:31:50 UTC (rev 1588)
@@ -21,6 +21,7 @@
 import org.exoplatform.services.jcr.config.QueryHandlerEntry;
 import org.exoplatform.services.jcr.config.QueryHandlerParams;
 import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.config.TemplateConfigurationHelper;
 import org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter;
 import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
 import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
@@ -40,6 +41,7 @@
 import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig.SingletonStoreConfig;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.Serializable;
 import java.util.Properties;
 import java.util.Set;
@@ -73,10 +75,24 @@
       QueryHandler parentHandler) throws IOException, RepositoryException, RepositoryConfigurationException
    {
       super(searchManager, parentSearchManager, config, indexingTree, parentIndexingTree, handler, parentHandler);
-      String jbcConfig = config.getParameterValue(QueryHandlerParams.PARAM_CHANGES_FILTER_CONFIG_PATH);
+      String jbcConfig = config.getParameterValue(QueryHandlerParams.PARAM_JBOSSCACHE_CONFIGURATION);
+
+      // initialize template 
+      TemplateConfigurationHelper configurationHelper = TemplateConfigurationHelper.createJBossCacheHelper();
+      InputStream configStream;
+      try
+      {
+         // fill template
+         configStream = configurationHelper.fillTemplate(jbcConfig, config.getParameters());
+      }
+      catch (IOException e)
+      {
+         throw new RepositoryConfigurationException(e);
+      }
+
       CacheFactory<Serializable, Object> factory = new DefaultCacheFactory<Serializable, Object>();
       log.info("JBoss Cache configuration used: " + jbcConfig);
-      this.cache = factory.createCache(jbcConfig, false);
+      this.cache = factory.createCache(configStream, false);
 
       // initialize IndexerCacheLoader 
       IndexerCacheLoader indexerCacheLoader = new IndexerCacheLoader();

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java	2010-01-27 10:47:12 UTC (rev 1587)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java	2010-01-27 12:31:50 UTC (rev 1588)
@@ -20,6 +20,8 @@
 
 import org.exoplatform.services.jcr.access.AccessControlList;
 import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.config.SimpleParameterEntry;
+import org.exoplatform.services.jcr.config.TemplateConfigurationHelper;
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.dataflow.ItemState;
 import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
@@ -41,6 +43,9 @@
 import org.jboss.cache.Fqn;
 import org.jboss.cache.Node;
 
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -254,36 +259,33 @@
    public JBossCacheWorkspaceStorageCache(WorkspaceEntry wsConfig, TransactionService transactionService)
       throws RepositoryException, RepositoryConfigurationException
    {
-      this(readJBCConfig(wsConfig), transactionService.getTransactionManager());
-   }
+      if (wsConfig.getCache() == null)
+      {
+         throw new RepositoryConfigurationException("Cache configuration not found");
+      }
+      String jbcConfig = wsConfig.getCache().getParameterValue(JBOSSCACHE_CONFIG);
 
-   /**
-    * Cache constructor with JBossCache JTA transaction support.
-    * 
-    * @param wsConfig WorkspaceEntry workspace config 
-    * @throws RepositoryException if error of initialization
-    * @throws RepositoryConfigurationException if error of configuration
-    */
-   public JBossCacheWorkspaceStorageCache(WorkspaceEntry wsConfig) throws RepositoryException,
-      RepositoryConfigurationException
-   {
-      this(readJBCConfig(wsConfig), null);
-   }
-
-   /**
-    * JBossCacheWorkspaceStorageCache  constructor.
-    *
-    */
-   public JBossCacheWorkspaceStorageCache(String jbcConfig, TransactionManager transactionManager)
-      throws RepositoryException
-   {
       CacheFactory<Serializable, Object> factory = new DefaultCacheFactory<Serializable, Object>();
       LOG.info("JBoss Cache configuration used: " + jbcConfig);
-      this.cache = new BufferedJBossCache(factory.createCache(jbcConfig, false));
-      if (transactionManager != null)
+
+      // initialize template 
+      TemplateConfigurationHelper configurationHelper = TemplateConfigurationHelper.createJBossCacheHelper();
+      InputStream configStream;
+      try
       {
-         cache.getConfiguration().getRuntimeConfig().setTransactionManager(transactionManager);
+         // fill template
+         configStream = configurationHelper.fillTemplate(jbcConfig, wsConfig.getCache().getParameters());
       }
+      catch (IOException e)
+      {
+         throw new RepositoryConfigurationException(e);
+      }
+      
+      this.cache = new BufferedJBossCache(factory.createCache(configStream, false));
+      if (transactionService.getTransactionManager() != null)
+      {
+         cache.getConfiguration().getRuntimeConfig().setTransactionManager(transactionService.getTransactionManager());
+      }
 
       this.itemsRoot = Fqn.fromElements(ITEMS);
       this.childNodes = Fqn.fromElements(CHILD_NODES);
@@ -302,6 +304,19 @@
    }
 
    /**
+    * Cache constructor with JBossCache JTA transaction support.
+    * 
+    * @param wsConfig WorkspaceEntry workspace config 
+    * @throws RepositoryException if error of initialization
+    * @throws RepositoryConfigurationException if error of configuration
+    */
+   public JBossCacheWorkspaceStorageCache(WorkspaceEntry wsConfig) throws RepositoryException,
+      RepositoryConfigurationException
+   {
+      this(wsConfig, null);
+   }
+
+   /**
     * Checks if node with give FQN not exists and creates resident node.
     * @param fqn
     */
@@ -317,7 +332,7 @@
       {
          cache.getNode(fqn).setResident(true);
       }
-      
+
    }
 
    protected static String readJBCConfig(final WorkspaceEntry wsConfig) throws RepositoryConfigurationException

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/config/TestTemplateConfigurationHelper.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/config/TestTemplateConfigurationHelper.java	2010-01-27 10:47:12 UTC (rev 1587)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/config/TestTemplateConfigurationHelper.java	2010-01-27 12:31:50 UTC (rev 1588)
@@ -51,6 +51,23 @@
       assertTrue(preparedParameters.containsKey("${jbosscache-cache.loader}"));
       assertTrue(preparedParameters.containsKey("${jbosscache-clustername}"));
    }
+   
+   public void testFilters2()
+   {
+      // create helper with predefined include and exclude patterns
+      TemplateConfigurationHelper helper = TemplateConfigurationHelper.createJBossCacheHelper();
+      Map<String, String> parameters = new HashMap<String, String>();
+      parameters.put("jgroups-configuration", "");
+      parameters.put("jbosscache-cache.loader", "");
+      parameters.put("jbosscache-clustername", "");
+      parameters.put("max-volatile-size", "");
+      Map<String, String> preparedParameters = helper.prepareParameters(parameters);
+      assertEquals(3, preparedParameters.size());
+      // "jbosscache-configuration" and "max-volatile-size" should be excluded
+      assertFalse(preparedParameters.containsKey("${max-volatile-size}"));
+      assertTrue(preparedParameters.containsKey("${jbosscache-cache.loader}"));
+      assertTrue(preparedParameters.containsKey("${jbosscache-clustername}"));
+   }
 
    public void testTemplating() throws IOException
    {

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestJBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestJBossCacheWorkspaceStorageCache.java	2010-01-27 10:47:12 UTC (rev 1587)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestJBossCacheWorkspaceStorageCache.java	2010-01-27 12:31:50 UTC (rev 1588)
@@ -18,10 +18,15 @@
  */
 package org.exoplatform.services.jcr.impl.dataflow.persistent;
 
+import org.exoplatform.services.jcr.config.CacheEntry;
+import org.exoplatform.services.jcr.config.SimpleParameterEntry;
+import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.dataflow.persistent.WorkspaceStorageCache;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache;
 import org.exoplatform.services.transaction.TransactionService;
 
+import java.util.ArrayList;
+
 /**
  * Created by The eXo Platform SAS.
  * 
@@ -36,6 +41,13 @@
    {
       TransactionService transactionService =
          (TransactionService)container.getComponentInstanceOfType(TransactionService.class);
-      return new JBossCacheWorkspaceStorageCache("conf/standalone/test-jbosscache-config.xml", transactionService == null ? null : transactionService.getTransactionManager());
+      
+      ArrayList<SimpleParameterEntry> list = new ArrayList<SimpleParameterEntry>();
+      list.add(new SimpleParameterEntry(JBossCacheWorkspaceStorageCache.JBOSSCACHE_CONFIG, "conf/standalone/test-jbosscache-config.xml"));
+      
+      CacheEntry entry = new CacheEntry(list);
+      WorkspaceEntry workspaceEntry = new WorkspaceEntry();
+      workspaceEntry.setCache(entry);
+      return new JBossCacheWorkspaceStorageCache(workspaceEntry, transactionService == null ? null : transactionService);
    }
 }

Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/cluster/test-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/cluster/test-jcr-config.xml	2010-01-27 10:47:12 UTC (rev 1587)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/cluster/test-jcr-config.xml	2010-01-27 12:31:50 UTC (rev 1588)
@@ -75,7 +75,7 @@
                   <properties>
                      <property name="index-dir" value="${java.io.tmpdir}/cluster_nfs/db1/ws" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml" />
+                     <property name="jbosscache-configuration" value="conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml" />
                      <property name="max-volatile-time" value="60" />
 
                    </properties>
@@ -118,7 +118,7 @@
                   <properties>
                      <property name="index-dir" value="${java.io.tmpdir}/cluster_nfs/db1/ws1" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws1.xml" />
+                     <property name="jbosscache-configuration" value="conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws1.xml" />
                      <property name="max-volatile-time" value="60" />
                   </properties>
                </query-handler>

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-01-27 10:47:12 UTC (rev 1587)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml	2010-01-27 12:31:50 UTC (rev 1588)
@@ -75,7 +75,7 @@
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1/ws" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml" />
+                     <property name="jbosscache-configuration" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml" />
                      <property name="max-volatile-time" value="60" />
                    </properties>
                </query-handler>
@@ -117,7 +117,7 @@
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1/ws1" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws1.xml" />
+                     <property name="jbosscache-configuration" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws1.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
                      <property name="synonymprovider-config-path" value="../../../synonyms.properties" />
@@ -165,7 +165,7 @@
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1/ws2" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws2.xml" />
+                     <property name="jbosscache-configuration" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws2.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
                      <property name="synonymprovider-config-path" value="../../../synonyms.properties" />
@@ -228,7 +228,7 @@
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1/ws3" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws3.xml" />
+                     <property name="jbosscache-configuration" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws3.xml" />
                      <property name="max-volatile-time" value="60" />
                     <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
 		<property name="synonymprovider-config-path" value="../../../synonyms.properties" />
@@ -292,7 +292,7 @@
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1tck/ws" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1tck_ws.xml" />
+                     <property name="jbosscache-configuration" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1tck_ws.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
                      <property name="synonymprovider-config-path" value="../../../synonyms.properties" />
@@ -347,7 +347,7 @@
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1tck/ws1" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1tck_ws1.xml" />
+                     <property name="jbosscache-configuration" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1tck_ws1.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
                      <property name="synonymprovider-config-path" value="../../../synonyms.properties" />
@@ -401,7 +401,7 @@
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1tck/ws2" />
                      <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1tck_ws2.xml" />
+                     <property name="jbosscache-configuration" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1tck_ws2.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
                      <property name="synonymprovider-config-path" value="../../../synonyms.properties" />

Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml	2010-01-27 10:47:12 UTC (rev 1587)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml	2010-01-27 12:31:50 UTC (rev 1588)
@@ -75,7 +75,7 @@
                   <properties>
                      <property name="index-dir" value="target/temp/index/db1/ws" />
                      <!-- property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
-                     <property name="changesfilter-config-path" value="conf/standalone/test-jbosscache-config.xml" /-->
+                     <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-config.xml" /-->
                      
                    </properties>
                </query-handler>

Added: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/readme.txt
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/readme.txt	                        (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/readme.txt	2010-01-27 12:31:50 UTC (rev 1588)
@@ -0,0 +1,43 @@
+INFO
+
+This is new, template-based configuration of JCR with JBossCache. 
+This configuration uses MySQL database (sql script for creating
+and deleting all needed DBs is shown below).
+
+Currently JBossCache cluster-groups use the same "udp.xml" config
+so lots of warnings can appear on system out from JGroups.
+
+TEMPLATING
+Configuration templates should use variables like:
+"jbosscache-*" or "jgroups-configuration" any other wouldn't be 
+inserted into the template.
+
+
+
+DROP  DATABASE IF EXISTS portal ;
+create database portal default charset latin1 collate latin1_general_cs;
+DROP  DATABASE IF EXISTS jcr ;
+create database jcr default charset latin1 collate latin1_general_cs;
+
+DROP  DATABASE IF EXISTS jcr2 ;
+create database jcr2 default charset latin1 collate latin1_general_cs;
+DROP  DATABASE IF EXISTS jcr3 ;
+create database jcr3 default charset latin1 collate latin1_general_cs;
+
+DROP  DATABASE IF EXISTS jcrtest ;
+create database jcrtest default charset latin1 collate latin1_general_cs;
+DROP  DATABASE IF EXISTS portaltck ;
+create database portaltck default charset latin1 collate latin1_general_cs;
+
+DROP  DATABASE IF EXISTS jcrtck ;
+create database jcrtck default charset latin1 collate latin1_general_cs;
+DROP  DATABASE IF EXISTS jcr2tck;
+create database jcr2tck default charset latin1 collate latin1_general_cs;
+
+DROP  DATABASE IF EXISTS jdbcjcr2export1 ;
+create database jdbcjcr2export1 default charset latin1 collate latin1_general_cs;
+DROP  DATABASE IF EXISTS jdbcjcr2export2 ;
+create database jdbcjcr2export2 default charset latin1 collate latin1_general_cs;
+
+DROP  DATABASE IF EXISTS jdbcjcr2export3 ;
+create database jdbcjcr2export3 default charset latin1 collate latin1_general_cs;


Property changes on: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/readme.txt
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-configuration.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-configuration.xml	                        (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-configuration.xml	2010-01-27 12:31:50 UTC (rev 1588)
@@ -0,0 +1,625 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+
+    Copyright (C) 2009 eXo Platform SAS.
+
+    This is free software; you can redistribute it and/or modify it
+    under the terms of the GNU Lesser General Public License as
+    published by the Free Software Foundation; either version 2.1 of
+    the License, or (at your option) any later version.
+
+    This software is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this software; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+    02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
+   xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+  <component>
+    <key>org.exoplatform.services.log.LogConfigurationInitializer</key>
+    <type>org.exoplatform.services.log.LogConfigurationInitializer</type>
+    <init-params>
+      <value-param>
+        <name>logger</name>
+        <value>org.exoplatform.services.log.impl.BufferedLog4JLogger</value>
+      </value-param>
+      <value-param>
+        <name>configurator</name>
+        <value>org.exoplatform.services.log.impl.Log4JConfigurator</value>
+      </value-param>
+      <properties-param>
+        <name>properties</name>
+        <description>Log4J properties</description>
+        <property name="log4j.rootLogger" value="INFO, stdout, file"/>
+        
+        <property name="log4j.appender.stdout" value="org.apache.log4j.ConsoleAppender"/>
+        <property name="log4j.appender.stdout.threshold" value="DEBUG"/>
+        
+        <property name="log4j.appender.stdout.layout" value="org.apache.log4j.PatternLayout"/>
+        <property name="log4j.appender.stdout.layout.ConversionPattern"
+          value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n"/>
+        
+        <property name="log4j.appender.file" value="org.apache.log4j.FileAppender"/>
+        <property name="log4j.appender.file.File" value="target/jcr.log"/>
+        
+        <property name="log4j.appender.file.layout" value="org.apache.log4j.PatternLayout"/>
+        <property name="log4j.appender.file.layout.ConversionPattern"
+          value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n"/>
+        
+        <property name="log4j.category.jcr.JBossCacheStorageConnection1" value="DEBUG"/>
+        
+        <!-- property name="log4j.category.jcr.NodeImpl" value="DEBUG"/ -->        
+      </properties-param>
+      
+      <!-- value-param>
+      <name>logger</name>
+      <value>org.exoplatform.services.log.impl.BufferedSimpleLog</value>
+      </value-param>
+      <value-param>
+      <name>configurator</name>
+      <value>org.exoplatform.services.log.impl.SimpleLogConfigurator</value>
+      </value-param>
+      <properties-param>
+      <name>properties</name>
+      <description>SimpleLog properties</description>
+      <property name="org.apache.commons.logging.simplelog.defaultlog" value="debug"/>
+      <property name="org.apache.commons.logging.simplelog.showdatetime" value="true"/>
+      </properties-param -->
+      
+      <!-- value-param>
+      <name>logger</name>
+      <value>org.exoplatform.services.log.impl.BufferedJdk14Logger</value>
+      </value-param>
+      <value-param>
+      <name>configurator</name>
+      <value>org.exoplatform.services.log.impl.Jdk14Configurator</value>
+      </value-param>
+      <properties-param>
+      <name>properties</name>
+      <description>jdk1.4 Logger properties</description>
+      <property name="handlers" value="java.util.logging.ConsoleHandler"/>
+      <property name=".level" value="FINE"/>
+      <property name="java.util.logging.ConsoleHandler.level" value="FINE"/>
+      </properties-param -->
+      
+    </init-params>
+  </component>
+
+   <!-- component>
+      <type>org.exoplatform.services.jbosscache.JBossCacheService</type>
+      <init-params>
+         <value-param>
+            <name>jbosscache-configuration</name>
+            <value>conf/portal/exojcr-jboss-cache-conf.xml</value>
+         </value-param>
+      </init-params>
+   </component -->
+
+  <component>
+    <key>org.exoplatform.services.jcr.RepositoryService</key>
+    <type>org.exoplatform.services.jcr.impl.RepositoryServiceImpl</type>
+    <component-plugins>
+      <component-plugin>
+        <name>add.namespaces</name>
+        <set-method>addPlugin</set-method>
+        <type>org.exoplatform.services.jcr.impl.AddNamespacesPlugin</type>
+        <init-params>
+          <properties-param>
+            <name>namespaces</name>
+            <property name="test" value="http://www.apache.org/jackrabbit/test"/>
+            <property name="exojcrtest" value="http://www.exoplatform.org/jcr/test/1.0"/>
+            <property name="rma" value="http://www.rma.com/jcr/"/>
+            <property name="metadata" value="http://www.exoplatform.com/jcr/metadata/1.1/"/>
+            <property name="dc" value="http://purl.org/dc/elements/1.1/"/>
+          </properties-param>
+        </init-params>
+      </component-plugin>
+      <component-plugin>
+        <name>add.nodeType</name>
+        <set-method>addPlugin</set-method>
+        <type>org.exoplatform.services.jcr.impl.AddNodeTypePlugin</type>
+        <init-params>
+          <values-param>
+            <name>autoCreatedInNewRepository</name>
+            <description>Node types configuration file</description>
+            <value>jar:/conf/test/nodetypes-tck.xml</value>
+            <value>jar:/conf/test/nodetypes-impl.xml</value>
+            <value>jar:/conf/test/nodetypes-usecase.xml</value>
+            <value>jar:/conf/test/nodetypes-config.xml</value>
+            <value>jar:/conf/test/nodetypes-config-extended.xml</value>            
+          </values-param>
+          
+          <values-param>
+            <name>testInitNodeTypesRepository</name>
+            <description>
+              Node types configuration file for repository with name testInitNodeTypesRepository
+            </description>
+            <value>jar:/conf/test/nodetypes-test.xml</value>
+          </values-param>
+          
+          <values-param>
+            <name>testInitNodeTypesRepositoryTest2</name>
+            <description>
+              Node types configuration file for repository with name testInitNodeTypesRepositoryTest2
+            </description>
+            <value>jar:/conf/test/nodetypes-test2.xml</value>
+          </values-param>
+          
+          <!--values-param>
+          <name>testInitNodeTypesRepositoryTest3</name>
+          <description>Node types from ext. Needed bacause core starup earlie than ext</description>
+          <value>jar:/conf/test/nodetypes-test3_ext.xml</value>
+          </values-param-->
+          
+        </init-params>
+      </component-plugin>
+    </component-plugins>
+  </component>
+  
+  <component>
+    <key>org.exoplatform.services.jcr.config.RepositoryServiceConfiguration</key>
+    <type>org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl</type>
+    <init-params>
+      <value-param>
+        <name>conf-path</name>
+        <description>JCR configuration file</description>
+        <value>jar:/conf/templateBased/test-jcr-config.xml</value>
+      </value-param>
+      <!-- properties-param>
+        <name>working-conf</name>
+        <description>working-conf</description>
+        <property name="source-name" value="jdbcjcr"/>
+        <property name="dialect" value="mysql"/>
+        <property name="persister-class-name" value="org.exoplatform.services.jcr.impl.config.JDBCConfigurationPersister"/>
+      </properties-param -->
+    </init-params>
+  </component>
+  
+  <component>
+    <type>org.exoplatform.services.organization.impl.mock.DummyOrganizationService</type>
+  </component>
+  
+  <component>
+    <key>org.exoplatform.services.security.Authenticator</key>
+    <type>org.exoplatform.services.organization.auth.OrganizationAuthenticatorImpl</type>
+  </component>
+  
+  <component>
+    <type>org.exoplatform.services.jcr.impl.ext.action.SessionActionCatalog</type>
+  </component>
+  
+  <component>
+     <key>org.jboss.cache.transaction.TransactionManagerLookup</key>
+     <type>org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup</type>
+  </component>
+   
+  <component>
+    <key>org.exoplatform.services.transaction.TransactionService</key>
+    <type>org.exoplatform.services.transaction.jbosscache.ArjunaTransactionService</type>
+    <init-params>
+      <value-param>
+        <name>timeout</name>
+        <value>300</value>
+      </value-param>
+    </init-params>    
+  </component>
+  
+  <!-- component>
+    <key>org.exoplatform.services.transaction.TransactionService</key>
+    <type>org.exoplatform.services.transaction.impl.jotm.TransactionServiceJotmImpl</type>
+    <init-params>
+      <value-param>
+        <name>timeout</name>
+        <value>5</value>
+      </value-param>
+    </init-params>
+  </component-->
+  
+  <external-component-plugins>
+    <target-component>org.exoplatform.services.naming.InitialContextInitializer</target-component>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcr</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="com.mysql.jdbc.Driver" />
+          <property name="url" value="jdbc:mysql://localhost/portal"/>
+          <property name="username" value="root"/>
+          <property name="password" value="admin"/>
+          <property name="maxActive" value="100" />
+          <property name="maxIdle" value="5" />
+          <property name="initialSize" value="5" />
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcr1</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="com.mysql.jdbc.Driver" />
+          <property name="url" value="jdbc:mysql://localhost/jcr"/>
+          <property name="username" value="root"/>
+          <property name="password" value="admin"/>
+          <property name="maxActive" value="100" />
+          <property name="maxIdle" value="5" />
+          <property name="initialSize" value="5" />
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcr2</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="com.mysql.jdbc.Driver" />
+          <property name="url" value="jdbc:mysql://localhost/jcr2"/>
+          <property name="username" value="root"/>
+          <property name="password" value="admin"/>
+          <property name="maxActive" value="100" />
+          <property name="maxIdle" value="5" />
+          <property name="initialSize" value="5" />
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcr3</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="com.mysql.jdbc.Driver" />
+          <property name="url" value="jdbc:mysql://localhost/jcr3"/>
+          <property name="username" value="root"/>
+          <property name="password" value="admin"/>
+          <property name="maxActive" value="100" />
+          <property name="maxIdle" value="5" />
+          <property name="initialSize" value="5" />
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcrtest</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
+          <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcrtest"/>
+          <property name="username" value="sa"/>
+          <property name="password" value=""/>
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcrtck</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="com.mysql.jdbc.Driver" />
+          <property name="url" value="jdbc:mysql://localhost/portaltck"/>
+          <property name="username" value="root"/>
+          <property name="password" value="admin"/>
+          <property name="maxActive" value="100" />
+          <property name="maxIdle" value="5" />
+          <property name="initialSize" value="5" />
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcr1tck</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="com.mysql.jdbc.Driver" />
+          <property name="url" value="jdbc:mysql://localhost/jcrtck"/>
+          <property name="username" value="root"/>
+          <property name="password" value="admin"/>
+          <property name="maxActive" value="100" />
+          <property name="maxIdle" value="5" />
+          <property name="initialSize" value="5" />
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcr2tck</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="com.mysql.jdbc.Driver" />
+          <property name="url" value="jdbc:mysql://localhost/jcr2tck"/>
+          <property name="username" value="root"/>
+          <property name="password" value="admin"/>
+          <property name="maxActive" value="100" />
+          <property name="maxIdle" value="5" />
+          <property name="initialSize" value="5" />
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcr2export1</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
+          <property name="url" value="jdbc:hsqldb:file:target/temp/data/jdbcjcr2export1"/>
+          <property name="username" value="sa"/>
+          <property name="password" value=""/>
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcr2export2</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
+          <property name="url" value="jdbc:hsqldb:file:target/temp/data/jdbcjcr2export2"/>
+          <property name="username" value="sa"/>
+          <property name="password" value=""/>
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.datasource</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>jdbcjcr2export3</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.sql.DataSource</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
+          <property name="url" value="jdbc:hsqldb:file:target/temp/data/jdbcjcr2export3"/>
+          <property name="username" value="sa"/>
+          <property name="password" value=""/>
+        </properties-param>
+      </init-params>
+    </component-plugin>
+
+ 
+    <!-- Resource configuration for UserTransaction
+    use JOTM
+    -->
+    <component-plugin>
+      <name>jotm.tx</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>UserTransaction</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.transaction.UserTransaction</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.objectweb.jotm.UserTransactionFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="jotm.timeout" value="60"/>
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>bind.jcr</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>repo</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.jcr.Repository</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.exoplatform.services.jcr.impl.jndi.BindableRepositoryFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="repositoryName" value="db1"/>
+          <!-- property name="containerConfig" value="exo-configuration.xml"/ -->
+        </properties-param>
+      </init-params>
+    </component-plugin>
+    <component-plugin>
+      <name>rmi.jcr</name>
+      <set-method>addPlugin</set-method>
+      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+      <init-params>
+        <value-param>
+          <name>bind-name</name>
+          <value>rmirepository</value>
+        </value-param>
+        <value-param>
+          <name>class-name</name>
+          <value>javax.jcr.Repository</value>
+        </value-param>
+        <value-param>
+          <name>factory</name>
+          <value>org.exoplatform.services.jcr.rmi.RepositoryFactory</value>
+        </value-param>
+        <properties-param>
+          <name>ref-addresses</name>
+          <description>ref-addresses</description>
+          <property name="url" value="//localhost:9999/repository"/>
+        </properties-param>
+      </init-params>
+    </component-plugin>
+  </external-component-plugins>
+</configuration>


Property changes on: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-configuration.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-data.tpl.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-data.tpl.xml	                        (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-data.tpl.xml	2010-01-27 12:31:50 UTC (rev 1588)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns="urn:jboss:jbosscache-core:config:3.1">
+
+	<locking useLockStriping="false" concurrencyLevel="50000"
+		lockParentForChildInsertRemove="false" lockAcquisitionTimeout="20000" />
+
+	<clustering mode="replication" clusterName="${jbosscache-cluster-name}">
+		<stateRetrieval timeout="20000" fetchInMemoryState="false" />
+		<jgroupsConfig configFile="${jgroups-configuration}" />
+		<sync />
+	</clustering>
+
+	<!-- Eviction configuration -->
+	<eviction wakeUpInterval="5000">
+		<default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
+			actionPolicyClass="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.ParentNodeEvictionActionPolicy"
+			eventQueueSize="1000000">
+			<property name="maxNodes" value="10000" />
+			<property name="timeToLive" value="120000" />
+		</default>
+	</eviction>
+</jbosscache>
\ No newline at end of file


Property changes on: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-data.tpl.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-indexer.tpl.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-indexer.tpl.xml	                        (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-indexer.tpl.xml	2010-01-27 12:31:50 UTC (rev 1588)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns="urn:jboss:jbosscache-core:config:3.1">
+
+	<locking useLockStriping="false" concurrencyLevel="50000"
+		lockParentForChildInsertRemove="false" lockAcquisitionTimeout="20000" />
+	<!-- Configure the TransactionManager -->
+	<transaction
+		transactionManagerLookupClass="org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup" />
+
+	<clustering mode="replication" clusterName="${jbosscache-cluster-name}">
+		<stateRetrieval timeout="20000" fetchInMemoryState="false" />
+		<jgroupsConfig configFile="${jgroups-configuration}" />
+		<sync />
+	</clustering>
+	<!-- Eviction configuration -->
+	<eviction wakeUpInterval="5000">
+		<default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm"
+			eventQueueSize="1000000">
+			<property name="maxNodes" value="10000" />
+			<property name="minTimeToLive" value="60000" />
+		</default>
+	</eviction>
+
+</jbosscache>


Property changes on: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-indexer.tpl.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-lock.tpl.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-lock.tpl.xml	                        (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-lock.tpl.xml	2010-01-27 12:31:50 UTC (rev 1588)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns="urn:jboss:jbosscache-core:config:3.2">
+
+	<locking useLockStriping="false" concurrencyLevel="50000"
+		lockParentForChildInsertRemove="false" lockAcquisitionTimeout="20000" />
+
+	<clustering mode="replication" clusterName="${jbosscache-cluster-name}">
+		<stateRetrieval timeout="20000" fetchInMemoryState="false" />
+		<jgroupsConfig configFile="${jgroups-configuration}" />
+		<sync />
+	</clustering>
+
+	<loaders passivation="false" shared="true">
+		<preload>
+			<node fqn="/" />
+		</preload>
+		<!--
+			For another cache-loader class you should use another template with
+			cache-loader specific parameters
+		-->
+		<loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false"
+			fetchPersistentState="false" ignoreModifications="false"
+			purgeOnStartup="false">
+			<properties>
+				cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
+				cache.jdbc.table.create=${jbosscache-cl-cache.jdbc.table.create}
+				cache.jdbc.table.drop=${jbosscache-cl-cache.jdbc.table.drop}
+				cache.jdbc.table.primarykey=${jbosscache-cl-cache.jdbc.table.primarykey}
+				cache.jdbc.fqn.column=${jbosscache-cl-cache.jdbc.fqn.column}
+				cache.jdbc.fqn.type=${jbosscache-cl-cache.jdbc.fqn.type}
+				cache.jdbc.node.column=${jbosscache-cl-cache.jdbc.node.column}
+				cache.jdbc.node.type=${jbosscache-cl-cache.jdbc.node.type}
+				cache.jdbc.parent.column=${jbosscache-cl-cache.jdbc.parent.column}
+				cache.jdbc.datasource=${jbosscache-cl-cache.jdbc.datasource}
+			</properties>
+		</loader>
+
+	</loaders>
+
+</jbosscache>


Property changes on: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jbosscache-lock.tpl.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jcr-config.xml	                        (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jcr-config.xml	2010-01-27 12:31:50 UTC (rev 1588)
@@ -0,0 +1,506 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+
+    Copyright (C) 2009 eXo Platform SAS.
+
+    This is free software; you can redistribute it and/or modify it
+    under the terms of the GNU Lesser General Public License as
+    published by the Free Software Foundation; either version 2.1 of
+    the License, or (at your option) any later version.
+
+    This software is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this software; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+    02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<repository-service default-repository="db1">
+   <repositories>
+      <repository name="db1" system-workspace="ws" default-workspace="ws">
+         <security-domain>exo-domain</security-domain>
+         <!-- access-control>optional</access-control -->
+         <!-- access-control>disable</access-control -->
+         <session-max-age>1h</session-max-age>
+         <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
+         <workspaces>
+            <workspace name="ws">
+               <!-- for system storage -->
+               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+                  <properties>
+                     <property name="source-name" value="jdbcjcr" />
+                     <property name="dialect" value="mysql" />
+                     <property name="multi-db" value="true" />
+                     <property name="update-storage" value="false" />
+                     <property name="max-buffer-size" value="200k" />
+                     <property name="swap-directory" value="target/temp/swap/ws" />
+                  </properties>
+                  <value-storages>
+                     <value-storage id="ws" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+                        <properties>
+                           <property name="path" value="target/temp/values/ws" />
+                           <property name="digest-algo" value="MD5" />
+                           <property name="vcas-type" value="org.exoplatform.services.jcr.impl.storage.value.cas.JDBCValueContentAddressStorageImpl" />
+                           <property name="jdbc-source-name" value="jdbcjcr" />
+                           <property name="jdbc-dialect" value="mysql" />
+                        </properties>
+                        <filters>
+                           <filter property-type="Binary" />
+                        </filters>
+                     </value-storage>
+                  </value-storages>
+               </container>
+               <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+                  <properties>
+                     <property name="root-nodetype" value="nt:unstructured" />
+                  </properties>
+               </initializer>
+               <!-- initializer class="org.exoplatform.services.jcr.impl.core.RestoreWorkspaceInitializer">
+                  <properties>
+                     <property name="restore-path" value="./sv_export_root.xml" />
+                     <property name="restore-path" value="./src/test/resources/import-export/restore_db1_ws1.xml" />
+                  </properties>
+               </initializer
+-->
+               <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
+                  <properties>
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-data.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-db1-ws" />
+                  </properties>
+               </cache>
+               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+                  <properties>
+                     <property name="index-dir" value="${java.io.tmpdir}/cluster_nfs/db1/ws" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-indexer.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-indexer-db1-ws" />
+                     <property name="max-volatile-time" value="60" />
+                   </properties>
+               </query-handler>
+               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManager">
+                  <properties>
+                     <property name="time-out" value="15m" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-lock.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <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-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.fqn.column" value="fqn"/>
+                     <property name="jbosscache-cl-cache.jdbc.fqn.type" value="VARCHAR(512)"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.type" value="LONGBLOB"/>
+                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent"/>
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr"/>
+                  </properties>
+               </lock-manager>
+            </workspace>
+
+            <workspace name="ws1">
+               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+                  <properties>
+                     <property name="source-name" value="jdbcjcr1" />
+                     <property name="dialect" value="mysql" />
+                     <property name="multi-db" value="true" />
+                     <property name="update-storage" value="false" />
+                     <property name="max-buffer-size" value="200k" />
+                     <property name="swap-directory" value="target/temp/swap/ws1" />
+                  </properties>
+                  <value-storages>
+                     <value-storage id="ws1" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+                        <properties>
+                           <property name="path" value="target/temp/values/ws1" />
+                        </properties>
+                        <filters>
+                           <filter property-type="Binary" />
+                        </filters>
+                     </value-storage>
+                  </value-storages>
+               </container>
+               <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
+                  <properties>
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-data.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-db1-ws1" />
+                  </properties>
+               </cache>
+               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+                  <properties>
+                     <property name="index-dir" value="target/temp/index/db1/ws1" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-indexer.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-indexer-db1-ws1" />
+                     <property name="max-volatile-time" value="60" />
+                  </properties>
+               </query-handler>
+               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManager">
+                  <properties>
+                     <property name="time-out" value="15m" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-lock.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <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-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.fqn.column" value="fqn"/>
+                     <property name="jbosscache-cl-cache.jdbc.fqn.type" value="VARCHAR(512)"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.type" value="LONGBLOB"/>
+                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent"/>
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr"/>                  </properties>
+               </lock-manager>
+            </workspace>
+
+            <workspace name="ws2" lazy-read-threshold="1">
+               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+                  <properties>
+                     <property name="source-name" value="jdbcjcr2" />
+                     <property name="dialect" value="mysql" />
+                     <property name="multi-db" value="true" />
+                     <property name="update-storage" value="false" />
+                     <property name="max-buffer-size" value="200k" />
+                     <property name="swap-directory" value="target/temp/swap/ws2" />
+                  </properties>
+                  <value-storages>
+                     <value-storage id="ws2" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+                        <properties>
+                           <property name="path" value="target/temp/values/ws2" />
+                        </properties>
+                        <filters>
+                           <filter property-type="Binary" />
+                        </filters>
+                     </value-storage>
+                  </value-storages>
+               </container>
+               <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
+                  <properties>
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-data.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-db1-ws2" />
+                  </properties>
+               </cache>
+               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+                  <properties>
+                     <property name="index-dir" value="target/temp/index/db1/ws2" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-indexer.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-indexer-db1-ws2" />
+                     <property name="max-volatile-time" value="60" />
+                  </properties>
+               </query-handler>
+               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManager">
+                  <properties>
+                     <property name="time-out" value="15m" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-lock.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <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-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.fqn.column" value="fqn"/>
+                     <property name="jbosscache-cl-cache.jdbc.fqn.type" value="VARCHAR(512)"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.type" value="LONGBLOB"/>
+                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent"/>
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr"/>
+                  </properties>
+               </lock-manager>
+            </workspace>
+            
+            <workspace name="ws3">
+               <!-- for system storage -->
+               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+                  <properties>
+                     <property name="source-name" value="jdbcjcr3" />
+                     <property name="dialect" value="mysql" />
+                     <property name="multi-db" value="true" />
+                     <property name="update-storage" value="false" />
+                     <property name="max-buffer-size" value="200k" />
+                     <property name="swap-directory" value="target/temp/swap/ws3" />
+                  </properties>
+                 <value-storages>
+							<!--
+								This storage is used to check whether properties are removed
+								correctly from each value-storage
+								(TestRemoveFromValueStorage.java)
+							-->
+							<value-storage id="ws3_big"
+								class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+								<properties>
+									<property name="path" value="target/temp/values/ws3_big" />
+								</properties>
+								<filters>
+									<filter property-type="Binary" min-value-size="1024K" />
+								</filters>
+							</value-storage>
+							<value-storage id="ws3"
+								class="org.exoplatform.services.jcr.impl.storage.value.fs.CASableTreeFileValueStorage">
+								<properties>
+									<property name="path" value="target/temp/values/ws3" />
+									<property name="digest-algo" value="MD5" />
+									<property name="vcas-type"
+										value="org.exoplatform.services.jcr.impl.storage.value.cas.JDBCValueContentAddressStorageImpl" />
+									<property name="jdbc-source-name" value="jdbcjcr" />
+									<property name="jdbc-dialect" value="hsqldb" />
+								</properties>
+								<filters>
+									<filter property-type="Binary" />
+								</filters>
+							</value-storage>
+						</value-storages>
+               </container>
+               <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
+                  <properties>
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-data.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-db1-ws3" />
+                  </properties>
+               </cache>
+               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+                  <properties>
+                     <property name="index-dir" value="target/temp/index/db1/ws3" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-indexer.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-indexer-db1-ws3" />
+                     <property name="max-volatile-time" value="60" />
+                  </properties>
+               </query-handler>
+               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManager">
+                  <properties>
+                     <property name="time-out" value="15m" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-lock.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <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-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.fqn.column" value="fqn"/>
+                     <property name="jbosscache-cl-cache.jdbc.fqn.type" value="VARCHAR(512)"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.type" value="LONGBLOB"/>
+                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent"/>
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr"/>
+                  </properties>
+               </lock-manager>
+            </workspace>
+
+            
+         </workspaces>
+      </repository>
+
+      <repository name="db1tck" system-workspace="ws" default-workspace="ws">
+         <security-domain>exo-domain</security-domain>
+         <!-- access-control>optional</access-control -->
+         <!-- access-control>disable</access-control -->
+         <session-max-age>1h</session-max-age>
+         <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
+         <workspaces>
+            <workspace name="ws">
+               <!-- for system storage -->
+               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+                  <properties>
+                     <property name="source-name" value="jdbcjcrtck" />
+                     <property name="dialect" value="mysql" />
+                     <property name="multi-db" value="true" />
+                     <property name="update-storage" value="false" />
+                     <property name="max-buffer-size" value="200k" />
+                     <property name="swap-directory" value="target/temp/swap/wstck" />
+                  </properties>
+                  <value-storages>
+                     <value-storage id="ws" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+                        <properties>
+                           <property name="path" value="target/temp/values/wstck" />
+                        </properties>
+                        <filters>
+                           <filter property-type="Binary" min-value-size="100K" />
+                        </filters>
+                     </value-storage>
+                  </value-storages>
+               </container>
+               <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+                 <properties>
+                     <property name="root-nodetype" value="nt:unstructured" />
+                     <property name="root-permissions" value="any read;*:/platform/administrators read;*:/platform/administrators add_node;*:/platform/administrators set_property;*:/platform/administrators remove" />
+                  </properties>
+               </initializer>
+               <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
+                  <properties>
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-data.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-db1tck-ws" />
+                  </properties>
+               </cache>
+               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+                  <properties>
+                     <property name="index-dir" value="target/temp/index/db1tck/ws" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-indexer.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-indexer-db1tck-ws" />
+                     <property name="max-volatile-time" value="60" />
+                   </properties>
+               </query-handler>
+               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManager">
+                  <properties>
+                     <property name="time-out" value="15m" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-lock.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <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-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.fqn.column" value="fqn"/>
+                     <property name="jbosscache-cl-cache.jdbc.fqn.type" value="VARCHAR(512)"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.type" value="LONGBLOB"/>
+                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent"/>
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr"/>
+                  </properties>
+               </lock-manager>
+            </workspace>
+
+            <workspace name="ws1">
+               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+                  <properties>
+                     <property name="source-name" value="jdbcjcr1tck" />
+                     <property name="dialect" value="mysql" />
+                     <property name="multi-db" value="true" />
+                     <property name="update-storage" value="false" />
+                     <property name="max-buffer-size" value="200k" />
+                     <property name="swap-directory" value="target/temp/swap/ws1tck" />
+                  </properties>
+                  <value-storages>
+                     <value-storage id="ws1" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+                        <properties>
+                           <property name="path" value="target/temp/values/ws1tck" />
+                        </properties>
+                        <filters>
+                           <filter property-type="Binary" min-value-size="100K" />
+                        </filters>
+                     </value-storage>
+                  </value-storages>
+               </container>
+               <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+                  <properties>
+                     <property name="root-nodetype" value="nt:unstructured" />
+                     <property name="root-permissions" value="any read;*:/platform/administrators read;*:/platform/administrators add_node;*:/platform/administrators set_property;*:/platform/administrators remove" />
+                  </properties>
+               </initializer>
+               <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
+                  <properties>
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-data.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-db1tck-ws1" />
+                  </properties>
+               </cache>
+               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+                  <properties>
+                     <property name="index-dir" value="target/temp/index/db1tck/ws1" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-indexer.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-indexer-db1tck-ws1" />
+                     <property name="max-volatile-time" value="60" />
+                  </properties>
+               </query-handler>
+               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManager">
+                  <properties>
+                     <property name="time-out" value="15m" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-lock.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <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-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.fqn.column" value="fqn"/>
+                     <property name="jbosscache-cl-cache.jdbc.fqn.type" value="VARCHAR(512)"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.type" value="LONGBLOB"/>
+                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent"/>
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr"/>
+                  </properties>
+               </lock-manager>
+            </workspace>
+   
+        <workspace name="ws2">
+               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+                  <properties>
+                     <property name="source-name" value="jdbcjcr2tck" />
+                     <property name="dialect" value="mysql" />
+                     <property name="multi-db" value="true" />
+                     <property name="update-storage" value="false" />
+                     <property name="max-buffer-size" value="200k" />
+                     <property name="swap-directory" value="target/temp/swap/ws2tck" />
+                  </properties>
+                  <value-storages>
+                     <value-storage id="ws2" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+                        <properties>
+                           <property name="path" value="target/temp/values/ws2tck" />
+                        </properties>
+                        <filters>
+                           <filter property-type="Binary" min-value-size="100K" />
+                        </filters>
+                     </value-storage>
+                  </value-storages>
+               </container>
+               <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+                  <properties>
+                     <property name="root-nodetype" value="nt:unstructured" />
+                     <property name="root-permissions" value="any read;*:/platform/administrators read;*:/platform/administrators add_node;*:/platform/administrators set_property;*:/platform/administrators remove" />
+                  </properties>
+               </initializer>
+               <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
+                  <properties>
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-data.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-db1tck-ws2" />
+                  </properties>
+               </cache>
+               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+                  <properties>
+                     <property name="index-dir" value="target/temp/index/db1tck/ws2" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-indexer.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <property name="jbosscache-cluster-name" value="JCR-cluster-indexer-db1tck-ws2" />
+                     <property name="max-volatile-time" value="60" />
+                  </properties>
+               </query-handler>
+               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManager">
+                  <properties>
+                     <property name="time-out" value="15m" />
+                     <property name="jbosscache-configuration" value="conf/templateBased/test-jbosscache-lock.tpl.xml" />
+                     <property name="jgroups-configuration" value="udp.xml" />
+                     <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-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.fqn.column" value="fqn"/>
+                     <property name="jbosscache-cl-cache.jdbc.fqn.type" value="VARCHAR(512)"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node"/>
+                     <property name="jbosscache-cl-cache.jdbc.node.type" value="LONGBLOB"/>
+                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent"/>
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr"/>
+                  </properties>
+               </lock-manager>
+            </workspace>
+         </workspaces>
+      </repository>
+   </repositories>
+</repository-service>
\ No newline at end of file


Property changes on: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/templateBased/test-jcr-config.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain



More information about the exo-jcr-commits mailing list