camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Camel > Add New Component Guide
Date Wed, 05 Jan 2011 14:24:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1810/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/Add+New+Component+Guide">Add
New Component Guide</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~tjsnell">Tracy
Snell</a>
    </h4>
        <br/>
                         <h4>Changes (1)</h4>
                                 
    
<div id="page-diffs">
            <table class="diff" cellpadding="0" cellspacing="0">
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >h2. 7. Add the wiki page <br>Each
component requires its own wiki page to document the component. If you don&#39;t have
the *karma* to edit the wiki pages, plese refer to [how do I edit the website|http://camel.apache.org/how-do-i-edit-the-website.html].
<br></td></tr>
            <tr><td class="diff-changed-lines" >Add the new component wiki page
to the <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">[Component
List|https://cwiki.apache.org/confluence/display/CAMEL/Component+List]</span> <span
class="diff-added-words"style="background-color: #dfd;">[Components|https://cwiki.apache.org/confluence/display/CAMEL/Components]</span>
by editing <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">[Components|https://cwiki.apache.org/confluence/display/CAMEL/Components]</span>
<span class="diff-added-words"style="background-color: #dfd;">[Component List|https://cwiki.apache.org/confluence/display/CAMEL/Component+List]</span>
wiki page. <br></td></tr>
            <tr><td class="diff-unchanged" >Add a reference to the new component
to the [Manual|https://cwiki.apache.org/confluence/display/CAMEL/Book+Component+Appendix]
wiki page. <br>Update the release notes for the version the development is [in progress|https://cwiki.apache.org/confluence/display/CAMEL/In+Progress].
<br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
        </table>
</div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="AddNewComponentGuide-Howtoaddanewcomponent"></a>How
to add a new component</h1>

<h2><a name="AddNewComponentGuide-1.OpenanJIRAissue"></a>1. Open an JIRA
issue</h2>
<p>Open a JIRA issue at <a href="https://issues.apache.org/jira/browse/CAMEL" class="external-link"
rel="nofollow">https://issues.apache.org/jira/browse/CAMEL</a>, if does not already
exist.<br/>
The issue type should be "New Feature". A sample can be found here: <a href="https://issues.apache.org/jira/browse/CAMEL-3468"
class="external-link" rel="nofollow">https://issues.apache.org/jira/browse/CAMEL-3468</a></p>

<h2><a name="AddNewComponentGuide-2.Checkthelicenseofalldependencies"></a>2.
Check the license of all dependencies</h2>
<p>You have to check whether or not all required dependencies have an Apache compatible
license.<br/>
Please refer to <a href="http://www.apache.org/legal/3party.html#define-thirdpartywork"
class="external-link" rel="nofollow">Third-Party Licensing Policy</a> for detailed
information and acceptable licenses.<br/>
This <b>doesn't</b> mean, if one of the dependencies are not compatible with the
Apache license we can't accept the component. In this case, we might have to add the component
to the <a href="http://code.google.com/p/camel-extra/" class="external-link" rel="nofollow">Camel-Extra</a>
repository.</p>

<h2><a name="AddNewComponentGuide-3.Providingapatch"></a>3. Providing a
patch</h2>
<p>If you would like to contribute a new component as a patch (we love contributions),
please refer to <a href="http://camel.apache.org/contributing.html" class="external-link"
rel="nofollow">Contributing</a> (look for <tt>Creating patches</tt>)
for instructions.</p>

<h2><a name="AddNewComponentGuide-3.Addthenewcomponent"></a>3. Add the new
component</h2>
<p>Add the new component into the components pom modules section (note the alphabetical
order of the project names).<br/>
After that, add the new component to the components folder.</p>

<h2><a name="AddNewComponentGuide-4.Checkthesourcesandresources"></a>4.
Check the sources and resources</h2>
<p>The source and resources have to follow some Apache/Camel coding rules:</p>
<ul class="alternate" type="square">
	<li>Make sure every added source and resource contains the Apache license header.</li>
	<li>Make sure the new component has an adequate test coverage.</li>
	<li>Run a build with checkstyle to ensure the sources are conform with the Apache Camel
coding rules: <a href="http://camel.apache.org/building.html" class="external-link" rel="nofollow">Building
Camel</a> (look for <tt>Building with checkstyle</tt>)</li>
	<li>Make sure the log output is adequate on the INFO log level.</li>
</ul>


<h2><a name="AddNewComponentGuide-5.CheckwhetheralldependenciesareavailableasOSGIbundles"></a>5.
Check whether all dependencies are available as OSGI bundles</h2>
<p>If a dependency is not available as an OSGI bundle, ask the Apache Servicemix guys
for an OSGI-fied version of this dependency. You should do this by opening a JIRA issue at
<a href="https://issues.apache.org/jira/browse/SMX4" class="external-link" rel="nofollow">https://issues.apache.org/jira/browse/SMX4</a><br/>
The issue type should be "Task". A sample can be found here: <a href="https://issues.apache.org/jira/browse/SMX4-723"
class="external-link" rel="nofollow">https://issues.apache.org/jira/browse/SMX4-723</a></p>

<h2><a name="AddNewComponentGuide-6.Addanewfeature"></a>6. Add a new feature</h2>
<p>Add a new feature definition for this component to the feature file (under platforms/karaf/features).<br/>
Next, validate the correctness of this feature file as described in <a href="http://camel.apache.org/building.html"
class="external-link" rel="nofollow">Working with features</a> (look for <tt>Working
with features</tt>)</p>

<h2><a name="AddNewComponentGuide-7.Addthewikipage"></a>7. Add the wiki
page</h2>
<p>Each component requires its own wiki page to document the component. If you don't
have the <b>karma</b> to edit the wiki pages, plese refer to <a href="http://camel.apache.org/how-do-i-edit-the-website.html"
class="external-link" rel="nofollow">how do I edit the website</a>.<br/>
Add the new component wiki page to the <a href="https://cwiki.apache.org/confluence/display/CAMEL/Components"
class="external-link" rel="nofollow">Components</a> by editing <a href="https://cwiki.apache.org/confluence/display/CAMEL/Component+List"
class="external-link" rel="nofollow">Component List</a> wiki page.<br/>
Add a reference to the new component to the <a href="https://cwiki.apache.org/confluence/display/CAMEL/Book+Component+Appendix"
class="external-link" rel="nofollow">Manual</a> wiki page.<br/>
Update the release notes for the version the development is <a href="https://cwiki.apache.org/confluence/display/CAMEL/In+Progress"
class="external-link" rel="nofollow">in progress</a>.<br/>
Check whether other sites needs to be updated.</p>

<h2><a name="AddNewComponentGuide-8.Runacompletebuild"></a>8. Run a complete
build</h2>
<p>To ensure you do not break the build, run a complete build from the new component
directory:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn clean install
</pre>
</div></div>

<h2><a name="AddNewComponentGuide-9.Addthecomponenttodistribution"></a>9.
Add the component to distribution</h2>
<p>Add the new component to the following files</p>
<ul class="alternate" type="square">
	<li>parent/pom.xml</li>
	<li>apache-camel/src/main/descriptors/common-bin.xml</li>
</ul>


<p>Build the kit by running the following maven goal from the <tt>apache-camel</tt>
directory:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn clean install
</pre>
</div></div>
<p>Check the generated .zip file in the target folder contains the new component.</p>
    </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/Add+New+Component+Guide">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=24192091&revisedVersion=8&originalVersion=7">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/CAMEL/Add+New+Component+Guide?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message