Monday, December 29, 2008

I'm very torn when it comes to choosing my Java development environment. I often swap between Eclipse and Netbeans. In fact, when I create a new project, I ensure that the project structure is compatible between the two, just in case the mood strikes me to swap back and forth. Eclipse is a fine IDE, however it is just a bit too rough around the edges in some respects for me. Netbeans, on the other hand, has some great features (UML, Matisse, a very powerful debugger and profiler, etc.) but I find it's Java editor very lacking and non-intuitive. The other problem I have with Netbeans is the lack of plugins. The Eclipse community has a far greater number of plugins available for it.

Recently, while working on some PKI-related code, I found myself wishing I had a plugin for viewing X.509 certificate details. After looking around, I really couldn't find anything suitable for my needs. I've never been really big on desktop GUI programming, mostly because I've never had the need to do it. All of my professional development has been on the J2EE side of things. However, I decided that if you want something done right you have to do it yourself, and decided I was going to write the plugin I was looking for.

After investigating both the Eclipse and Netbeans platforms, I decided to target Netbeans. I like the fact that Netbeans is pure Swing, and its GUI builder is second to none. I began playing around with module development, and was very pleasantly surprised with the experience. Yes, the Netbeans RCP has a very steep learning curve, and I've not even scratched the surface of what it is capable of. However, I've managed to create a very rough initial version of my plugin, KeyCenter4NB.

Initially, I was just looking for a plugin that would let me view the details of an X.509 certificate. However, the more I got into developing it, the more I wanted to eventually implement. As a result, the initial 0.1 version is just a certificate view. Future releases, though, will include tools for creating and manipulating Java keystores, creating PKCS #10 certificate requests, checking CRLs/OCSP, and other PKI-related functionality that a developer may need to take advantage of. A grand vision I'd like to implement (if I actually get enough time) would be a standalone application based on the Netbeans RCP that focuses on certificate and key management. However, that is a long way away.

In the meantime, check out the KeyCenter4NB project page and download version 0.1. Right now, you must download the .NBM packages and manually install them. I hope to have an update center for the project configured and running shortly. As I mentioned, it's very basic and I'm sure it's rough around the edges. But, I'll continue to update is as I learn more.