aQute.bnd.indexer
Interface ResourceAnalyzer

All Known Implementing Classes:
BlueprintAnalyzer, BundleAnalyzer, KnownBundleAnalyzer, OSGiFrameworkAnalyzer, SCRAnalyzer

@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.

Author:
Neil Bartlett

Method Summary
 void analyzeResource(Jar jar, ResourceBuilder rb)
           This method is invoked for each resource that the analyzer is requested to analyze.
 

Method Detail

analyzeResource

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.

Parameters:
resource - The current resource.
capabilities - The list of capabilities.
requirements - The list of requirements.
Throws:
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 © 2014 aQute SARL. All rights reserved.