Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 95168 invoked from network); 3 Aug 2007 06:16:09 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 3 Aug 2007 06:16:09 -0000 Received: (qmail 42999 invoked by uid 500); 3 Aug 2007 06:16:07 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 42974 invoked by uid 500); 3 Aug 2007 06:16:07 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 42965 invoked by uid 99); 3 Aug 2007 06:16:07 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Aug 2007 23:16:07 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of fmeschbe@gmail.com designates 209.85.128.184 as permitted sender) Received: from [209.85.128.184] (HELO fk-out-0910.google.com) (209.85.128.184) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Aug 2007 06:16:00 +0000 Received: by fk-out-0910.google.com with SMTP id b27so684756fka for ; Thu, 02 Aug 2007 23:15:39 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:subject:from:to:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=bvYZRnEVu86zra7VREtH90vzfNXG7HNtvl76Zd5pe0Z9LzmQSLXKY5yqulANSB44k0vycrGrYOH2xdk1NQimzNi92VvBwj0Ev84VAw2P6ATJW/a55uDPQOucmg3jQ24gFpgR/8mZlsDSyOL/jX2ETFRzcfHVw30j6IeDVo8hTj8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:subject:from:to:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=Qa1Fz3GHMmwHDRNS4ku49fcrul7HQbw1RFbqhSJIOq3kj7j7vtmkVyoBz0mOA6SubHHOTF1Sp0UVAK7k+TN9oxC0e67v4/Z4kf2aCOVCWju0ydc3MeOUlbi3JpUcMS45eO4oDjNuB5ldKTnvlILhDbSCBkHv/fOvyxlynpiZfLQ= Received: by 10.86.58.3 with SMTP id g3mr1977268fga.1186121739207; Thu, 02 Aug 2007 23:15:39 -0700 (PDT) Received: from ?192.168.1.109? ( [87.102.138.82]) by mx.google.com with ESMTPS id m1sm5554635fke.2007.08.02.23.15.36 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 02 Aug 2007 23:15:36 -0700 (PDT) Subject: Re: Sling Proposal From: Felix Meschberger To: dev@jackrabbit.apache.org In-Reply-To: <384555.84729.qm@web51905.mail.re2.yahoo.com> References: <384555.84729.qm@web51905.mail.re2.yahoo.com> Content-Type: text/plain Date: Fri, 03 Aug 2007 08:15:35 +0200 Message-Id: <1186121735.4175.20.camel@bslm-046.corp.day.com> Mime-Version: 1.0 X-Mailer: Evolution 2.8.3 (2.8.3-2.fc6) Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Hi Ransford, Am Mittwoch, den 01.08.2007, 13:46 -0700 schrieb paksegu: > I have read the documention but I am still confuse on the purpose and benefit of sling, can you please give me a brief explanation of what is does and where it applicable, say a usecase scenario. Basically, the intent of Sling is to be JCR-based web application development framework. All content delivered is backed by actual Repository Content (Nodes and Properties). As such, a request is resolved against a Repository Node, loaded (using the JCR Mapper) into a Java Object called the Content object, which is handed to a Component object which in turn handles the Java Object representing the node and renders the response. The uses of these are vast and way beyond my own imagination (David is much better at that :-) ). But here are a few ones: Wiki ---- We 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. 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. 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 node. The system resolves the URL to the attachement Content and just calls the attachement's Component to spool the attachement. Digital Asset Management ------------------------ 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). Again, the management assets may be easily spooled by directly accessing them. Web Content Management ---------------------- Last but not least, Sling offers it self very well to implementing a Web Content Management system. Thanks to the flexibility of rendering the output - remmber: 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. I hope these examples helped clarfiy a bit the scope of Sling and what can be accomplished. Regards Felix