Thursday, 19 November 2009

Tools box or project receipt ingredients


Today I'd like to list the tools, utils and libraries I use for OSGi Lab projects. These ingredients are indispensable pieces of the project.
  1. Foundation. I use Google code service for the project. It provides almost everything I need: version control - Subversion, embedded issue tracker, embedded wiki engine, downloads page. One thing that I missed is build server. I'll try to find one somewhere. Before that I'll use my own PC for nightly builds.
  2. Main ingredient. I'll base project structure on Apache Maven. This structure is very popular in open source projects and I like to follow it. Except common Maven plug-ins I'll use OSGi specific plug-in to generate bundle manifest - Maven Bundle Plug-in. This plug-in is based on very popular OSGi tool BND from Peter Kriens. It helps to create bundle jars, create and validate manifest files, resolve bundle class-path dependencies etc.
  3. Main tool. As the project structure is based on Maven we can use any editor for sources, even vi. I suggest to select one from high-end Java IDEs: EclipseJetBrains IDEA Community Edition or NetBeans. I personally like IDEA, but I don't like to start any "IDE holy wars". I think that all three IDE cover all project requirements, it's just a matter of habit. 
  4. Testing tools. To provide upscale and reliable code it should be covered with tests. During OSGi bundle development we have 2 types of tests: OSGi specific (or integration tests) and non-OSGi specific (e.g. unit tests). For unit tests I'll use JUnit and for integration tests (inside OSGi framework) I'll use JUnit with Pax Exam - OSGi test framework
  5. Spices. Additional useful tools and libraries: Mockito - mocking framework and Pax Runner - OSGi bundles provisioning tool

So, let's start to cook!

    No comments:

    Post a Comment