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 2015/05/03 11:38:19 UTC

[1/6] camel git commit: Issue CAMEL-8640. Encapsulated BacklogTracer queue. Implementation of queue changed to list based instead of array based. Ensuring free space in queue responsibility moved into BacklogTracer instead from BacklogTracer's user.

Repository: camel
Updated Branches:
  refs/heads/camel-2.15.x 2f2746e35 -> 6f8fdc4bb
  refs/heads/master a30617333 -> e669002a9


Issue CAMEL-8640. Encapsulated BacklogTracer queue. Implementation of queue changed to list based instead of array based. Ensuring free space in queue responsibility moved into BacklogTracer instead from BacklogTracer's user.


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

Branch: refs/heads/master
Commit: d0bf15f5e3daf02ca2113a9936335ae8323efcd0
Parents: a306173
Author: Claus Ibsen <da...@apache.org>
Authored: Sun May 3 11:32:49 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun May 3 11:32:49 2015 +0200

----------------------------------------------------------------------
 .../apache/camel/impl/DefaultCamelContext.java  |  2 +-
 .../camel/processor/CamelInternalProcessor.java | 21 +++----------
 .../processor/interceptor/BacklogTracer.java    | 32 ++++++++++++--------
 .../processor/interceptor/DefaultChannel.java   |  2 +-
 4 files changed, 26 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d0bf15f5/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index 17de821..7056932 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -3589,7 +3589,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
 
     public InterceptStrategy getDefaultBacklogTracer() {
         if (defaultBacklogTracer == null) {
-            defaultBacklogTracer = new BacklogTracer(this);
+            defaultBacklogTracer = BacklogTracer.createTracer(this);
         }
         return defaultBacklogTracer;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/d0bf15f5/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
index 97f557b..f8c71f4 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
@@ -19,7 +19,6 @@ package org.apache.camel.processor;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Queue;
 import java.util.concurrent.RejectedExecutionException;
 
 import org.apache.camel.AsyncCallback;
@@ -521,15 +520,13 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor {
      */
     public static final class BacklogTracerAdvice implements CamelInternalProcessorAdvice {
 
-        private final Queue<DefaultBacklogTracerEventMessage> queue;
         private final BacklogTracer backlogTracer;
         private final ProcessorDefinition<?> processorDefinition;
         private final ProcessorDefinition<?> routeDefinition;
         private final boolean first;
 
-        public BacklogTracerAdvice(Queue<DefaultBacklogTracerEventMessage> queue, BacklogTracer backlogTracer,
-                                   ProcessorDefinition<?> processorDefinition, ProcessorDefinition<?> routeDefinition, boolean first) {
-            this.queue = queue;
+        public BacklogTracerAdvice(BacklogTracer backlogTracer, ProcessorDefinition<?> processorDefinition,
+                                   ProcessorDefinition<?> routeDefinition, boolean first) {
             this.backlogTracer = backlogTracer;
             this.processorDefinition = processorDefinition;
             this.routeDefinition = routeDefinition;
@@ -539,16 +536,6 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor {
         @Override
         public Object before(Exchange exchange) throws Exception {
             if (backlogTracer.shouldTrace(processorDefinition, exchange)) {
-                // ensure there is space on the queue
-                int drain = queue.size() - backlogTracer.getBacklogSize();
-                // and we need room for ourselves and possible also a first pseudo message as well
-                drain += first ? 2 : 1;
-                if (drain > 0) {
-                    for (int i = 0; i < drain; i++) {
-                        queue.poll();
-                    }
-                }
-
                 Date timestamp = new Date();
                 String toNode = processorDefinition.getId();
                 String exchangeId = exchange.getExchangeId();
@@ -560,10 +547,10 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor {
                 if (first) {
                     Date created = exchange.getProperty(Exchange.CREATED_TIMESTAMP, timestamp, Date.class);
                     DefaultBacklogTracerEventMessage pseudo = new DefaultBacklogTracerEventMessage(backlogTracer.incrementTraceCounter(), created, routeId, null, exchangeId, messageAsXml);
-                    queue.add(pseudo);
+                    backlogTracer.traceEvent(pseudo);
                 }
                 DefaultBacklogTracerEventMessage event = new DefaultBacklogTracerEventMessage(backlogTracer.incrementTraceCounter(), timestamp, routeId, toNode, exchangeId, messageAsXml);
-                queue.add(event);
+                backlogTracer.traceEvent(event);
             }
 
             return null;

http://git-wip-us.apache.org/repos/asf/camel/blob/d0bf15f5/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
index 6dde932..e2c51bd 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
@@ -19,7 +19,7 @@ package org.apache.camel.processor.interceptor;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Queue;
-import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.camel.CamelContext;
@@ -52,7 +52,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     private boolean enabled;
     private final AtomicLong traceCounter = new AtomicLong(0);
     // use a queue with a upper limit to avoid storing too many messages
-    private final Queue<DefaultBacklogTracerEventMessage> queue = new ArrayBlockingQueue<DefaultBacklogTracerEventMessage>(MAX_BACKLOG_SIZE);
+    private final Queue<BacklogTracerEventMessage> queue = new LinkedBlockingQueue<>(MAX_BACKLOG_SIZE);
     // how many of the last messages to keep in the backlog at total
     private int backlogSize = 1000;
     private boolean removeOnDump = true;
@@ -65,14 +65,10 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     private String traceFilter;
     private Predicate predicate;
 
-    public BacklogTracer(CamelContext camelContext) {
+    private BacklogTracer(CamelContext camelContext) {
         this.camelContext = camelContext;
     }
 
-    public Queue<DefaultBacklogTracerEventMessage> getQueue() {
-        return queue;
-    }
-
     @Override
     @Deprecated
     public Processor wrapProcessorInInterceptors(CamelContext context, ProcessorDefinition<?> definition, Processor target, Processor nextTarget) throws Exception {
@@ -86,8 +82,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
      * @return a new backlog tracer
      */
     public static BacklogTracer createTracer(CamelContext context) {
-        BacklogTracer tracer = new BacklogTracer(context);
-        return tracer;
+        return new BacklogTracer(context);
     }
 
     /**
@@ -153,6 +148,19 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
         return false;
     }
 
+    public void traceEvent(DefaultBacklogTracerEventMessage event) {
+        if (!enabled) {
+            return;
+        }
+
+        // ensure there is space on the queue and we need room for ourselves and possible also a first pseudo message as well
+        if (queue.size() >= backlogSize) {
+            queue.poll();
+        }
+
+        queue.add(event);
+    }
+
     private boolean shouldTraceFilter(Exchange exchange) {
         return predicate.matches(exchange);
     }
@@ -251,9 +259,9 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     }
 
     public List<BacklogTracerEventMessage> dumpTracedMessages(String nodeId) {
-        List<BacklogTracerEventMessage> answer = new ArrayList<BacklogTracerEventMessage>();
+        List<BacklogTracerEventMessage> answer = new ArrayList<>();
         if (nodeId != null) {
-            for (DefaultBacklogTracerEventMessage message : queue) {
+            for (BacklogTracerEventMessage message : queue) {
                 if (nodeId.equals(message.getToNode()) || nodeId.equals(message.getRouteId())) {
                     answer.add(message);
                 }
@@ -280,7 +288,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     }
 
     public List<BacklogTracerEventMessage> dumpAllTracedMessages() {
-        List<BacklogTracerEventMessage> answer = new ArrayList<BacklogTracerEventMessage>();
+        List<BacklogTracerEventMessage> answer = new ArrayList<>();
         answer.addAll(queue);
         if (isRemoveOnDump()) {
             queue.clear();

http://git-wip-us.apache.org/repos/asf/camel/blob/d0bf15f5/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java
index c9ae2f3..dc719e3 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java
@@ -229,7 +229,7 @@ public class DefaultChannel extends CamelInternalProcessor implements ModelChann
                 first = route.getOutputs().get(0) == definition;
             }
 
-            addAdvice(new BacklogTracerAdvice(backlogTracer.getQueue(), backlogTracer, targetOutputDef, route, first));
+            addAdvice(new BacklogTracerAdvice(backlogTracer, targetOutputDef, route, first));
 
             // add debugger as well so we have both tracing and debugging out of the box
             InterceptStrategy debugger = getOrCreateBacklogDebugger();


[4/6] camel git commit: Issue CAMEL-8640. Encapsulated BacklogTracer queue. Implementation of queue changed to list based instead of array based. Ensuring free space in queue responsibility moved into BacklogTracer instead from BacklogTracer's user.

Posted by da...@apache.org.
Issue CAMEL-8640. Encapsulated BacklogTracer queue. Implementation of queue changed to list based instead of array based. Ensuring free space in queue responsibility moved into BacklogTracer instead from BacklogTracer's user.


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

Branch: refs/heads/camel-2.15.x
Commit: 2c19b34f7a439d8f6119f3c500a784d63307d3c0
Parents: 2f2746e
Author: Claus Ibsen <da...@apache.org>
Authored: Sun May 3 11:32:49 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun May 3 11:41:48 2015 +0200

----------------------------------------------------------------------
 .../apache/camel/impl/DefaultCamelContext.java  |  2 +-
 .../camel/processor/CamelInternalProcessor.java | 21 +++----------
 .../processor/interceptor/BacklogTracer.java    | 32 ++++++++++++--------
 .../processor/interceptor/DefaultChannel.java   |  2 +-
 4 files changed, 26 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/2c19b34f/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index 99127f2..0b60f6a 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -3461,7 +3461,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
 
     public InterceptStrategy getDefaultBacklogTracer() {
         if (defaultBacklogTracer == null) {
-            defaultBacklogTracer = new BacklogTracer(this);
+            defaultBacklogTracer = BacklogTracer.createTracer(this);
         }
         return defaultBacklogTracer;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/2c19b34f/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
index 97f557b..f8c71f4 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/CamelInternalProcessor.java
@@ -19,7 +19,6 @@ package org.apache.camel.processor;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Queue;
 import java.util.concurrent.RejectedExecutionException;
 
 import org.apache.camel.AsyncCallback;
@@ -521,15 +520,13 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor {
      */
     public static final class BacklogTracerAdvice implements CamelInternalProcessorAdvice {
 
-        private final Queue<DefaultBacklogTracerEventMessage> queue;
         private final BacklogTracer backlogTracer;
         private final ProcessorDefinition<?> processorDefinition;
         private final ProcessorDefinition<?> routeDefinition;
         private final boolean first;
 
-        public BacklogTracerAdvice(Queue<DefaultBacklogTracerEventMessage> queue, BacklogTracer backlogTracer,
-                                   ProcessorDefinition<?> processorDefinition, ProcessorDefinition<?> routeDefinition, boolean first) {
-            this.queue = queue;
+        public BacklogTracerAdvice(BacklogTracer backlogTracer, ProcessorDefinition<?> processorDefinition,
+                                   ProcessorDefinition<?> routeDefinition, boolean first) {
             this.backlogTracer = backlogTracer;
             this.processorDefinition = processorDefinition;
             this.routeDefinition = routeDefinition;
@@ -539,16 +536,6 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor {
         @Override
         public Object before(Exchange exchange) throws Exception {
             if (backlogTracer.shouldTrace(processorDefinition, exchange)) {
-                // ensure there is space on the queue
-                int drain = queue.size() - backlogTracer.getBacklogSize();
-                // and we need room for ourselves and possible also a first pseudo message as well
-                drain += first ? 2 : 1;
-                if (drain > 0) {
-                    for (int i = 0; i < drain; i++) {
-                        queue.poll();
-                    }
-                }
-
                 Date timestamp = new Date();
                 String toNode = processorDefinition.getId();
                 String exchangeId = exchange.getExchangeId();
@@ -560,10 +547,10 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor {
                 if (first) {
                     Date created = exchange.getProperty(Exchange.CREATED_TIMESTAMP, timestamp, Date.class);
                     DefaultBacklogTracerEventMessage pseudo = new DefaultBacklogTracerEventMessage(backlogTracer.incrementTraceCounter(), created, routeId, null, exchangeId, messageAsXml);
-                    queue.add(pseudo);
+                    backlogTracer.traceEvent(pseudo);
                 }
                 DefaultBacklogTracerEventMessage event = new DefaultBacklogTracerEventMessage(backlogTracer.incrementTraceCounter(), timestamp, routeId, toNode, exchangeId, messageAsXml);
-                queue.add(event);
+                backlogTracer.traceEvent(event);
             }
 
             return null;

http://git-wip-us.apache.org/repos/asf/camel/blob/2c19b34f/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
index 6dde932..e2c51bd 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
@@ -19,7 +19,7 @@ package org.apache.camel.processor.interceptor;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Queue;
-import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.camel.CamelContext;
@@ -52,7 +52,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     private boolean enabled;
     private final AtomicLong traceCounter = new AtomicLong(0);
     // use a queue with a upper limit to avoid storing too many messages
-    private final Queue<DefaultBacklogTracerEventMessage> queue = new ArrayBlockingQueue<DefaultBacklogTracerEventMessage>(MAX_BACKLOG_SIZE);
+    private final Queue<BacklogTracerEventMessage> queue = new LinkedBlockingQueue<>(MAX_BACKLOG_SIZE);
     // how many of the last messages to keep in the backlog at total
     private int backlogSize = 1000;
     private boolean removeOnDump = true;
@@ -65,14 +65,10 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     private String traceFilter;
     private Predicate predicate;
 
-    public BacklogTracer(CamelContext camelContext) {
+    private BacklogTracer(CamelContext camelContext) {
         this.camelContext = camelContext;
     }
 
-    public Queue<DefaultBacklogTracerEventMessage> getQueue() {
-        return queue;
-    }
-
     @Override
     @Deprecated
     public Processor wrapProcessorInInterceptors(CamelContext context, ProcessorDefinition<?> definition, Processor target, Processor nextTarget) throws Exception {
@@ -86,8 +82,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
      * @return a new backlog tracer
      */
     public static BacklogTracer createTracer(CamelContext context) {
-        BacklogTracer tracer = new BacklogTracer(context);
-        return tracer;
+        return new BacklogTracer(context);
     }
 
     /**
@@ -153,6 +148,19 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
         return false;
     }
 
+    public void traceEvent(DefaultBacklogTracerEventMessage event) {
+        if (!enabled) {
+            return;
+        }
+
+        // ensure there is space on the queue and we need room for ourselves and possible also a first pseudo message as well
+        if (queue.size() >= backlogSize) {
+            queue.poll();
+        }
+
+        queue.add(event);
+    }
+
     private boolean shouldTraceFilter(Exchange exchange) {
         return predicate.matches(exchange);
     }
@@ -251,9 +259,9 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     }
 
     public List<BacklogTracerEventMessage> dumpTracedMessages(String nodeId) {
-        List<BacklogTracerEventMessage> answer = new ArrayList<BacklogTracerEventMessage>();
+        List<BacklogTracerEventMessage> answer = new ArrayList<>();
         if (nodeId != null) {
-            for (DefaultBacklogTracerEventMessage message : queue) {
+            for (BacklogTracerEventMessage message : queue) {
                 if (nodeId.equals(message.getToNode()) || nodeId.equals(message.getRouteId())) {
                     answer.add(message);
                 }
@@ -280,7 +288,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     }
 
     public List<BacklogTracerEventMessage> dumpAllTracedMessages() {
-        List<BacklogTracerEventMessage> answer = new ArrayList<BacklogTracerEventMessage>();
+        List<BacklogTracerEventMessage> answer = new ArrayList<>();
         answer.addAll(queue);
         if (isRemoveOnDump()) {
             queue.clear();

http://git-wip-us.apache.org/repos/asf/camel/blob/2c19b34f/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java
index c9ae2f3..dc719e3 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultChannel.java
@@ -229,7 +229,7 @@ public class DefaultChannel extends CamelInternalProcessor implements ModelChann
                 first = route.getOutputs().get(0) == definition;
             }
 
-            addAdvice(new BacklogTracerAdvice(backlogTracer.getQueue(), backlogTracer, targetOutputDef, route, first));
+            addAdvice(new BacklogTracerAdvice(backlogTracer, targetOutputDef, route, first));
 
             // add debugger as well so we have both tracing and debugging out of the box
             InterceptStrategy debugger = getOrCreateBacklogDebugger();


[3/6] camel git commit: CAMEL-8640: Fixed CS

Posted by da...@apache.org.
CAMEL-8640: Fixed CS


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

Branch: refs/heads/master
Commit: e669002a9698f48bc48ee0138798f7acf655c33d
Parents: c0f553d
Author: Claus Ibsen <da...@apache.org>
Authored: Sun May 3 11:37:35 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun May 3 11:37:35 2015 +0200

----------------------------------------------------------------------
 .../camel/processor/interceptor/BacklogTracer.java      | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e669002a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
index fa0dcda..15f9cd2 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
@@ -43,16 +43,16 @@ import org.slf4j.LoggerFactory;
  * This tracer allows to store message tracers per node in the Camel routes. The tracers
  * is stored in a backlog queue (FIFO based) which allows to pull the traced messages on demand.
  */
-public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
+public final class BacklogTracer extends ServiceSupport implements InterceptStrategy {
 
-    // lets limit the tracer to 100 thousand messages in total
-    public static final int MAX_BACKLOG_SIZE = 100 * 1000;
+    // lets limit the tracer to 10 thousand messages in total
+    public static final int MAX_BACKLOG_SIZE = 10 * 1000;
     private static final Logger LOG = LoggerFactory.getLogger(BacklogTracer.class);
     private final CamelContext camelContext;
     private boolean enabled;
     private final AtomicLong traceCounter = new AtomicLong(0);
     // use a queue with a upper limit to avoid storing too many messages
-    private final Queue<BacklogTracerEventMessage> queue = new LinkedBlockingQueue<>(MAX_BACKLOG_SIZE);
+    private final Queue<BacklogTracerEventMessage> queue = new LinkedBlockingQueue<BacklogTracerEventMessage>(MAX_BACKLOG_SIZE);
     // how many of the last messages to keep in the backlog at total
     private int backlogSize = 1000;
     private boolean removeOnDump = true;
@@ -262,7 +262,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     }
 
     public List<BacklogTracerEventMessage> dumpTracedMessages(String nodeId) {
-        List<BacklogTracerEventMessage> answer = new ArrayList<>();
+        List<BacklogTracerEventMessage> answer = new ArrayList<BacklogTracerEventMessage>();
         if (nodeId != null) {
             for (BacklogTracerEventMessage message : queue) {
                 if (nodeId.equals(message.getToNode()) || nodeId.equals(message.getRouteId())) {
@@ -291,7 +291,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     }
 
     public List<BacklogTracerEventMessage> dumpAllTracedMessages() {
-        List<BacklogTracerEventMessage> answer = new ArrayList<>();
+        List<BacklogTracerEventMessage> answer = new ArrayList<BacklogTracerEventMessage>();
         answer.addAll(queue);
         if (isRemoveOnDump()) {
             queue.clear();


[5/6] camel git commit: Issue CAMEL-8640. More safe ensuring of space in queue.

Posted by da...@apache.org.
Issue CAMEL-8640. More safe ensuring of space in queue.


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

Branch: refs/heads/camel-2.15.x
Commit: 4556db6335c519228c541b54113858ec5457a8fe
Parents: 2c19b34
Author: Robert Budźko <r....@oberthur.com>
Authored: Sat May 2 13:50:45 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun May 3 11:41:53 2015 +0200

----------------------------------------------------------------------
 .../apache/camel/processor/interceptor/BacklogTracer.java   | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/4556db63/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
index e2c51bd..fa0dcda 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
@@ -153,9 +153,12 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
             return;
         }
 
-        // ensure there is space on the queue and we need room for ourselves and possible also a first pseudo message as well
-        if (queue.size() >= backlogSize) {
-            queue.poll();
+        // ensure there is space on the queue by polling until at least single slot is free
+        int drain = queue.size() - backlogSize + 1;
+        if (drain > 0) {
+            for (int i = 0; i < drain; i++) {
+                queue.poll();
+            }
         }
 
         queue.add(event);


[2/6] camel git commit: Issue CAMEL-8640. More safe ensuring of space in queue.

Posted by da...@apache.org.
Issue CAMEL-8640. More safe ensuring of space in queue.


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

Branch: refs/heads/master
Commit: c0f553de3542ff22797c3ac4b4f2b917c7bc2a00
Parents: d0bf15f
Author: Robert Budźko <r....@oberthur.com>
Authored: Sat May 2 13:50:45 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun May 3 11:33:17 2015 +0200

----------------------------------------------------------------------
 .../apache/camel/processor/interceptor/BacklogTracer.java   | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c0f553de/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
index e2c51bd..fa0dcda 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
@@ -153,9 +153,12 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
             return;
         }
 
-        // ensure there is space on the queue and we need room for ourselves and possible also a first pseudo message as well
-        if (queue.size() >= backlogSize) {
-            queue.poll();
+        // ensure there is space on the queue by polling until at least single slot is free
+        int drain = queue.size() - backlogSize + 1;
+        if (drain > 0) {
+            for (int i = 0; i < drain; i++) {
+                queue.poll();
+            }
         }
 
         queue.add(event);


[6/6] camel git commit: CAMEL-8640: Fixed CS

Posted by da...@apache.org.
CAMEL-8640: Fixed CS


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

Branch: refs/heads/camel-2.15.x
Commit: 6f8fdc4bbb8fac265b48693770bf2dc3cdc82b24
Parents: 4556db6
Author: Claus Ibsen <da...@apache.org>
Authored: Sun May 3 11:37:35 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun May 3 11:41:58 2015 +0200

----------------------------------------------------------------------
 .../camel/processor/interceptor/BacklogTracer.java      | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6f8fdc4b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
index fa0dcda..15f9cd2 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
@@ -43,16 +43,16 @@ import org.slf4j.LoggerFactory;
  * This tracer allows to store message tracers per node in the Camel routes. The tracers
  * is stored in a backlog queue (FIFO based) which allows to pull the traced messages on demand.
  */
-public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
+public final class BacklogTracer extends ServiceSupport implements InterceptStrategy {
 
-    // lets limit the tracer to 100 thousand messages in total
-    public static final int MAX_BACKLOG_SIZE = 100 * 1000;
+    // lets limit the tracer to 10 thousand messages in total
+    public static final int MAX_BACKLOG_SIZE = 10 * 1000;
     private static final Logger LOG = LoggerFactory.getLogger(BacklogTracer.class);
     private final CamelContext camelContext;
     private boolean enabled;
     private final AtomicLong traceCounter = new AtomicLong(0);
     // use a queue with a upper limit to avoid storing too many messages
-    private final Queue<BacklogTracerEventMessage> queue = new LinkedBlockingQueue<>(MAX_BACKLOG_SIZE);
+    private final Queue<BacklogTracerEventMessage> queue = new LinkedBlockingQueue<BacklogTracerEventMessage>(MAX_BACKLOG_SIZE);
     // how many of the last messages to keep in the backlog at total
     private int backlogSize = 1000;
     private boolean removeOnDump = true;
@@ -262,7 +262,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     }
 
     public List<BacklogTracerEventMessage> dumpTracedMessages(String nodeId) {
-        List<BacklogTracerEventMessage> answer = new ArrayList<>();
+        List<BacklogTracerEventMessage> answer = new ArrayList<BacklogTracerEventMessage>();
         if (nodeId != null) {
             for (BacklogTracerEventMessage message : queue) {
                 if (nodeId.equals(message.getToNode()) || nodeId.equals(message.getRouteId())) {
@@ -291,7 +291,7 @@ public class BacklogTracer extends ServiceSupport implements InterceptStrategy {
     }
 
     public List<BacklogTracerEventMessage> dumpAllTracedMessages() {
-        List<BacklogTracerEventMessage> answer = new ArrayList<>();
+        List<BacklogTracerEventMessage> answer = new ArrayList<BacklogTracerEventMessage>();
         answer.addAll(queue);
         if (isRemoveOnDump()) {
             queue.clear();