Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

How does the Camel API compare to from CXF, HTTP, JBI, JMS, JavaMail etc

We have tried to make the Camel Exchange and Message map very closely to JBI in particular but also CXF, HTTP, JMS, Mail, XMPP and most other integration abstractions. We want to prevent leaky abstractions, so the Camel API exposes the underlying APIs so that a Processor can make use of the underlying abstractions if they make sense.

For example


Inbound exchange exposes


Each Inbound CxfExchange has access to the underlying Exchange and Message from CXF


Each inbound HttpExchange has access to the underlying HttpServletRequest and HttpServletResponse


Each inbound JbiExchange has access to the underlying JBI MessageExchange and NormalizedMessage objects


Each inbound JmsExchange has access to the underlying JMS Message objects

You can probably see a pattern forming now (smile).

For many routing and mediation components and Processor objects, you maybe don't care about the underlying transport and can instead stick to the abstract Camel API. But if you need to, the real transport APIs are there for you.