You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by de...@apache.org on 2006/10/12 07:27:23 UTC
svn commit: r463134 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment:
DeploymentEngine.java ServiceBuilder.java WarBasedAxisConfigurator.java
repository/util/ArchiveReader.java
Author: deepal
Date: Wed Oct 11 22:27:20 2006
New Revision: 463134
URL: http://svn.apache.org/viewvc?view=rev&rev=463134
Log:
fixing AXIS2-1344
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?view=diff&rev=463134&r1=463133&r2=463134
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Wed Oct 11 22:27:20 2006
@@ -338,6 +338,19 @@
URL serviceLocation,
ArchiveFileData currentArchiveFile)
throws AxisFault {
+ fillServiceGroup(serviceGroup, serviceList, serviceLocation, axisConfig);
+ axisConfig.addServiceGroup(serviceGroup);
+ startUpService(serviceGroup);
+ if (currentArchiveFile != null) {
+ addAsWebResources(currentArchiveFile.getFile(),
+ serviceGroup.getServiceGroupName(), serviceGroup);
+ }
+ }
+
+ private static void fillServiceGroup(AxisServiceGroup serviceGroup,
+ ArrayList serviceList,
+ URL serviceLocation,
+ AxisConfiguration axisConfig) throws AxisFault {
serviceGroup.setParent(axisConfig);
// module from services.xml at serviceGroup level
ArrayList groupModules = serviceGroup.getModuleRefs();
@@ -408,12 +421,6 @@
}
}
}
- axisConfig.addServiceGroup(serviceGroup);
- startUpService(serviceGroup);
- if (currentArchiveFile != null) {
- addAsWebResources(currentArchiveFile.getFile(),
- serviceGroup.getServiceGroupName(), serviceGroup);
- }
}
/**
@@ -1005,5 +1012,36 @@
}
return axisService;
+ }
+
+ /**
+ * To build a AxisServiceGroup for a given services.xml
+ * You have to add the created group into AxisConfig
+ * @param servicesxml : inpupstream create using services.xml
+ * @param classLoader : corresponding class loader to load the class
+ * @param serviceGroupName : name of the service group
+ * @param axisConfig :
+ * @return
+ * @throws AxisFault
+ */
+ public static AxisServiceGroup buildServiceGroup(InputStream servicesxml,
+ ClassLoader classLoader,
+ String serviceGroupName,
+ AxisConfiguration axisConfig) throws AxisFault {
+ ArchiveFileData currentArchiveFile = new ArchiveFileData(
+ DeploymentConstants.TYPE_SERVICE, "", false);
+ currentArchiveFile.setClassLoader(classLoader);
+ ArchiveReader archiveReader = new ArchiveReader();
+ AxisServiceGroup serviceGroup = new AxisServiceGroup();
+ serviceGroup.setServiceGroupName(serviceGroupName);
+ try {
+ ArrayList serviceList = archiveReader.buildServiceGroup(servicesxml,
+ currentArchiveFile, serviceGroup,
+ new HashMap(), axisConfig);
+ fillServiceGroup(serviceGroup, serviceList, null, axisConfig);
+ return serviceGroup;
+ } catch (XMLStreamException e) {
+ throw new AxisFault(e);
+ }
}
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java?view=diff&rev=463134&r1=463133&r2=463134
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java Wed Oct 11 22:27:20 2006
@@ -118,6 +118,9 @@
service.setTargetNamespace(Java2WSDLConstants.DEFAULT_TARGET_NAMESPACE);
}
}
+
+
+
//Processing service lifecycle attribute
OMAttribute serviceLifeCycleClass = service_element.
getAttribute(new QName(TAG_CLASS_NAME));
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java?view=diff&rev=463134&r1=463133&r2=463134
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java Wed Oct 11 22:27:20 2006
@@ -1,6 +1,7 @@
package org.apache.axis2.deployment;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.description.AxisServiceGroup;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.engine.AxisConfigurator;
@@ -229,7 +230,7 @@
*/
public void loadServices() {
try {
- String repository ;
+ String repository;
repository = config.getInitParameter(PARAM_AXIS2_REPOSITORY_PATH);
if (repository != null) {
@@ -244,7 +245,7 @@
log.debug("loaded services from URL: " + repository);
return;
}
-
+ loadServicesFromWebInf();
if (config.getServletContext().getRealPath("") != null) {
super.loadServices();
log.debug("loaded services from webapp");
@@ -264,5 +265,24 @@
//To engage globally listed modules
public void engageGlobalModules() throws AxisFault {
engageModules();
+ }
+
+ /**
+ * This method will look inside the web-inf directory to find services.xml
+ * inside that , if it is there will load that and creat service group out
+ * of that and add into axisConfig. User can drop corresponding class files
+ * into class directory.
+ */
+ private void loadServicesFromWebInf() {
+ try {
+ InputStream servicexml = config.getServletContext().
+ getResourceAsStream("/WEB-INF/services.xml");
+ AxisServiceGroup serviceGroup = DeploymentEngine.buildServiceGroup(servicexml,
+ Thread.currentThread().getContextClassLoader(),
+ "annonServiceGroup", axisConfig);
+ axisConfig.addServiceGroup(serviceGroup);
+ } catch (AxisFault axisFault) {
+ log.info(axisFault);
+ }
}
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java?view=diff&rev=463134&r1=463133&r2=463134
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java Wed Oct 11 22:27:20 2006
@@ -43,7 +43,7 @@
public class ArchiveReader implements DeploymentConstants {
private static final Log log = LogFactory.getLog(ArchiveReader.class);
- private ArrayList buildServiceGroup(InputStream zin, ArchiveFileData currentFile,
+ public ArrayList buildServiceGroup(InputStream zin, ArchiveFileData currentFile,
AxisServiceGroup axisServiceGroup, HashMap wsdlServices,
AxisConfiguration axisConfig)
throws XMLStreamException, AxisFault {
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org