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