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 2016/02/05 17:56:24 UTC
[1/3] camel git commit: CAMEL-9569: Fixed idempontent consumer - to
not leak memory when add/remove routes with it many times.
Repository: camel
Updated Branches:
refs/heads/camel-2.15.x 508c1dfab -> c4b131d73
refs/heads/camel-2.16.x c9b7ddaa4 -> 8617e146d
refs/heads/master 3ec88a547 -> 7eb9e8321
CAMEL-9569: Fixed idempontent consumer - to not leak memory when add/remove routes with it many times.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7eb9e832
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7eb9e832
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7eb9e832
Branch: refs/heads/master
Commit: 7eb9e8321cf10fd1cd0cc1c6e8c53843c42bb451
Parents: 3ec88a5
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Feb 5 17:20:58 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Feb 5 17:50:45 2016 +0100
----------------------------------------------------------------------
.../model/IdempotentConsumerDefinition.java | 3 ---
.../idempotent/IdempotentConsumer.java | 28 +++++++++++++++++---
.../apache/camel/spi/IdempotentRepository.java | 3 +--
3 files changed, 26 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/7eb9e832/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java b/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
index 5d42ea3..256394d 100644
--- a/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
@@ -225,9 +225,6 @@ public class IdempotentConsumerDefinition extends ExpressionNode {
(IdempotentRepository<String>) resolveMessageIdRepository(routeContext);
ObjectHelper.notNull(idempotentRepository, "idempotentRepository", this);
- // add as service to CamelContext so we can managed it and it ensures it will be shutdown when camel shutdowns
- routeContext.getCamelContext().addService(idempotentRepository);
-
Expression expression = getExpression().createExpression(routeContext);
// these boolean should be true by default
http://git-wip-us.apache.org/repos/asf/camel/blob/7eb9e832/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java b/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
index 7b64546..643dd6d 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
@@ -22,6 +22,8 @@ import java.util.concurrent.atomic.AtomicLong;
import org.apache.camel.AsyncCallback;
import org.apache.camel.AsyncProcessor;
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Navigate;
@@ -50,8 +52,9 @@ import org.slf4j.LoggerFactory;
* @see org.apache.camel.spi.IdempotentRepository
* @see org.apache.camel.spi.ExchangeIdempotentRepository
*/
-public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor, Navigate<Processor>, IdAware {
+public class IdempotentConsumer extends ServiceSupport implements CamelContextAware, AsyncProcessor, Navigate<Processor>, IdAware {
private static final Logger LOG = LoggerFactory.getLogger(IdempotentConsumer.class);
+ private CamelContext camelContext;
private String id;
private final Expression messageIdExpression;
private final AsyncProcessor processor;
@@ -78,6 +81,16 @@ public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor
return "IdempotentConsumer[" + messageIdExpression + " -> " + processor + "]";
}
+ @Override
+ public CamelContext getCamelContext() {
+ return camelContext;
+ }
+
+ @Override
+ public void setCamelContext(CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
+
public String getId() {
return id;
}
@@ -191,11 +204,20 @@ public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor
// -------------------------------------------------------------------------
protected void doStart() throws Exception {
- ServiceHelper.startServices(processor);
+ ServiceHelper.startServices(processor, idempotentRepository);
+ if (!camelContext.hasService(idempotentRepository)) {
+ camelContext.addService(idempotentRepository);
+ }
}
protected void doStop() throws Exception {
- ServiceHelper.stopServices(processor);
+ ServiceHelper.stopServices(processor, idempotentRepository);
+ }
+
+ @Override
+ protected void doShutdown() throws Exception {
+ ServiceHelper.stopAndShutdownServices(processor, idempotentRepository);
+ camelContext.removeService(idempotentRepository);
}
public boolean isEager() {
http://git-wip-us.apache.org/repos/asf/camel/blob/7eb9e832/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java b/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java
index 71f076b..6435c69 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java
@@ -85,8 +85,7 @@ public interface IdempotentRepository<E> extends Service {
* Clear the repository.
* <p/>
* <b>Important:</b> Read the class javadoc about eager vs non-eager mode.
- *
- */
+ */
void clear();
}
[3/3] camel git commit: CAMEL-9569: Fixed idempontent consumer - to
not leak memory when add/remove routes with it many times.
Posted by da...@apache.org.
CAMEL-9569: Fixed idempontent consumer - to not leak memory when add/remove routes with it many times.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c4b131d7
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c4b131d7
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c4b131d7
Branch: refs/heads/camel-2.15.x
Commit: c4b131d73c43603a02f7247efd77ea11ae4ce043
Parents: 508c1df
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Feb 5 17:20:58 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Feb 5 17:53:11 2016 +0100
----------------------------------------------------------------------
.../model/IdempotentConsumerDefinition.java | 3 ---
.../idempotent/IdempotentConsumer.java | 28 +++++++++++++++++---
2 files changed, 25 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/c4b131d7/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java b/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
index 5c64e04..ce9618b 100644
--- a/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
@@ -194,9 +194,6 @@ public class IdempotentConsumerDefinition extends ExpressionNode {
(IdempotentRepository<String>) resolveMessageIdRepository(routeContext);
ObjectHelper.notNull(idempotentRepository, "idempotentRepository", this);
- // add as service to CamelContext so we can managed it and it ensures it will be shutdown when camel shutdowns
- routeContext.getCamelContext().addService(idempotentRepository);
-
Expression expression = getExpression().createExpression(routeContext);
// these boolean should be true by default
http://git-wip-us.apache.org/repos/asf/camel/blob/c4b131d7/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java b/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
index f534991..c470b1a 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
@@ -22,6 +22,8 @@ import java.util.concurrent.atomic.AtomicLong;
import org.apache.camel.AsyncCallback;
import org.apache.camel.AsyncProcessor;
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Navigate;
@@ -48,8 +50,9 @@ import org.slf4j.LoggerFactory;
* @see org.apache.camel.spi.IdempotentRepository
* @see org.apache.camel.spi.ExchangeIdempotentRepository
*/
-public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor, Navigate<Processor> {
+public class IdempotentConsumer extends ServiceSupport implements CamelContextAware, AsyncProcessor, Navigate<Processor> {
private static final Logger LOG = LoggerFactory.getLogger(IdempotentConsumer.class);
+ private CamelContext camelContext;
private final Expression messageIdExpression;
private final AsyncProcessor processor;
private final IdempotentRepository<String> idempotentRepository;
@@ -73,6 +76,16 @@ public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor
return "IdempotentConsumer[" + messageIdExpression + " -> " + processor + "]";
}
+ @Override
+ public CamelContext getCamelContext() {
+ return camelContext;
+ }
+
+ @Override
+ public void setCamelContext(CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
+
public void process(Exchange exchange) throws Exception {
AsyncProcessorHelper.process(this, exchange);
}
@@ -172,11 +185,20 @@ public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor
// -------------------------------------------------------------------------
protected void doStart() throws Exception {
- ServiceHelper.startServices(processor);
+ ServiceHelper.startServices(processor, idempotentRepository);
+ if (!camelContext.hasService(idempotentRepository)) {
+ camelContext.addService(idempotentRepository);
+ }
}
protected void doStop() throws Exception {
- ServiceHelper.stopServices(processor);
+ ServiceHelper.stopServices(processor, idempotentRepository);
+ }
+
+ @Override
+ protected void doShutdown() throws Exception {
+ ServiceHelper.stopAndShutdownServices(processor, idempotentRepository);
+ camelContext.removeService(idempotentRepository);
}
/**
[2/3] camel git commit: CAMEL-9569: Fixed idempontent consumer - to
not leak memory when add/remove routes with it many times.
Posted by da...@apache.org.
CAMEL-9569: Fixed idempontent consumer - to not leak memory when add/remove routes with it many times.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8617e146
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8617e146
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8617e146
Branch: refs/heads/camel-2.16.x
Commit: 8617e146d27332e3d3b257721d265755c109a5a5
Parents: c9b7dda
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Feb 5 17:20:58 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Feb 5 17:51:01 2016 +0100
----------------------------------------------------------------------
.../model/IdempotentConsumerDefinition.java | 3 ---
.../idempotent/IdempotentConsumer.java | 28 +++++++++++++++++---
.../apache/camel/spi/IdempotentRepository.java | 3 +--
3 files changed, 26 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/8617e146/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java b/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
index 5d42ea3..256394d 100644
--- a/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
@@ -225,9 +225,6 @@ public class IdempotentConsumerDefinition extends ExpressionNode {
(IdempotentRepository<String>) resolveMessageIdRepository(routeContext);
ObjectHelper.notNull(idempotentRepository, "idempotentRepository", this);
- // add as service to CamelContext so we can managed it and it ensures it will be shutdown when camel shutdowns
- routeContext.getCamelContext().addService(idempotentRepository);
-
Expression expression = getExpression().createExpression(routeContext);
// these boolean should be true by default
http://git-wip-us.apache.org/repos/asf/camel/blob/8617e146/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java b/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
index 7b64546..643dd6d 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/idempotent/IdempotentConsumer.java
@@ -22,6 +22,8 @@ import java.util.concurrent.atomic.AtomicLong;
import org.apache.camel.AsyncCallback;
import org.apache.camel.AsyncProcessor;
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Navigate;
@@ -50,8 +52,9 @@ import org.slf4j.LoggerFactory;
* @see org.apache.camel.spi.IdempotentRepository
* @see org.apache.camel.spi.ExchangeIdempotentRepository
*/
-public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor, Navigate<Processor>, IdAware {
+public class IdempotentConsumer extends ServiceSupport implements CamelContextAware, AsyncProcessor, Navigate<Processor>, IdAware {
private static final Logger LOG = LoggerFactory.getLogger(IdempotentConsumer.class);
+ private CamelContext camelContext;
private String id;
private final Expression messageIdExpression;
private final AsyncProcessor processor;
@@ -78,6 +81,16 @@ public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor
return "IdempotentConsumer[" + messageIdExpression + " -> " + processor + "]";
}
+ @Override
+ public CamelContext getCamelContext() {
+ return camelContext;
+ }
+
+ @Override
+ public void setCamelContext(CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
+
public String getId() {
return id;
}
@@ -191,11 +204,20 @@ public class IdempotentConsumer extends ServiceSupport implements AsyncProcessor
// -------------------------------------------------------------------------
protected void doStart() throws Exception {
- ServiceHelper.startServices(processor);
+ ServiceHelper.startServices(processor, idempotentRepository);
+ if (!camelContext.hasService(idempotentRepository)) {
+ camelContext.addService(idempotentRepository);
+ }
}
protected void doStop() throws Exception {
- ServiceHelper.stopServices(processor);
+ ServiceHelper.stopServices(processor, idempotentRepository);
+ }
+
+ @Override
+ protected void doShutdown() throws Exception {
+ ServiceHelper.stopAndShutdownServices(processor, idempotentRepository);
+ camelContext.removeService(idempotentRepository);
}
public boolean isEager() {
http://git-wip-us.apache.org/repos/asf/camel/blob/8617e146/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java b/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java
index 71f076b..6435c69 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/IdempotentRepository.java
@@ -85,8 +85,7 @@ public interface IdempotentRepository<E> extends Service {
* Clear the repository.
* <p/>
* <b>Important:</b> Read the class javadoc about eager vs non-eager mode.
- *
- */
+ */
void clear();
}