[infinispan-commits] Infinispan SVN: r660 - in trunk: core/src/test/java/org/infinispan/api and 17 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Wed Aug 12 11:50:52 EDT 2009


Author: galder.zamarreno at jboss.com
Date: 2009-08-12 11:50:49 -0400 (Wed, 12 Aug 2009)
New Revision: 660

Modified:
   trunk/core/src/main/java/org/infinispan/manager/CacheManager.java
   trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java
   trunk/core/src/test/java/org/infinispan/api/CacheAPITest.java
   trunk/core/src/test/java/org/infinispan/api/CacheClusterJoinTest.java
   trunk/core/src/test/java/org/infinispan/api/MixedModeTest.java
   trunk/core/src/test/java/org/infinispan/api/batch/BatchWithTMTest.java
   trunk/core/src/test/java/org/infinispan/api/batch/BatchWithoutTMTest.java
   trunk/core/src/test/java/org/infinispan/api/mvcc/repeatable_read/WriteSkewTest.java
   trunk/core/src/test/java/org/infinispan/interceptors/MarshalledValueInterceptorTest.java
   trunk/core/src/test/java/org/infinispan/jmx/ActivationAndPassivationInterceptorMBeanTest.java
   trunk/core/src/test/java/org/infinispan/jmx/CacheLoaderAndCacheStoreInterceptorMBeanTest.java
   trunk/core/src/test/java/org/infinispan/jmx/CacheManagerMBeanTest.java
   trunk/core/src/test/java/org/infinispan/jmx/CacheMgmtInterceptorMBeanTest.java
   trunk/core/src/test/java/org/infinispan/jmx/ComponentsJmxRegistrationTest.java
   trunk/core/src/test/java/org/infinispan/jmx/JmxStatsFunctionalTest.java
   trunk/core/src/test/java/org/infinispan/jmx/MvccLockManagerMBeanTest.java
   trunk/core/src/test/java/org/infinispan/jmx/RpcManagerMBeanTest.java
   trunk/core/src/test/java/org/infinispan/jmx/TxInterceptorMBeanTest.java
   trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreFunctionalTest.java
   trunk/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java
   trunk/core/src/test/java/org/infinispan/loaders/ClusterCacheLoaderTest.java
   trunk/core/src/test/java/org/infinispan/loaders/decorators/SingletonStoreTest.java
   trunk/core/src/test/java/org/infinispan/manager/CacheManagerComponentRegistryTest.java
   trunk/core/src/test/java/org/infinispan/manager/CacheManagerTest.java
   trunk/core/src/test/java/org/infinispan/manager/CacheManagerXmlConfigurationTest.java
   trunk/core/src/test/java/org/infinispan/marshall/MarshalledValueTest.java
   trunk/core/src/test/java/org/infinispan/notifications/CacheListenerCacheLoaderTest.java
   trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierTest.java
   trunk/core/src/test/java/org/infinispan/profiling/AbstractProfileTest.java
   trunk/core/src/test/java/org/infinispan/profiling/DeadlockDetectionPerformanceTest.java
   trunk/core/src/test/java/org/infinispan/replication/ReplicationQueueTest.java
   trunk/core/src/test/java/org/infinispan/replication/SyncReplTest.java
   trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferFunctionalTest.java
   trunk/core/src/test/java/org/infinispan/test/MultipleCacheManagersTest.java
   trunk/core/src/test/java/org/infinispan/tx/LocalDeadlockDetectionTest.java
   trunk/core/src/test/java/org/infinispan/tx/LocalModeTxTest.java
   trunk/core/src/test/java/org/infinispan/tx/TransactionsSpanningCaches.java
   trunk/core/src/test/java/org/infinispan/tx/TransactionsSpanningReplicatedCaches.java
   trunk/jopr-plugin/src/test/java/org/infinispan/jopr/InfinispanJoprTest.java
   trunk/tree/src/test/java/org/infinispan/api/tree/NodeMoveAPITest.java
Log:
[ISPN-152] (CacheManager to allow retrieving Configuration instances and defining configurations based on any existing config) Done as agreed on the dev mailing list.

Modified: trunk/core/src/main/java/org/infinispan/manager/CacheManager.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/manager/CacheManager.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/main/java/org/infinispan/manager/CacheManager.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -2,7 +2,6 @@
 
 import org.infinispan.Cache;
 import org.infinispan.config.Configuration;
-import org.infinispan.config.DuplicateCacheNameException;
 import org.infinispan.config.GlobalConfiguration;
 import org.infinispan.factories.annotations.NonVolatile;
 import org.infinispan.factories.scopes.Scope;
@@ -46,30 +45,63 @@
  * manager.getCache("myEntityCache"); entityCache.put("aPerson", new Person());
  * <p/>
  * Configuration myNewConfiguration = new Configuration(); myNewConfiguration.setCacheMode(Configuration.CacheMode.LOCAL);
- * manager.defineCache("myLocalCache", myNewConfiguration); Cache localCache = manager.getCache("myLocalCache");
+ * manager.defineConfiguration("myLocalCache", myNewConfiguration); Cache localCache = manager.getCache("myLocalCache");
  * </code>
  *
  * @author Manik Surtani (<a href="mailto:manik at jboss.org">manik at jboss.org</a>)
+ * @author Galder Zamarreño
  * @since 4.0
  */
 @Scope(Scopes.GLOBAL)
 @NonVolatile
 public interface CacheManager extends Lifecycle, Listenable {
    /**
-    * Defines a named cache.  Named caches can be defined by using this method, in which case the configuration passed
-    * in is used to override the default configuration used when this cache manager instance was created.
+    * Defines a named cache's configuration using the following algorithm:
     * <p/>
-    * The other way to define named caches is declaratively, in the XML file passed in to the cache manager.
+    * If cache name hasn't been defined before, this method creates a clone of the default cache's configuration, 
+    * applies a clone of the configuration overrides passed in and returns this configuration instance.
     * <p/>
-    * A combination of approaches may also be used, provided the names do not conflict.
+    * If cache name has been previously defined, this method creates a clone of this cache's existing configuration, 
+    * applies a clone of the configuration overrides passed in and returns the configuration instance.
+    * <p/>
+    * The other way to define named cache's configuration is declaratively, in the XML file passed in to the cache 
+    * manager.  This method enables you to override certain properties that have previously been defined via XML.
+    * <p/>
+    * Passing a brand new Configuration instance as configuration override without having called any of its setters
+    * will effectively return the named cache's configuration since no overrides where passed to it.
     *
-    * @param cacheName             name of cache to define
-    * @param configurationOverride configuration overrides to use
-    * @throws DuplicateCacheNameException if the name is already in use.
+    * @param cacheName              name of cache whose configuration is being defined
+    * @param configurationOverride  configuration overrides to use
+    * @return a cloned configuration instance
     */
-   void defineCache(String cacheName, Configuration configurationOverride) throws DuplicateCacheNameException;
+   Configuration defineConfiguration(String cacheName, Configuration configurationOverride);
 
    /**
+    * Defines a named cache's configuration using the following algorithm:
+    * <p/>
+    * Regardless of whether the cache name has been defined or not, this method creates a clone of the configuration 
+    * of the cache whose name matches the given template cache name, then applies a clone of the configuration overrides 
+    * passed in and finally returns this configuration instance.
+    * <p/>  
+    * The other way to define named cache's configuration is declaratively, in the XML file passed in to the cache manager.  
+    * This method enables you to override certain properties that have previously been defined via XML.
+    * <p/>
+    * Passing a brand new Configuration instance as configuration override without having called any of its setters
+    * will effectively return the named cache's configuration since no overrides where passed to it.
+    * <p/>
+    * If templateName is null or there isn't any named cache with that name, this methods works exactly like 
+    * {@link #defineConfiguration(String, Configuration)} in the sense that the base configuration used is the
+    * default cache configuration.
+    *
+    * @param cacheName              name of cache whose configuration is being defined
+    * @param templateName           name of cache to which to which apply overrides if cache name has not been previously 
+    *                               defined
+    * @param configurationOverride  configuration overrides to use
+    * @return a cloned configuration instance
+    */
+   Configuration defineConfiguration(String cacheName, String templateCacheName, Configuration configurationOverride);
+
+   /**
     * Retrieves the default cache associated with this cache manager.
     * <p/>
     * As such, this method is always guaranteed to return the default cache.
@@ -84,7 +116,8 @@
     * <p/>
     * When creating a new cache, this method will use the configuration passed in to the CacheManager on construction,
     * as a template, and then optionally apply any overrides previously defined for the named cache using the {@link
-    * #defineCache(String, org.infinispan.config.Configuration)} method, or declared in the configuration file.
+    * #defineConfiguration(String, Configuration)} or {@link #defineConfiguration(String, String, Configuration)} methods, 
+    * or declared in the configuration file.
     *
     * @param cacheName name of cache to retrieve
     * @return a cache instance identified by cacheName

Modified: trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -25,7 +25,6 @@
 import org.infinispan.Version;
 import org.infinispan.config.Configuration;
 import org.infinispan.config.ConfigurationException;
-import org.infinispan.config.DuplicateCacheNameException;
 import org.infinispan.config.GlobalConfiguration;
 import org.infinispan.config.InfinispanConfiguration;
 import org.infinispan.config.parsing.XmlConfigurationParser;
@@ -83,10 +82,11 @@
  * manager.getCache("myEntityCache"); entityCache.put("aPerson", new Person());
  * <p/>
  * Configuration myNewConfiguration = new Configuration(); myNewConfiguration.setCacheMode(Configuration.CacheMode.LOCAL);
- * manager.defineCache("myLocalCache", myNewConfiguration); Cache localCache = manager.getCache("myLocalCache");
+ * manager.defineConfiguration("myLocalCache", myNewConfiguration); Cache localCache = manager.getCache("myLocalCache");
  * </code>
  *
  * @author Manik Surtani (<a href="mailto:manik at jboss.org">manik at jboss.org</a>)
+ * @author Galder Zamarreño
  * @since 4.0
  */
 @Scope(Scopes.GLOBAL)
@@ -256,32 +256,49 @@
 
    private void initialize(XmlConfigurationParser initializedParser) {
       globalConfiguration = initializedParser.parseGlobalConfiguration();
-      configurationOverrides.putAll(initializedParser.parseNamedConfigurations());
+      for (Map.Entry<String, Configuration> entry : initializedParser.parseNamedConfigurations().entrySet()) {
+         Configuration c = globalConfiguration.getDefaultConfiguration().clone();
+         c.applyOverrides(entry.getValue());
+         configurationOverrides.put(entry.getKey(), c);
+         
+      }
       globalComponentRegistry = new GlobalComponentRegistry(globalConfiguration, this);
    }
 
-   /**
-    * Defines a named cache.  Named caches can be defined by using this method, in which case the configuration passed
-    * in is used to override the default configuration used when this cache manager instance was created.
-    * <p/>
-    * The other way to define named caches is declaratively, in the XML file passed in to the cache manager.
-    * <p/>
-    * A combination of approaches may also be used, provided the names do not conflict.
-    *
-    * @param cacheName             name of cache to define
-    * @param configurationOverride configuration overrides to use
-    * @throws DuplicateCacheNameException if the name is already in use.
-    */
-   public void defineCache(String cacheName, Configuration configurationOverride) throws DuplicateCacheNameException {
-      if (cacheName == null || configurationOverrides == null)
+   /** {@inheritDoc} */
+   public Configuration defineConfiguration(String cacheName, Configuration configurationOverride) {
+      return defineConfiguration(cacheName, configurationOverride, globalConfiguration.getDefaultConfiguration(), true);
+   }
+
+   /** {@inheritDoc} */
+   public Configuration defineConfiguration(String cacheName, String templateName, Configuration configurationOverride) {
+      if (templateName != null) {
+         Configuration c = configurationOverrides.get(templateName);
+         if (c != null)
+            return defineConfiguration(cacheName, configurationOverride, c, false);
+         return defineConfiguration(cacheName, configurationOverride);
+      } 
+      return defineConfiguration(cacheName, configurationOverride);
+   }
+
+   private Configuration defineConfiguration(String cacheName, Configuration configOverride, Configuration defaultConfigIfNotPresent, boolean checkExisting) {
+      if (cacheName == null || configOverride == null)
          throw new NullPointerException("Null arguments not allowed");
       if (cacheName.equals(DEFAULT_CACHE_NAME))
          throw new IllegalArgumentException("Cache name cannot be used as it is a reserved, internal name");
-      if (configurationOverrides.putIfAbsent(cacheName, configurationOverride.clone()) != null)
-         throw new DuplicateCacheNameException("Cache name [" + cacheName + "] already in use!");
+      if (checkExisting) {
+         Configuration existing = configurationOverrides.get(cacheName);
+         if (existing != null) {
+            existing.applyOverrides(configOverride);
+            return existing.clone();
+         }
+      } 
+      Configuration configuration = defaultConfigIfNotPresent.clone();
+      configuration.applyOverrides(configOverride.clone());
+      configurationOverrides.put(cacheName, configuration);
+      return configuration;
    }
 
-
    /**
     * Retrieves the default cache associated with this cache manager.  Note that the default cache does not need to be
     * explicitly created with {@link #createCache(String)} since it is automatically created lazily when first used.
@@ -300,7 +317,8 @@
     * <p/>
     * When creating a new cache, this method will use the configuration passed in to the CacheManager on construction,
     * as a template, and then optionally apply any overrides previously defined for the named cache using the {@link
-    * #defineCache(String, org.infinispan.config.Configuration)} method, or declared in the configuration file.
+    * #defineConfiguration(String, Configuration)} or {@link #defineConfiguration(String, String, Configuration)} methods, 
+    * or declared in the configuration file.
     *
     * @param cacheName name of cache to retrieve
     * @return a cache instance identified by cacheName
@@ -339,11 +357,11 @@
    }
 
    private Cache createCache(String cacheName) {
-      Configuration c = globalConfiguration.getDefaultConfiguration().clone();
-      if (!cacheName.equals(DEFAULT_CACHE_NAME)) {
-         Configuration overrides = configurationOverrides.get(cacheName);
-         if (overrides != null) c.applyOverrides(overrides);
-      }
+      Configuration c = null;
+      if (cacheName.equals(DEFAULT_CACHE_NAME) || !configurationOverrides.containsKey(cacheName)) 
+         c = globalConfiguration.getDefaultConfiguration().clone();
+      else 
+         c = configurationOverrides.get(cacheName);
 
       c.assertValid();
       Cache cache = new InternalCacheFactory().createCache(c, globalComponentRegistry, cacheName);

Modified: trunk/core/src/test/java/org/infinispan/api/CacheAPITest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/api/CacheAPITest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/api/CacheAPITest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -35,7 +35,7 @@
       c.setIsolationLevel(getIsolationLevel());
       c.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
       CacheManager cm = TestCacheManagerFactory.createLocalCacheManager();
-      cm.defineCache("test", c);
+      cm.defineConfiguration("test", c);
       cache = cm.getCache("test");
       return cm;
    }

Modified: trunk/core/src/test/java/org/infinispan/api/CacheClusterJoinTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/api/CacheClusterJoinTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/api/CacheClusterJoinTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -25,7 +25,7 @@
       cfg = new Configuration();
       cfg.setCacheMode(CacheMode.REPL_SYNC);
       cfg.setFetchInMemoryState(false);
-      cm1.defineCache("cache", cfg);
+      cm1.defineConfiguration("cache", cfg);
    }
 
    public void testGetMembers() throws Exception {
@@ -36,7 +36,7 @@
       Object coord = memb1.get(0);
 
       cm2 = addClusterEnabledCacheManager();
-      cm2.defineCache("cache", cfg.clone());
+      cm2.defineConfiguration("cache", cfg.clone());
       cm2.getCache("cache"); // this will make sure any lazy components are started.
       TestingUtil.blockUntilViewsReceived(50000, true, cm1, cm2);
       memb1 = cm1.getMembers();
@@ -56,7 +56,7 @@
       assert cm1.isCoordinator() : "Should be coordinator!";
 
       cm2 = addClusterEnabledCacheManager();
-      cm2.defineCache("cache", cfg.clone());
+      cm2.defineConfiguration("cache", cfg.clone());
       cm2.getCache("cache"); // this will make sure any lazy components are started.
       assert cm1.isCoordinator();
       assert !cm2.isCoordinator();

Modified: trunk/core/src/test/java/org/infinispan/api/MixedModeTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/api/MixedModeTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/api/MixedModeTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -22,10 +22,10 @@
       Configuration local = getDefaultClusteredConfig(Configuration.CacheMode.LOCAL);
 
       createClusteredCaches(2, "replSync", replSync);
-      defineCacheOnAllManagers("replAsync", replAsync);
-      defineCacheOnAllManagers("invalSync", invalSync);
-      defineCacheOnAllManagers("invalAsync", invalAsync);
-      defineCacheOnAllManagers("local", local);
+      defineConfigurationOnAllManagers("replAsync", replAsync);
+      defineConfigurationOnAllManagers("invalSync", invalSync);
+      defineConfigurationOnAllManagers("invalAsync", invalAsync);
+      defineConfigurationOnAllManagers("local", local);
 
       replSyncCache1 = cache(0, "replSync").getAdvancedCache();
       replSyncCache2 = cache(1, "replSync").getAdvancedCache();

Modified: trunk/core/src/test/java/org/infinispan/api/batch/BatchWithTMTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/api/batch/BatchWithTMTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/api/batch/BatchWithTMTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -96,7 +96,7 @@
       c.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
       c.setInvocationBatchingEnabled(true);
       assert c.getTransactionManagerLookupClass() != null : "Should have a transaction manager lookup class attached!!";
-      cm.defineCache(name, c);
+      cm.defineConfiguration(name, c);
       return cm.getCache(name);
    }
 }

Modified: trunk/core/src/test/java/org/infinispan/api/batch/BatchWithoutTMTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/api/batch/BatchWithoutTMTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/api/batch/BatchWithoutTMTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -105,7 +105,7 @@
    private Cache<String, String> createCache(boolean enableBatch, String name) {
       Configuration c = new Configuration();
       c.setInvocationBatchingEnabled(enableBatch);
-      cm.defineCache(name, c);
+      cm.defineConfiguration(name, c);
       return cm.getCache(name);
    }
 }

Modified: trunk/core/src/test/java/org/infinispan/api/mvcc/repeatable_read/WriteSkewTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/api/mvcc/repeatable_read/WriteSkewTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/api/mvcc/repeatable_read/WriteSkewTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -56,7 +56,7 @@
    public void testDontCheckWriteSkew() throws Exception {
       Configuration noWriteSkewCheck = new Configuration();
       noWriteSkewCheck.setWriteSkewCheck(false);
-      cacheManager.defineCache("noWriteSkewCheck", noWriteSkewCheck);
+      cacheManager.defineConfiguration("noWriteSkewCheck", noWriteSkewCheck);
       cache = cacheManager.getCache("noWriteSkewCheck");
       postStart();
       doTest(true);
@@ -65,7 +65,7 @@
    public void testCheckWriteSkew() throws Exception {
       Configuration writeSkewCheck = new Configuration();
       writeSkewCheck.setWriteSkewCheck(true);
-      cacheManager.defineCache("writeSkewCheck", writeSkewCheck);
+      cacheManager.defineConfiguration("writeSkewCheck", writeSkewCheck);
       cache = cacheManager.getCache("writeSkewCheck");
       postStart();
       doTest(false);

Modified: trunk/core/src/test/java/org/infinispan/interceptors/MarshalledValueInterceptorTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/interceptors/MarshalledValueInterceptorTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/interceptors/MarshalledValueInterceptorTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -39,7 +39,7 @@
 
       Configuration configuration = new Configuration();
       configuration.setUseLazyDeserialization(true);
-      cm.defineCache("someCache", configuration);
+      cm.defineConfiguration("someCache", configuration);
       Cache c = cm.getCache("someCache");
 
       assert TestingUtil.findInterceptor(c, MarshalledValueInterceptor.class) != null;
@@ -49,7 +49,7 @@
    public void testDisabledInterceptorStack() {
       Configuration cfg = new Configuration();
       cfg.setUseLazyDeserialization(false);
-      cm.defineCache("a", cfg);
+      cm.defineConfiguration("a", cfg);
       Cache c = cm.getCache("a");
       assert TestingUtil.findInterceptor(c, MarshalledValueInterceptor.class) == null;
    }

Modified: trunk/core/src/test/java/org/infinispan/jmx/ActivationAndPassivationInterceptorMBeanTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/ActivationAndPassivationInterceptorMBeanTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/jmx/ActivationAndPassivationInterceptorMBeanTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -47,7 +47,7 @@
       configuration.setExposeJmxStatistics(true);
       configuration.setCacheLoaderManagerConfig(clManagerConfig);
 
-      cacheManager.defineCache("test", configuration);
+      cacheManager.defineConfiguration("test", configuration);
       cache = cacheManager.getCache("test");
       activationInterceptorObjName = new ObjectName("ActivationAndPassivationInterceptorMBeanTest:cache-name=test(local),jmx-resource=Activation");
       passivationInterceptorObjName = new ObjectName("ActivationAndPassivationInterceptorMBeanTest:cache-name=test(local),jmx-resource=Passivation");

Modified: trunk/core/src/test/java/org/infinispan/jmx/CacheLoaderAndCacheStoreInterceptorMBeanTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/CacheLoaderAndCacheStoreInterceptorMBeanTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/jmx/CacheLoaderAndCacheStoreInterceptorMBeanTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -45,7 +45,7 @@
       configuration.setExposeJmxStatistics(true);
       configuration.setCacheLoaderManagerConfig(clManagerConfig);
 
-      cacheManager.defineCache("test", configuration);
+      cacheManager.defineConfiguration("test", configuration);
       cache = cacheManager.getCache("test");
       loaderInterceptorObjName = new ObjectName("CacheLoaderAndCacheStoreInterceptorMBeanTest:cache-name=test(local),jmx-resource=CacheLoader");
       storeInterceptorObjName = new ObjectName("CacheLoaderAndCacheStoreInterceptorMBeanTest:cache-name=test(local),jmx-resource=CacheStore");

Modified: trunk/core/src/test/java/org/infinispan/jmx/CacheManagerMBeanTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/CacheManagerMBeanTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/jmx/CacheManagerMBeanTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -43,9 +43,9 @@
       assert server.getAttribute(name, "DefinedCacheNames").equals("[]");
 
       //now define some new caches
-      cacheManager.defineCache("a", new Configuration());
-      cacheManager.defineCache("b", new Configuration());
-      cacheManager.defineCache("c", new Configuration());
+      cacheManager.defineConfiguration("a", new Configuration());
+      cacheManager.defineConfiguration("b", new Configuration());
+      cacheManager.defineConfiguration("c", new Configuration());
       assert server.getAttribute(name, "CreatedCacheCount").equals("1");
       assert server.getAttribute(name, "DefinedCacheCount").equals("3");
       String attribute = (String) server.getAttribute(name, "DefinedCacheNames");

Modified: trunk/core/src/test/java/org/infinispan/jmx/CacheMgmtInterceptorMBeanTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/CacheMgmtInterceptorMBeanTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/jmx/CacheMgmtInterceptorMBeanTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -32,7 +32,7 @@
 
       Configuration configuration = getDefaultClusteredConfig(Configuration.CacheMode.LOCAL);
       configuration.setExposeJmxStatistics(true);
-      cacheManager.defineCache("test", configuration);
+      cacheManager.defineConfiguration("test", configuration);
       cache = cacheManager.getCache("test");
       mgmtInterceptor = new ObjectName("CacheMgmtInterceptorMBeanTest:cache-name=test(local),jmx-resource=Statistics");
 

Modified: trunk/core/src/test/java/org/infinispan/jmx/ComponentsJmxRegistrationTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/ComponentsJmxRegistrationTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/jmx/ComponentsJmxRegistrationTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -53,7 +53,7 @@
       cm.start();
       Configuration configuration = config();
       configuration.setCacheMode(Configuration.CacheMode.LOCAL);
-      cm.defineCache("first", configuration);
+      cm.defineConfiguration("first", configuration);
       Cache first = cm.getCache("first");
 
       ComponentsJmxRegistration regComponents = buildRegistrator(first);
@@ -80,7 +80,7 @@
       cm.start();
       Configuration configurationOverride = config();
       configurationOverride.setCacheMode(Configuration.CacheMode.REPL_SYNC);
-      cm.defineCache("first", configurationOverride);
+      cm.defineConfiguration("first", configurationOverride);
       Cache first = cm.getCache("first");
 
       ComponentsJmxRegistration regComponents = buildRegistrator(first);
@@ -103,8 +103,8 @@
       Configuration local = config();
       replicated.setCacheMode(Configuration.CacheMode.REPL_SYNC);
       local.setCacheMode(Configuration.CacheMode.LOCAL);
-      cm.defineCache("replicated", replicated);
-      cm.defineCache("local", local);
+      cm.defineConfiguration("replicated", replicated);
+      cm.defineConfiguration("local", local);
       Cache replicatedCache = cm.getCache("replicated");
       Cache localCache = cm.getCache("local");
 

Modified: trunk/core/src/test/java/org/infinispan/jmx/JmxStatsFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/JmxStatsFunctionalTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/jmx/JmxStatsFunctionalTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -45,13 +45,13 @@
       cm = TestCacheManagerFactory.createCacheManager(globalConfiguration);
 
       Configuration localCache = config();//local by default
-      cm.defineCache("local_cache", localCache);
+      cm.defineConfiguration("local_cache", localCache);
       Configuration remote1 = config();//local by default
       remote1.setCacheMode(Configuration.CacheMode.REPL_SYNC);
-      cm.defineCache("remote1", remote1);
+      cm.defineConfiguration("remote1", remote1);
       Configuration remote2 = config();//local by default
       remote2.setCacheMode(Configuration.CacheMode.INVALIDATION_ASYNC);
-      cm.defineCache("remote2", remote2);
+      cm.defineConfiguration("remote2", remote2);
 
       cm.getCache("local_cache");
       cm.getCache("remote1");
@@ -81,7 +81,7 @@
       cm = TestCacheManagerFactory.createCacheManager(globalConfiguration);
 
       Configuration localCache = config();//local by default
-      cm.defineCache("local_cache", localCache);
+      cm.defineConfiguration("local_cache", localCache);
       cm.getCache("local_cache");
 
       assert existsObject("mircea_jmx_domain:cache-name=local_cache(local),jmx-resource=Statistics");
@@ -97,11 +97,11 @@
 
       Configuration localCache = config();//local by default
       localCache.setExposeJmxStatistics(false);
-      cm.defineCache("local_cache", localCache);
+      cm.defineConfiguration("local_cache", localCache);
       Configuration remote1 = config();//local by default
       remote1.setExposeJmxStatistics(false);
       remote1.setCacheMode(Configuration.CacheMode.REPL_SYNC);
-      cm.defineCache("remote1", remote1);
+      cm.defineConfiguration("remote1", remote1);
 
       cm.getCache("local_cache");
       cm.getCache("remote1");
@@ -120,11 +120,11 @@
 
       Configuration localCache = config();//local by default
       localCache.setExposeJmxStatistics(true);
-      cm.defineCache("local_cache", localCache);
+      cm.defineConfiguration("local_cache", localCache);
       Configuration remote1 = config();//local by default
       remote1.setExposeJmxStatistics(true);
       remote1.setCacheMode(Configuration.CacheMode.REPL_SYNC);
-      cm.defineCache("remote1", remote1);
+      cm.defineConfiguration("remote1", remote1);
 
       cm.getCache("local_cache");
       cm.getCache("remote1");
@@ -141,7 +141,7 @@
       cm = TestCacheManagerFactory.createCacheManager(globalConfiguration);
       Configuration localCache = config();//local by default
       localCache.setExposeJmxStatistics(true);
-      cm.defineCache("local_cache", localCache);
+      cm.defineConfiguration("local_cache", localCache);
       cm.getCache("local_cache");
       assert existsObject("infinispan:cache-name=local_cache(local),jmx-resource=Statistics");
 
@@ -152,7 +152,7 @@
       cm2 = TestCacheManagerFactory.createCacheManager(globalConfiguration);
       Configuration localCache2 = config();//local by default
       localCache2.setExposeJmxStatistics(true);
-      cm2.defineCache("local_cache", localCache);
+      cm2.defineConfiguration("local_cache", localCache);
       try {
          cm2.getCache("local_cache");
          assert false : "exception expected";
@@ -170,7 +170,7 @@
       cm = TestCacheManagerFactory.createCacheManager(globalConfiguration);
       Configuration localCache = config();//local by default
       localCache.setExposeJmxStatistics(true);
-      cm.defineCache("local_cache", localCache);
+      cm.defineConfiguration("local_cache", localCache);
       cm.getCache("local_cache");
       assert existsObject("infinispan:cache-name=local_cache(local),jmx-resource=Statistics");
 
@@ -181,7 +181,7 @@
       cm2 = TestCacheManagerFactory.createCacheManager(globalConfiguration2);
       Configuration localCache2 = config();//local by default
       localCache2.setExposeJmxStatistics(true);
-      cm2.defineCache("local_cache", localCache);
+      cm2.defineConfiguration("local_cache", localCache);
       cm2.getCache("local_cache");
       assert existsObject("infinispan2:cache-name=local_cache(local),jmx-resource=Statistics");
 
@@ -192,7 +192,7 @@
       cm3 = TestCacheManagerFactory.createCacheManager(globalConfiguration3);
       Configuration localCache3 = config();//local by default
       localCache3.setExposeJmxStatistics(true);
-      cm3.defineCache("local_cache", localCache);
+      cm3.defineConfiguration("local_cache", localCache);
       cm3.getCache("local_cache");
       assert existsObject("infinispan3:cache-name=local_cache(local),jmx-resource=Statistics");
    }
@@ -205,7 +205,7 @@
       cm = TestCacheManagerFactory.createCacheManager(globalConfiguration);
       Configuration localCache = config();//local by default
       localCache.setExposeJmxStatistics(true);
-      cm.defineCache("local_cache", localCache);
+      cm.defineConfiguration("local_cache", localCache);
       cm.getCache("local_cache");
       assert existsObject("infinispan:cache-name=local_cache(local),jmx-resource=Statistics");
 
@@ -221,7 +221,7 @@
       globalConfiguration.setMBeanServerLookup(PerThreadMBeanServerLookup.class.getName());
       cm = TestCacheManagerFactory.createCacheManager(globalConfiguration);
       Configuration localCache = config();//local by default
-      cm.defineCache("local_cache", localCache);
+      cm.defineConfiguration("local_cache", localCache);
       cm.getCache("local_cache");
       assert existsObject("infinispan:cache-name=local_cache(local),jmx-resource=Statistics");
 
@@ -234,7 +234,7 @@
       Configuration remoteCache = new Configuration();
       remoteCache.setExposeJmxStatistics(true);
       remoteCache.setCacheMode(Configuration.CacheMode.REPL_SYNC);
-      cm2.defineCache("remote_cache", remoteCache);
+      cm2.defineConfiguration("remote_cache", remoteCache);
       cm2.getCache("remote_cache");
       assert existsObject("infinispan2:cache-name=remote_cache(repl_sync),jmx-resource=Statistics");
 

Modified: trunk/core/src/test/java/org/infinispan/jmx/MvccLockManagerMBeanTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/MvccLockManagerMBeanTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/jmx/MvccLockManagerMBeanTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -37,7 +37,7 @@
       configuration.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
       configuration.setConcurrencyLevel(CONCURRENCY_LEVEL);
 
-      cacheManager.defineCache("test", configuration);
+      cacheManager.defineConfiguration("test", configuration);
       cache = cacheManager.getCache("test");
       lockManagerObjName = new ObjectName("MvccLockManagerMBeanTest:cache-name=test(local),jmx-resource=LockManager");
 

Modified: trunk/core/src/test/java/org/infinispan/jmx/RpcManagerMBeanTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/RpcManagerMBeanTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/jmx/RpcManagerMBeanTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -57,7 +57,7 @@
       Configuration config = getDefaultClusteredConfig(Configuration.CacheMode.REPL_SYNC);
       config.setExposeJmxStatistics(true);
       String cachename = "repl_sync_cache";
-      defineCacheOnAllManagers(cachename, config);
+      defineConfigurationOnAllManagers(cachename, config);
       cache1 = manager(0).getCache(cachename);
       cache2 = manager(1).getCache(cachename);
       mBeanServer = PerThreadMBeanServerLookup.getThreadMBeanServer();

Modified: trunk/core/src/test/java/org/infinispan/jmx/TxInterceptorMBeanTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/TxInterceptorMBeanTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/jmx/TxInterceptorMBeanTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -38,8 +38,8 @@
       Configuration configuration = getDefaultClusteredConfig(Configuration.CacheMode.REPL_SYNC);
       configuration.setExposeJmxStatistics(true);
       configuration.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
-      cacheManager1.defineCache("test", configuration);
-      cacheManager2.defineCache("test", configuration.clone());
+      cacheManager1.defineConfiguration("test", configuration);
+      cacheManager2.defineConfiguration("test", configuration.clone());
       cache1 = cacheManager1.getCache("test");
       cache2 = cacheManager2.getCache("test");
       txInterceptor = new ObjectName("TxInterceptorMBeanTest:cache-name=test(repl_sync),jmx-resource=Transactions");

Modified: trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreFunctionalTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/loaders/BaseCacheStoreFunctionalTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -64,8 +64,8 @@
          CacheLoaderManagerConfig clmConfig = new CacheLoaderManagerConfig();
          clmConfig.setCacheLoaderConfigs(Collections.singletonList((CacheLoaderConfig)csConfig));
          configuration.getDefaultConfiguration().setCacheLoaderManagerConfig(clmConfig);
-         localCacheManager.defineCache("first", new Configuration());
-         localCacheManager.defineCache("second", new Configuration());
+         localCacheManager.defineConfiguration("first", new Configuration());
+         localCacheManager.defineConfiguration("second", new Configuration());
 
          Cache first = localCacheManager.getCache("first");
          Cache second = localCacheManager.getCache("second");

Modified: trunk/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/loaders/CacheLoaderFunctionalTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -232,7 +232,7 @@
       Configuration preloadingCfg = cfg.clone();
       preloadingCfg.getCacheLoaderManagerConfig().setPreload(true);
       ((DummyInMemoryCacheStore.Cfg) preloadingCfg.getCacheLoaderManagerConfig().getFirstCacheLoaderConfig()).setStore("preloadingCache");
-      cm.defineCache("preloadingCache", preloadingCfg);
+      cm.defineConfiguration("preloadingCache", preloadingCfg);
       Cache preloadingCache = cm.getCache("preloadingCache");
       CacheStore preloadingStore = TestingUtil.extractComponent(preloadingCache, CacheLoaderManager.class).getCacheStore();
 
@@ -275,7 +275,7 @@
       CacheStoreConfig firstCacheLoaderConfig = (CacheStoreConfig) purgingCfg.getCacheLoaderManagerConfig().getFirstCacheLoaderConfig();
       firstCacheLoaderConfig.setPurgeOnStartup(true);
       ((DummyInMemoryCacheStore.Cfg) purgingCfg.getCacheLoaderManagerConfig().getFirstCacheLoaderConfig()).setStore("purgingCache");
-      cm.defineCache("purgingCache", purgingCfg);
+      cm.defineConfiguration("purgingCache", purgingCfg);
       Cache purgingCache = cm.getCache("purgingCache");
       CacheStore purgingStore = TestingUtil.extractComponent(purgingCache, CacheLoaderManager.class).getCacheStore();
 

Modified: trunk/core/src/test/java/org/infinispan/loaders/ClusterCacheLoaderTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loaders/ClusterCacheLoaderTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/loaders/ClusterCacheLoaderTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -41,8 +41,8 @@
       config2.setCacheLoaderManagerConfig(clMngrConfig2);
 
 
-      cacheManager1.defineCache("clusteredCl", config1);
-      cacheManager2.defineCache("clusteredCl", config2);
+      cacheManager1.defineConfiguration("clusteredCl", config1);
+      cacheManager2.defineConfiguration("clusteredCl", config2);
       cache1 = cache(0, "clusteredCl");
       cache2 = cache(1, "clusteredCl");
       CacheLoaderManager manager2 = cache2.getAdvancedCache().getComponentRegistry().getComponent(CacheLoaderManager.class);

Modified: trunk/core/src/test/java/org/infinispan/loaders/decorators/SingletonStoreTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/loaders/decorators/SingletonStoreTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/loaders/decorators/SingletonStoreTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -57,11 +57,11 @@
       conf.setCacheLoaderManagerConfig(pushingCfg);
 
       // cannot define on ALL cache managers since the same dummy in memory CL bin will be used!
-      cm0.defineCache("pushing", conf);
+      cm0.defineConfiguration("pushing", conf);
       ((DummyInMemoryCacheStore.Cfg) conf.getCacheLoaderManagerConfig().getFirstCacheLoaderConfig()).setStore("Store-" + storeCounter.getAndIncrement());
-      cm1.defineCache("pushing", conf);
+      cm1.defineConfiguration("pushing", conf);
       ((DummyInMemoryCacheStore.Cfg) conf.getCacheLoaderManagerConfig().getFirstCacheLoaderConfig()).setStore("Store-" + storeCounter.getAndIncrement());
-      cm2.defineCache("pushing", conf);
+      cm2.defineConfiguration("pushing", conf);
 
       conf = getDefaultClusteredConfig(Configuration.CacheMode.REPL_SYNC);
       cfg = new DummyInMemoryCacheStore.Cfg();
@@ -75,11 +75,11 @@
       conf.setCacheLoaderManagerConfig(nonPushingCfg);
 
       // cannot define on ALL cache managers since the same dummy in memory CL bin will be used!
-      cm0.defineCache("nonPushing", conf);
+      cm0.defineConfiguration("nonPushing", conf);
       ((DummyInMemoryCacheStore.Cfg) conf.getCacheLoaderManagerConfig().getFirstCacheLoaderConfig()).setStore("Store-" + storeCounter.getAndIncrement());
-      cm1.defineCache("nonPushing", conf);
+      cm1.defineConfiguration("nonPushing", conf);
       ((DummyInMemoryCacheStore.Cfg) conf.getCacheLoaderManagerConfig().getFirstCacheLoaderConfig()).setStore("Store-" + storeCounter.getAndIncrement());
-      cm2.defineCache("nonPushing", conf);
+      cm2.defineConfiguration("nonPushing", conf);
    }
 
    private Cache[] getCaches(String name) {

Modified: trunk/core/src/test/java/org/infinispan/manager/CacheManagerComponentRegistryTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/manager/CacheManagerComponentRegistryTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/manager/CacheManagerComponentRegistryTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -44,7 +44,7 @@
 
       Configuration overrides = new Configuration();
       overrides.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
-      cm.defineCache("transactional", overrides);
+      cm.defineConfiguration("transactional", overrides);
       Cache transactional = cm.getCache("transactional");
 
       // assert components.
@@ -70,7 +70,7 @@
 
       Configuration overrides = new Configuration();
       overrides.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
-      cm.defineCache("transactional", overrides);
+      cm.defineConfiguration("transactional", overrides);
       Cache transactional = cm.getCache("transactional");
 
       // assert components.
@@ -88,7 +88,7 @@
 
       Configuration overrides = new Configuration();
       overrides.setInvocationBatchingEnabled(true);
-      cm.defineCache("overridden", overrides);
+      cm.defineConfiguration("overridden", overrides);
       Cache overridden = cm.getCache("overridden");
 
       // assert components.

Modified: trunk/core/src/test/java/org/infinispan/manager/CacheManagerTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/manager/CacheManagerTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/manager/CacheManagerTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -3,8 +3,8 @@
 import org.infinispan.Cache;
 import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.infinispan.test.TestingUtil;
+import org.infinispan.util.concurrent.IsolationLevel;
 import org.infinispan.config.Configuration;
-import org.infinispan.config.DuplicateCacheNameException;
 import org.infinispan.lifecycle.ComponentStatus;
 import org.testng.annotations.Test;
 
@@ -22,12 +22,11 @@
          assert cm.getCache().getName().equals(DefaultCacheManager.DEFAULT_CACHE_NAME);
 
          try {
-            cm.defineCache(DefaultCacheManager.DEFAULT_CACHE_NAME, new Configuration());
+            cm.defineConfiguration(DefaultCacheManager.DEFAULT_CACHE_NAME, new Configuration());
             assert false : "Should fail";
          }
          catch (IllegalArgumentException e) {
-            // ok
-            assert true : "Allowed";
+            assert true; // ok
          }
       } finally {
          TestingUtil.killCacheManagers(cm);
@@ -38,16 +37,9 @@
       CacheManager cm = TestCacheManagerFactory.createLocalCacheManager();
       try {
          Configuration c = new Configuration();
-
-         cm.defineCache("aCache", c);
-         try {
-            cm.defineCache("aCache", c);
-            assert false : "Should fail";
-         }
-         catch (DuplicateCacheNameException cnee) {
-            // expected
-            assert true : "Expected";
-         }
+         Configuration firstDef = cm.defineConfiguration("aCache", c);
+         Configuration secondDef = cm.defineConfiguration("aCache", c);
+         assert firstDef.equals(secondDef);
       } finally {
          TestingUtil.killCacheManagers(cm);
       }
@@ -73,4 +65,64 @@
          TestingUtil.killCacheManagers(cm);
       }
    }
+
+   public void testDefiningConfigurationValidation() {
+      CacheManager cm = TestCacheManagerFactory.createLocalCacheManager();
+      try {
+         cm.defineConfiguration("cache1", null);
+         assert false : "Should fail";
+      } catch(NullPointerException npe) {
+         assert npe.getMessage() != null;
+      }
+      
+      try {
+         cm.defineConfiguration(null, null);
+         assert false : "Should fail";
+      } catch(NullPointerException npe) {
+         assert npe.getMessage() != null;
+      }
+      
+      try {
+         cm.defineConfiguration(null, new Configuration());
+         assert false : "Should fail";
+      } catch(NullPointerException npe) {
+         assert npe.getMessage() != null;
+      }
+      
+      Configuration c = cm.defineConfiguration("cache1", null, new Configuration());
+      assert c.equals(cm.getGlobalConfiguration().getDefaultConfiguration());
+      
+      c = cm.defineConfiguration("cache1", "does-not-exist-cache", new Configuration());
+      assert c.equals(cm.getGlobalConfiguration().getDefaultConfiguration());
+   }
+
+   public void testDefiningConfigurationWithTemplateName() {
+      CacheManager cm = TestCacheManagerFactory.createLocalCacheManager();
+      
+      Configuration c = new Configuration();
+      c.setIsolationLevel(IsolationLevel.NONE);
+      Configuration oneCacheConfiguration = cm.defineConfiguration("oneCache", c);
+      assert !oneCacheConfiguration.equals(c);
+      assert oneCacheConfiguration.getIsolationLevel().equals(IsolationLevel.NONE);
+      
+      c = new Configuration();
+      Configuration secondCacheConfiguration = cm.defineConfiguration("secondCache", "oneCache", c);
+      assert oneCacheConfiguration.equals(secondCacheConfiguration);
+      assert secondCacheConfiguration.getIsolationLevel().equals(IsolationLevel.NONE);
+      
+      c = new Configuration();
+      c.setIsolationLevel(IsolationLevel.SERIALIZABLE);
+      Configuration anotherSecondCacheConfiguration = cm.defineConfiguration("secondCache", "oneCache", c);
+      assert !secondCacheConfiguration.equals(anotherSecondCacheConfiguration);
+      assert anotherSecondCacheConfiguration.getIsolationLevel().equals(IsolationLevel.SERIALIZABLE);
+      assert secondCacheConfiguration.getIsolationLevel().equals(IsolationLevel.NONE);
+      
+      c = new Configuration();
+      c.setExpirationMaxIdle(Long.MAX_VALUE);
+      Configuration yetAnotherSecondCacheConfiguration = cm.defineConfiguration("secondCache", "oneCache", c);
+      assert yetAnotherSecondCacheConfiguration.getIsolationLevel().equals(IsolationLevel.NONE);
+      assert yetAnotherSecondCacheConfiguration.getExpirationMaxIdle() == Long.MAX_VALUE;
+      assert secondCacheConfiguration.getIsolationLevel().equals(IsolationLevel.NONE);
+      assert anotherSecondCacheConfiguration.getIsolationLevel().equals(IsolationLevel.SERIALIZABLE);
+   }
 }

Modified: trunk/core/src/test/java/org/infinispan/manager/CacheManagerXmlConfigurationTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/manager/CacheManagerXmlConfigurationTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/manager/CacheManagerXmlConfigurationTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -3,7 +3,6 @@
 import org.infinispan.Cache;
 import org.infinispan.test.TestingUtil;
 import org.infinispan.config.Configuration;
-import org.infinispan.config.DuplicateCacheNameException;
 import org.infinispan.remoting.rpc.RpcManager;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
@@ -109,13 +108,10 @@
 
       assert cm.getCache() != null;
       assert cm.getCache("c1") != null;
-      try {
-         cm.defineCache("c1", new Configuration());
-         assert false : "Should fail";
-      }
-      catch (DuplicateCacheNameException expected) {
-
-      }
+      Configuration c1Config = cm.getCache("c1").getConfiguration();
+      assert c1Config != null;
+      Configuration redefinedConfig = cm.defineConfiguration("c1", new Configuration());
+      assert c1Config.equals(redefinedConfig);
    }
 }
 

Modified: trunk/core/src/test/java/org/infinispan/marshall/MarshalledValueTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/marshall/MarshalledValueTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/marshall/MarshalledValueTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -360,7 +360,7 @@
       clmc.setCacheLoaderConfigs(Collections.singletonList((CacheLoaderConfig) clc));
       cacheCofig.setCacheLoaderManagerConfig(clmc);
 
-      defineCacheOnAllManagers("replSync2", cacheCofig);
+      defineConfigurationOnAllManagers("replSync2", cacheCofig);
       cache1 = cache(0, "replSync2");
       cache2 = cache(1, "replSync2");
 

Modified: trunk/core/src/test/java/org/infinispan/notifications/CacheListenerCacheLoaderTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/notifications/CacheListenerCacheLoaderTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/notifications/CacheListenerCacheLoaderTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -32,12 +32,12 @@
       DummyInMemoryCacheStore.Cfg clc = new DummyInMemoryCacheStore.Cfg("no_passivation");
       clmc.addCacheLoaderConfig(clc);
       c.setCacheLoaderManagerConfig(clmc);
-      cm.defineCache("no_passivation", c);
+      cm.defineConfiguration("no_passivation", c);
 
       c = c.clone();
       ((DummyInMemoryCacheStore.Cfg) c.getCacheLoaderManagerConfig().getFirstCacheLoaderConfig()).setStore("passivation");
       c.getCacheLoaderManagerConfig().setPassivation(true);
-      cm.defineCache("passivation", c);
+      cm.defineConfiguration("passivation", c);
    }
 
    @AfterMethod

Modified: trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -28,8 +28,8 @@
       Configuration c = new Configuration();
       c.setCacheMode(Configuration.CacheMode.REPL_SYNC);
       c.setFetchInMemoryState(false);
-      cm1.defineCache("cache", c);
-      cm2.defineCache("cache", c);
+      cm1.defineConfiguration("cache", c);
+      cm2.defineConfiguration("cache", c);
 
       cm1.getCache("cache");
 
@@ -60,7 +60,7 @@
       CacheManagerNotifier mockNotifier = createMock(CacheManagerNotifier.class);
       CacheManagerNotifier origNotifier = TestingUtil.replaceComponent(cm1, CacheManagerNotifier.class, mockNotifier, true);
       try {
-         cm1.defineCache("testCache", new Configuration());
+         cm1.defineConfiguration("testCache", new Configuration());
          mockNotifier.notifyCacheStarted("testCache");
          replay(mockNotifier);
          // start a second cache.

Modified: trunk/core/src/test/java/org/infinispan/profiling/AbstractProfileTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/profiling/AbstractProfileTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/profiling/AbstractProfileTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -17,11 +17,11 @@
       Configuration cfg = new Configuration();
       cfg.setConcurrencyLevel(2000);
       cacheManager = new DefaultCacheManager(GlobalConfiguration.getClusteredDefault());
-      cacheManager.defineCache(LOCAL_CACHE_NAME, cfg);
+      cacheManager.defineConfiguration(LOCAL_CACHE_NAME, cfg);
       Configuration replCfg = cfg.clone();
       replCfg.setCacheMode(Configuration.CacheMode.REPL_SYNC);
       replCfg.setFetchInMemoryState(false);
-      cacheManager.defineCache(REPL_SYNC_CACHE_NAME, replCfg);
+      cacheManager.defineConfiguration(REPL_SYNC_CACHE_NAME, replCfg);
       return cacheManager;
    }
 }

Modified: trunk/core/src/test/java/org/infinispan/profiling/DeadlockDetectionPerformanceTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/profiling/DeadlockDetectionPerformanceTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/profiling/DeadlockDetectionPerformanceTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -131,7 +131,7 @@
             cm = TestCacheManagerFactory.createClusteredCacheManager();
             Configuration configuration = getConfiguration();
             configuration.setCacheMode(Configuration.CacheMode.REPL_SYNC);
-            cm.defineCache("test", configuration);
+            cm.defineConfiguration("test", configuration);
             Cache distCache = cm.getCache("test");
             ExecutorThread executorThread = new ExecutorThread(startLatch, distCache);
             executorThreads.add(executorThread);
@@ -151,7 +151,7 @@
       CacheManager cm = TestCacheManagerFactory.createLocalCacheManager();
       try {
          Configuration configuration = getConfiguration();
-         cm.defineCache("test", configuration);
+         cm.defineConfiguration("test", configuration);
          Cache localCache = cm.getCache("test");
 
          CountDownLatch startLatch = new CountDownLatch(1);

Modified: trunk/core/src/test/java/org/infinispan/replication/ReplicationQueueTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/replication/ReplicationQueueTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/replication/ReplicationQueueTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -48,11 +48,11 @@
       config.setReplQueueInterval(REPL_QUEUE_INTERVAL);
       config.setReplQueueMaxElements(REPL_QUEUE_MAX_ELEMENTS);
       creationTime = System.currentTimeMillis();
-      manager(0).defineCache("replQueue", config);
+      manager(0).defineConfiguration("replQueue", config);
 
       Configuration conf2 = config.clone();
       conf2.setUseReplQueue(false);
-      manager(1).defineCache("replQueue", conf2);
+      manager(1).defineConfiguration("replQueue", conf2);
 
       cache1 = cache(0, "replQueue");
       cache2 = cache(1, "replQueue");

Modified: trunk/core/src/test/java/org/infinispan/replication/SyncReplTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/replication/SyncReplTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/replication/SyncReplTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -65,7 +65,7 @@
       assert cache2.isEmpty();
 
       Configuration newConf = getDefaultClusteredConfig(Configuration.CacheMode.REPL_SYNC);
-      defineCacheOnAllManagers("newCache", newConf);
+      defineConfigurationOnAllManagers("newCache", newConf);
       Cache altCache1 = manager(0).getCache("newCache");
       Cache altCache2 = manager(1).getCache("newCache");
 
@@ -95,7 +95,7 @@
       assert cache2.isEmpty();
 
       Configuration newConf = getDefaultClusteredConfig(Configuration.CacheMode.REPL_SYNC);
-      defineCacheOnAllManagers("newCache2", newConf);
+      defineConfigurationOnAllManagers("newCache2", newConf);
       Cache altCache1 = manager(0).getCache("newCache2");
 
       try {
@@ -123,7 +123,7 @@
       List<Response> emptyResponses = Collections.emptyList();
       try {
          Configuration asyncCache = getDefaultClusteredConfig(Configuration.CacheMode.REPL_ASYNC);
-         defineCacheOnAllManagers("asyncCache", asyncCache);
+         defineConfigurationOnAllManagers("asyncCache", asyncCache);
          Cache asyncCache1 = manager(0).getCache("asyncCache");
 
          // replace the transport with a mock object

Modified: trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferFunctionalTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/statetransfer/StateTransferFunctionalTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -59,7 +59,7 @@
 
    protected CacheManager createCacheManager() {
       CacheManager cm = addClusterEnabledCacheManager();
-      cm.defineCache(cacheName, config.clone());
+      cm.defineConfiguration(cacheName, config.clone());
       return cm;
    }
 

Modified: trunk/core/src/test/java/org/infinispan/test/MultipleCacheManagersTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/test/MultipleCacheManagersTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/test/MultipleCacheManagersTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -119,9 +119,9 @@
       return cm;
    }
 
-   protected void defineCacheOnAllManagers(String cacheName, Configuration c) {
+   protected void defineConfigurationOnAllManagers(String cacheName, Configuration c) {
       for (CacheManager cm : cacheManagers) {
-         cm.defineCache(cacheName, c);
+         cm.defineConfiguration(cacheName, c);
       }
    }
 
@@ -129,7 +129,7 @@
       List<Cache<K, V>> caches = new ArrayList<Cache<K, V>>(numMembersInCluster);
       for (int i = 0; i < numMembersInCluster; i++) {
          CacheManager cm = addClusterEnabledCacheManager();
-         cm.defineCache(cacheName, c);
+         cm.defineConfiguration(cacheName, c);
          Cache<K, V> cache = cm.getCache(cacheName);
          caches.add(cache);
       }

Modified: trunk/core/src/test/java/org/infinispan/tx/LocalDeadlockDetectionTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/tx/LocalDeadlockDetectionTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/tx/LocalDeadlockDetectionTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -37,7 +37,7 @@
       configuration.setEnableDeadlockDetection(true);
       configuration.setUseLockStriping(false);
       configuration.setExposeJmxStatistics(true);
-      cacheManager.defineCache("test", configuration);
+      cacheManager.defineConfiguration("test", configuration);
       cache = cacheManager.getCache("test");
       lockManager = (DeadlockDetectingLockManager) TestingUtil.extractLockManager(cache);
       return cacheManager;

Modified: trunk/core/src/test/java/org/infinispan/tx/LocalModeTxTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/tx/LocalModeTxTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/tx/LocalModeTxTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -42,7 +42,7 @@
       Configuration cfg = new Configuration();
       cfg.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
       CacheManager cm = TestCacheManagerFactory.createLocalCacheManager();
-      cm.defineCache("test", cfg);
+      cm.defineConfiguration("test", cfg);
       c = cm.getCache("test");
       return cm;
    }

Modified: trunk/core/src/test/java/org/infinispan/tx/TransactionsSpanningCaches.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/tx/TransactionsSpanningCaches.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/tx/TransactionsSpanningCaches.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -19,8 +19,8 @@
       Configuration c = new Configuration();
       c.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
       CacheManager cm = TestCacheManagerFactory.createCacheManager(c);
-      cm.defineCache("c1", c);
-      cm.defineCache("c2", c);
+      cm.defineConfiguration("c1", c);
+      cm.defineConfiguration("c2", c);
       return cm;
    }
 

Modified: trunk/core/src/test/java/org/infinispan/tx/TransactionsSpanningReplicatedCaches.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/tx/TransactionsSpanningReplicatedCaches.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/core/src/test/java/org/infinispan/tx/TransactionsSpanningReplicatedCaches.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -28,8 +28,8 @@
       Configuration c = getDefaultClusteredConfig(Configuration.CacheMode.REPL_SYNC);
       c.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
 
-      defineCacheOnAllManagers("c1", c);
-      defineCacheOnAllManagers("c2", c);
+      defineConfigurationOnAllManagers("c1", c);
+      defineConfigurationOnAllManagers("c2", c);
    }
 
    public void testCommitSpanningCaches() throws Exception {

Modified: trunk/jopr-plugin/src/test/java/org/infinispan/jopr/InfinispanJoprTest.java
===================================================================
--- trunk/jopr-plugin/src/test/java/org/infinispan/jopr/InfinispanJoprTest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/jopr-plugin/src/test/java/org/infinispan/jopr/InfinispanJoprTest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -50,7 +50,7 @@
       config.setEvictionMaxEntries(123);
       config.setExpirationMaxIdle(180000);
       
-      manager.defineCache(MY_CUSTOM_CACHE, config);
+      manager.defineConfiguration(MY_CUSTOM_CACHE, config);
       Cache<String,String> cache = manager.getCache(MY_CUSTOM_CACHE);
 
       cache.put("myKey", "myValue");

Modified: trunk/tree/src/test/java/org/infinispan/api/tree/NodeMoveAPITest.java
===================================================================
--- trunk/tree/src/test/java/org/infinispan/api/tree/NodeMoveAPITest.java	2009-08-12 13:29:37 UTC (rev 659)
+++ trunk/tree/src/test/java/org/infinispan/api/tree/NodeMoveAPITest.java	2009-08-12 15:50:49 UTC (rev 660)
@@ -52,7 +52,7 @@
       c.setFetchInMemoryState(false);
       c.setInvocationBatchingEnabled(true);
       c.setLockAcquisitionTimeout(1000);
-      cm.defineCache("test", c);
+      cm.defineConfiguration("test", c);
       cache = cm.getCache("test");
       tm = TestingUtil.extractComponent(cache, TransactionManager.class);
       treeCache = new TreeCacheImpl(cache);



More information about the infinispan-commits mailing list