All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.osgi.service.indexer.ResourceAnalyzer Maven / Gradle / Ivy

package org.osgi.service.indexer;

import java.util.List;

import org.osgi.annotation.versioning.ConsumerType;

/**
 * 

* 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 */ @ConsumerType public interface ResourceAnalyzer { /** * The service property used to declare a resource filter, so that the * analyzer is only invoked on a subset of resources. Example: * (&(|(name=foo.jar)(name=*.ear))(lastmodified>=1262217600753)) */ static final String FILTER = "filter"; /** *

* 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 * {@link UnsupportedOperationException} upon any attempt to call * {@link List#remove(int)}, etc. *

* * @param resource The current resource. * @param capabilities The list of capabilities. * @param 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. */ void analyzeResource(Resource resource, List capabilities, List requirements) throws Exception; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy