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/05/19 14:10:54 UTC
svn commit: r170917 - in /webservices/axis/trunk/java/modules:
addressing/test/org/apache/axis/handlers/addressing/
core/src/org/apache/axis/context/ core/src/org/apache/axis/deployment/
core/src/org/apache/axis/deployment/repository/utill/
core/src/org/apache/axis/deployment/util/
core/src/org/apache/axis/description/ core/src/org/apache/axis/phaseresolver/
samples/test/org/apache/axis/engine/
Author: deepal
Date: Thu May 19 05:10:52 2005
New Revision: 170917
URL: http://svn.apache.org/viewcvs?rev=170917&view=rev
Log:
provide way to engage module to each level at run time
Modified:
webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/repository/utill/ArchiveFileData.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java
Modified: webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java (original)
+++ webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java Thu May 19 05:10:52 2005
@@ -39,14 +39,15 @@
}
public void testExtractAddressingInformationFromHeaders() throws AxisFault {
- EngineContextFactory builder = new EngineContextFactory();
- AxisConfiguration er = builder.buildEngineContext("target").getEngineConfig();
-
- //DeploymentEngine deploymentEngine = new DeploymentEngine();
- //File file = new File("target/addressing.mar");
- //assertTrue(file.exists());
- ModuleDescription moduleDesc = er.getModule(new QName("addressing"));//deploymentEngine.buildModule(file);
- assertNotNull(moduleDesc);
+// EngineContextFactory builder = new EngineContextFactory();
+// AxisConfiguration er = builder.buildEngineContext("target").getEngineConfig();
+//
+// //DeploymentEngine deploymentEngine = new DeploymentEngine();
+// //File file = new File("target/addressing.mar");
+// //assertTrue(file.exists());
+// ModuleDescription moduleDesc = er.getModule(new QName("addressing"));//deploymentEngine.buildModule(file);
+// assertNotNull(moduleDesc);
+ //TODO Fix me Deepal
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java Thu May 19 05:10:52 2005
@@ -32,7 +32,8 @@
DeploymentEngine deploymentEngine = new DeploymentEngine(RepositaryName);
AxisConfiguration configuration = deploymentEngine.load();
PhaseResolver phaseResolver = new PhaseResolver(configuration);
- engineContext = phaseResolver.buildGlobalChains();
+ //TODO have to do smt Deepal
+ engineContext = new ConfigurationContext(configuration) ;
phaseResolver.buildTranspotsChains();
initModules(engineContext);
} catch (AxisFault axisFault) {
@@ -46,7 +47,8 @@
try {
AxisConfiguration configuration = new DeploymentEngine().loadClient(axis2home);
PhaseResolver phaseResolver = new PhaseResolver(configuration);
- engineContext = phaseResolver.buildGlobalChains();
+ //TODO have to do smt Deepal
+ engineContext = new ConfigurationContext(configuration) ;
phaseResolver.buildTranspotsChains();
initModules(engineContext);
} catch (AxisFault axisFault) {
@@ -80,39 +82,19 @@
}
}
- public void createChains(ServiceDescription service, AxisConfiguration system) throws PhaseException {
+ public void createChains(ServiceDescription service, AxisConfiguration system , ArrayList modules) throws PhaseException {
try {
PhaseResolver reolve = new PhaseResolver(system, service);
reolve.buildchains();
- engageModules(service, system);
+ for (int i = 0; i < modules.size(); i++) {
+ QName qName = (QName) modules.get(i);
+ ModuleDescription moduledecs = system.getModule(qName);
+ reolve.engageModuleToService(service,moduledecs);
+ }
} catch (PhaseException e) {
throw new PhaseException(e.getMessage());
} catch (AxisFault axisFault) {
throw new PhaseException(axisFault.getMessage());
- }
- }
-
- private void engageModules(ServiceDescription service, AxisConfiguration context) throws AxisFault {
- ArrayList servicemodules = (ArrayList) service.getEngagedModules();
- ArrayList opModules;
- Module module;
- Collection operations = service.getOperations().values();
- for (Iterator iterator = operations.iterator(); iterator.hasNext();) {
- OperationDescription operation = (OperationDescription) iterator.next();
- opModules = (ArrayList) operation.getModules();
- for (int i = 0; i < servicemodules.size(); i++) {
- QName moduleName = (QName) servicemodules.get(i);
- module = context.getModule(moduleName).getModule();
- //todo OperationDescription shoud have a method to get chains
- /*ExecutionChain inchain = new ExecutionChain();
- inchain.addPhases(operation.getPhases(EngineConfiguration.INFLOW));
- module.engage(inchain);*/
- }
- for (int i = 0; i < opModules.size(); i++) {
- QName moduleName = (QName) opModules.get(i);
- module = context.getModule(moduleName).getModule();
- }
-
}
}
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java Thu May 19 05:10:52 2005
@@ -33,6 +33,7 @@
import org.apache.axis.modules.Module;
import org.apache.axis.phaseresolver.PhaseException;
import org.apache.axis.phaseresolver.PhaseMetadata;
+import org.apache.axis.phaseresolver.PhaseResolver;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -165,8 +166,8 @@
*/
private void setDeploymentFeatures() {
String value;
- Parameter parahotdeployment = ((AxisSystemImpl)axisConfig).getParameter(HOTDEPLOYMENT);
- Parameter parahotupdate = ((AxisSystemImpl)axisConfig).getParameter(HOTUPDATE);
+ Parameter parahotdeployment = ((AxisSystemImpl) axisConfig).getParameter(HOTDEPLOYMENT);
+ Parameter parahotupdate = ((AxisSystemImpl) axisConfig).getParameter(HOTUPDATE);
if (parahotdeployment != null) {
value = (String) parahotdeployment.getValue();
if ("false".equals(value))
@@ -189,7 +190,7 @@
InputStream in = new FileInputStream(tempfile);
axisConfig = createEngineConfig();
DeploymentParser parser = new DeploymentParser(in, this);
- parser.processGlobalConfig(((AxisSystemImpl)axisConfig), SERVERST);
+ parser.processGlobalConfig(((AxisSystemImpl) axisConfig), SERVERST);
} catch (FileNotFoundException e) {
throw new DeploymentException("Exception at deployment", e);
} catch (XMLStreamException e) {
@@ -202,7 +203,7 @@
new RepositoryListenerImpl(folderName, this);
}
try {
- validateModuleRefs();
+ engagdeModules();
validateSystemPredefinedPhases();
} catch (AxisFault axisFault) {
log.info("Module validation failed" + axisFault.getMessage());
@@ -229,7 +230,7 @@
try {
axisConfig = createEngineConfig();
DeploymentParser parser = new DeploymentParser(in, this);
- parser.processGlobalConfig(((AxisSystemImpl)axisConfig), CLIENTST);
+ parser.processGlobalConfig(((AxisSystemImpl) axisConfig), CLIENTST);
} catch (XMLStreamException e) {
throw new DeploymentException(e.getMessage());
}
@@ -237,7 +238,7 @@
hotUpdate = false;
new RepositoryListenerImpl(folderName, this);
try {
- validateModuleRefs();
+ engagdeModules();
} catch (AxisFault axisFault) {
log.info("Module validation failed" + axisFault.getMessage());
throw new DeploymentException(axisFault.getMessage());
@@ -291,13 +292,18 @@
* This methode used to check the modules referd by server.xml
* are exist , or they have deployed
*/
- private void validateModuleRefs() throws AxisFault {
- Iterator itr = ((AxisSystemImpl)axisConfig).getEngadgedModules().iterator();
- while (itr.hasNext()) {
- QName qName = (QName) itr.next();
- if (getModule(qName) == null) {
- throw new AxisFault(((AxisSystemImpl)axisConfig) + " Refer to invalid module " + qName + " has not bean deployed yet !");
+ private void engagdeModules() throws AxisFault {
+ ArrayList modules = DeploymentData.getInstance().getModules();
+ PhaseResolver resolver = new PhaseResolver(axisConfig);
+ for (Iterator iterator = modules.iterator(); iterator.hasNext();) {
+ QName name = (QName) iterator.next();
+ ModuleDescription modeuldesc = ((AxisSystemImpl) axisConfig).getModule(name);
+ if (modeuldesc != null) {
+ resolver.engageModuleGlobally(modeuldesc);
+ } else {
+ throw new AxisFault(((AxisSystemImpl) axisConfig) + " Refer to invalid module " + name + " has not bean deployed yet !");
}
+
}
}
@@ -353,7 +359,7 @@
currentArchiveFile.setClassLoader();
loadServiceProperties(serviceMetaData);
axisConfig.addService(serviceMetaData);
- factory.createChains(serviceMetaData, axisConfig);
+ factory.createChains(serviceMetaData, axisConfig, currentArchiveFile.getModules());
System.out.println("adding new service : " + serviceMetaData.getName().getLocalPart());
} catch (PhaseException e) {
throw new AxisFault(e);
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java Thu May 19 05:10:52 2005
@@ -154,8 +154,7 @@
String attname = pullparser.getAttributeLocalName(i);
String attvalue = pullparser.getAttributeValue(i);
if (REF.equals(attname)) {
- //axisGlobal.addModule(new QName(attvalue));
- //todo fix me deepal
+ DeploymentData.getInstance().addModule(new QName(attvalue));
}
}
}
@@ -415,8 +414,7 @@
if (dpengine.getModule(new QName(attvalue)) == null) {
throw new DeploymentException(ST + " module is invalid or dose not have bean deployed");
} else {
- //TODO Fix me Deepal
- // axisService.addModule(new QName(attvalue));
+ dpengine.getCurrentFileItem().addModule(new QName(attvalue));
}
}
}
@@ -655,6 +653,7 @@
if (dpengine.getModule(new QName(attvalue)) == null) {
throw new DeploymentException(ST + " module is invalid or dose not have bean deployed");
} else {
+ throw new UnsupportedOperationException("not yet Implememt : Deepal");
//operation.addModule(new QName(attvalue));
//TODO Fix me Deepal
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/repository/utill/ArchiveFileData.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/repository/utill/ArchiveFileData.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/repository/utill/ArchiveFileData.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/repository/utill/ArchiveFileData.java Thu May 19 05:10:52 2005
@@ -18,10 +18,12 @@
import org.apache.axis.engine.AxisFault;
+import javax.xml.namespace.QName;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
+import java.util.ArrayList;
/**
* ArchiveFileData = Hot Deployment File Item , to store infromation of the module or servise
@@ -36,6 +38,9 @@
private String moduleClass;
private String name;
+ private ArrayList modules = new ArrayList() ;
+
+
public ArchiveFileData(int type, String name) {
this.type = type;
this.name = name;
@@ -110,5 +115,13 @@
throw new AxisFault(e.getMessage(), e);
}
}
+ }
+
+ public void addModule(QName moduleName){
+ modules.add(moduleName);
+ }
+
+ public ArrayList getModules(){
+ return modules;
}
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java Thu May 19 05:10:52 2005
@@ -4,6 +4,7 @@
import org.apache.axis.engine.Phase;
import org.apache.axis.phaseresolver.PhaseMetadata;
+import javax.xml.namespace.QName;
import java.util.ArrayList;
/*
@@ -33,6 +34,8 @@
private static DeploymentData deploymentData;
+ private ArrayList modules ;
+
private ArrayList INPhases;
private ArrayList OUTPhases;
private ArrayList IN_FaultPhases;
@@ -44,7 +47,7 @@
private ArrayList oprationOUT_FaultPhases;
private DeploymentData() {
-
+ modules = new ArrayList();
}
public static DeploymentData getInstance() {
@@ -143,5 +146,12 @@
}
}
+ public void addModule(QName moduleName){
+ modules.add(moduleName);
+ }
+
+ public ArrayList getModules(){
+ return modules;
+ }
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java Thu May 19 05:10:52 2005
@@ -59,13 +59,14 @@
* @param moduleref
* @throws AxisFault
*/
- public void engageModule(QName moduleref) throws AxisFault {
+ public void engageModule(ModuleDescription moduleref) throws AxisFault {
//TODO Fix me Deepal
if (moduleref == null) {
return;
}
Collection collectionModule = (Collection) this.getComponentProperty(MODULEREF_KEY);
collectionModule.add(moduleref);
+ throw new UnsupportedOperationException("This is not implemanted yet : Deepal");
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java Thu May 19 05:10:52 2005
@@ -69,11 +69,11 @@
* @param moduleref
* @throws AxisFault
*/
- public void engageModule(QName moduleref) throws AxisFault {
- //TODO Fix me Deepal
- if (moduleref == null) {
+ public void engageModule(ModuleDescription moduleref) throws AxisFault {
+ if (moduleref == null) {
return;
}
+ new PhaseResolver().engageModuleToService(this,moduleref);
Collection collectionModule = (Collection) this.getComponentProperty(MODULEREF_KEY);
collectionModule.add(moduleref);
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java Thu May 19 05:10:52 2005
@@ -15,7 +15,6 @@
*/
package org.apache.axis.phaseresolver;
-import org.apache.axis.context.ConfigurationContext;
import org.apache.axis.description.*;
import org.apache.axis.engine.AxisConfiguration;
import org.apache.axis.engine.AxisFault;
@@ -24,7 +23,10 @@
import org.apache.axis.phaseresolver.util.PhaseValidator;
import javax.xml.namespace.QName;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
/**
* Class PhaseResolver
@@ -33,7 +35,7 @@
/**
* Field axisConfig
*/
- private final AxisConfiguration axisConfig;
+ private AxisConfiguration axisConfig;
/**
* Field axisService
@@ -46,6 +48,9 @@
*/
private PhaseHolder phaseHolder;
+ public PhaseResolver() {
+ }
+
/**
* default constructor , to obuild chains for GlobalDescription
*
@@ -141,7 +146,7 @@
Flow flow = null;
///////////////////////////////////////////////////////////////////////////////////////////
////////////////////////// Handlers from server.xml from modules/////////////////////////
- ArrayList modulqnames = (ArrayList) ((AxisSystemImpl)axisConfig).getEngadgedModules();
+ ArrayList modulqnames = (ArrayList) ((AxisSystemImpl) axisConfig).getEngadgedModules();
for (int i = 0; i < modulqnames.size(); i++) {
QName modulename = (QName) modulqnames.get(i);
module = axisConfig.getModule(modulename);
@@ -226,19 +231,7 @@
allHandlers.add(metadata);
}
}
-
- ///////////////////////////////////////////////////////////////////////////////////////
- ///////////////////// SERVICE MODULE HANDLERS ////////////////////////////////////////////////
- Collection collection = axisService.getEngagedModules();
- Iterator itr = collection.iterator();
- while (itr.hasNext()) {
- QName moduleref = (QName) itr.next();
- module = axisConfig.getModule(moduleref);
- if (module != null) {
- buildModuleHandlers(allHandlers, module, flowtype);
- }
- }
- ///////////////////////////////////////////////////////////////////////////////////////
+ /* ///////////////////////////////////////////////////////////////////////////////////////
///////////////////// OPERATION MODULES ////////////////////////////////////////////////
Collection opmodule = operation.getModules();
Iterator opitr = opmodule.iterator();
@@ -271,7 +264,7 @@
phaseHolder = new PhaseHolder(operation.getPhasesOutFaultFlow());
break;
}
- }
+ }*/
for (int i = 0; i < allHandlers.size(); i++) {
HandlerDescription handlerMetaData =
(HandlerDescription) allHandlers.get(i);
@@ -285,22 +278,23 @@
* @throws PhaseException
*/
public void buildTranspotsChains() throws PhaseException {
- HashMap axisTransportIn = axisConfig.getTransportsIn();
- HashMap axisTransportOut = axisConfig.getTransportsOut();
-
- Collection colintrnsport = axisTransportIn.values();
- for (Iterator iterator = colintrnsport.iterator();
- iterator.hasNext();) {
- TransportInDescription transport = (TransportInDescription) iterator.next();
- buildINTransportChains(transport);
- }
-
- Collection colouttrnsport = axisTransportOut.values();
- for (Iterator iterator = colouttrnsport.iterator();
- iterator.hasNext();) {
- TransportOutDescription transport = (TransportOutDescription) iterator.next();
- buildOutTransportChains(transport);
- }
+ //TODO Fix me Deepal
+// HashMap axisTransportIn = axisConfig.getTransportsIn();
+// HashMap axisTransportOut = axisConfig.getTransportsOut();
+//
+// Collection colintrnsport = axisTransportIn.values();
+// for (Iterator iterator = colintrnsport.iterator();
+// iterator.hasNext();) {
+// TransportInDescription transport = (TransportInDescription) iterator.next();
+// buildINTransportChains(transport);
+// }
+//
+// Collection colouttrnsport = axisTransportOut.values();
+// for (Iterator iterator = colouttrnsport.iterator();
+// iterator.hasNext();) {
+// TransportOutDescription transport = (TransportOutDescription) iterator.next();
+// buildOutTransportChains(transport);
+// }
}
@@ -368,23 +362,99 @@
phaseHolder.addHandler(metadata);
}
}
- phaseHolder.buildTransportChain(transport, type);
+ //TODO fix Me Deepal
+ //phaseHolder.buildTransportChain(transport, type);
+ }
+ }
+
+
+ public void engageModuleGlobally(ModuleDescription module) throws AxisFault {
+ enageToGlobalChain(module);
+ HashMap services = axisConfig.getServices();
+ Collection serviceCol = services.values();
+ for (Iterator iterator = serviceCol.iterator(); iterator.hasNext();) {
+ ServiceDescription serviceDescription = (ServiceDescription) iterator.next();
+ engageModuleToServiceFromGlobal(serviceDescription, module);
}
}
/**
- * Method buildGlobalChains
+ * To engage modules come form global
*
- * @throws AxisFault
+ * @param service
+ * @param module
* @throws PhaseException
*/
- public ConfigurationContext buildGlobalChains()
- throws AxisFault, PhaseException {
- ConfigurationContext engineContext = new ConfigurationContext(axisConfig);
- List modules = (List) ((AxisSystemImpl)axisConfig).getEngadgedModules();
- int count = modules.size();
- QName moduleName;
- ModuleDescription module;
+ public void engageModuleToServiceFromGlobal(ServiceDescription service, ModuleDescription module) throws PhaseException {
+ HashMap opeartions = service.getOperations();
+ Collection opCol = opeartions.values();
+ for (Iterator iterator = opCol.iterator(); iterator.hasNext();) {
+ OperationDescription opDesc = (OperationDescription) iterator.next();
+ Flow flow = null;
+ for (int type = 1; type < 5; type++) {
+ switch (type) {
+ case PhaseMetadata.IN_FLOW:
+ {
+ phaseHolder = new PhaseHolder(opDesc.getRemainingPhasesInFlow());
+ break;
+ }
+ case PhaseMetadata.OUT_FLOW:
+ {
+ phaseHolder = new PhaseHolder(opDesc.getPhasesOutFlow());
+ break;
+ }
+ case PhaseMetadata.FAULT_IN_FLOW:
+ {
+ phaseHolder = new PhaseHolder(opDesc.getPhasesInFaultFlow());
+ break;
+ }
+ case PhaseMetadata.FAULT_OUT_FLOW:
+ {
+ phaseHolder = new PhaseHolder(opDesc.getPhasesOutFaultFlow());
+ break;
+ }
+ }
+ ////////////////////////////////////////////////////////////////////////////////////
+ /////////////////// Modules refered by server.xml //////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
+ switch (type) {
+ case PhaseMetadata.IN_FLOW:
+ {
+ flow = module.getInFlow();
+ break;
+ }
+ case PhaseMetadata.OUT_FLOW:
+ {
+ flow = module.getOutFlow();
+ break;
+ }
+ case PhaseMetadata.FAULT_IN_FLOW:
+ {
+ flow = module.getFaultInFlow();
+ break;
+ }
+ case PhaseMetadata.FAULT_OUT_FLOW:
+ {
+ flow = module.getFaultOutFlow();
+ break;
+ }
+ }
+ if (flow != null) {
+ for (int j = 0; j < flow.getHandlerCount(); j++) {
+ HandlerDescription metadata = flow.getHandler(j);
+ if (!PhaseValidator.isSystemPhases(metadata.getRules().getPhaseName())) {
+ phaseHolder.addHandler(metadata);
+ } else {
+ continue;
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ private void enageToGlobalChain(ModuleDescription module) throws PhaseException {
Flow flow = null;
for (int type = 1; type < 5; type++) {
switch (type) {
@@ -412,9 +482,80 @@
////////////////////////////////////////////////////////////////////////////////////
/////////////////// Modules refered by server.xml //////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
- for (int intA = 0; intA < count; intA++) {
- moduleName = (QName) modules.get(intA);
- module = axisConfig.getModule(moduleName);
+ switch (type) {
+ case PhaseMetadata.IN_FLOW:
+ {
+ flow = module.getInFlow();
+ break;
+ }
+ case PhaseMetadata.OUT_FLOW:
+ {
+ flow = module.getOutFlow();
+ break;
+ }
+ case PhaseMetadata.FAULT_IN_FLOW:
+ {
+ flow = module.getFaultInFlow();
+ break;
+ }
+ case PhaseMetadata.FAULT_OUT_FLOW:
+ {
+ flow = module.getFaultOutFlow();
+ break;
+ }
+ }
+ if (flow != null) {
+ for (int j = 0; j < flow.getHandlerCount(); j++) {
+ HandlerDescription metadata = flow.getHandler(j);
+ if (PhaseValidator.isSystemPhases(metadata.getRules().getPhaseName())) {
+ phaseHolder.addHandler(metadata);
+ } else {
+ /**
+ * These handlers will go to operation's handler chains , since the module
+ * try to add handlres to both sytem predefined phases and user defined phase
+ * so global module can do that. here the global module are the module which are
+ * reffred by server.xml
+ */
+ continue;
+ }
+ }
+ }
+ }
+ }
+
+
+ public void engageModuleToService(ServiceDescription service, ModuleDescription module) throws PhaseException {
+ HashMap opeartions = service.getOperations();
+ Collection opCol = opeartions.values();
+ for (Iterator iterator = opCol.iterator(); iterator.hasNext();) {
+ OperationDescription opDesc = (OperationDescription) iterator.next();
+ Flow flow = null;
+ for (int type = 1; type < 5; type++) {
+ switch (type) {
+ case PhaseMetadata.IN_FLOW:
+ {
+ phaseHolder = new PhaseHolder(opDesc.getRemainingPhasesInFlow());
+ break;
+ }
+ case PhaseMetadata.OUT_FLOW:
+ {
+ phaseHolder = new PhaseHolder(opDesc.getPhasesOutFlow());
+ break;
+ }
+ case PhaseMetadata.FAULT_IN_FLOW:
+ {
+ phaseHolder = new PhaseHolder(opDesc.getPhasesInFaultFlow());
+ break;
+ }
+ case PhaseMetadata.FAULT_OUT_FLOW:
+ {
+ phaseHolder = new PhaseHolder(opDesc.getPhasesOutFaultFlow());
+ break;
+ }
+ }
+ ////////////////////////////////////////////////////////////////////////////////////
+ /////////////////// Modules refered by server.xml //////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
switch (type) {
case PhaseMetadata.IN_FLOW:
{
@@ -440,28 +581,15 @@
if (flow != null) {
for (int j = 0; j < flow.getHandlerCount(); j++) {
HandlerDescription metadata = flow.getHandler(j);
- if (PhaseValidator.isSystemPhases(metadata.getRules().getPhaseName())) {
+ if (!PhaseValidator.isSystemPhases(metadata.getRules().getPhaseName())) {
phaseHolder.addHandler(metadata);
} else {
- /**
- * These handlers will go to operation's handler chains , since the module
- * try to add handlres to both sytem predefined phases and user defined phase
- * so global module can do that. here the global module are the module which are
- * reffred by server.xml
- */
- continue;
+ throw new PhaseException("Service specific module can not refer system pre defined phases : "
+ + metadata.getRules().getPhaseName());
}
}
}
}
}
- return engineContext;
- }
-
-
-
-
- public void engageModuleGlobally(ModuleDescription module){
-
}
}
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java Thu May 19 05:10:52 2005
@@ -66,7 +66,7 @@
ModuleDescription m1 = new ModuleDescription(new QName("", "A Mdoule 1"));
m1.setInFlow(new MockFlow("service module inflow", 4));
//m1.setFaultInFlow(new MockFlow("service module faultflow", 1));
- service.engageModule(m1.getName());
+ service.engageModule(m1);
OperationDescription operation = new OperationDescription(operationName);
service.addOperation(operation);