camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Camel > Camel 3.0 - Introduce an API for components
Date Fri, 15 Jul 2011 09:17:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/1/_/styles/combined.css?spaceKey=CAMEL&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/CAMEL/Camel+3.0+-+Introduce+an+API+for+components">Camel
3.0 - Introduce an API for components</a></h2>
    <h4>Page  <b>added</b> by             <a href="https://cwiki.apache.org/confluence/display/~christian%2Bschneider">Christian
Schneider</a>
    </h4>
         <br/>
    <div class="notificationGreySide">
         <p>Currently each component needs to depend on the camel-core. So it sucks
in a lot more than it really needs.</p>

<p>The idea is to define a minimal API that contains everything a typical component
needs. This API should be as independent of the camel implementation as possible.<br/>
Optionally we could aim for an API that is so general that it can also be a base for CXF and
Servicemix.</p>

<p>The main issue currently is the CamelContext. It references to everthing else and
so makes it necessary to suck in all camel-core. So what we need to do is create a subset
that I call RuntimeCamelContext. This should only contain the things needed at runtime. It
should also only refrence to interfaces so we do not suck in implementations.</p>

<p>It may also be a good idea to define specialized interfaces for parts of the CamelContext.
For example we could have an exchange Factory. Most endpoints need the CamelContext only to
create exchanges so this may be everything they need.</p>

<p>So what should the API contain:</p>

<ul class="alternate" type="square">
	<li>Exchange</li>
	<li>Message</li>
	<li>Component</li>
	<li>Endpoint</li>
	<li>Producer</li>
	<li>Consumer</li>
	<li>RuntimeCamelContext</li>
</ul>


<p>What should the API not contain:</p>

<ul class="alternate" type="square">
	<li>CamelContext: The camelcontext currently references to almost everything</li>
</ul>

    </div>
    <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
       </div>
       <a href="https://cwiki.apache.org/confluence/display/CAMEL/Camel+3.0+-+Introduce+an+API+for+components">View
Online</a>
              |
       <a href="https://cwiki.apache.org/confluence/display/CAMEL/Camel+3.0+-+Introduce+an+API+for+components?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
           </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message