ConsumerType
Date: 2016-06-24

org.osgi.annotation.versioning

## Annotation Type ConsumerType

-     @Documented
      @Retention(value=CLASS)
      @Target(value=TYPE)
      public @interface ConsumerType

  A type implemented by the Consumer Role.

  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.

  See Also:
    Semantic Versioning