title: Camel test template uses a different exchange than the one I send
body: <p>I have the following test:</p>
  
  <pre><code>public class MyTest extends CamelSpringTestSupport {
  
      @Override
      protected AbstractXmlApplicationContext createApplicationContext() {
          return new ClassPathXmlApplicationContext(new String[] {
                  "classpath:my-config.xml",
                  });
      }
  
      @Test
      public void testSomething() throws Exception {
  
          Exchange exchange = new DefaultExchange(context);
          exchange.getIn().setHeader("myId", "1234");
          MessageContentsList parameters = new MessageContentsList();
          parameters.add(0, "");
          parameters.add(1, "1234");
          exchange.getIn().setBody(parameters);
  
          System.out.println("exchange before = " + System.identityHashCode(exchange)); //1657040467
  
          template.send("direct:myRoute", exchange);
  
          Object object = exchange.getOut().getBody();
  
          System.out.println("result = " + object); //null
          System.out.println("exchange after = " + System.identityHashCode(exchange)); //1657040467
  
          assertFalse(exchange.isFailed());
      }
  }
  </code></pre>
  
  <p>Here is the last step inside the route "direct:myRoute":</p>
  
  <pre><code>public void doSomething(Exchange exchange)
  {
      System.out.println("exchange within = " + System.identityHashCode(exchange)); //1649140180
  
      exchange.getOut().setBody(1);
  }
  </code></pre>
  
  <p>My routes are defined by <code>RouteBuilder</code> classes and I load them by</p>
  
  <pre><code>&lt;camelContext id="mainContext" xmlns="http://camel.apache.org/schema/spring"&gt;
  
      &lt;packageScan&gt;
          &lt;package&gt;com.my.route&lt;/package&gt;
      &lt;/packageScan&gt;
  
  &lt;/camelContext&gt;
  </code></pre>
  
  <p>and also dynamically by code:</p>
  
  <pre><code>((CamelContext) applicationContext.getBean("mainContext")).addRoutes(routeBuilder);
  </code></pre>
  
  <p>As you can see, I cannot retrieve the output of the route when I call the route from the test, because within the test for some reason it is a different exchange object (however, the original exchange headers and properties are somehow copied to the exchange within the route).
  This problem does not happen when I define the routes by XML.</p>
  
  <p>Why is that and how could I retrieve the result of the route when I call it from a test?</p>