camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [CONF] Apache Camel > Add New Component Guide
Date Mon, 03 Jan 2011 05:56:00 GMT
    <base href="">
            <link rel="stylesheet" href="/confluence/s/1810/9/1/_/styles/combined.css?spaceKey=CAMEL&amp;forWysiwyg=true"
<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="">Add
New Component Guide</a></h2>
    <h4>Page <b>edited</b> by             <a href="">Claus
                         <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" >Add the new component to the [Component
List|] wiki page. <br>Add
a new wiki page under the [Components|]
wiki page. <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Add
a reference to the new component to the [Manual|]
wiki page. <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h2. 8. Run a complete build
            <tr><td class="diff-snipped" >...<br></td></tr>
</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
<p>Open a JIRA issue at <a href="" class="external-link"
rel="nofollow"></a>, if does not already
The issue type should be "New Feature". A sample can be found here: <a href=""
class="external-link" rel="nofollow"></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
Please refer to <a href=""
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="" class="external-link" rel="nofollow">Camel-Extra</a>

<h2><a name="AddNewComponentGuide-3.Providingapatch"></a>3. Providing a
<p>If you would like to contribute a new component as a patch (we love contributions),
please refer to <a href="" 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
<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="" 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>

<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="" class="external-link" rel="nofollow"></a><br/>
The issue type should be "Task". A sample can be found here: <a href=""
class="external-link" rel="nofollow"></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=""
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
<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=""
class="external-link" rel="nofollow">how do I edit the website</a>.<br/>
Add the new component to the <a href=""
class="external-link" rel="nofollow">Component List</a> wiki page.<br/>
Add a new wiki page under the <a href=""
class="external-link" rel="nofollow">Components</a> wiki page.<br/>
Add a reference to the new component to the <a href=""
class="external-link" rel="nofollow">Manual</a> wiki page.</p>

<h2><a name="AddNewComponentGuide-8.Runacompletebuild"></a>8. Run a complete
<p>To ensure you do not break the build, run a complete build from the new component
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn clean install
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href=""
class="grey">Change Notification Preferences</a>
        <a href="">View
        <a href="">View
        <a href=";showCommentArea=true#addcomment">Add

View raw message