As part of OAK-1741 I was changing the Version of exported packages to
1.0.0. Looking at the interfaces which are part of exported packages I
do not see usage of ConsumerType/ProviderType annotations [1]

In brief and simple terms the interfaces which are expected to be
implemented by users of Oak api (like
org.apache.jackrabbit.oak.plugins.observation.EventHandler) should be
marked with ConsumerType anotation. This enables bnd tool to generate
package import instructions with stricter range [1.0,1.1)

For all other interface which are supposed to be provided by Oak we
should mark them with ProviderType. This enables bnd to generate the
package import instructions with relaxed range [1.0,2) for our api
consumers. This would help us evolve the api in future easily.

Currently we are having following interfaces as part of exported
packages [2]. Looking at the list I believe most are of ProviderType
i.e. provided by Oak and not required by Oak API users.

Some like org.apache.jackrabbit.oak.plugins.observation.EventHandler
are of ConsumerType as we require the API users to implement them.

Should we add the required annotations for 1.0 release?

If yes then can team members look into the list and set the right type

Chetan Mehrotra
[1] 
https://github.com/osgi/design/raw/master/rfcs/rfc0197/rfc-0197-OSGiPackageTypeAnnotations.pdf

[2] 
https://issues.apache.org/jira/browse/OAK-1741?focusedCommentId=13979465#comment-13979465

Reply via email to