Jakarta main

Avalon main

About


Released Components


Components under Development


Avalon Excalibur

Avalon Excalibur



Source Resolving

A very common problem is resolving a source, which means finding a source using a URI.

The source resolver of Avalon Excalibur is a component helping you in this task. It resolves sources from a given URI. The URI can use all available protocols of the JDK. In addition own protocols can be plugged-in.

The architecture of this package is simple but powerful. The main component is the SourceResolver. It is used to resolve any URI. If the SourceResolver can resolve the protocol of the URI it returns a Source object. This Source object is an abstraction of the underlying resource. This resource can be accessed by a provided InputStream.

Own protocols can be configured using the SourceFactory interface. Whenever the SourceResolver finds a protocol which it can't handle by itself, it gets a role selector for a SourceFactory and tries to get a component with the role name of the protocol. If such a factory exists, the source creation is passed on to this factory.

The Source object is handled similar to any other Avalon component. After it has been used it must be released using SourceResolver. In addition the implementation of the Source object can implement any of the lifecycle interfaces of usual components and it gets all the information from the SourceResolver.

The Source object is a lightwight object which can be extended with several interface. For example the XMLizable interface from the XML package to generate SAX events from the Source. Or the Monitorable interface from the monitor package to monitor the resource.

For caching purposes the Source object offers a SourceValidity object which can be used in addition to the system ID of the Source to verify if the cache contains a valid version of the Source object.




Copyright ©1999-2001 by the Apache Software Foundation. All Rights Reserved.