Repository: camel
Updated Branches:
  refs/heads/master a2300894c -> a87849838


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/9544da82
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9544da82
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9544da82

Branch: refs/heads/master
Commit: 9544da824cee97e9190b1847055d55c7533a80f6
Parents: a230089
Author: Claus Ibsen <davscl...@apache.org>
Authored: Tue Dec 16 16:09:51 2014 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Dec 16 16:09:51 2014 +0100

----------------------------------------------------------------------
 .../jolokia/DefaultJolokiaCamelController.java  | 49 ++++++++++++++------
 1 file changed, 35 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/9544da82/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
----------------------------------------------------------------------
diff --git 
a/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
 
b/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
index 6462cff..ce44a3e 100644
--- 
a/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
+++ 
b/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
@@ -101,26 +101,47 @@ public class DefaultJolokiaCamelController extends 
AbstractCamelController imple
             throw new IllegalStateException("Need to connect to remote jolokia 
first");
         }
 
+        // 
org.apache.camel:context=camel-1,type=services,name=DefaultTypeConverter
+
         Map<String, Object> answer = new LinkedHashMap<String, Object>();
 
         ObjectName found = lookupCamelContext(camelContextName);
         if (found != null) {
-            J4pReadResponse rr = jolokia.execute(new J4pReadRequest(found));
-            if (rr != null) {
-                for (String key : rr.getAttributes()) {
-                    answer.put(asKey(key), rr.getValue(key));
+
+            String pattern = 
String.format("%s:context=%s,type=services,name=DefaultTypeConverter", 
found.getDomain(), found.getKeyProperty("context"));
+            ObjectName tc = ObjectName.getInstance(pattern);
+
+            List<J4pReadRequest> list = new ArrayList<>();
+            list.add(new J4pReadRequest(found));
+            list.add(new J4pReadRequest(tc));
+
+            List<J4pReadResponse> rr = jolokia.execute(list);
+            if (rr != null && rr.size() > 0) {
+                // camel context attributes
+                J4pReadResponse first = rr.get(0);
+                for (String key : first.getAttributes()) {
+                    answer.put(asKey(key), first.getValue(key));
                 }
-            }
 
-            // store some data using special names as that is what the 
core-commands expects
-            answer.put("name", answer.get("camelId"));
-            answer.put("status", answer.get("state"));
-            answer.put("version", answer.get("camelVersion"));
-            answer.put("suspended", "Suspended".equals(answer.get("state")));
-            TimeUnit unit = TimeUnit.valueOf((String) answer.get("timeUnit"));
-            long timeout = (Long) answer.get("timeout");
-            answer.put("shutdownTimeout", "" + unit.toSeconds(timeout));
-            answer.put("applicationContextClassLoader", 
answer.get("applicationContextClassName"));
+                // type converter attributes
+                if (rr.size() == 2) {
+                    J4pReadResponse second = rr.get(1);
+                    for (String key : second.getAttributes()) {
+
+                        answer.put("typeConverter." + asKey(key), 
second.getValue(key));
+                    }
+                }
+
+                // store some data using special names as that is what the 
core-commands expects
+                answer.put("name", answer.get("camelId"));
+                answer.put("status", answer.get("state"));
+                answer.put("version", answer.get("camelVersion"));
+                answer.put("suspended", 
"Suspended".equals(answer.get("state")));
+                TimeUnit unit = TimeUnit.valueOf((String) 
answer.get("timeUnit"));
+                long timeout = (Long) answer.get("timeout");
+                answer.put("shutdownTimeout", "" + unit.toSeconds(timeout));
+                answer.put("applicationContextClassLoader", 
answer.get("applicationContextClassName"));
+            }
         }
 
         return answer;

Reply via email to