Sunday, March 4, 2012

Understanding the Runtime Properties of Apache Karaf

I often forget how I have configured a particular piece of software. If I'm not staring at the configuration data everyday it isn't worth remembering. When I finally need this information it takes much too long for me to locate it.

When the configuration is dynamic and only available at runtime my forgetfulness is even more frustrating. I resort to breakpoints, System.out.println() or other inefficient means to retrieve this information.

Apache Karaf has both kinds of configuration: runtime and static. The static information lives in $KARAF_HOME/etc and is easily discovered. The runtime configuration is a different story. The static configuration contains variables that have their values substituted at runtime based on JVM System properties, other configuration values and other sources like the OSGi framework. This contributes to a very frustrating development experience for the average Karaf application developer as well as the EIK project.

Released EIK as Apache Karaf Subproject

EIK is now a sub-project of Apache Karaf. This means that I'm an Apache Karaf committer now -- an exciting fact itself! I'm still waiting for the account at the Apache Software Foundation so I can't setup Continuous Integration and proper nightly builds.

In order to install this you must uninstall all previous versions of EIK.

In the meantime, here is a nightly build of the new code base:

EIK @ Apache 0.5 Nightly

* Edit - I had to fix the link to point to a correct distribution