Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 25743 invoked from network); 9 Aug 2007 07:40:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Aug 2007 07:40:14 -0000 Received: (qmail 46307 invoked by uid 500); 9 Aug 2007 07:40:12 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 46283 invoked by uid 500); 9 Aug 2007 07:40:12 -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 46274 invoked by uid 99); 9 Aug 2007 07:40:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Aug 2007 00:40:12 -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.185 as permitted sender) Received: from [209.85.128.185] (HELO fk-out-0910.google.com) (209.85.128.185) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Aug 2007 07:40:08 +0000 Received: by fk-out-0910.google.com with SMTP id b27so381283fka for ; Thu, 09 Aug 2007 00:39:46 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:subject:from:to:cc:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=cAuS5f6nYO+vCysGb51gz50xUAlLkKaHvCI/8jkBxze7791Atfd+KJKUaCvRLwnNOEFLhO5DJAoBYldBk69HVRT8TPf2MrphQtkmImr9gJj00RBXr4s9hzwkcabfOs4k0pjCXFOJ1xRCo9nKbkaeHGcGG8ptxPEZzwC2/PX12kk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:subject:from:to:cc:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=C7mKXaUDmXxIEe5W/QkR59unMGCrXqa0gc0h5qTmDvZHU4P8TpcB2vjTVOfQshKMjIX8xXsFezElHa+qw6lAWxSEUAYrn3osoQzfAKveoB6xiBQd6lpKKmFHldKaqnshI865peWK2q9sCmktc00TjXCU9aRrs8T1oQngk6urtwk= Received: by 10.86.81.8 with SMTP id e8mr1332623fgb.1186645186559; Thu, 09 Aug 2007 00:39:46 -0700 (PDT) Received: from ?10.0.0.73? ( [62.192.10.254]) by mx.google.com with ESMTPS id b17sm2761669fka.2007.08.09.00.39.44 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 09 Aug 2007 00:39:44 -0700 (PDT) Subject: RE: [Proposal] Sling From: Felix Meschberger To: general@incubator.apache.org Cc: Jackrabbit Dev In-Reply-To: References: Content-Type: text/plain Date: Thu, 09 Aug 2007 09:39:43 +0200 Message-Id: <1186645183.4062.159.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 Noel, Am Mittwoch, den 08.08.2007, 23:12 -0400 schrieb Noel J. Bergman: > > 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. > > And this differs from a Servlet/Portlet, how? With Servlet/Portlet the URL resolves to the Servlet/Portlet directly and the Servlet/Portlet has to care for itself to acquire the data to act upon. With Sling, the framework resolves the URL to data and from the data resolves the Component (the entity corresponding to Servlet/Portlet). When the Component is called, the data is provided to the Component and the Component does not have to care about getting to it. > > 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. > > Differing from JSR-168/JSR-286 Portlets, how? Other than "by leveraging the OSGi core service platform specification"? In some sense components are comparable to Portlets. But while a Portlet just cares to render itself and generally does not know anything about the other portlets (obviously JSR-286 tries to overcome this limit). In Sling on the other hand, there is now almighty mother container, which knows about all components on a page to render. Sling just resolves the URL to data and to a Component. This component then is responsible for rendering the complete page or finding more data to be included. Include means, the data (in terms of a Java object implementing the Content interface) is given to Sling to resolve the Component to call. At the end of the page rendering process, Sling has just actively resolved the initial data/Component and was involved in further processing but did not control the actuall process. Consider a page containing a page title and a paragraph system, which in turn consists of a series of paragraphs. With Sling, the Component responsible for the page would call include the page title and the paragraph system content. The paragraph system content in turn would include all paragraphs inside the paragraph system without the page component knowing about this at all. > > Obviously, looking for some details. But not such that I'm voting on the answer. I hope, this helps shed some more light on it. Regards Felix