Subprojects and components of Apache Excalibur

Archive files and the packages they contain

The archive files (ZIP and tar) can be found on For illustration purposes, we use the source ZIP archives and list what packages they contain.

In some cases the namespace is inconsistent.

There is org.apache.avalon.fortress and org.apache.avalon.excalibur and org.apache.avalon.cornerstone but then there is also org.apache.excalibur.

External distributions that are needed:

Other distributions may be needed as indicated. But if you don't need the particular part of Avalon/Excalibur that requires the distribution, no need to get it.

Avalon Framework

This seems to be the proverbial secret sauce. The Avalon Framework archive files can be found at by selecting any project for download and then moving up, then down the distribution tree.

See for more information.

Note the logging framework, org.apache.avalon.framework.logger. It declares the Logger interface through which a lot of classes of the framework and of Excalibur log. An instance of Logger is handed to a logging object through a call to enableLogging(Logger logger). This is a callback approach to logging: instead of the logging object creating its own Logger it is handed one and calls methods on it.

org.apache.avalon.framework.logger contains connectors to various logging frameworks: Apache Commons Logging, JDK 1.4 logging, Apache Log4J logging and Avalon LogKit logging.

Containers, excalibur-fortress

See and (the 'old' Avalon Wiki) for more info.

Containers, excalibur-component

This is the old "Excalibur Component Manager" (ECM), the ancestor of "Excalibur Fortress". Deprecated!! Use the "Excalibur Fortress" container instead.

Containerkit, excalibur-instrument

This part seems to fulfill a similar role to Sun's JMX (?)

Containerkit, excalibur-lifecycle

See for more. This part seems to fulfill a similar role to Sun's JMX (?)

Containerkit, excalibur-logger

See for more. These are implementations similar to the ones in org.apache.avalon.framework.logger but more complete and extended (?)

Containerkit, excalibur-logkit

This is the 'Avalon Logkit', a possible logging implementation which has itself various possible logging targets.

Components, cornerstone-connection

Utility classes for handling and servicing TCP/IP connections.

Components, cornerstone-datasources

Utility classes for specifying data sources (e.g. JDBC datasources) through XML config files.

Components, cornerstone-scheduler

Utility classes to perform cron-like and periodic scheduling of actions.

Components, cornerstone-sockets

Managing sockets (vanilla TCP sockets and TLS sockets).

Components, cornerstone-store

Repository for serialized objects that can be retrieved by String key.

Components, cornerstone-threads

Manage a set of ThreadPools.

Components, excalibur-datasource

Management of various datasources (JDBC, Informix, J2EE). The testcases are subclassed from org.apache.avalon.excalibur.testcase.ExcaliburTestCase, which is deprecated.

Components, excalibur-event-api

Though indicated on, there are no such archive files. See excalibur-event

Components, excalibur-event

Event though there are 'version 2.1' archives of excalibur-event, the classes therein are deprecated ( and have been replaced by D-Haven Event ( and D-Haven Managed Pool ( Note to site maintainers: the URLs on to the D-Haven projects no longer work.

Components, excalibur-monitor

These classes are used to actively monitor resources for changes.

Components, excalibur-pool

Uses Doug Lea's concurrency classes EDU.oswego.cs.dl.util.concurrent and also deprecated classes from Apache Commons Collections.

Components, excalibur-sourceresolve

A general approach to access data sources by URL. A source may yield an InputStream and a MIME Type and be based on arbitrary implementations. Makes me think of Sun's Java Activation Framework.

Components, excalibur-store

See for more.

The package uses classes from com.coyotegulch.jisp, which no longer exists ( Jisp has been replaced by Itzam/Java (, "A Deliberately Portable Embedded Database Engine".

Components, excalibur-testcase

This package contains ExcaliburTestCase. a subclass of junit.framework.TestCase whose use is deprecated w/o replacement. Test cases found in other packages and archives may be based on ExcaliburTestCase.

Components, excalibur-thread

Components, excalibur-xmlutil

ExcaliburOverview (last edited 2009-09-20 23:25:37 by localhost)