Author: jbonofre
Date: Thu Jul 28 12:20:43 2011
New Revision: 1151813

URL: http://svn.apache.org/viewvc?rev=1151813&view=rev
Log:
[KARAF-723] Remove the local attribute in the Cellar node MBean.

Modified:
    karaf/cellar/trunk/management/pom.xml
    
karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/codec/JmxNode.java
    
karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarNodeMBeanImpl.java

Modified: karaf/cellar/trunk/management/pom.xml
URL: 
http://svn.apache.org/viewvc/karaf/cellar/trunk/management/pom.xml?rev=1151813&r1=1151812&r2=1151813&view=diff
==============================================================================
--- karaf/cellar/trunk/management/pom.xml (original)
+++ karaf/cellar/trunk/management/pom.xml Thu Jul 28 12:20:43 2011
@@ -35,7 +35,7 @@
 
     <properties>
         <osgi.export>
-            org.apache.karaf.cellar.management;version="${project.version}"
+            org.apache.karaf.cellar.management*;version="${project.version}"
         </osgi.export>
         <osgi.import>
             !org.apache.karaf.cellar.management*,

Modified: 
karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/codec/JmxNode.java
URL: 
http://svn.apache.org/viewvc/karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/codec/JmxNode.java?rev=1151813&r1=1151812&r2=1151813&view=diff
==============================================================================
--- 
karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/codec/JmxNode.java
 (original)
+++ 
karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/codec/JmxNode.java
 Thu Jul 28 12:20:43 2011
@@ -13,7 +13,6 @@
  */
 package org.apache.karaf.cellar.management.codec;
 
-import org.apache.karaf.cellar.core.ClusterManager;
 import org.apache.karaf.cellar.core.Node;
 import org.apache.karaf.cellar.management.CellarNodeMBean;
 
@@ -40,18 +39,13 @@ public class JmxNode {
         return data;
     }
 
-    public JmxNode(Node node, ClusterManager clusterManager) {
+    public JmxNode(Node node) {
         try {
             String[] itemNames = CellarNodeMBean.NODE;
             Object[] itemValues = new Object[itemNames.length];
             itemValues[0] = node.getId();
             itemValues[1] = node.getHost();
             itemValues[2] = node.getPort();
-            if (node.getHost().equals(clusterManager.getNode())) {
-                itemValues[3] = true;
-            } else {
-                itemValues[3] = false;
-            }
             data = new CompositeDataSupport(NODE, itemNames, itemValues);
         } catch (OpenDataException e) {
             throw new IllegalStateException("Cannot create node open data", e);
@@ -74,9 +68,6 @@ public class JmxNode {
             itemTypes[2] = SimpleType.INTEGER;
             descriptions[2] = "The port number of the Cellar node";
 
-            itemTypes[3] = SimpleType.BOOLEAN;
-            descriptions[3] = "Whether the Cellar node is the local one or 
not";
-
             return new CompositeType("Node", desc, itemNames, descriptions, 
itemTypes);
         } catch (OpenDataException e) {
             throw new IllegalStateException("Unable to build node type", e);

Modified: 
karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarNodeMBeanImpl.java
URL: 
http://svn.apache.org/viewvc/karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarNodeMBeanImpl.java?rev=1151813&r1=1151812&r2=1151813&view=diff
==============================================================================
--- 
karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarNodeMBeanImpl.java
 (original)
+++ 
karaf/cellar/trunk/management/src/main/java/org/apache/karaf/cellar/management/internal/CellarNodeMBeanImpl.java
 Thu Jul 28 12:20:43 2011
@@ -16,6 +16,9 @@ package org.apache.karaf.cellar.manageme
 import org.apache.karaf.cellar.core.ClusterManager;
 import org.apache.karaf.cellar.core.Node;
 import org.apache.karaf.cellar.core.command.ExecutionContext;
+import org.apache.karaf.cellar.core.control.ManageGroupAction;
+import org.apache.karaf.cellar.core.control.ManageGroupCommand;
+import org.apache.karaf.cellar.core.control.ManageGroupResult;
 import org.apache.karaf.cellar.management.CellarNodeMBean;
 import org.apache.karaf.cellar.management.codec.JmxNode;
 import org.apache.karaf.cellar.utils.ping.Ping;
@@ -64,11 +67,27 @@ public class CellarNodeMBeanImpl extends
     }
 
     public TabularData getNodes() throws Exception {
-        Set<Node> allNodes = clusterManager.listNodes();
+        // manipulate the class loader
+        ClassLoader originalClassLoader = 
Thread.currentThread().getContextClassLoader();
+
         List<JmxNode> nodes = new ArrayList<JmxNode>();
-        for (Node node : allNodes) {
-            nodes.add(new JmxNode(node, clusterManager));
+
+        try {
+            
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+            ManageGroupCommand command = new 
ManageGroupCommand(clusterManager.generateId());
+            Set<Node> recipientList = new HashSet<Node>();
+            recipientList.add(clusterManager.getNode());
+            command.setDestination(recipientList);
+            command.setAction(ManageGroupAction.LIST);
+
+            Map<Node, ManageGroupResult> results = 
executionContext.execute(command);
+            for (Node node : results.keySet()) {
+                nodes.add(new JmxNode(node));
+            }
+        } finally {
+            Thread.currentThread().setContextClassLoader(originalClassLoader);
         }
+
         TabularData table = JmxNode.tableFrom(nodes);
         return table;
     }


Reply via email to