[
https://issues.apache.org/jira/browse/SLING-3384?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13896368#comment-13896368
]
Felix Meschberger commented on SLING-3384:
------------------------------------------
First steps in Rev. 1566547:
* Deprecated AbstractSlingRepository and AbstractNamespaceMappingRepository
* Created new AbstractSlingRepositoryManager and NamespaceMappingSupport base
classes. These are used to implement a JCR repository instance manager: A
single JCR repository instance backs subsequent repository services.
* Created a new AbstractSlingRepository2 base class with basic implementations
of all Repository and SlingRepository methods. Extensions of this class
basically just overwrite a single method {{createAdministrativeSession}} but
may, of course, overwrite all methods according to the contracts defined in the
AbstractSlingRepository2 class.
Repository polling and access to external repositories (by way of some URL
properties) as implemented by the AbstractSlingRepository class is not
implemented in the new classes. IMHO such polling and external repository
access is not something that belongs in an abstract base class.
> Simplify AbstractSlingRepository implementation
> -----------------------------------------------
>
> Key: SLING-3384
> URL: https://issues.apache.org/jira/browse/SLING-3384
> Project: Sling
> Issue Type: New Feature
> Components: JCR
> Affects Versions: JCR Jackrabbit Server 2.1.0, JCR Base 2.1.2
> Reporter: Felix Meschberger
> Assignee: Felix Meschberger
>
> With the introduction of the SlingRepository.loginService method the existing
> setup of the AbstractSlingRepository became quite complex in that it hacks in
> a SlingRepository proxy to be able to register the SlingRepository as a
> service and implement the new method.
> An additional problem of the AbstractSlingRepository class is that it expects
> the implementation to be implemented using Declarative Services. While this
> was simple and easy in the beginning it created a runtime dependency which
> does not go well with the OSGi framework.
> So, I propose to create a new couple of (abstract) classes which simplify the
> setup and implementation of SlingRepository services.
> Another "feature" of the original AbstractSlingRepository base class was
> access to "foreign" repositories as well as repository pinging which turns
> out to be functionality not being usefull in an abstract base class. Rather
> this would be something in an actual implementation which knows how to deal
> with such pre-existing "foreign" repository instances.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)