Apache Sling

Apache Sling is an open source Web framework for the Java platform designed to create content-centric applications on top of a JSR-170-compliant (a.k.a. JCR) content repository such as Apache Jackrabbit. Apache Sling allows developers to deploy their application components as OSGi bundles or as scripts and templates in the content repository. Supported scripting languages are JSP, server-side JavaScript, Ruby, Velocity. The goal of Apache Sling is to expose content in the content repository as HTTP resources, fostering a RESTful style of application architecture.

Sling is different from many other Web application frameworks in the sense that it truly focuses on the web aspect of the "web application" development and through its development paradigm suggests an intuitive RESTful development of a true web application. Other frameworks focus more on the application development and therefore are ideal extensions to Sling.

The Sling project was started on August 27, 2007, when Day Software proposed to donate the source base of its internal web framework powering the Day Communiqué WCM to the Apache Software Foundation. The project was accepted to the Apache Incubator with Apache Jackrabbit being the sponsoring project. On June 18, 2009 the project graduated as an Apache top-level project.

Features

 * Content resolution that maps a request URL to a content node in the content repository
 * Servlet resolution that maps a content node and a request method to a Servlet handling the request
 * Default servlets supporting WebDAV, content creation from web forms, and JSON representation
 * A JavaScript client library, allowing access to the content repository through AJAX
 * Support for server-side scripting with JavaScript, JSP, Ruby, Velocity and Scala
 * OSGi-based extensibility through Apache Felix – the Felix Web Console was originally developed by the Apache Sling project