cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Berin Loritsch <>
Subject Re: Cocoon and upgrading to Fortress
Date Fri, 13 Jun 2003 12:30:59 GMT
Geoff Howard wrote:
> At 02:31 AM 6/13/2003, you wrote:
>> Berin Loritsch wrote_
>> >
>> > Fortress allows us to do a number of really cool things that are
>> > not available in the ECM.  One of them is to no longer require the
>> > accursed "Roles" file.  Adding new user components to Cocoon and
>> > having the configuration able to use those components directly
>> > is just as simple as including the new JAR in the classpath.
>> >
>> > Startup times can be optimized as much as possible either by using
>> > asyncronous component startup or by using request based startup.
>> > To top it off, you also have early warning in case there is some
>> > circular component dependency.
>> >
>> Sounds great!
> I am not terribly deep on the avalon or ECM stuff now, so excuse my
> possibly ignorant questions:
> - Does Fortress have to search every class in the classpath to find
> "components" that it may have to fire life cycle events for at
> startup?

No.  It limits it to classes specified in the configuration file.
It finds out about the components through meta data in predefined
locations--but it doesn't have to read it in until the info is

> - I thought I heard that the Component interface is now deprecated -
> does this mean that it also has to search each of those classes for
> any of the interfaces which may make it a de facto Component?

Fortress provides a proxy implementation so that all components will
now implement Component to work with legacy systems (i.e. components
still using ComponentManager instead of ServiceManager).  You can use
the BCEL generated proxy (still making it more robust) or JDK 1.3
dynamic proxies.  Dynamic proxies are 5 times slower than BCEL generated
ones.  Neither are so slow as to be unusable.

There is an option to use no proxy class, in which case you are on
your own as far as security and ensuring all your components can
work with each other.

> - What is Merlin in comparison to Fortress?  IIRC I have seen proposals
> to move to this in the past. (I have the feeling I am stepping into
> something on this one - I am truly ignorant).

There are a couple things to consider:

1) Fortress is released, and it was designed to help people migrate
    from ECM based solutions.

2) Fortress allows you to slowly migrate to solutions where you have
    default components--which means you can bypass the ServiceSelector
    step if you only use one DataSourceComponent.  Fortress will make
    sure that components designed for both situations will continue
    to work.

3) Merlin is not released yet--it is fully functional, and there is
    alot to like about it, but it is not officially supported yet.

4) Merlin was not designed to help people migrate from ECM based
    systems like Cocoon.  You can consider Fortress to be a stepping
    stone towards a more compatible future.

I am not dogging Merlin.  I am saying that jumping directly to
Merlin from ECM is going to be a major culture shock--something
that can be avoided.

View raw message