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();