Camel 3.0 - RoadmapPage edited by Christian Schneider
Comment:
added Goal for clearer architecture in camel core
Changes (1)
Full ContentCamel 3.0 roadmapThis is a roadmap which details the overall and major goals for Camel 3.0. Fell free to discuss this at the Camel Mailing Lists if you have ideas or feedback.
JDK 1.6+Camel 3.0 should bump the JDK minimum version to 1.6. Spring 3.xCamel 3.0 should bump the minimum version of Spring to 3.0+. Clearer Architecture of Camel CoreGoals:
So why should this be important? Currently components depend on camel-core as a whole and there are no further rules which classes the components should use and which classes should be private to core. Even classes from the impl package are needed. So this means that any refactoring we do in camel core could affect all components. As camel is growing steadily this can become quite problematic. Split camel-core into three parts: api, builder, impl These should be structured in a way that these big building blocks do not have cyclic dependencies. Any other cycles can be ignored in this step. Allowed depdencies ( "->" means may use, may depend on):
Routing engine optimizationThe internal routing engine should be optimized. See more details at Camel 2.x Speed optimizations. Tighten up route definitionsCurrently cross cutting concerns such as error handlers, interceptors, onCompletion etc. can be define anywhere in the route. We should tighten this up and only allow this to be configured in the start of the route. This also ensures when end users use code assistance in their route development, the IDE will not popup a big list which includes these cross cutting concerns. See also next note. (ProcessorDefinition will therefore be trimmed) More flexible routes at runtimeWhen routes is added in Camel 2.x architecture, global cross cutting concerns such as error handlers, interceptors, onCompletion etc. is applied when the route is added. We need to separate this and have those applied during routing. The Channel needs to do this and therefore it must be more dynamic than its currently is. And we need to enlist the various global cross cutting concerns by their xxxDefintions in the CamelContext, so we can access them at any time. This allows end users also much more easily to add/remove interceptors, error handlers and whatnot at runtime. And it makes it much easier to add routes generated from JAXB or other sources, as we don't need to prepare or anyhow mold the RouteDefinition given. See ticket CAMEL-3024 for some details. Support for asynchronous transactionsWhen using the asynchronous routing engine it would be desirable of transactional context could be propagated to the new threads. Remove @deprecated@deprecated features, methods, etc. is to be removed. LoggingWe should switch from commons-logging to slf4j Stream cachingWe could add support for using HawtDB as the persistent store for streams which overflow to disk store. EIPThe Resequencer EIP currently doesn't support persistence, we could introduce this and let it leverage HawtDB such as we did with the Aggregator2 EIP. Schedule in DSLWe could consider adding DSL syntax sugar for scheduling routes. For example currently you have to use Quartz or a ScheduledPollingConsumer which has the delay option. We could add DSL which has something like: schedule().every(5).minute().pollFrom("xxx").to("yyyy")
Change Notification Preferences
View Online
|
View Changes
|
Add Comment
|
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence
- [CONF] Apache Camel > Camel 3.0 - Roadmap confluence