[infinispan-commits] Infinispan SVN: r1150 - trunk/core/src/main/java/org/infinispan/manager.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Thu Nov 12 07:56:26 EST 2009


Author: galder.zamarreno at jboss.com
Date: 2009-11-12 07:56:26 -0500 (Thu, 12 Nov 2009)
New Revision: 1150

Modified:
   trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java
Log:
[ISPN-267] (Change Infinispan cache manager jmx name to be hostname:<jmx-port> based) Done.

Modified: trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java	2009-11-12 12:55:07 UTC (rev 1149)
+++ trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java	2009-11-12 12:56:26 UTC (rev 1150)
@@ -45,6 +45,8 @@
 import org.infinispan.remoting.transport.Address;
 import org.infinispan.remoting.transport.Transport;
 import org.infinispan.util.Immutables;
+import org.infinispan.util.logging.Log;
+import org.infinispan.util.logging.LogFactory;
 import org.rhq.helpers.pluginAnnotations.agent.DataType;
 import org.rhq.helpers.pluginAnnotations.agent.DisplayType;
 import org.rhq.helpers.pluginAnnotations.agent.Metric;
@@ -53,6 +55,8 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
@@ -105,6 +109,7 @@
 public class DefaultCacheManager implements CacheManager {
    public static final String DEFAULT_CACHE_NAME = "org.infinispan.manager.DefaultCacheManager.DEFAULT_CACHE_NAME";
    public static final String OBJECT_NAME = "CacheManager";
+   private static final Log log = LogFactory.getLog(DefaultCacheManager.class);
    protected GlobalConfiguration globalConfiguration;
    private final ConcurrentMap<String, Cache> caches = new ConcurrentHashMap<String, Cache>();
    private final ConcurrentMap<String, Configuration> configurationOverrides = new ConcurrentHashMap<String, Configuration>();
@@ -504,10 +509,27 @@
    @ManagedAttribute(description = "The name of this cache manager")
    @Metric(displayName = "Cache manager name", displayType = DisplayType.SUMMARY, dataType = DataType.TRAIT)
    public String getName() {
-      String address = getAddress() == null ? "local" : getAddress().toString();
-      return globalConfiguration.getJmxDomain() + '@' + address;
+      StringBuilder sb = new StringBuilder();
+      sb.append(globalConfiguration.getJmxDomain()).append('@');
+      String jmxPort = System.getProperty("com.sun.management.jmxremote.port");
+      if (jmxPort != null) {
+         try {
+            // At least until jdk6, Sun bind the jmx agent to 0.0.0.0:jmxPort, so using local host name is safe.
+            sb.append(InetAddress.getLocalHost().getHostName()).append(':').append(jmxPort);
+         } catch (UnknownHostException e) {
+            if (log.isTraceEnabled()) log.trace("Unable to resolve host", e);
+            sb.append(getLogicalAddressString());
+         }
+      } else {
+         sb.append(getLogicalAddressString());
+      }
+      return sb.toString();
    }
 
+   private String getLogicalAddressString() {
+      return getAddress() == null ? "local" : getAddress().toString();
+   }
+
    @Override
    public String toString() {
       return super.toString() + "@Address:" + getAddress();



More information about the infinispan-commits mailing list