Welcome to Sling
Sling is a Web application framework based on REST principles that provides easy development of content-oriented applications. Sling uses a JCR repository, such as Apache Jackrabbit, as its data store.
Sling is currently an internal project of Day Management AG. Day would like to contribute Sling to the Apache Software Foundation, perhaps as part of the Apache Jackrabbit project, provided that is acceptable to the Apache Incubator. These pages constitute a first set of documentation of Sling as well as an initial draft of the proposal to the Incubator.
These pages are currently under construction, so please come back now and then, over the next few days, to see what is going on here. Discussion should be directed to the Apache Jackrabbit development list (dev at jackrabbit.apache.org).
- Draft proposal to submit Sling to the Incubator
- Some Use Cases for Sling
- The Component API underlying Sling
- Architecture of Sling
- Assembly: Bundling Bundles
- Initial Provisioning and Startup
- Configuring Sling
- Content Loading and Nodetype Support
- HTTP Request Processing
In addition to this more descriptive and referential documentation, a series of user and developer guides are provided here:
- Installing and Upgrading Bundles
- Default Content Mapping and Request Rendering
- Dispatching requests in Sling Applications
- Request Parameter Handling in Sling
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. In addition, Sling requires several OSGi compendium services to be available, such as the Log Service, Http Service, Configuration Admin Service, Metatype Service, and Declarative Services.
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. It has not been tested yet, but it is expected that Sling also operates perfectly inside other OSGi frameworks such as Equinox and Knopflerfish.