Author: dkulp
Date: Fri Jul 29 11:16:38 2011
New Revision: 1152166

URL: http://svn.apache.org/viewvc?rev=1152166&view=rev
Log:
More fixes to get the junit4 test support stuff to be parallel=classes
safe

Modified:
    
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
    
camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/CamelSpringTestSupport.java
    
camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelSpringTestSupport.java

Modified: 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java?rev=1152166&r1=1152165&r2=1152166&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
 Fri Jul 29 11:16:38 2011
@@ -55,6 +55,9 @@ public class SpringCamelContext extends 
         ApplicationContextAware {
 
     private static final transient Logger LOG = 
LoggerFactory.getLogger(SpringCamelContext.class);
+    
+    private static final ThreadLocal<Boolean> NO_START = new 
ThreadLocal<Boolean>();
+    
     private ApplicationContext applicationContext;
     private EventEndpoint eventEndpoint;
 
@@ -64,7 +67,13 @@ public class SpringCamelContext extends 
     public SpringCamelContext(ApplicationContext applicationContext) {
         setApplicationContext(applicationContext);
     }
-
+    public static void setNoStart(boolean b) {
+        if (b) {
+            NO_START.set(b);
+        } else {
+            NO_START.remove();
+        }
+    }
     public static SpringCamelContext springCamelContext(ApplicationContext 
applicationContext) throws Exception {
         // lets try and look up a configured camel context in the context
         String[] names = 
applicationContext.getBeanNamesForType(SpringCamelContext.class);
@@ -197,9 +206,8 @@ public class SpringCamelContext extends 
     private void maybeStart() throws Exception {
         // for example from unit testing we want to start Camel later and not 
when Spring framework
         // publish a ContextRefreshedEvent
-        String maybeStart = System.getProperty("maybeStartCamelContext", 
"true");
 
-        if ("true".equals(maybeStart)) {
+        if (NO_START.get() == null) {
             if (!isStarted() && !isStarting()) {
                 start();
             } else {
@@ -207,7 +215,7 @@ public class SpringCamelContext extends 
                 LOG.trace("Ignoring maybeStart() as Apache Camel is already 
started");
             }
         } else {
-            LOG.trace("Ignoring maybeStart() as System property 
maybeStartCamelContext is false");
+            LOG.trace("Ignoring maybeStart() as NO_START is false");
         }
     }
 

Modified: 
camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/CamelSpringTestSupport.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/CamelSpringTestSupport.java?rev=1152166&r1=1152165&r2=1152166&view=diff
==============================================================================
--- 
camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/CamelSpringTestSupport.java
 (original)
+++ 
camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/CamelSpringTestSupport.java
 Fri Jul 29 11:16:38 2011
@@ -47,11 +47,11 @@ public abstract class CamelSpringTestSup
         if 
(!"true".equalsIgnoreCase(System.getProperty("skipStartingCamelContext"))) {
             // tell camel-spring it should not trigger starting CamelContext, 
since we do that later
             // after we are finished setting up the unit test
-            System.setProperty("maybeStartCamelContext", "false");
+            SpringCamelContext.setNoStart(true);
             applicationContext = createApplicationContext();
             assertNotNull("Should have created a valid spring context", 
applicationContext);
             super.setUp();
-            System.clearProperty("maybeStartCamelContext");
+            SpringCamelContext.setNoStart(false);
         } else {
             log.info("Skipping starting CamelContext as system property 
skipStartingCamelContext is set to be true.");
         }

Modified: 
camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelSpringTestSupport.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelSpringTestSupport.java?rev=1152166&r1=1152165&r2=1152166&view=diff
==============================================================================
--- 
camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelSpringTestSupport.java
 (original)
+++ 
camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelSpringTestSupport.java
 Fri Jul 29 11:16:38 2011
@@ -66,7 +66,7 @@ public abstract class CamelSpringTestSup
             // tell camel-spring it should not trigger starting CamelContext, 
since we do that later
             // after we are finished setting up the unit test
             synchronized (lock) {
-                System.setProperty("maybeStartCamelContext", "false");
+                SpringCamelContext.setNoStart(true);
                 if (isCreateCamelContextPerClass()) {
                     applicationContext = threadAppContext.get();
                     if (applicationContext == null) {
@@ -77,7 +77,7 @@ public abstract class CamelSpringTestSup
                     applicationContext = createApplicationContext();
                 }
                 assertNotNull("Should have created a valid spring context", 
applicationContext);
-                System.clearProperty("maybeStartCamelContext");
+                SpringCamelContext.setNoStart(false);
             }
         } else {
             log.info("Skipping starting CamelContext as system property 
skipStartingCamelContext is set to be true.");


Reply via email to