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 Tue, 03 Jul 2007 08:23:09 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:
Formatting fixes

------------------------------------------------------------------------------
  = Sling Proposal =
  
- _This is a draft version of a proposal to take the ApacheSling to the [[http://incubator.apache.org/][Apache
Incubator]] with a goal of becoming an [[http://jackrabbit.apache.org/][Apache Jackrabbit]]
subproject. Discuss this proposal on the Jackrabbit Dev List. See the [[http://incubator.apache.org/guides/proposal.html][proposal
guide]] for a description of the expected proposal content._
+ ''This is a draft version of a proposal to take the ApacheSling to the [http://incubator.apache.org/
Apache Incubator] with a goal of becoming an [http://jackrabbit.apache.org/ Apache Jackrabbit]
subproject. Discuss this proposal on the Jackrabbit Dev List. See the [http://incubator.apache.org/guides/proposal.html
proposal guide] for a description of the expected proposal content.''
  
  == Abstract ==
  
@@ -10, +10 @@

  
  == Proposal ==
  
- Sling allows easy development of web application which are centered around content which
is acted upon. As such each request URL addresses a Content object which in turn resolves
to a Component, which finally is responsible for handling the request and providing a response.
Though Content is a Java abstraction, the main source of data is a Java Content Repository
conforming to the [[http://www.jcp.org/en/jsr/detail?id=170][JSR 170 API]] such as [[http://jackrabbit.apache.org][Apache
Jackrabbit]].
+ Sling allows easy development of web application which are centered around content which
is acted upon. As such each request URL addresses a Content object which in turn resolves
to a Component, which finally is responsible for handling the request and providing a response.
Though Content is a Java abstraction, the main source of data is a Java Content Repository
conforming to the [http://www.jcp.org/en/jsr/detail?id=170 JSR 170 API] such as [http://jackrabbit.apache.org
Apache Jackrabbit].
  
  == Background ==
  
  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.
+ 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.
  
  == Rationale ==
  
- Content repositories, as defined in the Content Repository for Java Technology API (JCR),
are well suited to work as content stores of web applications. However, the JCR API deals
with generic Nodes and Properties and not with business objects that would be more  meaningful
to application developers. Therefore one of the building blocks of Sling is the integration
of a content mapping infrastructure, namely [[http://incubator.apache.org/graffito/jcr-mapping/index.html][Jackrabbit
Object Content Mapping]].
+ Content repositories, as defined in the Content Repository for Java Technology API (JCR),
are well suited to work as content stores of web applications. However, the JCR API deals
with generic Nodes and Properties and not with business objects that would be more  meaningful
to application developers. Therefore one of the building blocks of Sling is the integration
of a content mapping infrastructure, namely [http://incubator.apache.org/graffito/jcr-mapping/index.html
Jackrabbit Object Content Mapping].
  
- Another cause of regular headaches in current web application frameworks is managing the
life cycle of long-running applications: Add new functionality, fix bugs, starting and stopping
modules. This is where the [[http://www.osgi.org/][OSGi service platform]] comes into play.
This specification provides both help in the area of modularization and lifecycle management
(and more, actually) and definitions of services, so called Compendium Services, which help
concentrate on the core application and not worry about issues such as logging, configuration
management etc. Sling uses [[http://felix.apache.org/][Apache Felix]] as the OSGi framework.
+ Another cause of regular headaches in current web application frameworks is managing the
life cycle of long-running applications: Add new functionality, fix bugs, starting and stopping
modules. This is where the [http://www.osgi.org/ OSGi service platform] comes into play. This
specification provides both help in the area of modularization and lifecycle management (and
more, actually) and definitions of services, so called Compendium Services, which help concentrate
on the core application and not worry about issues such as logging, configuration management
etc. Sling uses [http://felix.apache.org/ Apache Felix] as the OSGi framework.
  
  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.
  
@@ -77, +77 @@

  
  === Relationships with Other Apache Products ===
  
-    * [[http://jackrabbit.apache.org/][Apache Jackrabbit]]
+    * [http://jackrabbit.apache.org/ Apache Jackrabbit]
-    * [[http://felix.apache.org/][Apache Felix]]
+    * [http://felix.apache.org/ Apache Felix]
  
  === A Excessive Fascination with the Apache Brand ===
  
@@ -86, +86 @@

  
  == Documentation ==
  
- _TODO_
+ Initial Documentation is made available on the Jackrabbit Wiki pages at ApacheSling.
  
  == Initial Source ==
  
@@ -108, +108 @@

  
  === Mailing lists ===
  
-    * sling-dev at incubator.apache.org
+    * sling-dev at incubator.apache dot org
-    * sling-commits at incubator.apache.org
+    * sling-commits at incubator dot apache dot org
-    * sling-private at incubator.apache.org
+    * sling-private at incubator dot apache dot org
  
  === Subversion Directory ===
  
@@ -122, +122 @@

  
  === Java Packaging ===
  
-    * All Sling classes live inside and below ==sling==. It is foreseen to root ==sling==
at ==org.apache== such as to have all Sling classes at or below ==org.apache.sling==.
+    * All Sling classes live inside and below {{{sling}}}. It is foreseen to root {{{sling}}}
at {{{org.apache}}} such as to have all Sling classes at or below {{{org.apache.sling}}}.
  
  === Other Resources ===
  
@@ -133, +133 @@

     * Felix Meschberger (fmeschbe at apache dot org)
     * Carsten Ziegeler (cziegeler at apache dot org)
     * Bertrand Delacretaz (bdelacretaz at apache dot org)
+    * Christophe Lombart (clombart at apache dot org)
     * ... More to be invited ...
  
  == Affiliations ==

Mime
View raw message