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 de...@apache.org on 2005/11/14 09:05:04 UTC
svn commit: r344074 - in /webservices/axis2/trunk/java/modules/core:
src/org/apache/axis2/deployment/
src/org/apache/axis2/deployment/repository/util/
src/org/apache/axis2/deployment/util/ src/org/apache/axis2/description/
test/org/apache/axis2/engine/
Author: deepal
Date: Mon Nov 14 00:04:42 2005
New Revision: 344074
URL: http://svn.apache.org/viewcvs?rev=344074&view=rev
Log:
abstracting file system deployment from deployment to improve the deployment mechanism
Modified:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/util/Utils.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java
webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.java Mon Nov 14 00:04:42 2005
@@ -41,11 +41,13 @@
public class AxisConfigBuilder extends DescriptionBuilder {
private AxisConfiguration axisConfiguration;
+ private DeploymentEngine engine;
public AxisConfigBuilder(InputStream serviceInputSteram, DeploymentEngine engine,
AxisConfiguration axisConfiguration) {
- super(serviceInputSteram, engine);
+ super(serviceInputSteram, axisConfiguration);
this.axisConfiguration = axisConfiguration;
+ this.engine = engine;
}
public void populateConfig() throws DeploymentException {
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java Mon Nov 14 00:04:42 2005
@@ -29,9 +29,7 @@
import org.apache.axis2.description.*;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.engine.AxisConfigurationImpl;
-import org.apache.axis2.engine.Handler;
import org.apache.axis2.i18n.Messages;
-import org.apache.axis2.modules.Module;
import org.apache.axis2.phaseresolver.PhaseMetadata;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -207,6 +205,7 @@
axisConfig = createEngineConfig();
AxisConfigBuilder builder = new AxisConfigBuilder(in, this, axisConfig);
builder.populateConfig();
+ ((AxisConfigurationImpl) axisConfig).setPhasesinfo(phasesinfo);
//setting the CLs
setClassLoaders(repository);
} catch (FileNotFoundException e) {
@@ -221,7 +220,6 @@
try {
((AxisConfigurationImpl) axisConfig).setRepository(axis2repository);
validateSystemPredefinedPhases();
- ((AxisConfigurationImpl) axisConfig).setPhasesinfo(phasesinfo);
engageModules();
} catch (AxisFault axisFault) {
log.info(Messages.getMessage(DeploymentErrorMsgs.MODULE_VAL_FAILED, axisFault.getMessage()));
@@ -362,12 +360,13 @@
}
- private void addnewService(AxisServiceGroup axisServiceMetaData) throws AxisFault {
+ private void addServiceGroup(AxisServiceGroup axisServiceMetaData, ArrayList service) throws AxisFault {
// Iterator services = currentArchiveFile.getService().values().iterator();
- Iterator services = currentArchiveFile.getDeploybleServices().iterator();
+ Iterator services = service.iterator();// currentArchiveFile.getDeploybleServices().iterator();
while (services.hasNext()) {
AxisService axisService = (AxisService) services.next();
- loadServiceProperties(axisService);
+// loadServiceProperties(axisService);
+ Utils.loadServiceProperties(axisService);
axisService.setFileName(currentArchiveFile.getFile().getAbsolutePath());
//module form serviceGroup
@@ -419,110 +418,30 @@
axisConfig.addServiceGroup(axisServiceMetaData);
}
- /**
- * This method is used to fill the axis service , it dose loading service class and also the provider class
- * and it will also load the service handlers
- *
- * @param axisService
- * @throws org.apache.axis2.AxisFault
- */
- private void loadServiceProperties(AxisService axisService) throws AxisFault {
- Flow inflow = axisService.getInFlow();
- if (inflow != null) {
- addFlowHandlers(inflow);
- }
-
- Flow outFlow = axisService.getOutFlow();
- if (outFlow != null) {
- addFlowHandlers(outFlow);
- }
-
- Flow faultInFlow = axisService.getFaultInFlow();
- if (faultInFlow != null) {
- addFlowHandlers(faultInFlow);
- }
-
- Flow faultOutFlow = axisService.getFaultOutFlow();
- if (faultOutFlow != null) {
- addFlowHandlers(faultOutFlow);
- }
- // axisService.setClassLoader(currentArchiveFile.getClassLoader());
- }
-
- private void loadModuleClass(ModuleDescription module) throws AxisFault {
- Class moduleClass;
- try {
- String readInClass = currentArchiveFile.getModuleClass();
- if (readInClass != null && !"".equals(readInClass)) {
- moduleClass =
- Class.forName(readInClass,
- true,
- currentArchiveFile.getClassLoader());
- module.setModule((Module) moduleClass.newInstance());
- }
- } catch (Exception e) {
- throw new AxisFault(e.getMessage(), e);
- }
-
- }
-
-
- private void addFlowHandlers(Flow flow) throws AxisFault {
- int count = flow.getHandlerCount();
- ClassLoader loader1 = currentArchiveFile.getClassLoader();
- for (int j = 0; j < count; j++) {
- HandlerDescription handlermd = flow.getHandler(j);
- Class handlerClass;
- Handler handler;
- handlerClass = getHandlerClass(handlermd.getClassName(), loader1);
- try {
- handler = (Handler) handlerClass.newInstance();
- handler.init(handlermd);
- handlermd.setHandler(handler);
-
- } catch (InstantiationException e) {
- throw new AxisFault(e);
- } catch (IllegalAccessException e) {
- throw new AxisFault(e);
- }
-
- }
- }
-
-
- public Class getHandlerClass(String className, ClassLoader loader1) throws AxisFault {
- Class handlerClass;
- try {
- handlerClass = Class.forName(className, true, loader1);
- } catch (ClassNotFoundException e) {
- throw new AxisFault(e.getMessage());
- }
- return handlerClass;
- }
private void addNewModule(ModuleDescription modulemetadata) throws AxisFault {
// currentArchiveFile.setClassLoader();
Flow inflow = modulemetadata.getInFlow();
+ ClassLoader moduleClassLoader = modulemetadata.getModuleClassLoader();
if (inflow != null) {
- addFlowHandlers(inflow);
+ Utils.addFlowHandlers(inflow,moduleClassLoader);
}
Flow outFlow = modulemetadata.getOutFlow();
if (outFlow != null) {
- addFlowHandlers(outFlow);
+ Utils.addFlowHandlers(outFlow,moduleClassLoader);
}
Flow faultInFlow = modulemetadata.getFaultInFlow();
if (faultInFlow != null) {
- addFlowHandlers(faultInFlow);
+ Utils.addFlowHandlers(faultInFlow,moduleClassLoader);
}
Flow faultOutFlow = modulemetadata.getFaultOutFlow();
if (faultOutFlow != null) {
- addFlowHandlers(faultOutFlow);
+ Utils.addFlowHandlers(faultOutFlow,moduleClassLoader);
}
- loadModuleClass(modulemetadata);
- modulemetadata.setModuleClassLoader(currentArchiveFile.getClassLoader());
+// modulemetadata.setModuleClassLoader(currentArchiveFile.getClassLoader());
axisConfig.addModule(modulemetadata);
log.info(Messages.getMessage(DeploymentErrorMsgs.ADDING_NEW_MODULE));
}
@@ -557,14 +476,16 @@
archiveReader = new ArchiveReader();
String serviceStatus = "";
try {
- archiveReader.processWSDLs(currentArchiveFile, this);
+ HashMap wsdlservice = archiveReader.processWSDLs(currentArchiveFile, this);
// AxisService service = archiveReader.createService(currentArchiveFile.getAbsolutePath());
AxisServiceGroup sericeGroup =
new AxisServiceGroup(axisConfig);
- archiveReader.processServiceGroup(currentArchiveFile.getAbsolutePath(),
+ sericeGroup.setServiceGroupClassLoader(axisConfig.getServiceClassLoader());
+ ArrayList serviceList = archiveReader.processServiceGroup(
+ currentArchiveFile.getAbsolutePath(),
this,
- sericeGroup, explodedDir);
- addnewService(sericeGroup);
+ sericeGroup, explodedDir,wsdlservice,axisConfig);
+ addServiceGroup(sericeGroup,serviceList);
log.info(Messages.getMessage(
DeploymentErrorMsgs.DEPLOYING_WS, currentArchiveFile.getName()));
} catch (DeploymentException de) {
@@ -603,10 +524,11 @@
String moduleStatus = "";
try {
ModuleDescription metaData = new ModuleDescription();
+ metaData.setModuleClassLoader(currentArchiveFile.getClassLoader());
metaData.setParent(axisConfig);
archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(),
this,
- metaData, explodedDir);
+ metaData, explodedDir,axisConfig);
addNewModule(metaData);
log.info(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_MODULE,
metaData.getName().getLocalPart()));
@@ -739,14 +661,14 @@
*/
public AxisService buildService(AxisService axisService,
InputStream serviceInputStream,
- ClassLoader classLoader) throws DeploymentException {
+ ClassLoader classLoader, AxisConfiguration axisConfig) throws DeploymentException {
try {
currentArchiveFile = new ArchiveFileData(SERVICE, "");
currentArchiveFile.setClassLoader(classLoader);
- ServiceBuilder builder = new ServiceBuilder(serviceInputStream, this, axisService);
+ ServiceBuilder builder = new ServiceBuilder(serviceInputStream,axisConfig, axisService);
builder.populateService(builder.buildOM());
- loadServiceProperties(axisService);
+ Utils.loadServiceProperties(axisService);
} catch (AxisFault axisFault) {
throw new DeploymentException(axisFault);
} catch (XMLStreamException e) {
@@ -769,30 +691,31 @@
this.setPhasesinfo(((AxisConfigurationImpl) config).getPhasesinfo());
currentArchiveFile = new ArchiveFileData(modulearchive, MODULE);
axismodule = new ModuleDescription();
+ axismodule.setModuleClassLoader(currentArchiveFile.getClassLoader());
ArchiveReader archiveReader = new ArchiveReader();
- currentArchiveFile.setClassLoader(false,config.getModuleClassLoader());
- archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(), this, axismodule, false);
+ ClassLoader moduleClassLoader = config.getModuleClassLoader();
+ currentArchiveFile.setClassLoader(false,moduleClassLoader);
+ archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(), this, axismodule, false,axisConfig);
Flow inflow = axismodule.getInFlow();
if (inflow != null) {
- addFlowHandlers(inflow);
+ Utils.addFlowHandlers(inflow,moduleClassLoader);
}
Flow outFlow = axismodule.getOutFlow();
if (outFlow != null) {
- addFlowHandlers(outFlow);
+ Utils.addFlowHandlers(outFlow,moduleClassLoader);
}
Flow faultInFlow = axismodule.getFaultInFlow();
if (faultInFlow != null) {
- addFlowHandlers(faultInFlow);
+ Utils.addFlowHandlers(faultInFlow,moduleClassLoader);
}
Flow faultOutFlow = axismodule.getFaultOutFlow();
if (faultOutFlow != null) {
- addFlowHandlers(faultOutFlow);
+ Utils.addFlowHandlers(faultOutFlow,moduleClassLoader);
}
- loadModuleClass(axismodule);
+// loadModuleClass(axismodule);
} catch (AxisFault axisFault) {
throw new DeploymentException(axisFault);
}
- axismodule.setModuleClassLoader(currentArchiveFile.getClassLoader());
currentArchiveFile = null;
return axismodule;
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java Mon Nov 14 00:04:42 2005
@@ -20,6 +20,7 @@
import org.apache.axis2.Constants;
import org.apache.axis2.description.*;
import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.om.OMAbstractFactory;
import org.apache.axis2.om.OMAttribute;
@@ -44,11 +45,12 @@
protected Log log = LogFactory.getLog(getClass());
protected InputStream des_inputStream;
- protected DeploymentEngine engine;
+ protected AxisConfiguration axisConfig;
+// protected DeploymentEngine engine;
- public DescriptionBuilder(InputStream serviceInputStream, DeploymentEngine engine) {
+ public DescriptionBuilder(InputStream serviceInputStream, AxisConfiguration axisConfig) {
this.des_inputStream = serviceInputStream;
- this.engine = engine;
+ this.axisConfig = axisConfig;
}
public DescriptionBuilder() {
@@ -257,7 +259,7 @@
new QName(REF));
if (moduleRefAttribute !=null) {
String refName = moduleRefAttribute.getAttributeValue();
- if(engine.getModule(new QName(refName)) == null) {
+ if(axisConfig.getModule(new QName(refName)) == null) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.MODEULE_NOT_FOUND, refName));
} else {
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java Mon Nov 14 00:04:42 2005
@@ -17,12 +17,15 @@
package org.apache.axis2.deployment;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.modules.Module;
import org.apache.axis2.deployment.util.PhasesInfo;
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisOperationFactory;
import org.apache.axis2.description.InOnlyAxisOperation;
import org.apache.axis2.description.ModuleDescription;
import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.engine.AxisConfigurationImpl;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.om.OMAttribute;
import org.apache.axis2.om.OMElement;
@@ -39,9 +42,11 @@
public class ModuleBuilder extends DescriptionBuilder{
private ModuleDescription module;
- public ModuleBuilder(InputStream serviceInputSteram, DeploymentEngine engine
- ,ModuleDescription module) {
- super(serviceInputSteram, engine);
+ private AxisConfiguration axisConfig;
+ public ModuleBuilder(InputStream serviceInputSteram,ModuleDescription module ,
+ AxisConfiguration axisConfig) {
+ super(serviceInputSteram, axisConfig);
+ this.axisConfig = axisConfig;
this.module = module;
}
@@ -49,7 +54,6 @@
public void populateModule() throws DeploymentException {
try {
OMElement moduleElement = buildOM();
-
// Setting Module Name
OMAttribute moduleNameAtt = moduleElement.getAttribute(
new QName(ATTNAME));
@@ -57,24 +61,15 @@
String moduleName = moduleNameAtt.getAttributeValue();
if (moduleName != null && !"".equals(moduleName)) {
module.setName(new QName(moduleName));
- } else {
- module.setName(new QName(getShortFileName(engine.getCurrentFileItem()
- .getServiceName())));
}
- }else {
- module.setName(new QName(getShortFileName(engine.getCurrentFileItem()
- .getServiceName())));
}
-
// Setting Module Class , if it is there
OMAttribute moduleClassAtt = moduleElement.getAttribute(
new QName(CLASSNAME));
if(moduleClassAtt !=null){
String moduleClass = moduleClassAtt.getAttributeValue();
if(moduleClass !=null && !"".equals(moduleClass)){
- if (engine !=null) {
- engine.getCurrentFileItem().setModuleClass(moduleClass);
- }
+ loadModuleClass(module,moduleClass);
}
}
@@ -120,11 +115,29 @@
} catch (XMLStreamException e) {
throw new DeploymentException(e);
+ }
+ }
+
+ private void loadModuleClass(ModuleDescription module , String moduleClassName)
+ throws DeploymentException {
+ Class moduleClass;
+ try {
+ if (moduleClassName != null && !"".equals(moduleClassName)) {
+ moduleClass =
+ Class.forName(moduleClassName,
+ true,
+ module.getModuleClassLoader());
+ module.setModule((Module) moduleClass.newInstance());
+ }
+ } catch (Exception e) {
+ throw new DeploymentException(e.getMessage(), e);
}
+
}
+
private ArrayList processOperations(Iterator opeartinsItr) throws DeploymentException {
ArrayList operations = new ArrayList();
while (opeartinsItr.hasNext()) {
@@ -175,8 +188,8 @@
OMElement receiverElement = operation.getFirstChildWithName(
new QName(MESSAGERECEIVER));
if(receiverElement !=null){
- MessageReceiver messageReceiver = loadMessageReceiver(
- engine.getCurrentFileItem().getClassLoader(),receiverElement);
+ MessageReceiver messageReceiver = loadMessageReceiver(module.getModuleClassLoader()
+ ,receiverElement);
op_descrip.setMessageReceiver(messageReceiver);
} else {
//setting default message reciver
@@ -189,7 +202,7 @@
processOperationModuleRefs(modules, op_descrip);
//setting Operation phase
- PhasesInfo info = engine.getPhasesinfo();
+ PhasesInfo info = ((AxisConfigurationImpl) axisConfig).getPhasesinfo();
info.setOperationPhases(op_descrip);
//adding the opeartion
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java Mon Nov 14 00:04:42 2005
@@ -20,6 +20,8 @@
import org.apache.axis2.deployment.util.PhasesInfo;
import org.apache.axis2.description.*;
import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.engine.AxisConfigurationImpl;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.om.OMAttribute;
import org.apache.axis2.om.OMElement;
@@ -42,37 +44,39 @@
*/
-public class ServiceBuilder extends DescriptionBuilder{
+public class ServiceBuilder extends DescriptionBuilder {
private AxisService service;
+ private AxisConfiguration axisConfig;
public ServiceBuilder(InputStream serviceInputSteram,
- DeploymentEngine engine,AxisService service) {
- super(serviceInputSteram, engine);
+ AxisConfiguration axisConfig, AxisService service) {
+ super(serviceInputSteram, axisConfig);
this.service = service;
}
- public ServiceBuilder(DeploymentEngine engine,AxisService service) {
+ public ServiceBuilder(AxisConfiguration axisConfig, AxisService service) {
this.service = service;
- super.engine = engine;
+ this.axisConfig = axisConfig;
+ super.axisConfig = axisConfig;
}
/**
* top most method that used to populate service from corresponding OM
*/
- public void populateService(OMElement service_element) throws DeploymentException {
+ public AxisService populateService(OMElement service_element) throws DeploymentException {
try {
//Processing service level paramters
Iterator itr = service_element.getChildrenWithName(
new QName(PARAMETERST));
- processParameters(itr,service,service.getParent());
+ processParameters(itr, service, service.getParent());
//process service description
OMElement descriptionElement = service_element.getFirstChildWithName(
new QName(DESCRIPTION));
- if (descriptionElement !=null) {
+ if (descriptionElement != null) {
OMElement descriptionValue = descriptionElement.getFirstElement();
- if(descriptionValue !=null){
+ if (descriptionValue != null) {
StringWriter writer = new StringWriter();
descriptionValue.build();
descriptionValue.serialize(new
@@ -92,26 +96,26 @@
//process INFLOW
OMElement inFlow = service_element.getFirstChildWithName(
new QName(INFLOWST));
- if(inFlow !=null){
- service.setInFlow(processFlow(inFlow,service));
+ if (inFlow != null) {
+ service.setInFlow(processFlow(inFlow, service));
}
OMElement outFlow = service_element.getFirstChildWithName(
new QName(OUTFLOWST));
- if(outFlow !=null){
- service.setOutFlow(processFlow(outFlow,service));
+ if (outFlow != null) {
+ service.setOutFlow(processFlow(outFlow, service));
}
OMElement inFaultFlow = service_element.getFirstChildWithName(
new QName(IN_FAILTFLOW));
- if(inFaultFlow !=null){
- service.setFaultInFlow(processFlow(inFaultFlow,service));
+ if (inFaultFlow != null) {
+ service.setFaultInFlow(processFlow(inFaultFlow, service));
}
OMElement outFaultFlow = service_element.getFirstChildWithName(
new QName(OUT_FAILTFLOW));
- if(outFaultFlow !=null){
- service.setFaultOutFlow(processFlow(outFaultFlow,service));
+ if (outFaultFlow != null) {
+ service.setFaultOutFlow(processFlow(outFaultFlow, service));
}
//processing operations
@@ -123,21 +127,22 @@
ArrayList wsamappings = opeartionDesc.getWsamappingList();
for (int j = 0; j < wsamappings.size(); j++) {
Parameter paramter = (Parameter) wsamappings.get(j);
- service.addMapping((String)paramter.getValue(),opeartionDesc);
+ service.addMapping((String) paramter.getValue(), opeartionDesc);
}
service.addOperation(opeartionDesc);
}
Iterator moduleConfigs = service_element.getChildrenWithName(new QName(MODULECONFIG));
- processServiceModuleConfig(moduleConfigs,service,service);
+ processServiceModuleConfig(moduleConfigs, service, service);
} catch (XMLStreamException e) {
throw new DeploymentException(e);
} catch (AxisFault axisFault) {
throw new DeploymentException(Messages.getMessage(
- DeploymentErrorMsgs.OPERATION_PROCESS_ERROR,axisFault.getMessage()));
+ DeploymentErrorMsgs.OPERATION_PROCESS_ERROR, axisFault.getMessage()));
}
+ return service;
}
private ArrayList processOperations(Iterator opeartinsItr) throws AxisFault {
@@ -148,17 +153,17 @@
// /getting opeartion name
OMAttribute op_name_att = operation.getAttribute(
new QName(ATTNAME));
- if(op_name_att == null){
+ if (op_name_att == null) {
throw new DeploymentException(Messages.getMessage(Messages.getMessage(
DeploymentErrorMsgs.INVALID_OP
- ,"operation name missing")));
+ , "operation name missing")));
}
//setting the mep of the operation
OMAttribute op_mep_att = operation.getAttribute(
new QName(MEP));
- String mepurl =null;
- if(op_mep_att !=null){
+ String mepurl = null;
+ if (op_mep_att != null) {
mepurl = op_mep_att.getAttributeValue();
//todo value has to be validate
//todo
@@ -166,15 +171,15 @@
}
String opname = op_name_att.getAttributeValue();
- WSDLOperation wsdlOperation =service.getWSDLOPOperation(new QName(opname));
+ WSDLOperation wsdlOperation = service.getWSDLOPOperation(new QName(opname));
// AxisOperation op_descrip = service.getOperation(new QName(opname));
- AxisOperation op_descrip = null;
- if(wsdlOperation == null){
- if(mepurl == null){
+ AxisOperation op_descrip;
+ if (wsdlOperation == null) {
+ if (mepurl == null) {
// assumed MEP is in-out
op_descrip = new InOutAxisOperation();
} else {
- op_descrip =AxisOperationFactory.getOperetionDescription(mepurl);
+ op_descrip = AxisOperationFactory.getOperetionDescription(mepurl);
}
// op_descrip = new AxisOperation();
op_descrip.setName(new QName(opname));
@@ -182,31 +187,29 @@
} else {
//craeting opeartion from existing opeartion
String mep = wsdlOperation.getMessageExchangePattern();
- if(mep == null) {
+ if (mep == null) {
op_descrip = new InOutAxisOperation(wsdlOperation);
} else {
- op_descrip =AxisOperationFactory.getOperetionDescription(mep);
- op_descrip.setWsdlopeartion((WSDLOperationImpl)wsdlOperation);
+ op_descrip = AxisOperationFactory.getOperetionDescription(mep);
+ op_descrip.setWsdlopeartion((WSDLOperationImpl) wsdlOperation);
}
}
-
-
//Opeartion Paramters
Iterator paramters = operation.getChildrenWithName(
new QName(PARAMETERST));
- ArrayList wsamappings = processParameters(paramters,op_descrip,service);
+ ArrayList wsamappings = processParameters(paramters, op_descrip, service);
op_descrip.setWsamappingList(wsamappings);
// loading the message receivers
OMElement receiverElement = operation.getFirstChildWithName(
new QName(MESSAGERECEIVER));
- if(receiverElement !=null){
+ if (receiverElement != null) {
MessageReceiver messageReceiver = loadMessageReceiver(
- service.getClassLoader(),receiverElement);
+ service.getClassLoader(), receiverElement);
op_descrip.setMessageReceiver(messageReceiver);
- } else {
+ } else {
//setting default message reciver
- MessageReceiver msgReceiver =loadDefaultMessageReceiver();
+ MessageReceiver msgReceiver = loadDefaultMessageReceiver();
op_descrip.setMessageReceiver(msgReceiver);
}
@@ -216,13 +219,13 @@
processOperationModuleRefs(modules, op_descrip);
//setting Operation phase
- if (engine !=null) {
- PhasesInfo info = engine.getPhasesinfo();
+ if (axisConfig != null) {
+ PhasesInfo info = ((AxisConfigurationImpl) axisConfig).getPhasesinfo();
info.setOperationPhases(op_descrip);
}
Iterator moduleConfigs = operation.getChildrenWithName(new QName(MODULECONFIG));
- processOperationModuleConfig(moduleConfigs,op_descrip,op_descrip);
+ processOperationModuleConfig(moduleConfigs, op_descrip, op_descrip);
//adding the opeartion
operations.add(op_descrip);
@@ -231,43 +234,43 @@
}
- protected void processServiceModuleConfig(Iterator moduleConfigs ,
+ protected void processServiceModuleConfig(Iterator moduleConfigs,
ParameterInclude parent, AxisService service)
throws DeploymentException {
while (moduleConfigs.hasNext()) {
OMElement moduleConfig = (OMElement) moduleConfigs.next();
OMAttribute moduleName_att = moduleConfig.getAttribute(
new QName(ATTNAME));
- if(moduleName_att == null){
+ if (moduleName_att == null) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
} else {
String module = moduleName_att.getAttributeValue();
ModuleConfiguration moduleConfiguration =
- new ModuleConfiguration(new QName(module),parent);
- Iterator paramters= moduleConfig.getChildrenWithName(new QName(PARAMETERST));
- processParameters(paramters,moduleConfiguration,parent);
+ new ModuleConfiguration(new QName(module), parent);
+ Iterator paramters = moduleConfig.getChildrenWithName(new QName(PARAMETERST));
+ processParameters(paramters, moduleConfiguration, parent);
service.addModuleConfig(moduleConfiguration);
}
}
}
- protected void processOperationModuleConfig(Iterator moduleConfigs ,
+ protected void processOperationModuleConfig(Iterator moduleConfigs,
ParameterInclude parent, AxisOperation opeartion)
throws DeploymentException {
while (moduleConfigs.hasNext()) {
OMElement moduleConfig = (OMElement) moduleConfigs.next();
OMAttribute moduleName_att = moduleConfig.getAttribute(
new QName(ATTNAME));
- if(moduleName_att == null){
+ if (moduleName_att == null) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
} else {
String module = moduleName_att.getAttributeValue();
ModuleConfiguration moduleConfiguration =
- new ModuleConfiguration(new QName(module),parent);
- Iterator paramters= moduleConfig.getChildrenWithName(new QName(PARAMETERST));
- processParameters(paramters,moduleConfiguration,parent);
+ new ModuleConfiguration(new QName(module), parent);
+ Iterator paramters = moduleConfig.getChildrenWithName(new QName(PARAMETERST));
+ processParameters(paramters, moduleConfiguration, parent);
opeartion.addModuleConfig(moduleConfiguration);
}
}
@@ -275,8 +278,9 @@
/**
* To get the list og modules that is requird to be engage globally
- * @param moduleRefs <code>java.util.Iterator</code>
- * @throws DeploymentException <code>DeploymentException</code>
+ *
+ * @param moduleRefs <code>java.util.Iterator</code>
+ * @throws DeploymentException <code>DeploymentException</code>
*/
protected void processModuleRefs(Iterator moduleRefs) throws DeploymentException {
try {
@@ -284,9 +288,9 @@
OMElement moduleref = (OMElement) moduleRefs.next();
OMAttribute moduleRefAttribute = moduleref.getAttribute(
new QName(REF));
- if(moduleRefAttribute !=null){
+ if (moduleRefAttribute != null) {
String refName = moduleRefAttribute.getAttributeValue();
- if(engine.getModule(new QName(refName)) == null) {
+ if (axisConfig.getModule(new QName(refName)) == null) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.MODEULE_NOT_FOUND, refName));
} else {
@@ -294,8 +298,8 @@
}
}
}
- }catch (AxisFault axisFault) {
- throw new DeploymentException(axisFault);
+ } catch (AxisFault axisFault) {
+ throw new DeploymentException(axisFault);
}
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceGroupBuilder.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceGroupBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceGroupBuilder.java Mon Nov 14 00:04:42 2005
@@ -17,6 +17,7 @@
package org.apache.axis2.deployment;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.AxisServiceGroup;
import org.apache.axis2.description.ModuleConfiguration;
@@ -27,27 +28,38 @@
import javax.xml.namespace.QName;
import java.util.Iterator;
-public class ServiceGroupBuilder extends DescriptionBuilder{
+import java.util.HashMap;
+import java.util.ArrayList;
+
+public class ServiceGroupBuilder extends DescriptionBuilder {
private OMElement servcice;
- public ServiceGroupBuilder(OMElement servcice, DeploymentEngine engine) {
- super.engine =engine;
+ private HashMap wsdlServices;
+ private AxisConfiguration axisConfig;
+
+ public ServiceGroupBuilder(OMElement servcice, HashMap wsdlServices,
+ AxisConfiguration axisConfig) {
this.servcice = servcice;
+ this.wsdlServices = wsdlServices;
+ this.axisConfig = axisConfig;
+ super.axisConfig = axisConfig;
}
- public void populateServiceGroup(AxisServiceGroup axisServiceGroup) throws DeploymentException {
+
+ public ArrayList populateServiceGroup(AxisServiceGroup axisServiceGroup) throws DeploymentException {
+ ArrayList serviceList = new ArrayList();
try {
//Processing service level paramters
Iterator itr = servcice.getChildrenWithName(
new QName(PARAMETERST));
- processParameters(itr,axisServiceGroup,axisServiceGroup.getParent());
+ processParameters(itr, axisServiceGroup, axisServiceGroup.getParent());
Iterator moduleConfigs = servcice.getChildrenWithName(new QName(MODULECONFIG));
- processServiceModuleConfig(moduleConfigs,axisServiceGroup.getParent(),axisServiceGroup);
+ processServiceModuleConfig(moduleConfigs, axisServiceGroup.getParent(), axisServiceGroup);
//processing servicewide modules which required to engage gloabbly
Iterator moduleRefs = servcice.getChildrenWithName(
new QName(MODULEST));
- processModuleRefs(moduleRefs,axisServiceGroup);
+ processModuleRefs(moduleRefs, axisServiceGroup);
Iterator serviceitr = servcice.getChildrenWithName(new QName(SERVICE_ELEMENT));
while (serviceitr.hasNext()) {
@@ -56,48 +68,45 @@
OMAttribute serviceNameatt = service.getAttribute(
new QName(ATTNAME));
String serviceName = serviceNameatt.getAttributeValue();
- if(serviceName == null){
+ if (serviceName == null) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.SEERVICE_NAME_ERROR));
} else {
- AxisService axisService = engine.getCurrentFileItem().getService(
- serviceName);
- if(axisService == null){
+ AxisService axisService = (AxisService) wsdlServices.get(serviceName);
+ if (axisService == null) {
axisService = new AxisService(new QName(serviceName));
- engine.getCurrentFileItem().addService(axisService);
axisService.setName(new QName(serviceName));
}
// the service that has to be deploy
- engine.getCurrentFileItem().getDeploybleServices().add(axisService);
axisService.setParent(axisServiceGroup);
- axisService.setClassLoader(engine.getCurrentFileItem().getClassLoader());
- ServiceBuilder serviceBuilder = new ServiceBuilder(engine,axisService);
- serviceBuilder.populateService(service);
+ axisService.setClassLoader(axisServiceGroup.getServiceGroupClassLoader());
+ ServiceBuilder serviceBuilder = new ServiceBuilder(axisConfig, axisService);
+ AxisService as = serviceBuilder.populateService(service);
+ serviceList.add(as);
}
}
-
- } catch (DeploymentException e) {
+ } catch (AxisFault e) {
throw new DeploymentException(e);
}
-
+ return serviceList;
}
- protected void processServiceModuleConfig(Iterator moduleConfigs ,
+ protected void processServiceModuleConfig(Iterator moduleConfigs,
ParameterInclude parent, AxisServiceGroup axisService)
throws DeploymentException {
while (moduleConfigs.hasNext()) {
OMElement moduleConfig = (OMElement) moduleConfigs.next();
OMAttribute moduleName_att = moduleConfig.getAttribute(
new QName(ATTNAME));
- if(moduleName_att == null){
- throw new DeploymentException(Messages.getMessage(
+ if (moduleName_att == null) {
+ throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
} else {
String module = moduleName_att.getAttributeValue();
ModuleConfiguration moduleConfiguration =
- new ModuleConfiguration(new QName(module),parent);
- Iterator paramters= moduleConfig.getChildrenWithName(new QName(PARAMETERST));
- processParameters(paramters,moduleConfiguration,parent);
+ new ModuleConfiguration(new QName(module), parent);
+ Iterator paramters = moduleConfig.getChildrenWithName(new QName(PARAMETERST));
+ processParameters(paramters, moduleConfiguration, parent);
axisService.addModuleConfig(moduleConfiguration);
}
}
@@ -105,19 +114,20 @@
/**
* To get the list og modules that is requird to be engage globally
- * @param moduleRefs <code>java.util.Iterator</code>
- * @throws DeploymentException <code>DeploymentException</code>
+ *
+ * @param moduleRefs <code>java.util.Iterator</code>
+ * @throws DeploymentException <code>DeploymentException</code>
*/
- protected void processModuleRefs(Iterator moduleRefs ,AxisServiceGroup axisServiceGroup)
+ protected void processModuleRefs(Iterator moduleRefs, AxisServiceGroup axisServiceGroup)
throws DeploymentException {
try {
while (moduleRefs.hasNext()) {
OMElement moduleref = (OMElement) moduleRefs.next();
OMAttribute moduleRefAttribute = moduleref.getAttribute(
new QName(REF));
- if(moduleRefAttribute !=null){
+ if (moduleRefAttribute != null) {
String refName = moduleRefAttribute.getAttributeValue();
- if(engine.getModule(new QName(refName)) == null) {
+ if (axisConfig.getModule(new QName(refName)) == null) {
throw new DeploymentException(Messages.getMessage(
DeploymentErrorMsgs.MODEULE_NOT_FOUND, refName));
} else {
@@ -125,8 +135,8 @@
}
}
}
- }catch (AxisFault axisFault) {
- throw new DeploymentException(axisFault);
+ } catch (AxisFault axisFault) {
+ throw new DeploymentException(axisFault);
}
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java Mon Nov 14 00:04:42 2005
@@ -38,7 +38,7 @@
private File file = null;
private int type;
private String messgeReceiver;
- private String moduleClass;
+// private String moduleClass;
private String name;
@@ -96,14 +96,6 @@
public void setClassLoader(ClassLoader classLoader) {
this.classLoader = classLoader;
- }
-
- public String getModuleClass() {
- return moduleClass;
- }
-
- public void setModuleClass(String moduleClass) {
- this.moduleClass = moduleClass;
}
public void setClassLoader(boolean extarctArichive, ClassLoader parent) throws AxisFault {
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java Mon Nov 14 00:04:42 2005
@@ -27,6 +27,7 @@
import org.apache.axis2.wsdl.WSDLVersionWrapper;
import org.apache.axis2.wsdl.builder.WOMBuilder;
import org.apache.axis2.wsdl.builder.WOMBuilderFactory;
+import org.apache.axis2.engine.AxisConfiguration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.wsdl.WSDLDescription;
@@ -37,7 +38,8 @@
import javax.xml.stream.XMLStreamException;
import java.io.*;
import java.util.Iterator;
-import java.util.Map;
+import java.util.HashMap;
+import java.util.ArrayList;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
@@ -46,54 +48,7 @@
private Log log = LogFactory.getLog(getClass());
- /**
- * To create a ServiceDescrption <code>AxisService</code> using given wsdl , if the
- * service.wsdl there in the arcive file AxisService will be creted using that else
- * default AxisService will be crated
- *
- * @param file
- * @return
- * @throws DeploymentException
- */
- public AxisService createService(ArchiveFileData file) throws DeploymentException {
- AxisService service = null;
- InputStream in = file.getClassLoader().getResourceAsStream(SERVICE_WSDL_WITH_FOLDER);
- boolean foundservice = false;
- try {
- if (in != null) {
- WOMBuilder builder = WOMBuilderFactory.getBuilder(WSDLConstants.WSDL_1_1);
- WSDLVersionWrapper wsdlVersionWrapper = builder.build(in,
- new AxisDescWSDLComponentFactory());
- WSDLDescription womDescription = wsdlVersionWrapper.getDescription();
- Iterator iterator = womDescription.getServices().keySet()
- .iterator();
- if (iterator.hasNext()) {
- foundservice = true;
- // remove <wsdl:service> and <wsdl:binding> elements from the service
- // description we read in as we will be replacing them anyway.
-
- WSDLServiceImpl serviceimpl = (WSDLServiceImpl) womDescription.getServices().get(iterator.next());
- service = new AxisService(serviceimpl);
- }
- if (!foundservice) {
- service = new AxisService();
- }
- service.setWSDLDefinition(wsdlVersionWrapper.getDefinition());
- in.close();
- } else {
- service = new AxisService();
- log.info(Messages.getMessage(DeploymentErrorMsgs.WSDL_FILE_NOT_FOUND,
- file.getName()));
- }
- } catch (Exception e) {
- throw new DeploymentException(e);
- }
-
- return service;
- }
-
-
- private void processWSDLFile(InputStream in , DeploymentEngine depengine) throws DeploymentException {
+ private AxisService processWSDLFile(InputStream in) throws DeploymentException {
try {
WOMBuilder builder = WOMBuilderFactory.getBuilder(WSDLConstants.WSDL_1_1);
WSDLVersionWrapper wsdlVersionWrapper = builder.build(in,
@@ -118,33 +73,39 @@
AxisService service = new AxisService(serviceimpl);
service.setName(serviceimpl.getName());
service.setWSDLDefinition(wsdlVersionWrapper.getDefinition());
- depengine.getCurrentFileItem().addService(service);
+ return service;
+// depengine.getCurrentFileItem().addService(service);
}
} catch (WSDLException e) {
throw new DeploymentException(e);
}
+ return null;
}
/**
* To create service objects out form wsdls file inside a service archive file
- * @param file <code>ArchiveFileData</code>
+ *
+ * @param file <code>ArchiveFileData</code>
* @param depengine <code>DeploymentEngine</code>
- * @throws DeploymentException <code>DeploymentException</code>
+ * @throws DeploymentException <code>DeploymentException</code>
*/
- public void processWSDLs(ArchiveFileData file , DeploymentEngine depengine) throws DeploymentException {
+ public HashMap processWSDLs(ArchiveFileData file, DeploymentEngine depengine) throws DeploymentException {
File serviceFile = file.getFile();
+ //to store service come from wsdl files
+ HashMap servicesMap = new HashMap();
boolean isDirectory = serviceFile.isDirectory();
- if(isDirectory){
+ if (isDirectory) {
try {
- File meta_inf = new File(serviceFile,META_INF);
- if(meta_inf.exists()){
+ File meta_inf = new File(serviceFile, META_INF);
+ if (meta_inf.exists()) {
File files [] = meta_inf.listFiles();
for (int i = 0; i < files.length; i++) {
File file1 = files[i];
String fileName = file1.getName();
- if(fileName.endsWith(".wsdl") || fileName.endsWith(".WSDL")){
+ if (fileName.endsWith(".wsdl") || fileName.endsWith(".WSDL")) {
InputStream in = new FileInputStream(file1);
- processWSDLFile(in,depengine);
+ AxisService service = processWSDLFile(in);
+ servicesMap.put(service.getName().getLocalPart(), service);
try {
in.close();
} catch (IOException e) {
@@ -162,7 +123,7 @@
} catch (IOException e) {
throw new DeploymentException(e);
}
- } else {
+ } else {
ZipInputStream zin;
try {
@@ -170,7 +131,7 @@
ZipEntry entry;
byte[] buf = new byte[1024];
int read;
- ByteArrayOutputStream out ;
+ ByteArrayOutputStream out;
while ((entry = zin.getNextEntry()) != null) {
String entryName = entry.getName();
if ((entryName.startsWith(META_INF) ||
@@ -182,7 +143,8 @@
out.write(buf, 0, read);
}
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
- processWSDLFile(in,depengine);
+ AxisService service = processWSDLFile(in);
+ servicesMap.put(service.getName().getLocalPart(), service);
}
}
try {
@@ -196,7 +158,7 @@
throw new DeploymentException(e);
}
}
-
+ return servicesMap;
}
/**
@@ -206,9 +168,10 @@
* @param filename
* @param engine
*/
- public void processServiceGroup(String filename,
- DeploymentEngine engine,
- AxisServiceGroup axisServiceGroup, boolean extarctService)
+ public ArrayList processServiceGroup(String filename,
+ DeploymentEngine engine,
+ AxisServiceGroup axisServiceGroup, boolean extarctService,
+ HashMap wsdls, AxisConfiguration axisConfig)
throws DeploymentException {
// get attribute values
boolean foundServiceXML = false;
@@ -220,10 +183,9 @@
while ((entry = zin.getNextEntry()) != null) {
if (entry.getName().equals(SERVICEXML)) {
foundServiceXML = true;
- buildServiceGroup(zin, engine, axisServiceGroup);
axisServiceGroup.setServiceGroupName(DescriptionBuilder.getShortFileName(
engine.getCurrentFileItem().getName()));
- break;
+ return buildServiceGroup(zin, engine, axisServiceGroup, wsdls, axisConfig);
}
}
// zin.close();
@@ -237,38 +199,40 @@
} else {
File file = new File(filename, SERVICEXML);
if (file.exists()) {
- InputStream in ;
+ InputStream in;
try {
in = new FileInputStream(file);
- buildServiceGroup(in,engine,axisServiceGroup);
axisServiceGroup.setServiceGroupName(engine.getCurrentFileItem().getName());
+ return buildServiceGroup(in, engine, axisServiceGroup, wsdls, axisConfig);
} catch (FileNotFoundException e) {
throw new DeploymentException(Messages.getMessage(DeploymentErrorMsgs.FNF_WITH_E
- ,e.getMessage()));
+ , e.getMessage()));
} catch (XMLStreamException e) {
throw new DeploymentException(Messages.getMessage(DeploymentErrorMsgs.XTZX_EXCEPTION
- ,e.getMessage()));
+ , e.getMessage()));
}
} else {
throw new DeploymentException(
Messages.getMessage(DeploymentErrorMsgs.SERVICE_XML_NOT_FOUND));
}
}
+ return null;
}
- private void buildServiceGroup(InputStream zin, DeploymentEngine engine,
- AxisServiceGroup axisServiceGroup)
+ private ArrayList buildServiceGroup(InputStream zin, DeploymentEngine engine,
+ AxisServiceGroup axisServiceGroup, HashMap wsdlServices,
+ AxisConfiguration axisConfig)
throws XMLStreamException, DeploymentException {
DescriptionBuilder builder;
String rootelementName;
- builder = new DescriptionBuilder(zin, engine);
+ builder = new DescriptionBuilder(zin, axisConfig);
OMElement services = builder.buildOM();
rootelementName = services.getLocalName();
- if(SERVICE_ELEMENT.equals(rootelementName)){
+ if (SERVICE_ELEMENT.equals(rootelementName)) {
AxisService axisService = engine.getCurrentFileItem().
getService(DescriptionBuilder.getShortFileName(
engine.getCurrentFileItem().getName()));
- if(axisService == null){
+ if (axisService == null) {
axisService = new AxisService(
new QName(DescriptionBuilder.getShortFileName(
engine.getCurrentFileItem().getName())));
@@ -276,18 +240,22 @@
}
axisService.setParent(axisServiceGroup);
axisService.setClassLoader(engine.getCurrentFileItem().getClassLoader());
- ServiceBuilder serviceBuilder = new ServiceBuilder(engine,axisService);
- serviceBuilder.populateService(services);
- engine.getCurrentFileItem().getDeploybleServices().add(axisService);
- } else if(SERVICE_GROUP_ELEMENT.equals(rootelementName)){
- ServiceGroupBuilder groupBuilder = new ServiceGroupBuilder(services,engine);
- groupBuilder.populateServiceGroup(axisServiceGroup);
+ ServiceBuilder serviceBuilder = new ServiceBuilder(axisConfig, axisService);
+ AxisService service = serviceBuilder.populateService(services);
+ ArrayList serviceList = new ArrayList();
+ serviceList.add(service);
+ return serviceList;
+// engine.getCurrentFileItem().getDeploybleServices().add(axisService);
+ } else if (SERVICE_GROUP_ELEMENT.equals(rootelementName)) {
+ ServiceGroupBuilder groupBuilder = new ServiceGroupBuilder(services, wsdlServices, axisConfig);
+ return groupBuilder.populateServiceGroup(axisServiceGroup);
}
+ return null;
}
public void readModuleArchive(String filename,
DeploymentEngine engine,
- ModuleDescription module , boolean explodedDir)
+ ModuleDescription module, boolean explodedDir, AxisConfiguration axisConfig)
throws DeploymentException {
// get attribute values
boolean foundmoduleXML = false;
@@ -299,7 +267,10 @@
while ((entry = zin.getNextEntry()) != null) {
if (entry.getName().equals(MODULEXML)) {
foundmoduleXML = true;
- ModuleBuilder builder = new ModuleBuilder(zin, engine, module);
+ ModuleBuilder builder = new ModuleBuilder(zin, module, axisConfig);
+ //setting module name
+ module.setName(new QName(DescriptionBuilder.getShortFileName(
+ engine.getCurrentFileItem().getServiceName())));
builder.populateModule();
break;
}
@@ -318,11 +289,14 @@
InputStream in;
try {
in = new FileInputStream(file);
- ModuleBuilder builder = new ModuleBuilder(in, engine, module);
+ ModuleBuilder builder = new ModuleBuilder(in, module, axisConfig);
+ // setting module name
+ module.setName(new QName(DescriptionBuilder.getShortFileName(
+ engine.getCurrentFileItem().getServiceName())));
builder.populateModule();
} catch (FileNotFoundException e) {
throw new DeploymentException(Messages.getMessage(DeploymentErrorMsgs.FNF_WITH_E
- ,e.getMessage()));
+ , e.getMessage()));
}
} else {
throw new DeploymentException(Messages.getMessage(
@@ -368,9 +342,9 @@
}
if (in == null) {
throw new DeploymentException(Messages.getMessage(
- DeploymentErrorMsgs.MODULEXML_NOT_FOUND_FOR_THE_MODULE, moduleName));
+ DeploymentErrorMsgs.MODULEXML_NOT_FOUND_FOR_THE_MODULE, moduleName));
} else {
- if(!modules.exists()) {
+ if (!modules.exists()) {
modules.mkdirs();
}
modulearchiveFile.createNewFile();
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/util/Utils.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/util/Utils.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/util/Utils.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/util/Utils.java Mon Nov 14 00:04:42 2005
@@ -1,6 +1,11 @@
package org.apache.axis2.deployment.util;
+import org.apache.axis2.AxisFault;
import org.apache.axis2.deployment.DeploymentException;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Flow;
+import org.apache.axis2.description.HandlerDescription;
+import org.apache.axis2.engine.Handler;
import java.io.File;
import java.net.MalformedURLException;
@@ -28,7 +33,7 @@
public class Utils {
- public static ClassLoader getClassLoader(ClassLoader parent , File file) throws DeploymentException {
+ public static ClassLoader getClassLoader(ClassLoader parent, File file) throws DeploymentException {
URLClassLoader classLoader;
if (file != null) {
try {
@@ -69,5 +74,67 @@
}
}
return null;
+ }
+
+ /**
+ * This method is used to fill the axis service , it dose loading service class and also the provider class
+ * and it will also load the service handlers
+ *
+ * @param axisService
+ * @throws org.apache.axis2.AxisFault
+ */
+ public static void loadServiceProperties(AxisService axisService) throws AxisFault {
+ Flow inflow = axisService.getInFlow();
+ ClassLoader cls = axisService.getClassLoader();
+ if (inflow != null) {
+ addFlowHandlers(inflow, cls);
+ }
+
+ Flow outFlow = axisService.getOutFlow();
+ if (outFlow != null) {
+ addFlowHandlers(outFlow, cls);
+ }
+
+ Flow faultInFlow = axisService.getFaultInFlow();
+ if (faultInFlow != null) {
+ addFlowHandlers(faultInFlow, cls);
+ }
+
+ Flow faultOutFlow = axisService.getFaultOutFlow();
+ if (faultOutFlow != null) {
+ addFlowHandlers(faultOutFlow, cls);
+ }
+ // axisService.setClassLoader(currentArchiveFile.getClassLoader());
+ }
+
+ public static void addFlowHandlers(Flow flow, ClassLoader clsLoader) throws AxisFault {
+ int count = flow.getHandlerCount();
+ for (int j = 0; j < count; j++) {
+ HandlerDescription handlermd = flow.getHandler(j);
+ Class handlerClass;
+ Handler handler;
+ handlerClass = getHandlerClass(handlermd.getClassName(), clsLoader);
+ try {
+ handler = (Handler) handlerClass.newInstance();
+ handler.init(handlermd);
+ handlermd.setHandler(handler);
+
+ } catch (InstantiationException e) {
+ throw new AxisFault(e);
+ } catch (IllegalAccessException e) {
+ throw new AxisFault(e);
+ }
+
+ }
+ }
+
+ private static Class getHandlerClass(String className, ClassLoader loader1) throws AxisFault {
+ Class handlerClass;
+ try {
+ handlerClass = Class.forName(className, true, loader1);
+ } catch (ClassNotFoundException e) {
+ throw new AxisFault(e.getMessage());
+ }
+ return handlerClass;
}
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java Mon Nov 14 00:04:42 2005
@@ -53,6 +53,8 @@
//to store module ref at deploy time parsing
private ArrayList mdoulesList = new ArrayList();
+ //class loader
+ private ClassLoader serviceGroupClassLoader;
public AxisServiceGroup() {
paramInclude = new ParameterIncludeImpl();
@@ -207,5 +209,13 @@
public ServiceGroupContext getServiceGroupContext(ConfigurationContext parent){
ServiceGroupContext serviceGroupContext = new ServiceGroupContext(parent,this) ;
return serviceGroupContext;
+ }
+
+ public ClassLoader getServiceGroupClassLoader() {
+ return serviceGroupClassLoader;
+ }
+
+ public void setServiceGroupClassLoader(ClassLoader serviceGroupClassLoader) {
+ this.serviceGroupClassLoader = serviceGroupClassLoader;
}
}
Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java Mon Nov 14 00:04:42 2005
@@ -130,7 +130,7 @@
ModuleDescription module = new ModuleDescription();
module.setParent(ar);
InputStream in = new FileInputStream(repo + "/module_overide_global_non_locked_para.xml");
- ModuleBuilder mbuilder = new ModuleBuilder(in,null,module);
+ ModuleBuilder mbuilder = new ModuleBuilder(in,module,ar);
mbuilder.populateModule();
}catch (FileNotFoundException e) {
fail("This can not fail with this FileNotFoundException " + e) ;
@@ -145,7 +145,7 @@
ModuleDescription module = new ModuleDescription();
module.setParent(ar);
InputStream in = new FileInputStream(repo + "/module_overide_locked_para.xml");
- ModuleBuilder mbuilder = new ModuleBuilder(in,null,module);
+ ModuleBuilder mbuilder = new ModuleBuilder(in,module,ar);
mbuilder.populateModule();
fail("Parmter is locked can not overide" ) ;
}catch (FileNotFoundException e) {