@Retention(value=CLASS) @Target(value={ANNOTATION_TYPE,TYPE}) public @interface RequireCapability
The Bundle’s Require-Capability header
Typically used as a meta-annotation, i.e. an annotation placed on another
annotation, which we will call the user-defined annotation. When the
user-defined annotation is found on a class within the bundle, an entry in
the Require-Capability
header is added. The filter expression of
the requirement may be parameterised with values from the user-defined
annotation. For example, given the following declarations:
@RequireCapability( ns = "com.acme.engine", effective = "active", filter = "(com.acme.engine=${type})") public @interface Engine { String type(); } @Engine(type = "wankel") public class Vehicle { ... }
... the following header will be generated in MANIFEST.MF:
Require-Capability:\ com.acme.engine; \ effective:=active; \ filter:="(com.acme.engine=wankel)",\ ...
About
Modifier and Type | Required Element and Description |
---|---|
String |
ns
The capability namespace.
|
Modifier and Type | Optional Element and Description |
---|---|
String |
effective
Specifies the time a Requirement is considered, either 'resolve'
(default) or another name.
|
String |
extra |
String |
filter
A filter expression that is asserted on the Capabilities belonging to the
given namespace.
|
Resolution |
resolution
A mandatory Requirement forbids the bundle to resolve when the
Requirement is not satisfied; an optional Requirement allows a bundle to
resolve even if the Requirement is not satisfied.
|
String |
value |
public abstract String ns
osgi.contract
.public abstract String value
public abstract String extra
public abstract String effective
public abstract String filter
(&(a=1)(b=2))
matches only a Capability that specifies both attributes at the required
value, not two capabilties that each specify one of the attributes
correctly. A filter is optional, if no filter directive is specified the
Requirement always matches.public abstract Resolution resolution
Copyright © 2021 aQute SARL. All rights reserved.