You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2015/10/12 14:40:49 UTC

karaf-decanter git commit: [KARAF-4008] Forward custom fields to the dispatcher from the JMX collector

Repository: karaf-decanter
Updated Branches:
  refs/heads/master a7e3eae67 -> 4d65066be


[KARAF-4008] Forward custom fields to the dispatcher from the JMX collector


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

Branch: refs/heads/master
Commit: 4d65066bed8a92c877df9d441626c1e739d114d0
Parents: a7e3eae
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Mon Oct 12 14:40:19 2015 +0200
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Mon Oct 12 14:40:19 2015 +0200

----------------------------------------------------------------------
 ...rg.apache.karaf.decanter.collector.jmx-activemq.cfg |  6 ++++++
 .../org.apache.karaf.decanter.collector.jmx-camel.cfg  |  6 ++++++
 .../org.apache.karaf.decanter.collector.jmx-local.cfg  |  6 ++++++
 .../apache/karaf/decanter/collector/jmx/Activator.java |  2 +-
 .../karaf/decanter/collector/jmx/JmxCollector.java     | 13 +++++++++++--
 .../karaf/decanter/collector/jmx/TestMapAttribute.java |  2 +-
 6 files changed, 31 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/4d65066b/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-activemq.cfg
----------------------------------------------------------------------
diff --git a/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-activemq.cfg b/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-activemq.cfg
index db0f702..fe4d75e 100644
--- a/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-activemq.cfg
+++ b/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-activemq.cfg
@@ -19,3 +19,9 @@ url=local
 # Object name filter to use. Instead of harvesting all MBeans, you can select only
 # some MBeans matching the object name filter
 object.name=org.apache.activemq:*
+
+# You can add any custom field that the collector will "forward" to the dispatcher
+# For instance:
+#
+# my=stuff
+#

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/4d65066b/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-camel.cfg
----------------------------------------------------------------------
diff --git a/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-camel.cfg b/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-camel.cfg
index 488ae96..0674e52 100644
--- a/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-camel.cfg
+++ b/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-camel.cfg
@@ -19,3 +19,9 @@ url=local
 # Object name filter to use. Instead of harvesting all MBeans, you can select only
 # some MBeans matching the object name filter
 object.name=org.apache.camel:context=*,type=routes,name=*
+
+# You can add any custom field that the collector will "forward" to the dispatcher
+# For instance:
+#
+# my=stuff
+#
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/4d65066b/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-local.cfg
----------------------------------------------------------------------
diff --git a/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-local.cfg b/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-local.cfg
index 939ac7a..bceacbd 100644
--- a/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-local.cfg
+++ b/collector/jmx/src/main/cfg/org.apache.karaf.decanter.collector.jmx-local.cfg
@@ -19,3 +19,9 @@ url=local
 # Object name filter to use. Instead of harvesting all MBeans, you can select only
 # some MBeans matching the object name filter
 #object.name=org.apache.camel:context=*,type=routes,name=*
+
+# You can add any custom field that the collector will "forward" to the dispatcher
+# For instance:
+#
+# my=stuff
+#
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/4d65066b/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/Activator.java
----------------------------------------------------------------------
diff --git a/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/Activator.java b/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/Activator.java
index 9a71bd8..3e3ca60 100644
--- a/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/Activator.java
+++ b/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/Activator.java
@@ -105,7 +105,7 @@ public class Activator implements BundleActivator {
                     if (properties.get("object.name") != null) {
                         objectName = (String) properties.get("object.name");
                     }
-                    JmxCollector collector = new JmxCollector(type, url, username, password, objectName, eventAdmin);
+                    JmxCollector collector = new JmxCollector(type, url, username, password, objectName, eventAdmin, properties);
                     Dictionary<String, String> serviceProperties = new Hashtable<String, String>();
                     serviceProperties.put("decanter.collector.name", type);
                     registration = bundleContext.registerService(Runnable.class, collector, serviceProperties);

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/4d65066b/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/JmxCollector.java
----------------------------------------------------------------------
diff --git a/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/JmxCollector.java b/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/JmxCollector.java
index 49d5f96..0af816c 100644
--- a/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/JmxCollector.java
+++ b/collector/jmx/src/main/java/org/apache/karaf/decanter/collector/jmx/JmxCollector.java
@@ -18,7 +18,6 @@ package org.apache.karaf.decanter.collector.jmx;
 
 import java.lang.management.ManagementFactory;
 import java.net.InetAddress;
-import java.net.NetworkInterface;
 import java.util.*;
 
 import javax.management.MBeanAttributeInfo;
@@ -47,14 +46,16 @@ public class JmxCollector implements Runnable {
     private String password;
     private String objectName;
     private EventAdmin eventAdmin;
+    private Dictionary<String, String> properties;
 
-    public JmxCollector(String type, String url, String username, String password, String objectName, EventAdmin eventAdmin) {
+    public JmxCollector(String type, String url, String username, String password, String objectName, EventAdmin eventAdmin, Dictionary<String, String> properties) {
         this.type = type;
         this.url = url;
         this.username = username;
         this.password = password;
         this.eventAdmin = eventAdmin;
         this.objectName = objectName;
+        this.properties = properties;
     }
 
     @Override
@@ -104,6 +105,14 @@ public class JmxCollector implements Runnable {
                 for (ObjectName name : names) {
                     try {
                         Map<String, Object> data = harvestBean(connection, name, type, host);
+                        // add additional properties (can be provided by the user)
+                        if (properties != null) {
+                            Enumeration<String> keys = properties.keys();
+                            while (keys.hasMoreElements()) {
+                                String property = keys.nextElement();
+                                data.put(property, properties.get(property));
+                            }
+                        }
                         Event event = new Event("decanter/collect/jmx/" + type + "/" + getTopic(name), data);
                         eventAdmin.postEvent(event);
                     } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/4d65066b/collector/jmx/src/test/java/org/apache/karaf/decanter/collector/jmx/TestMapAttribute.java
----------------------------------------------------------------------
diff --git a/collector/jmx/src/test/java/org/apache/karaf/decanter/collector/jmx/TestMapAttribute.java b/collector/jmx/src/test/java/org/apache/karaf/decanter/collector/jmx/TestMapAttribute.java
index 6ee9441..4291ce5 100644
--- a/collector/jmx/src/test/java/org/apache/karaf/decanter/collector/jmx/TestMapAttribute.java
+++ b/collector/jmx/src/test/java/org/apache/karaf/decanter/collector/jmx/TestMapAttribute.java
@@ -16,7 +16,7 @@ public class TestMapAttribute {
     @Test
     public void testOperatingSystemMBean() throws MalformedObjectNameException, Exception {
         MBeanServerConnection server = ManagementFactory.getPlatformMBeanServer();
-        JmxCollector jmxCollector = new JmxCollector("local", "local", null, null, null, null);
+        JmxCollector jmxCollector = new JmxCollector("local", "local", null, null, null, null, null);
         Map<String, Object> data = jmxCollector.harvestBean(server, new ObjectName("java.lang:type=OperatingSystem"), "local", null);
         Assert.assertTrue(data.size() >= 15);
         Object freeMem = data.get("FreePhysicalMemorySize");