Avalon Framework - Containers

Introduction

There are various containers that are aware of the Avalon Framework interfaces. This is a sort-of comprehensive list.

Standalone Containers

These typically run from the command line and are launched via a legacy main() method.

Avalon Phoenix

This is a sister project to Avalon Framework. It provides an environment for launching multiple, isolated, more or less unrestricted server applications as hosted components. These can be applications like a web server, RDBMS or EJB server. It provides many advanced features like automatic management, at the cost of a bit of complexity. See Phoenix.

Phoenix is the oldest of the Avalon Containers; it is probably the most powerful and most widely used. While still in alpha, this hints at the fact that we find it to be not completely future complete, rather than an infantile project.

Avalon Excalibur's Tweety

Tweety is almost the opposite of Phoenix. It is a recent development and written exclusively as a teaching tool. It has no features whatsoever besides basic support for the Avalon lifecycle. This results in a complete distribution the size of the Phoenix bootstrapper. See Tweety

Myrmidon

Myrmidon is a proposal for the kernel of Apache Ant 2. See Myrmidon

Embedded Containers

These run inside another application (like a servlet engine) and are controlled by it.

Excalibur Component Manager

This is used by various applications like Cocoon. Cocoon is run inside the Sun specified servlet context of a web-app. It is designed for such servlet-context reuse. ECM is the most stable of the containers (it is the only one with a stable release); it is also arguably the worst design. See ECM.

Fortress

Fortress is meant as a future replacement of ECM. It fixes several of ECMs flaws like a mixup of concerns. It is built to be very extensible, and it includes support for custom lifecycle extensions. Fortress is still pre-alpha. See Fortress.

Merlin

Another recent development is Merlin, which has a client API very similar to Phoenix (applications that can run within phoenix can run within merlin as well). Merlin is still pre-alpha.

See Merlin.

Plexus

Plexus is a container under development that will become the basis of the services framework for a sister project to Avalon, Turbine.

See Plexus.

Note
Plexus is being developed outside of Avalon itself as an external project.

Enterprise Object Broker (EOB)

The reference implementation of this EJB-replacement container runs on top of Phoenix. EOB supports a subset of the Avalon Framework interfaces but allows RPC publishing of arbitary interfaces apparent in a hosted components object model.

See EOB.

Note
EOB is an being developed outside of Avalon itself as an external project.
by Paul Hammant, Leo Simons