<randomly-composed-thought-mode-on/>

I've been using Avalon for a whopping 2 weeks. Following are a few of my
experiences and where I feel something might be lacking (maybe I just
haven't found it yet? ;)

I've been toying around with cocoon for a few months now. I decided to
get serious and actually use it for a project. I was poking around in
the docs and ran into a link to Avalon.

I find myself looking at Avalon trying to figure out what in the world
it is. I could tell it was really cool, but it took me nearly a week to
wrap my brain around it and figure out some of the benefits. The docs
are great, although they seem to need a guide as to where to start.

JavaDocs seem to be a bit lacking. I don't mind reading the code to
figure out what something is doing, but for a newbie it can be a bit
overwhelming. At least some stronger class descriptions would help make
sense of it all.

The help available on -dev and -users is great. You guys obviously care
about what the users think and what problems they are encountering. My
major concern here is that *when* Avalon catches on in a big way the
amount of help required will overwhelm the developers. So I'm 100%
behind tons of docs. I especially like the Anti-pattern approach getting
tossed around on -dev.

My first major stumbling block was figuring out how to start using
Avalon. Phoenix, Excalibur, Blocks, Components, Lifecycles, hints,
roles, etc. A glossary and doc on how the subprojects interact would be
useful.

Once I figured out how to hook into Avalon (currently ECM) everything
fell into place. This is the one place where Berin's "Developing with
Avalon" seemed lacking to me. Calling for docs on ECM seems somewhat
silly when it will not be the container of choice, but perhaps a small
code sample addition like:

    private final String SYSTEM_CONF = "./etc/system.xconf";
    private final String SYSTEM_ROLES = "./etc/system.roles.xconf";

    ExcaliburComponentManager manager = new ExcaliburComponentManager();

    public void initialize () throws Exception {
        DefaultConfigurationBuilder builder = new 
                DefaultConfigurationBuilder();
        Configuration sysConfig = builder.buildFromFile(SYSTEM_CONF);
        Configuration roleConfig = builder.build(this.getClass()
                .getClassLoader().getResourceAsStream(SYSTEM_ROLES));

        DefaultRoleManager roles = new DefaultRoleManager();
        roles.setLogger(Hierarchy.getDefaultHierarchy()
                .getLoggerFor("document.roles"));
        roles.configure(roleConfig);

        this.manager.setLogger(Hierarchy.getDefaultHierarchy()
                .getLoggerFor("guardian"));
        this.manager.contextualize(new DefaultContext());
        this.manager.setRoleManager(roles);
        this.manager.configure(sysConfig);
        this.manager.initialize();
    }

    public void dispose () {
        this.manager.dispose();
    }

    public static void main (String[] args) throws Exception {
        EntrantComponent ec = new EntrantComponent();
        ec.initialize();

        // Use the manager to lookup components and use them here.
    }

I have had a vision of how to break apart my app into a multitude of
services, but I was never able to decide on how it all would fit
together. Guess I'm a bit of a reuse freak, but a lot of the stuff is
reusable so... Avalon is the framework that enables me to develop
exactly as I've been wanting to. It's truly been a revelation for me.
Already I can't imagine not using COP for everything.

Really my main request is to bring the expertise level of the
documentation down a notch. If I hadn't gotten the 'Something Really
Cool' feeling I would have missed Avalon and I'd be kicking myself; if I
knew what I was missing of course.

All of the other changes sound great. Especially extending the lifecycle
management of components.

Many exuberant thanks for the killer framework.

Corey



On Thu, 2002-06-27 at 17:11, Leo Simons wrote:
> revised message:
> 
> ---------------------------------
> 
> All,
> 
> lately the avalon-dev list has been through a storm of ideas for
> improving Avalon Framework. During this brainstorming session we have
> come up with some fairly good ideas (*we* think so anyway) - some of
> them quite radical, some more conservative.
> 
> Will you like them? Well, that's the problem. We have no idea if you -
> the users of Avalon - like the ideas, because we lack your input.
> 
> What parts of Avalon do you really like? Which parts need improvement?
> 
> Of special interest to us is the view of the "total newbie". What was/is
> the greatest problem you faced when you first tried to use Avalon? Lack
> of documentation? The size of the project? The lack of examples?
> 
> If you are not using Avalon, but have made your way over here to
> evaluate the project: What will it take for you to start using it?
> 
> Also, general comments on using Avalon are more than welcome. What were
> your greatest challenges in migrating your current archictecure to
> Avalon? How did you overcome them?
> 
> Below is a short list of things we are either doing or considering. Feel
> more than free to comment on any of these.
> 
> * we are revising the docs to be easier to digest for the average java
> developer
> 
> * we are moving the parts of Avalon Excalibur that are of use outside
> avalon to the commons project
> 
> * We are defining container contracts better so that any component  
> written to Avalon specification will run in any container (the container
> is the thing that hosts components, one example is Avalon Phoenix)
> 
> * we are clarifying (for ourselves and in documentation) the
> relationships between the different containers
> 
> * we are working on making simpler containers, like one that is
> optimised for just handling a single component
> 
> * We are implementing a standard meta-data system to help ensure a
> secure environment, and allow complex component mappings.
> 
> thank you very much for taking the time to provide us with the vital
> feedback to make Avalon even better!
> 
> best regards,
> 
> - The Avalon Developers
> 
> ---------------------------------
> 
> someone could edit, post to -users, and then we can reference it in the
> newsletter?
> 
> cheers,
> 
> - Leo
> 
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> 



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to