[1/2] camel git commit: CAMEL-8525: Aggregate - Expose statistics about completed exchanges. Rename forceCompletion to force so its similar to the others.

2015-03-21 Thread davsclaus
Repository: camel
Updated Branches:
  refs/heads/master c0f1f02c1 - 16cc8a920


CAMEL-8525: Aggregate - Expose statistics about completed exchanges. Rename 
forceCompletion to force so its similar to the others.


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

Branch: refs/heads/master
Commit: 94a6f9a0c79a3981630f1e64cb0f3ae4281c50b4
Parents: c0f1f02
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 10:49:52 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 10:49:52 2015 +0100

--
 .../mbean/ManagedAggregateProcessorMBean.java   |  37 +++
 .../mbean/ManagedAggregateProcessor.java|  40 +++
 .../processor/aggregate/AggregateProcessor.java | 105 ++-
 .../aggregate/AggregateProcessorStatistics.java |  86 +++
 .../ManagedAggregateControllerTest.java |  28 -
 .../aggregator/AggregateControllerTest.java |   4 +-
 .../AggregateForceCompletionHeaderTest.java |   4 +-
 .../aggregator/AggregateProcessorTest.java  |   2 +-
 ...awtDBAggregateForceCompletionHeaderTest.java |   4 +-
 ...velDBAggregateForceCompletionHeaderTest.java |   4 +-
 .../JdbcAggregateForceCompletionHeaderTest.java |   4 +-
 11 files changed, 303 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/94a6f9a0/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java
 
b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java
index f4bed8d..a1810c7 100644
--- 
a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java
+++ 
b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java
@@ -78,4 +78,41 @@ public interface ManagedAggregateProcessorMBean extends 
ManagedProcessorMBean {
 @ManagedOperation(description = To force complete of all groups)
 int forceCompletionOfAllGroups();
 
+@ManagedAttribute(description = Total number of exchanges arrived into 
the aggregator)
+long getTotalIn();
+
+@ManagedAttribute(description = Total number of exchanges completed and 
outgoing from the aggregator)
+long getTotalCompleted();
+
+@ManagedAttribute(description = Total number of exchanged completed by 
completion size trigger)
+long getCompletedBySize();
+
+@ManagedAttribute(description = Total number of exchanged completed by 
completion aggregation strategy trigger)
+long getCompletedByStrategy();
+
+@ManagedAttribute(description = Total number of exchanged completed by 
completion interval (timeout) trigger)
+long getCompletedByInterval();
+
+@ManagedAttribute(description = Total number of exchanged completed by 
completion timeout trigger)
+long getCompletedByTimeout();
+
+@ManagedAttribute(description = Total number of exchanged completed by 
completion predicate trigger)
+long getCompletedByPredicate();
+
+@ManagedAttribute(description = Total number of exchanged completed by 
completion batch consumer trigger)
+long getCompletedByBatchConsumer();
+
+@ManagedAttribute(description = Total number of exchanged completed by 
completion force trigger)
+long getCompletedByForce();
+
+@ManagedOperation(description =  Reset the statistics counters)
+void resetStatistics();
+
+@ManagedAttribute(description = Sets whether statistics is enabled)
+boolean isStatisticsEnabled();
+
+@ManagedAttribute(description = Sets whether statistics is enabled)
+void setStatisticsEnabled(boolean statisticsEnabled);
+
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/94a6f9a0/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedAggregateProcessor.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedAggregateProcessor.java
 
b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedAggregateProcessor.java
index 3b09c52..7a7705d 100644
--- 
a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedAggregateProcessor.java
+++ 
b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedAggregateProcessor.java
@@ -149,4 +149,44 @@ public class ManagedAggregateProcessor extends 
ManagedProcessor implements Manag
 return 0;
 }
 }
+
+public long getTotalIn() {
+ 

[2/2] camel git commit: Fixed test

2015-03-21 Thread davsclaus
Fixed test


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

Branch: refs/heads/master
Commit: 16cc8a9202a756def094735cee6356d306c20b03
Parents: 94a6f9a
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 11:13:52 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 11:13:52 2015 +0100

--
 .../processor/async/AsyncProcessorAwaitManagerInterruptTest.java| 1 -
 1 file changed, 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/16cc8a92/camel-core/src/test/java/org/apache/camel/processor/async/AsyncProcessorAwaitManagerInterruptTest.java
--
diff --git 
a/camel-core/src/test/java/org/apache/camel/processor/async/AsyncProcessorAwaitManagerInterruptTest.java
 
b/camel-core/src/test/java/org/apache/camel/processor/async/AsyncProcessorAwaitManagerInterruptTest.java
index 2e24346..3d5939a 100644
--- 
a/camel-core/src/test/java/org/apache/camel/processor/async/AsyncProcessorAwaitManagerInterruptTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/processor/async/AsyncProcessorAwaitManagerInterruptTest.java
@@ -42,7 +42,6 @@ public class AsyncProcessorAwaitManagerInterruptTest extends 
ContextTestSupport
 
 try {
 template.requestBody(direct:start, Hello Camel, String.class);
-fail(Should have thrown exception);
 } catch (CamelExecutionException e) {
 RejectedExecutionException cause = 
assertIsInstanceOf(RejectedExecutionException.class, e.getCause());
 assertTrue(cause.getMessage().startsWith(Interrupted while 
waiting for asynchronous callback));



[2/3] camel git commit: Fix CS errors

2015-03-21 Thread davsclaus
Fix CS errors


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

Branch: refs/heads/camel-2.15.x
Commit: c7a60abcc509fdba50882f6d544eaff09b58804d
Parents: 74f9ea0
Author: Gregor Zurowski gre...@zurowski.org
Authored: Fri Mar 20 20:41:06 2015 -0400
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 07:23:50 2015 +0100

--
 .../java/org/apache/camel/catalog/DefaultCamelCatalog.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/c7a60abc/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
--
diff --git 
a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
 
b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
index bc10145..cd4a11b 100644
--- 
a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
+++ 
b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
@@ -472,7 +472,7 @@ public class DefaultCamelCatalog implements CamelCatalog {
 // parse the syntax and find the same group in the uri
 Matcher matcher = SYNTAX_PATTERN.matcher(syntax);
 ListString word = new ArrayListString();
-while (matcher.find() ) {
+while (matcher.find()) {
 String s = matcher.group(1);
 if (!scheme.equals(s)) {
 word.add(s);
@@ -647,7 +647,7 @@ public class DefaultCamelCatalog implements CamelCatalog {
 // parse the syntax into each options
 Matcher matcher = SYNTAX_PATTERN.matcher(originalSyntax);
 ListString options = new ArrayListString();
-while (matcher.find() ) {
+while (matcher.find()) {
 String s = matcher.group(1);
 options.add(s);
 }
@@ -655,7 +655,7 @@ public class DefaultCamelCatalog implements CamelCatalog {
 // parse the syntax into each options
 Matcher matcher2 = SYNTAX_PATTERN.matcher(syntax);
 ListString options2 = new ArrayListString();
-while (matcher2.find() ) {
+while (matcher2.find()) {
 String s = matcher2.group(1);
 options2.add(s);
 }



[3/3] camel git commit: CAMEL-7999: Fixed catalog to use default jetty component

2015-03-21 Thread davsclaus
CAMEL-7999: Fixed catalog to use default jetty component


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

Branch: refs/heads/camel-2.15.x
Commit: c89f2790468ff969d847fd664092c9d1c03f71cd
Parents: c7a60ab
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 07:23:20 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 07:23:54 2015 +0100

--
 .../java/org/apache/camel/maven/packaging/PackageHelper.java | 4 ++--
 .../org/apache/camel/maven/packaging/PrepareCatalogMojo.java | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/c89f2790/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
--
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
index c9da4bf..e3794d7 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
@@ -110,8 +110,8 @@ public final class PackageHelper {
 
 @Override
 public boolean accept(File pathname) {
-// skip camel-jetty8 as its a duplicate of camel-jetty9
-if (camel-jetty8.equals(pathname)) {
+// skip camel-jetty9 as its a duplicate of camel-jetty
+if (camel-jetty9.equals(pathname)) {
 return false;
 }
 return pathname.isDirectory() || 
pathname.getName().endsWith(.json);

http://git-wip-us.apache.org/repos/asf/camel/blob/c89f2790/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
--
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
index 7b8846e..0a5625b 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
@@ -287,8 +287,8 @@ public class PrepareCatalogMojo extends AbstractMojo {
 File[] components = componentsDir.listFiles();
 if (components != null) {
 for (File dir : components) {
-// skip camel-jetty8 as its a duplicate of camel-jetty9
-if (dir.isDirectory()  
!camel-jetty8.equals(dir.getName())  !target.equals(dir.getName())) {
+// skip camel-jetty9 as its a duplicate of camel-jetty8
+if (dir.isDirectory()  
!camel-jetty9.equals(dir.getName())  !target.equals(dir.getName())) {
 File target = new File(dir, target/classes);
 
 int before = componentFiles.size();



[1/3] camel git commit: CAMEL-7999: Fixed catalog to use default jetty component

2015-03-21 Thread davsclaus
Repository: camel
Updated Branches:
  refs/heads/camel-2.15.x 74f9ea0be - c89f27904
  refs/heads/master 32b4fd25d - 1aa206102


CAMEL-7999: Fixed catalog to use default jetty component


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

Branch: refs/heads/master
Commit: 1aa2061023bfff846e4f3eb3a52d291462a3bf1b
Parents: 32b4fd2
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 07:23:20 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 07:23:20 2015 +0100

--
 .../java/org/apache/camel/maven/packaging/PackageHelper.java | 4 ++--
 .../org/apache/camel/maven/packaging/PrepareCatalogMojo.java | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/1aa20610/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
--
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
index c9da4bf..e3794d7 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
@@ -110,8 +110,8 @@ public final class PackageHelper {
 
 @Override
 public boolean accept(File pathname) {
-// skip camel-jetty8 as its a duplicate of camel-jetty9
-if (camel-jetty8.equals(pathname)) {
+// skip camel-jetty9 as its a duplicate of camel-jetty
+if (camel-jetty9.equals(pathname)) {
 return false;
 }
 return pathname.isDirectory() || 
pathname.getName().endsWith(.json);

http://git-wip-us.apache.org/repos/asf/camel/blob/1aa20610/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
--
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
index 7b8846e..0a5625b 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
@@ -287,8 +287,8 @@ public class PrepareCatalogMojo extends AbstractMojo {
 File[] components = componentsDir.listFiles();
 if (components != null) {
 for (File dir : components) {
-// skip camel-jetty8 as its a duplicate of camel-jetty9
-if (dir.isDirectory()  
!camel-jetty8.equals(dir.getName())  !target.equals(dir.getName())) {
+// skip camel-jetty9 as its a duplicate of camel-jetty8
+if (dir.isDirectory()  
!camel-jetty9.equals(dir.getName())  !target.equals(dir.getName())) {
 File target = new File(dir, target/classes);
 
 int before = componentFiles.size();



[1/3] camel git commit: CAMEL-8500: Avoid ClassCastException if something else is bound to properties when starting CamelContext and looking up if there is a properties component defined.

2015-03-21 Thread davsclaus
Repository: camel
Updated Branches:
  refs/heads/camel-2.14.x 865b7ffea - e6cca31dd
  refs/heads/camel-2.15.x c89f27904 - 8e9b48820
  refs/heads/master 1aa206102 - ae8ce7379


CAMEL-8500: Avoid ClassCastException if something else is bound to properties 
when starting CamelContext and looking up if there is a properties component 
defined.


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

Branch: refs/heads/master
Commit: ae8ce7379ffae5c7d22086bc6e7d190bd3aa40f4
Parents: 1aa2061
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 07:38:24 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 07:38:24 2015 +0100

--
 .../apache/camel/util/CamelContextHelper.java   |  8 ++-
 ...esComponentSomethingElseBoundToJndiTest.java | 60 
 2 files changed, 65 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/ae8ce737/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java 
b/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
index 39d9b73..1b01fef 100644
--- a/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
@@ -571,15 +571,17 @@ public final class CamelContextHelper {
 // no existing properties component so lookup and add as component if 
possible
 PropertiesComponent answer = (PropertiesComponent) 
camelContext.hasComponent(properties);
 if (answer == null) {
-answer = 
camelContext.getRegistry().lookupByNameAndType(properties, 
PropertiesComponent.class);
-if (answer != null) {
+// lookup what is stored under properties, as it may not be the 
Camel properties component
+Object found = 
camelContext.getRegistry().lookupByName(properties);
+if (found != null  found instanceof PropertiesComponent) {
+answer = (PropertiesComponent) found;
 camelContext.addComponent(properties, answer);
 }
 }
 if (answer == null  autoCreate) {
 // create a default properties component to be used as there may 
be default values we can use
 LOG.info(No existing PropertiesComponent has been configured, 
creating a new default PropertiesComponent with name: properties);
-// do not auto create using getComponent as spring autowrire by 
constructor causes a side effect
+// do not auto create using getComponent as spring auto-wire by 
constructor causes a side effect
 answer = new PropertiesComponent();
 camelContext.addComponent(properties, answer);
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/ae8ce737/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
--
diff --git 
a/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
 
b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
new file mode 100644
index 000..4e96bda
--- /dev/null
+++ 
b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.properties;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.JndiRegistry;
+
+/**
+ * @version 
+ */
+public class PropertiesComponentSomethingElseBoundToJndiTest extends 

[2/3] camel git commit: CAMEL-8500: Avoid ClassCastException if something else is bound to properties when starting CamelContext and looking up if there is a properties component defined.

2015-03-21 Thread davsclaus
CAMEL-8500: Avoid ClassCastException if something else is bound to properties 
when starting CamelContext and looking up if there is a properties component 
defined.


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

Branch: refs/heads/camel-2.15.x
Commit: 8e9b488200a4b624bd3483475747dfaffb761301
Parents: c89f279
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 07:38:24 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 08:01:48 2015 +0100

--
 .../apache/camel/util/CamelContextHelper.java   |  8 ++-
 ...esComponentSomethingElseBoundToJndiTest.java | 60 
 2 files changed, 65 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/8e9b4882/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java 
b/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
index 39d9b73..1b01fef 100644
--- a/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
@@ -571,15 +571,17 @@ public final class CamelContextHelper {
 // no existing properties component so lookup and add as component if 
possible
 PropertiesComponent answer = (PropertiesComponent) 
camelContext.hasComponent(properties);
 if (answer == null) {
-answer = 
camelContext.getRegistry().lookupByNameAndType(properties, 
PropertiesComponent.class);
-if (answer != null) {
+// lookup what is stored under properties, as it may not be the 
Camel properties component
+Object found = 
camelContext.getRegistry().lookupByName(properties);
+if (found != null  found instanceof PropertiesComponent) {
+answer = (PropertiesComponent) found;
 camelContext.addComponent(properties, answer);
 }
 }
 if (answer == null  autoCreate) {
 // create a default properties component to be used as there may 
be default values we can use
 LOG.info(No existing PropertiesComponent has been configured, 
creating a new default PropertiesComponent with name: properties);
-// do not auto create using getComponent as spring autowrire by 
constructor causes a side effect
+// do not auto create using getComponent as spring auto-wire by 
constructor causes a side effect
 answer = new PropertiesComponent();
 camelContext.addComponent(properties, answer);
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/8e9b4882/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
--
diff --git 
a/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
 
b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
new file mode 100644
index 000..4e96bda
--- /dev/null
+++ 
b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.properties;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.JndiRegistry;
+
+/**
+ * @version 
+ */
+public class PropertiesComponentSomethingElseBoundToJndiTest extends 
ContextTestSupport {
+
+@Override
+public boolean isUseRouteBuilder() {
+return false;
+}
+
+public void testPropertiesComponent() throws 

[3/3] camel git commit: CAMEL-8500: Avoid ClassCastException if something else is bound to properties when starting CamelContext and looking up if there is a properties component defined.

2015-03-21 Thread davsclaus
CAMEL-8500: Avoid ClassCastException if something else is bound to properties 
when starting CamelContext and looking up if there is a properties component 
defined.


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

Branch: refs/heads/camel-2.14.x
Commit: e6cca31dd9cc899bd204dfc1658875f129d3d4d2
Parents: 865b7ff
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 07:38:24 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 08:01:58 2015 +0100

--
 .../apache/camel/util/CamelContextHelper.java   |  8 ++-
 ...esComponentSomethingElseBoundToJndiTest.java | 60 
 2 files changed, 65 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/e6cca31d/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java 
b/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
index 7e4fac1..b1e3b19 100644
--- a/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/CamelContextHelper.java
@@ -489,15 +489,17 @@ public final class CamelContextHelper {
 // no existing properties component so lookup and add as component if 
possible
 PropertiesComponent answer = (PropertiesComponent) 
camelContext.hasComponent(properties);
 if (answer == null) {
-answer = 
camelContext.getRegistry().lookupByNameAndType(properties, 
PropertiesComponent.class);
-if (answer != null) {
+// lookup what is stored under properties, as it may not be the 
Camel properties component
+Object found = 
camelContext.getRegistry().lookupByName(properties);
+if (found != null  found instanceof PropertiesComponent) {
+answer = (PropertiesComponent) found;
 camelContext.addComponent(properties, answer);
 }
 }
 if (answer == null  autoCreate) {
 // create a default properties component to be used as there may 
be default values we can use
 LOG.info(No existing PropertiesComponent has been configured, 
creating a new default PropertiesComponent with name: properties);
-// do not auto create using getComponent as spring autowrire by 
constructor causes a side effect
+// do not auto create using getComponent as spring auto-wire by 
constructor causes a side effect
 answer = new PropertiesComponent();
 camelContext.addComponent(properties, answer);
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/e6cca31d/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
--
diff --git 
a/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
 
b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
new file mode 100644
index 000..4e96bda
--- /dev/null
+++ 
b/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentSomethingElseBoundToJndiTest.java
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.properties;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.JndiRegistry;
+
+/**
+ * @version 
+ */
+public class PropertiesComponentSomethingElseBoundToJndiTest extends 
ContextTestSupport {
+
+@Override
+public boolean isUseRouteBuilder() {
+return false;
+}
+
+public void testPropertiesComponent() throws 

[1/3] camel git commit: CAMEL-7434: Aggregate now allows using a controller to control completion of groups from external source.

2015-03-21 Thread davsclaus
Repository: camel
Updated Branches:
  refs/heads/master ae8ce7379 - 4bb4be751


CAMEL-7434: Aggregate now allows using a controller to control completion of 
groups from external source.


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

Branch: refs/heads/master
Commit: 53500cf7aca91373fad5e3f77c5537f493351df7
Parents: ae8ce73
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 08:31:43 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 08:31:43 2015 +0100

--
 .../apache/camel/model/AggregateDefinition.java |  41 +++-
 .../aggregate/AggregateController.java  |  56 ++
 .../processor/aggregate/AggregateProcessor.java |  57 +-
 .../aggregate/DefaultAggregateController.java   |  71 +
 .../aggregator/AggregateControllerTest.java | 103 +++
 5 files changed, 324 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/53500cf7/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
index f5d3746..087bc74 100644
--- a/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
@@ -35,6 +35,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.builder.ExpressionClause;
 import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.processor.CamelInternalProcessor;
+import org.apache.camel.processor.aggregate.AggregateController;
 import org.apache.camel.processor.aggregate.AggregateProcessor;
 import org.apache.camel.processor.aggregate.AggregationStrategy;
 import org.apache.camel.processor.aggregate.AggregationStrategyBeanAdapter;
@@ -113,6 +114,10 @@ public class AggregateDefinition extends 
ProcessorDefinitionAggregateDefinition
 private Boolean discardOnCompletionTimeout;
 @XmlAttribute
 private Boolean forceCompletionOnStop;
+@XmlTransient
+private AggregateController aggregateController;
+@XmlAttribute
+private String aggregateControllerRef;
 @XmlElementRef
 private ListProcessorDefinition? outputs = new 
ArrayListProcessorDefinition?();
 
@@ -182,7 +187,7 @@ public class AggregateDefinition extends 
ProcessorDefinitionAggregateDefinition
 shutdownThreadPool = true;
 }
 
-AggregateProcessor answer = new 
AggregateProcessor(routeContext.getCamelContext(), internal,
+AggregateProcessor answer = new 
AggregateProcessor(routeContext.getCamelContext(), getId(), internal,
 correlation, strategy, threadPool, shutdownThreadPool);
 
 AggregationRepository repository = 
createAggregationRepository(routeContext);
@@ -190,6 +195,10 @@ public class AggregateDefinition extends 
ProcessorDefinitionAggregateDefinition
 answer.setAggregationRepository(repository);
 }
 
+if (getAggregateController() == null  getAggregateControllerRef() != 
null) {
+
setAggregateController(routeContext.mandatoryLookup(getAggregateControllerRef(),
 AggregateController.class));
+}
+
 // this EIP supports using a shared timeout checker thread pool or 
fallback to create a new thread pool
 boolean shutdownTimeoutThreadPool = false;
 ScheduledExecutorService timeoutThreadPool = 
timeoutCheckerExecutorService;
@@ -264,6 +273,9 @@ public class AggregateDefinition extends 
ProcessorDefinitionAggregateDefinition
 } else {
 answer.setOptimisticLockRetryPolicy(optimisticLockRetryPolicy);
 }
+if (getAggregateController() != null) {
+answer.setAggregateController(getAggregateController());
+}
 return answer;
 }
 
@@ -613,6 +625,22 @@ public class AggregateDefinition extends 
ProcessorDefinitionAggregateDefinition
 this.forceCompletionOnStop = forceCompletionOnStop;
 }
 
+public AggregateController getAggregateController() {
+return aggregateController;
+}
+
+public void setAggregateController(AggregateController 
aggregateController) {
+this.aggregateController = aggregateController;
+}
+
+public String getAggregateControllerRef() {
+return aggregateControllerRef;
+}
+
+public void setAggregateControllerRef(String aggregateControllerRef) {
+this.aggregateControllerRef = aggregateControllerRef;
+}
+
 // Fluent 

[2/3] camel git commit: CAMEL-7434: Aggregate now allows using a controller to control completion of groups from external source.

2015-03-21 Thread davsclaus
CAMEL-7434: Aggregate now allows using a controller to control completion of 
groups from external source.


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

Branch: refs/heads/master
Commit: a664b08cb3beb975ee5fe4e6971ecb5525e9a501
Parents: 53500cf
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 09:04:51 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 09:08:20 2015 +0100

--
 .../mbean/ManagedAggregateProcessorMBean.java   |  81 ++
 .../DefaultManagementObjectStrategy.java|   4 +
 .../mbean/ManagedAggregateProcessor.java| 152 ++
 .../processor/aggregate/AggregateProcessor.java |  16 +-
 .../ManagedAggregateControllerTest.java | 159 +++
 .../aggregator/AggregateProcessorTest.java  |  22 +--
 ...teProcessorTimeoutCompletionRestartTest.java |   6 +-
 7 files changed, 424 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/a664b08c/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java
 
b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java
new file mode 100644
index 000..f4bed8d
--- /dev/null
+++ 
b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java
@@ -0,0 +1,81 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.api.management.mbean;
+
+import org.apache.camel.api.management.ManagedAttribute;
+import org.apache.camel.api.management.ManagedOperation;
+
+public interface ManagedAggregateProcessorMBean extends ManagedProcessorMBean {
+
+@ManagedAttribute(description = Correlation Expression)
+String getCorrelationExpression();
+
+@ManagedAttribute(description = Completion timeout in millis)
+long getCompletionTimeout();
+
+@ManagedAttribute(description = Completion timeout expression)
+String getCompletionTimeoutExpression();
+
+@ManagedAttribute(description = Completion interval in millis)
+long getCompletionInterval();
+
+@ManagedAttribute(description = Completion size)
+int getCompletionSize();
+
+@ManagedAttribute(description = Completion size expression)
+String getCompletionSizeExpression();
+
+@ManagedAttribute(description = Complete from batch consumers)
+boolean isCompletionFromBatchConsumer();
+
+@ManagedAttribute(description = Ignore invalid correlation keys)
+boolean isIgnoreInvalidCorrelationKeys();
+
+@ManagedAttribute(description = Whether to close the correlation group on 
completion)
+Integer getCloseCorrelationKeyOnCompletion();
+
+@ManagedAttribute(description = Parallel mode)
+boolean isParallelProcessing();
+
+@ManagedAttribute(description = Optimistic locking)
+boolean isOptimisticLocking();
+
+@ManagedAttribute(description = Whether or not to eager check for 
completion when a new incoming Exchange has been received)
+boolean isEagerCheckCompletion();
+
+@ManagedAttribute(description = A Predicate to indicate when an 
aggregated exchange is complete)
+String getCompletionPredicate();
+
+@ManagedAttribute(description = Whether or not exchanges which complete 
due to a timeout should be discarded)
+boolean isDiscardOnCompletionTimeout();
+
+@ManagedAttribute(description = Indicates to complete all current 
aggregated exchanges when the context is stopped)
+boolean isForceCompletionOnStop();
+
+@ManagedAttribute(description = Number of completed exchanges which are 
currently in-flight)
+int getInProgressCompleteExchanges();
+
+@ManagedOperation(description = Number of groups 

[3/3] camel git commit: CAMEL-7434: Aggregate now allows using a controller to control completion of groups from external source.

2015-03-21 Thread davsclaus
CAMEL-7434: Aggregate now allows using a controller to control completion of 
groups from external source.


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

Branch: refs/heads/master
Commit: 4bb4be75181a89d8f5f12217188be3455d35571b
Parents: a664b08
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 10:05:58 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 10:05:58 2015 +0100

--
 .../apache/camel/model/AggregateDefinition.java |  2 +-
 .../aggregate/AggregateController.java  |  6 +--
 .../processor/aggregate/AggregateProcessor.java | 21 ++
 .../aggregate/DefaultAggregateController.java   | 27 ++--
 .../aggregator/AggregateControllerTest.java | 18 +---
 .../aggregator/AggregateProcessorTest.java  | 22 +-
 ...teProcessorTimeoutCompletionRestartTest.java |  6 +--
 .../SpringAggregateControllerTest.java  | 39 ++
 .../SpringAggregateControllerTest.xml   | 43 
 9 files changed, 117 insertions(+), 67 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/4bb4be75/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
index 087bc74..c880c8a 100644
--- a/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
@@ -187,7 +187,7 @@ public class AggregateDefinition extends 
ProcessorDefinitionAggregateDefinition
 shutdownThreadPool = true;
 }
 
-AggregateProcessor answer = new 
AggregateProcessor(routeContext.getCamelContext(), getId(), internal,
+AggregateProcessor answer = new 
AggregateProcessor(routeContext.getCamelContext(), internal,
 correlation, strategy, threadPool, shutdownThreadPool);
 
 AggregationRepository repository = 
createAggregationRepository(routeContext);

http://git-wip-us.apache.org/repos/asf/camel/blob/4bb4be75/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
 
b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
index dab9d6e..974ee9a 100644
--- 
a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
+++ 
b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
@@ -25,18 +25,16 @@ public interface AggregateController {
 /**
  * Callback when the aggregate processor is started.
  *
- * @param idthe aggregator id
  * @param processor the aggregate processor
  */
-void onStart(String id, AggregateProcessor processor);
+void onStart(AggregateProcessor processor);
 
 /**
  * Callback when the aggregate processor is stopped.
  *
- * @param idthe aggregator id
  * @param processor the aggregate processor
  */
-void onStop(String id, AggregateProcessor processor);
+void onStop(AggregateProcessor processor);
 
 /**
  * To force completing a specific group by its key.

http://git-wip-us.apache.org/repos/asf/camel/blob/4bb4be75/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
 
b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
index 1a773ea..8e34284 100644
--- 
a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
+++ 
b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
@@ -47,7 +47,6 @@ import org.apache.camel.TimeoutMap;
 import org.apache.camel.Traceable;
 import org.apache.camel.spi.AggregationRepository;
 import org.apache.camel.spi.ExceptionHandler;
-import org.apache.camel.spi.HasId;
 import org.apache.camel.spi.OptimisticLockingAggregationRepository;
 import org.apache.camel.spi.RecoverableAggregationRepository;
 import org.apache.camel.spi.ShutdownPrepared;
@@ -80,7 +79,7 @@ import org.slf4j.LoggerFactory;
  * and older prices are discarded). Another idea is to combine line item 
messages
  * together into a 

camel git commit: CAMEL-7434: Aggregate now allows using a controller to control completion of groups from external source.

2015-03-21 Thread davsclaus
Repository: camel
Updated Branches:
  refs/heads/master 4bb4be751 - c0f1f02c1


CAMEL-7434: Aggregate now allows using a controller to control completion of 
groups from external source.


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

Branch: refs/heads/master
Commit: c0f1f02c12b6f4ceceeb87098d96502731b4e3af
Parents: 4bb4be7
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 10:07:04 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 10:07:04 2015 +0100

--
 .../main/java/org/apache/camel/model/AggregateDefinition.java| 4 
 1 file changed, 4 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/c0f1f02c/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
index c880c8a..942d69b 100644
--- a/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/AggregateDefinition.java
@@ -637,6 +637,10 @@ public class AggregateDefinition extends 
ProcessorDefinitionAggregateDefinition
 return aggregateControllerRef;
 }
 
+/**
+ * To use a {@link 
org.apache.camel.processor.aggregate.AggregateController} to allow external 
sources to control
+ * this aggregator.
+ */
 public void setAggregateControllerRef(String aggregateControllerRef) {
 this.aggregateControllerRef = aggregateControllerRef;
 }



camel git commit: Use ManagedLoadTimer as JMX name in threadpools to better indicate what the pool does. Its the JMX background thread for load statistics.

2015-03-21 Thread davsclaus
Repository: camel
Updated Branches:
  refs/heads/master 16cc8a920 - 8c6de215e


Use ManagedLoadTimer as JMX name in threadpools to better indicate what the 
pool does. Its the JMX background thread for load statistics.


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

Branch: refs/heads/master
Commit: 8c6de215ebfac20f9e399c1a5ec87fce74c40494
Parents: 16cc8a9
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 11:25:36 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 11:25:36 2015 +0100

--
 .../DefaultManagementLifecycleStrategy.java | 14 -
 .../camel/management/ManagedLoadTimer.java  | 31 
 .../camel/support/TimerListenerManager.java |  4 +--
 3 files changed, 39 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/8c6de215/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
--
diff --git 
a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
 
b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
index 4834d64..33d713b 100644
--- 
a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
+++ 
b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
@@ -118,8 +118,8 @@ public class DefaultManagementLifecycleStrategy extends 
ServiceSupport implement
 private final MapProcessor, KeyValueHolderProcessorDefinition?, 
InstrumentationProcessor wrappedProcessors =
 new HashMapProcessor, KeyValueHolderProcessorDefinition?, 
InstrumentationProcessor();
 private final ListPreRegisterService preServices = new 
ArrayListPreRegisterService();
-private final TimerListenerManager timerListenerManager = new 
TimerListenerManager();
-private final TimerListenerManagerStartupListener 
timerManagerStartupListener = new TimerListenerManagerStartupListener();
+private final TimerListenerManager loadTimer = new ManagedLoadTimer();
+private final TimerListenerManagerStartupListener loadTimerStartupListener 
= new TimerListenerManagerStartupListener();
 private volatile CamelContext camelContext;
 private volatile ManagedCamelContext camelContextMBean;
 private volatile boolean initialized;
@@ -821,7 +821,7 @@ public class DefaultManagementLifecycleStrategy extends 
ServiceSupport implement
 getManagementStrategy().manageObject(me);
 if (me instanceof TimerListener) {
 TimerListener timer = (TimerListener) me;
-timerListenerManager.addTimerListener(timer);
+loadTimer.addTimerListener(timer);
 }
 }
 
@@ -834,7 +834,7 @@ public class DefaultManagementLifecycleStrategy extends 
ServiceSupport implement
 protected void unmanageObject(Object me) throws Exception {
 if (me instanceof TimerListener) {
 TimerListener timer = (TimerListener) me;
-timerListenerManager.removeTimerListener(timer);
+loadTimer.removeTimerListener(timer);
 }
 getManagementStrategy().unmanageObject(me);
 }
@@ -900,7 +900,7 @@ public class DefaultManagementLifecycleStrategy extends 
ServiceSupport implement
 ObjectHelper.notNull(camelContext, CamelContext);
 
 // defer starting the timer manager until CamelContext has been fully 
started
-camelContext.addStartupListener(timerManagerStartupListener);
+camelContext.addStartupListener(loadTimerStartupListener);
 }
 
 private final class TimerListenerManagerStartupListener implements 
StartupListener {
@@ -914,9 +914,9 @@ public class DefaultManagementLifecycleStrategy extends 
ServiceSupport implement
 LOG.debug(Load performance statistics {}, disabled ? disabled 
: enabled);
 if (!disabled) {
 // must use 1 sec interval as the load statistics is based on 
1 sec calculations
-timerListenerManager.setInterval(1000);
+loadTimer.setInterval(1000);
 // we have to defer enlisting timer lister manager as a 
service until CamelContext has been started
-getCamelContext().addService(timerListenerManager);
+getCamelContext().addService(loadTimer);
 }
 }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/8c6de215/camel-core/src/main/java/org/apache/camel/management/ManagedLoadTimer.java

[2/2] camel git commit: CAMEL-7474: Add option to mail consumer to skip or handle if there is an error retrieving a mail from the mailbox. This can avoid an endless problem if one mail is problematic.

2015-03-21 Thread davsclaus
CAMEL-7474: Add option to mail consumer to skip or handle if there is an error 
retrieving a mail from the mailbox. This can avoid an endless problem if one 
mail is problematic.


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

Branch: refs/heads/camel-2.15.x
Commit: 99106e411de7e7e94a905320846d663430482e92
Parents: adf655d
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 12:31:47 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 12:37:06 2015 +0100

--
 .../camel/component/mail/MailConfiguration.java | 34 +-
 .../camel/component/mail/MailConsumer.java  | 47 ++--
 .../camel/component/mail/MailEndpoint.java  |  3 ++
 3 files changed, 79 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/99106e41/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
--
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
index 526e32c..794ebf6 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
@@ -20,7 +20,6 @@ import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
-
 import javax.mail.Message;
 import javax.mail.Session;
 import javax.net.ssl.SSLContext;
@@ -98,6 +97,10 @@ public class MailConfiguration implements Cloneable {
 private boolean closeFolder = true;
 @UriParam(defaultValue = true) @Metadata(label = consumer)
 private boolean peek = true;
+@UriParam @Metadata(label = consumer)
+private boolean skipFailedMessage;
+@UriParam @Metadata(label = consumer)
+private boolean handleFailedMessage;
 @UriParam
 private SSLContextParameters sslContextParameters;
 private ClassLoader applicationClassLoader;
@@ -633,4 +636,33 @@ public class MailConfiguration implements Cloneable {
 public void setPeek(boolean peek) {
 this.peek = peek;
 }
+
+public boolean isSkipFailedMessage() {
+return skipFailedMessage;
+}
+
+/**
+ * If the mail consumer cannot retrieve a given mail message, then this 
option allows to skip
+ * the message and move on to retrieve the next mail message.
+ * p/
+ * The default behavior would be the consumer throws an exception and no 
mails from the batch would be able to be routed by Camel.
+ */
+public void setSkipFailedMessage(boolean skipFailedMessage) {
+this.skipFailedMessage = skipFailedMessage;
+}
+
+public boolean isHandleFailedMessage() {
+return handleFailedMessage;
+}
+
+/**
+ * If the mail consumer cannot retrieve a given mail message, then this 
option allows to handle
+ * the caused exception by the consumer's error handler. By enable the 
bridge error handler on the consumer,
+ * then the Camel routing error handler can handle the exception instead.
+ * p/
+ * The default behavior would be the consumer throws an exception and no 
mails from the batch would be able to be routed by Camel.
+ */
+public void setHandleFailedMessage(boolean handleFailedMessage) {
+this.handleFailedMessage = handleFailedMessage;
+}
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/99106e41/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
--
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
index 2015cca..7ba9397 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
@@ -16,8 +16,10 @@
  */
 package org.apache.camel.component.mail;
 
+import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Queue;
 import java.util.UUID;
 import javax.mail.Flags;
@@ -54,6 +56,8 @@ public class MailConsumer extends 
ScheduledBatchPollingConsumer {
 private final JavaMailSender sender;
 private Folder folder;
 private Store store;
+private boolean skipFailedMessage;
+private boolean handleFailedMessage;
 

[1/2] camel git commit: CAMEL-7474: Add option to mail consumer to skip or handle if there is an error retrieving a mail from the mailbox. This can avoid an endless problem if one mail is problematic.

2015-03-21 Thread davsclaus
Repository: camel
Updated Branches:
  refs/heads/camel-2.15.x adf655d54 - 99106e411
  refs/heads/master 5224a13e5 - 8639a14ea


CAMEL-7474: Add option to mail consumer to skip or handle if there is an error 
retrieving a mail from the mailbox. This can avoid an endless problem if one 
mail is problematic.


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

Branch: refs/heads/master
Commit: 8639a14ead5440860f4638ce2608f407ded278a7
Parents: 5224a13
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 12:31:47 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 12:36:43 2015 +0100

--
 .../camel/component/mail/MailConfiguration.java | 34 +-
 .../camel/component/mail/MailConsumer.java  | 47 ++--
 .../camel/component/mail/MailEndpoint.java  |  3 ++
 3 files changed, 79 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/8639a14e/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
--
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
index 526e32c..794ebf6 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
@@ -20,7 +20,6 @@ import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
-
 import javax.mail.Message;
 import javax.mail.Session;
 import javax.net.ssl.SSLContext;
@@ -98,6 +97,10 @@ public class MailConfiguration implements Cloneable {
 private boolean closeFolder = true;
 @UriParam(defaultValue = true) @Metadata(label = consumer)
 private boolean peek = true;
+@UriParam @Metadata(label = consumer)
+private boolean skipFailedMessage;
+@UriParam @Metadata(label = consumer)
+private boolean handleFailedMessage;
 @UriParam
 private SSLContextParameters sslContextParameters;
 private ClassLoader applicationClassLoader;
@@ -633,4 +636,33 @@ public class MailConfiguration implements Cloneable {
 public void setPeek(boolean peek) {
 this.peek = peek;
 }
+
+public boolean isSkipFailedMessage() {
+return skipFailedMessage;
+}
+
+/**
+ * If the mail consumer cannot retrieve a given mail message, then this 
option allows to skip
+ * the message and move on to retrieve the next mail message.
+ * p/
+ * The default behavior would be the consumer throws an exception and no 
mails from the batch would be able to be routed by Camel.
+ */
+public void setSkipFailedMessage(boolean skipFailedMessage) {
+this.skipFailedMessage = skipFailedMessage;
+}
+
+public boolean isHandleFailedMessage() {
+return handleFailedMessage;
+}
+
+/**
+ * If the mail consumer cannot retrieve a given mail message, then this 
option allows to handle
+ * the caused exception by the consumer's error handler. By enable the 
bridge error handler on the consumer,
+ * then the Camel routing error handler can handle the exception instead.
+ * p/
+ * The default behavior would be the consumer throws an exception and no 
mails from the batch would be able to be routed by Camel.
+ */
+public void setHandleFailedMessage(boolean handleFailedMessage) {
+this.handleFailedMessage = handleFailedMessage;
+}
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/8639a14e/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
--
diff --git 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
index 2015cca..7ba9397 100644
--- 
a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
+++ 
b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
@@ -16,8 +16,10 @@
  */
 package org.apache.camel.component.mail;
 
+import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Queue;
 import java.util.UUID;
 import javax.mail.Flags;
@@ -54,6 +56,8 @@ public class MailConsumer extends 
ScheduledBatchPollingConsumer {
 private final JavaMailSender sender;
 private 

[1/2] camel git commit: CAMEL-7565: SFTP using PollEnrich with disconnect=true and delete=true does NOT delete the file.

2015-03-21 Thread davsclaus
Repository: camel
Updated Branches:
  refs/heads/camel-2.15.x 8e9b48820 - adf655d54
  refs/heads/master 8c6de215e - 5224a13e5


CAMEL-7565: SFTP using PollEnrich with disconnect=true and delete=true does NOT 
delete the file.


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

Branch: refs/heads/master
Commit: 5224a13e5257fcf289e5b95f65a5baaeb67ddecf
Parents: 8c6de21
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 12:12:36 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 12:12:36 2015 +0100

--
 .../file/remote/RemoteFileConsumer.java | 39 --
 ...nrichConsumeWithDisconnectAndDeleteTest.java | 78 
 2 files changed, 111 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/5224a13e/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
--
diff --git 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
index bb418e2..4a4ba2d 100644
--- 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
+++ 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
@@ -20,17 +20,19 @@ import java.io.IOException;
 import java.util.List;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.Ordered;
 import org.apache.camel.Processor;
 import org.apache.camel.component.file.GenericFile;
 import org.apache.camel.component.file.GenericFileConsumer;
 import org.apache.camel.component.file.GenericFileOperationFailedException;
+import org.apache.camel.support.SynchronizationAdapter;
 
 /**
  * Base class for remote file consumers.
  */
 public abstract class RemoteFileConsumerT extends GenericFileConsumerT {
-protected boolean loggedIn;
-protected boolean loggedInWarning;
+protected transient boolean loggedIn;
+protected transient boolean loggedInWarning;
 
 public RemoteFileConsumer(RemoteFileEndpointT endpoint, Processor 
processor, RemoteFileOperationsT operations) {
 super(endpoint, processor, operations);
@@ -87,10 +89,6 @@ public abstract class RemoteFileConsumerT extends 
GenericFileConsumerT {
 if (log.isTraceEnabled()) {
 log.trace(postPollCheck on  + 
getEndpoint().getConfiguration().remoteServerInformation());
 }
-if (getEndpoint().isDisconnect()) {
-log.trace(postPollCheck disconnect from: {}, getEndpoint());
-disconnect();
-}
 }
 
 @Override
@@ -98,6 +96,35 @@ public abstract class RemoteFileConsumerT extends 
GenericFileConsumerT {
 // mark the exchange to be processed synchronously as the ftp client 
is not thread safe
 // and we must execute the callbacks in the same thread as this 
consumer
 exchange.setProperty(Exchange.UNIT_OF_WORK_PROCESS_SYNC, Boolean.TRUE);
+
+// defer disconnect til the UoW is complete - but only the last 
exchange from the batch should do that
+boolean isLast = exchange.getProperty(Exchange.BATCH_COMPLETE, true, 
Boolean.class);
+if (isLast  getEndpoint().isDisconnect()) {
+exchange.addOnCompletion(new SynchronizationAdapter() {
+@Override
+public void onDone(Exchange exchange) {
+log.trace(postPollCheck disconnect from: {}, 
getEndpoint());
+disconnect();
+}
+
+@Override
+public boolean allowHandover() {
+// do not allow handover as we must execute the callbacks 
in the same thread as this consumer
+return false;
+}
+
+@Override
+public int getOrder() {
+// we want to disconnect last
+return Ordered.LOWEST;
+}
+
+public String toString() {
+return Disconnect;
+}
+});
+}
+
 return super.processExchange(exchange);
 }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/5224a13e/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/SftpPollEnrichConsumeWithDisconnectAndDeleteTest.java
--
diff --git 

[2/2] camel git commit: CAMEL-7565: SFTP using PollEnrich with disconnect=true and delete=true does NOT delete the file.

2015-03-21 Thread davsclaus
CAMEL-7565: SFTP using PollEnrich with disconnect=true and delete=true does NOT 
delete the file.


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

Branch: refs/heads/camel-2.15.x
Commit: adf655d54abd0fb67326f4b50d35d5ee2676af7e
Parents: 8e9b488
Author: Claus Ibsen davscl...@apache.org
Authored: Sat Mar 21 12:12:36 2015 +0100
Committer: Claus Ibsen davscl...@apache.org
Committed: Sat Mar 21 12:13:25 2015 +0100

--
 .../file/remote/RemoteFileConsumer.java | 39 --
 ...nrichConsumeWithDisconnectAndDeleteTest.java | 78 
 2 files changed, 111 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/camel/blob/adf655d5/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
--
diff --git 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
index bb418e2..4a4ba2d 100644
--- 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
+++ 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
@@ -20,17 +20,19 @@ import java.io.IOException;
 import java.util.List;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.Ordered;
 import org.apache.camel.Processor;
 import org.apache.camel.component.file.GenericFile;
 import org.apache.camel.component.file.GenericFileConsumer;
 import org.apache.camel.component.file.GenericFileOperationFailedException;
+import org.apache.camel.support.SynchronizationAdapter;
 
 /**
  * Base class for remote file consumers.
  */
 public abstract class RemoteFileConsumerT extends GenericFileConsumerT {
-protected boolean loggedIn;
-protected boolean loggedInWarning;
+protected transient boolean loggedIn;
+protected transient boolean loggedInWarning;
 
 public RemoteFileConsumer(RemoteFileEndpointT endpoint, Processor 
processor, RemoteFileOperationsT operations) {
 super(endpoint, processor, operations);
@@ -87,10 +89,6 @@ public abstract class RemoteFileConsumerT extends 
GenericFileConsumerT {
 if (log.isTraceEnabled()) {
 log.trace(postPollCheck on  + 
getEndpoint().getConfiguration().remoteServerInformation());
 }
-if (getEndpoint().isDisconnect()) {
-log.trace(postPollCheck disconnect from: {}, getEndpoint());
-disconnect();
-}
 }
 
 @Override
@@ -98,6 +96,35 @@ public abstract class RemoteFileConsumerT extends 
GenericFileConsumerT {
 // mark the exchange to be processed synchronously as the ftp client 
is not thread safe
 // and we must execute the callbacks in the same thread as this 
consumer
 exchange.setProperty(Exchange.UNIT_OF_WORK_PROCESS_SYNC, Boolean.TRUE);
+
+// defer disconnect til the UoW is complete - but only the last 
exchange from the batch should do that
+boolean isLast = exchange.getProperty(Exchange.BATCH_COMPLETE, true, 
Boolean.class);
+if (isLast  getEndpoint().isDisconnect()) {
+exchange.addOnCompletion(new SynchronizationAdapter() {
+@Override
+public void onDone(Exchange exchange) {
+log.trace(postPollCheck disconnect from: {}, 
getEndpoint());
+disconnect();
+}
+
+@Override
+public boolean allowHandover() {
+// do not allow handover as we must execute the callbacks 
in the same thread as this consumer
+return false;
+}
+
+@Override
+public int getOrder() {
+// we want to disconnect last
+return Ordered.LOWEST;
+}
+
+public String toString() {
+return Disconnect;
+}
+});
+}
+
 return super.processExchange(exchange);
 }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/adf655d5/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/SftpPollEnrichConsumeWithDisconnectAndDeleteTest.java
--
diff --git 
a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/SftpPollEnrichConsumeWithDisconnectAndDeleteTest.java