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 2014/08/07 16:48:22 UTC

[1/8] git commit: CAMEL-7666: Fixed potential java.util.ConcurrentModificationException using addService.

Repository: camel
Updated Branches:
  refs/heads/camel-2.12.x b668bcaa2 -> 920cfd75b
  refs/heads/camel-2.13.x 4b3dbc616 -> 66acc68eb
  refs/heads/master ee8f18073 -> 3d14a21d9


CAMEL-7666: Fixed potential java.util.ConcurrentModificationException using addService.


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

Branch: refs/heads/master
Commit: 67ba6ff0d7687cc8fe3c70191d4d209d6f42eaa5
Parents: ee8f180
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 7 10:24:52 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 7 10:24:52 2014 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/camel/impl/DefaultCamelContext.java  | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/67ba6ff0/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 fa4d673..dab1eaa 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
@@ -32,6 +32,7 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.TreeMap;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -170,7 +171,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
     private LanguageResolver languageResolver = new DefaultLanguageResolver();
     private final Map<String, Language> languages = new HashMap<String, Language>();
     private Registry registry;
-    private List<LifecycleStrategy> lifecycleStrategies = new ArrayList<LifecycleStrategy>();
+    private List<LifecycleStrategy> lifecycleStrategies = new CopyOnWriteArrayList<LifecycleStrategy>();
     private ManagementStrategy managementStrategy;
     private ManagementMBeanAssembler managementMBeanAssembler;
     private final List<RouteDefinition> routeDefinitions = new ArrayList<RouteDefinition>();


[8/8] git commit: CAMEL-7666: Fixed potential java.util.ConcurrentModificationException using addService.

Posted by da...@apache.org.
CAMEL-7666: Fixed potential java.util.ConcurrentModificationException using addService.


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

Branch: refs/heads/camel-2.12.x
Commit: 920cfd75b9d832edaa03c1b71af83ddca13d1e80
Parents: b668bca
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 7 10:24:52 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 7 16:48:01 2014 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/camel/impl/DefaultCamelContext.java  | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/920cfd75/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 77a7cce..4e41234 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
@@ -32,6 +32,7 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.TreeMap;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -165,7 +166,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
     private LanguageResolver languageResolver = new DefaultLanguageResolver();
     private final Map<String, Language> languages = new HashMap<String, Language>();
     private Registry registry;
-    private List<LifecycleStrategy> lifecycleStrategies = new ArrayList<LifecycleStrategy>();
+    private List<LifecycleStrategy> lifecycleStrategies = new CopyOnWriteArrayList<LifecycleStrategy>();
     private ManagementStrategy managementStrategy;
     private ManagementMBeanAssembler managementMBeanAssembler;
     private final List<RouteDefinition> routeDefinitions = new ArrayList<RouteDefinition>();


[5/8] git commit: CAMEL-7667: camel-jms route consumers will not accept new messages during stopping of CamelContext. This prevents issues with JMS connections being attempted to re-connect due failover protocol and during shutdown of the Camel app. This

Posted by da...@apache.org.
CAMEL-7667: camel-jms route consumers will not accept new messages during stopping of CamelContext. This prevents issues with JMS connections being attempted to re-connect due failover protocol and during shutdown of the Camel app. This can lead to WARNs and ERRORs in the logs which we can avoid a bit more with letting the jms consumer shutdown quciker.


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

Branch: refs/heads/master
Commit: 3d8ae86338598d279ae2e5bf58b2676d5237b3fc
Parents: 5707862
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 7 15:57:41 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 7 15:57:41 2014 +0200

----------------------------------------------------------------------
 .../jms/DefaultJmsMessageListenerContainer.java | 37 ++++++++++++++++++--
 .../ExclusiveQueueMessageListenerContainer.java |  3 +-
 .../SharedQueueMessageListenerContainer.java    |  5 +--
 .../jms/reply/TemporaryQueueReplyManager.java   |  3 +-
 4 files changed, 42 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/3d8ae863/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java
index 793bb75..ba3282e 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java
@@ -35,15 +35,48 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 public class DefaultJmsMessageListenerContainer extends DefaultMessageListenerContainer {
 
     private final JmsEndpoint endpoint;
+    private final boolean allowQuickStop;
 
     public DefaultJmsMessageListenerContainer(JmsEndpoint endpoint) {
+        this(endpoint, true);
+    }
+
+    public DefaultJmsMessageListenerContainer(JmsEndpoint endpoint, boolean allowQuickStop) {
         this.endpoint = endpoint;
+        this.allowQuickStop = allowQuickStop;
+    }
+
+    /**
+     * Whether this {@link DefaultMessageListenerContainer} allows the {@link #runningAllowed()} to quick stop
+     * in case {@link JmsConfiguration#isAcceptMessagesWhileStopping()} is enabled, and {@link org.apache.camel.CamelContext}
+     * is currently being stopped.
+     */
+    protected boolean isAllowQuickStop() {
+        return allowQuickStop;
     }
 
     @Override
     protected boolean runningAllowed() {
-        // do not run if we have been stopped
-        return endpoint.isRunning();
+        // we can stop quickly if CamelContext is being stopped, and we do not accept messages while stopping
+        // this allows a more cleanly shutdown of the message listener
+        boolean quickStop = false;
+        if (isAllowQuickStop() && !endpoint.isAcceptMessagesWhileStopping()) {
+            quickStop = endpoint.getCamelContext().getStatus().isStopping();
+        }
+
+        if (quickStop) {
+            // log at debug level so its quicker to see we are stopping quicker from the logs
+            logger.debug("runningAllowed() -> false due CamelContext is stopping and endpoint configured to not accept messages while stopping");
+            return false;
+        } else {
+            // otherwise we only run if the endpoint is running
+            boolean answer = endpoint.isRunning();
+            // log at trace level as otherwise this can be noisy during normal operation
+            if (logger.isTraceEnabled()) {
+                logger.trace("runningAllowed() -> " + answer);
+            }
+            return answer;
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/3d8ae863/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ExclusiveQueueMessageListenerContainer.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ExclusiveQueueMessageListenerContainer.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ExclusiveQueueMessageListenerContainer.java
index b572541..64b7bfe 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ExclusiveQueueMessageListenerContainer.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/ExclusiveQueueMessageListenerContainer.java
@@ -37,6 +37,7 @@ public class ExclusiveQueueMessageListenerContainer extends DefaultJmsMessageLis
     // no need to override any methods currently
 
     public ExclusiveQueueMessageListenerContainer(JmsEndpoint endpoint) {
-        super(endpoint);
+        // request-reply listener container should not allow quick-stop so we can keep listening for reply messages
+        super(endpoint, false);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/3d8ae863/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/SharedQueueMessageListenerContainer.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/SharedQueueMessageListenerContainer.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/SharedQueueMessageListenerContainer.java
index f6464ff..3b682e0 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/SharedQueueMessageListenerContainer.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/SharedQueueMessageListenerContainer.java
@@ -48,7 +48,8 @@ public class SharedQueueMessageListenerContainer extends DefaultJmsMessageListen
      * @param fixedMessageSelector the fixed selector
      */
     public SharedQueueMessageListenerContainer(JmsEndpoint endpoint, String fixedMessageSelector) {
-        super(endpoint);
+        // request-reply listener container should not allow quick-stop so we can keep listening for reply messages
+        super(endpoint, false);
         this.fixedMessageSelector = fixedMessageSelector;
     }
 
@@ -59,7 +60,7 @@ public class SharedQueueMessageListenerContainer extends DefaultJmsMessageListen
      * @param creator the create to create the dynamic selector
      */
     public SharedQueueMessageListenerContainer(JmsEndpoint endpoint, MessageSelectorCreator creator) {
-        super(endpoint);
+        super(endpoint, false);
         this.creator = creator;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/3d8ae863/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
index a5e8798..f7430eb 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
@@ -99,7 +99,8 @@ public class TemporaryQueueReplyManager extends ReplyManagerSupport {
     @Override
     protected AbstractMessageListenerContainer createListenerContainer() throws Exception {
         // Use DefaultMessageListenerContainer as it supports reconnects (see CAMEL-3193)
-        DefaultMessageListenerContainer answer = new DefaultJmsMessageListenerContainer(endpoint);
+        // request-reply listener container should not allow quick-stop so we can keep listening for reply messages
+        DefaultMessageListenerContainer answer = new DefaultJmsMessageListenerContainer(endpoint, false);
 
         answer.setDestinationName("temporary");
         answer.setDestinationResolver(destResolver);


[4/8] git commit: Fixed test

Posted by da...@apache.org.
Fixed test


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

Branch: refs/heads/master
Commit: 57078628f503bd4bd0c00295f231667f69996bff
Parents: 426bce9
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 7 14:58:36 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 7 14:58:36 2014 +0200

----------------------------------------------------------------------
 .../component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/57078628/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java
index ff8e267..d8fe352 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java
@@ -115,7 +115,7 @@ public class JmsBlockedAsyncRoutingEngineTest extends CamelTestSupport {
         return new RouteBuilder() {
             public void configure() throws Exception {
                 from("activemq:queue:test?concurrentConsumers=5&useMessageIDAsCorrelationID=true&transacted=true")
-                    .filter().simple("${in.body} = 'beSlow'")
+                    .filter().simple("${in.body} == 'beSlow'")
                         .delay(constant(2000))
                     .log(">>>>> Received message on test queue")
                     .setBody(constant("Reply"))


[3/8] git commit: Polished example

Posted by da...@apache.org.
Polished example


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

Branch: refs/heads/master
Commit: 426bce98b655a8878a6e9fbe6bf34a147aeec530
Parents: 112dff8
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 7 14:10:07 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 7 14:10:07 2014 +0200

----------------------------------------------------------------------
 .../src/main/resources/META-INF/spring/camel-context.xml         | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/426bce98/examples/camel-example-pojo-messaging/src/main/resources/META-INF/spring/camel-context.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-pojo-messaging/src/main/resources/META-INF/spring/camel-context.xml b/examples/camel-example-pojo-messaging/src/main/resources/META-INF/spring/camel-context.xml
index 0807162..b9fa6f5 100644
--- a/examples/camel-example-pojo-messaging/src/main/resources/META-INF/spring/camel-context.xml
+++ b/examples/camel-example-pojo-messaging/src/main/resources/META-INF/spring/camel-context.xml
@@ -27,7 +27,7 @@
          http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
 
   <!-- This creates an embedded ActiveMQ Broker -->
-  <broker xmlns="http://activemq.apache.org/schema/core" useJmx="true" persistent="false"
+  <broker xmlns="http://activemq.apache.org/schema/core" useJmx="true" persistent="false" useShutdownHook="false"
           brokerName="myBroker" id="broker">
     <transportConnectors>
       <transportConnector uri="vm://myBroker"/>
@@ -37,7 +37,7 @@
   <!-- Lets connect the Camel ActiveMQ component to the embedded broker.
        See http://camel.apache.org/activemq.html for more information.
   -->
-  <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
+  <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent" depends-on="broker">
     <property name="brokerURL" value="vm://myBroker"/>
   </bean>
 


[6/8] git commit: CAMEL-7669: jms unit tests should start|stop connection pool.

Posted by da...@apache.org.
CAMEL-7669: jms unit tests should start|stop connection pool.


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

Branch: refs/heads/master
Commit: 3d14a21d9e3e5d33c8420b0210e68a90e3611442
Parents: 3d8ae86
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 7 16:47:15 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 7 16:47:15 2014 +0200

----------------------------------------------------------------------
 .../org/apache/camel/itest/hawtdb/JmsToHawtDBAggregateTest.xml     | 2 +-
 .../camel/itest/jetty/JettyJmsShutdownInProgressTest-context.xml   | 1 +
 .../org/apache/camel/itest/jetty/JettyJmsShutdownTest-context.xml  | 1 +
 .../org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.xml  | 2 +-
 .../resources/org/apache/camel/itest/jms/FileToJmsTest-context.xml | 2 +-
 .../camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.xml  | 2 +-
 .../org/apache/camel/itest/jms/JmsPollingConsumerTest-context.xml  | 2 +-
 .../org/apache/camel/itest/tx/JmsToHttpTXTest-context.xml          | 2 +-
 ...ExceptionAndNoTransactionErrorHandlerConfiguredTest-context.xml | 2 +-
 .../camel/itest/tx/JmsToHttpTXWithOnExceptionTest-context.xml      | 2 +-
 .../apache/camel/itest/tx/JmsToHttpTXWithRollbackTest-context.xml  | 2 +-
 11 files changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/hawtdb/JmsToHawtDBAggregateTest.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/hawtdb/JmsToHawtDBAggregateTest.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/hawtdb/JmsToHawtDBAggregateTest.xml
index e22af04..b15a1d5 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/hawtdb/JmsToHawtDBAggregateTest.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/hawtdb/JmsToHawtDBAggregateTest.xml
@@ -22,7 +22,7 @@
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
     <!-- ActiveMQ connection factory -->
-    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
         <property name="maxConnections" value="8"/>
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
     </bean>

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownInProgressTest-context.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownInProgressTest-context.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownInProgressTest-context.xml
index 680ce5a..49bec72 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownInProgressTest-context.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownInProgressTest-context.xml
@@ -24,6 +24,7 @@
     <bean id="properties" class="org.apache.camel.component.properties.PropertiesComponent"/>
     <bean id="jms" class="org.apache.activemq.camel.component.ActiveMQComponent">
         <property name="brokerURL" value="vm://localhost?broker.persistent=false"/>
+        <property name="acceptMessagesWhileStopping" value="true"/>
     </bean>
 
     <camelContext xmlns="http://camel.apache.org/schema/spring">

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownTest-context.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownTest-context.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownTest-context.xml
index faafe15..6766ca6 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownTest-context.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jetty/JettyJmsShutdownTest-context.xml
@@ -26,6 +26,7 @@
     
     <bean id="jms" class="org.apache.activemq.camel.component.ActiveMQComponent">
         <property name="brokerURL" value="vm://localhost?broker.persistent=false"/>
+        <property name="acceptMessagesWhileStopping" value="true"/>
     </bean>
 
     <camelContext xmlns="http://camel.apache.org/schema/spring">

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.xml
index 8f145ff..a0decab 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.xml
@@ -21,7 +21,7 @@
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
-  <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+  <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
     <property name="maxConnections" value="8"/>
     <property name="connectionFactory" ref="jmsConnectionFactory"/>
   </bean>

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/FileToJmsTest-context.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/FileToJmsTest-context.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/FileToJmsTest-context.xml
index 3caedc5..148508c 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/FileToJmsTest-context.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/FileToJmsTest-context.xml
@@ -24,7 +24,7 @@
        http://activemq.apache.org/schema/core http://activemq.org/config/1.0/1.0.xsd">
 
     <!-- camel stuff below to send and listen to broker with a spring JMS transaction manager -->
-    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
         <property name="maxConnections" value="8"/>
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
     </bean>

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.xml
index 0a3782e..aa0da27 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.xml
@@ -24,7 +24,7 @@
 
   <bean id="properties" class="org.apache.camel.component.properties.PropertiesComponent"/>
 
-  <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+  <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
     <property name="maxConnections" value="8"/>
     <property name="connectionFactory" ref="jmsConnectionFactory"/>
   </bean>

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JmsPollingConsumerTest-context.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JmsPollingConsumerTest-context.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JmsPollingConsumerTest-context.xml
index cfbd304..d3ba9f7 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JmsPollingConsumerTest-context.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/jms/JmsPollingConsumerTest-context.xml
@@ -31,7 +31,7 @@
     </broker:broker>
 
     <!-- camel stuff below to send and listen to broker with a spring JMS transaction manager -->
-    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
         <property name="maxConnections" value="8"/>
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
     </bean>

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXTest-context.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXTest-context.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXTest-context.xml
index dcbf19e..6e8a44d 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXTest-context.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXTest-context.xml
@@ -22,7 +22,7 @@
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
     <!-- ActiveMQ connection factory -->
-    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
         <property name="maxConnections" value="8"/>
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
     </bean>

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest-context.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest-context.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest-context.xml
index d6c7da1..870cc5e 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest-context.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest-context.xml
@@ -22,7 +22,7 @@
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
     <!-- ActiveMQ connection factory -->
-    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
         <property name="maxConnections" value="8"/>
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
     </bean>

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionTest-context.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionTest-context.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionTest-context.xml
index 1fcdae1..d81557f 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionTest-context.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionTest-context.xml
@@ -22,7 +22,7 @@
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
     <!-- ActiveMQ connection factory -->
-    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
         <property name="maxConnections" value="8"/>
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
     </bean>

http://git-wip-us.apache.org/repos/asf/camel/blob/3d14a21d/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithRollbackTest-context.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithRollbackTest-context.xml b/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithRollbackTest-context.xml
index b79347f..a77c03f 100644
--- a/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithRollbackTest-context.xml
+++ b/tests/camel-itest/src/test/resources/org/apache/camel/itest/tx/JmsToHttpTXWithRollbackTest-context.xml
@@ -22,7 +22,7 @@
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
     <!-- ActiveMQ connection factory -->
-    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+    <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
         <property name="maxConnections" value="8"/>
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
     </bean>


[2/8] git commit: Polished example

Posted by da...@apache.org.
Polished example


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

Branch: refs/heads/master
Commit: 112dff88fcf54bce7d52e61a8758a856c9b37a7d
Parents: 67ba6ff
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 7 11:17:29 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 7 11:17:29 2014 +0200

----------------------------------------------------------------------
 .../example/pojo_messaging/DistributeRecordsBean.java    |  9 ++++++++-
 .../pojo_messaging/SendFileRecordsToQueueBean.java       | 11 +++++++++--
 2 files changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/112dff88/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/DistributeRecordsBean.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/DistributeRecordsBean.java b/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/DistributeRecordsBean.java
index b1c2df7..d8071e2 100644
--- a/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/DistributeRecordsBean.java
+++ b/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/DistributeRecordsBean.java
@@ -19,17 +19,24 @@ package org.apache.camel.example.pojo_messaging;
 import org.apache.camel.Consume;
 import org.apache.camel.RecipientList;
 import org.apache.camel.language.XPath;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 //START SNIPPET: ex
 public class DistributeRecordsBean {
+
+    private static final Logger LOG = LoggerFactory.getLogger(DistributeRecordsBean.class);
+
     @Consume(uri = "activemq:personnel.records")
     @RecipientList
     public String[] route(@XPath("/person/city/text()") String city) {
         if (city.equals("London")) {
+            LOG.info("Person is from EMEA region");
             return new String[] {"file:target/messages/emea/hr_pickup", 
                                  "file:target/messages/emea/finance_pickup"};
         } else {
-            return new String[] {"file:target/messages/amer/hr_pickup", 
+            LOG.info("Person is from AMER region");
+            return new String[] {"file:target/messages/amer/hr_pickup",
                                  "file:target/messages/amer/finance_pickup"};
         }
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/112dff88/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/SendFileRecordsToQueueBean.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/SendFileRecordsToQueueBean.java b/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/SendFileRecordsToQueueBean.java
index 176893a..7eb935c 100644
--- a/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/SendFileRecordsToQueueBean.java
+++ b/examples/camel-example-pojo-messaging/src/main/java/org/apache/camel/example/pojo_messaging/SendFileRecordsToQueueBean.java
@@ -17,16 +17,23 @@
 package org.apache.camel.example.pojo_messaging;
 
 import org.apache.camel.Consume;
+import org.apache.camel.Header;
 import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 //START SNIPPET: ex
 public class SendFileRecordsToQueueBean {
+
+    private static final Logger LOG = LoggerFactory.getLogger(SendFileRecordsToQueueBean.class);
+
     @Produce(uri = "activemq:personnel.records")
     ProducerTemplate producer;
 
-    @Consume(uri = "file:src/data?noop=true&initialDelay=100&delay=100")
-    public void onFileSendToQueue(String body) {
+    @Consume(uri = "file:src/data?noop=true")
+    public void onFileSendToQueue(String body, @Header("CamelFileName") String name) {
+        LOG.info("Incoming file: {}", name);
         producer.sendBody(body);
     }
 }


[7/8] git commit: CAMEL-7666: Fixed potential java.util.ConcurrentModificationException using addService.

Posted by da...@apache.org.
CAMEL-7666: Fixed potential java.util.ConcurrentModificationException using addService.


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

Branch: refs/heads/camel-2.13.x
Commit: 66acc68eb74f15b5e37f51ecc19d3111fad8a205
Parents: 4b3dbc6
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 7 10:24:52 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 7 16:47:51 2014 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/camel/impl/DefaultCamelContext.java  | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/66acc68e/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 eb8d87e..9f39968 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
@@ -32,6 +32,7 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.TreeMap;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -167,7 +168,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
     private LanguageResolver languageResolver = new DefaultLanguageResolver();
     private final Map<String, Language> languages = new HashMap<String, Language>();
     private Registry registry;
-    private List<LifecycleStrategy> lifecycleStrategies = new ArrayList<LifecycleStrategy>();
+    private List<LifecycleStrategy> lifecycleStrategies = new CopyOnWriteArrayList<LifecycleStrategy>();
     private ManagementStrategy managementStrategy;
     private ManagementMBeanAssembler managementMBeanAssembler;
     private final List<RouteDefinition> routeDefinitions = new ArrayList<RouteDefinition>();