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 2011/09/20 14:13:37 UTC
svn commit: r1173106 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/impl/DefaultCamelContext.java
test/java/org/apache/camel/impl/LifecycleStrategyServiceTest.java
Author: davsclaus
Date: Tue Sep 20 12:13:37 2011
New Revision: 1173106
URL: http://svn.apache.org/viewvc?rev=1173106&view=rev
Log:
CAMEL-4467: LifecycleStrategy should be started/stopped when CamelContext is starting/stopping
Added:
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/LifecycleStrategyServiceTest.java
- copied, changed from r1172982, camel/trunk/camel-core/src/test/java/org/apache/camel/impl/LifecycleStrategyFailOnStartupTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1173106&r1=1173105&r2=1173106&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Tue Sep 20 12:13:37 2011
@@ -1415,6 +1415,7 @@ public class DefaultCamelContext extends
getManagementStrategy().start();
// start lifecycle strategies
+ ServiceHelper.startServices(lifecycleStrategies);
Iterator<LifecycleStrategy> it = lifecycleStrategies.iterator();
while (it.hasNext()) {
LifecycleStrategy strategy = it.next();
@@ -1526,6 +1527,8 @@ public class DefaultCamelContext extends
// shutdown management as the last one
shutdownServices(managementStrategy);
+ shutdownServices(lifecycleStrategies);
+ lifecycleStrategies.clear();
// stop the lazy created so they can be re-created on restart
forceStopLazyInitialization();
Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/impl/LifecycleStrategyServiceTest.java (from r1172982, camel/trunk/camel-core/src/test/java/org/apache/camel/impl/LifecycleStrategyFailOnStartupTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/LifecycleStrategyServiceTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/impl/LifecycleStrategyServiceTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/impl/LifecycleStrategyFailOnStartupTest.java&r1=1172982&r2=1173106&rev=1173106&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/impl/LifecycleStrategyFailOnStartupTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/impl/LifecycleStrategyServiceTest.java Tue Sep 20 12:13:37 2011
@@ -17,13 +17,14 @@
package org.apache.camel.impl;
import org.apache.camel.CamelContext;
+import org.apache.camel.Service;
import org.apache.camel.TestSupport;
import org.apache.camel.util.jndi.JndiContext;
/**
* @version
*/
-public class LifecycleStrategyFailOnStartupTest extends TestSupport {
+public class LifecycleStrategyServiceTest extends TestSupport {
private MyLifecycleStrategy dummy1 = new MyLifecycleStrategy();
@@ -33,21 +34,32 @@ public class LifecycleStrategyFailOnStar
return context;
}
- public void testLifecycleStrategyFailOnStartup() throws Exception {
+ public void testLifecycleStrategyService() throws Exception {
+ assertEquals(false, dummy1.isStarted());
+
CamelContext context = createCamelContext();
- try {
- context.start();
- fail("Should have thrown exception");
- } catch (IllegalArgumentException e) {
- assertEquals("Forced", e.getMessage());
- }
+ context.start();
+ assertEquals(true, dummy1.isStarted());
+ context.stop();
+ assertEquals(false, dummy1.isStarted());
}
- private static class MyLifecycleStrategy extends DummyLifecycleStrategy {
+ private static class MyLifecycleStrategy extends DummyLifecycleStrategy implements Service {
+
+ private volatile boolean started;
+
+ @Override
+ public void start() throws Exception {
+ started = true;
+ }
@Override
- public void onContextStart(CamelContext context) {
- throw new IllegalArgumentException("Forced");
+ public void stop() throws Exception {
+ started = false;
+ }
+
+ public boolean isStarted() {
+ return started;
}
}