Repository: karaf-decanter
Updated Branches:
  refs/heads/master b4d2d8cdb -> 07da48c1a


[KARAF-4495] Add custom fields support in all collectors


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

Branch: refs/heads/master
Commit: 07da48c1a0cff246bebe3b0fc2a3edca13c49a16
Parents: b4d2d8c
Author: Jean-Baptiste Onofré <[email protected]>
Authored: Tue Apr 19 16:49:00 2016 +0200
Committer: Jean-Baptiste Onofré <[email protected]>
Committed: Tue Apr 19 16:49:00 2016 +0200

----------------------------------------------------------------------
 .../camel/DecanterTraceEventHandler.java         | 10 ++++++++++
 ...f.decanter.collector.eventadmin-framework.cfg |  5 ++++-
 ...karaf.decanter.collector.eventadmin-karaf.cfg |  5 ++++-
 .../collector/eventadmin/EventCollector.java     | 17 +++++++++++++++++
 .../decanter/collector/log/LogAppender.java      | 19 +++++++++++++++++++
 .../collector/log/socket/SocketCollector.java    | 17 ++++++++++++++---
 .../decanter/collector/rest/RestCollector.java   |  9 +++++++++
 .../collector/system/SystemCollector.java        | 10 +++++-----
 8 files changed, 82 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/07da48c1/collector/camel-tracer/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterTraceEventHandler.java
----------------------------------------------------------------------
diff --git 
a/collector/camel-tracer/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterTraceEventHandler.java
 
b/collector/camel-tracer/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterTraceEventHandler.java
index 6040bd7..a9fa32a 100644
--- 
a/collector/camel-tracer/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterTraceEventHandler.java
+++ 
b/collector/camel-tracer/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterTraceEventHandler.java
@@ -45,7 +45,17 @@ public class DecanterTraceEventHandler implements 
TraceEventHandler {
         data.put("routeId", exchange.getFromRouteId());
         data.put("shortExchangeId", extractShortExchangeId(exchange));
         data.put("exchangePattern", exchange.getPattern().toString());
+        for (String property : exchange.getProperties().keySet()) {
+            if (property.startsWith("decanter.")) {
+                data.put(property.substring("decanter.".length()), 
exchange.getProperties().get(property));
+            }
+        }
         data.put("properties", exchange.getProperties().isEmpty() ? null : 
exchange.getProperties().toString());
+        for (String header : exchange.getIn().getHeaders().keySet()) {
+            if (header.startsWith("decanter.")) {
+                data.put(header.substring("decanter.".length()), 
exchange.getIn().getHeader(header));
+            }
+        }
         data.put("inHeaders", exchange.getIn().getHeaders().isEmpty() ? null : 
exchange.getIn().getHeaders().toString());
         data.put("inBody", 
MessageHelper.extractBodyAsString(exchange.getIn()));
         data.put("inBodyType", 
MessageHelper.getBodyTypeName(exchange.getIn()));

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/07da48c1/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-framework.cfg
----------------------------------------------------------------------
diff --git 
a/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-framework.cfg
 
b/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-framework.cfg
index 128b64d..ab7ffa9 100644
--- 
a/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-framework.cfg
+++ 
b/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-framework.cfg
@@ -3,4 +3,7 @@
 #
 
 # EventAdmin topics to listen
-event.topics=org/osgi/framework/*
\ No newline at end of file
+event.topics=org/osgi/framework/*
+
+# Custom fields
+#key=value
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/07da48c1/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-karaf.cfg
----------------------------------------------------------------------
diff --git 
a/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-karaf.cfg
 
b/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-karaf.cfg
index 0bc9c9d..37b7605 100644
--- 
a/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-karaf.cfg
+++ 
b/collector/eventadmin/src/main/cfg/org.apache.karaf.decanter.collector.eventadmin-karaf.cfg
@@ -3,4 +3,7 @@
 #
 
 # EventAdmin topics to listen
-event.topics=org/apache/karaf/*
\ No newline at end of file
+event.topics=org/apache/karaf/*
+
+# Custom fields
+#key=value
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/07da48c1/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java
----------------------------------------------------------------------
diff --git 
a/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java
 
b/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java
index fec06ce..550f089 100644
--- 
a/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java
+++ 
b/collector/eventadmin/src/main/java/org/apache/karaf/decanter/collector/eventadmin/EventCollector.java
@@ -16,6 +16,8 @@
  */
 package org.apache.karaf.decanter.collector.eventadmin;
 
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.event.Event;
@@ -35,6 +37,13 @@ public class EventCollector implements EventHandler {
 
     private EventAdmin eventAdmin;
 
+    private Dictionary<String, Object> properties;
+
+    @Activate
+    public void activate(ComponentContext context) {
+        properties = context.getProperties();
+    }
+
     @Override
     public void handleEvent(Event event) {
         String topic = event.getTopic();
@@ -50,6 +59,14 @@ public class EventCollector implements EventHandler {
         } catch (Exception e) {
             // nothing to do
         }
+
+        // custom fields
+        Enumeration<String> keys = properties.keys();
+        while (keys.hasMoreElements()) {
+            String key = keys.nextElement();
+            data.put(key, properties.get(key));
+        }
+
         for (String property : event.getPropertyNames()) {
             if (property.equals("type")) {
                 if (event.getProperty(property) != null) {

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/07da48c1/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java
----------------------------------------------------------------------
diff --git 
a/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java
 
b/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java
index 3d0425d..ca09396 100644
--- 
a/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java
+++ 
b/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java
@@ -17,6 +17,8 @@
 package org.apache.karaf.decanter.collector.log;
 
 import java.net.InetAddress;
+import java.util.Dictionary;
+import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -24,6 +26,8 @@ import org.apache.log4j.MDC;
 import org.ops4j.pax.logging.spi.PaxAppender;
 import org.ops4j.pax.logging.spi.PaxLocationInfo;
 import org.ops4j.pax.logging.spi.PaxLoggingEvent;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.event.Event;
@@ -45,7 +49,15 @@ public class LogAppender implements PaxAppender {
     private static final String MDC_IN_LOG_APPENDER = "inLogAppender";
     private final static String[] ignoredCategories = 
{"org.apache.karaf.decanter"};
     private final static Logger LOGGER = 
LoggerFactory.getLogger(LogAppender.class);
+
+    private Dictionary<String, Object> properties;
+
     private EventAdmin dispatcher;
+
+    @Activate
+    public void activate(ComponentContext context) {
+        this.properties = context.getProperties();
+    }
     
     public void doAppend(PaxLoggingEvent event) {
         try {
@@ -80,6 +92,13 @@ public class LogAppender implements PaxAppender {
         data.put("hostAddress", InetAddress.getLocalHost().getHostAddress());
         data.put("hostName", InetAddress.getLocalHost().getHostName());
 
+        // custom fields
+        Enumeration<String> keys = properties.keys();
+        while (keys.hasMoreElements()) {
+            String key = keys.nextElement();
+            data.put(key, properties.get(key));
+        }
+
         data.put("timestamp", event.getTimeStamp());
         data.put("loggerClass", event.getFQNOfLoggerClass());
         data.put("loggerName", event.getLoggerName());

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/07da48c1/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java
----------------------------------------------------------------------
diff --git 
a/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java
 
b/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java
index 5306136..f6715f2 100644
--- 
a/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java
+++ 
b/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java
@@ -25,6 +25,7 @@ import java.net.ServerSocket;
 import java.net.Socket;
 import java.net.UnknownHostException;
 import java.util.Dictionary;
+import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
@@ -47,17 +48,19 @@ import org.slf4j.LoggerFactory;
     immediate = true
 )
 public class SocketCollector implements Closeable, Runnable {
+
     private static final Logger LOGGER = 
LoggerFactory.getLogger(SocketCollector.class);
     private ServerSocket serverSocket;
     private EventAdmin eventAdmin;
     private boolean open;
     private ExecutorService executor;
+    private Dictionary<String, Object> properties;
 
     @SuppressWarnings("unchecked")
     @Activate
     public void activate(ComponentContext context) throws IOException {
-        Dictionary<String, Object> properties = context.getProperties();
-        int port = Integer.parseInt(getProperty(properties, "port", "4560"));
+        this.properties = context.getProperties();
+        int port = Integer.parseInt(getProperty(this.properties, "port", 
"4560"));
         LOGGER.info("Starting Log4j Socket collector on port {}", port);
         this.serverSocket = new ServerSocket(port);
         this.executor = Executors.newFixedThreadPool(1);
@@ -95,7 +98,15 @@ public class SocketCollector implements Closeable, Runnable {
         Map<String, Object> data = new HashMap<>();
         data.put("hostAddress", InetAddress.getLocalHost().getHostAddress());
         data.put("hostName", InetAddress.getLocalHost().getHostName());
-        data.put("timeStamp", event.getTimeStamp());
+
+        // custom fields
+        Enumeration<String> keys = properties.keys();
+        while (keys.hasMoreElements()) {
+            String key = keys.nextElement();
+            data.put(key, properties.get(key));
+        }
+
+        data.put("timestamp", event.getTimeStamp());
         data.put("loggerClass", event.getFQNOfLoggerClass());
         data.put("loggerName", event.getLoggerName());
         data.put("threadName", event.getThreadName());

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/07da48c1/collector/rest/src/main/java/org/apache/karaf/decanter/collector/rest/RestCollector.java
----------------------------------------------------------------------
diff --git 
a/collector/rest/src/main/java/org/apache/karaf/decanter/collector/rest/RestCollector.java
 
b/collector/rest/src/main/java/org/apache/karaf/decanter/collector/rest/RestCollector.java
index b322644..6852b45 100644
--- 
a/collector/rest/src/main/java/org/apache/karaf/decanter/collector/rest/RestCollector.java
+++ 
b/collector/rest/src/main/java/org/apache/karaf/decanter/collector/rest/RestCollector.java
@@ -43,6 +43,7 @@ import org.slf4j.LoggerFactory;
     property = "decanter.collector.name=rest"
 )
 public class RestCollector implements Runnable {
+
     private final static Logger LOGGER = 
LoggerFactory.getLogger(RestCollector.class);
 
     private URL url;
@@ -91,6 +92,14 @@ public class RestCollector implements Runnable {
                 data.put("type", "rest");
                 data.put("hostName", url.getHost());
                 data.put("remote.url", complete);
+
+                // custom fields
+                Enumeration<String> keys = properties.keys();
+                while (keys.hasMoreElements()) {
+                    String key = keys.nextElement();
+                    data.put(key, properties.get(key));
+                }
+
                 addUserProperties(data);
                 eventAdmin.postEvent(new Event(toTopic(complete), data));
                 repeatedError = false;

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/07da48c1/collector/system/src/main/java/org/apache/karaf/decanter/collector/system/SystemCollector.java
----------------------------------------------------------------------
diff --git 
a/collector/system/src/main/java/org/apache/karaf/decanter/collector/system/SystemCollector.java
 
b/collector/system/src/main/java/org/apache/karaf/decanter/collector/system/SystemCollector.java
index 5d13c11..105d38d 100644
--- 
a/collector/system/src/main/java/org/apache/karaf/decanter/collector/system/SystemCollector.java
+++ 
b/collector/system/src/main/java/org/apache/karaf/decanter/collector/system/SystemCollector.java
@@ -43,17 +43,17 @@ public class SystemCollector implements Runnable {
     private final static Logger LOGGER = 
LoggerFactory.getLogger(SystemCollector.class);
 
     private EventAdmin eventAdmin;
-    private Dictionary<String, Object> config;
+    private Dictionary<String, Object> properties;
 
     @SuppressWarnings("unchecked")
     @Activate
     public void activate(ComponentContext context) {
-        this.config = context.getProperties();
+        this.properties = context.getProperties();
     }
 
     @Override
     public void run() {
-        if (config != null) {
+        if (properties != null) {
             String karafName = System.getProperty("karaf.name");
             String hostAddress = null;
             String hostName = null;
@@ -63,13 +63,13 @@ public class SystemCollector implements Runnable {
             } catch (Exception e) {
                 // nothing to do
             }
-            Enumeration<String> keys = config.keys();
+            Enumeration<String> keys = properties.keys();
             while (keys.hasMoreElements()) {
                 String key = (String) keys.nextElement();
                 try {
                     if (!key.equals("felix.fileinstall.filename") && 
!key.equals("service.pid")) {
                         HashMap<String, Object> data = new HashMap<>();
-                        String command = (String) config.get(key);
+                        String command = (String) properties.get(key);
                         LOGGER.debug("Executing {} ({})", command, key);
                         CommandLine cmdLine = CommandLine.parse(command);
                         DefaultExecutor executor = new DefaultExecutor();

Reply via email to