[
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