Besides these containers, excalibur also provides several reusable components, all of them written for avalon-framework, and some utility libraries. Some of these components are building blocks for the containers we provide, others can run inside those containers.
Avalon Excalibur's DataSource package in
Avalon Excalibur's resource management code allows you to be notified when a resource has changed. There are two methods of resource management: active and passive. Passive resource management acts as a holder for resources, and after the resource has been modified through it's normal API, notification goes to all listeners. Active resource management does the same, but it also polls the resources periodically to see if the resource was modified through an external method. Active resource management is perfect for monitoring files because they can be modified by external programs, and your program will be notified when the change occurs instead of constantly polling it.
Find Avalon Excalibur's Pool implementations in the
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 JRE. In addition own protocols can be plugged-in. So using the standard protocols like HTTP, FTP or file can be handled in the same way, like dealing with custom, self-build protocols such as myxmldatabase://root/documents/test.xml.
The Store Package provides a way to store named objects without taking care about where and how they are stored. You can choose between different implementations that store the data e.g. in memory or on the file system etc.
Excalibur's XML Utilities provide simplified wrappers for XML parsers, transformers and XPath evaluators. It also provides interfaces and classes useful for constructing a pipeline of XML components by defining interfaces for consuming and producing XML in either SAX or DOM formats.
Please see this page for information on subprojects like Excalibur-Logger and Excalibur-Lifecycle, which are primarily used to build containers.
Please see this page for information on older components that have been deprecated.