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;
}