You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2013/09/03 13:49:42 UTC

[1/4] git commit: CAMEL-6695: ManagementAgent should use a thread safe map for housekeeping of registered mbeans.

Updated Branches:
  refs/heads/camel-2.10.x b368b05e5 -> 44905ef4d
  refs/heads/camel-2.11.x b3bc9bcc3 -> 4a4f6930b
  refs/heads/camel-2.12.x 2229277ad -> 337f0f0e7
  refs/heads/master 9d162bbfd -> 814755e95


CAMEL-6695: ManagementAgent should use a thread safe map for housekeeping of registered mbeans.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/814755e9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/814755e9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/814755e9

Branch: refs/heads/master
Commit: 814755e95bec6e8c0b1a85c967f6c9242dbe2aca
Parents: 9d162bb
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 3 13:48:19 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 3 13:48:19 2013 +0200

----------------------------------------------------------------------
 .../camel/management/DefaultManagementAgent.java    | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/814755e9/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
index 381b719..99c8e20 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
@@ -25,9 +25,9 @@ import java.rmi.RemoteException;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
 import java.rmi.server.UnicastRemoteObject;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import javax.management.JMException;
 import javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
@@ -62,7 +62,7 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
     private CamelContext camelContext;
     private MBeanServer server;
     // need a name -> actual name mapping as some servers changes the names (such as WebSphere)
-    private final Map<ObjectName, ObjectName> mbeansRegistered = new HashMap<ObjectName, ObjectName>();
+    private final ConcurrentMap<ObjectName, ObjectName> mbeansRegistered = new ConcurrentHashMap<ObjectName, ObjectName>();
     private JMXConnectorServer cs;
     private Registry registry;
 
@@ -250,15 +250,17 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
 
     public void unregister(ObjectName name) throws JMException {
         if (isRegistered(name)) {
-            server.unregisterMBean(mbeansRegistered.get(name));
+            ObjectName on = mbeansRegistered.remove(name);
+            server.unregisterMBean(on);
             LOG.debug("Unregistered MBean with ObjectName: {}", name);
+        } else {
+            mbeansRegistered.remove(name);
         }
-        mbeansRegistered.remove(name);
     }
 
     public boolean isRegistered(ObjectName name) {
-        return (mbeansRegistered.containsKey(name) 
-                && server.isRegistered(mbeansRegistered.get(name))) 
+        ObjectName on = mbeansRegistered.get(name);
+        return (on != null && server.isRegistered(on))
                 || server.isRegistered(name);
     }
 


[2/4] git commit: CAMEL-6695: ManagementAgent should use a thread safe map for housekeeping of registered mbeans.

Posted by da...@apache.org.
CAMEL-6695: ManagementAgent should use a thread safe map for housekeeping of registered mbeans.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/337f0f0e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/337f0f0e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/337f0f0e

Branch: refs/heads/camel-2.12.x
Commit: 337f0f0e7f5d4e25ff1d1679a48348f2b5ad0001
Parents: 2229277
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 3 13:48:19 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 3 13:48:43 2013 +0200

----------------------------------------------------------------------
 .../camel/management/DefaultManagementAgent.java    | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/337f0f0e/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
index 381b719..99c8e20 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
@@ -25,9 +25,9 @@ import java.rmi.RemoteException;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
 import java.rmi.server.UnicastRemoteObject;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import javax.management.JMException;
 import javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
@@ -62,7 +62,7 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
     private CamelContext camelContext;
     private MBeanServer server;
     // need a name -> actual name mapping as some servers changes the names (such as WebSphere)
-    private final Map<ObjectName, ObjectName> mbeansRegistered = new HashMap<ObjectName, ObjectName>();
+    private final ConcurrentMap<ObjectName, ObjectName> mbeansRegistered = new ConcurrentHashMap<ObjectName, ObjectName>();
     private JMXConnectorServer cs;
     private Registry registry;
 
@@ -250,15 +250,17 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
 
     public void unregister(ObjectName name) throws JMException {
         if (isRegistered(name)) {
-            server.unregisterMBean(mbeansRegistered.get(name));
+            ObjectName on = mbeansRegistered.remove(name);
+            server.unregisterMBean(on);
             LOG.debug("Unregistered MBean with ObjectName: {}", name);
+        } else {
+            mbeansRegistered.remove(name);
         }
-        mbeansRegistered.remove(name);
     }
 
     public boolean isRegistered(ObjectName name) {
-        return (mbeansRegistered.containsKey(name) 
-                && server.isRegistered(mbeansRegistered.get(name))) 
+        ObjectName on = mbeansRegistered.get(name);
+        return (on != null && server.isRegistered(on))
                 || server.isRegistered(name);
     }
 


[4/4] git commit: CAMEL-6695: ManagementAgent should use a thread safe map for housekeeping of registered mbeans.

Posted by da...@apache.org.
CAMEL-6695: ManagementAgent should use a thread safe map for housekeeping of registered mbeans.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/44905ef4
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/44905ef4
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/44905ef4

Branch: refs/heads/camel-2.10.x
Commit: 44905ef4de80f146073397b297c77ea4e078b522
Parents: b368b05
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 3 13:48:19 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 3 13:49:13 2013 +0200

----------------------------------------------------------------------
 .../camel/management/DefaultManagementAgent.java    | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/44905ef4/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
index bd44b93..5f4edad 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
@@ -25,9 +25,9 @@ import java.rmi.RemoteException;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
 import java.rmi.server.UnicastRemoteObject;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import javax.management.JMException;
 import javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
@@ -62,7 +62,7 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
     private CamelContext camelContext;
     private MBeanServer server;
     // need a name -> actual name mapping as some servers changes the names (such as WebSphere)
-    private final Map<ObjectName, ObjectName> mbeansRegistered = new HashMap<ObjectName, ObjectName>();
+    private final ConcurrentMap<ObjectName, ObjectName> mbeansRegistered = new ConcurrentHashMap<ObjectName, ObjectName>();
     private JMXConnectorServer cs;
     private Registry registry;
 
@@ -238,15 +238,17 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
 
     public void unregister(ObjectName name) throws JMException {
         if (isRegistered(name)) {
-            server.unregisterMBean(mbeansRegistered.get(name));
+            ObjectName on = mbeansRegistered.remove(name);
+            server.unregisterMBean(on);
             LOG.debug("Unregistered MBean with ObjectName: {}", name);
+        } else {
+            mbeansRegistered.remove(name);
         }
-        mbeansRegistered.remove(name);
     }
 
     public boolean isRegistered(ObjectName name) {
-        return (mbeansRegistered.containsKey(name) 
-                && server.isRegistered(mbeansRegistered.get(name))) 
+        ObjectName on = mbeansRegistered.get(name);
+        return (on != null && server.isRegistered(on))
                 || server.isRegistered(name);
     }
 


[3/4] git commit: CAMEL-6695: ManagementAgent should use a thread safe map for housekeeping of registered mbeans.

Posted by da...@apache.org.
CAMEL-6695: ManagementAgent should use a thread safe map for housekeeping of registered mbeans.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4a4f6930
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4a4f6930
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4a4f6930

Branch: refs/heads/camel-2.11.x
Commit: 4a4f6930bb6e6bc1a7bd38d0f16ec4ad1037c249
Parents: b3bc9bc
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 3 13:48:19 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 3 13:48:57 2013 +0200

----------------------------------------------------------------------
 .../camel/management/DefaultManagementAgent.java    | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/4a4f6930/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
index ad44b11..78fc97a 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
@@ -25,9 +25,9 @@ import java.rmi.RemoteException;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
 import java.rmi.server.UnicastRemoteObject;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import javax.management.JMException;
 import javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
@@ -62,7 +62,7 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
     private CamelContext camelContext;
     private MBeanServer server;
     // need a name -> actual name mapping as some servers changes the names (such as WebSphere)
-    private final Map<ObjectName, ObjectName> mbeansRegistered = new HashMap<ObjectName, ObjectName>();
+    private final ConcurrentMap<ObjectName, ObjectName> mbeansRegistered = new ConcurrentHashMap<ObjectName, ObjectName>();
     private JMXConnectorServer cs;
     private Registry registry;
 
@@ -238,15 +238,17 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
 
     public void unregister(ObjectName name) throws JMException {
         if (isRegistered(name)) {
-            server.unregisterMBean(mbeansRegistered.get(name));
+            ObjectName on = mbeansRegistered.remove(name);
+            server.unregisterMBean(on);
             LOG.debug("Unregistered MBean with ObjectName: {}", name);
+        } else {
+            mbeansRegistered.remove(name);
         }
-        mbeansRegistered.remove(name);
     }
 
     public boolean isRegistered(ObjectName name) {
-        return (mbeansRegistered.containsKey(name) 
-                && server.isRegistered(mbeansRegistered.get(name))) 
+        ObjectName on = mbeansRegistered.get(name);
+        return (on != null && server.isRegistered(on))
                 || server.isRegistered(name);
     }