I agree.  redeploy is different, or could be different and in some cases (like 
yours) should be different than undeploy/deploy.

--jason


Quoting Jules Gosnell <[EMAIL PROTECTED]>:

> Jason Dillon wrote:
> > Yes perhaps... would not hurt to add the method to the interface... though
> in 
> > most cases undeploy/deploy works fine.  It is possible that we might want
> to 
> > have redploy specific behavior... but we need to make sure that 
> > undeploy/deploy also works in the same fashion.  I think that if the 
> > underlying impl uses undeploy and deploy then this will work fine & not add
> 
> > any additional maintenece headache.
> > 
> > --jason
> 
> Yes and No.
> 
> Take Jetty for instance.
> 
> If Jetty is not going to drop any requests during a redeployment, then 
> Jetty needs to know that it is performing a redeployment, and not an 
> undeployment.
> 
> In the former case, resources such as web contexts (used for dispatching 
> requests) should be maintained and locked, until the following 
> deployment is complete. In the latter they must be released immediately.
> 
> This is container specific behaviour that the deployer cannot predict.
> 
> I am suggesting a layered interface, where, if you have no specific impl 
> for redeploy(), your superclass provides redeploy(){undeploy(); 
> deploy()} but any container is free to override this with a more 
> tailored approach.
> 
> If you simply use redeploy as an alias for undeploy/deploy then I don't 
> see much purpose in having it. The point is that it gives you more than 
> just concatenating these two operations together.
> 
> Jules
> 
> 
> > 
> > 
> > Quoting Jules Gosnell <[EMAIL PROTECTED]>:
> > 
> > 
> >>My penniesworth:
> >>
> >>I think it important that at some stage we introduce a concept of 
> >>'redeploy()'.
> >>
> >> From a quick glance at JSR 88, this looks to be an optional extension, 
> >>but from an enterprise point of view I think that this is important.
> >>
> >>The default implementation could just 'undeploy(); deploy()' but a 
> >>cleverer implementation will take exclusive locks on all input streams 
> >>into JBoss (probably via interceptors) at the container level, so that 
> >>redeployments can occur without requests being lost. They will simply be 
> >>queued, delayed somewhat, and then eventually serviced.
> >>
> >>Any thoughts ?
> >>
> >>
> >>Jules
> >>
> >>
> >>
> >>Larry Sanderson wrote:
> >>
> >>>I have been working with the deployers for the last week or so, and I
> have
> >>
> >>been thinking about some design changes that would help clean it up.
> >>
> >>>I see two major problems with the current usage: 1) MainDeployer is a
> >>
> >>bootstrapped class, with no way to provide an alternate implementation,
> 2)
> >>All SubDeployers rely on a concrete implementation of deployer:
> MainDeployer,
> >>
> >>
> >>>The first problem is easy to fix: provide a System-Property style
> >>
> >>configuration for an alternate bootstrapped deployer.
> >>
> >>>The second problem is not so easy.  I propose that we give more control
> to
> >>
> >>the SubDeployers, and simplify the bootstrap deployer.  I propose that we
> >>move all life-cycle management of SubDeployers to the particular
> >>implementations of SubDeployer. This eliminates the need for the
> bootstrapped
> >>deployer to manage each SubDeployer's life cycle.  Further, the
> bootstrapped
> >>deployer no longer has to manage DeploymentInfo objects - this job has
> been
> >>passed down to the SubDeployer as well.  This allows each SubDeployer to
> >>create their own implementations of DeploymentInfo.  Finally,
> DeploymentInfo
> >>needs to be cleaned up - it has become a repository for disparate, and
> often
> >>unnecessary information.  Since SubDeployers are now allowed to create
> their
> >>own implementations, all but the most common attributes can be removed.
> >>
> >>>Here are my thoughts for the public class structure:
> >>>
> >>>[code]
> >>>public interface SubDeployer
> >>>{
> >>>   boolean accepts(URL url);
> >>>   boolean deploy(URL url);
> >>>   boolean unDeploy(URL url);
> >>>   boolean isDeployed(URL url);
> >>>   DeploymentInfo getDeploymentInfo(URL url);
> >>>}
> >>>
> >>>public interface Deployer extends SubDeployer
> >>>{
> >>>   SubDeployer getSubDeployer(URL url);
> >>>   void addDeployer(SubDeployer deployer);
> >>>   void removeDeployer(SubDeployer deployer);
> >>>}
> >>>
> >>>public class DeploymentInfo
> >>>{
> >>>   // General cleanup
> >>>   
> >>>   // make members private with accessors / mutators
> >>>
> >>>   // remove "SubDeployment" specific attributes
> >>>   //   (webContext,manifest,document metaData,etc...)
> >>>   //   These can be provided with subDeployment specific
> >>>   //   subclasses.
> >>>}
> >>>[/code]
> >>>
> >>>
> >>>Let me know if you have any comments.  I would like to get started on
> this
> >>
> >>soon.
> >>
> >>>Thanks
> >>>
> >>>-Larry
> >>>
> >>>_________________________________________________________
> >>>View thread online:
> >>
> >>http://main.jboss.org/thread.jsp?forum=66&thread=12917
> >>
> >>>_______________________________________________
> >>>Jboss-development mailing list
> >>>[EMAIL PROTECTED]
> >>>https://lists.sourceforge.net/lists/listinfo/jboss-development
> >>>
> >>
> >>
> >>
> >>
> >>_______________________________________________
> >>Jboss-development mailing list
> >>[EMAIL PROTECTED]
> >>https://lists.sourceforge.net/lists/listinfo/jboss-development
> >>
> > 
> > 
> > 
> > 
> > 
> > -------------------------------------------------
> > This mail sent through IMP: http://horde.org/imp/
> > 
> > _______________________________________________
> > Jboss-development mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/jboss-development
> > 
> 
> 
> 




-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to