Monday, May 18, 2009

Open Source Projects

I started some projects on Google Code last year and have recently picked up work on them again. You may want to check them out - there is already a perfectly usable (and extremely useful, in my opinion) Java library for checking object state during runtime, checking passed method parameters and exception chaining. This is particularly useful for things like dependency injection and can help you painlessly throw exceptions early (a good practice) - sometimes as early as a constructor call. Fewer meaningless NullPointerExceptions and fewer exceptions with no message will ultimately result in faster development and more stable production code.

Another project currently being worked on quite actively is meant to create an abstraction of a source code repository (version control system) with the goal of allowing developers to take better advantage of the repository. Here is the "Overview" blurb as of today:

The goals of this project are to allow teams to use an SVN repository to develop more efficiently by allowing for:

  • easy separation of concerns for various files (modular area use)

  • trunk stability (code sandboxing)

  • integration with an arbitrary tasklist, bug tracker or other applicable project management tool



All three features should be usable individually in case a team wants to use one, but not the other(s). They will be implemented in a library, which should then have a number of interfaces built on top of it, including (but not necessarily limited to) a CLI, Eclipse plug-in and a NetBeans plug-in.


Another library planned for the future deals with Tagging. Currently, tagging is flat and unflexible. My idea is to introduce hierarchy and some other interesting concepts/features into Tagging.

Take a look!
http://code.google.com/p/generic-libraries/