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 2014/12/11 18:56:24 UTC

[2/6] camel git commit: CAMEL-8044: Camel commands useable for remote JVMs using jolokia

CAMEL-8044: Camel commands useable for remote JVMs using jolokia


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

Branch: refs/heads/master
Commit: b15b009a21805bfbc2553fbbec5a132aecd69681
Parents: 57b91f8
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Dec 11 18:56:01 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Dec 11 18:56:10 2014 +0100

----------------------------------------------------------------------
 .../jolokia/JolokiaCamelController.java         | 37 ++++++++++++++++++--
 .../commands/jolokia/JolokiaRemoteTest.java     |  9 +++++
 2 files changed, 44 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b15b009a/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/JolokiaCamelController.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/JolokiaCamelController.java b/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/JolokiaCamelController.java
index bb87e81..3e7b251 100644
--- a/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/JolokiaCamelController.java
+++ b/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/JolokiaCamelController.java
@@ -491,9 +491,42 @@ public class JolokiaCamelController extends AbstractCamelController implements R
             throw new IllegalStateException("Need to connect to remote jolokia first");
         }
 
-        // TODO: implement me
+        List<Map<String, String>> answer = new ArrayList<Map<String, String>>();
 
-        return null;
+        ObjectName found = lookupCamelContext(camelContextName);
+        if (found != null) {
+            J4pExecResponse response = jolokia.execute(new J4pExecRequest(found, "listComponents()"));
+            if (response != null) {
+                JSONObject data = response.getValue();
+                for (Object obj : data.values()) {
+                    JSONObject data2 = (JSONObject) obj;
+                    JSONObject component = (JSONObject) data2.values().iterator().next();
+
+                    Map<String, String> row = new LinkedHashMap<String, String>();
+                    row.put("artifactId", asString(component.get("artifactId")));
+                    row.put("description", asString(component.get("description")));
+                    row.put("groupId", asString(component.get("groupId")));
+                    row.put("label", asString(component.get("label")));
+                    row.put("name", asString(component.get("name")));
+                    row.put("status", asString(component.get("status")));
+                    row.put("type", asString(component.get("type")));
+                    row.put("version", asString(component.get("version")));
+                    answer.add(row);
+                }
+            }
+
+            // sort the list
+            Collections.sort(answer, new Comparator<Map<String, String>>() {
+                @Override
+                public int compare(Map<String, String> component1, Map<String, String> component2) {
+                    String name1 = component1.get("name");
+                    String name2 = component2.get("name");
+                    return name1.compareTo(name2);
+                }
+            });
+        }
+
+        return answer;
     }
 
     private static String asKey(String attributeKey) {

http://git-wip-us.apache.org/repos/asf/camel/blob/b15b009a/platforms/commands/commands-jolokia/src/test/java/org/apache/camel/commands/jolokia/JolokiaRemoteTest.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-jolokia/src/test/java/org/apache/camel/commands/jolokia/JolokiaRemoteTest.java b/platforms/commands/commands-jolokia/src/test/java/org/apache/camel/commands/jolokia/JolokiaRemoteTest.java
index 2afc2c2..bdfa8fa 100644
--- a/platforms/commands/commands-jolokia/src/test/java/org/apache/camel/commands/jolokia/JolokiaRemoteTest.java
+++ b/platforms/commands/commands-jolokia/src/test/java/org/apache/camel/commands/jolokia/JolokiaRemoteTest.java
@@ -177,4 +177,13 @@ public class JolokiaRemoteTest {
         System.out.println(data);
     }
 
+    @Test
+    public void testListComponents() throws Exception {
+        controller = new JolokiaCamelController();
+        controller.connect(url, null, null);
+
+        List<Map<String, String>> data = controller.listComponents("myCamel");
+        System.out.println(data);
+    }
+
 }