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