Package net.sf.taverna.raven.spi

Listeners used to bind to a Repository and provide monitoring of that Repository for implementations of a particular Service Provider Interface (SPI).

See:
          Description

Interface Summary
ArtifactFilter Filter a set of Artifact objects according to some criteria
ArtifactFilterListener  
InstanceRegistryListener Implement to be notified of changes to the list of concrete SPI instances maintained by an InstanceRegistry
RegistryListener Implement to listen for cases where an SpiRegistry object is changing, typically due to the runtime deployment of new plugin versions via the Raven repository manager.
 

Class Summary
AbstractArtifactFilter  
InstanceRegistry<IType> Instance registry to sit on top of the SpiRegistry object.
LatestVersionFilter Filters the set of artifacts, removing all but the latest version of each groupId,artifactId pair.
LatestVersionFilterTest  
Profile A Profile in this context is a set of Artifacts that are known to work in conjunction with one another.
ProfileFactory A factory class for getting an instance of the Profile of the Taverna components according to the profile xml at the location defined by the system property taverna.profile.
ProfileFactoryTest  
ProfileTest  
SpiRegistry A typed registry of implementations of a particular Service Provider Interface (SPI).
VersionComparatorTest  
 

Exception Summary
InvalidProfileException Thrown when an attempt is made to construct a Profile from an invalid XML document
 

Package net.sf.taverna.raven.spi Description

Listeners used to bind to a Repository and provide monitoring of that Repository for implementations of a particular Service Provider Interface (SPI). The untyped SpiRegistry class is created with an interface name (i.e. 'org.my.interface') and scans then monitors the Repository, exposing a list of Class objects corresponding to implementations of that named interface. The strongly typed InstanceRegistry can then be used as a listener on top of the SpiRegistry and will track any changes to the list of available Class objects, creating a single instance of each one and notifying any interested parties that this list has changed.

This package also provides two filtering mechanisms which may be inserted into the SpiRegistry - these allow the list of Artifacts in the Repository to be filtered prior to scanning for SPI implementations, the Profile filter is driven off an XML document specifying a list of Artifacts and the LatestVersionFilter, as the name suggests, removes all but the latest version of any given GroupID / ArtifactID pair.