Skip navigation links
Data In Motion Consuling GmbH

Package aQute.bnd.annotation.headers

This package contains a number of annotations that create or append headers in the manifest.

See: Description

Package aQute.bnd.annotation.headers Description

This package contains a number of annotations that create or append headers in the manifest. These annotations simplify maintaining these headers: The annotations provide the following features:

Macros

Any strings in the annotations are run through the bnd preprocessor and can therefore use any of the myriad of bnd macros (except system commands, for obvious reason they are excluded). As a convenience, a number of local macros are set from the context:

Coloring

Annotations can only be applied once, making it impossible to add for example two Provide-Capability headers on the same type. It also would become unreadable quickly. The advised way to use most of these annotation headers is therefore through 'annotation coloring'. These header annotations should be applied to custom annotations that represents the 'thing'. This is clearly represented in the BundleLicense custom annotations like for example the ASL_2_0 annotation. This annotation can be applied to any type and will automatically then create the appropriate clauses.

For example:

 public class Webserver {
   @RequireCapability(ns="osgi.extender", name="webserver", version="${@version}")
   @interface Require {}
   @ProvideCapability(ns="osgi.extender", filter="(&(osgi.extender=webserver)${@frange;${@version}}))")
   @interface Provide {}
   ...
 }
 
This resource can now be stored in a library to be used by others. If a component now wants to depend this resource, it can declare its component as follows:
 @Webserver.Require
 public class MyResource {
   ...
 }
 
Skip navigation links
https://gitlab.com/gecko.io/geckoEMF

Data In Motion Consuling GmbH - All rights reserved