+1

Regards,
Amit

-----Original Message-----
From: Felix Meschberger [mailto:fmesc...@adobe.com] 
Sent: 05 August 2013 20:35
To: dev@sling.apache.org
Subject: [DISCUSS] Consider implementors of Sling API

Hi all

While working on SLING-2944 [1] it occurred to me that we do not currently take 
good care to differentiate between interfaces to be implemented by a single 
bundle (such as SlingHttpServletRequest) and interfaces which may be 
implemented by multiple bundles to extend some functionality (such as 
ResourceProvider).

Also, we have a number of constant, helper, and utility type classes in the 
Sling API, which we should not make available to extensibility.

I have created SLING-2993 [2] and provided a patch to the Sling API such that:

* All classes intended for extension remain unchanged 
* All classes not intended for extension are marked final 
* All interfaces intended to be implemented by multiple bundles (providers) are 
marked @ConsumerType 
* All interfaces intended to be implemented by a single bundle are marked as 
@ProviderType

This change also requires to update the Maven Bundle Plugin version in the 
Sling parent POM to 2.4.0.

This change would prevent us from collateral damage such in the context of 
SLING-2944 where the Servlet Resolver, Filesystem Resource Provider, and Bundle 
Resource Provider bundles have to be updated just because the 
ResourceResolverFactory API has been extended.

WDYT ?

Regards
Felix

[1] https://issues.apache.org/jira/browse/SLING-2944
[2] https://issues.apache.org/jira/browse/SLING-2993

Reply via email to