geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremy Boynes <jer...@coredevelopers.net>
Subject Re: Who's in charge of deploying EARs?
Date Tue, 06 Jan 2004 15:37:46 GMT
Aaron Mulder wrote:

> 	I believe Jeremy is in the midst of some significant changes to 
> the deployment process.  Perhaps he can comment, but I'm guessing this 
> isn't the best time to work on new deployment features.
> 

Yeah, sorry - it's taking longer than expected but I have to work as 
well :-)

> 	The ApplicationDeployer is the JSR-88 server side.  All the 
> unimplemented methods are basically there to support JSR-88 client calls 
> that we have to support.  The implemented methods actually set up 
> deployment operations, and are used for everything that's deployed 
> (services, apps, etc.).
> 
> 	The main shortcoming as far as JSR-88 goes is currently that
> JSR-88 uses a distribute-then-start lifecycle, whereas the current
> planners roll everything into a single "deploy" step.  Jeremy, do you also
> have thoughts on whether the revisions will make it easier to explicitly
> split out the "distribute" step?  My sense is that it will, because we'll
> be handling the ClassSpace in a better way and so on, so that we'll be
> able to do more work during "distribution" and we can simply flick a 
> switch for the "start".
> 

It is very close to the 88 model.

There are three phases: "deploy", "distribute" and "run"

In the "deploy" phase, a ConfigurationBuilder takes a set of URLs and 
runs them by a set of Deployers to build a Configuration. This is a 
jar-formatted file containing code plus a set of persisted GBeans. I'm 
thinking of calling it a "CAR" file - any thoughts?

Because it is a single file it is easy to copy between nodes (somehow). 
The "distribute" phase does just that; it is copied to each target which 
then stores in a local ConfigurationStore.

Once all the distribution has happened, then the various targets can be 
started by bringing the Configuration online. This will create a new 
classloader, unpersist the GBeans and then start them all (with the 
DependencyService sorting out the start order).


So far I have the configuration stuff working but only have around 75% 
of the service deployer working.

--
Jeremy

Mime
View raw message