This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new b2ffca2  Polish and cleanup documentation
b2ffca2 is described below

commit b2ffca2b1cedc6a168d4c4217d6abeefda8d2e7d
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Aug 24 09:47:05 2021 +0200

    Polish and cleanup documentation
---
 .../modules/ROOT/pages/bean-injection.adoc         |   2 +-
 .../modules/ROOT/pages/spring-testing.adoc         | 412 ---------------------
 docs/user-manual/modules/ROOT/pages/spring.adoc    |   2 +-
 ...-contexttestsupport-class-in-my-unit-tests.adoc |   2 +-
 4 files changed, 3 insertions(+), 415 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/pages/bean-injection.adoc 
b/docs/user-manual/modules/ROOT/pages/bean-injection.adoc
index 4f6e678..3be3ec3 100644
--- a/docs/user-manual/modules/ROOT/pages/bean-injection.adoc
+++ b/docs/user-manual/modules/ROOT/pages/bean-injection.adoc
@@ -6,7 +6,7 @@ We support the injection of various resources using 
`@EndpointInject` or
 
 * xref:endpoint.adoc[Endpoint] instances which can be used for testing
 when used with xref:components::mock-component.adoc[Mock] endpoints; see the
-xref:spring-testing.adoc[Spring Testing] for an example.
+xref:testing.adoc[Testing] for an example.
 * xref:producertemplate.adoc[ProducerTemplate] instances for
 xref:pojo-producing.adoc[POJO Producing]
 * client side proxies for xref:pojo-producing.adoc[POJO Producing]
diff --git a/docs/user-manual/modules/ROOT/pages/spring-testing.adoc 
b/docs/user-manual/modules/ROOT/pages/spring-testing.adoc
deleted file mode 100644
index 6db8de1..0000000
--- a/docs/user-manual/modules/ROOT/pages/spring-testing.adoc
+++ /dev/null
@@ -1,412 +0,0 @@
-[[SpringTesting-SpringTesting]]
-= Spring Testing
-
-Testing is a crucial part of any development or
-integration work. The Spring Framework offers a number of features that
-makes it easy to test while using Spring for Inversion of Control which
-works with JUnit 3.x or JUnit 4.x.
-
-We can use Spring for IoC and the Camel 
xref:components::mock-component.adoc[Mock] and
-xref:components:others:test.adoc[Test] endpoints to create sophisticated 
integration/unit
-tests that are easy to run and debug inside your IDE.  There are three
-supported approaches for testing with Spring in Camel.
-
-[width="100%",cols="10%,10%,10%,60%",options="header",]
-|=======================================================================
-|Name |Testing Frameworks Supported |Description |Required Camel Test 
Dependencies
-
-|CamelSpringTestSupport |* JUnit 3.x (deprecated)
-* JUnit 4.x
-|Provided by org.apache.camel.test.CamelSpringTestSupport and
-org.apache.camel.test.junit4.CamelSpringTestSupport. These base classes
-provide feature parity with the simple
-CamelTestSupport classes from Camel Test but do
-not support Spring annotations on the test class such as
-*@Autowired*, *@DirtiesContext*, and *@ContextConfiguration*. |* JUnit 3.x 
(deprecated) - camel-test-spring
-* JUnit 4.x - camel-test-spring
-
-|Plain Spring Test |* JUnit 3.x
-* JUnit 4.x
-|Extend the abstract base classes
-(org.springframework.test.context.junit38.AbstractJUnit38SpringContextTests, 
org.springframework.test.context.junit38.AbstractJUnit4SpringContextTests,
-etc.) provided in Spring Test or use the Spring Test JUnit4 runner.
- These approaches support both the Camel annotations and Spring
-annotations, but do not have feature parity
-with org.apache.camel.test.CamelTestSupport and
-org.apache.camel.test.junit4.CamelTestSupport. |* JUnit 3.x (deprecated) - None
-* JUnit 4.x - None
-
-|Camel Enhanced Spring Test |* JUnit 4.x - *Camel 2.10*
-|Use the org.apache.camel.test.junit4.CamelSpringJUnit4ClassRunner runner
-with the *@RunWith* annotation to enable
-feature parity with
-org.apache.camel.test.CamelTestSupport and
-org.apache.camel.test.junit4.CamelTestSupport and also support the full
-suite of Spring Test annotations such
-as *@Autowired*, *@DirtiesContext*, and *@ContextConfiguration*. |* JUnit 3.x 
(deprecated) - camel-test-spring
-* JUnit 4.x - camel-test-spring
-|=======================================================================
-
-[[SpringTesting-CamelSpringTestSupport]]
-== CamelSpringTestSupport
-
-org.apache.camel.test.CamelSpringTestSupport and
-org.apache.camel.test.junit4.CamelSpringTestSupport extend their non-Spring
-aware counterparts (org.apache.camel.test.CamelTestSupport and
-org.apache.camel.test.junit4.CamelTestSupport) and deliver integration with
-Spring into your test classes.  Instead of instantiating the
-CamelContext and routes programmatically, these classes rely on a Spring
-context to wire the needed components together.  If your test extends
-one of these classes, you must provide the Spring context by
-implementing the following method.
-
-[source,java]
--------------------------------------------------------------------------
-protected abstract AbstractApplicationContext createApplicationContext();
--------------------------------------------------------------------------
-
-You are responsible for the instantiation of the Spring context in the
-method implementation.  All of the features available in the non-Spring
-aware counterparts from Camel Test are available
-in your test.
-
-[[SpringTesting-PlainSpringTest]]
-== Plain Spring Test
-
-In this approach, your test classes directly inherit from the Spring
-Test abstract test classes or use the JUnit 4.x test runner provided in
-Spring Test.  This approach supports dependency injection into your test
-class and the full suite of Spring Test annotations but does not support
-the features provided by the CamelSpringTestSupport classes.
-
-[[SpringTesting-PlainSpringTestusingJUnit3.xwithXMLConfigExample]]
-=== Plain Spring Test using JUnit 3.x with XML Config Example
-
-Here is a simple unit test using JUnit 3.x support from Spring Test
-using 
http://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/patterns/FilterTest.java[XML
-Config].
-
-Notice that we use *@DirtiesContext* on the test methods to
-force Spring Testing to automatically reload
-the CamelContext after each test method - this
-ensures that the tests don't clash with each other (e.g. one test method
-sending to an endpoint that is then reused in another test method).
-
-Also notice the use of *@ContextConfiguration* to indicate that by
-default we should look for
-the 
http://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/patterns/FilterTest-context.xml[FilterTest-context.xml
-on the classpath] to configure the test case which looks like this
-
-This test will load a Spring XML configuration file
-calledFilterTest-context.xml from the classpath in the same package
-structure as the FilterTest class and initialize it along with any Camel
-routes we define inside it, then inject theCamelContextinstance into our
-test case.
-
-For instance, like this maven folder layout:
-
-[source,java]
---------------------------------------------------------------------------
-src/test/java/org/apache/camel/spring/patterns/FilterTest.java
-src/test/resources/org/apache/camel/spring/patterns/FilterTest-context.xml
---------------------------------------------------------------------------
-
-[[SpringTesting-PlainSpringTestusingJUnit4.xwithJavaConfigExample]]
-=== Plain Spring Test using JUnit 4.x with Java Config Example
-
-You can completely avoid using an XML configuration file by using
-Spring Java Config.  Here is a unit test
-using JUnit 4.x support from Spring Test
-using 
http://svn.apache.org/repos/asf/camel/trunk/components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/patterns/FilterTest.java[Java
-Config].
-
-This is similar to the XML Config example above except that there is no
-XML file and instead the nested *ContextConfig* class does all of the
-configuration; so your entire test case is contained in a single Java
-class. We currently have to reference by class name this class in the
-*@ContextConfiguration* which is a bit ugly. Please vote for
-http://jira.springframework.org/browse/SJC-238[SJC-238] to address this
-and make Spring Test work more cleanly with Spring JavaConfig.
-
-[[SpringTesting-PlainSpringTestusingJUnit4.0.xRunnerwithXMLConfig]]
-=== Plain Spring Test using JUnit 4.0.x Runner with XML Config
-
-You can avoid extending Spring classes by using the
-SpringJUnit4ClassRunner provided by Spring Test.  This custom JUnit
-runner means you are free to choose your own class hierarchy while
-retaining all the capabilities of Spring Test.
-
-INFO:This is for Spring 4.0.x. If you use Spring 4.1 or newer, then see the
-next section.
-
-[source,java]
-------------------------------------------------------
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration
-public class MyCamelTest {
-
-    @Autowired
-    protected CamelContext camelContext;
-
-    @EndpointInject("mock:foo")
-    protected MockEndpoint foo;
-
-
-    @Test
-    @DirtiesContext
-    public void testMocksAreValid() throws Exception {
-        ...       
-
-        foo.message(0).header("bar").isEqualTo("ABC");
-
-        MockEndpoint.assertIsSatisfied(camelContext);
-    }
-}
-------------------------------------------------------
-
-[[SpringTesting-PlainSpringTestusingJUnit4.1.xRunnerwithXMLConfig]]
-=== Plain Spring Test using JUnit 4.1.x Runner with XML Config
-
-You can avoid extending Spring classes by using the
-SpringJUnit4ClassRunner provided by Spring Test.  This custom JUnit
-runner means you are free to choose your own class hierarchy while
-retaining all the capabilities of Spring Test.
-
-INFO:When using Spring 4.1 onwards, you need to use the @BootstrapWith
-annotation to configure it to use Camel testing, as shown below.
-
-[source,java]
-------------------------------------------------------
-@RunWith(CamelSpringJUnit4ClassRunner.class)
-@BootstrapWith(CamelTestContextBootstrapper.class)
-@ContextConfiguration
-public class MyCamelTest {
-
-    @Autowired
-    protected CamelContext camelContext;
-
-    @EndpointInject("mock:foo")
-    protected MockEndpoint foo;
-
-
-    @Test
-    @DirtiesContext
-    public void testMocksAreValid() throws Exception {
-        ...       
-
-        foo.message(0).header("bar").isEqualTo("ABC");
-
-        MockEndpoint.assertIsSatisfied(camelContext);
-    }
-}
-------------------------------------------------------
-
-[[SpringTesting-CamelEnhancedSpringTest]]
-== Camel Enhanced Spring Test
-
-Using org.apache.camel.test.junit4.CamelSpringJUnit4ClassRunner runner
-with the *@RunWith* annotation provides
-the full feature set of Spring Test with support for the feature set
-provided in the CamelTestSupport classes.  A number of Camel specific
-annotations have been developed in order to provide for declarative
-manipulation of the Camel context(s) involved in the test.  These
-annotations free your test classes from having to inherit from the
-CamelSpringTestSupport classes and also reduce the amount of code
-required to customize the tests.
-
-[width="100%",cols="20%,20%,20%,20%,20%",options="header",]
-|=======================================================================
-|Annotation Class |Applies To |Description |Default Behavior If Not Present 
|Default Behavior If Present
-
-|org.apache.camel.test.spring.DisableJmx |Class |Indicates if JMX should be 
globally disabled in the CamelContexts that
-are bootstrapped  during the test through the use of Spring Test loaded
-application contexts. |JMX is disabled |JMX is disabled
-
-|org.apache.camel.test.spring.ExcludeRoutes |Class |Indicates if certain route 
builder classes should be excluded from
-discovery.  Initializes a
-org.apache.camel.spi.PackageScanClassResolver to exclude a set of given
-classes from being resolved. Typically this is used at test time to
-exclude certain routes, which might otherwise be just noisy, from being
-discovered and initialized. |Not enabled and no routes are excluded |No routes 
are excluded
-
-|org.apache.camel.test.spring.MockEndpoints |Class |Triggers the auto-mocking 
of endpoints whose URIs match the provided
-filter.  The default filter is "*" which matches all endpoints.
- See org.apache.camel.impl.InterceptSendToMockEndpointStrategy for more
-details on the registration of the mock endpoints. |Not enabled |All endpoints 
are sniffed and recorded in a mock endpoint.
-
-|org.apache.camel.test.spring.MockEndpointsAndSkip |Class |Triggers the 
auto-mocking of endpoints whose URIs match the provided
-filter.  The default filter is "*", which matches all endpoints.
- See 
https://github.com/apache/camel/blob/main/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToMockEndpointStrategy.java[org.apache.camel.impl.InterceptSendToMockEndpointStrategy]
 for more
-details on the registration of the mock endpoints.  This annotation will
-also skip sending the message to matched endpoints as well. |Not enabled |All 
endpoints are sniffed and recorded in a mock endpoint.  The original
-endpoint is not invoked.
-
-|org.apache.camel.test.spring.ProvidesBreakpoint |Method |Indicates that the 
annotated method returns
-an org.apache.camel.spi.Breakpoint for use in the test.  Useful for
-intercepting traffic to all endpoints or simply for setting a break
-point in an IDE for debugging.  The method must be public, static, take
-no arguments, and return org.apache.camel.spi.Breakpoint. |N/A |The returned 
Breakpoint is registered in the CamelContext(s)
-
-|org.apache.camel.test.spring.ShutdownTimeout |Class |Indicates to set the 
shutdown timeout of all CamelContexts instantiated
-through the use of Spring Test loaded application contexts.  If no
-annotation is used, the timeout is automatically reduced to 10 seconds
-by the test framework. |10 seconds |10 seconds 
-
-|org.apache.camel.test.spring.UseAdviceWith |Class |Indicates the use of 
adviceWith() within the test class.  If a class is
-annotated with this annotation and UseAdviceWith#value() returns true,
-any CamelContexts bootstrapped during the test through the use of Spring
-Test loaded application contexts will not be started automatically.  The
-test author is responsible for injecting the Camel contexts into the
-test and executing CamelContext#start() on them at the appropriate time
-after any advice has been applied to the routes in the CamelContext(s). 
|CamelContexts do not automatically start. |CamelContexts do not automatically 
start.
-
-|org.apache.camel.test.spring.UseOverridePropertiesWithPropertiesComponent 
|Method |*Camel 2.16:*Indicates that the annotated method returns a
-java.util.Properties for use in the test, and that those properties
-override any existing properties configured on the PropertiesComponent |  | 
Override properties
-|=======================================================================
-
-The following example illustrates the use of the
-*@MockEndpoints* annotation in order to setup mock endpoints as
-interceptors on all endpoints using the Camel Log component and the
-*@DisableJmx* annotation to enable JMX which is disabled during tests by
-default.  Note that we still use the *@DirtiesContext* annotation to
-ensure that the CamelContext, routes, and mock endpoints are
-reinitialized between test methods.
-
-[source,java]
-----------------------------------------------------------------------------------------------------
-@RunWith(CamelSpringJUnit4ClassRunner.class)
-@BootstrapWith(CamelTestContextBootstrapper.class)
-@ContextConfiguration
-@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
-@MockEndpoints("log:*")
-@DisableJmx(false)
-public class CamelSpringJUnit4ClassRunnerPlainTest {
-
-    @Autowired
-    protected CamelContext camelContext2;
-
-    protected MockEndpoint mockB;
-
-    @EndpointInject(value = "mock:c", context = "camelContext2")
-    protected MockEndpoint mockC;
-
-    @Produce(uri = "direct:start2", context = "camelContext2")
-    protected ProducerTemplate start2;
-
-    @EndpointInject(value = "mock:log:org.apache.camel.test.junit4.spring", 
context = "camelContext2")
-    protected MockEndpoint mockLog;
-
-    @Test
-    public void testPositive() throws Exception {
-
-        mockC.expectedBodiesReceived("David");
-        mockLog.expectedBodiesReceived("Hello David");
-
-        start2.sendBody("David");
-
-        MockEndpoint.assertIsSatisfied(camelContext);
-    }
-----------------------------------------------------------------------------------------------------
-
-[[SpringTesting-AddingmoreMockexpectations]]
-== Adding more Mock expectations
-
-If you wish to programmatically add any new assertions to your test you
-can easily do so with the following. Notice how we use @EndpointInject
-to inject a Camel endpoint into our code then the 
xref:components::mock-component.adoc[Mock]
-API to add an expectation on a specific message.
-
-[source,java]
---------------------------------------------------------------------
-@ContextConfiguration
-public class MyCamelTest extends AbstractJUnit38SpringContextTests {
-
-    @Autowired
-    protected CamelContext camelContext;
-
-    @EndpointInject("mock:foo")
-    protected MockEndpoint foo;
-
-    public void testMocksAreValid() throws Exception {
-        // lets add more expectations
-        foo.message(0).header("bar").isEqualTo("ABC");
-
-        MockEndpoint.assertIsSatisfied(camelContext);
-    }
-}
---------------------------------------------------------------------
-
-[[SpringTesting-Furtherprocessingthereceivedmessages]]
-== Further processing the received messages
-
-Sometimes once a xref:components::mock-component.adoc[Mock] endpoint has 
received some
-messages you want to then process them further to add further assertions
-that your test case worked as you expect.
-
-So you can then process the received message exchanges if you like...
-
-[source,java]
---------------------------------------------------------------------
-@ContextConfiguration
-public class MyCamelTest extends AbstractJUnit38SpringContextTests {
-
-    @Autowired
-    protected CamelContext camelContext;
-
-    @EndpointInject("mock:foo")
-    protected MockEndpoint foo;
-
-    public void testMocksAreValid() throws Exception {
-        // lets add more expectations...
-
-        MockEndpoint.assertIsSatisfied(camelContext);
-
-        // now lets do some further assertions
-        List<Exchange> list = foo.getReceivedExchanges();
-        for (Exchange exchange : list) {
-            Message in = exchange.getIn();
-            ...
-        }
-    }
-}
---------------------------------------------------------------------
-
-[[SpringTesting-Sendingandreceivingmessages]]
-== Sending and receiving messages
-
-It might be that the
-xref:{eip-vc}:eips:enterprise-integration-patterns.adoc[Enterprise Integration
-Patterns] you have defined in either Spring XML or
-using the Java DSL do all of the sending and receiving
-and you might just work with the xref:components::mock-component.adoc[Mock] 
endpoints as
-described above. However sometimes in a test case its useful to
-explicitly send or receive messages directly.
-
-To send or receive messages you should use the
-Bean Integration mechanism. For example to
-send messages inject a ProducerTemplate using the @EndpointInject
-annotation then call the various send methods on this object to send a
-message to an endpoint. To consume messages use the @MessageDriven
-annotation on a method to have the method invoked when a message is
-received.
-
-[source,java]
---------------------------------------------------
-public class Foo {
-  @EndpointInject(uri="activemq:foo.bar")
-  ProducerTemplate producer;
-
-  public void doSomething() {
-    // lets send a message!
-    producer.sendBody("<hello>world!</hello>");
-  }
-
-  // lets consume messages from the 'cheese' queue
-  @MessageDriven(uri="activemq:cheese")
-  public void onCheese(String name) {
-    ...
-  }
-}
---------------------------------------------------
-
diff --git a/docs/user-manual/modules/ROOT/pages/spring.adoc 
b/docs/user-manual/modules/ROOT/pages/spring.adoc
index bec4222..786f23a 100644
--- a/docs/user-manual/modules/ROOT/pages/spring.adoc
+++ b/docs/user-manual/modules/ROOT/pages/spring.adoc
@@ -39,5 +39,5 @@ See 
xref:{eip-vc}:eips:transactional-client.adoc[Transactional Client]} EIP.
 
 == Using Camel with Spring testing
 
-See xref:spring-testing.adoc[Spring testing] documentation.
+See xref:components:others:test-spring-junit5.adoc[camel-test-spring-junit5] 
documentation.
 
diff --git 
a/docs/user-manual/modules/faq/pages/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc
 
b/docs/user-manual/modules/faq/pages/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc
index 0cd11ef..4c0864c 100644
--- 
a/docs/user-manual/modules/faq/pages/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc
+++ 
b/docs/user-manual/modules/faq/pages/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc
@@ -2,7 +2,7 @@
 = How do I reuse the ContextTestSupport class in my unit tests?
 
 You might want to look at the various xref:ROOT:testing.adoc[Testing]
-options xref:ROOT:spring-testing.adoc[Spring Testing] to see if those are 
better,
+to see if those are better,
 more powerful options. We see `ContextTestSupport` as an older, less
 powerful option.
 

Reply via email to