@Documented
@Retention(value=CLASS)
@Target(value=TYPE)
public @interface ConsumerType
A non-binary compatible change to a consumer type normally requires incrementing the major version of the type's package. This change will require all providers and all consumers to be updated to handle the change since consumers implement the consumer type and all providers must understand the change in the consumer type.
A type can be marked ConsumerType or ProviderType but not
both. A type is assumed to be ConsumerType if it is not marked either
ConsumerType or ProviderType.
This annotation is not retained at runtime. It is for use by tools to understand the semantic version of a package. When a bundle implements a consumer type from an imported package, then the bundle's import range for that package must require the exact major version and a minor version greater than or equal to the package's version.