I'm trying to wrap my head around these two annotations and I'm struggling a 
bit. Is the perspective of the provider and consumer roles from a bundle 
perspective or an application perspective?
I've read the Semantic Versioning whitepaper a number of times and it doesn't 
really clear things up for me definitely.

If an application has an API bundle that only exposes Interfaces and Abstract 
classes, and those interfaces are implemented by other bundles in the app, are 
those bundles providers or consumers? My inclination is that they're providers 
but then when does a bundle become a consumer?  Given that API bundles are 
compile only (this is the rule right?), would a good rule be that if you 
implement the interface and export the package it's in, that type would be 
@ProviderType, if you don't implement it it's @ConsumeType?

It would seem to me that @ProviderType would be the default using this logic, 
as opposed to @ConsumerType, which leads me to believe that I'm thinking about 
this wrong.

Any help appreciated as always.

Regards,

Scott Leschke
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to