You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by az...@apache.org on 2010/06/30 11:17:32 UTC

svn commit: r959241 - in /axis/axis2/java/core/trunk/modules: corba/src/org/apache/axis2/corba/deployer/ jaxws/src/org/apache/axis2/jaxws/framework/ kernel/src/org/apache/axis2/deployment/ kernel/test/org/apache/axis2/deployment/deployers/

Author: azeez
Date: Wed Jun 30 09:17:30 2010
New Revision: 959241

URL: http://svn.apache.org/viewvc?rev=959241&view=rev
Log:
1. Added cleanup method to Deployer to facilitate cleanup when cleanup is called on DeploymentEngine
2. Introduced AbstractDeployer
3. Renamed the badly named unDeploy method to undeploy


Added:
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java
Modified:
    axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java
    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/Deployer.java
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java
    axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/deployers/CustomDeployer.java

Modified: axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java?rev=959241&r1=959240&r2=959241&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java (original)
+++ axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java Wed Jun 30 09:17:30 2010
@@ -30,7 +30,7 @@ import org.apache.axis2.corba.idl.types.
 import org.apache.axis2.corba.idl.types.Interface;
 import org.apache.axis2.corba.idl.types.Operation;
 import org.apache.axis2.corba.receivers.CorbaUtil;
-import org.apache.axis2.deployment.Deployer;
+import org.apache.axis2.deployment.AbstractDeployer;
 import org.apache.axis2.deployment.DeploymentConstants;
 import org.apache.axis2.deployment.DeploymentEngine;
 import org.apache.axis2.deployment.DeploymentErrorMsgs;
@@ -73,7 +73,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 
-public class CorbaDeployer implements Deployer, DeploymentConstants, CorbaConstants {
+public class CorbaDeployer extends AbstractDeployer implements DeploymentConstants, CorbaConstants {
     private static final Log log = LogFactory.getLog(CorbaDeployer.class);
     private AxisConfiguration axisConfig;
     private ConfigurationContext configCtx;
@@ -97,6 +97,7 @@ public class CorbaDeployer implements De
             ArrayList serviceList = processService(deploymentFileData, serviceGroup, configCtx);
             DeploymentEngine.addServiceGroup(serviceGroup, serviceList, deploymentFileData.getFile().toURL(), deploymentFileData, axisConfig);
             name = deploymentFileData.getName();
+            super.deploy(deploymentFileData);
             log.info("Deploying " + name);
         } catch (AxisFault axisFault) {
             log.error("Error while deploying " + name, axisFault);
@@ -595,8 +596,9 @@ public class CorbaDeployer implements De
     public void setExtension(String extension) {
     }
 
-    public void unDeploy(String fileName) throws DeploymentException {
+    public void undeploy(String fileName) throws DeploymentException {
         try {
+            super.undeploy(fileName);
             fileName = Utils.getShortFileName(fileName);
             axisConfig.removeServiceGroup(fileName);
             log.info(Messages.getMessage(DeploymentErrorMsgs.SERVICE_REMOVED, fileName));

Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java?rev=959241&r1=959240&r2=959241&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java (original)
+++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java Wed Jun 30 09:17:30 2010
@@ -22,7 +22,7 @@ package org.apache.axis2.jaxws.framework
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.deployment.Deployer;
+import org.apache.axis2.deployment.AbstractDeployer;
 import org.apache.axis2.deployment.DeploymentEngine;
 import org.apache.axis2.deployment.DeploymentErrorMsgs;
 import org.apache.axis2.deployment.repository.util.DeploymentFileData;
@@ -63,7 +63,7 @@ import java.util.jar.JarInputStream;
  * JAXWSDeployer is a custom deployer modeled after the POJODeployer. Its purpose
  * is to deploy .wars and expanded .war directories
  */
-public class JAXWSDeployer implements Deployer {
+public class JAXWSDeployer extends AbstractDeployer {
 
     private static Log log = LogFactory.getLog(JAXWSDeployer.class);
 
@@ -166,6 +166,7 @@ public class JAXWSDeployer implements De
                             put(deploymentFileData.getFile().getAbsolutePath(), msg);
                 }
             }
+            super.deploy(deploymentFileData);
         } catch (Throwable t) {
             log.debug(Messages.getMessage("stroringfaultyservice", t.getMessage()), t);
             storeFaultyService(deploymentFileData, t);
@@ -273,7 +274,7 @@ public class JAXWSDeployer implements De
     public void setExtension(String extension) {
     }
 
-    public void unDeploy(String fileName) {
+    public void undeploy(String fileName) {
         //find the hierarchical part of the service group name
         String serviceHierarchy = Utils.getServiceHierarchy(fileName, this.directory);
         fileName = serviceHierarchy + Utils.getShortFileName(fileName);
@@ -283,6 +284,7 @@ public class JAXWSDeployer implements De
             if(configCtx != null) {
                 configCtx.removeServiceGroupContext(serviceGroup);
             }
+            super.undeploy(fileName);
             log.info(Messages.getMessage(DeploymentErrorMsgs.SERVICE_REMOVED,
                     fileName));
         } catch (AxisFault axisFault) {

Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java?rev=959241&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java (added)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/AbstractDeployer.java Wed Jun 30 09:17:30 2010
@@ -0,0 +1,44 @@
+/*                                                                             
+ * Copyright 2004,2005 The Apache Software Foundation.                         
+ *                                                                             
+ * Licensed under the Apache License, Version 2.0 (the "License");             
+ * you may not use this file except in compliance with the License.            
+ * You may obtain a copy of the License at                                     
+ *                                                                             
+ *      http://www.apache.org/licenses/LICENSE-2.0                             
+ *                                                                             
+ * Unless required by applicable law or agreed to in writing, software         
+ * distributed under the License is distributed on an "AS IS" BASIS,           
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    
+ * See the License for the specific language governing permissions and         
+ * limitations under the License.                                              
+ */
+package org.apache.axis2.deployment;
+
+import org.apache.axis2.deployment.repository.util.DeploymentFileData;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * AbstractDeployer class which can be extended by all Axis2 deployers
+ */
+public abstract class AbstractDeployer implements Deployer{
+
+    private Map<String, DeploymentFileData> deploymentFileDataMap
+            = new ConcurrentHashMap<String, DeploymentFileData>();
+
+    public void deploy(DeploymentFileData deploymentFileData) throws DeploymentException {
+        deploymentFileDataMap.put(deploymentFileData.getAbsolutePath(), deploymentFileData);
+    }
+
+    public void undeploy(String fileName) throws DeploymentException {
+        deploymentFileDataMap.remove(fileName);
+    }
+
+    public void cleanup() throws DeploymentException {
+        for (String filePath : deploymentFileDataMap.keySet()) {
+            undeploy(filePath);
+        }
+    }
+}

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/Deployer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/Deployer.java?rev=959241&r1=959240&r2=959241&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/Deployer.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/Deployer.java Wed Jun 30 09:17:30 2010
@@ -59,5 +59,11 @@ public interface Deployer {
      * @param fileName name of item to remove
      * @throws DeploymentException if there is a problem
      */
-    void unDeploy(String fileName) throws DeploymentException;
+    void undeploy(String fileName) throws DeploymentException;
+
+    /**
+     * Cleanup deployment
+     * @throws DeploymentException If an error occurs during cleanup
+     */
+    void cleanup() throws DeploymentException;
 }

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=959241&r1=959240&r2=959241&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Wed Jun 30 09:17:30 2010
@@ -881,13 +881,13 @@ public abstract class DeploymentEngine i
                     if (wsInfo.getType() == WSInfo.TYPE_SERVICE) {
                         //No matter what we need to undeploy the service
                         // if user has deleted the file from the repository
-                        serviceDeployer.unDeploy(wsInfo.getFileName());
+                        serviceDeployer.undeploy(wsInfo.getFileName());
                     } else {
                         //We need to undeploy the service whether we have enable hotUpdate or not ,
                         // o.w what happen if someone delete the service from the repo
                         Deployer deployer = wsInfo.getDeployer();
                         if (deployer != null) {
-                            deployer.unDeploy(wsInfo.getFileName());
+                            deployer.undeploy(wsInfo.getFileName());
                         }
                     }
                 }
@@ -1367,6 +1367,15 @@ public abstract class DeploymentEngine i
         if (scheduler != null) {
             scheduler.cleanup();
         }
+        for (Map<String, Deployer> stringDeployerMap : deployerMap.values()) {
+            for (Deployer deployer : stringDeployerMap.values()) {
+                try {
+                    deployer.cleanup();
+                } catch (DeploymentException e) {
+                    log.error("Error occurred while cleaning up deployer", e);
+                }
+            }
+        }
     }
 
     /**

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java?rev=959241&r1=959240&r2=959241&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java Wed Jun 30 09:17:30 2010
@@ -25,11 +25,8 @@ import org.apache.axis2.context.Configur
 import org.apache.axis2.deployment.repository.util.ArchiveReader;
 import org.apache.axis2.deployment.repository.util.DeploymentFileData;
 import org.apache.axis2.description.AxisModule;
-import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.i18n.Messages;
-import org.apache.axis2.util.Utils;
-import org.apache.axis2.util.JavaUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -39,7 +36,7 @@ import java.io.StringWriter;
 import java.net.MalformedURLException;
 import java.net.URL;
 
-public class ModuleDeployer implements Deployer {
+public class ModuleDeployer extends AbstractDeployer {
 
     private static final Log log = LogFactory.getLog(ModuleDeployer.class);
     private AxisConfiguration axisConfig;
@@ -81,6 +78,7 @@ public class ModuleDeployer implements D
             URL url = deploymentFile.toURL();
             metaData.setFileName(url);
             DeploymentEngine.addNewModule(metaData, axisConfig);
+            super.deploy(deploymentFileData);
             log.info(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_MODULE,
                                          metaData.getArchiveName(),
                                          url.toString()));
@@ -133,6 +131,7 @@ public class ModuleDeployer implements D
     public void setExtension(String extension) {
     }
 
-    public void unDeploy(String fileName) {
+    public void undeploy(String fileName) throws DeploymentException {
+        super.undeploy(fileName);
     }
 }

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java?rev=959241&r1=959240&r2=959241&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java Wed Jun 30 09:17:30 2010
@@ -46,7 +46,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 
-public class POJODeployer implements Deployer {
+public class POJODeployer extends AbstractDeployer {
 
     private static Log log = LogFactory.getLog(POJODeployer.class);
 
@@ -175,6 +175,7 @@ public class POJODeployer implements Dep
                             put(deploymentFileData.getFile().getAbsolutePath(), msg);
                 }
             }
+            super.deploy(deploymentFileData);
         } catch (Exception e) {
             log.debug(Messages.getMessage(DeploymentErrorMsgs.STORING_FAULTY_SERVICE,e.getMessage()),e);
             storeFaultyService(deploymentFileData, e);
@@ -316,7 +317,7 @@ public class POJODeployer implements Dep
     public void setExtension(String extension) {
     }
 
-    public void unDeploy(String fileName) {
+    public void undeploy(String fileName) throws DeploymentException {
         //find the hierarchical part of the service group name
         String serviceHierarchy = Utils.getServiceHierarchy(fileName, this.directory);
         
@@ -353,6 +354,7 @@ public class POJODeployer implements Dep
                 configCtx.getAxisConfiguration().removeFaultyService(fileName);
             }
         }
+        super.undeploy(fileName);
     }
 }
 

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java?rev=959241&r1=959240&r2=959241&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java Wed Jun 30 09:17:30 2010
@@ -41,7 +41,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 
-public class ServiceDeployer implements Deployer {
+public class ServiceDeployer extends AbstractDeployer {
     private static final Log log = LogFactory.getLog(ServiceDeployer.class);
     private AxisConfiguration axisConfig;
     private ConfigurationContext configCtx;
@@ -102,6 +102,7 @@ public class ServiceDeployer implements 
                                              deploymentFileData,
                                              axisConfig);
 
+            super.deploy(deploymentFileData);
         } catch (DeploymentException de) {
             de.printStackTrace();
             log.error(Messages.getMessage(DeploymentErrorMsgs.INVALID_SERVICE,
@@ -172,7 +173,7 @@ public class ServiceDeployer implements 
     public void setExtension(String extension) {
     }
 
-    public void unDeploy(String fileName) throws DeploymentException {
+    public void undeploy(String fileName) throws DeploymentException {
         try {
             //find the hierarchical part of the service group name
             String serviceHierarchy = Utils.getServiceHierarchy(fileName, this.directory);
@@ -187,6 +188,7 @@ public class ServiceDeployer implements 
             } else {
                 axisConfig.removeFaultyService(fileName);
             }
+            super.undeploy(fileName);
         } catch (AxisFault axisFault) {
             //May be a faulty service
             axisConfig.removeFaultyService(fileName);

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java?rev=959241&r1=959240&r2=959241&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java Wed Jun 30 09:17:30 2010
@@ -35,7 +35,7 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Iterator;
 
-public class TransportDeployer implements Deployer {
+public class TransportDeployer extends AbstractDeployer {
 
     private static Log log = LogFactory.getLog(TransportDeployer.class);
 
@@ -80,8 +80,7 @@ public class TransportDeployer implement
                     element.getChildrenWithName(new QName(DeploymentConstants.TAG_TRANSPORT_SENDER));
 
             builder.processTransportSenders(trs_senders);
-
-
+            super.deploy(deploymentFileData);
         } catch (Exception e) {
             log.error(e.getMessage());
         } finally {
@@ -95,6 +94,7 @@ public class TransportDeployer implement
     public void setExtension(String extension) {
     }
 
-    public void unDeploy(String fileName) throws DeploymentException {
+    public void undeploy(String fileName) throws DeploymentException {
+        super.undeploy(fileName);
     }
 }

Modified: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/deployers/CustomDeployer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/deployers/CustomDeployer.java?rev=959241&r1=959240&r2=959241&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/deployers/CustomDeployer.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/deployers/CustomDeployer.java Wed Jun 30 09:17:30 2010
@@ -21,7 +21,7 @@ package org.apache.axis2.deployment.depl
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.deployment.Deployer;
+import org.apache.axis2.deployment.AbstractDeployer;
 import org.apache.axis2.deployment.DeploymentException;
 import org.apache.axis2.deployment.repository.util.DeploymentFileData;
 import org.apache.commons.logging.Log;
@@ -37,7 +37,7 @@ import java.io.FileInputStream;
  * "George" (see the repo for test data).  We use static fields to keep all this information
  * in a way that the test can access it.
  */
-public class CustomDeployer implements Deployer {
+public class CustomDeployer extends AbstractDeployer {
     protected static final Log log = LogFactory.getLog(CustomDeployer.class);
 
     /** Has init() been called? */
@@ -91,6 +91,7 @@ public class CustomDeployer implements D
             if (content.indexOf("George") > -1) georgeDeployed = true;
             if (content.indexOf("Mary") > -1) maryDeployed = true;
             deployedItems++;
+            super.deploy(deploymentFileData);
         } catch (Exception e) {
             throw new DeploymentException(e);
         }
@@ -121,7 +122,8 @@ public class CustomDeployer implements D
      * @throws org.apache.axis2.deployment.DeploymentException
      *          if there is a problem
      */
-    public void unDeploy(String fileName) throws DeploymentException {
+    public void undeploy(String fileName) throws DeploymentException {
         // Undeploy
+        super.undeploy(fileName);
     }
 }