[CONF] Apache Camel: Camel 2.0 Design (page edited)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[CONF] Apache Camel: Camel 2.0 Design (page edited)

Dhiraj Bokde (Confluence)

Camel 2.0 Design has been edited by Claus Ibsen (Jan 25, 2009).

(View changes)


Camel 2.0 Design

This wiki page lists the overall goals of the 2.0 release of Camel. For a detailed view see the Camel 2.0 JIRA roadmap

Main features

  • default to using transacted mode along with transacted error handlers CAMEL-866
  • improve smart completion of Java & XML DSLs (Java DONE, XML a bit better)
  • make more endpoints easily configurable as beans in Spring XML CAMEL-506 IN PROGRESS
  • improve the DSL
    • get rid of consumer. options in favor of the new scheduler DONE
    • support # notation for URI options to lookup a reference in the bean registry DONE
    • consider how we can expose some of the ExpressionBuilder we have in Javs DSL in the XML DSL as well
  • solving MEP issues DONE
  • using Camel${component}${name} pattern as header keys instead of using package names with dots that isn't likely to be transported by JMS or other transport types
  • OSGi sample and wiki documentation DONE
  • ServiceMix and Camel sample and wiki documentation DONE

Refactoring of code and internal API changes

  • remove the use of generics on Component, Exchange, Producer, Consumer CAMEL-872 CAMEL-507 DONE
  • reduce the need to copy exchanges CAMEL-872 (jstrachan|hadrian)
  • Dealing with streams and minimizing copy performance (jstrachan|hadrian)
  • enhance the Expression/Predicate APIs to allow the required type to be passed in
  • remove @deprecated code DONE
  • improvement of discovery of class resources in OSGi bundles CAMEL-775 DONE
  • cleanup Pipeline, BeanInfo (the algorithm to select right method to invoke by bean component)
  • rewrite of the File and FTP component DONE
  • support VFS in Camel to reuse code for file transport types such as File, FTP and commons-vfs IN PROGRESS
  • onComplete(), onFailure() callbacks to UnitOfWork on a Exchange allowing custom code being executed when a Exchange completes
  • reduce package tangling


  • UUID generator to be file friendly (eg zapping / and : chars) DONE

Nice to haves

  • Model objects toString(), label, shortName and description aligned and usable from Tracer/Visual Tooling etc.

Camel 2.1 Design

Main features

  • Much improved OSGi (partly already done )
    • Running ServiceMix 4.0 kernel
    • More documentation and samples
    • Making component/converter discovery use OSGi services when in an OSGi environment
    • All of the bootstrap mechanisms (components, endpoints, converters, registry) should be osgi aware
  • improve the DSL
    • to better support polling and explicit MEPs CAMEL-402 CAMEL-486
    • a new schedule DSL for advanced scheduling of polling that can have builder methods (kinda like BAM) so you can:
  • Spring 3.0 support
  • Improved JMX
    • Dynamic routing using JMX
    • Pausing consumers using JMX
    • Customization of endpoint options using JMX
    • and a lot more
  • self document the custom headers used in the endpoints/components CAMEL-228

Camel 2.x Design

  • have nice Spring 2 namespace schemas for different endpoints for nicer IDE completion
  • pluggable DSL (Hadrian)