Author: buildbot
Date: Sat Mar 16 19:16:25 2013
New Revision: 854766

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/camel-30-ideas.html

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/camel/content/camel-30-ideas.html
==============================================================================
--- websites/production/camel/content/camel-30-ideas.html (original)
+++ websites/production/camel/content/camel-30-ideas.html Sat Mar 16 19:16:25 
2013
@@ -92,7 +92,7 @@
 <table class="sectionMacro" border="0" cellpadding="5" cellspacing="0" 
width="100%"><tbody><tr><td colspan="1" rowspan="1" valign="top" 
class="confluenceTd" width="20%">
 <div class="panel" style="border-width: 1px;"><div class="panelContent">
 <div>
-<ul><li><a shape="rect" href="#Camel3.0-Ideas-Camel3.0Ideas">Camel 3.0 
Ideas</a></li><ul><li><a shape="rect" 
href="#Camel3.0-Ideas-Tableofcontents">Table of contents</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-JDKsupport">JDK support</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-JDK8JavaDSL">JDK8 Java DSL</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-ClearerArchitectureofCamelCore">Clearer 
Architecture of Camel Core</a></li><ul><li><a shape="rect" 
href="#Camel3.0-Ideas-Splitcamelcoreintomultipleparts%28hadrian%29">Split 
camel-core into multiple parts (hadrian)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Avoidshadinggoogleconcurrentlinkedmapincamelcore">Avoid 
shading google concurrent linked map in camel-core</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Definescopeandrulesforcamelcorepackages%28champion%3F%29">Define
 scope and rules for camel-core packages ( <em>champion</em>?)</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-Moreflexibleroutesatrunt
 ime%28claus%29">More flexible routes at runtime (claus)</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-Fixrouteswithmultipleinputs%28claus%29">Fix 
routes with multiple inputs (claus)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-RouteinitializationlogicforJavaDSLandXMLDSLs%28claus%29">Route
 initialization logic for Java DSL and XML DSLs (claus)</a></li><li><a 
shape="rect" 
href="#Camel3.0-Ideas-AddOnException%2CInterceptor%2Cetc.toJAXBmodelforaCamelContextDefinition%28claus%29">Add
 OnException, Interceptor, etc. to JAXB model for a CamelContextDefinition 
(claus)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Tightenuproutedefinitions%28claus%29">Tighten up route 
definitions (claus)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-MessageHistoryEIP%2FMessageStore%28ChristianOhr%29">Message
 History EIP/Message Store (Christian Ohr)</a></li></ul><li><a shape="rect" 
href="#Camel3.0-Ideas-DependencyUpgrades">Dependency Upgrades</a></li><li><a 
shape="rect" href="#Camel3.
 0-Ideas-JMXnaming">JMX naming</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Removenotusedcomponents">Remove not used 
components</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-SplitcamelcxfintoWSandREST">Split camel-cxf into WS and 
REST</a></li><li><a shape="rect" href="#Camel3.0-Ideas-Oldideas">Old 
ideas</a></li><ul><li><a shape="rect" 
href="#Camel3.0-Ideas-Supportforasynchronoustransactions">Support for 
asynchronous transactions</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Streamcaching">Stream caching</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-EIP">EIP</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-ScheduleinDSL">Schedule in DSL</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-AdvancedScalasupport">Advanced Scala 
support</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-MoreEIPsas@annotations">More EIPs as 
@annotations</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Unifiedstatistics">Unified statistics</a></li><li><a 
shape="rect" href="#Camel3.0-I
 deas-SEDA%2FVMcomponentstoleverageasyncroutingengine">SEDA/VM components to 
leverage async routing engine</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-camelosgitest">camel-osgi-test</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-REST">REST</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Moreloadtests%28cmueller%29">More load tests 
(cmueller)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-OSGienhancements">OSGi enhancements</a></li><li><a 
shape="rect" 
href="#Camel3.0-Ideas-Easiercommit%2Frollbackforcomponentdevelopers">Easier 
commit/rollback for component developers</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-RefactorUnitOfWork">Refactor UnitOfWork</a></li><li><a 
shape="rect" 
href="#Camel3.0-Ideas-ImprovementstoThreadPoolProfileforthreadmanagement">Improvements
 to ThreadPoolProfile for thread management</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-TightenuponException">Tighten up 
onException</a></li><li><a shape="rect" href="#Camel3.0-Ideas-Addcomposit
 eEIPtocomposeanumberofEIPsintoasingleEIP">Add composite EIP to compose a 
number of EIPs into a single EIP</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-RemoveSpringtransactiondependencyfromJMScomponent%28RemovedbecauseSJMSwillbenonspringversion%29">
 </a><del>Remove Spring transaction dependency from JMS component</del> 
(Removed because SJMS will be non-spring version)</li></ul></ul></ul></div>
+<ul><li><a shape="rect" href="#Camel3.0-Ideas-Camel3.0Ideas">Camel 3.0 
Ideas</a></li><ul><li><a shape="rect" 
href="#Camel3.0-Ideas-Tableofcontents">Table of contents</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-JDKsupport">JDK support</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-JDK8JavaDSL">JDK8 Java DSL</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-RoutingCoreReengineering%28raulk%29">Routing 
Core Re-engineering (raulk)</a></li><ul><li><a shape="rect" 
href="#Camel3.0-Ideas-ConvertingsomeEIPsfrom%22performers%22tomere%22deciders%22">Converting
 some EIPs from "performers" to mere "deciders"</a></li></ul><li><a 
shape="rect" href="#Camel3.0-Ideas-ClearerArchitectureofCamelCore">Clearer 
Architecture of Camel Core</a></li><ul><li><a shape="rect" 
href="#Camel3.0-Ideas-Splitcamelcoreintomultipleparts%28hadrian%29">Split 
camel-core into multiple parts (hadrian)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Avoidshadinggoogleconcurrentlinkedmapincamelcore">Avoid sh
 ading google concurrent linked map in camel-core</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Definescopeandrulesforcamelcorepackages%28champion%3F%29">Define
 scope and rules for camel-core packages ( <em>champion</em>?)</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-Moreflexibleroutesatruntime%28claus%29">More 
flexible routes at runtime (claus)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Fixrouteswithmultipleinputs%28claus%29">Fix routes with 
multiple inputs (claus)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-RouteinitializationlogicforJavaDSLandXMLDSLs%28claus%29">Route
 initialization logic for Java DSL and XML DSLs (claus)</a></li><li><a 
shape="rect" 
href="#Camel3.0-Ideas-AddOnException%2CInterceptor%2Cetc.toJAXBmodelforaCamelContextDefinition%28claus%29">Add
 OnException, Interceptor, etc. to JAXB model for a CamelContextDefinition 
(claus)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Tightenuproutedefinitions%28claus%29">Tighten up route 
definitio
 ns (claus)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-MessageHistoryEIP%2FMessageStore%28ChristianOhr%29">Message
 History EIP/Message Store (Christian Ohr)</a></li></ul><li><a shape="rect" 
href="#Camel3.0-Ideas-DependencyUpgrades">Dependency Upgrades</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-JMXnaming">JMX naming</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-Removenotusedcomponents">Remove not used 
components</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-SplitcamelcxfintoWSandREST">Split camel-cxf into WS and 
REST</a></li><li><a shape="rect" href="#Camel3.0-Ideas-Oldideas">Old 
ideas</a></li><ul><li><a shape="rect" 
href="#Camel3.0-Ideas-Supportforasynchronoustransactions">Support for 
asynchronous transactions</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Streamcaching">Stream caching</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-EIP">EIP</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-ScheduleinDSL">Schedule in DSL</a></li><li><a 
shape="rect" 
 href="#Camel3.0-Ideas-AdvancedScalasupport">Advanced Scala 
support</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-MoreEIPsas@annotations">More EIPs as 
@annotations</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Unifiedstatistics">Unified statistics</a></li><li><a 
shape="rect" 
href="#Camel3.0-Ideas-SEDA%2FVMcomponentstoleverageasyncroutingengine">SEDA/VM 
components to leverage async routing engine</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-camelosgitest">camel-osgi-test</a></li><li><a 
shape="rect" href="#Camel3.0-Ideas-REST">REST</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-Moreloadtests%28cmueller%29">More load tests 
(cmueller)</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-OSGienhancements">OSGi enhancements</a></li><li><a 
shape="rect" 
href="#Camel3.0-Ideas-Easiercommit%2Frollbackforcomponentdevelopers">Easier 
commit/rollback for component developers</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-RefactorUnitOfWork">Refactor UnitOfWork</a></li><li><a
  shape="rect" 
href="#Camel3.0-Ideas-ImprovementstoThreadPoolProfileforthreadmanagement">Improvements
 to ThreadPoolProfile for thread management</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-TightenuponException">Tighten up 
onException</a></li><li><a shape="rect" 
href="#Camel3.0-Ideas-AddcompositeEIPtocomposeanumberofEIPsintoasingleEIP">Add 
composite EIP to compose a number of EIPs into a single EIP</a></li><li><a 
shape="rect" 
href="#Camel3.0-Ideas-RemoveSpringtransactiondependencyfromJMScomponent%28RemovedbecauseSJMSwillbenonspringversion%29">
 </a><del>Remove Spring transaction dependency from JMS component</del> 
(Removed because SJMS will be non-spring version)</li></ul><li><a shape="rect" 
href="#Camel3.0-Ideas-DefaulttouseTransactedmodebydefault">Default to use 
Transacted mode by default</a></li></ul></ul></div>
 </div></div></td></tr></tbody></table>
 
 <h3><a shape="rect" name="Camel3.0-Ideas-JDKsupport"></a>JDK support</h3>
@@ -111,6 +111,25 @@ We should aim to be compatible with JDK8
 Though this may comes later in Camel 3.x when JDK8 is GA.<br clear="none">
 At least stuff like Predicate, Expression, AggregationStrategy etc. are 
"functional interfaces" (containing only one method) and Java 8 applications 
can implement them using lambdas. That's only a start, but it doesn't require a 
specific DSL.</p>
 
+<h3><a shape="rect" 
name="Camel3.0-Ideas-RoutingCoreReengineering%28raulk%29"></a>Routing Core 
Re-engineering (raulk)</h3>
+
+<p>The routing core of Camel 2.x is heavily based on a recursive call pattern, 
where Processors are responsible for calling the next one along the chain. This 
results in lengthy and meaningless stacktraces (difficult to make sense out of 
and debug for newcomers) and higher memory usage due to retention of local 
variables for a longer time than strictly needed. </p>
+
+<p>Moreover, Camel weaves a large number of "plumbing" processors along the 
way which should not really be processors because they form part of the very 
essence of the routing core, e.g. error handlers, stream caching interceptors, 
trace interceptors, async processor helpers, MDC, etc.</p>
+
+<p>The proposal is to shift towards an iterative model, by redesigning the 
logic of Camel routing. The suggested model is defined by these pillars:</p>
+
+<ul class="alternate" type="square"><li>A single class, or a limited set of 
them, contain the routing logic of Camel. Package name: 
<tt>org.apache.camel.core.routing</tt>. Central (abstract) class: 
<tt>RoutingCore</tt>. Concrete realisations could be: PipeliningRoutingCore, 
MulticastRoutingCore, depending on the fundamental routing pattern.</li><li>The 
RoutingCore iteratively calls the routing steps, one after another. The routing 
steps return their result to the <tt>RoutingCore</tt>, who is in charge of 
calling the next element subsequently. OUT and IN are bridged if necessary 
(PipeliningRoutingCore).</li><li>The Processor interface is crumbled up into 
its many specialisations, each of which represents a distinct concept of the 
Camel framework: RoutingDecider (EIPs should only take decisions about the 
routing, but <b>not</b> perform the routing itself, e.g. choice, filter, loop, 
throttle, etc.; see examples in subsection below.), Actions, ErrorHandler 
(already exists), Inte
 rceptor, etc.</li><li>The RoutingCore is responsible of all the "magic" now 
disseminated across a number of processors. Assisted by Helper 
classes.</li></ul>
+
+
+<p>The goal of this idea isn't to zap off recursion altogether, just to 
consolidate the routing logic into a handful of cornerstone classes.</p>
+
+<p>Camel is no longer a baby and the framework concepts are well mature, thus 
they should be transferred to the API and avoid making everything a raw 
Processor.</p>
+
+<h4><a shape="rect" 
name="Camel3.0-Ideas-ConvertingsomeEIPsfrom%22performers%22tomere%22deciders%22"></a>Converting
 some EIPs from "performers" to mere "deciders"</h4>
+
+<ul class="alternate" type="square"><li>choice() =&gt; evaluates the 
predicates and returns the List of Processors or Endpoints to 
invoke.</li><li>filter() =&gt; same as choice(), but returning null if the 
filter doesn't match, to continue to the next routing step.</li><li>loop() 
=&gt; evaluates whether the looping control predicate still stands. If yes, it 
returns the processors to invoke, where the last is itself (to trigger the 
looping logic again); else, it returns null to continue to the next routing 
step.</li><li>throttle() =&gt; pauses accordingly and then returns the 
endpoint/processors to invoke.</li><li>...</li></ul>
+
 
 <h3><a shape="rect" 
name="Camel3.0-Ideas-ClearerArchitectureofCamelCore"></a>Clearer Architecture 
of Camel Core</h3>
 
@@ -338,7 +357,17 @@ It may make more sense to move onRedeliv
 
 <p><del>(+1: cgeer)</del></p>
 
-<p><del>Refactor the JMS component to remove the dependency on Spring 
PlatformTransactionManager and replace with JTA 
TransactionManager.</del></p></div>
+<p><del>Refactor the JMS component to remove the dependency on Spring 
PlatformTransactionManager and replace with JTA TransactionManager.</del></p>
+
+<h3><a shape="rect" 
name="Camel3.0-Ideas-DefaulttouseTransactedmodebydefault"></a>Default to use 
Transacted mode by default </h3>
+
+<p>One thing I regret about the design of Camel was defaulting to 
non-transacted mode by default and forcing users to explicitly enable 
transactional model with a Transaction Manager.</p>
+
+<p>It might be nice in Camel 3 to assume everything is transacted by default; 
and mimmick a form of transaction manager for non-transactional resource.</p>
+
+<p>e.g. its pretty common to work with messaging like JMS and databases as a 
common set of endpoints; the easiest thing that could possibly work for end 
users is for those to just be transacted by default without the user having to 
grok how to tinker with component configurations &amp; Transaction Manager 
registration.</p>
+
+<p>Note I'm not advocating XA here; I think the default for camel should be 
for Idempotent Consumer and simple approach to middleware</p></div>
         </td>
         <td valign="top">
           <div class="navigation">


Reply via email to