Apache Sling at a Glance

Apache Sling's main goal is to develop a content-centric Web Application framework for JCR-based data stores. The default implementation for Apache Jackrabbit is provided out of the box, which is why it was of some interest to me. No project binaries were generally available at the time of the last article update.

Sling is implemented as a series of OSGi Bundles and makes extensive use of the OSGi functionality, such as lifecycle management and the service layer. OSGi technology originally targeted embedded devices and home services gateways, but claims to be suited for any project that is interested in principles of modularity, component-oriented, and/or service-orientation. OSGi technology combines aspects of these principles to define a dynamic service deployment framework that supports remote management. The OSGi Alliance maintains detailed specifications describing the features and capabilities of its OSGi Service Platform, which can be freely implemented by anyone.

While Sling does not require a specific OSGi framework implementation to run in, Sling is being developed using Apache Felix as the OSGi framework implementation. Felix is a community effort to implement the OSGi R4 Service Platform, which includes the OSGi framework and standard services. The ultimate goal is to provide a completely compliant implementation of the OSGi framework and standard services, and to support a community around this technology.

OSGi technology is also used in the Eclipse Equinox and Corona projects. Equinox is an implementation of the OSGi R4 core framework specification. the goal of the Equinox project is to be a first class OSGi community and foster the vision of Eclipse as a landscape of bundles. As part of this, it is responsible for developing and delivering the OSGi framework implementation used for all of Eclipse. OSGi foundations are partially attributed for the successful annual coordinated releases of different Eclipse projects: Callisto in 2006 (10 projects) and Europa in 2007 (21 projects).

2 comments:

phil said...

How do you install Sling? I'm just a programmer ....

Alex said...

Just a programmer? That should be enough ;)

Please reference the First Steps page for basic info on using Subversion and Maven to check out and build the source code. I don't believe the project is publishing nightly snapshots or packaged releases yet.