geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Mulder <>
Subject RE: [Deployment] Directories
Date Fri, 03 Oct 2003 19:00:54 GMT
On Fri, 3 Oct 2003, Jeremy Boynes wrote:
> ...
> Anything that is explicitly deploying an application should *NOT* do it
> by copying stuff into the deploy directory. Instead it should pass a URL
> to the DeploymentPlanner and let it figure out the details.
> ...
> So basically, distribution is a different problem from deployment.

	True...  But I have to implement them both in order for you to be
able to deploy an app from a proper JSR-88 client (which can certainly be
run from a different machine).  I guess then we should say that for
purposes of this discussion, I'm looking to resolve part of the
"distribution" problem:  Assuming I get a EAR/WAR/etc. over the network
(don't care what protocol, let's just assume I have bytes ready to save to
disk somewhere), where do I put it?  I will then cause it to be deployed 
via a URL pointing to whereever I just put it.

	(Below, I will assume we picked a directory to save distributed
apps to, known as the "distributed"  dir.)

> On the role of versioned applications, this needs to be carefully
> thought out. There are some basic design issues, like at what point does
> the transition happen e.g. on method call, HTTP request, HTTP Session
> start, ... This determines how long the two versions co-exist.
> I am not sure we've all thought this through yet :-)

	Yes, well, that's why we're thinking it through now!  :)  Again, I 
don't think we have to solve the versioning issue today, but I thought it 
was worth including in the discussion.

	Another aspect of this issue is server startup.  For most aspects
of the server, there is some configuration file or other that is read
during startup.  But that is not currently the case for applications.  
For applications, we simply deploy whatever is present in the "deploy"  
directory.  I think that breaks in the presence of applications
distributed and deployed via JSR-88, since according to your point above
(and I agree), those distributed applications won't appear in the "deploy"  
directory.  So do we just not start any of those when the server starts?  
I don't like that, I'd rather have the server start any apps that used to
be running, and deploy MBeans for (but not start) other apps that were
present but not running.  Does that mean we also scan the "distributed" 
directory during startup?  If so, how do we know which apps there were 
running or not?  Do we save a single config file in the "distributed" 
directory with the state of all the distributed apps, or one flag file per 
application, or what?

Also, if we have this "distributed" directory, is the user allowed to put 
stuff in there?  I would like them not to.  If they update something in 
there, we'd probably ignore it.  But what if they take down the server, 
add a new EAR to the "distributed" directory, and then start up the server 
again?  Should it be ignored, loaded but not started, or started?  My 
prefernce would be to try to make it clear that if a user wants to deploy 
by manipulating files, they should use the "deploy" dir, and if they want 
to deploy via JSR-88, they should expect the server to use the 
"distributed" dir under the covers.


View raw message