Avalon, an Apache project to build a framework for object-oriented, component-based programming, has been shut down, forking off into several separate open source efforts, an official of the Apache Software Foundation has confirmed.

The Avalon effort was intended to produce an Inversion of Control (IoC) framework for container programming, with the container controlling components that pass lifecycle and dependency functions between each other. Initially focused on Java, the project eventually added C# as a target platform, according to Aaron Farr, who was chairman of the Apache Avalon project committee and now is on the Apache Excalibur project management committee. Excalibur has emerged as one offshoot of Avalon.

Avalon was formally dissolved in November after parallel development projects had emerged within it, Farr said. "Basically, there had been disagreements about the direction the project should take," he said.

"We eventually decided rather than waste resources on infighting, there was more than enough space for the projects to exist within their own project spaces," Farr said.

Projects have been set up as follows:


  • Excalibur, serving as a container that can be embedded inside an application. It is the only Avalon-based effort remaining in Apache.
  • Castle, which is intended as a C#-based IoC framework and container. It has become a SourceForge project
  • Metro, serving as an alternative to the J2EE platform. Formerly known as Merlin, it is the largest container project emerging from Avalon. Overseeing this project is DPML (Digital Project Meta Library), an organization started by former Avalon developers.
  • Loom, previously known as Phoenix, serving as a microkernel container and now under the jurisdiction of the Codehaus open source concern.
  • Begun in 1999 as the Java Apache Server Framework, Avalon itself had separated from the Apache Jakarta Project in late 2002. In addition to providing Java software for component and container programming, Avalon pioneered the use of design patterns such Separat ion of Concerns (SoC), according to Apache. SoC is a concept in which each component of an application performs a specific job or has a specified area of concern, Farr said. SoC is related to aspect-oriented programming, said Farr.