[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 20, 2009).

(View changes)

Content:

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
  • 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)

Other

  • Enhance functionality of Quartz component to cover non-volatile jobs, clustering (including connecting to an existing job store). Look into using Spring's Quartz support as a foundation (paricularly SchedulerFactoryBean).
  • UUID generator to be file friendly (eg zapping / and : chars)

Nice to haves

  • self document the custom headers used in the endpoints/components CAMEL-228
  • 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:
      schedule().every(5).minute().from("ftp://xxxx).to("bean:processFtpFile")...
  • Spring 3.0 support
  • Improved JMX
    • Dynamic routing using JMX
    • Pausing consumers using JMX
    • Customization of endpoint options using JMX
    • and a lot more

Camel 2.x Design

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