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 he...@apache.org on 2005/05/09 07:21:12 UTC
svn commit: r169236 - in /webservices/axis/trunk/java/modules/core:
src/org/apache/axis/clientapi/ src/org/apache/axis/context/
src/org/apache/axis/description/ src/org/apache/axis/engine/
src/org/apache/axis/transport/http/ src/org/apache/axis/transport/mail/
src/org/apache/axis/util/ test/org/apache/axis/context/
test/org/apache/axis/engine/ test/org/apache/axis/handlers/addressing/
Author: hemapani
Date: Sun May 8 22:21:11 2005
New Revision: 169236
URL: http://svn.apache.org/viewcvs?rev=169236&view=rev
Log:
refactor the dispatchers
Added:
webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AbstractDispatcher.java
Removed:
webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/ServiceHandlersChainBuilder.java
Modified:
webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/Call.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/MessageContext.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisService.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AddressingBasedDispatcher.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/EngineConfigurationImpl.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/RequestURIBasedDispatcher.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/SimpleHTTPServer.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/util/Utils.java
webservices/axis/trunk/java/modules/core/test/org/apache/axis/context/MEPContextTest.java
webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EnginePausingTest.java
webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EngineWithoutPhaseResolvingTest.java
webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/MessageContextTest.java
webservices/axis/trunk/java/modules/core/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/Call.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/Call.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/Call.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/Call.java Sun May 8 22:21:11 2005
@@ -124,7 +124,7 @@
final MessageContext msgctx =
new MessageContext(null,
transportIn,
- transportOut);
+ transportOut,engineContext);
msgctx.setEnvelope(env);
@@ -190,7 +190,6 @@
MessageContext msgctx =
new MessageContext(
engineContext,
- properties,
null,
transportIn,
transportOut,
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/MessageContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/MessageContext.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/MessageContext.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/MessageContext.java Sun May 8 22:21:11 2005
@@ -114,31 +114,43 @@
private boolean paused = false;
public boolean outPutWritten = false;
-
+
private String serviceInstanceID;
/**
- * @param initialProperties of the message context, should be null if no properties
- * @param sessionContext of the message context, should be null if no sessionContext
+ *
+ * @param engineContext
+ * @param sessionContext
+ * @param transportIn
+ * @param transportOut
+ * @param mepContext
* @throws AxisFault
*/
public MessageContext(
EngineContext engineContext,
- Map initialProperties,
SessionContext sessionContext,
AxisTransportIn transportIn,
AxisTransportOut transportOut,
OperationContext mepContext)
throws AxisFault {
- this(sessionContext, transportIn, transportOut);
+ this(sessionContext, transportIn, transportOut, engineContext);
this.operationContext = mepContext;
}
+ /**
+ *
+ * @param sessionContext
+ * @param transportIn
+ * @param transportOut
+ * @param engineContext
+ * @throws AxisFault
+ */
public MessageContext(
SessionContext sessionContext,
AxisTransportIn transportIn,
- AxisTransportOut transportOut)
+ AxisTransportOut transportOut,
+ EngineContext engineContext)
throws AxisFault {
super(null);
@@ -151,6 +163,7 @@
messageInformationHeaders = new MessageInformationHeadersCollection();
this.transportIn = transportIn;
this.transportOut = transportOut;
+ this.engineContext = engineContext;
}
@@ -426,22 +439,43 @@
public void setOutPutWritten(boolean b) {
outPutWritten = b;
}
-
+
+ /**
+ * @return Returns the serviceInstanceID.
+ */
+ public String getServiceInstanceID() {
+ return serviceInstanceID;
+ }
+ /**
+ * @param serviceInstanceID The serviceInstanceID to set.
+ */
+ public void setServiceInstanceID(String serviceInstanceID) {
+ this.serviceInstanceID = serviceInstanceID;
+ }
+
+ public EngineContext getEngineContext() {
+ return engineContext;
+ }
+
+ /**
+ * @return
+ */
+ public ServiceContext getServiceContext() {
+ return serviceContext;
+ }
+
+ /**
+ * @param context
+ */
+ public void setEngineContext(EngineContext context) {
+ engineContext = context;
+ }
+
/**
- * @return Returns the serviceInstanceID.
- */
- public String getServiceInstanceID() {
- return serviceInstanceID;
- }
- /**
- * @param serviceInstanceID The serviceInstanceID to set.
- */
- public void setServiceInstanceID(String serviceInstanceID) {
- this.serviceInstanceID = serviceInstanceID;
- }
-
- public EngineContext getEngineContext(){
- return engineContext;
- }
+ * @param context
+ */
+ public void setServiceContext(ServiceContext context) {
+ serviceContext = context;
+ }
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisService.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisService.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisService.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisService.java Sun May 8 22:21:11 2005
@@ -29,384 +29,382 @@
/**
* Class AxisService
*/
-public class AxisService extends WSDLServiceImpl implements WSDLService,
- ParameterInclude, FlowInclude, DescriptionConstants {
- /**
- * TODO this should be in the WSDLInterface, yet we want it to have in the
- * the Services, so we put this here for M1 until we foud better way to do
- * that
- */
- protected final HashMap operationsMap = new HashMap();
-
- /**
- * Constructor AxisService
- */
- public AxisService() {
- this.setComponentProperty(MODULEREF_KEY, new ArrayList());
- this.setComponentProperty(PARAMETER_KEY, new ParameterIncludeImpl());
- }
-
- /**
- * Constructor AxisService
- *
- * @param qName
- */
- public AxisService(QName qName) {
- this();
- this.setName(qName);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.AxisService#addModule(javax.xml.namespace.QName)
- */
-
- /**
- * Method addModule
- *
- * @param moduleref
- */
- public void addModule(QName moduleref) {
- if (moduleref == null) {
- return;
- }
- Collection collectionModule = (Collection) this
- .getComponentProperty(MODULEREF_KEY);
- collectionModule.add(moduleref);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.AxisService#getModules()
- */
-
- /**
- * Method getModules
- *
- * @return
- */
- public Collection getModules() {
- return (Collection) this.getComponentProperty(MODULEREF_KEY);
- }
-
- /**
- * Method getOperation
- *
- * @param operationName
- * @return
- */
- public AxisOperation getOperation(QName operationName) {
-
- // todo The key has been changed from the qname to the local name
- // because
- // todo when comparing the namespace will not be available
- return (AxisOperation) this.operationsMap.get(operationName
- .getLocalPart());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.AxisService#addOperation(org.apache.axis.description.AxisOperation)
- */
-
- /**
- * Method addOperation
- *
- * @param operation
- */
- public void addOperation(AxisOperation operation) {
-
- // todo The key has been changed from the qname to the local name
- // because
- // todo when comparing the namespace will not be available
- if (operation != null) {
- this.operationsMap.put(operation.getName().getLocalPart(),
- operation);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.AxisService#setClassLoader(java.lang.ClassLoader)
- */
-
- /**
- * Method setClassLoader
- *
- * @param classLoader
- */
- public void setClassLoader(ClassLoader classLoader) {
- if (classLoader != null) {
- this.setComponentProperty(CLASSLOADER_KEY, classLoader);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.AxisService#getClassLoader()
- */
-
- /**
- * Method getClassLoader
- *
- * @return
- */
- public ClassLoader getClassLoader() {
- return (ClassLoader) this.getComponentProperty(CLASSLOADER_KEY);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.AxisService#setContextPath(java.lang.String)
- */
-
- /**
- * Method setContextPath
- *
- * @param contextPath
- */
- public void setContextPath(String contextPath) {
- if (contextPath != null) {
- this.setComponentProperty(CONTEXTPATH_KEY, contextPath);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.AxisService#getContextPath()
- */
-
- /**
- * Method getContextPath
- *
- * @return
- */
- public String getContextPath() {
- return (String) this.getComponentProperty(CONTEXTPATH_KEY);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.AxisService#setStyle(javax.swing.text.Style)
- */
-
- /**
- * Method setStyle
- *
- * @param style
- */
- public void setStyle(String style) {
- if (style != null) {
- this.setComponentProperty(STYLE_KEY, style);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.AxisService#getStyle()
- */
-
- /**
- * Method getStyle
- *
- * @return
- */
- public String getStyle() {
- return (String) this.getComponentProperty(STYLE_KEY);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.PhasesInclude#getPhases(java.util.ArrayList,
- * int)
- */
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.ParameterInclude#addParameter(org.apache.axis.description.Parameter)
- */
-
- /**
- * Method addParameter
- *
- * @param param
- */
- public void addParameter(Parameter param) {
- if (param == null) {
- return;
- }
- ParameterIncludeImpl paramInclude = (ParameterIncludeImpl) this
- .getComponentProperty(PARAMETER_KEY);
- paramInclude.addParameter(param);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.ParameterInclude#getParameter(java.lang.String)
- */
-
- /**
- * Method getParameter
- *
- * @param name
- * @return
- */
- public Parameter getParameter(String name) {
- ParameterIncludeImpl paramInclude = (ParameterIncludeImpl) this
- .getComponentProperty(PARAMETER_KEY);
- return (Parameter) paramInclude.getParameter(name);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.FlowInclude#getInFlow()
- */
-
- /**
- * Method getInFlow
- *
- * @return
- */
- public Flow getInFlow() {
- return (Flow) this.getComponentProperty(INFLOW_KEY);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.FlowInclude#setInFlow(org.apache.axis.description.Flow)
- */
-
- /**
- * Method setInFlow
- *
- * @param inFlow
- */
- public void setInFlow(Flow inFlow) {
- if (inFlow != null) {
- this.setComponentProperty(INFLOW_KEY, inFlow);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.FlowInclude#getOutFlow()
- */
-
- /**
- * Method getOutFlow
- *
- * @return
- */
- public Flow getOutFlow() {
- return (Flow) this.getComponentProperty(OUTFLOW_KEY);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.FlowInclude#setOutFlow(org.apache.axis.description.Flow)
- */
-
- /**
- * Method setOutFlow
- *
- * @param outFlow
- */
- public void setOutFlow(Flow outFlow) {
- if (outFlow != null) {
- this.setComponentProperty(OUTFLOW_KEY, outFlow);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.FlowInclude#getFaultInFlow()
- */
-
- /**
- * Method getFaultInFlow
- *
- * @return
- */
- public Flow getFaultInFlow() {
- return (Flow) this.getComponentProperty(IN_FAULTFLOW_KEY);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.axis.description.FlowInclude#setFaultInFlow(org.apache.axis.description.Flow)
- */
-
- /**
- * Method setFaultInFlow
- *
- * @param faultFlow
- */
- public void setFaultInFlow(Flow faultFlow) {
- if (faultFlow != null) {
- this.setComponentProperty(IN_FAULTFLOW_KEY, faultFlow);
- }
- }
-
- public Flow getFaultOutFlow() {
- return (Flow) this.getComponentProperty(OUT_FAULTFLOW_KEY);
- }
-
- public void setFaultOutFlow(Flow faultFlow) {
- if (faultFlow != null) {
- this.setComponentProperty(OUT_FAULTFLOW_KEY, faultFlow);
- }
- }
-
- /**
- * Method getOperations
- *
- * @return
- */
- public HashMap getOperations() {
- return operationsMap;
- }
-
- /**
- * This finds the ServiceContext provided that the incomming message that
- * has have some serviceInstanceID. Currently this will not be added to the
- * EngineContext's ServiceContextMap.
- *
- * @param msgContext
- * @return
- */
- public ServiceContext findServiceContext(MessageContext msgContext) {
- ServiceContext serviceContext = null;
- if (null == msgContext.getServiceInstanceID()) {
- serviceContext = new ServiceContext(this, msgContext
- .getEngineContext());
- //TODO
- // msgContext.getEngineContext().registerServiceContext(serviceContext.getServiceInstanceID(),
- // serviceContext);
- } else {
- serviceContext = (ServiceContext) msgContext.getEngineContext()
- .getServiceContext(msgContext.getServiceInstanceID());
- }
-
- return serviceContext;
+public class AxisService
+ extends WSDLServiceImpl
+ implements WSDLService, ParameterInclude, FlowInclude, DescriptionConstants {
+ /**
+ * TODO this should be in the WSDLInterface, yet we want it to have in the
+ * the Services, so we put this here for M1 until we foud better way to do
+ * that
+ */
+ protected final HashMap operationsMap = new HashMap();
+
+ /**
+ * Constructor AxisService
+ */
+ public AxisService() {
+ this.setComponentProperty(MODULEREF_KEY, new ArrayList());
+ this.setComponentProperty(PARAMETER_KEY, new ParameterIncludeImpl());
+ }
+
+ /**
+ * Constructor AxisService
+ *
+ * @param qName
+ */
+ public AxisService(QName qName) {
+ this();
+ this.setName(qName);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.AxisService#addModule(javax.xml.namespace.QName)
+ */
+
+ /**
+ * Method addModule
+ *
+ * @param moduleref
+ */
+ public void addModule(QName moduleref) {
+ if (moduleref == null) {
+ return;
+ }
+ Collection collectionModule = (Collection) this.getComponentProperty(MODULEREF_KEY);
+ collectionModule.add(moduleref);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.AxisService#getModules()
+ */
+
+ /**
+ * Method getModules
+ *
+ * @return
+ */
+ public Collection getModules() {
+ return (Collection) this.getComponentProperty(MODULEREF_KEY);
+ }
+
+ /**
+ * Method getOperation
+ *
+ * @param operationName
+ * @return
+ */
+ public AxisOperation getOperation(QName operationName) {
+
+ // todo The key has been changed from the qname to the local name
+ // because
+ // todo when comparing the namespace will not be available
+ return (AxisOperation) this.operationsMap.get(operationName.getLocalPart());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.AxisService#addOperation(org.apache.axis.description.AxisOperation)
+ */
+
+ /**
+ * Method addOperation
+ *
+ * @param operation
+ */
+ public void addOperation(AxisOperation operation) {
+
+ // todo The key has been changed from the qname to the local name
+ // because
+ // todo when comparing the namespace will not be available
+ if (operation != null) {
+ this.operationsMap.put(operation.getName().getLocalPart(), operation);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.AxisService#setClassLoader(java.lang.ClassLoader)
+ */
+
+ /**
+ * Method setClassLoader
+ *
+ * @param classLoader
+ */
+ public void setClassLoader(ClassLoader classLoader) {
+ if (classLoader != null) {
+ this.setComponentProperty(CLASSLOADER_KEY, classLoader);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.AxisService#getClassLoader()
+ */
+
+ /**
+ * Method getClassLoader
+ *
+ * @return
+ */
+ public ClassLoader getClassLoader() {
+ return (ClassLoader) this.getComponentProperty(CLASSLOADER_KEY);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.AxisService#setContextPath(java.lang.String)
+ */
+
+ /**
+ * Method setContextPath
+ *
+ * @param contextPath
+ */
+ public void setContextPath(String contextPath) {
+ if (contextPath != null) {
+ this.setComponentProperty(CONTEXTPATH_KEY, contextPath);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.AxisService#getContextPath()
+ */
+
+ /**
+ * Method getContextPath
+ *
+ * @return
+ */
+ public String getContextPath() {
+ return (String) this.getComponentProperty(CONTEXTPATH_KEY);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.AxisService#setStyle(javax.swing.text.Style)
+ */
+
+ /**
+ * Method setStyle
+ *
+ * @param style
+ */
+ public void setStyle(String style) {
+ if (style != null) {
+ this.setComponentProperty(STYLE_KEY, style);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.AxisService#getStyle()
+ */
+
+ /**
+ * Method getStyle
+ *
+ * @return
+ */
+ public String getStyle() {
+ return (String) this.getComponentProperty(STYLE_KEY);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.PhasesInclude#getPhases(java.util.ArrayList,
+ * int)
+ */
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.ParameterInclude#addParameter(org.apache.axis.description.Parameter)
+ */
+
+ /**
+ * Method addParameter
+ *
+ * @param param
+ */
+ public void addParameter(Parameter param) {
+ if (param == null) {
+ return;
+ }
+ ParameterIncludeImpl paramInclude =
+ (ParameterIncludeImpl) this.getComponentProperty(PARAMETER_KEY);
+ paramInclude.addParameter(param);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.ParameterInclude#getParameter(java.lang.String)
+ */
+
+ /**
+ * Method getParameter
+ *
+ * @param name
+ * @return
+ */
+ public Parameter getParameter(String name) {
+ ParameterIncludeImpl paramInclude =
+ (ParameterIncludeImpl) this.getComponentProperty(PARAMETER_KEY);
+ return (Parameter) paramInclude.getParameter(name);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.FlowInclude#getInFlow()
+ */
+
+ /**
+ * Method getInFlow
+ *
+ * @return
+ */
+ public Flow getInFlow() {
+ return (Flow) this.getComponentProperty(INFLOW_KEY);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.FlowInclude#setInFlow(org.apache.axis.description.Flow)
+ */
+
+ /**
+ * Method setInFlow
+ *
+ * @param inFlow
+ */
+ public void setInFlow(Flow inFlow) {
+ if (inFlow != null) {
+ this.setComponentProperty(INFLOW_KEY, inFlow);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.FlowInclude#getOutFlow()
+ */
+
+ /**
+ * Method getOutFlow
+ *
+ * @return
+ */
+ public Flow getOutFlow() {
+ return (Flow) this.getComponentProperty(OUTFLOW_KEY);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.FlowInclude#setOutFlow(org.apache.axis.description.Flow)
+ */
+
+ /**
+ * Method setOutFlow
+ *
+ * @param outFlow
+ */
+ public void setOutFlow(Flow outFlow) {
+ if (outFlow != null) {
+ this.setComponentProperty(OUTFLOW_KEY, outFlow);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.FlowInclude#getFaultInFlow()
+ */
+
+ /**
+ * Method getFaultInFlow
+ *
+ * @return
+ */
+ public Flow getFaultInFlow() {
+ return (Flow) this.getComponentProperty(IN_FAULTFLOW_KEY);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.axis.description.FlowInclude#setFaultInFlow(org.apache.axis.description.Flow)
+ */
+
+ /**
+ * Method setFaultInFlow
+ *
+ * @param faultFlow
+ */
+ public void setFaultInFlow(Flow faultFlow) {
+ if (faultFlow != null) {
+ this.setComponentProperty(IN_FAULTFLOW_KEY, faultFlow);
+ }
+ }
+
+ public Flow getFaultOutFlow() {
+ return (Flow) this.getComponentProperty(OUT_FAULTFLOW_KEY);
+ }
+
+ public void setFaultOutFlow(Flow faultFlow) {
+ if (faultFlow != null) {
+ this.setComponentProperty(OUT_FAULTFLOW_KEY, faultFlow);
+ }
+ }
+
+ /**
+ * Method getOperations
+ *
+ * @return
+ */
+ public HashMap getOperations() {
+ return operationsMap;
+ }
+
+ /**
+ * This finds the ServiceContext provided that the incomming message that
+ * has have some serviceInstanceID. Currently this will not be added to the
+ * EngineContext's ServiceContextMap.
+ *
+ * @param msgContext
+ * @return
+ */
+ public ServiceContext findServiceContext(MessageContext msgContext) {
+ ServiceContext serviceContext = null;
+ if (null == msgContext.getServiceInstanceID()) {
+ serviceContext = new ServiceContext(this, msgContext.getEngineContext());
+ //TODO Once the ServiceContext is bound to an incomming serviceContext ID(like a cookie,reference Property) FIX this
+ // msgContext.getEngineContext().registerServiceContext(serviceContext.getServiceInstanceID(),
+ // serviceContext);
+ } else {
+ serviceContext =
+ (ServiceContext) msgContext.getEngineContext().getServiceContext(
+ msgContext.getServiceInstanceID());
+ }
- }
+ return serviceContext;
+
+ }
}
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AbstractDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AbstractDispatcher.java?rev=169236&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AbstractDispatcher.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AbstractDispatcher.java Sun May 8 22:21:11 2005
@@ -0,0 +1,73 @@
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.axis.engine;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.context.EngineContext;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.AxisOperation;
+import org.apache.axis.description.AxisService;
+import org.apache.axis.description.HandlerMetadata;
+import org.apache.axis.handlers.AbstractHandler;
+
+/**
+ * Class Dispatcher
+ */
+public abstract class AbstractDispatcher extends AbstractHandler implements Handler {
+ /**
+ * Field NAME
+ */
+ public static final QName NAME =
+ new QName("http://axis.ws.apache.org", "AddressingBasedDispatcher");
+
+ /**
+ * Constructor Dispatcher
+ */
+ private EngineContext engineContext;
+
+ public AbstractDispatcher() {
+ init(new HandlerMetadata(NAME));
+ }
+
+ /**
+ * Method invoke
+ *
+ * @param msgctx
+ * @throws AxisFault
+ */
+ public final void invoke(MessageContext msgctx) throws AxisFault {
+
+ if(msgctx.getServiceContext() == null){
+ AxisService axisService = findService(msgctx);
+ if(axisService != null){
+ msgctx.setServiceContext(axisService.findServiceContext(msgctx));
+ }
+ }
+
+ if (msgctx.getServiceContext() == null && msgctx.getOperationContext() == null) {
+ AxisOperation axisOperation = findOperation(msgctx.getServiceContext().getServiceConfig(),msgctx);
+ if(axisOperation != null){
+ msgctx.setOperationContext(axisOperation.findOperationContext(msgctx,msgctx.getServiceContext(),msgctx.isServerSide()));
+ }
+ }
+
+ }
+
+ public abstract AxisService findService(MessageContext messageContext)throws AxisFault;
+ public abstract AxisOperation findOperation(AxisService service,MessageContext messageContext)throws AxisFault;
+
+}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AddressingBasedDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AddressingBasedDispatcher.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AddressingBasedDispatcher.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AddressingBasedDispatcher.java Sun May 8 22:21:11 2005
@@ -17,15 +17,17 @@
import javax.xml.namespace.QName;
+import org.apache.axis.addressing.EndpointReference;
import org.apache.axis.context.EngineContext;
import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.AxisOperation;
+import org.apache.axis.description.AxisService;
import org.apache.axis.description.HandlerMetadata;
-import org.apache.axis.handlers.AbstractHandler;
/**
* Class Dispatcher
*/
-public class AddressingBasedDispatcher extends AbstractHandler implements Handler {
+public class AddressingBasedDispatcher extends AbstractDispatcher {
/**
* Field NAME
*/
@@ -36,61 +38,44 @@
* Constructor Dispatcher
*/
private EngineContext engineContext;
-
+
public AddressingBasedDispatcher() {
init(new HandlerMetadata(NAME));
}
- /**
- * Method invoke
- *
- * @param msgctx
- * @throws AxisFault
+
+ public AxisOperation findOperation(AxisService service, MessageContext messageContext)
+ throws AxisFault {
+
+ String action = (String) messageContext.getWSAAction();
+ if (action != null) {
+ QName operationName = new QName(action);
+ AxisOperation op = service.getOperation(operationName);
+ if (op != null) {
+ return op;
+ } else {
+ throw new AxisFault("No Operation named " + operationName + " Not found");
+ }
+ //if no operation found let it go, this is for a handler may be. e.g. Create Sequance in RM
+ } else {
+ throw new AxisFault("Operation not found, WSA Action is Null");
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.axis.engine.AbstractDispatcher#findService(org.apache.axis.context.MessageContext)
*/
- public void invoke(MessageContext msgctx) throws AxisFault {
- //TODO FIX this
- throw new UnsupportedOperationException();
-// if(msgctx.getOperationContext() != null){
-//
-//
-// EndpointReference toEPR = msgctx.getTo();
-// QName serviceName = new QName(toEPR.getAddress());
-// AxisService service =
-// engineContext.getEngineConfig().getService(serviceName);
-//
-// if (service != null) {
-// ServiceContext serviceContext = engineContext.getService(service.getName());
-// if (serviceContext == null) {
-// serviceContext = new ServiceContext(service,engineContext);
-// }
-// msgctx.setServiceContext(serviceContext);
-// // let add the Handlers
-// ExecutionChain chain = msgctx.getExecutionChain();
-// chain.addPhases(serviceContext.getPhases(EngineConfiguration.INFLOW));
-//
-// } else {
-// throw new AxisFault("No service found under the " + toEPR.getAddress());
-// }
-//
-// }
-//
-// if (msgctx.getoperationConfig() == null) {
-// AxisService service = msgctx.getServiceContext().getServiceConfig();
-// String action = (String) msgctx.getWSAAction();
-// if (action != null) {
-// QName operationName = new QName(action);
-// AxisOperation op = service.getOperation(operationName);
-// if (op != null) {
-// msgctx.setOperationConfig(op);
-// } else{
-// throw new AxisFault("No Operation named "+ operationName + " Not found" );
-// }
-// //if no operation found let it go, this is for a handler may be. e.g. Create Sequance in RM
-// } else {
-// throw new AxisFault("Operation not found, WSA Action is Null");
-// }
-//
-// }
+ public AxisService findService(MessageContext messageContext) throws AxisFault {
+ EndpointReference toEPR = messageContext.getTo();
+ QName serviceName = new QName(toEPR.getAddress());
+ AxisService service = engineContext.getEngineConfig().getService(serviceName);
+ if (service != null) {
+ return service;
+ } else {
+ throw new AxisFault("No service found under the " + toEPR.getAddress());
+ }
}
+
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java Sun May 8 22:21:11 2005
@@ -164,9 +164,9 @@
}
//Service handlers are added to ExecutionChain by this Handler
- ServiceHandlersChainBuilder handlerChainBuilder = new ServiceHandlersChainBuilder();
- dispatchPhase.addHandler(handlerChainBuilder);
- chain.addPhase(dispatchPhase);
+// ServiceHandlersChainBuilder handlerChainBuilder = new ServiceHandlersChainBuilder();
+// dispatchPhase.addHandler(handlerChainBuilder);
+// chain.addPhase(dispatchPhase);
// Start rolling the Service Handlers will,be added by the Dispatcher
chain.invoke(context);
@@ -205,7 +205,7 @@
new MessageContext(
context.getSessionContext(),
context.getTransportIn(),
- context.getTransportOut());
+ context.getTransportOut(),engineContext);
faultContext.setOperationContext(context.getOperationContext());
faultContext.setProcessingFault(true);
faultContext.setServerSide(true);
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/EngineConfigurationImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/EngineConfigurationImpl.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/EngineConfigurationImpl.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/EngineConfigurationImpl.java Sun May 8 22:21:11 2005
@@ -72,7 +72,7 @@
*
* @param global
*/
- public EngineConfigurationImpl(AxisGlobal global) throws AxisFault {
+ public EngineConfigurationImpl(AxisGlobal global) {
this.global = global;
inPhases = new ArrayList();
outPhases = new ArrayList();
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/RequestURIBasedDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/RequestURIBasedDispatcher.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/RequestURIBasedDispatcher.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/RequestURIBasedDispatcher.java Sun May 8 22:21:11 2005
@@ -17,21 +17,24 @@
import javax.xml.namespace.QName;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.context.EngineContext;
import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.AxisOperation;
import org.apache.axis.description.AxisService;
import org.apache.axis.description.HandlerMetadata;
-import org.apache.axis.handlers.AbstractHandler;
/**
* Class Dispatcher
*/
-public class RequestURIBasedDispatcher extends AbstractHandler implements Handler {
+public class RequestURIBasedDispatcher extends AbstractDispatcher {
/**
* Field NAME
*/
public static final QName NAME =
new QName("http://axis.ws.apache.org", "RequestURIBasedDispatcher");
- private AxisService service;
+ QName serviceName = null;
+ QName operatoinName = null;
/**
* Constructor Dispatcher
@@ -40,62 +43,45 @@
init(new HandlerMetadata(NAME));
}
- /**
- * Method invoke
- *
- * @param msgctx
- * @throws AxisFault
+ public AxisOperation findOperation(AxisService service, MessageContext messageContext)
+ throws AxisFault {
+ if (operatoinName != null) {
+ AxisOperation axisOp = service.getOperation(operatoinName);
+ return axisOp;
+ }
+ return null;
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.axis.engine.AbstractDispatcher#findService(org.apache.axis.context.MessageContext)
*/
- public void invoke(MessageContext msgctx) throws AxisFault {
+ public AxisService findService(MessageContext messageContext) throws AxisFault {
final String URI_ID_STRING = "/services";
- if (msgctx.isServerSide()) {
+ if (messageContext.isServerSide()) {
-// EndpointReference toEPR = msgctx.getTo();
-// String filePart = toEPR.getAddress();
-//
-// int index = filePart.lastIndexOf(URI_ID_STRING);
-// String serviceStr = null;
-// if (index > 0) {
-// serviceStr = filePart.substring(index + URI_ID_STRING.length() + 1);
-//
-// EngineContext engineContext = msgctx.getEngineContext();
-//
-// QName serviceName = null;
-// QName operatoinName = null;
-//
-// if ((index = serviceStr.indexOf('/')) > 0) {
-// serviceName = new QName(serviceStr.substring(0, index));
-// operatoinName = new QName(serviceStr.substring(index + 1));
-// } else {
-// serviceName = new QName(serviceStr);
-// }
-//
-// ServiceContext serviceContext = engineContext.getService(serviceName);
-// if (serviceContext == null) {
-// EngineConfiguration registry = msgctx.getEngineContext().getEngineConfig();
-// service = registry.getService(serviceName);
-// if (service != null) {
-// serviceContext = new ServiceContext(service,engineContext);
-// }
-// }
-// if (serviceContext != null) {
-// if (operatoinName != null) {
-// AxisOperation axisOp =
-// serviceContext.getServiceConfig().getOperation(operatoinName);
-// if(axisOp != null){
-// msgctx.setOperationConfig(axisOp);
-// }
-// //if no operation found let it go, this is for a handler may be. e.g. Create Sequance in RM
-// }
-//
-// msgctx.setServiceContext(serviceContext);
-// }
-//
- throw new UnsupportedOperationException();
+ EndpointReference toEPR = messageContext.getTo();
+ String filePart = toEPR.getAddress();
+ int index = filePart.lastIndexOf(URI_ID_STRING);
+ String serviceStr = null;
+ if (index > 0) {
+ serviceStr = filePart.substring(index + URI_ID_STRING.length() + 1);
+
+ EngineContext engineContext = messageContext.getEngineContext();
+
+ if ((index = serviceStr.indexOf('/')) > 0) {
+ serviceName = new QName(serviceStr.substring(0, index));
+ operatoinName = new QName(serviceStr.substring(index + 1));
+ } else {
+ serviceName = new QName(serviceStr);
+ }
+
+ EngineConfiguration registry = messageContext.getEngineContext().getEngineConfig();
+ return registry.getService(serviceName);
}
-// } else {
-// // TODO client side service Dispatch ,, What this really mean?
-// }
+ }
+ return null;
+
}
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java Sun May 8 22:21:11 2005
@@ -149,7 +149,7 @@
}
MessageContext msgContext = new MessageContext((SessionContext) sessionContext,
engineContext.getEngineConfig().getTransportIn(new QName(Constants.TRANSPORT_HTTP)),
- engineContext.getEngineConfig().getTransportOut(new QName(Constants.TRANSPORT_HTTP)));
+ engineContext.getEngineConfig().getTransportOut(new QName(Constants.TRANSPORT_HTTP)),engineContext);
msgContext.setServerSide(true);
String filePart = req.getRequestURL().toString();
msgContext.setTo(new EndpointReference(AddressingConstants.WSA_TO,
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/SimpleHTTPServer.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/SimpleHTTPServer.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/SimpleHTTPServer.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/SimpleHTTPServer.java Sun May 8 22:21:11 2005
@@ -140,7 +140,7 @@
null,
engineReg.getEngineConfig().getTransportIn(
new QName(Constants.TRANSPORT_HTTP)),
- transportOut);
+ transportOut,engineReg);
msgContext.setServerSide(true);
// We do not have any Addressing Headers to put
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java Sun May 8 22:21:11 2005
@@ -92,7 +92,7 @@
try {
msgContext = new MessageContext(null,
reg.getEngineConfig().getTransportIn(new QName(Constants.TRANSPORT_HTTP)),
- reg.getEngineConfig().getTransportOut(new QName(Constants.TRANSPORT_HTTP)));
+ reg.getEngineConfig().getTransportOut(new QName(Constants.TRANSPORT_HTTP)),reg);
msgContext.setServerSide(true);
} catch (AxisFault af) {
log.error("Error occured while creating the message context", af);
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/util/Utils.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/util/Utils.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/util/Utils.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/util/Utils.java Sun May 8 22:21:11 2005
@@ -126,7 +126,8 @@
new MessageContext(
oldMessageContext.getSessionContext(),
oldMessageContext.getTransportIn(),
- oldMessageContext.getTransportOut());
+ oldMessageContext.getTransportOut(),
+ oldMessageContext.getEngineContext());
messageContext.setMessageInformationHeaders(new MessageInformationHeadersCollection());
MessageInformationHeadersCollection oldMessageInfoHeaders =
Modified: webservices/axis/trunk/java/modules/core/test/org/apache/axis/context/MEPContextTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/context/MEPContextTest.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/context/MEPContextTest.java (original)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/context/MEPContextTest.java Sun May 8 22:21:11 2005
@@ -56,7 +56,7 @@
public MessageContext getBasicMessageContext() throws AxisFault{
- return new MessageContext(null ,new AxisTransportIn(new QName("axis")), new AxisTransportOut(new QName("axis")));
+ return new MessageContext(null,new AxisTransportIn(new QName("axis")), new AxisTransportOut(new QName("axis")),engineCtx);
}
Modified: webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EnginePausingTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EnginePausingTest.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EnginePausingTest.java (original)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EnginePausingTest.java Sun May 8 22:21:11 2005
@@ -58,7 +58,7 @@
AxisOperation axisOp = new AxisOperation(operationName);
- mc = new MessageContext(engineContext, null, null, transportIn,transportOut,OperationContextFactory.createMEPContext(WSDLConstants.MEP_URI_IN_OUT,false,axisOp,null));
+ mc = new MessageContext(engineContext, null, transportIn,transportOut,OperationContextFactory.createMEPContext(WSDLConstants.MEP_URI_IN_OUT,false,axisOp,null));
mc.setTransportOut(transportOut);
mc.setServerSide(true);
SOAPFactory omFac = OMAbstractFactory.getSOAP11Factory();
Modified: webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EngineWithoutPhaseResolvingTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EngineWithoutPhaseResolvingTest.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EngineWithoutPhaseResolvingTest.java (original)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EngineWithoutPhaseResolvingTest.java Sun May 8 22:21:11 2005
@@ -63,8 +63,7 @@
mc =
new MessageContext(
engineContext,
- null,
- null,
+ null,
transportIn,
transport,
OperationContextFactory.createMEPContext(WSDLConstants.MEP_URI_IN_OUT,false,axisOp, null));
Modified: webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/MessageContextTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/MessageContextTest.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/MessageContextTest.java (original)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/MessageContextTest.java Sun May 8 22:21:11 2005
@@ -39,7 +39,6 @@
null,
null,
null,
- null,
OperationContextFactory.createMEPContext(WSDLConstants.MEP_URI_IN_OUT, false, null, null));
SOAPFactory omFac = OMAbstractFactory.getSOAP11Factory();
Modified: webservices/axis/trunk/java/modules/core/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java?rev=169236&r1=169235&r2=169236&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java (original)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java Sun May 8 22:21:11 2005
@@ -48,7 +48,7 @@
super.setUp();
outHandler = new AddressingOutHandler();
testUtil = new TestUtil();
- msgCtxt = new MessageContext(null, null, null, null,null,OperationContextFactory.createMEPContext(WSDLConstants.MEP_URI_IN_OUT,false,null,null));
+ msgCtxt = new MessageContext(null, null, null,null,OperationContextFactory.createMEPContext(WSDLConstants.MEP_URI_IN_OUT,false,null,null));
}
public void testAddToSOAPHeader() throws Exception {