Excalibur

Overview

The Excalibur Project contains a set of utilitiy projects used in the development of container facilities and as underlying system for cause-grain components such as the Cornerstone suite.

Index

Package Description
Configuration

The Configuration package contains extensions to the Avalon Framework supporting configuration management.

Datasource

Avalon Excalibur's DataSource package in org.apache.avalon.excalibur.datasource allows you to manage pooled connections in one of two ways. You can have the package handle it for you, or you can use a J2EE server's DataSource management. It provides the same kind of access regardless of which method you choose--since they are obtained through Avalon's Component Manager infrastructure.

Event

This is the Excalibur Event package which includes event queues, asynchronous command processing, and the interfaces to support event based programming. Event is heavily influenced by Matt Welsh's work with the SEDA architecture . We forked the portion of his SandStorm server that had to do with event processing. From there we cleaned up the API and made it as generic as we could.

i18n

Excalibur's Internationalization package is found in org.apache.avalon.excalibur.i18n . Avalon Excalibur includes a method of managing resources, and an interface for specifying the resource. Support for XML resource bundles are still under development.

Instrumentation

Excalibur Instrument is an instrumentation utility that allows you to attach a separate JVM to your running application to determine its health. Instrumentation is the process of exposing the internal state in a way that is easy for an administrator or help desk personell to digest. Excalibur Instrumentation is such a package that you can use for your Avalon based projects.

Lifecycle

The Lifecycle package contains a set of interfaces and classes supporting portable lifecycle extensions.

Contributions to this project are based on co-development actives by container projects aiming towards cross-container component portability and consistent service management.

Logger

Find Avalon Excalibur's Log Management System in the org.apache.avalon.excalibur.logger package. Excalibur-Logger integrates neatly into the Avalon ECM and Fortress. The main goal is to be able to define the log categories on a component basis by specifying a 'logger' attribute which denotes the log category to use for a particular component (given the component is LogEnabled or Loggable ).

Monitor

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.

Pool

Find Avalon Excalibur's Pool implementations in the org.apache.avalon.excalibur.pool package. There are many implementations that are ThreadSafe, and one that is not. You have the option of not limiting used resources at all, or limiting the used resources based on specific rules.

Sourceresolver

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.

Store

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.

Thread PENDING
XMLUtil

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.

Depricated

Package Description
Compatability

Avalon is minimizing the number of projects and utilities it maintains because we need to focus on our charter. However, we do have users who have used some of the projects that were previously released. We can't just ignore their needs. The compatibility project is the graveyard for projects we are no longer supporting. It exists simply to let our users (and in some cases, our users' users) continue to use their legacy components until they migrate to better supported libraries.

Component

Due to a number of issues in ECM, not the least of which is a simplistic and convoluted design, it has been deprecated in favor of Fortress or Merlin. Fortress has been designed with ECM users in mind, so it provides a number of goodies to make it easier to migrate forward. This project will be maintained for bug fixes only.