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 are a new Camel rider and would like to help us, you can also find some easy to resolve issues. Leave a comment on the issue to let us know you are working on it and add yourself as a watcher to get informed about all modifications.
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 Camel 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...
Code Block |
---|
git clone https://git-wip-us.apache.org/repos/asf/camel.git
cd camel
mvn eclipse:eclipse
|
Build the project (without testing).
Code Block |
---|
mvn clean install -Dtest=false
|
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).
If you're a command line person try the following to create the patch
Code Block |
---|
diff -u Main.java.orig Main.java >> patchfile.txt
|
or
Code Block |
---|
git diff --no-prefix > patchfile.txt
|
Submitting patches
The easiest way to submit a patch is to
- create a new JIRA issue (you will need to register),
- attach the patch or tarball as an attachment
- tick the Patch Attached button on the issue
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!
Working with Git
There are several ways how Git users could improve Camel with their prefered tool:
- Apache Git Mirror
- Pull request at Github
Apache Git Mirror
Cloning the Apache git repo.
Code Block |
---|
git clone https://git-wip-us.apache.org/repos/asf/camel.git |
Bringing your modifications back to Apache is the same workflow as described before.
Pull request at Github
There is also a Git repository at Github which you could fork. Then you submit patches as any other github project - eg work on a new feature branch and send a pull request. One of the committers then needs to accept your pull request to bring the code to the ASF codebase. After the code has been included into the ASF codebase, you need to close the pull request because we can't do that...
More resources
Git is not a brand new technology and therefore Camel is not the only ASF project thinking about using it. So here are some more resources you mind find useful:
- http://wiki.apache.org/general/GitAtApache: Some basic notes about git@asf
- http://git.apache.org/: List of mgit-mirrors at ASF
- https://git-wip-us.apache.org/: More Git infos from Apache
Becoming a committer
Once you've got involved as above, we may well invite you to be a committer. See How do I become 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@camel.apache.org
mail list with the email address you used to register with the issue tracker and we'll add you to the group.
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 GuideSee the up-to-date documentation at the Apache Camel site on github: https://github.com/apache/camel/blob/master/CONTRIBUTING.md