You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2008/02/21 15:40:58 UTC
svn commit: r629804 -
/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
Author: dims
Date: Thu Feb 21 06:40:58 2008
New Revision: 629804
URL: http://svn.apache.org/viewvc?rev=629804&view=rev
Log:
Make it easier to extend JAXWSDeployer. Toying with the idea of calling this class from the OSGi layer directly
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java?rev=629804&r1=629803&r2=629804&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java Thu Feb 21 06:40:58 2008
@@ -22,21 +22,22 @@
import org.apache.axis2.Constants;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.deployment.Deployer;
+import org.apache.axis2.deployment.DeploymentEngine;
import org.apache.axis2.deployment.DeploymentErrorMsgs;
import org.apache.axis2.deployment.DeploymentException;
-import org.apache.axis2.deployment.DeploymentEngine;
import org.apache.axis2.deployment.repository.util.DeploymentFileData;
import org.apache.axis2.deployment.util.Utils;
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.AxisServiceGroup;
+import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.jaxws.description.DescriptionFactory;
import org.apache.axis2.jaxws.server.JAXWSMessageReceiver;
import org.apache.axis2.util.Loader;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.commons.io.FileUtils;
import javax.jws.WebService;
import javax.xml.ws.WebServiceProvider;
@@ -46,14 +47,14 @@
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.URL;
-import java.net.MalformedURLException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import java.util.Collection;
import java.util.jar.JarInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
+import java.lang.annotation.Annotation;
/*
* JAXWSDeployer is a custom deployer modeled after the POJODeployer. Its purpose
@@ -63,15 +64,17 @@
private static Log log = LogFactory.getLog(JAXWSDeployer.class);
- private ConfigurationContext configCtx;
+ protected ConfigurationContext configCtx = null;
+ protected AxisConfiguration axisConfig = null;
//To initialize the deployer
public void init(ConfigurationContext configCtx) {
this.configCtx = configCtx;
+ this.axisConfig = configCtx.getAxisConfiguration();
deployServicesInWARClassPath();
}//Will process the file and add that to axisConfig
- private void deployServicesInWARClassPath() {
+ protected void deployServicesInWARClassPath() {
String dir = DeploymentEngine.getWebLocationString();
if (dir != null) {
File file = new File(dir + "/WEB-INF/classes/");
@@ -82,16 +85,16 @@
try {
threadClassLoader = Thread.currentThread().getContextClassLoader();
ArrayList urls = new ArrayList();
- urls.add(configCtx.getAxisConfiguration().getRepository());
+ urls.add(axisConfig.getRepository());
String webLocation = DeploymentEngine.getWebLocationString();
if (webLocation != null) {
urls.add(new File(webLocation).toURL());
}
ClassLoader classLoader = Utils.createClassLoader(
urls,
- configCtx.getAxisConfiguration().getSystemClassLoader(),
+ axisConfig.getSystemClassLoader(),
true,
- (File) configCtx.getAxisConfiguration().
+ (File) axisConfig.
getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR));
Thread.currentThread().setContextClassLoader(classLoader);
deployClasses("JAXWS-Builtin", file.toURL(), Thread.currentThread().getContextClassLoader(), classList);
@@ -105,7 +108,7 @@
}
}
- private ArrayList getClassesInWebInfDirectory(File file) {
+ protected ArrayList getClassesInWebInfDirectory(File file) {
String filePath = file.getAbsolutePath();
Collection files = FileUtils.listFiles(file, new String[]{"class"}, true);
ArrayList classList = new ArrayList();
@@ -131,16 +134,16 @@
log.info("Deploying artifact : " + deploymentFileData.getName());
ArrayList urls = new ArrayList();
urls.add(deploymentFileData.getFile().toURL());
- urls.add(configCtx.getAxisConfiguration().getRepository());
+ urls.add(axisConfig.getRepository());
String webLocation = DeploymentEngine.getWebLocationString();
if (webLocation != null) {
urls.add(new File(webLocation).toURL());
}
ClassLoader classLoader = Utils.createClassLoader(
urls,
- configCtx.getAxisConfiguration().getSystemClassLoader(),
+ axisConfig.getSystemClassLoader(),
true,
- (File) configCtx.getAxisConfiguration().
+ (File) axisConfig.
getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR));
Thread.currentThread().setContextClassLoader(classLoader);
@@ -152,7 +155,7 @@
location.toString() +
". Service deployment failed.";
log.error(msg);
- configCtx.getAxisConfiguration().getFaultyServices().
+ axisConfig.getFaultyServices().
put(deploymentFileData.getFile().getAbsolutePath(), msg);
}
}
@@ -166,7 +169,7 @@
}
}
- private int deployClasses(String groupName, URL location, ClassLoader classLoader, List classList)
+ protected int deployClasses(String groupName, URL location, ClassLoader classLoader, List classList)
throws ClassNotFoundException, InstantiationException, IllegalAccessException, AxisFault {
ArrayList axisServiceList = new ArrayList();
for (int i = 0; i < classList.size(); i++) {
@@ -197,12 +200,12 @@
AxisService axisService = (AxisService) axisServiceList.get(i);
serviceGroup.addService(axisService);
}
- configCtx.getAxisConfiguration().addServiceGroup(serviceGroup);
+ axisConfig.addServiceGroup(serviceGroup);
}
return count;
}
- private ArrayList getListOfClasses(DeploymentFileData deploymentFileData) throws IOException {
+ protected ArrayList getListOfClasses(DeploymentFileData deploymentFileData) throws IOException {
ArrayList classList;
FileInputStream fin = null;
ZipInputStream zin = null;
@@ -235,16 +238,16 @@
return classList;
}
- private void storeFaultyService(DeploymentFileData deploymentFileData, Throwable t) {
+ protected void storeFaultyService(DeploymentFileData deploymentFileData, Throwable t) {
StringWriter errorWriter = new StringWriter();
PrintWriter ptintWriter = new PrintWriter(errorWriter);
t.printStackTrace(ptintWriter);
String error = "Error:\n" + errorWriter.toString();
- configCtx.getAxisConfiguration().getFaultyServices().
+ axisConfig.getFaultyServices().
put(deploymentFileData.getFile().getAbsolutePath(), error);
}
- private AxisService createAxisService(ClassLoader classLoader,
+ protected AxisService createAxisService(ClassLoader classLoader,
String className,
URL serviceLocation) throws ClassNotFoundException,
InstantiationException,
@@ -283,15 +286,17 @@
if (isJar(new File(fileName))) {
try {
AxisServiceGroup serviceGroup =
- configCtx.getAxisConfiguration().removeServiceGroup(fileName);
- configCtx.removeServiceGroupContext(serviceGroup);
+ axisConfig.removeServiceGroup(fileName);
+ if(configCtx != null) {
+ configCtx.removeServiceGroupContext(serviceGroup);
+ }
log.info(Messages.getMessage(DeploymentErrorMsgs.SERVICE_REMOVED,
fileName));
} catch (AxisFault axisFault) {
//May be a faulty service
log.debug(Messages.getMessage(DeploymentErrorMsgs.FAULTY_SERVICE_REMOVAL,
axisFault.getMessage()), axisFault);
- configCtx.getAxisConfiguration().removeFaultyService(fileName);
+ axisConfig.removeFaultyService(fileName);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org