General Avalon Container FAQ

What is the responsibility of the container?

What is the relationship to the service manager?

If the service manager controls the lifecycle of its services, what dictates when those events are called? I didn't see any lifecycle events on the service manager itself, so when are stop(), suspend(), ect being called?

Also, is the service manager the main access point into the avalon framework by the rest of the application?

Are components and services treated differently internally by the service manager? If not, why the distinction?

I've looked at excalibur, phoenix, and merlin, and it gets a little confusing about the relationships and responsibilities of components, services, service managers, component managers, containers, container managers, etc.

The service manager would know how to gracefully shutdown every service it manages. Is that close to being accurate?

What is Phoenix, Merlin and Fortress, are they essentially the same, are they all containers?

If so which one should I choose?

If I wrote some kind of network daemon, using TCP/IP connections I could use lots of stuff in excalibur. How can I establish a kind of architecture where some of the classes can be reloaded into the system without stopping the daemon?

which ones (components) can really be used in Fortress, if they were originally written for ECM or Phoenix

which ones are stable - the current package shuffeling and the lack of an documented overview makes it difficult to explain

== Does the one of the containers has any support of transaction management as an EJB Sever offers with JTA/JTS? Is there any support for concurrency available?==

Container Overview

Phoenix

Merlin

Fortress

Tweety

Excalibur Component Manager (ECM)

Plexus

Roadmap

As of November 2003, most development is going into Merlin 3.0 which is targeted as the new 'flagship' Avalon container. However, Phoenix and Fortress are still available, supported and perhaps most importantly, stable.