Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-10910

Revisit if Pipeline should wrap single processor or not

    XMLWordPrintableJSON

    Details

    • Type: Task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.0.0.RC1, 3.0.0
    • Component/s: camel-core
    • Labels:
      None
    • Estimated Complexity:
      Unknown

      Description

      I noticed that if eventDrivenProcessors contains only one processor, IN message is not copied to OUT even when exchange pattern is InOut while it does if it contains multiple processors.

      eventDrivenProcessors are wrapped with Pipeline here when initiating a camel route here:
      https://github.com/apache/camel/blob/master/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java#L161

      But if there's only one event driven processor, the processor itself is used instead of wrapping with Pipeline:
      https://github.com/apache/camel/blob/master/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java#L57

      Pipeline copies the IN message to OUT if it's InOut and OUT message doesn't exist:
      https://github.com/apache/camel/blob/master/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java#L107

      So the IN->OUT copy happens only if multiple processors exist. It means that whether the response message is returned as OUT or IN depends on if the route results in single processor or not. I think it looks a bit confusing and wondering if we can just wrap it with the Pipleline even if there's single processor.

      Having said that as this has been same for 10 years, we can't change this behavior in 2.x as it would break backward compatibility. Let's revisit in 3.0.

        Attachments

          Activity

            People

            • Assignee:
              davsclaus Claus Ibsen
              Reporter:
              igarashitm Tomohisa Igarashi
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: