[infinispan-commits] Infinispan SVN: r825 - in trunk/core/src: main/java/org/infinispan/remoting/transport and 1 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Wed Sep 16 07:53:03 EDT 2009


Author: galder.zamarreno at jboss.com
Date: 2009-09-16 07:53:03 -0400 (Wed, 16 Sep 2009)
New Revision: 825

Modified:
   trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java
   trunk/core/src/main/java/org/infinispan/remoting/transport/Transport.java
   trunk/core/src/test/java/org/infinispan/jmx/JmxStatsFunctionalTest.java
Log:
Removed TODO by fixing the actual test case. I've also added one that deals with GlobalConfiguration clone instances and for that, I had to extend GC.clone() implementation. Finally, removed a comment that I had added previously in Transport.

Modified: trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java	2009-09-16 01:21:58 UTC (rev 824)
+++ trunk/core/src/main/java/org/infinispan/config/GlobalConfiguration.java	2009-09-16 11:53:03 UTC (rev 825)
@@ -404,7 +404,16 @@
    @Override
    public GlobalConfiguration clone() {
       try {
-         return (GlobalConfiguration) super.clone();
+         GlobalConfiguration dolly = (GlobalConfiguration) super.clone();
+         if (asyncListenerExecutor != null) dolly.asyncListenerExecutor = asyncListenerExecutor.clone();
+         if (asyncTransportExecutor != null) dolly.asyncTransportExecutor = asyncTransportExecutor.clone();
+         if (evictionScheduledExecutor != null) dolly.evictionScheduledExecutor = evictionScheduledExecutor.clone();
+         if (replicationQueueScheduledExecutor != null) dolly.replicationQueueScheduledExecutor = replicationQueueScheduledExecutor.clone();
+         if (globalJmxStatistics != null) dolly.globalJmxStatistics = (GlobalJmxStatisticsType) globalJmxStatistics.clone();
+         if (transport != null) dolly.transport = transport.clone();
+         if (serialization != null) dolly.serialization = (SerializationType) serialization.clone();
+         if (shutdown != null) dolly.shutdown = (ShutdownType) shutdown.clone();
+         return dolly;
       }
       catch (CloneNotSupportedException e) {
          throw new CacheException("Problems cloning configuration component!", e);
@@ -544,8 +553,7 @@
 
       @XmlElement
       public void setProperties(TypedProperties properties) {
-         //testImmutability("properties");
-         //TODO fails JmxStatsFunctionalTest#testMultipleManagersOnSameServerFails
+         testImmutability("properties");
          this.properties = properties;
       }
 

Modified: trunk/core/src/main/java/org/infinispan/remoting/transport/Transport.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/remoting/transport/Transport.java	2009-09-16 01:21:58 UTC (rev 824)
+++ trunk/core/src/main/java/org/infinispan/remoting/transport/Transport.java	2009-09-16 11:53:03 UTC (rev 825)
@@ -34,7 +34,6 @@
 @NonVolatile
 public interface Transport extends Lifecycle {
    // TODO discovery should be abstracted away into a separate set of interfaces such that it is not tightly coupled to the transport
-   // Galder 15/09/09: what discovery??
 
    /**
     * Initializes the transport with global cache configuration and transport-specific properties.

Modified: trunk/core/src/test/java/org/infinispan/jmx/JmxStatsFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/jmx/JmxStatsFunctionalTest.java	2009-09-16 01:21:58 UTC (rev 824)
+++ trunk/core/src/test/java/org/infinispan/jmx/JmxStatsFunctionalTest.java	2009-09-16 11:53:03 UTC (rev 825)
@@ -149,7 +149,7 @@
       globalConfiguration2.setExposeGlobalJmxStatistics(true);
       globalConfiguration2.setAllowDuplicateDomains(false);
       globalConfiguration2.setMBeanServerLookup(PerThreadMBeanServerLookup.class.getName());
-      cm2 = TestCacheManagerFactory.createCacheManager(globalConfiguration);
+      cm2 = TestCacheManagerFactory.createCacheManager(globalConfiguration2);
       Configuration localCache2 = config();//local by default
       localCache2.setExposeJmxStatistics(true);
       cm2.defineConfiguration("local_cache", localCache);
@@ -160,7 +160,34 @@
          //expected
       }
    }
+   
+   public void testMultipleManagersOnSameServerWithCloneFails() {
+      assert !existsDomains("infinispan");
+      GlobalConfiguration globalConfiguration = GlobalConfiguration.getClusteredDefault();
+      globalConfiguration.setMBeanServerLookup(PerThreadMBeanServerLookup.class.getName());
+      cm = TestCacheManagerFactory.createCacheManager(globalConfiguration);
+      Configuration localCache = config();//local by default
+      localCache.setExposeJmxStatistics(true);
+      cm.defineConfiguration("local_cache", localCache);
+      cm.getCache("local_cache");
+      assert existsObject("infinispan:cache-name=local_cache(local),jmx-resource=Statistics");
 
+      GlobalConfiguration globalConfigurationClone = globalConfiguration.clone();
+      globalConfigurationClone.setExposeGlobalJmxStatistics(true);
+      globalConfigurationClone.setAllowDuplicateDomains(false);
+      globalConfigurationClone.setMBeanServerLookup(PerThreadMBeanServerLookup.class.getName());
+      cm2 = TestCacheManagerFactory.createCacheManager(globalConfigurationClone);
+      Configuration localCache2 = config();//local by default
+      localCache2.setExposeJmxStatistics(true);
+      cm2.defineConfiguration("local_cache", localCache);
+      try {
+         cm2.getCache("local_cache");
+         assert false : "exception expected";
+      } catch (CacheException e) {
+         //expected
+      }
+   }
+
    public void testMultipleManagersOnSameServer() {
       assert !existsDomains("infinispan");
       GlobalConfiguration globalConfiguration = GlobalConfiguration.getClusteredDefault();



More information about the infinispan-commits mailing list