[ 
https://issues.apache.org/jira/browse/SLING-2624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13481313#comment-13481313
 ] 

Carsten Ziegeler commented on SLING-2624:
-----------------------------------------

Hi Chetan,

could you please provide an svn based patch?

Thanks
                
> Improving Jackrabbit integration with OSGi Service Registry
> -----------------------------------------------------------
>
>                 Key: SLING-2624
>                 URL: https://issues.apache.org/jira/browse/SLING-2624
>             Project: Sling
>          Issue Type: New Feature
>          Components: JCR
>            Reporter: Chetan Mehrotra
>         Attachments: SLING-2624-initial-proposal.diff
>
>
> Current Sling integration with Jackrabbit (JR) allows for simpler access to 
> Repository services from other bundles via the OSGi Service Registry (SR). 
> However to make use of OSGi services within JR is tricky. Some integration is 
> done wrt security but for other areas one needs to use fragments.
> To simplify such integration recently a new feature was added to JR 
> (JCR-3420) [1] which allows for registering a custom BeanFactory with JR. 
> This would allow usage of services from service registry within JR. Refer to 
> Mail thread [5] for relevant discussion
> Feature Details
> ===============
> This feature builds up on the new module org.apache.sling.jcr.jackrabbit.base 
> proposed with SLING-2623.
> OsgiBeanFactory
> ---------------
> This is an implementation for the JR BeanFactory extension and acts as a 
> bridge between OSGi and JR. It uses a custom BeanConfigVisitor to collect all 
> the dependency information i.e. details about services which need to be 
> pulled from SR. Then it uses a ServiceTracker to track avialability of all 
> such services. Once all the required dependencies are found it registers 
> itself with SR.
> Once it is registered the SlingServerRepository can start
> * Note - This feature has not much dependency on SLING-2623. Just that git 
> fork is based on the base of SLING-2623
> SlingServerRepository Integration
> ---------------------------------
> OsgiBeanFactory needs to know the repository configuration which would be 
> used to create the repository. Current fork impl uses one way to determine 
> the config (which would need to be revisited). Further SlingServerRepository 
> now has a reference for BeanFactory and would only be activated upon 
> registration of BeanFactory
> Note - The current SlingServerRepository is configured as component factory 
> which would require a 1..1 mapping to BeanFactory. Such mapping is bit tricky 
> to achieve. However in most cases a Sling server has only one 
> SlingServerRepository. So the proposed approach *assumes* that there is a 
> single repository instance configured
> Sample Usage
> ============
> To demonstrate the use of such a feature I took the usecase of externalizing 
> the AuthorizableAction [2] in Sling env. So it should be possible to use an 
> OSGi service which implements the AuthorizableAction within JR. An 
> implementation of that is available at [4]. In the JR repository.xml we would 
> have an entry like show below
> <AuthorizableAction 
> class="org.apache.jackrabbit.core.security.user.action.AuthorizableAction" />
> Then the OSGiBeanFactory would obtain the instance of AuthorizableAction from 
> Service Registry and provide that to JR. Now any bundle can register an 
> instance of AuthorizableAction with SR and it would be invoked for various 
> callbacks from JR UserManager!!
> Note about patch
> ===============
> The patch builds up on the SLING-2623 fork. Once we have consensus upon the 
> approach I can extract relevant parts and propose a new patch
> [1] https://issues.apache.org/jira/browse/JCR-3420
> [2]
> http://jackrabbit.apache.org/api/2.4/org/apache/jackrabbit/core/security/user/action/AuthorizableAction.html
> [3] https://github.com/chetanmeh/sling/compare/osgi-factory4
> [4] 
> https://github.com/chetanmeh/sling/compare/chetanmeh:jaas-osgi-adv...chetanmeh:osgi-factory4
> [5] http://markmail.org/thread/3nnkygzef5dvzxod

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to