jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Jackrabbit Wiki] Update of "SlingProposal" by FelixMeschberger
Date Wed, 08 Aug 2007 13:04:23 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jackrabbit Wiki" for change notification.

The following page has been changed by FelixMeschberger:
http://wiki.apache.org/jackrabbit/SlingProposal

The comment on the change is:
Fixed a formatting issue in the background section and added feature summary

------------------------------------------------------------------------------
  
  Sling came to live in an effort to rewrite the central request processing engine of Day
Communiqué 4.0 and make it available for other applications requiring an easy to use and
flexible web application framework. As such, the guidelines to develop Sling can be summarized
as follows:
  
- Modularization:: Functional blocks of the processing engine should be split to enable independent
upgrade and replacement. At the same time some degree of dependency management amongst the
modules is required.
+  Modularization:: Functional blocks of the processing engine should be split to enable independent
upgrade and replacement. At the same time some degree of dependency management amongst the
modules is required.
- Runtime Management:: Modules must enabled to be separatly started and stopped as well as
installed, upgraded and removed.
+  Runtime Management:: Modules must enabled to be separatly started and stopped as well as
installed, upgraded and removed.
- Components:: Recognizing the need to componentize development of Web Applications and have
easy mix and match for such components to build web pages, the basic building blocks of web
pages are called components.
+  Components:: Recognizing the need to componentize development of Web Applications and have
easy mix and match for such components to build web pages, the basic building blocks of web
pages are called components.
- Content Repository:: Leading the Java Content Repository (JCR) initiative a new request
processing engine must natively support JCR (e.g. [http://jackrabbit.apache.org Apache Jackrabbit])
as the store for its content.
+  Content Repository:: Leading the Java Content Repository (JCR) initiative a new request
processing engine must natively support JCR (e.g. [http://jackrabbit.apache.org Apache Jackrabbit])
as the store for its content.
  
  By leveraging the [http://www.osgi.org OSGi core service platform specification] the modularization
and runtime management goals can be more than met. Sling is therefore built as a set of bundles.
Additionally Sling provides a standalone application launcher and a web application to launch
[http://felix.apache.org Apache Felix] as its OSGi framework to deploy the Sling bundles into.
  
@@ -32, +32 @@

  Third, a request will generally not be handled by a single Component but a series Components.
The idea is that a request URL addresses a Content object, which is mapped from a JCR Node
and which is serviced by a Component. The Component may then access child Content objects,
aka child nodes, and have Sling service those Content objects through their Components again.
Using this mechanism, each Component only contributes to part of the final web page.
  
  The advantage of this mechanism is, that Sling does not require tons of templates or scripts
to render different pages. Rather the developer may provide a tool box of Components which
may be mix-and-matched as required. In addition this even allows for easy content authoring.
+ 
+ In short, the main features of Sling may be summarized as follows:
+ 
+   * Uses a JCR Repository as its data store
+   * Uses Jackrabbit OCM to map Repository Items to Java Objects
+   * Internally deals with Java Objects
+   * Built as OSGi Bundles supporting any compliant OSGi framework
+   * Provides integration into Apache Felix for launching and OSGi services support
+   * Componentized data model allowing flexible web application building
+   * Based on standard Servlet API
+   * Open to allow support for web application complying with REST architectural style
+   * Each Node for which a valid Jackrabbit OCM mapping exists may be addressed by URL
+ 
  
  == Initial Goals ==
  

Mime
View raw message