aTrack - Aspect Orientation from the ground up in a real-world enterprise application

by Russell Miles

Related link:

J2EE and enterprise solutions, particularly middleware and support libraries, are supposed to be the 'killer apps' for Aspect Orientation. In an effort to promote the advantages of AO in a real world example the aTrack project was born as the brain child of Ron Bodkin a leading evangelist of the AO aproach.

So what is aTrack? aTrack is an open source project and is managed as a community project being written in Java with AspectJ providing the aspect oriented capabilities.

In terms of the functionality that is being developed aTrack will be an online bug tracking facility. But wait! before you switch off whilst muttering something along the lines of 'not another bug database', that's not the important thing at all. aTrack is built on top of technologies such as Jakarta Struts (and in turn servlets), Hibernate, and other open source server-side libraries. But even that's not really the important thing. The key thing about aTrack is that it offers an example of AspectJ integration with these technologies as well as an example of a ground-up design solution, and the real gems are to be found in the code...

So what exactly does aTrack offer and why should you think about getting involved? Because aTrack is being developed by some of the most experienced AO people around it offers a great opportunity for beginners and advanced users alike to see how things should be done. By joining the effort you can get visibility of some of the bleeding edge design patterns and idioms in AO that constitute the projects codebase. Even if actually working on the project may be a little out of your comfort zone, aTrack at the very least offers a place to learn about AO in a real world application. aTrack is an ideal example for those new to AO and AspectJ who have questions like 'so what can I do with this thing?".

Because the project is open source you can contribute as much or as little as you like. For example, your contribution may be as much as submitting source code and fixing bugs, or contributing to the mailing list discussions, or just keeping visibility of the project as a learning base. I myself have been getting up to speed on the codebase of aTrack and other areas of AspectJ and hope to begin submitting work in the near future, but the sheer wealth of learning that can be found from examining even the existing incomplete aTrack architecture is worth the effort tenfold.

aTrack is still in it's early days and is definitely looking for contributors. If you can spare the time, and especially if you are looking for a practical real world example of why people are getting excited over AO, then it's worth taking a look at aTrack.Through the aTrack project the Java development community is finally being offered a great foundation example on which to build a better understanding of AO and AspectJ.

If you want to know more about aTrack, AspectJ etc. or just share your AO experiences then I'd be glad to hear from you.