IMHO it is the other way around: If only few/one bundle are supposed to implement the interface rather annotate with ProviderType (compare with https://osgi.org/javadoc/osgi.annotation/7.0.0/org/osgi/annotation/versioning/ProviderType.html <https://osgi.org/javadoc/osgi.annotation/7.0.0/org/osgi/annotation/versioning/ProviderType.html> and https://github.com/apache/sling-org-apache-sling-contentparser-api/blob/master/src/main/java/org/apache/sling/contentparser/api/ParserHelper.java <https://github.com/apache/sling-org-apache-sling-contentparser-api/blob/master/src/main/java/org/apache/sling/contentparser/api/ParserHelper.java>). But I don't think it does matter for final classes as you anyhow cannot extend/implement them! Konrad
> On 24. Jul 2019, at 18:40, Radu Cotescu <r...@apache.org> wrote: > > Hi Stefan, > >> On 24 Jul 2019, at 18:29, Stefan Seifert <sseif...@pro-vision.de> wrote: >> >> p.s. i think the annotation in [1] should be @ProviderType, not >> @ConsumerType - but i think this can be changed in future releases without >> breaking anything. >> [1] >> https://github.com/apache/sling-org-apache-sling-contentparser-api/blob/master/src/main/java/org/apache/sling/contentparser/api/ParserHelper.java >> >> <https://github.com/apache/sling-org-apache-sling-contentparser-api/blob/master/src/main/java/org/apache/sling/contentparser/api/ParserHelper.java> > The class is not supposed to be implemented, so IMO this is a Consumer, > right? The ConsumerType is actually the default assumed by most OSGi plugins > if I remember correctly, so annotating this final class with ConsumerType was > just a pedantic move on my part. > > Cheers, > Radu