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 Mon, 03 Jan 2011 06:01: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/~davsclaus">Claus
Ibsen</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" >mvn clean install <br>{code}
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">
<br>h2. 9. Add the component to distribution <br>Add the new component to the
following files <br>- parent/pom.xml <br>- apache-camel/src/main/descriptors/common-bin.xml
<br> <br>Build the kit by running the following maven goal from the {{apache-camel}}
directory: <br>{code} <br>mvn clean install <br>{code} <br>Check the
generated .zip file in the target folder contains the new component. <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 to the <a href="https://cwiki.apache.org/confluence/display/CAMEL/Component+List"
class="external-link" rel="nofollow">Component List</a> wiki page.<br/>
Add a new wiki page under the <a href="https://cwiki.apache.org/confluence/display/CAMEL/Components"
class="external-link" rel="nofollow">Components</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.</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=4&originalVersion=3">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