[jbosscache-commits] JBoss Cache SVN: r7925 - in core/branches/flat/src: main/java/org/horizon/config/parsing and 5 other directories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Thu Mar 19 10:11:30 EDT 2009


Author: mircea.markus
Date: 2009-03-19 10:11:30 -0400 (Thu, 19 Mar 2009)
New Revision: 7925

Added:
   core/branches/flat/src/main/java/org/horizon/jmx/ComponentGroupJmxRegistration.java
   core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerCacheRegistration.java
   core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerGlobalRegistration.java
   core/branches/flat/src/test/java/org/horizon/jmx/GlobalComponentsRegitrationTest.java
Removed:
   core/branches/flat/src/main/java/org/horizon/jmx/JmxRegistrationManager.java
   core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerRegistration.java
Modified:
   core/branches/flat/src/main/java/org/horizon/config/GlobalConfiguration.java
   core/branches/flat/src/main/java/org/horizon/config/parsing/XmlConfigurationParserImpl.java
   core/branches/flat/src/main/java/org/horizon/factories/DefaultCacheFactory.java
   core/branches/flat/src/main/java/org/horizon/factories/GlobalComponentRegistry.java
   core/branches/flat/src/test/java/org/horizon/config/parsing/XmlFileParsingTest.java
   core/branches/flat/src/test/java/org/horizon/jmx/JmxRegistrationManagerTest.java
   core/branches/flat/src/test/java/org/horizon/test/TestingUtil.java
Log:
ongoing JMX integration

Modified: core/branches/flat/src/main/java/org/horizon/config/GlobalConfiguration.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/config/GlobalConfiguration.java	2009-03-19 13:53:38 UTC (rev 7924)
+++ core/branches/flat/src/main/java/org/horizon/config/GlobalConfiguration.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -51,8 +51,40 @@
 
    private GlobalComponentRegistry gcr;
    private long distributedSyncTimeout = 60000; // default
+   private boolean exposeGlobalManagementStatistics = true;
+   private String jmxDomain;
 
+
+   public boolean isExposeGlobalManagementStatistics() {
+      return exposeGlobalManagementStatistics;
+   }
+
+   public void setExposeGlobalManagementStatistics(boolean exposeGlobalManagementStatistics) {
+      testImmutability("exposeGlobalManagementStatistics");
+      this.exposeGlobalManagementStatistics = exposeGlobalManagementStatistics;
+   }
+
    /**
+    * If JMX statistics are enabled then all 'published' JMX objects will appear under this name. This is optional, if
+    * not specified an object name will be created for you by default.
+    *
+    * @see javax.management.ObjectName
+    * @see #isExposeManagementStatistics()
+    */
+   public void setJmxDomain(String jmxObjectName) {
+      testImmutability("jmxNameBase");
+      this.jmxDomain = jmxObjectName;
+   }
+
+   /**
+    * @see #setJmxDomain(String)
+    */
+   public String getJmxDomain() {
+      return jmxDomain;
+   }
+
+
+   /**
     * Behavior of the JVM shutdown hook registered by the cache
     */
    public static enum ShutdownHookBehavior {

Modified: core/branches/flat/src/main/java/org/horizon/config/parsing/XmlConfigurationParserImpl.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/config/parsing/XmlConfigurationParserImpl.java	2009-03-19 13:53:38 UTC (rev 7924)
+++ core/branches/flat/src/main/java/org/horizon/config/parsing/XmlConfigurationParserImpl.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -293,7 +293,8 @@
          }
          String jmxNameBase = getAttributeValue(element, "jmxNameBase");
          if (existsAttribute(jmxNameBase)) {
-            config.setJmxNameBase(jmxNameBase);
+            //todo update this
+//            config.setJmxNameBase(jmxNameBase);
          }
       }
    }

Modified: core/branches/flat/src/main/java/org/horizon/factories/DefaultCacheFactory.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/factories/DefaultCacheFactory.java	2009-03-19 13:53:38 UTC (rev 7924)
+++ core/branches/flat/src/main/java/org/horizon/factories/DefaultCacheFactory.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -26,7 +26,7 @@
 import org.horizon.CacheDelegate;
 import org.horizon.config.Configuration;
 import org.horizon.config.ConfigurationException;
-import org.horizon.jmx.PlatformMBeanServerRegistration;
+import org.horizon.jmx.PlatformMBeanServerCacheRegistration;
 import org.horizon.manager.DefaultCacheManager;
 
 /**
@@ -87,7 +87,7 @@
       componentRegistry = new ComponentRegistry(cacheName, configuration, spi, globalComponentRegistry);
       componentRegistry.registerDefaultClassLoader(defaultClassLoader);
       componentRegistry.registerComponent(spi, AdvancedCache.class);
-      componentRegistry.registerComponent(new PlatformMBeanServerRegistration(), PlatformMBeanServerRegistration.class);
+      componentRegistry.registerComponent(new PlatformMBeanServerCacheRegistration(), PlatformMBeanServerCacheRegistration.class);
    }
 
    /**

Modified: core/branches/flat/src/main/java/org/horizon/factories/GlobalComponentRegistry.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/factories/GlobalComponentRegistry.java	2009-03-19 13:53:38 UTC (rev 7924)
+++ core/branches/flat/src/main/java/org/horizon/factories/GlobalComponentRegistry.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -7,6 +7,7 @@
 import org.horizon.factories.annotations.NonVolatile;
 import org.horizon.factories.scopes.Scope;
 import org.horizon.factories.scopes.Scopes;
+import org.horizon.jmx.PlatformMBeanServerGlobalRegistration;
 import org.horizon.logging.Log;
 import org.horizon.logging.LogFactory;
 import org.horizon.manager.CacheManager;
@@ -54,6 +55,7 @@
          registerComponent(this, GlobalComponentRegistry.class);
          registerComponent(cacheManager, CacheManager.class);
          registerComponent(configuration, GlobalConfiguration.class);
+         registerComponent(new PlatformMBeanServerGlobalRegistration(), PlatformMBeanServerGlobalRegistration.class);
       }
       catch (Exception e) {
          throw new CacheException("Unable to construct a GlobalComponentRegistry!", e);

Copied: core/branches/flat/src/main/java/org/horizon/jmx/ComponentGroupJmxRegistration.java (from rev 7896, core/branches/flat/src/main/java/org/horizon/jmx/JmxRegistrationManager.java)
===================================================================
--- core/branches/flat/src/main/java/org/horizon/jmx/ComponentGroupJmxRegistration.java	                        (rev 0)
+++ core/branches/flat/src/main/java/org/horizon/jmx/ComponentGroupJmxRegistration.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -0,0 +1,150 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2000 - 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * 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.
+ */
+package org.horizon.jmx;
+
+import org.horizon.CacheException;
+import org.horizon.factories.AbstractComponentRegistry;
+import org.horizon.factories.ComponentRegistry;
+import org.horizon.logging.Log;
+import org.horizon.logging.LogFactory;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Registers all the <b>MBean</b>s from an <b>Cache</b> instance to a <b>MBeanServer</b>. It iterates over all the
+ * components within <b>ComponentRegistry</b> and registers all the components annotated with <b>ManagedAttribute</b>,
+ * <b>ManagedOperation</b> or/and <b>MBean</b>. If no <b>MBean</b> server is provided, then the {@link
+ * java.lang.management.ManagementFactory#getPlatformMBeanServer()} is being used. <p/> It is immutable: both cache
+ * instance and MBeanServer are being passed as arguments to the constructor. <p /> <p> Note that by default object
+ * names used are prefixed with <tt>jboss.cache:service=Horizon</tt>.  While this format works for and is consistent
+ * with JBoss AS and the JMX console, it has been known to cause problems with other JMX servers such as Websphere.  To
+ * work around this, you can provide the following VM system property to override this prefix with a prefix of your
+ * choice: <tt><b>-Dhorizon.jmx.prefix=Horizon</b></tt> </p>
+ *
+ * @author Mircea.Markus at jboss.com
+ * @since 1.0
+ */
+public class ComponentGroupJmxRegistration {
+
+   private static final Log log = LogFactory.getLog(ComponentGroupJmxRegistration.class);
+
+   private MBeanServer mBeanServer;
+
+   private String jmxDomain = "horizon:";
+   private String groupName;
+
+   private Set<AbstractComponentRegistry.Component> components;
+
+   public static final String CACHE_NAME_KEY = "cache-name";
+   public static final String JMX_RESOURCE_KEY = "jmx-resource";
+
+   /**
+    * C-tor.
+    *
+    * @param mBeanServer    the server where mbeans are being registered
+    * @param cache          cache that needs to be monitored
+    * @param objectNameBase path in the MBeanServer where to register cache MBeans
+    * @see java.lang.management.ManagementFactory#getPlatformMBeanServer()
+    * @see <a href="http://java.sun.com/j2se/1.5.0/docs/guide/management/mxbeans.html#mbean_server">platform
+    *      MBeanServer</a>
+    */
+   public ComponentGroupJmxRegistration(MBeanServer mBeanServer, Set<AbstractComponentRegistry.Component> components, String groupName) {
+      this.mBeanServer = mBeanServer;
+      this.components = components;
+      this.groupName = groupName;
+   }
+
+   public void setJmxDomain(String jmxDomain) {
+      this.jmxDomain = jmxDomain;
+   }
+
+   /**
+    * Performs the MBean registration.
+    */
+   public void registerMBeans() throws CacheException {
+      try {
+         List<ResourceDMBean> resourceDMBeans = getResourceDMBeansFromComponents();
+         for (ResourceDMBean resource : resourceDMBeans) {
+            String resourceName = resource.getObjectName();
+            ObjectName objectName = new ObjectName(getObjectName(resourceName));
+            if (!mBeanServer.isRegistered(objectName)) {
+               try {
+                  mBeanServer.registerMBean(resource, objectName);
+               } catch (InstanceAlreadyExistsException e) {
+                  //this might happen if multiple instances are trying to concurrently register same objectName
+                  log.info("Could not register object with name:" + objectName + "(" + e.getMessage() + ")");
+               }
+            } else {
+               if (log.isInfoEnabled())
+                  log.info("Could not register object with name: " + objectName);
+            }
+         }
+      }
+      catch (Exception e) {
+         throw new CacheException("Failure while registering mbeans", e);
+      }
+   }
+
+   /**
+    * Unregisters all the MBeans registered through {@link #registerMBeans()}.
+    */
+   public void unregisterCacheMBeans() throws CacheException {
+      log.trace("Unregistering jmx resources..");
+      try {
+         List<ResourceDMBean> resourceDMBeans = getResourceDMBeansFromComponents();
+         for (ResourceDMBean resource : resourceDMBeans) {
+            String resourceName = resource.getObject().getClass().getSimpleName();
+            ObjectName objectName = new ObjectName(getObjectName(resourceName));
+            if (mBeanServer.isRegistered(objectName)) {
+               mBeanServer.unregisterMBean(objectName);
+            }
+         }
+      }
+      catch (Exception e) {
+         throw new CacheException("Failure while unregistering mbeans", e);
+      }
+   }
+
+   private List<ResourceDMBean> getResourceDMBeansFromComponents() {
+      List<ResourceDMBean> resourceDMBeans = new ArrayList<ResourceDMBean>();
+      for (ComponentRegistry.Component component : components) {
+         ResourceDMBean resourceDMBean = new ResourceDMBean(component.getInstance());
+         if (resourceDMBean.isManagedResource()) {
+            resourceDMBeans.add(resourceDMBean);
+         }
+      }
+      return resourceDMBeans;
+   }
+
+   public String getObjectName(String resourceName) {
+      return getObjectName(jmxDomain, groupName, resourceName);
+   }
+
+   public static String getObjectName(String jmxDomain, String groupName, String resourceName) {
+      return jmxDomain + CACHE_NAME_KEY + "=" + groupName + "," + JMX_RESOURCE_KEY + "=" + resourceName;
+   }
+}


Property changes on: core/branches/flat/src/main/java/org/horizon/jmx/ComponentGroupJmxRegistration.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Deleted: core/branches/flat/src/main/java/org/horizon/jmx/JmxRegistrationManager.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/jmx/JmxRegistrationManager.java	2009-03-19 13:53:38 UTC (rev 7924)
+++ core/branches/flat/src/main/java/org/horizon/jmx/JmxRegistrationManager.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -1,164 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2000 - 2008, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * 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.
- */
-package org.horizon.jmx;
-
-import org.horizon.AdvancedCache;
-import org.horizon.CacheException;
-import org.horizon.factories.ComponentRegistry;
-import org.horizon.logging.Log;
-import org.horizon.logging.LogFactory;
-
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import java.lang.management.ManagementFactory;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Registers all the <b>MBean</b>s from an <b>Cache</b> instance to a <b>MBeanServer</b>. It iterates over all the
- * components within <b>ComponentRegistry</b> and registers all the components annotated with <b>ManagedAttribute</b>,
- * <b>ManagedOperation</b> or/and <b>MBean</b>. If no <b>MBean</b> server is provided, then the {@link
- * java.lang.management.ManagementFactory#getPlatformMBeanServer()} is being used. <p/> It is immutable: both cache
- * instance and MBeanServer are being passed as arguments to the constructor. <p /> <p> Note that by default object
- * names used are prefixed with <tt>jboss.cache:service=Horizon</tt>.  While this format works for and is consistent
- * with JBoss AS and the JMX console, it has been known to cause problems with other JMX servers such as Websphere.  To
- * work around this, you can provide the following VM system property to override this prefix with a prefix of your
- * choice: <tt><b>-Dhorizon.jmx.prefix=Horizon</b></tt> </p>
- *
- * @author Mircea.Markus at jboss.com
- * @since 1.0
- */
-public class JmxRegistrationManager {
-
-   private static final Log log = LogFactory.getLog(JmxRegistrationManager.class);
-
-   private MBeanServer mBeanServer;
-
-   private String objectNameBase;
-
-   private AdvancedCache cache;
-   public static final String CACHE_NAME_KEY = "cache-name";
-   public static final String JMX_RESOURCE_KEY = "jmx-resource";
-
-   /**
-    * C-tor.
-    *
-    * @param mBeanServer    the server where mbeans are being registered
-    * @param cache          cache that needs to be monitored
-    * @param objectNameBase path in the MBeanServer where to register cache MBeans
-    */
-   public JmxRegistrationManager(MBeanServer mBeanServer, AdvancedCache cache) {
-      this.mBeanServer = mBeanServer;
-      this.cache = cache;
-      processBaseName();
-   }
-
-   /**
-    * Defaults to platform to platform MBeanServer.
-    *
-    * @see java.lang.management.ManagementFactory#getPlatformMBeanServer()
-    * @see <a href="http://java.sun.com/j2se/1.5.0/docs/guide/management/mxbeans.html#mbean_server">platform
-    *      MBeanServer</a>
-    */
-   public JmxRegistrationManager(AdvancedCache cache) {
-      this(ManagementFactory.getPlatformMBeanServer(), cache);
-   }
-
-   /**
-    * Performs the MBean registration.
-    */
-   public void registerAllMBeans() throws CacheException {
-      try {
-         List<ResourceDMBean> resourceDMBeans = getResourceDMBeans();
-         for (ResourceDMBean resource : resourceDMBeans) {
-            String resourceName = resource.getObjectName();
-            ObjectName objectName = new ObjectName(getObjectName(resourceName));
-            if (!mBeanServer.isRegistered(objectName)) {
-               try {
-                  mBeanServer.registerMBean(resource, objectName);
-               } catch (InstanceAlreadyExistsException e) {
-                  //this might happen if multiple instances are trying to concurrently register same objectName
-                  log.info("Could not register object with name:" + objectName + "(" + e.getMessage() + ")");
-               }
-            } else {
-               if (log.isInfoEnabled())
-                  log.info("Could not register object with name: " + objectName);
-            }
-         }
-      }
-      catch (Exception e) {
-         throw new CacheException("Failure while registering mbeans", e);
-      }
-   }
-
-   /**
-    * Unregisters all the MBeans registered through {@link #registerAllMBeans()}.
-    */
-   public void unregisterAllMBeans() throws CacheException {
-      log.trace("Unregistering jmx resources..");
-      try {
-         List<ResourceDMBean> resourceDMBeans = getResourceDMBeans();
-         for (ResourceDMBean resource : resourceDMBeans) {
-            String resourceName = resource.getObject().getClass().getSimpleName();
-            ObjectName objectName = new ObjectName(getObjectName(resourceName));
-            if (mBeanServer.isRegistered(objectName)) {
-               mBeanServer.unregisterMBean(objectName);
-            }
-         }
-      }
-      catch (Exception e) {
-         throw new CacheException("Failure while unregistering mbeans", e);
-      }
-   }
-
-
-   private List<ResourceDMBean> getResourceDMBeans() {
-      List<ResourceDMBean> resourceDMBeans = new ArrayList<ResourceDMBean>();
-      for (ComponentRegistry.Component component : cache.getComponentRegistry().getRegisteredComponents()) {
-         ResourceDMBean resourceDMBean = new ResourceDMBean(component.getInstance());
-         if (resourceDMBean.isManagedResource()) {
-            resourceDMBeans.add(resourceDMBean);
-         }
-      }
-      return resourceDMBeans;
-   }
-
-   private void processBaseName() {
-      String base = cache.getConfiguration().getJmxNameBase();
-      if (base != null) {
-         objectNameBase = base;
-         if (log.isTraceEnabled()) log.trace("Using custom base name: '" + base + "'");
-         return;
-      }
-      objectNameBase = "horizon:" + CACHE_NAME_KEY + "=";
-      objectNameBase += cache.getName() + "(" + cache.getConfiguration().getCacheModeString().toLowerCase() + ")";
-   }
-
-   public String getObjectName(String resourceName) {
-      return objectNameBase + "," + JMX_RESOURCE_KEY + "=" + resourceName;
-   }
-
-   public String getObjectNameBase() {
-      return objectNameBase;
-   }
-}

Copied: core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerCacheRegistration.java (from rev 7896, core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerRegistration.java)
===================================================================
--- core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerCacheRegistration.java	                        (rev 0)
+++ core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerCacheRegistration.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -0,0 +1,105 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2000 - 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * 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.
+ */
+package org.horizon.jmx;
+
+import org.horizon.AdvancedCache;
+import org.horizon.config.Configuration;
+import org.horizon.config.GlobalConfiguration;
+import org.horizon.factories.AbstractComponentRegistry;
+import org.horizon.factories.annotations.Inject;
+import org.horizon.factories.annotations.NonVolatile;
+import org.horizon.factories.annotations.Start;
+import org.horizon.factories.annotations.Stop;
+import org.horizon.logging.Log;
+import org.horizon.logging.LogFactory;
+
+import java.lang.management.ManagementFactory;
+import java.util.Set;
+
+/**
+ * If {@link Configuration#isExposeManagementStatistics()} is true, then class will register all the MBeans from the
+ * ConfigurationRegistry to the pltform MBean server.
+ * <p/>
+ * Note: to enable platform MBeanServer the following system property should be passet to the Sun JVM:
+ * <b>-Dcom.sun.management.jmxremote</b>.
+ *
+ * @author Mircea.Markus at jboss.com
+ * @see java.lang.management.ManagementFactory#getPlatformMBeanServer()
+ * @since 1.0
+ */
+ at NonVolatile
+public class PlatformMBeanServerCacheRegistration {
+   private static final Log log = LogFactory.getLog(PlatformMBeanServerCacheRegistration.class);
+
+   private AdvancedCache cache;
+
+   @Inject
+   public void initialize(AdvancedCache cache) {
+      this.cache = cache;
+   }
+
+   /**
+    * Here is where the registration is being performed.
+    */
+   @Start(priority = 14)
+   public void registerToPlatformMBeanServer() {
+      if (cache == null)
+         throw new IllegalStateException("The cache should had been injected before a call to this method");
+      Configuration config = cache.getConfiguration();
+      if (config.isExposeManagementStatistics()) {
+         ComponentGroupJmxRegistration registrator = buildRegistrator();
+         registrator.registerMBeans();
+         log.info("MBeans were successfully registered to the platform mbean server.");
+      }
+   }
+
+   private ComponentGroupJmxRegistration buildRegistrator() {
+      Set<AbstractComponentRegistry.Component> components = cache.getComponentRegistry().getRegisteredComponents();
+      ComponentGroupJmxRegistration registrator = new ComponentGroupJmxRegistration(ManagementFactory.getPlatformMBeanServer(), components, getGroupName());
+      GlobalConfiguration globalConfiguration = cache.getConfiguration().getGlobalConfiguration();
+      if (globalConfiguration.getJmxDomain() != null) {
+         registrator.setJmxDomain(globalConfiguration.getJmxDomain());
+      }
+      return registrator;
+   }
+
+   private String getGroupName() {
+      return cache.getName() + "(" + cache.getConfiguration().getCacheModeString().toLowerCase() + ")";
+   }
+
+   /**
+    * Unregister when the cache is being stoped.
+    */
+   @Stop
+   public void unregisterMBeans() {
+      //this method might get called several times.
+      // After the first call the cache will become null, so we guard this
+      if (cache == null) return;
+      Configuration config = cache.getConfiguration();
+      if (config.isExposeManagementStatistics()) {
+         ComponentGroupJmxRegistration componentGroupJmxRegistration = buildRegistrator();
+         componentGroupJmxRegistration.unregisterCacheMBeans();
+         log.trace("MBeans were successfully unregistered from the platform mbean server.");
+      }
+      cache = null;
+   }
+}


Property changes on: core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerCacheRegistration.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerGlobalRegistration.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerGlobalRegistration.java	                        (rev 0)
+++ core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerGlobalRegistration.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -0,0 +1,72 @@
+package org.horizon.jmx;
+
+import org.horizon.config.GlobalConfiguration;
+import org.horizon.factories.AbstractComponentRegistry;
+import org.horizon.factories.GlobalComponentRegistry;
+import org.horizon.factories.annotations.Inject;
+import org.horizon.factories.annotations.NonVolatile;
+import org.horizon.factories.annotations.Start;
+import org.horizon.factories.annotations.Stop;
+
+import javax.management.MBeanServer;
+import java.lang.management.ManagementFactory;
+import java.util.Set;
+
+/**
+ * // TODO: Mircea: Document this!
+ *
+ * @author
+ */
+ at NonVolatile
+public class PlatformMBeanServerGlobalRegistration {
+
+   public static final String GLOBAL_JMX_GROUP = "[global]";
+   private GlobalComponentRegistry registry;
+   private GlobalConfiguration globalConfiguration;
+   private MBeanServer mBeanServer;
+
+   @Inject
+   public void init(GlobalComponentRegistry registry, GlobalConfiguration configuration) {
+      this.registry = registry;
+      this.globalConfiguration = configuration;
+   }
+
+   @Start(priority = 20)
+   public void start() {
+      if (globalConfiguration.isExposeGlobalManagementStatistics()) {
+         ComponentGroupJmxRegistration registrator = buildRegistrator();
+         registrator.registerMBeans();
+      }
+   }
+
+   public void setMBeanServer(MBeanServer mBeanServer) {
+      this.mBeanServer = mBeanServer;
+   }
+
+   @Stop
+   public void stop() {
+      //this method might get called several times.
+      // After the first call the cache will become null, so we guard this
+      if (registry == null) return;
+      if (globalConfiguration.isExposeGlobalManagementStatistics()) {
+         ComponentGroupJmxRegistration componentGroupJmxRegistration = buildRegistrator();
+         componentGroupJmxRegistration.unregisterCacheMBeans();
+      }
+      registry = null;
+   }
+
+   private ComponentGroupJmxRegistration buildRegistrator() {
+      Set<AbstractComponentRegistry.Component> components = registry.getRegisteredComponents();
+      MBeanServer platformMBeanServer;
+      if (this.mBeanServer != null) {
+         platformMBeanServer = this.mBeanServer;
+      } else {
+         platformMBeanServer = ManagementFactory.getPlatformMBeanServer();
+      }
+      ComponentGroupJmxRegistration registrator = new ComponentGroupJmxRegistration(platformMBeanServer, components, GLOBAL_JMX_GROUP);
+      if (globalConfiguration.getJmxDomain() != null) {
+         registrator.setJmxDomain(globalConfiguration.getJmxDomain());
+      }
+      return registrator;
+   }
+}


Property changes on: core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerGlobalRegistration.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Deleted: core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerRegistration.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerRegistration.java	2009-03-19 13:53:38 UTC (rev 7924)
+++ core/branches/flat/src/main/java/org/horizon/jmx/PlatformMBeanServerRegistration.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -1,86 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2000 - 2008, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * 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.
- */
-package org.horizon.jmx;
-
-import org.horizon.AdvancedCache;
-import org.horizon.config.Configuration;
-import org.horizon.factories.annotations.Inject;
-import org.horizon.factories.annotations.NonVolatile;
-import org.horizon.factories.annotations.Start;
-import org.horizon.factories.annotations.Stop;
-import org.horizon.logging.Log;
-import org.horizon.logging.LogFactory;
-
-/**
- * If {@link Configuration#isExposeManagementStatistics()} is true, then class will register all the MBeans from the
- * ConfigurationRegistry to the pltform MBean server.
- * <p/>
- * Note: to enable platform MBeanServer the following system property should be passet to the Sun JVM:
- * <b>-Dcom.sun.management.jmxremote</b>.
- *
- * @author Mircea.Markus at jboss.com
- * @see java.lang.management.ManagementFactory#getPlatformMBeanServer()
- * @since 1.0
- */
- at NonVolatile
-public class PlatformMBeanServerRegistration {
-   private static final Log log = LogFactory.getLog(PlatformMBeanServerRegistration.class);
-
-   private AdvancedCache cache;
-
-   @Inject
-   public void initialize(AdvancedCache cache) {
-      this.cache = cache;
-   }
-
-   /**
-    * Here is where the registration is being performed.
-    */
-   @Start(priority = 14)
-   public void registerToPlatformMBeanServer() {
-      if (cache == null)
-         throw new IllegalStateException("The cache should had been injected before a call to this method");
-      Configuration config = cache.getConfiguration();
-      if (config.isExposeManagementStatistics()) {
-         JmxRegistrationManager jmxRegistrationManager = new JmxRegistrationManager(cache);
-         jmxRegistrationManager.registerAllMBeans();
-         log.info("MBeans were successfully registered to the platform mbean server.");
-      }
-   }
-
-   /**
-    * Unregister when the cache is being stoped.
-    */
-   @Stop
-   public void unregisterMBeans() {
-      //this method might get called several times.
-      // After the first call the cache will become null, so we guard this
-      if (cache == null) return;
-      Configuration config = cache.getConfiguration();
-      if (config.isExposeManagementStatistics()) {
-         JmxRegistrationManager jmxRegistrationManager = new JmxRegistrationManager(cache);
-         jmxRegistrationManager.unregisterAllMBeans();
-         log.trace("MBeans were successfully unregistered from the platform mbean server.");
-      }
-      cache = null;
-   }
-}

Modified: core/branches/flat/src/test/java/org/horizon/config/parsing/XmlFileParsingTest.java
===================================================================
--- core/branches/flat/src/test/java/org/horizon/config/parsing/XmlFileParsingTest.java	2009-03-19 13:53:38 UTC (rev 7924)
+++ core/branches/flat/src/test/java/org/horizon/config/parsing/XmlFileParsingTest.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -112,9 +112,10 @@
       assert tableManipulation.isDropTableOnExit();
       assert !tableManipulation.isCreateTableOnStart();
 
-      c = namedCaches.get("withJmxEnabled");
-      assert c.isExposeManagementStatistics();
-      assert c.getJmxNameBase().equals("horizonDomain:aKey=aValue");      
+      //todo mmarkus re-enable test
+//      c = namedCaches.get("withJmxEnabled");
+//      assert c.isExposeManagementStatistics();
+//      assert c.getJmxNameBase().equals("horizonDomain:aKey=aValue");
    }
 
    public void testConfigurationMerging() throws IOException {

Added: core/branches/flat/src/test/java/org/horizon/jmx/GlobalComponentsRegitrationTest.java
===================================================================
--- core/branches/flat/src/test/java/org/horizon/jmx/GlobalComponentsRegitrationTest.java	                        (rev 0)
+++ core/branches/flat/src/test/java/org/horizon/jmx/GlobalComponentsRegitrationTest.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -0,0 +1,123 @@
+package org.horizon.jmx;
+
+import org.horizon.config.Configuration;
+import org.horizon.config.GlobalConfiguration;
+import org.horizon.factories.GlobalComponentRegistry;
+import org.horizon.manager.CacheManager;
+import org.horizon.test.TestingUtil;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.MBeanInfo;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanOperationInfo;
+import java.lang.management.ManagementFactory;
+
+/**
+ * // TODO: Mircea: Document this!
+ *
+ * @author Mircea.Markus at jboss.com
+ */
+ at Test(groups = "functional", testName = "jmx.GlobalComponentsRegitrationTest")
+public class GlobalComponentsRegitrationTest {
+
+   private MBeanServer mBeanServer;
+   private CacheManager cacheManager;
+   private PlatformMBeanServerGlobalRegistration registration;
+   private static final String JMX_NAME_BASE = "horizion-test:";
+
+   @BeforeMethod
+   public void setUp() {
+//      mBeanServer = MBeanServerFactory.createMBeanServer();
+      mBeanServer = ManagementFactory.getPlatformMBeanServer();
+      GlobalConfiguration globalConfiguration = TestingUtil.getGlobalConfiguration();
+      globalConfiguration.setExposeGlobalManagementStatistics(false);
+      cacheManager = TestingUtil.createClusteredCacheManager(globalConfiguration);
+      cacheManager.start();
+
+      Configuration config = new Configuration();
+      config.setCacheMode(Configuration.CacheMode.REPL_SYNC);
+      config.setExposeManagementStatistics(false);
+      cacheManager.defineCache("a", config);
+      cacheManager.getCache("a");
+      registration = new PlatformMBeanServerGlobalRegistration();
+      registration.setMBeanServer(mBeanServer);
+
+      GlobalComponentRegistry componentRegistry = TestingUtil.extractGlobalComponentRegistry(cacheManager);
+      GlobalConfiguration configuration = GlobalConfiguration.getClusteredDefault();
+      configuration.setJmxDomain(JMX_NAME_BASE);
+      registration.init(componentRegistry, configuration);
+      registration.start();
+   }
+
+   @AfterMethod
+   public void tearDown() {
+      TestingUtil.killCacheManagers(cacheManager);
+      MBeanServerFactory.releaseMBeanServer(mBeanServer);
+      registration.stop();
+   }
+
+   public void testRpcManagerAttributes() throws Exception {
+      registration = new PlatformMBeanServerGlobalRegistration();
+      ObjectName rpcManagerObjectName = getObjectName("RPCManager");
+      assert mBeanServer.isRegistered(rpcManagerObjectName);
+      MBeanInfo beanInfo = mBeanServer.getMBeanInfo(rpcManagerObjectName);
+      assert attributeExists(beanInfo, "ReplicationCount");
+      assert attributeExists(beanInfo, "ReplicationFailures");
+      assert attributeExists(beanInfo, "StatisticsEnabled");
+      assert attributeExists(beanInfo, "SuccessRatio");
+
+      assert operationExists(beanInfo, "resetStatistics");
+   }
+
+   private boolean operationExists(MBeanInfo beanInfo, String opName) {
+      MBeanOperationInfo[] beanOperationInfos = beanInfo.getOperations();
+      for (MBeanOperationInfo attributeInfo: beanOperationInfos) {
+         if (attributeInfo.getName().equals(opName)) {
+            return true;
+         }
+      }
+      return false;
+
+   }
+
+   private boolean attributeExists(MBeanInfo beanInfo, String attrName) {
+      for (MBeanAttributeInfo attributeInfo: beanInfo.getAttributes()) {
+         if (attributeInfo.getName().equals(attrName)) {
+            return true;
+         }
+      }
+      return false;
+   }
+
+   //todo mmarkus enable test
+   @Test(enabled = false)
+   public void testCacheMgmtInterceptor() throws Exception {
+      ObjectName interceptor = getObjectName("CacheMgmtInterceptor");
+//      sleepForever();
+      assert mBeanServer.isRegistered(interceptor);
+   }
+
+   private void sleepForever() {
+      while (true) {
+         try {
+            Thread.sleep(1000);
+         } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+         }
+      }
+   }
+
+   private ObjectName getObjectName(String name) {
+      try {
+         return new ObjectName(ComponentGroupJmxRegistration.getObjectName(JMX_NAME_BASE,PlatformMBeanServerGlobalRegistration.GLOBAL_JMX_GROUP, name));
+      } catch (MalformedObjectNameException e) {
+         throw new IllegalStateException(e);
+      }
+   }
+}


Property changes on: core/branches/flat/src/test/java/org/horizon/jmx/GlobalComponentsRegitrationTest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: core/branches/flat/src/test/java/org/horizon/jmx/JmxRegistrationManagerTest.java
===================================================================
--- core/branches/flat/src/test/java/org/horizon/jmx/JmxRegistrationManagerTest.java	2009-03-19 13:53:38 UTC (rev 7924)
+++ core/branches/flat/src/test/java/org/horizon/jmx/JmxRegistrationManagerTest.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -4,6 +4,7 @@
 import org.horizon.Cache;
 import org.horizon.config.Configuration;
 import org.horizon.config.GlobalConfiguration;
+import org.horizon.factories.AbstractComponentRegistry;
 import org.horizon.interceptors.CacheMgmtInterceptor;
 import org.horizon.manager.CacheManager;
 import org.horizon.manager.DefaultCacheManager;
@@ -17,9 +18,10 @@
 import javax.management.ObjectName;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 /**
- * Tester class for {@link JmxRegistrationManager}.
+ * Tester class for {@link ComponentGroupJmxRegistration}.
  *
  * @author Mircea.Markus at jboss.com
  * @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
@@ -56,18 +58,24 @@
       cm.defineCache("first", configuration);
       Cache first = cm.getCache("first");
 
-      JmxRegistrationManager regManager = new JmxRegistrationManager(mBeanServer, (AdvancedCache) first);
-      regManager.registerAllMBeans();
-      String name = regManager.getObjectName(CacheMgmtInterceptor.class.getSimpleName());
+      ComponentGroupJmxRegistration regComponentGroup = buildRegistrator(first);
+      regComponentGroup.registerMBeans();
+      String name = regComponentGroup.getObjectName(CacheMgmtInterceptor.class.getSimpleName());
       ObjectName name1 = new ObjectName(name);
       assert mBeanServer.isRegistered(name1);
-      regManager.unregisterAllMBeans();
+      regComponentGroup.unregisterCacheMBeans();
       assert !mBeanServer.isRegistered(name1);
       assertCorrectJmxName(name1, first);
    }
 
+   private ComponentGroupJmxRegistration buildRegistrator(Cache cache) {
+      AdvancedCache ac = (AdvancedCache) cache;
+      Set<AbstractComponentRegistry.Component> components = ac.getComponentRegistry().getRegisteredComponents();
+      return new ComponentGroupJmxRegistration(mBeanServer, components, cache.getName());
+   }
+
    public void testRegisterReplicatedCache() throws Exception {
-      GlobalConfiguration globalConfiguration = GlobalConfiguration.getClusteredDefault();
+      GlobalConfiguration globalConfiguration = TestingUtil.getGlobalConfiguration();
       CacheManager cm = new DefaultCacheManager(globalConfiguration);
       cacheManagers.add(cm);
       cm.start();
@@ -76,18 +84,18 @@
       cm.defineCache("first", configurationOverride);
       Cache first = cm.getCache("first");
 
-      JmxRegistrationManager regManager = new JmxRegistrationManager(mBeanServer, (AdvancedCache) first);
-      regManager.registerAllMBeans();
-      String name = regManager.getObjectName(CacheMgmtInterceptor.class.getSimpleName());
+      ComponentGroupJmxRegistration regComponentGroup = buildRegistrator(first);
+      regComponentGroup.registerMBeans();
+      String name = regComponentGroup.getObjectName(CacheMgmtInterceptor.class.getSimpleName());
       ObjectName name1 = new ObjectName(name);
       assertCorrectJmxName(name1, first);
       assert mBeanServer.isRegistered(name1);
-      regManager.unregisterAllMBeans();
+      regComponentGroup.unregisterCacheMBeans();
       assert !mBeanServer.isRegistered(name1);
    }
 
    public void testLocalAndReplicatedCache() throws Exception {
-      GlobalConfiguration globalConfiguration = GlobalConfiguration.getClusteredDefault();
+      GlobalConfiguration globalConfiguration = TestingUtil.getGlobalConfiguration();
       CacheManager cm = new DefaultCacheManager(globalConfiguration);
       cacheManagers.add(cm);
       cm.start();
@@ -100,13 +108,13 @@
       Cache replicatedCache = cm.getCache("replicated");
       Cache localCache = cm.getCache("local");
 
-      JmxRegistrationManager replicatedRegManager = new JmxRegistrationManager(mBeanServer, (AdvancedCache) replicatedCache);
-      JmxRegistrationManager localRegManager = new JmxRegistrationManager(mBeanServer, (AdvancedCache) localCache);
-      replicatedRegManager.registerAllMBeans();
-      localRegManager.registerAllMBeans();
+      ComponentGroupJmxRegistration replicatedRegComponentGroup = buildRegistrator(replicatedCache);
+      ComponentGroupJmxRegistration localRegComponentGroup = buildRegistrator(localCache);
+      replicatedRegComponentGroup.registerMBeans();
+      localRegComponentGroup.registerMBeans();
 
-      String replicatedtCMgmtIntName = replicatedRegManager.getObjectName(CacheMgmtInterceptor.class.getSimpleName());
-      String localCMgmtIntName = localRegManager.getObjectName(CacheMgmtInterceptor.class.getSimpleName());
+      String replicatedtCMgmtIntName = replicatedRegComponentGroup.getObjectName(CacheMgmtInterceptor.class.getSimpleName());
+      String localCMgmtIntName = localRegComponentGroup.getObjectName(CacheMgmtInterceptor.class.getSimpleName());
       ObjectName replObjectName = new ObjectName(replicatedtCMgmtIntName);
       ObjectName localObjName = new ObjectName(localCMgmtIntName);
       assertCorrectJmxName(replObjectName, replicatedCache);
@@ -115,46 +123,17 @@
       assert mBeanServer.isRegistered(localObjName);
       assert !localCMgmtIntName.equals(replicatedtCMgmtIntName);
 
-      replicatedRegManager.unregisterAllMBeans();
-      localRegManager.unregisterAllMBeans();
+      replicatedRegComponentGroup.unregisterCacheMBeans();
+      localRegComponentGroup.unregisterCacheMBeans();
       assert !mBeanServer.isRegistered(new ObjectName(localCMgmtIntName));
       assert !mBeanServer.isRegistered(new ObjectName(replicatedtCMgmtIntName));
    }
 
-   public void testCustomCacheName() throws Exception {
-      CacheManager cm = TestingUtil.createLocalCacheManager();
-      cacheManagers.add(cm);
-      cm.start();
-      Configuration configuration = config();
-      configuration.setJmxNameBase("mircea:aKey=aValue,secondKey=secondValue");
-      configuration.setCacheMode(Configuration.CacheMode.LOCAL);
-      cm.defineCache("first", configuration);
-      Cache cache = cm.getCache("first");
-
-      JmxRegistrationManager regManager = new JmxRegistrationManager(mBeanServer, (AdvancedCache) cache);
-      regManager.registerAllMBeans();
-
-      String name = regManager.getObjectName(CacheMgmtInterceptor.class.getSimpleName());
-      ObjectName name1 = new ObjectName(name);
-      assert mBeanServer.isRegistered(name1);
-      regManager.unregisterAllMBeans();
-      assert !mBeanServer.isRegistered(name1);
-
-
-      assert name1.getDomain().equals("mircea");
-      assert name1.getKeyProperty("aKey").equals("aValue");
-      assert name1.getKeyProperty("secondKey").equals("secondValue");
-      assert name1.getKeyProperty(JmxRegistrationManager.JMX_RESOURCE_KEY) != null;
-   }
-
    private void assertCorrectJmxName(ObjectName objectName, Cache cache) {
-      assert objectName.getKeyProperty(JmxRegistrationManager.CACHE_NAME_KEY).startsWith(cache.getName());
-      String cacheModeStr = cache.getConfiguration().getCacheModeString().toLowerCase();
-      assert objectName.getKeyProperty(JmxRegistrationManager.CACHE_NAME_KEY).contains(cacheModeStr);
-      assert objectName.getKeyProperty(JmxRegistrationManager.JMX_RESOURCE_KEY) != null;
+      assert objectName.getKeyProperty(ComponentGroupJmxRegistration.CACHE_NAME_KEY).startsWith(cache.getName());
+      assert objectName.getKeyProperty(ComponentGroupJmxRegistration.JMX_RESOURCE_KEY) != null;
    }
 
-
    private Configuration config() {
       Configuration configuration = new Configuration();
       configuration.setExposeManagementStatistics(true);

Modified: core/branches/flat/src/test/java/org/horizon/test/TestingUtil.java
===================================================================
--- core/branches/flat/src/test/java/org/horizon/test/TestingUtil.java	2009-03-19 13:53:38 UTC (rev 7924)
+++ core/branches/flat/src/test/java/org/horizon/test/TestingUtil.java	2009-03-19 14:11:30 UTC (rev 7925)
@@ -621,11 +621,16 @@
    }
 
    public static CacheManager createClusteredCacheManager() {
+      GlobalConfiguration globalConfiguration = getGlobalConfiguration();
+      return new DefaultCacheManager(globalConfiguration);
+   }
+
+   public static GlobalConfiguration getGlobalConfiguration() {
       GlobalConfiguration globalConfiguration = GlobalConfiguration.getClusteredDefault();
       Properties newTransportProps = new Properties();
       newTransportProps.put(JGroupsTransport.CONFIGURATION_STRING, JGroupsConfigBuilder.getJGroupsConfig());
       globalConfiguration.setTransportProperties(newTransportProps);
-      return new DefaultCacheManager(globalConfiguration);
+      return globalConfiguration;
    }
 
    public static CacheManager createLocalCacheManager() {




More information about the jbosscache-commits mailing list