Would you like to contribute to

We are in the early stages of this project and welcome ideas on how to improve the class design, as well as practical help in defining the annotations for the various patterns, together with unit tests, documentation and tools.

We have a mailing list for questions and discussions about the development.

The sources are located on github.

Forking and Submitting Changes

If you would like to contribute some changes to the project, please go to our github project and click on the “fork” button.

Then you can work on that, do what you want and whenever you have something ready you can issue a “pull request” to the original project owner so that he can fetch your repo and look at the commits in question and if they are suitable he merges them into his master branch.

You can also do git format-patch on a certain set of changes. Then git creates a patch file that you can send to us, we can look at it and then apply to our current branch.

Using Git

First off, upload your public SSH key to your account on the github website.  It will make things much easier for you when you need to upload your changes.  There are bugs in the http interface for, causing it to sometimes fail.  The SSH interface is more robust.

Basic workflow should be something like the following:

initial clone:
git clone

do your local changes & local commits (repeat as often as you’d like):
git add <files> or git add .

git commit -m”message”

if you want to share/push changes

first pull last public state
(–rebase is better than normal pull because it first fetches the clean remote branch and then _reapplies_ your commits one after another on top of that, instead of doing a big merge of the remote branch on top of your changed HEAD state.

git pull –rebase origin master

then push your changes
git push origin master

Using Maven

Once you have cloned the git project and/or pulled the latest changes, you can build the project like this:

mvn install

To generate the javadocs, please run:

mvn javadoc:javadoc

Please make sure that your sources build before pushing them into github.

Code Style

We all have our own individual preferences of how wide tab spaces should be, whether we should put braces at the end of a condition or underneath, etc.  In our project, we are using 2 spaces for indentation and we are writing braces at the end the line, rather than underneath.  Please try to stick to our conventions wherever possible.

One Response to Contributors

  1. Ashok SUBRAMANIAN says:

    Hi Heinz,

    I’m a regular to you Java Specialist Newsletter. I was going through your PDF slides from JavaOne.

    I came across this effort of yours (jpatterns) and found it pretty interesting :)

    Also, I wish to contribute to the same. Please do let me know if you are OK with it …

    Best Regards – Ashok SUBRAMANIAN
    Bangalore, India