sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [CONF] Apache Sling Website > Apache Sling
Date Tue, 03 Apr 2012 15:07:00 GMT
    <base href="">
            <link rel="stylesheet" href="/confluence/s/2042/9/1/_/styles/combined.css?spaceKey=SLINGxSITE&amp;forWysiwyg=true"
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="">Apache
    <h4>Page <b>edited</b> by             <a href="">Bertrand
        <div id="versionComment">
        Our redesign is mostly done <img class="emoticon" src="/confluence/images/icons/emoticons/wink.gif"
height="20" width="20" align="absmiddle" alt="" border="0"/><br />
                         <h4>Changes (1)</h4>
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >If you prefer doing rather than reading,
please proceed to [Discover Sling in 15 minutes] or read through the recommended links in
the [Getting Started] section, where you can quickly get started on your own instance of Sling.
<br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{note:title=Excuse
our mess while we redesign} <br>Sling has undergone an important redesign in the last
few months, and we&#39;re not done updating this website yet. <br> <br>The
status of each page is indicated by a note like this at the top of each page. <br> <br>Pages
which do not have such a note should be considered *not reviewed*: the information that they
contain might be out of sync with the current Sling codebase. <br>{note} <br>
            <tr><td class="diff-unchanged" >h2. Contents <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="ApacheSling-ApacheSlingBringingBacktheFun"></a>Apache
Sling - Bringing Back the Fun</h1>

<p><span class="tm mark "><b>Apache Sling</b><small><sup>TM</sup></small></span>
 is an innovative web framework that is intended to bring back the fun to web development.</p>

<p>Discussions about Sling happen on our mailing lists, see the <a href="/confluence/display/SLINGxSITE/Project+Information"
title="Project Information">Project Information</a> page for more info.</p>

<h1><a name="ApacheSling-ApacheSlinginfivebulletspoints"></a>Apache Sling
in five bullets points</h1>

	<li>REST based web framework</li>
	<li>Content-driven, using a JCR content repository</li>
	<li>Powered by OSGi</li>
	<li>Scripting inside, multiple languages (JSP, server-side javascript, Scala, etc.)</li>
	<li>Apache Open Source project</li>

<h1><a name="ApacheSling-ApacheSlinginahundredwords"></a>Apache Sling in
a hundred words</h1>

<p>Apache Sling is a web framework that uses a <a href=""
class="external-link" rel="nofollow">Java Content Repository</a>, such as <a href=""
class="external-link" rel="nofollow">Apache Jackrabbit</a>, to store and manage content.</p>

<p>Sling applications use either scripts or Java servlets, selected based on simple
name conventions, to process HTTP requests in a RESTful way.</p>

<p>The embedded <a href="" class="external-link" rel="nofollow">Apache
Felix</a> OSGi framework and console provide a dynamic runtime environment, where code
and content bundles can be loaded, unloaded and reconfigured at runtime.</p>

<p>As the first web framework dedicated to <a href=""
class="external-link" rel="nofollow">JSR-170</a> Java Content Repositories, Sling
makes it very simple to implement simple applications, while providing an enterprise-level
framework for more complex applications. </p>

<h2><a name="ApacheSling-News"></a>News</h2>

	<li>New Releases: Apache Sling Commons Testing 2.0.10, Apache Sling Commons Scheduler
2.3.4, Apache Sling Commons Log 3.0.0, Apache Sling Commons Log Service 1.0.0, Apache Sling
Adapter 2.0.12, Apache Sling Installer Core 3.3.4, Apache Sling Launchpad API 1.1.0, Apache
Sling Launchpad Installer 1.1.0, and Apache Sling Maven JSPC Plugin 2.0.6 (February 7th, 2012)</li>
	<li>New Releases: Apache Sling API 2.2.4, Apache Sling Adapter 2.0.10, Apache Sling
Scripting JSP Taglib 2.1.6, Apache Sling Rewriter 1.0.2, Apache Sling JCR ContentLoader 2.1.4,
Apache Sling JCR Base 2.1.2, Apache Sling Servlet Resolver 2.1.2, and Apache Sling Security
1.0.0 (January 30th, 2012)</li>
	<li>New Releases: Apache Sling Scripting API 2.1.4, Apache Sling Scripting Core 2.0.20,
Apache Sling i18n 2.2.0, Apache Sling Installer Core 3.3.2, Apache Sling Scripting Java 2.0.2,
and Apache Sling Scripting JSP 2.0.20 (January 16th, 2012)</li>
	<li>New Releases: Apache Adapter Annotations 1.0.0 and Apache Sling Maven Sling Plugin
2.1.0 (January 14th, 2012)</li>
	<li>New Releases: Apache Sling Settings 1.1.0, Apache Sling Commons ClassLoader 1.2.4,
Apache Sling Commons Scheduler 2.3.2, Apache Sling Event 3.1.2, Apache Sling Installer Core
3.3.0, Apache Sling Installer Configuration Factory 1.0.4, Apache Sling Launchpad Installer
1.0.6, Apache Sling JCR Installer 3.1.2, and Apache Sling Thread Dumper 0.2.2 (January 6th,
	<li>New Release: Apache Sling Jackrabbit User Manager 2.2.0 (November 15th, 2011)</li>
	<li>New Release: Apache Sling Maven Sling Plugin 2.0.6 (October 21st, 2011)</li>
	<li>New Release: Apache Sling Maven Launchpad Plugin 2.1.0 (September 9th, 20111)</li>
	<li>New Releases: Apache Sling Resource Bundle 1.0.0 and Parent POM 12</li>
	<li>New Releases: Apache Sling API 2.2.2, Apache Sling Commons Scheduler 2.3.0, Apache
Sling Commons OSGi 2.1.0, Apache Sling Scripting Core 2.0.18, Apache Sling Installer Core
3.2.2, Apache Sling Installer Configuration Factory 1.0.2, Apache Sling Launchpad Installer
1.0.4, Apache Sling File Installer 1.0.2 (August 16th, 2011)</li>
	<li>New Release: Apache Sling Scripting JSP Support 2.0.18 (August 15th, 2011)</li>
	<li>Released new Apache Sling Parent POM 11 (August 8, 2011)</li>
	<li>New Release: Apache Sling Internationalization 2.1.2 (July 15, 2011)</li>
	<li>New Releases: Apache Sling Event 3.1.0, Apache Sling OSGi Installer 3.2.0, Apache
Sling JCR Installer 3.1.0, Apache Sling Installer Configuration Factory 1.0.0, Apache Sling
Launchpad Installer 1.0.2 (July 13th, 2011)</li>
	<li>New Release: Apache Sling Engine 2.2.4 (June 22nd, 2011)</li>
	<li>New Releases: Apache Sling Launchpad Standalone Archetype 1.0.0, Launchpad Webapp
Archetype 1.0.0 (May 13th, 2011)</li>
	<li>New Releases: Apache Sling Scripting JSP Support 2.0.16, JSP Taglib 2.1.2 (May
3rd, 2011)</li>
	<li>New releases: Apache Sling Test Tools 1.0.2, JUnit Core 1.0.6, JUnit Remote Tests
Runners 1.0.6, JUnit Scriptable Tests Provider 1.0.6, Sample Integration Tests 1.0.6, Sample
Server-Side Tests 1.0.6, Failing Server-Side Tests 1.0.6 (April 26th, 2011)</li>
	<li>New releases: Apache Sling I18N 2.1.0 (April 12, 2011)</li>
	<li>New releases: <a href="" class="external-link"
rel="nofollow">Apache Sling 6</a>, Apache Sling Launchpad Content 2.0.6 (March 28,
	<li>New releases: Apache Sling Launchpad Integration Tests 1.0.0, Apache Sling Launchpad
Testing Services 2.0.8, Apache Sling Launchpad Testing Services WAR 2.0.8 (March 04, 2011)</li>
	<li>New releases: Apache Sling Javascript 2.0.12 (February 26, 2011)</li>
	<li>New releases: Apache Sling Explorer 1.0.2, Apache Sling JCR Resource 2.0.10, Apache
Sling Engine 2.2.2, Apache Sling Installer IT Testing 3.1.2 (February 24, 2011)</li>
	<li>New releases: Apache Sling Launchpad API 1.0.0, Launchpad Installer 1.0.0 Launchpad
Base 2.3.0, Maven Launchpad Plugin 2.0.10, Apache Sling Commons Testing 2.0.8 (February 20,
	<li>New release: Apache Sling Servlets Get 2.1.2 (February 18, 2011)</li>
	<li><a href="/confluence/display/SLINGxSITE/News" title="News">all news...</a></li>

<h2><a name="ApacheSling-History"></a>History</h2>

<p>Sling started as an internal project at <a href="" class="external-link"
rel="nofollow">Day Software</a>, and entered the Apache Incubator in September 2007.
As of June, 17th, 2009 Apache Sling is a top level project of the Apache Software Foundation.</p>

<p>The name "Sling" has been proposed by Roy Fielding who explained it like this:</p>

<p>[The name is] Biblical in nature.  The story of David: the weapon he uses to slay
the giant Goliath is a sling.  Hence, our David's [David Nuescheler, CTO of Day Software]
favorite weapon.</p>

<p>It is also the simplest device for delivering content very fast.</p></blockquote>

<h2><a name="ApacheSling-WhousesSling%3F"></a>Who uses Sling?</h2>

<p>See <a href="" class="external-link"
rel="nofollow">Who is using Sling</a> on our public wiki.</p>

<h2><a name="ApacheSling-Gettingstarted"></a>Getting started</h2>

<p>If you prefer doing rather than reading, please proceed to <a href="/confluence/display/SLINGxSITE/Discover+Sling+in+15+minutes"
title="Discover Sling in 15 minutes">Discover Sling in 15 minutes</a> or read through
the recommended links in the <a href="/confluence/display/SLINGxSITE/Getting+Started" title="Getting
Started">Getting Started</a> section, where you can quickly get started on your own
instance of Sling.</p>

<h2><a name="ApacheSling-Contents"></a>Contents</h2>

	<li><a href="/confluence/display/SLINGxSITE/Documentation" title="Documentation">Documentation</a>
&#45; Here you will find the documentation on Sling</li>
	<li><a href="/confluence/display/SLINGxSITE/Development" title="Development">Development</a>
&#8211; Documentation on how to develop web applications with Sling and what tools you
have at your disposal</li>
	<li><a href="/confluence/display/SLINGxSITE/Links" title="Links">Links</a></li>
	<li><a href="" class="external-link" rel="nofollow">Wiki</a></li>
	<li><a href="" class="external-link" rel="nofollow">FAQ</a></li>
	<li><a href="/confluence/display/SLINGxSITE/Project+Information" title="Project
Information">Project Information</a></li>

<h2><a name="ApacheSling-UseCasesforSling"></a>Use Cases for Sling</h2>

<h4><a name="ApacheSling-Wiki"></a>Wiki</h4>

<p>Day built a Wiki system on Sling. Each Wiki page is a node (with optional child nodes)
in the repository. As a page is requested, the respective node is accessed and through the
applying Component is rendered.</p>

<p>Thanks to the JCR Mapping and the resolution of the Component from the mapped Content,
the system does not care for what actual node is addressed as long as there is a Content mapping
and a Component capable of handling the Content.</p>

<p>Thus in the tradition of REST, the attachement of a Wiki page, which happens to be
in a node nested below the wiki page node is easily accessed using the URL of the wiki page
attaching the relative path of the attachement  ode. The system resolves the URL to the attachement
Content and just calls the attachement's Component to spool the attachement.</p>

<h4><a name="ApacheSling-DigitalAssetManagement"></a>Digital Asset Management</h4>

<p>Day has implemented a Digital Asset Management (DAM) Application based on Sling.
Thanks to the flexibility of the Content/Component combo as well as the service registration/access
functionality offered by OSGi, extending DAM for new content type is merely a matter of implementing
one or two interfaces and registering the respective service(s).</p>

<p>Again, the managed assets may be easily spooled by directly accessing them.</p>

<h4><a name="ApacheSling-WebContentManagement"></a>Web Content Management</h4>

<p>Last but not least, Sling offers itself very well to implementing a Web Content Management
system. Thanks to the flexibility of rendering the output - remember: the system does not
care what to render, as long as the URL resolves to a Content object for which a Component
exists, which is called to render the Content - providing support for Web Content authors
(not PHP programmers but users out in the field) to build pages to their likings can easily
be done.</p>

<h2><a name="ApacheSling-References"></a>References</h2>

<h4><a name="ApacheSling-ApacheJackrabbit"></a>Apache Jackrabbit</h4>

<p>The main purpose of Sling is to develop a content-centric Web Application framework
for Java Content Repository (JCR) based data stores. Sling is implemented - with the notable
exception of JCR Node Type management - purely in terms of the JCR API and as such may use
any JCR compliant repository. The default implementation for <a href=""
class="external-link" rel="nofollow">Apache Jackrabbit</a> is provided out of the

<h4><a name="ApacheSling-OSGi"></a>OSGi</h4>

<p>Sling is implemented as a series of <a href="" class="external-link"
rel="nofollow">OSGi</a> 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.</p>

<h4><a name="ApacheSling-ApacheFelix"></a>Apache Felix</h4>

<p>While Sling does not require a specific OSGi framework implementation to run in,
Sling is being developed using <a href="" class="external-link"
rel="nofollow">Apache Felix</a> 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 <a href="" class="external-link" rel="nofollow">Equinox</a>
and <a href="" class="external-link" rel="nofollow">Knopflerfish</a>.</p>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href=""
class="grey">Change Notification Preferences</a>
        <a href="">View
        <a href="">View
        <a href=";showCommentArea=true#addcomment">Add

View raw message