Very interesting initiative Felix! Still, I am wondering why this would not start as a Jackrabbit contrib project, and I don't think I have seen this in the attached proposal.
tia, ./alex -- .w( the_mindstorm )p. On 8/8/07, Felix Meschberger <[EMAIL PROTECTED]> wrote: > Hi all, > > I would like to propose a new Apache project named Sling. The proposal > text is attached to this message and can also be found at [1]. > > More information on Sling may be found in the Jackrabbit Wiki at [2]. > > I would like to have the discussion on this proposal to go on in > parallel in the Jackrabbit Developers and Incubator General mailing > lists to gather as much feedback as possible. The vote for submission of > the project will be held on the Jackrabbit Developers list. > > Of course we still welcome people willing to contribute to Sling or > merely serve as additional mentors. > > Regards > Felix > > [1] http://wiki.apache.org/jackrabbit/SlingProposal > [2] http://wiki.apache.org/jackrabbit/ApacheSling > > > Sling Proposal > ============== > > This is a draft version of a proposal to take the ApacheSling to the > Apache Incubator with a goal of becoming an Apache Jackrabbit > subproject. Discuss this proposal on the Jackrabbit Dev List. See the > proposal guide for a description of the expected proposal content. > > > Abstract > Sling is a framework to develop content centric web applications based > on the idea of modularizing the rendering of HTTP resources. > > > 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 JSR 170 API such as 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. > > 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. > > Content Repository: > Leading the Java Content Repository (JCR) initiative a new > request processing engine must natively support JCR (e.g. Apache > Jackrabbit) as the store for its content. > > > By leveraging the 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 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 > 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 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 > 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. > > 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 > Establish Sling as the content centric web application framework for JCR > repositories. As such, it is intended for Sling to mature into a > subproject of Apache Jackrabbit. > > > Current Status > Meritocracy > We plan to do everything possible to encourage an environment that > supports a meritocracy. > > > Community > By proposing this project to the Incubator for inclusion as subproject > of Apache Jackrabbit we hope grow Sling into first class web application > framework which leverages the know-how of the Apache community. > > > Core Developers > The project was founded be Felix Meschberger in late 2006 at Day. > Currently only Day employees work on this project, though this will > change as soon as we get a chance to invite more people to join this > effort. In fact the initial committer list already contains several > people not related to Day. > > > Alignment > Sling is targeted to be deployed into any compliant OSGi framework. To > support HTTP requests Sling interoperates with the OSGi HttpService. > This allows deployment of the framework inside a Servlet API compliant > servlet container given appropriate bridging or the framework may be run > as a standalone application, where an implementation of the OSGi > HttpService handling the HTTP requests is deployed. > > To access content addressed by URLs, Sling depends on any compliant > implementation of the JCR API, such as Jackrabbit, plus the Jackrabbit > Object Content Mapping. > > > Known Risks > Orphaned products > This is an active project within Day Software and will be the basis of > ongoing work of Day's own content management products, such as Digital > Asset Manager. In addition, it is foreseen, that Web services of > Jackrabbit may be ported to Sling. > > > Inexperience with Open Source > All committers have experience working on open source projects and > several are veterans at Apache. > > > Homogenous Developers > Sling is currently being developed only by Day employees, but we hope > that the framework will attract interest from other individuals and > companies. > > > Reliance on Salaried Developers > Most of the developers are paid by their employer to contribute to this > project, but given the anticipation from the Java community for Sling > the committers' sense of ownership for the code, the project would > continue without issue if no salaried developers contributed to the > project. > > > Relationships with Other Apache Products > * Apache Jackrabbit > * Apache Felix > > A Excessive Fascination with the Apache Brand > Day actively contributes to Apache Jackrabbit and other Apache projects, > and the individuals behind the Sling project feel that an Apache > community would be the best environment for the codebase to grow and > attract new users and contributors. > > > Documentation > Initial Documentation is made available on the Jackrabbit Wiki pages at > ApacheSling. > > > Initial Source > Currently Sling is a closed source project. For this reason the source > can only be opened upon the acceptance of the project as an Apache > Incubator project by the IPMC. Upon the acceptance of the project and > submission of the Software Grant by Day, the source code will be > committed to the Apache SVN repository. > > > Source and Intellectual Property Submission Plan > The code base will be licensed to the ASF using a software grant from > Day, allowing Apache to relicense as pure Apache License 2.0 code. > > > External Dependencies > Besides depending on two Apache projects, namely Jackrabbit and Felix, > Sling depends on the OSGi API libraries, which are made available as > part of the Apache Felix project under the Apache License 2.0. > > > Cryptography > * none > > Required Resources > > Mailing lists > * sling-dev at incubator.apache dot org > * sling-commits at incubator dot apache dot org > * sling-private at incubator dot apache dot org > > Subversion Directory > * https://svn.apache.org/repos/asf/incubator/sling > > Issue Tracking > * JIRA Sling (SLING) > > 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. > > Other Resources > * none > > Initial Committers > * 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) > * Juan José Vázquez Delgado (juanjo dot vazquez at gmail dot com) > * ... More to be invited ... > > Affiliations > Of the committers Felix, Carsten and Bertrand are tasked by Day to work > on Sling. All of them have a professional as well as an personal > interest to further develop this project. Neither of the other initial > committers is affiliated with Day in any way. > > > Sponsors > > Champion > * Jukka Zitting (jukka at apache dot org) > > Nominated Mentors > * Jukka Zitting (jukka at apache dot org) > > Sponsoring Entity > * Apache Jackrabbit PMC (vote needed) > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]