janb        2003/10/04 18:37:00

  Modified:    
modules/kernel/src/java/org/apache/geronimo/kernel/deployment/service
                        ServiceDeploymentPlanner.java
  Log:
  The Service deployer current will undeploy absolutely everything because it
  does not check to see if it is a suitable thing for it to undeploy. This is
  stopping the undeployment of web apps, so I've put in a temporary patch which
  at least checks if the url being deployed is a service xml descriptor. Note
  that this won't work for unpacked service directories, but that is a much 
harder
  problem to solve and requires more co-operation from the scanner, so I'm 
leaving
  that as an exercise for the reader to solve :-)
  
  Revision  Changes    Path
  1.2       +17 -1     
incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/deployment/service/ServiceDeploymentPlanner.java
  
  Index: ServiceDeploymentPlanner.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/deployment/service/ServiceDeploymentPlanner.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ServiceDeploymentPlanner.java     8 Sep 2003 04:38:34 -0000       1.1
  +++ ServiceDeploymentPlanner.java     5 Oct 2003 01:37:00 -0000       1.2
  @@ -257,7 +257,21 @@
       }
   
       private boolean removeURL(UndeployURL goal, Set goals, Set plans) throws 
DeploymentException {
  +       
           URL url = goal.getUrl();
  +       
  +        //TODO: better method of determining whether this deployer should
  +        //handle this undeploy call. This deployer should only handle the 
undeploy
  +        //if it is something that it would have deployed (ie a service). 
More context
  +        //information needs to be available to make this decision. For now, 
just handle
  +        //the case of the unpacked service, just to prevent this deployer 
from undeploying everything.
  +        
  +        if (!url.getPath().endsWith("-service.xml")) { 
  +            return false;
  +        }
  +     
  +
  +        
           ObjectName deploymentName = null;
           try {
               deploymentName = new 
ObjectName("geronimo.deployment:role=DeploymentUnit,type=Service,url=" + 
ObjectName.quote(url.toString()));
  @@ -288,12 +302,14 @@
           for (Iterator i = mbeans.iterator(); i.hasNext();) {
               ObjectName name = (ObjectName) i.next();
               destroyPlan.addTask(new DestroyMBeanInstance(server, name));
  +        
           }
   
           destroyPlan.addTask(new DestroyMBeanInstance(server, 
deploymentName));
           plans.add(destroyPlan);
   
           goals.remove(goal);
  +        
           return true;
       }
   
  
  
  

Reply via email to