Hi all,

Right now we have a number of JCR related bundles in Sling. With the JCR
API 2.0 now public and Jackrabbit runnuning towards its first 2.0
release providing full JCR API 2.0 support, I wonder where we would be
heading with these bundles....

I would like to hear your opinions how to handle the Jackrabbit based
bundles in the future.

I would think some bundles belong to Sling (e.g. the compiler or prefs
bundles). Some bundles would rather belong to the Jackrabbit project.
But then I am not sure about some bundles ....

Here are the bundles I am talking about

   bundles/jcr/api
         Provides the SlingRepository iterface. This bundle just
         depends on JCR and has no Jackrabbit dependencies.
     --> Keep it here

   bundles/jcr/base
         Provides an abstract base implementation of the SlingRepository
         interface and has Jackrabbit dependencies.
     --> Investigate separation of Jackrabbit specific and generic
         JCR parts and split the bundle in two: The Jackrabbit part goes
         to Jackrabbit, the JCR-only part remains here

   bundles/jcr/classloader
         Depends on the Jackrabbit JCR Classloader but extends it for
         some Sling specific parts.
     --> Keep it here

   bundles/jcr/contentloader
         Initial Content Loader, currently has dependency on Jackrabbit
         API for ACL stuff. For JCR 2.0 this will be converted into a
         pure JCR 2.0 dependency, hence be completely independent of
         Jackrabbit
     --> Keep it or offer to Jackrabbit ?

   bundles/jcr/jackrabbit-accessmanager
         Access Control Management servlets leveraging Sling
         functionality.
     --> Keep it here

   bundles/jcr/jackrabbit-server
         Embedded Jackrabbit Repository providing Service API to plugin
         LoginModules as OSGi services.
     --> Offer to Jackrabbit

   bundles/jcr/jackrabbit-usermanager
         User Manager for Jackrabbit (might be converted into a generic
         JCR 2.0 user manager ?) leveraging Sling functionality.
     --> Keep it here

   bundles/jcr/ocm
         OSGi bundle with Jackrabbit-OCM providing a Sling
         AdapterFactory for resources. Plugs heavily into Sling.
     --> Keep it here or offer to Jackrabbit ?

   bundles/jcr/resource
         JCRResourceResolver
     --> We keep this ;-)

   bundles/jcr/webdav
         (Simple) WebDAV servlet(s)
     --> Offer to Jackrabbit

   contrib/jcr/compiler
         Compiles Java Classes into the Repository. This is part of
         Sling.
     --> Keep it here

   contrib/jcr/jackrabbit-api
         Old OSGi bundle wrapping of Jackrabbit API. This is not used
         any longer, since Jackrabbit already provides OSGi bundles of
         some libraries, including the Jackrabbit API
     --> Deprecate and remove sometime in the future (move to "attic"?)

   contrib/jcr/jackrabbit-client
         Provides access to non-embedded repositories, mostly Jackrabbit
         oriented.
     --> Offer to Jackrabbit

   contrib/jcr/prefs
         JCR bindings for the Apache Felix OSGi Preferences Service
         implementation.
     --> Keep it here


I have inlined my opinions with respect to each bundle (marked with -->).

Please comment. Thanks alot.

Regards
Felix

Reply via email to