title: Spring Integration Java DSL behavior of using multiple ".channel()"
body: <p>I'm testing the behavior of the .channel() method and I've observed things that I don't understand. </p>
  
  <pre><code>@Bean
      public IntegrationFlow flow() {
          return IntegrationFlows.from("my-gateway")
                  .channel("first-channel")
                  .channel("second-channel")
                  .get();
      }
  </code></pre>
  
  <p>If I place print statements in "first-channel", they aren't printed. But some of the business logic still appears to happen. Edit: Added code for service activators</p>
  
  <pre><code>@ServiceActivator(inputChannel = "first-channel")
     public Message testFlow(Message message) {
     System.out.println("Entered First Channel " + "\n" + "Message Header: " + message.getHeaders() + "\n" + "Message Payload" + "\n" + message.getPayload());
  return message;
  </code></pre>
  
  <p>}</p>
  
  <pre><code>@ServiceActivator(inputChannel = "second-channel")
     public Message testFlow(Message message) {
     System.out.println("Entered Second Channel " + "\n" + "Message Header: " + message.getHeaders() + "\n" + "Message Payload" + "\n" + message.getPayload());
  return message;
  </code></pre>
  
  <p>}</p>
  
  <p>application.properties:</p>
  
  <pre><code>logging.level.root=TRACE
  </code></pre>
  
  <p>Am I allowed to pass a message through multiple channels in the same java dsl IntegrationFlow? Or are all IntegrationFlows restricted to one channel/ServiceActivator each?</p>
  
  <p>Edit: Only the <strong>second</strong> print statement appears in the logs. Why is that?</p>