2010/12/15 - Apache Excalibur has been retired.

For more information, please explore the Attic.

What is excalibur?

Excalibur is an open source software project of The Apache Software Foundation. Our primary product is a lightweight, embeddable Inversion of Controlcontainer named Fortress that is written in java.

Inversion of control, also known as the hollywood principle ("don't call us, we'll call you"), is a simple but powerful concept. The idea is that we don't "wire up" all the pieces that make up an application (the "components") by writing lots of this-component-uses-that-one-like-so code, nor do we use some kind of lookup directory (like JNDI, for example) where each component decides what components to interact with itself. Instead, we instruct a smart piece of software, the container, to tell the components how to interact.

Fortress (and also its predecessor, "ECM") is such a container. It is lightweight, by which we mean that it doesn't need a lot of resources, take a lot of disk or memory, or impose all sorts of demands on its environment. Fortress is also embeddable, by which we mean that you can use fortress inside just about every java environment. More concretely, you can use it as the basis of a large standalone development platform (like the Keel project), at the core of a servlet-based web application (like Cocoon) or even as the basis of a GUI application (like GuiApp).

Fortress knows how to manage components that have been developed using a rigid lifecycle contract called Avalon-Framework. In the next upcoming release, fortress will also be able to manage ordinary javabeans, and support for other kinds of Inversion of Control are planned.

Besides providing fortress, excalibur also provides a small library of very useful components. We also distribute some of the libraries used to build fortress (and some other containers) seperately. This selection of libraries is called containerkit.

So why is excalibur an interesting project?

Here's a few partial answers.

good code. Code that comes from the mature avalon project (everything that used to be branded as "Avalon Excalibur" and "Avalon Fortress"). This includes two lightweight Inversion of Control containers. One of these powers, among other things, Cocoon. The other ("fortress") is the basis of projects like Keel. Excalibur also includes powerful and mature reusable "components" and "libraries", handling tasks ranging from thread management to component pooling to (URI-and-similar-) source resolving.

smart developers. See this list.

Most of these people are or have been active in the avalon project in various roles. Several of them are apache members. Together they have loads and loads experience under their belts related to inversion of control development. In fact, I'm confident to say this list includes some of the biggest experts on inversion-of-control-style container development.

exciting community. Several open source and commercial projects (both at apache and elsewhere) depend on and contribute to the excalibur project. A strong team of enthousiastic developers (with strong ties to several other projects in the same problem domain) has various big and small plans with excalibur. One of the leading open source organisations in the world, The Apache Software Foundation, is hosting the project, providing insight, advice, infrastructure, legal backing, a time- and battle-proven development process, and much more.