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

Reply via email to