There are many ways you can help make Camel a better piece of software - please dive in and help!

Try surf the documentation - if somethings confusing or not clear, let us know. Download the code & try it out and see what you think. Browse the source code. Got an itch to scratch, want to tune some operation or add some feature?

Want to do some hacking on Camel? Try surfing the our issue tracker for open issues or features that need to be implemented, take ownership of an issue and try fix it.

If you'd rather a more gentle introduction to working on the Camel project, how about you try look at the

test coverage report and help us get it even more green by supplying more test cases to get us closer to 100% coverage.

Getting in touch

There are various ways of communicating with the ActiveMQ community.

  • join us on the Discussion Forums and take part in any conversations
  • pop by on IRC and say hi
  • add some comments to the wiki

Improving the documentation

Documentation is massively important to help users make the most of Apache Camel and its probably the area that needs the most help!

So if you are interested in helping the documentation effort; whether its just to fix a page here or there, correct a link or even write a tutorial or improve what documentation is already there please do dive in and help!

All of the documentation is stored on the wiki. See How does the website work or How do I edit the website for more details.

To be able to edit the wiki you need to mail the dev list asking for an account (to prevent spam we only offer access to the wiki by folks sending mail to the mailing list).

If you find a bug or problem

Please raise a new issue in our issue tracker

If you can create a JUnit test case then your issue is more likely to be resolved quicker.
e.g. take a look at some of the existing unit tests cases

Then we can add your issue to Subversion and then we'll know when its really fixed and we can ensure that the problem stays fixed in future releases.

Working on the code

Grab the Source and create a project in your IDE. e.g. if you are using Eclipse the following should do the trick...

svn co https://svn.apache.org/repos/asf/activemq/camel/trunk camel
cd camel
mvn eclipse:eclipse

Build the project.

mvn install

PS: You might need to build multiple times (if you get a build error) because sometimes maven fails to download all the files.

Then import the projects into your workspace.

Creating patches

We gladly accept patches if you can find ways to improve, tune or fix Camel in some way.

Most IDEs can create nice patches now very easily. e.g. in Eclipse just right click on a file/directory and select Team -> Create Patch. Then just save the patch as a file and then submit it. (You may have to click on Team -> Share... first to enable the Subversion options). Incidentally if you are an Eclipse user you should install the subclipse plugin.

If you're a command line person try the following to create the patch

diff -u Main.java.orig Main.java >> patchfile.txt

or

svn diff Main.java >> patchfile.txt

Submitting patches

The easiest way to submit a patch is to create a new JIRA issue, attach the patch, tick the Patch Attached button on the issue then fire off an email to the Discussion Forums.
When a ticket is create in JIRA it automatically sends an email to the developer forum.

Remember to create and attach the patch in two steps, as JIRA does not support granting ASF license to the patch in the create ticket wizard. So after creating the ticket, then attach the patch and remember to tick off the grant ASF license, otherwise we can not commit the patch. We prefer patches has unit tests as well and that these unit tests have proper assertions as well, so remember to replace your system.out or logging with an assertion instead!

Becoming a committer

Once you've got involved as above, we may well invite you to be a committer. See Becoming a committer for more details.

Using the issue tracker

Before you can raise an issue in the issue tracker you need to register with it. This is quick & painless.

If you want to have a go at fixing an issue you need to be in the list of activemq-developers on the issue tracker. To join the group, please mail the dev@activemq.codehaus.org mail list with the email address you used to register with the issue tracker and we'll add you to the group.

Why not dive in and try tackle some of our outstanding issues?

Apache ActiveMQ & Apache ServiceMix (25 issues)
T Key Summary Assignee Reporter Pr Status Res Created Updated Due
Improvement CAMEL-824 create a Java / XML DSL overview describing the things the DSL can do... Unassigned James Strachan Major OpenOpen UNRESOLVED Aug 14, 2008 Aug 14, 2008
Improvement CAMEL-823 add HL7 DataFormat to the Java and XML DSLs Unassigned James Strachan Major OpenOpen UNRESOLVED Aug 13, 2008 Aug 13, 2008
New Feature CAMEL-817 create a camel-guice module to show how to dependency inject routes, beans, producers and consumers using Guice James Strachan James Strachan Major OpenOpen UNRESOLVED Aug 12, 2008 Aug 13, 2008
New Feature CAMEL-822 add JSON data format support using some JSON library like Google.JSON or Jettison Unassigned James Strachan Major OpenOpen UNRESOLVED Aug 13, 2008 Aug 13, 2008
Improvement CAMEL-821 RedeliveryPolicyType is missing the maximumRedeliveryDelay option Unassigned Claus Ibsen Major OpenOpen UNRESOLVED Aug 13, 2008 Aug 13, 2008
Bug CAMEL-818 Should preserve the exchange type in the routing slip Willem Jiang Jonathan Anstey Major OpenOpen UNRESOLVED Aug 13, 2008 Aug 13, 2008
Task CAMEL-819 FileConsumeSingleDirectoryOnlyTest failure Willem Jiang Jonathan Anstey Major OpenOpen UNRESOLVED Aug 13, 2008 Aug 13, 2008
Sub-task CAMEL-820 create demo showing how to register named components or endpoints via Guice IoC Unassigned James Strachan Major OpenOpen UNRESOLVED Aug 13, 2008 Aug 13, 2008
New Feature CAMEL-762 New component for smoks Claus Ibsen Claus Ibsen Major In ProgressIn Progress UNRESOLVED Jul 27, 2008 Aug 13, 2008
New Feature CAMEL-511 A method ala afterPropertiesSet() for programmatic validation that the endpoint is configured correctly Unassigned Claus Ibsen Major OpenOpen UNRESOLVED May 13, 2008 Aug 12, 2008
Improvement CAMEL-680 Document - Some annotations is injected by spring (Bean post processor) Claus Ibsen Claus Ibsen Minor OpenOpen UNRESOLVED Jul 06, 2008 Aug 12, 2008
Bug CAMEL-533 ExceptionHandling & JMSReplyTo in @MessageDriven Unassigned Aaron Mulder Major OpenOpen UNRESOLVED May 20, 2008 Aug 12, 2008
New Feature CAMEL-816 provide @Produce and @Consume annotations so its easy to use POJO programming for remoting without any Camel or middleware APIs being used James Strachan James Strachan Major OpenOpen UNRESOLVED Aug 12, 2008 Aug 12, 2008
Improvement CAMEL-814 Provide Aggregation Strategy/Collection implementation(s) that can be used to replace smx-eip SplitterAggregator & RecipientListAggregator Unassigned Ron Gavlin Major OpenOpen UNRESOLVED Aug 12, 2008 Aug 12, 2008
Improvement CAMEL-797 Add a part 4 to the tutorial (camel-example-reportincident) to show how to turn on the code to route messages using DSL language and/or spring xml configuration file Unassigned Charles Moulliard Major OpenOpen UNRESOLVED Aug 08, 2008 Aug 12, 2008
Bug CAMEL-807 HttpProducer premature out message creation Unassigned Bill Skrypnyk Major OpenOpen UNRESOLVED Aug 10, 2008 Aug 12, 2008
Improvement CAMEL-813 Add exceptions setter in ErrorHandlerBuilderSupport.java Unassigned Kevin Urciolo Trivial OpenOpen UNRESOLVED Aug 11, 2008 Aug 11, 2008
Improvement CAMEL-621 File component - file rename pattern to support patterns such as date time etc. Claus Ibsen Claus Ibsen Major OpenOpen UNRESOLVED Jun 19, 2008 Aug 09, 2008
Improvement CAMEL-800 Table of current supported uris (chapter 3) displayed in the pdf of the manual is cut Unassigned Charles Moulliard Minor OpenOpen UNRESOLVED Aug 08, 2008 Aug 09, 2008
Improvement CAMEL-770 allow a Spring Camel Context to be booted up just to extract the route defintions (camelContext.getRouteDefintions()) but not to actually process any routes Unassigned James Strachan Major OpenOpen UNRESOLVED Jul 30, 2008 Aug 08, 2008
New Feature CAMEL-601 Camel example as a web application Claus Ibsen Claus Ibsen Major In ProgressIn Progress UNRESOLVED Jun 10, 2008 Aug 08, 2008
Bug CAMEL-794 Pipeline with thread() processor also redelivers following the default policy independently from the preset errorhadling Unassigned Bela Vizy Major OpenOpen UNRESOLVED Aug 07, 2008 Aug 08, 2008
Task CAMEL-791 check camel.osgi.export.pkg in all the components - some could be wrong Unassigned Claus Ibsen Minor OpenOpen UNRESOLVED Aug 07, 2008 Aug 07, 2008
Bug CAMEL-782 Tracer incorrectly treats messages with InputStream as body Unassigned Genadii Ganebnyi Major OpenOpen UNRESOLVED Aug 05, 2008 Aug 05, 2008
New Feature CAMEL-781 Add a new component to generate/print reports in PDF, HTML, Excel, ... format using reporting tool like JasperReport / Eclipse BIRT Unassigned Charles Moulliard Major OpenOpen UNRESOLVED Aug 04, 2008 Aug 04, 2008

Becomming a committer

The first step is contributing to the project; if you want to take that a step forward and become a fellow committer on the project then see the Committer Guide

Graphic Design By Hiram