You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2012/03/25 18:14:47 UTC

svn commit: r1305069 [2/2] - in /camel/trunk: camel-core/src/test/java/org/apache/camel/component/stub/ components/camel-spring/src/test/java/org/apache/camel/spring/management/ components/camel-test-spring/ components/camel-test-spring/src/main/java/o...

Copied: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersInheritedTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersInheritedTest.java?p2=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersInheritedTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersInheritedTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
-
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+package org.apache.camel.test.junit4;
 
+public class CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersInheritedTest 
+        extends CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersTest {
 }

Copied: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersTest.java?p2=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.test.junit4;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.test.spring.LazyLoadTypeConverters;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.junit.Test;
+import static org.junit.Assert.assertFalse;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+@SuppressWarnings("deprecation")
+@LazyLoadTypeConverters(false)
+public class CamelSpringJUnit4ClassRunnerLazyLoadTypeConvertersTest 
+        extends CamelSpringJUnit4ClassRunnerPlainTest {
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @Test
+    @Override
+    public void testLazyLoadTypeConverters() {
+        assertFalse(camelContext.isLazyLoadTypeConverters());
+        assertFalse(camelContext2.isLazyLoadTypeConverters());
     }
-
 }

Copied: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java?p2=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,27 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.test.junit4;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.MockEndpoints;
+import org.junit.Test;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+@MockEndpoints("log:*")
+public class CamelSpringJUnit4ClassRunnerMockEndpointsTest
+        extends CamelSpringJUnit4ClassRunnerPlainTest {
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @EndpointInject(uri = "mock:log:org.apache.camel.test.junit4.spring", context = "camelContext2")
+    protected MockEndpoint mockLog;
+    
+    @Test
+    @Override
+    public void testPositive() throws Exception {
+        mockLog.expectedBodiesReceived("Hello David");
+        
+        super.testPositive();
+        
+        mockLog.assertIsSatisfied();
     }
-
 }

Added: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerPlainTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerPlainTest.java?rev=1305069&view=auto
==============================================================================
--- camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerPlainTest.java (added)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerPlainTest.java Sun Mar 25 16:14:46 2012
@@ -0,0 +1,126 @@
+/**
+ * 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.test.junit4;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.Produce;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.ServiceStatus;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.management.DefaultManagementStrategy;
+import org.apache.camel.test.spring.StopWatchTestExecutionListener;
+import org.apache.camel.util.StopWatch;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.annotation.DirtiesContext.ClassMode;
+import org.springframework.test.context.ContextConfiguration;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+// START SNIPPET: e1
+@RunWith(CamelSpringJUnit4ClassRunner.class)
+@ContextConfiguration
+// Put here to prevent Spring context caching across tests and test methods since some tests inherit 
+// from this test and therefore use the same Spring context.  Also because we want to reset the
+// Camel context and mock endpoints between test methods automatically.
+@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
+public class CamelSpringJUnit4ClassRunnerPlainTest {
+    
+    @Autowired
+    protected CamelContext camelContext;
+    
+    @Autowired
+    protected CamelContext camelContext2;
+    
+    @EndpointInject(uri = "mock:a", context = "camelContext")
+    protected MockEndpoint mockA;
+    
+    @EndpointInject(uri = "mock:b", context = "camelContext")
+    protected MockEndpoint mockB;
+    
+    @EndpointInject(uri = "mock:c", context = "camelContext2")
+    protected MockEndpoint mockC;
+    
+    @Produce(uri = "direct:start", context = "camelContext")
+    protected ProducerTemplate start;
+    
+    @Produce(uri = "direct:start2", context = "camelContext2")
+    protected ProducerTemplate start2;
+    
+    @Test
+    public void testPositive() throws Exception {
+        assertEquals(ServiceStatus.Started, camelContext.getStatus());
+        assertEquals(ServiceStatus.Started, camelContext2.getStatus());
+        
+        mockA.expectedBodiesReceived("David");
+        mockB.expectedBodiesReceived("Hello David");
+        mockC.expectedBodiesReceived("David");
+        
+        start.sendBody("David");
+        start2.sendBody("David");
+        
+        MockEndpoint.assertIsSatisfied(camelContext);
+    }
+    
+    @Test
+    public void testJmx() throws Exception {
+        assertEquals(DefaultManagementStrategy.class, camelContext.getManagementStrategy().getClass());
+    }
+    
+    @Test
+    public void testShutdownTimeout() throws Exception {
+        assertEquals(10, camelContext.getShutdownStrategy().getTimeout());
+        assertEquals(TimeUnit.SECONDS, camelContext.getShutdownStrategy().getTimeUnit());
+    }
+    
+    @Test
+    public void testStopwatch() {
+        StopWatch stopWatch = StopWatchTestExecutionListener.getStopWatch();
+        
+        assertNotNull(stopWatch);
+        assertTrue(stopWatch.taken() < 100);
+    }
+    
+    @Test
+    public void testExcludedRoute() {
+        assertNotNull(camelContext.getRoute("excludedRoute"));
+    }
+    
+    @Test
+    public void testProvidesBreakpoint() {
+        assertNull(camelContext.getDebugger());
+        assertNull(camelContext2.getDebugger());
+    }
+
+    @SuppressWarnings("deprecation")
+    @Test
+    public void testLazyLoadTypeConverters() {
+        assertTrue(camelContext.isLazyLoadTypeConverters());
+        assertTrue(camelContext2.isLazyLoadTypeConverters());
+    }
+}
+// END SNIPPET: e1

Copied: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerProvidesBreakpointInherritedTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerProvidesBreakpointInherritedTest.java?p2=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerProvidesBreakpointInherritedTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerProvidesBreakpointInherritedTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.test.junit4;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
-
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+public class CamelSpringJUnit4ClassRunnerProvidesBreakpointInherritedTest 
+        extends CamelSpringJUnit4ClassRunnerProvidesBreakpointTest {
 
 }

Added: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerProvidesBreakpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerProvidesBreakpointTest.java?rev=1305069&view=auto
==============================================================================
--- camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerProvidesBreakpointTest.java (added)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerProvidesBreakpointTest.java Sun Mar 25 16:14:46 2012
@@ -0,0 +1,68 @@
+/**
+ * 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.test.junit4;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.impl.BreakpointSupport;
+import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.spi.Breakpoint;
+import org.apache.camel.test.spring.ProvidesBreakpoint;
+
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+public class CamelSpringJUnit4ClassRunnerProvidesBreakpointTest 
+        extends CamelSpringJUnit4ClassRunnerPlainTest {
+
+    @ProvidesBreakpoint
+    public static Breakpoint createBreakpoint() {
+        return new TestBreakpoint();
+    }
+    
+    @Test
+    @Override
+    public void testProvidesBreakpoint() {
+        assertNotNull(camelContext.getDebugger());
+        assertNotNull(camelContext2.getDebugger());
+        
+        start.sendBody("David");
+        
+        assertNotNull(camelContext.getDebugger());
+        assertNotNull(camelContext.getDebugger().getBreakpoints());
+        assertEquals(1, camelContext.getDebugger().getBreakpoints().size());
+        
+        assertTrue(camelContext.getDebugger().getBreakpoints().get(0) instanceof TestBreakpoint);
+        assertTrue(((TestBreakpoint) camelContext.getDebugger().getBreakpoints().get(0)).isBreakpointHit());
+    }
+    
+    private static final class TestBreakpoint extends BreakpointSupport {
+        
+        private boolean breakpointHit;
+
+        @Override
+        public void beforeProcess(Exchange exchange, Processor processor, ProcessorDefinition<?> definition) {
+            breakpointHit = true;
+        }
+
+        public boolean isBreakpointHit() {
+            return breakpointHit;
+        }
+    }
+}

Copied: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedOverrideTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedOverrideTest.java?p2=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedOverrideTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedOverrideTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.test.junit4;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import java.util.concurrent.TimeUnit;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.apache.camel.test.spring.ShutdownTimeout;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+@ShutdownTimeout
+public class CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedOverrideTest
+        extends CamelSpringJUnit4ClassRunnerShutdownTimeoutTest {
 
+    @Test
+    @Override
+    public void testShutdownTimeout() throws Exception {
+        assertEquals(10, camelContext.getShutdownStrategy().getTimeout());
+        assertEquals(TimeUnit.SECONDS, camelContext.getShutdownStrategy().getTimeUnit());
+    }
 }

Copied: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedTest.java?p2=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.test.junit4;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
-
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+public class CamelSpringJUnit4ClassRunnerShutdownTimeoutInheritedTest
+        extends CamelSpringJUnit4ClassRunnerShutdownTimeoutTest {
 
 }

Copied: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutTest.java?p2=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerShutdownTimeoutTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.test.junit4;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import java.util.concurrent.TimeUnit;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.apache.camel.test.spring.ShutdownTimeout;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+@ShutdownTimeout(value = 11, timeUnit = TimeUnit.MILLISECONDS)
+public class CamelSpringJUnit4ClassRunnerShutdownTimeoutTest
+        extends CamelSpringJUnit4ClassRunnerPlainTest {
 
+    @Test
+    @Override
+    public void testShutdownTimeout() throws Exception {
+        assertEquals(11, camelContext.getShutdownStrategy().getTimeout());
+        assertEquals(TimeUnit.MILLISECONDS, camelContext.getShutdownStrategy().getTimeUnit());
+    }
 }

Added: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerUseAdviceWithTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerUseAdviceWithTest.java?rev=1305069&view=auto
==============================================================================
--- camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerUseAdviceWithTest.java (added)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerUseAdviceWithTest.java Sun Mar 25 16:14:46 2012
@@ -0,0 +1,51 @@
+/**
+ * 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.test.junit4;
+
+import org.apache.camel.ServiceStatus;
+import org.apache.camel.test.spring.StopWatchTestExecutionListener;
+import org.apache.camel.test.spring.UseAdviceWith;
+import org.apache.camel.util.StopWatch;
+
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+@UseAdviceWith
+public class CamelSpringJUnit4ClassRunnerUseAdviceWithTest extends CamelSpringJUnit4ClassRunnerPlainTest {
+    
+    @Before
+    public void testContextStarted() throws Exception {
+        
+        assertEquals(ServiceStatus.Stopped, camelContext.getStatus());
+        assertEquals(ServiceStatus.Stopped, camelContext2.getStatus());
+        camelContext.start();
+        camelContext2.start();
+        
+        Thread.sleep(4000);
+    }
+    
+    @Test
+    public void testStopwatch() {
+        StopWatch stopWatch = StopWatchTestExecutionListener.getStopWatch();
+        
+        assertNotNull(stopWatch);
+        assertTrue(stopWatch.taken() < 4100);
+    }
+}

Copied: camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/TestRouteBuilder.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/TestRouteBuilder.java?p2=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/TestRouteBuilder.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/TestRouteBuilder.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.test.junit4;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.builder.RouteBuilder;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+public class TestRouteBuilder extends RouteBuilder {
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @Override
+    public void configure() throws Exception {
+        
+        from("direct:z")
+            .routeId("excludedRoute")
+            .to("log:org.apache.camel.test.junit4.spring");
     }
-
 }

Added: camel/trunk/components/camel-test-spring/src/test/resources/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerPlainTest-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/resources/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerPlainTest-context.xml?rev=1305069&view=auto
==============================================================================
--- camel/trunk/components/camel-test-spring/src/test/resources/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerPlainTest-context.xml (added)
+++ camel/trunk/components/camel-test-spring/src/test/resources/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerPlainTest-context.xml Sun Mar 25 16:14:46 2012
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:camel="http://camel.apache.org/schema/spring"
+	xsi:schemaLocation="
+		http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ">
+
+  <camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring"
+    trace="true" autoStartup="true">
+    <packageScan>
+      <package>org.apache.camel.test.junit4</package>
+    </packageScan>
+    <route>
+      <from uri="direct:start" />
+      <to uri="mock:a" />
+      <transform>
+        <simple>Hello ${body}</simple>
+      </transform>
+      <to uri="mock:b" />
+    </route>
+  </camelContext>
+
+  <camelContext id="camelContext2" xmlns="http://camel.apache.org/schema/spring"
+    trace="true" autoStartup="true">
+    <route>
+      <from uri="direct:start2" />
+      <to uri="mock:c" />
+      <transform>
+        <simple>Hello ${body}</simple>
+      </transform>
+      <to uri="log:org.apache.camel.test.junit4.spring" />
+    </route>
+  </camelContext>
+
+</beans>
\ No newline at end of file

Modified: camel/trunk/components/camel-testng/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/pom.xml?rev=1305069&r1=1305068&r2=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-testng/pom.xml (original)
+++ camel/trunk/components/camel-testng/pom.xml Sun Mar 25 16:14:46 2012
@@ -46,6 +46,10 @@
             <artifactId>camel-spring</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-spring</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
         </dependency>

Added: camel/trunk/components/camel-testng/src/main/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTests.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/main/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTests.java?rev=1305069&view=auto
==============================================================================
--- camel/trunk/components/camel-testng/src/main/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTests.java (added)
+++ camel/trunk/components/camel-testng/src/main/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTests.java Sun Mar 25 16:14:46 2012
@@ -0,0 +1,73 @@
+/**
+ * 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.testng;
+
+import org.apache.camel.test.spring.CamelSpringTestContextLoader;
+import org.apache.camel.test.spring.CamelSpringTestContextLoaderTestExecutionListener;
+import org.apache.camel.test.spring.DisableJmxTestExecutionListener;
+import org.apache.camel.test.spring.StopWatchTestExecutionListener;
+
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
+import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
+import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
+
+import org.testng.IHookable;
+
+/**
+ * Bridges Camel testing capabilities from {@link CamelSpringTestSupport} into
+ * Spring Test driven classes. This class is based on {@link AbstractTestNGSpringContextTests}
+ * but must also declare a {@link ContextConfiguration} to enable the custom context loader needed
+ * to support some of the Camel testing capabilities.
+ */
+@TestExecutionListeners(
+                        listeners = {
+                                     CamelSpringTestContextLoaderTestExecutionListener.class,
+                                     DependencyInjectionTestExecutionListener.class,
+                                     DirtiesContextTestExecutionListener.class,
+                                     TransactionalTestExecutionListener.class,
+                                     DisableJmxTestExecutionListener.class,
+                                     StopWatchTestExecutionListener.class},
+                         inheritListeners = false)
+@ContextConfiguration(loader = AbstractCamelTestNGSpringContextTests.TestNGCamelSpringTestContextLoader.class)
+public abstract class AbstractCamelTestNGSpringContextTests extends AbstractTestNGSpringContextTests
+        implements IHookable {
+    
+    public static final class TestNGCamelSpringTestContextLoader extends CamelSpringTestContextLoader {
+
+        /**
+         * Since {@link AbstractTestNGSpringContextTests} declares the test context as private and
+         * we cannot control its instantiation, we need to use {@link ContextConfiguration} on 
+         * {@link AbstractCamelTestNGSpringContextTests}.  Unfortunately, this also tries to load
+         * the a context resource based on the default naming convention.  We don't want to require
+         * end users to always have a resource for their tests' abstract parent so we override
+         * the behavior here to prevent that from happening. 
+         */
+        @Override
+        protected String[] generateDefaultLocations(Class<?> clazz) {
+            if (clazz == AbstractCamelTestNGSpringContextTests.class) {
+                return new String[0];
+            } else {
+                return super.generateDefaultLocations(clazz);
+            }
+        }
+        
+    }
+}
+

Modified: camel/trunk/components/camel-testng/src/main/java/org/apache/camel/testng/CamelSpringTestSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/main/java/org/apache/camel/testng/CamelSpringTestSupport.java?rev=1305069&r1=1305068&r2=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-testng/src/main/java/org/apache/camel/testng/CamelSpringTestSupport.java (original)
+++ camel/trunk/components/camel-testng/src/main/java/org/apache/camel/testng/CamelSpringTestSupport.java Sun Mar 25 16:14:46 2012
@@ -17,17 +17,13 @@
 package org.apache.camel.testng;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.impl.DefaultPackageScanClassResolver;
-import org.apache.camel.impl.scan.AssignableToPackageScanFilter;
-import org.apache.camel.impl.scan.InvertingPackageScanFilter;
 import org.apache.camel.spring.CamelBeanPostProcessor;
 import org.apache.camel.spring.SpringCamelContext;
+import org.apache.camel.test.ExcludingPackageScanClassResolver;
 import org.apache.camel.util.CastUtils;
 import org.springframework.beans.factory.support.RootBeanDefinition;
 import org.springframework.context.ApplicationContext;
@@ -104,15 +100,6 @@ public abstract class CamelSpringTestSup
         }
     }
 
-    private static class ExcludingPackageScanClassResolver extends DefaultPackageScanClassResolver {
-
-        public void setExcludedClasses(Set<Class<?>> excludedClasses) {
-            Set<Class<?>> parents = excludedClasses == null ? Collections.<Class<?>>emptySet() : excludedClasses;
-            addFilter(new InvertingPackageScanFilter(new AssignableToPackageScanFilter(parents)));
-        }
-
-    }
-
     /**
      * Create a parent context that initializes a
      * {@link org.apache.camel.spi.PackageScanClassResolver} to exclude a set of given classes from

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxInheritedOverrideTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxInheritedOverrideTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxInheritedOverrideTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxInheritedOverrideTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.management.DefaultManagementStrategy;
+import org.apache.camel.test.spring.DisableJmx;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+@DisableJmx
+public class AbstractCamelTestNGSpringContextTestsDisableJmxInheritedOverrideTest
+        extends AbstractCamelTestNGSpringContextTestsDisableJmxTest {
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @Test
+    public void testJmx() throws Exception {
+        assertEquals(DefaultManagementStrategy.class, camelContext.getManagementStrategy().getClass());
     }
-
 }

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxInheritedTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxInheritedTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxInheritedTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxInheritedTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
-
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+package org.apache.camel.testng;
 
+public class AbstractCamelTestNGSpringContextTestsDisableJmxInheritedTest 
+        extends AbstractCamelTestNGSpringContextTestsDisableJmxTest {
 }

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsDisableJmxTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.management.ManagedManagementStrategy;
+import org.apache.camel.test.spring.DisableJmx;
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+@DisableJmx(false)
+public class AbstractCamelTestNGSpringContextTestsDisableJmxTest 
+        extends AbstractCamelTestNGSpringContextTestsPlainTest {
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @Test
+    @Override
+    public void testJmx() throws Exception {
+        assertEquals(ManagedManagementStrategy.class, camelContext.getManagementStrategy().getClass());
     }
-
 }

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsExcludeRoutesTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsExcludeRoutesTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsExcludeRoutesTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsExcludeRoutesTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.test.spring.ExcludeRoutes;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import static org.testng.Assert.assertNull;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+@ExcludeRoutes(TestRouteBuilder.class)
+public class AbstractCamelTestNGSpringContextTestsExcludeRoutesTest
+        extends AbstractCamelTestNGSpringContextTestsPlainTest {
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @Override
+    public void testExcludedRoute() {
+        assertNull(camelContext.getRoute("excludedRoute"));
     }
-
 }

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedOverrideTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedOverrideTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedOverrideTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedOverrideTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.test.spring.LazyLoadTypeConverters;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertTrue;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+@SuppressWarnings("deprecation")
+@LazyLoadTypeConverters(true)
+public class AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedOverrideTest 
+        extends AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedTest {
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @Test
+    @Override
+    public void testLazyLoadTypeConverters() {
+        assertTrue(camelContext.isLazyLoadTypeConverters());
+        assertTrue(camelContext2.isLazyLoadTypeConverters());
     }
-
 }

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
-
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+package org.apache.camel.testng;
 
+public class AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersInheritedTest 
+        extends AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersTest {
 }

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.test.spring.LazyLoadTypeConverters;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertFalse;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+@SuppressWarnings("deprecation")
+@LazyLoadTypeConverters(false)
+public class AbstractCamelTestNGSpringContextTestsLazyLoadTypeConvertersTest 
+        extends AbstractCamelTestNGSpringContextTestsPlainTest {
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @Test
+    @Override
+    public void testLazyLoadTypeConverters() {
+        assertFalse(camelContext.isLazyLoadTypeConverters());
+        assertFalse(camelContext2.isLazyLoadTypeConverters());
     }
-
 }

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,28 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.MockEndpoints;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.testng.annotations.Test;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+@MockEndpoints("log:*")
+public class AbstractCamelTestNGSpringContextTestsMockEndpointsTest
+        extends AbstractCamelTestNGSpringContextTestsPlainTest {
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @EndpointInject(uri = "mock:log:org.apache.camel.test.junit4.spring", context = "camelContext2")
+    protected MockEndpoint mockLog;
+    
+    @Test
+    @Override
+    public void testPositive() throws Exception {
+        mockLog.expectedBodiesReceived("Hello David");
+        
+        super.testPositive();
+        
+        mockLog.assertIsSatisfied();
     }
-
 }

Added: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsPlainTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsPlainTest.java?rev=1305069&view=auto
==============================================================================
--- camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsPlainTest.java (added)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsPlainTest.java Sun Mar 25 16:14:46 2012
@@ -0,0 +1,127 @@
+/**
+ * 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.testng;
+
+import java.util.concurrent.TimeUnit;
+
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.Produce;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.ServiceStatus;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.management.DefaultManagementStrategy;
+import org.apache.camel.test.spring.StopWatchTestExecutionListener;
+import org.apache.camel.util.StopWatch;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.ContextConfiguration;
+
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
+
+@ContextConfiguration
+//Put here to prevent Spring context caching across tests since some tests inherit from this test and
+//therefore use the same Spring context.
+@DirtiesContext
+public class AbstractCamelTestNGSpringContextTestsPlainTest 
+        extends AbstractCamelTestNGSpringContextTests {
+    
+    @Autowired
+    protected CamelContext camelContext;
+    
+    @Autowired
+    protected CamelContext camelContext2;
+    
+    @EndpointInject(uri = "mock:a", context = "camelContext")
+    protected MockEndpoint mockA;
+    
+    @EndpointInject(uri = "mock:b", context = "camelContext")
+    protected MockEndpoint mockB;
+    
+    @EndpointInject(uri = "mock:c", context = "camelContext2")
+    protected MockEndpoint mockC;
+    
+    @Produce(uri = "direct:start", context = "camelContext")
+    protected ProducerTemplate start;
+    
+    @Produce(uri = "direct:start2", context = "camelContext2")
+    protected ProducerTemplate start2;
+    
+    @Test
+    public void testAppContextInject() {
+        assertNotNull(applicationContext);
+    }
+
+    @Test
+    public void testPositive() throws Exception {
+        assertEquals(ServiceStatus.Started, camelContext.getStatus());
+        assertEquals(ServiceStatus.Started, camelContext2.getStatus());
+        
+        mockA.expectedBodiesReceived("David");
+        mockB.expectedBodiesReceived("Hello David");
+        mockC.expectedBodiesReceived("David");
+        
+        start.sendBody("David");
+        start2.sendBody("David");
+        
+        MockEndpoint.assertIsSatisfied(camelContext);
+    }
+    
+    @Test
+    public void testJmx() throws Exception {
+        assertEquals(DefaultManagementStrategy.class, camelContext.getManagementStrategy().getClass());
+    }
+    
+    @Test
+    public void testShutdownTimeout() throws Exception {
+        assertEquals(10, camelContext.getShutdownStrategy().getTimeout());
+        assertEquals(TimeUnit.SECONDS, camelContext.getShutdownStrategy().getTimeUnit());
+    }
+    
+    @Test
+    public void testStopwatch() {
+        StopWatch stopWatch = StopWatchTestExecutionListener.getStopWatch();
+        
+        assertNotNull(stopWatch);
+        assertTrue(stopWatch.taken() < 100);
+    }
+    
+    @Test
+    public void testExcludedRoute() {
+        assertNotNull(camelContext.getRoute("excludedRoute"));
+    }
+    
+    @Test
+    public void testProvidesBreakpoint() {
+        assertNull(camelContext.getDebugger());
+        assertNull(camelContext2.getDebugger());
+    }
+    
+    @SuppressWarnings("deprecation")
+    @Test
+    public void testLazyLoadTypeConverters() {
+        assertTrue(camelContext.isLazyLoadTypeConverters());
+        assertTrue(camelContext2.isLazyLoadTypeConverters());
+    }
+}

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsProvidesBreakpointInherritedTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsProvidesBreakpointInherritedTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsProvidesBreakpointInherritedTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsProvidesBreakpointInherritedTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
-
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+public class AbstractCamelTestNGSpringContextTestsProvidesBreakpointInherritedTest 
+        extends AbstractCamelTestNGSpringContextTestsProvidesBreakpointTest {
 
 }

Added: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsProvidesBreakpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsProvidesBreakpointTest.java?rev=1305069&view=auto
==============================================================================
--- camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsProvidesBreakpointTest.java (added)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsProvidesBreakpointTest.java Sun Mar 25 16:14:46 2012
@@ -0,0 +1,68 @@
+/**
+ * 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.testng;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.impl.BreakpointSupport;
+import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.spi.Breakpoint;
+import org.apache.camel.test.spring.ProvidesBreakpoint;
+
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+
+public class AbstractCamelTestNGSpringContextTestsProvidesBreakpointTest 
+        extends AbstractCamelTestNGSpringContextTestsPlainTest {
+
+    @ProvidesBreakpoint
+    public static Breakpoint createBreakpoint() {
+        return new TestBreakpoint();
+    }
+    
+    @Test
+    @Override
+    public void testProvidesBreakpoint() {
+        assertNotNull(camelContext.getDebugger());
+        assertNotNull(camelContext2.getDebugger());
+        
+        start.sendBody("David");
+        
+        assertNotNull(camelContext.getDebugger());
+        assertNotNull(camelContext.getDebugger().getBreakpoints());
+        assertEquals(1, camelContext.getDebugger().getBreakpoints().size());
+        
+        assertTrue(camelContext.getDebugger().getBreakpoints().get(0) instanceof TestBreakpoint);
+        assertTrue(((TestBreakpoint) camelContext.getDebugger().getBreakpoints().get(0)).isBreakpointHit());
+    }
+    
+    private static final class TestBreakpoint extends BreakpointSupport {
+        
+        private boolean breakpointHit;
+
+        @Override
+        public void beforeProcess(Exchange exchange, Processor processor, ProcessorDefinition<?> definition) {
+            breakpointHit = true;
+        }
+
+        public boolean isBreakpointHit() {
+            return breakpointHit;
+        }
+    }
+}

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedOverrideTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedOverrideTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedOverrideTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedOverrideTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,24 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import java.util.concurrent.TimeUnit;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.apache.camel.test.spring.ShutdownTimeout;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
 
+@ShutdownTimeout
+public class AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedOverrideTest
+        extends AbstractCamelTestNGSpringContextTestsShutdownTimeoutTest {
+
+    @Test
+    @Override
+    public void testShutdownTimeout() throws Exception {
+        assertEquals(10, camelContext.getShutdownStrategy().getTimeout());
+        assertEquals(TimeUnit.SECONDS, camelContext.getShutdownStrategy().getTimeUnit());
+    }
 }

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
-
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+public class AbstractCamelTestNGSpringContextTestsShutdownTimeoutInheritedTest
+    extends AbstractCamelTestNGSpringContextTestsShutdownTimeoutTest {
 
 }

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutTest.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsShutdownTimeoutTest.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import java.util.concurrent.TimeUnit;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.apache.camel.test.spring.ShutdownTimeout;
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
 
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
-    }
+@ShutdownTimeout(value = 11, timeUnit = TimeUnit.MILLISECONDS)
+public class AbstractCamelTestNGSpringContextTestsShutdownTimeoutTest
+        extends AbstractCamelTestNGSpringContextTestsPlainTest {
 
+    @Test
+    @Override
+    public void testShutdownTimeout() throws Exception {
+        assertEquals(11, camelContext.getShutdownStrategy().getTimeout());
+        assertEquals(TimeUnit.MILLISECONDS, camelContext.getShutdownStrategy().getTimeUnit());
+    }
 }

Added: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsUseAdviceWithTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsUseAdviceWithTest.java?rev=1305069&view=auto
==============================================================================
--- camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsUseAdviceWithTest.java (added)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsUseAdviceWithTest.java Sun Mar 25 16:14:46 2012
@@ -0,0 +1,49 @@
+/**
+ * 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.testng;
+
+import org.apache.camel.ServiceStatus;
+import org.apache.camel.test.spring.UseAdviceWith;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import static org.testng.Assert.assertEquals;
+
+@UseAdviceWith
+public class AbstractCamelTestNGSpringContextTestsUseAdviceWithTest
+        extends AbstractCamelTestNGSpringContextTestsPlainTest {
+
+    protected static boolean checked;
+    
+    @BeforeClass
+    public static void setup() {
+        checked = false;
+    }
+    
+    @BeforeMethod
+    public void testContextStarted() throws Exception {
+        if (!checked) {
+            assertEquals(ServiceStatus.Stopped, camelContext.getStatus());
+            camelContext.start();
+            camelContext2.start();
+            
+            Thread.sleep(2000);
+            
+            checked = true;
+        }
+    }
+}

Copied: camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/TestRouteBuilder.java (from r1305042, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/TestRouteBuilder.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/TestRouteBuilder.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java&r1=1305042&r2=1305069&rev=1305069&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.java (original)
+++ camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/TestRouteBuilder.java Sun Mar 25 16:14:46 2012
@@ -14,17 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
+package org.apache.camel.testng;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.management.ManagedRouteRemoveRouteScopedErrorHandlerTest;
+import org.apache.camel.builder.RouteBuilder;
 
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+public class TestRouteBuilder extends RouteBuilder {
 
-public class SpringManagedRouteRemoveRouteScopedErrorHandlerTest extends ManagedRouteRemoveRouteScopedErrorHandlerTest {
-
-    protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/management/SpringManagedRouteRemoveRouteScopedErrorHandlerTest.xml");
+    @Override
+    public void configure() throws Exception {
+        
+        from("direct:z")
+            .routeId("excludedRoute")
+            .to("log:org.apache.camel.test.junit4.spring");
     }
-
 }

Added: camel/trunk/components/camel-testng/src/test/resources/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsPlainTest-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/resources/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsPlainTest-context.xml?rev=1305069&view=auto
==============================================================================
--- camel/trunk/components/camel-testng/src/test/resources/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsPlainTest-context.xml (added)
+++ camel/trunk/components/camel-testng/src/test/resources/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsPlainTest-context.xml Sun Mar 25 16:14:46 2012
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:camel="http://camel.apache.org/schema/spring"
+	xsi:schemaLocation="
+		http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ">
+
+  <camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring"
+    trace="true" autoStartup="true">
+    <packageScan>
+      <package>org.apache.camel.testng</package>
+    </packageScan>
+    <route>
+      <from uri="direct:start" />
+      <to uri="mock:a" />
+      <transform>
+        <simple>Hello ${body}</simple>
+      </transform>
+      <to uri="mock:b" />
+    </route>
+  </camelContext>
+
+  <camelContext id="camelContext2" xmlns="http://camel.apache.org/schema/spring"
+    trace="true" autoStartup="true">
+    <route>
+      <from uri="direct:start2" />
+      <to uri="mock:c" />
+      <transform>
+        <simple>Hello ${body}</simple>
+      </transform>
+      <to uri="log:org.apache.camel.test.junit4.spring" />
+    </route>
+  </camelContext>
+
+</beans>
\ No newline at end of file