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); } }