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

Felix Meschberger commented on SLING-2993:
------------------------------------------

In addition, the parent POM must refer to version 2.4.0 of the bundle plugin, 
because support for this functionality requires a 2.x version of the BND 
library.
                
> Properly tag and annotate interfaces and classes
> ------------------------------------------------
>
>                 Key: SLING-2993
>                 URL: https://issues.apache.org/jira/browse/SLING-2993
>             Project: Sling
>          Issue Type: Task
>          Components: API
>    Affects Versions: API 2.4.2
>            Reporter: Felix Meschberger
>         Attachments: SLING-2993.patch
>
>
> The interfaces and classes in the Sling API bundle are not currently properly 
> documented as to who is intended to implement or extend these. In the 
> interest of stable extensibility, the types should be marked as follows:
>   * Exceptions: Nothing to mark. These are concrete classes intended for 
> extension
>   * Abstract Classes: Annotate with @ConsumerType. These are intended for 
> extension.
>   * Helper/Util/Constant Classes: Mark final because there is no use 
> extending them.
>   * Interfaces: For each interface decide whether they are implemented by a 
> single service (e.g. ResourceResovlerFactory) or by multiple service 
> providers (e.g. ResourceProvider).
> Technically the @ConsumerType annotation is not required because it is the 
> default. Yet, I think we should mark all non-@ProviderType types with 
> @ConsumerType to clarify the distinction.
> Will attach a proposed patch to this issue.

--
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