Colossus is a branch in XBean to explore very flexible server architectures. Specifically, the branch is focusing on simplifying server bootstrap, directory structure, class loaders, plugins, and modularity.

This project started in early July 2006 and after a few false starts, the following plan developed:

Phase 1: Bootstrap

A new bootstrap system is needed which can cleanly launch a vm without needing any command line class path or manifest class path entries. Instead it will use some properties files, ant style globing and some finder code to build the initial class loader and locate the real main class. The key is that the bootstrap system does not pollute the system class path or system properties so the main running system doesn't know how it was launched.

Phase 2: IoC Services

Before any more work can be done we will need a large diverse set of services and a lot of the services used in Geronimo are not easily usable by a standard IoC framework such as Spring. ActiveMQ, XFire, Service Mix and Jetty 6 are already spring friendly, so the mainly leaves geronimo-transaction, geronimo-connector, geronimo-security and OpenEJB 3. At the end of this phase, we should have one single large file spring.xml file with one class loader.

Phase 3: Colossus Explore

This is when the fun begins. There are many ideas on the table about how do divide up configurations into modules, class loaders, plugins and basic stuff like how to layout the directory structure. The architecture of XBean can and will support many competing ideas since there the base server is used in many different environemnts. The following ideas are being explored:

Tomcat Style Layout
Class Loader
Dot File Layout

Phase 4: Merge

Assuming we make it this far, we work on merging the most popular ideas and code into the main trunk.