@ConsumerType public interface ResourceAnalyzer
A resource analyzer is responsible for analyzing a resource for some specific purpose, and discovering requirements and capabilities that may not be discovered by the basic Bundle Analyzer.
Clients may implement this interface and register instances as services.
Modifier and Type | Method and Description |
---|---|
void |
analyzeResource(Jar jar,
ResourceBuilder rb)
This method is invoked for each resource that the analyzer is requested
to analyze.
|
void analyzeResource(Jar jar, ResourceBuilder rb) throws Exception
This method is invoked for each resource that the analyzer is requested to analyze. Implementations add zero or more capabilities and/or requirements to the supplied lists.
Analyzers may examine the lists of already-discovered requirements and capabilities; for example they may wish to add a certain capability if (and only if) it has not already been added.
However, analyzers should not rely on being invoked in any particular order, i.e. either before or after any other analyzer.
Analyzers MUST NOT attempt to remove or replace any capability or
requirement from the supplied list. Clients of this method may enforce
this by passing List implementations that throw
UnsupportedOperationException
upon any attempt to call
List#remove(int)
, etc.
resource
- The current resource.capabilities
- The list of capabilities.requirements
- The list of requirements.Exception
- If something goes wrong. The error will be logged to the OSGi
Log Service (if available) and the next ResourceAnalyzer (if
any) will be asked to analyze the resource.Copyright © 2015 aQute SARL. All rights reserved.