Felix Meschberger created SLING-2993:
----------------------------------------
Summary: 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
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