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

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.

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 (23 issues)
T Key Summary Assignee Reporter Pr Status Res Created Updated Due
Improvement CAMEL-99 Move InstrumentationAgent and LifecycleStrategy to spi Unassigned Hadrian Zbarcea Major OpenOpen UNRESOLVED Aug 13, 2007 Aug 13, 2007
Improvement CAMEL-94 performance improvement: optimise FileProcessor for cases where the payload is a File James Strachan James Strachan Trivial OpenOpen UNRESOLVED Aug 10, 2007 Aug 10, 2007
New Feature CAMEL-92 allow interceptor routes to be defined easily in the DSL Unassigned James Strachan Major OpenOpen UNRESOLVED Aug 09, 2007 Aug 09, 2007
Improvement CAMEL-84 Throw Useful Exception on No TypeConverter Available Unassigned Brian McCallister Major OpenOpen UNRESOLVED Aug 02, 2007 Aug 02, 2007
New Feature CAMEL-45 more example programs required! Unassigned James Strachan Major OpenOpen UNRESOLVED Jun 13, 2007 Jul 31, 2007
New Feature CAMEL-9 add some kind of Visitor to the Route for walking the various Processor implementations in the camel.processor package to be able to build up a logical model of the routes for visualisation purposes Unassigned James Strachan Major OpenOpen UNRESOLVED Jun 07, 2007 Jul 30, 2007
New Feature CAMEL-20 Support tranforming an XML based exchange to a JAXB based exchange Unassigned Hiram Chirino Major OpenOpen UNRESOLVED Jun 12, 2007 Jul 30, 2007
Improvement CAMEL-73 The spring sample need to show how to create jms message for router Unassigned Willem Jiang Major OpenOpen UNRESOLVED Jul 08, 2007 Jul 30, 2007
Sub-task CAMEL-75 move links inside docbook Jonas Lim Jonas Lim Major OpenOpen UNRESOLVED Jul 16, 2007 Jul 16, 2007
New Feature CAMEL-68 add a CamelContextAware interface to expose the desire to be injected with a CamelContext (like the ApplicationContextAware in Spring) Unassigned James Strachan Major OpenOpen UNRESOLVED Jul 07, 2007 Jul 07, 2007
Improvement CAMEL-64 Camel DSL should use verbs for it's EIP actions. James Strachan Hiram Chirino Major OpenOpen UNRESOLVED Jul 03, 2007 Jul 03, 2007
Sub-task CAMEL-49 PDF tables seem to be equally sized column widths; we could really use the auto-width type formatting like the HTML versions to tidy up the tabular views Jonas Lim James Strachan Major OpenOpen UNRESOLVED Jun 25, 2007 Jul 03, 2007
Improvement CAMEL-47 create a maven plugin to process confluence content into docbook xml Jonas Lim Jonas Lim Major In ProgressIn Progress UNRESOLVED Jun 15, 2007 Jul 03, 2007
New Feature CAMEL-48 create an archetype for creating a new component Unassigned Noah Nordrum Major OpenOpen UNRESOLVED Jun 22, 2007 Jun 22, 2007
Improvement CAMEL-46 add Ant build.xml scripts for running the examples using the jars that ship with the distro rather than requiring maven Unassigned James Strachan Major OpenOpen UNRESOLVED Jun 13, 2007 Jun 13, 2007
New Feature CAMEL-14 add ability to pool routes/steps for parallel processing Unassigned Noah Nordrum Major OpenOpen UNRESOLVED Jun 11, 2007 Jun 13, 2007
New Feature CAMEL-10 optional interceptors to publish statistics MBeans for each endpoint/processor to keep track of throughtput rates & performance of routes/steps etc Unassigned James Strachan Major OpenOpen UNRESOLVED Jun 07, 2007 Jun 13, 2007
Improvement CAMEL-1 provide a base ExchangeRuntimeException which can provide a useful base class to exceptions raised when processing an exchange Unassigned James Strachan Trivial OpenOpen UNRESOLVED Apr 18, 2007 Jun 13, 2007
New Feature CAMEL-8 Dynamic Router pattern needs implementing & documenting Unassigned James Strachan Major OpenOpen UNRESOLVED Jun 07, 2007 Jun 13, 2007
New Feature CAMEL-5 add a CamelRouteListener to listen for routes being added/removed/stopped Unassigned James Strachan Major OpenOpen UNRESOLVED Jun 07, 2007 Jun 13, 2007
New Feature CAMEL-6 add a CamelEndpointListener so you can listen to new endpoints being created/closed Unassigned James Strachan Major OpenOpen UNRESOLVED Jun 07, 2007 Jun 13, 2007
New Feature CAMEL-11 maven plugin to generate a report per maven module of all the Type Converter methods available in each module (preferably with a way to aggregate them) so folks can easily see what conversions are possible Unassigned James Strachan Major OpenOpen UNRESOLVED Jun 07, 2007 Jun 13, 2007
New Feature CAMEL-12 create maven plugin which generates a DOT file & graphical pictures of the various routes available in XML or Java code within a jar Unassigned James Strachan Major OpenOpen UNRESOLVED Jun 07, 2007 Jun 13, 2007

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