geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Wilkins <gr...@mortbay.com>
Subject Re: [deployment][jsr77][web] Dependency code in AbstractStateManageable.
Date Wed, 20 Aug 2003 09:53:50 GMT


Just to follow up on my own email.... I'd like to explain how
I see the deployment, container and component stuff working for
the web stuff (this is in the wiki, but I'll say it here).

I see the following web components:

   WebContainer
   WebConnector
   WebApplication
   WebAccessLog
   WebSessionManager

Of these, WebContainer and WebConnector are Containers:

   Geronimo contains WebContainer(s)

   WebContainer contains WebConnector(s)
   WebContainer contains WebApplication(s)
   WebContainer contains WebAccessLog(s)

   WebApplication contains WebAccessLog(s)
   WebApplication contains Servlet(s)

All of these are top level geronimo services that need to
be configured, deployed, started, stopped, managed, viewed etc.
They can all have different lifecycles and should all
be geronimo Components.   They can be put together in different
combinations and will avoid the implementation dependancies of
a monolythic webcontainer.


I see the act of deploying a webapp as:

  1) Create WebApplication
  2) Call setXxx, setYyy on the WebApplication to configure it
     with the main one being setWebAppURI (to say where the WAR is).
  3) Call WebContainer.addComponent(webApplication)
  4) Call webApplication.startRecursive()

I see this sort of this as 99% generic and was hoping that the deployment
and dependancy mechanism would provide the infrastructure for this.
I don't want to write more or less the same code to parse xml, configure
components and add them to containers for all the above relationships.

I see the dependancy mechanism as a tool to assist putting such
containment trees together.  ie be able to specify which webcontainer
a webConnector is added to etc.

I can see two types of dependancies:

  lifecycle   : A depends on B means that B must be started before A
  containment : A depends on B means that B is added to A (and also implies
                lifecycle dependence).

So that's the sort of thing we were looking for to be able to implement
the webcontainer.  That's what I had been working towards with
AbstractComponent and AbsractContainer.

cheers







Mime
View raw message