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 he...@apache.org on 2005/03/14 03:59:01 UTC
svn commit: r157369 - in webservices/axis/trunk/java/modules:
core/src/java/org/apache/axis/clientapi/
core/src/java/org/apache/axis/context/
core/src/java/org/apache/axis/description/
core/src/java/org/apache/axis/engine/
core/src/java/org/apache/axis/providers/
core/src/java/org/apache/axis/transport/
core/src/java/org/apache/axis/util/ core/src/test/org/apache/axis/engine/
http/src/java/org/apache/axis/transport/http/
mail/src/java/org/apache/axis/transport/mail/
Author: hemapani
Date: Sun Mar 13 18:58:57 2005
New Revision: 157369
URL: http://svn.apache.org/viewcvs?view=rev&rev=157369
Log:
support to pause the engine is added
Added:
webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EnginePausingTest.java
Removed:
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/transport/TransportReceiverLocator.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/transport/TransportSenderLocator.java
Modified:
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Call.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Invoker.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/context/MessageContext.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/description/AxisTransport.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/providers/RawXMLProvider.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/util/Utils.java
webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EngineTest.java
webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/MessageContextTest.java
webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/AxisServlet.java
webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/SimpleHTTPServer.java
webservices/axis/trunk/java/modules/mail/src/java/org/apache/axis/transport/mail/MailWorker.java
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Call.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Call.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Call.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Call.java Sun Mar 13 18:58:57 2005
@@ -15,6 +15,9 @@
*/
package org.apache.axis.clientapi;
+import java.io.IOException;
+import java.io.Writer;
+
import org.apache.axis.Constants;
import org.apache.axis.addressing.EndpointReference;
import org.apache.axis.context.MessageContext;
@@ -26,13 +29,10 @@
import org.apache.axis.om.OMException;
import org.apache.axis.om.SOAPEnvelope;
import org.apache.axis.transport.TransportReceiver;
-import org.apache.axis.transport.TransportReceiverLocator;
+import org.apache.axis.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.io.IOException;
-import java.io.Writer;
-
/**
* Class Call
*/
@@ -103,12 +103,11 @@
*/
public void setTransportType(String transport) throws AxisFault {
if ((Constants.TRANSPORT_HTTP.equals(transport)
- || Constants.TRANSPORT_MAIL.equals(transport)
- || Constants.TRANSPORT_TCP.equals(transport))) {
+ || Constants.TRANSPORT_MAIL.equals(transport)
+ || Constants.TRANSPORT_TCP.equals(transport))) {
this.transport = transport;
} else {
- throw new AxisFault("Selected transport dose not suppot ( "
- + transport + " )");
+ throw new AxisFault("Selected transport dose not suppot ( " + transport + " )");
}
}
@@ -120,17 +119,15 @@
* @param useSeparateListener
* @throws AxisFault
*/
- public void setListenerTransport(
- String Listenertransport, boolean useSeparateListener)
- throws AxisFault {
+ public void setListenerTransport(String Listenertransport, boolean useSeparateListener)
+ throws AxisFault {
if ((Constants.TRANSPORT_HTTP.equals(transport)
- || Constants.TRANSPORT_MAIL.equals(transport)
- || Constants.TRANSPORT_TCP.equals(transport))) {
+ || Constants.TRANSPORT_MAIL.equals(transport)
+ || Constants.TRANSPORT_TCP.equals(transport))) {
this.Listenertransport = Listenertransport;
this.useSeparateListener = useSeparateListener;
} else {
- throw new AxisFault("Selected transport dose not suppot ( "
- + transport + " )");
+ throw new AxisFault("Selected transport dose not suppot ( " + transport + " )");
}
}
@@ -154,14 +151,13 @@
Writer out = null;
try {
final AxisEngine engine = new AxisEngine();
- MessageContext msgctx = new MessageContext(registry, null, null);
+ MessageContext msgctx = new MessageContext(registry, null, null,Utils.createHTTPTransport(registry));
msgctx.setEnvelope(envelope);
msgctx.setTo(targetEPR);
- msgctx.setProperty(MessageContext.TRANSPORT_TYPE,
- Constants.TRANSPORT_HTTP);
+
msgctx.setTo(targetEPR);
- if(action != null) {
- msgctx.setProperty(MessageContext.SOAP_ACTION,action);
+ if (action != null) {
+ msgctx.setProperty(MessageContext.SOAP_ACTION, action);
}
engine.send(msgctx);
} catch (IOException e) {
@@ -187,18 +183,17 @@
*/
public void send(SOAPEnvelope envelope) throws AxisFault {
if (Constants.TRANSPORT_MAIL.equals(transport)) {
- throw new AxisFault(
- "This invocation support only for bi-directional transport");
+ throw new AxisFault("This invocation support only for bi-directional transport");
} else {
MessageContext request = null;
try {
final AxisEngine engine = new AxisEngine();
- request = new MessageContext(registry, null, null);
+ request = new MessageContext(registry, null, null,Utils.createHTTPTransport(registry));
request.setEnvelope(envelope);
- request.setProperty(MessageContext.TRANSPORT_TYPE, transport);
+
request.setTo(targetEPR);
- if(action != null) {
- request.setProperty(MessageContext.SOAP_ACTION,action);
+ if (action != null) {
+ request.setProperty(MessageContext.SOAP_ACTION, action);
}
engine.send(request);
@@ -214,22 +209,18 @@
* request.getSessionContext());
*/
request.setServerSide(false);
- request.setProperty(MessageContext.TRANSPORT_TYPE, transport);
- TransportReceiver receiver =
- TransportReceiverLocator.locate(request);
+ TransportReceiver receiver = request.getTransport().getReciever();
receiver.invoke(request);
- if (request.getProperty(MessageContext.TRANSPORT_SUCCEED)
- != null) {
+ if (request.getProperty(MessageContext.TRANSPORT_SUCCEED) != null) {
throw new AxisFault("Sent failed");
} else if (request.getEnvelope().getBody().hasFault()) {
throw new AxisFault(
- request.getEnvelope().getBody().getFault().getFaultString());
+ request.getEnvelope().getBody().getFault().getFaultString());
}
} catch (IOException e) {
throw AxisFault.makeFault(e);
} finally {
- Writer writer = (Writer) request.getProperty(
- MessageContext.TRANSPORT_WRITER);
+ Writer writer = (Writer) request.getProperty(MessageContext.TRANSPORT_WRITER);
if (writer != null) {
try {
writer.close();
@@ -250,26 +241,23 @@
*/
public SOAPEnvelope sendReceive(SOAPEnvelope envelope) throws AxisFault {
if (Constants.TRANSPORT_MAIL.equals(transport)) {
- throw new AxisFault(
- "This invocation support only for bi-directional transport");
+ throw new AxisFault("This invocation support only for bi-directional transport");
}
try {
AxisEngine engine = new AxisEngine();
- MessageContext msgctx = new MessageContext(registry, null, null);
+ MessageContext msgctx = new MessageContext(registry, null, null,Utils.createHTTPTransport(registry));
msgctx.setEnvelope(envelope);
- msgctx.setProperty(MessageContext.TRANSPORT_TYPE, transport);
+
msgctx.setTo(targetEPR);
- if(action != null) {
- msgctx.setProperty(MessageContext.SOAP_ACTION,action);
+ if (action != null) {
+ msgctx.setProperty(MessageContext.SOAP_ACTION, action);
}
engine.send(msgctx);
- MessageContext response = new MessageContext(registry,
- msgctx.getProperties(),
- msgctx.getSessionContext());
+ MessageContext response =
+ new MessageContext(registry, msgctx.getProperties(), msgctx.getSessionContext(),msgctx.getTransport());
response.setServerSide(false);
- response.setProperty(MessageContext.TRANSPORT_TYPE, transport);
- TransportReceiver receiver =
- TransportReceiverLocator.locate(response);
+
+ TransportReceiver receiver = response.getTransport().getReciever();
receiver.invoke(response);
SOAPEnvelope resenvelope = response.getEnvelope();
@@ -287,33 +275,28 @@
* @param callback
* @throws AxisFault
*/
- public void sendReceiveAsync(SOAPEnvelope envelope, final Callback callback)
- throws AxisFault {
+ public void sendReceiveAsync(SOAPEnvelope envelope, final Callback callback) throws AxisFault {
try {
AxisEngine engine = new AxisEngine();
- final MessageContext msgctx = new MessageContext(registry, null,
- null);
+ final MessageContext msgctx = new MessageContext(registry, null, null,Utils.createHTTPTransport(registry));
msgctx.setEnvelope(envelope);
- msgctx.setProperty(MessageContext.TRANSPORT_TYPE, transport);
+
msgctx.setTo(targetEPR);
- if(action != null) {
- msgctx.setProperty(MessageContext.SOAP_ACTION,action);
+ if (action != null) {
+ msgctx.setProperty(MessageContext.SOAP_ACTION, action);
}
if (useSeparateListener) {
if (Constants.TRANSPORT_MAIL.equals(transport)) {
- throw new AxisFault(
- "This invocation support only for bi-directional transport");
+ throw new AxisFault("This invocation support only for bi-directional transport");
}
- Invoker invoker = new Invoker(msgctx, engine, registry,
- callback);
+ Invoker invoker = new Invoker(msgctx, engine, registry, callback);
Thread th = new Thread(invoker);
th.start();
} else {
// TODO
// start the Listener at the client side
- throw new UnsupportedOperationException(
- "Unblocking transports are not supported yet");
+ throw new UnsupportedOperationException("Unblocking transports are not supported yet");
}
} catch (OMException e) {
throw AxisFault.makeFault(e);
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Invoker.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Invoker.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Invoker.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/clientapi/Invoker.java Sun Mar 13 18:58:57 2005
@@ -19,7 +19,6 @@
import org.apache.axis.engine.AxisEngine;
import org.apache.axis.engine.EngineRegistry;
import org.apache.axis.transport.TransportReceiver;
-import org.apache.axis.transport.TransportReceiverLocator;
/**
* Class Invoker
@@ -74,11 +73,11 @@
callback);
MessageContext resMsgContext =
new MessageContext(registry, reqMsgContext.getProperties(),
- reqMsgContext.getSessionContext());
+ reqMsgContext.getSessionContext(),reqMsgContext.getTransport());
resMsgContext.setServerSide(false);
- TransportReceiver receiver =
- TransportReceiverLocator.locate(resMsgContext);
+ TransportReceiver receiver = reqMsgContext.getTransport().getReciever();
+
receiver.invoke(resMsgContext);
AsyncResult result = new AsyncResult();
result.setResult(resMsgContext.getEnvelope());
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/context/MessageContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/context/MessageContext.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/context/MessageContext.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/context/MessageContext.java Sun Mar 13 18:58:57 2005
@@ -54,10 +54,6 @@
*/
public static final String PASSWORD = "PASSWD";
- /**
- * Field TRANSPORT_TYPE
- */
- public static final String TRANSPORT_TYPE = "TRANSPORT_TYPE";
/**
* Field SOAP_ACTION
@@ -103,9 +99,9 @@
MessageInformationHeadersCollection messageInformationHeaders;
- private ExecutionChain chain;
+ private final ExecutionChain chain;
- private AxisTransport transport;
+ private final AxisTransport transport;
/**
* Field properties
@@ -171,6 +167,10 @@
* Field soapOperationElement
*/
private OMElement soapOperationElement;
+
+
+ private boolean paused = false;
+
/**
* @param er registry
@@ -178,8 +178,10 @@
* @param sessionContext of the message context, should be null if no sessionContext
* @throws AxisFault
*/
- public MessageContext(
- EngineRegistry er, Map initialProperties, SessionContext sessionContext)
+ public MessageContext(EngineRegistry er,
+ Map initialProperties,
+ SessionContext sessionContext,
+ AxisTransport transport)
throws AxisFault {
this.globalContext = new GlobalContext(er);
if (sessionContext == null) {
@@ -193,6 +195,7 @@
properties = initialProperties;
chain = new ExecutionChain();
messageInformationHeaders = new MessageInformationHeadersCollection();
+ this.transport = transport;
}
/**
@@ -446,26 +449,19 @@
return this.chain;
}
- /**
- * @param chain
- */
- public void setExecutionChain(ExecutionChain chain) {
- this.chain = chain;
- }
-
- /**
+ /**
* @return
*/
public AxisTransport getTransport() {
return transport;
}
- /**
- * @param transport
- */
- public void setTransport(AxisTransport transport) {
- this.transport = transport;
- }
+// /**
+// * @param transport
+// */
+// public void setTransport(AxisTransport transport) {
+// this.transport = transport;
+// }
/**
* @return
@@ -521,5 +517,18 @@
public void setMessageInformationHeaders(MessageInformationHeadersCollection messageInformationHeaders) {
this.messageInformationHeaders = messageInformationHeaders;
+ }
+ /**
+ * @return
+ */
+ public boolean isPaused() {
+ return paused;
+ }
+
+ /**
+ * @param b
+ */
+ public void setPaused(boolean b) {
+ paused = b;
}
}
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/description/AxisTransport.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/description/AxisTransport.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/description/AxisTransport.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/description/AxisTransport.java Sun Mar 13 18:58:57 2005
@@ -16,6 +16,8 @@
package org.apache.axis.description;
import org.apache.axis.engine.AxisFault;
+import org.apache.axis.transport.TransportReceiver;
+import org.apache.axis.transport.TransportSender;
import javax.xml.namespace.QName;
import java.util.ArrayList;
@@ -44,6 +46,11 @@
* Field name
*/
protected QName name;
+
+
+ protected TransportSender sender;
+
+ protected TransportReceiver reciever;
/**
* Constructor AxisTransport
@@ -149,4 +156,32 @@
public void setOutFlow(Flow outFlow) {
flowInclude.setOutFlow(outFlow);
}
+ /**
+ * @return
+ */
+ public TransportReceiver getReciever() {
+ return reciever;
+ }
+
+ /**
+ * @return
+ */
+ public TransportSender getSender() {
+ return sender;
+ }
+
+ /**
+ * @param receiver
+ */
+ public void setReciever(TransportReceiver receiver) {
+ reciever = receiver;
+ }
+
+ /**
+ * @param sender
+ */
+ public void setSender(TransportSender sender) {
+ this.sender = sender;
+ }
+
}
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/AxisEngine.java Sun Mar 13 18:58:57 2005
@@ -21,10 +21,11 @@
import org.apache.axis.description.AxisGlobal;
import org.apache.axis.description.AxisService;
import org.apache.axis.description.AxisTransport;
+import org.apache.axis.handlers.OpNameFinder;
import org.apache.axis.om.OMFactory;
import org.apache.axis.om.SOAPBody;
import org.apache.axis.om.SOAPEnvelope;
-import org.apache.axis.transport.TransportSenderLocator;
+import org.apache.axis.transport.TransportSender;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -83,7 +84,6 @@
log.info("starting the out flow");
// let us always start with a fresh EC
- context.setExecutionChain(new ExecutionChain());
ExecutionChain chain = context.getExecutionChain();
// Receiving is always a matter of running the transport handlers first
@@ -99,13 +99,21 @@
chain.addPhases(global.getPhases(EngineRegistry.INFLOW));
// create a Dispatch Phase and add it to the Execution Chain
- Dispatcher dispatcher = new Dispatcher();
- Phase dispatchPhase = new Phase("DispatchPhase");
- dispatchPhase.addHandler(dispatcher);
- chain.addPhase(dispatchPhase);
-
- // Start rolling the Service Handlers will,be added by the Dispatcher
- chain.invoke(context);
+ if(context.isServerSide()){
+ Dispatcher dispatcher = new Dispatcher();
+ Phase dispatchPhase = new Phase("DispatchPhase");
+ dispatchPhase.addHandler(dispatcher);
+ chain.addPhase(dispatchPhase);
+
+ // Start rolling the Service Handlers will,be added by the Dispatcher
+ chain.invoke(context);
+
+ // add invoke Phase
+ Handler opNameFinder = new OpNameFinder();
+ opNameFinder.invoke(context);
+ Receiver reciver = ReceiverLocator.locateReceiver(context);
+ reciver.invoke(context);
+ }
log.info("ending the out flow");
} catch (Throwable e) {
handleFault(context, e);
@@ -129,17 +137,20 @@
context.setProcessingFault(true);
// create a SOAP envelope with the Fault
- MessageContext faultContext = new MessageContext(context.getGlobalContext().getRegistry(),context.getProperties(),context.getSessionContext());
+ MessageContext faultContext = new MessageContext(context.getGlobalContext().getRegistry(),
+ context.getProperties(),context.getSessionContext(),context.getTransport());
+ faultContext.setProcessingFault(true);
+ faultContext.setServerSide(true);
SOAPEnvelope envelope =
OMFactory.newInstance().getDefaultEnvelope();
// TODO do we need to set old Headers back?
SOAPBody body = envelope.getBody();
body.addFault(new AxisFault(e.getMessage(), e));
- context.setEnvelope(envelope);
+ faultContext.setEnvelope(envelope);
// send the error
- executeOutFlow(context, EngineRegistry.FAULTFLOW);
+ executeOutFlow(faultContext, EngineRegistry.FAULTFLOW);
} else if (!serverSide) {
// if at the client side throw the exception
@@ -163,7 +174,6 @@
private void executeOutFlow(MessageContext context, int flow)
throws AxisFault {
try {
- context.setExecutionChain(new ExecutionChain());
ExecutionChain chain = context.getExecutionChain();
AxisService service = context.getService();
if (service != null) {
@@ -185,15 +195,14 @@
// Receiving is always a matter of running the transport handlers first
AxisTransport transport = context.getTransport();
- if (transport != null) {
- chain.addPhases(transport.getPhases(flow));
- }
- Phase sendPhase = new Phase(Phase.SENDING_PHASE);
- sendPhase.addHandler(TransportSenderLocator.locate(context));
- chain.addPhase(sendPhase);
-
+ chain.addPhases(transport.getPhases(flow));
+
// startet rolling
chain.invoke(context);
+
+ TransportSender sender = transport.getSender();
+ sender.invoke(context);
+
} catch (AxisFault error) {
error.printStackTrace();
handleFault(context, error);
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java Sun Mar 13 18:58:57 2005
@@ -23,7 +23,6 @@
import org.apache.axis.description.AxisService;
import org.apache.axis.description.HandlerMetadata;
import org.apache.axis.handlers.AbstractHandler;
-import org.apache.axis.handlers.OpNameFinder;
import org.apache.wsdl.WSDLService;
/**
@@ -69,12 +68,6 @@
// let add the Handlers
ExecutionChain chain = msgctx.getExecutionChain();
chain.addPhases(service.getPhases(EngineRegistry.INFLOW));
-
- // add invoke Phase
- Phase invokePhase = new Phase(Phase.SERVICE_INVOCATION);
- invokePhase.addHandler(new OpNameFinder());
- invokePhase.addHandler(ReceiverLocator.locateReceiver(msgctx));
- chain.addPhase(invokePhase);
} else {
throw new AxisFault("Service " + serviceName + " is not found");
}
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java Sun Mar 13 18:58:57 2005
@@ -46,6 +46,8 @@
* Field log
*/
private Log log = LogFactory.getLog(getClass());
+
+ private int indexOfPhaseToExecuted = 0;
/**
* Constructor ExecutionChain
@@ -98,14 +100,23 @@
public void invoke(MessageContext msgctx) throws AxisFault {
Stack executionStack = new Stack();
try {
- for (int i = 0; i < executionList.size(); i++) {
- Phase phase = (Phase) executionList.get(i);
- if (phase != null) {
- log.info("Invoke the Phase " + phase.getPhaseName());
- phase.invoke(msgctx);
- //This line should be after the invoke as if the invocation failed this phases is takn care of and
- //no need to revoke agien
- executionStack.push(phase);
+ while (indexOfPhaseToExecuted < executionList.size()) {
+ if(msgctx.isPaused()){
+ if(indexOfPhaseToExecuted > 0){
+ //need to run the last Phase agien so it can finish the handler
+ indexOfPhaseToExecuted--;
+ }
+ break;
+ }else{
+ Phase phase = (Phase) executionList.get(indexOfPhaseToExecuted);
+ if (phase != null) {
+ log.info("Invoke the Phase " + phase.getPhaseName());
+ phase.invoke(msgctx);
+ //This line should be after the invoke as if the invocation failed this phases is takn care of and
+ //no need to revoke agien
+ executionStack.push(phase);
+ indexOfPhaseToExecuted++;
+ }
}
}
} catch (Exception e) {
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java Sun Mar 13 18:58:57 2005
@@ -67,6 +67,8 @@
* Field log
*/
private Log log = LogFactory.getLog(getClass());
+
+ private int indexOfHandlerToExecute = 0;
/**
* Constructor Phase
@@ -111,15 +113,20 @@
public void invoke(MessageContext msgctx) throws AxisFault {
Stack executionStack = new Stack();
try {
- for (int i = 0; i < handlers.size(); i++) {
- Handler handler = (Handler) handlers.get(i);
- if (handler != null) {
- log.info("Invoke the Handler " + handler.getName()
- + "with in the Phase " + phaseName);
- handler.invoke(msgctx);
- //This line should be after the invoke as if the invocation failed this handlers is takn care of and
- //no need to revoke agien
- executionStack.push(handler);
+ while (indexOfHandlerToExecute < handlers.size() ) {
+ if(msgctx.isPaused()){
+ break;
+ }else{
+ Handler handler = (Handler) handlers.get(indexOfHandlerToExecute);
+ if (handler != null) {
+ log.info("Invoke the Handler " + handler.getName()
+ + "with in the Phase " + phaseName);
+ handler.invoke(msgctx);
+ //This line should be after the invoke as if the invocation failed this handlers is takn care of and
+ //no need to revoke agien
+ executionStack.push(handler);
+ indexOfHandlerToExecute++;
+ }
}
}
} catch (Exception e) {
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/providers/RawXMLProvider.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/providers/RawXMLProvider.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/providers/RawXMLProvider.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/providers/RawXMLProvider.java Sun Mar 13 18:58:57 2005
@@ -156,7 +156,7 @@
SOAPEnvelope envelope = null;
MessageContext msgContext1 = new MessageContext(
msgContext.getGlobalContext().getRegistry(),
- msgContext.getProperties(), msgContext.getSessionContext());
+ msgContext.getProperties(), msgContext.getSessionContext(),msgContext.getTransport());
if(WSDLService.STYLE_DOC.equals(msgContext.getMessageStyle())){
parmeter = methodElement;
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/util/Utils.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/util/Utils.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/util/Utils.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/util/Utils.java Sun Mar 13 18:58:57 2005
@@ -17,14 +17,19 @@
import java.util.ArrayList;
+import javax.xml.namespace.QName;
+
import org.apache.axis.Constants;
import org.apache.axis.description.AxisService;
+import org.apache.axis.description.AxisTransport;
import org.apache.axis.description.Flow;
import org.apache.axis.description.HandlerMetadata;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.EngineRegistry;
import org.apache.axis.engine.Handler;
import org.apache.axis.engine.Phase;
+import org.apache.axis.transport.TransportReceiver;
+import org.apache.axis.transport.TransportSender;
public class Utils {
@@ -33,13 +38,18 @@
hmd.setHandler(handler);
flow.addHandler(hmd);
}
- public static void addPhasesToServiceFromFlow(AxisService service, String phaseName, Flow flow, int flowtype) throws AxisFault {
- ArrayList faultchain = new ArrayList();
- Phase p = new Phase(Constants.PHASE_SERVICE);
- faultchain.add(p);
- addHandlers(flow, p);
- service.setPhases(faultchain, flowtype);
- }
+ public static void addPhasesToServiceFromFlow(
+ AxisService service,
+ String phaseName,
+ Flow flow,
+ int flowtype)
+ throws AxisFault {
+ ArrayList faultchain = new ArrayList();
+ Phase p = new Phase(Constants.PHASE_SERVICE);
+ faultchain.add(p);
+ addHandlers(flow, p);
+ service.setPhases(faultchain, flowtype);
+ }
public static void createExecutionChains(AxisService service) throws AxisFault {
addPhasesToServiceFromFlow(
service,
@@ -58,12 +68,56 @@
EngineRegistry.FAULTFLOW);
}
public static void addHandlers(Flow flow, Phase phase) throws AxisFault {
- if (flow != null) {
- int handlerCount = flow.getHandlerCount();
- for (int i = 0; i < handlerCount; i++) {
- phase.addHandler(flow.getHandler(i).getHandler());
- }
+ if (flow != null) {
+ int handlerCount = flow.getHandlerCount();
+ for (int i = 0; i < handlerCount; i++) {
+ phase.addHandler(flow.getHandler(i).getHandler());
+ }
+ }
+ }
+
+ public static AxisTransport createHTTPTransport(EngineRegistry er) throws AxisFault {
+ try {
+ QName transportName = new QName("http");
+ //AxisTransport httpTransport = er.getTransport(transportName);
+ AxisTransport httpTransport = null;
+ if (httpTransport == null) {
+ httpTransport = new AxisTransport(transportName);
+ Class className =
+ Class.forName("org.apache.axis.transport.http.HTTPTransportSender");
+ httpTransport.setSender((TransportSender) className.newInstance());
+
+ className = Class.forName("org.apache.axis.transport.http.HTTPTransportReceiver");
+ httpTransport.setReciever((TransportReceiver) className.newInstance());
+ }
+ return httpTransport;
+ } catch (ClassNotFoundException e) {
+ throw new AxisFault(e.getMessage(), e);
+ } catch (InstantiationException e) {
+ throw new AxisFault(e.getMessage(), e);
+ } catch (IllegalAccessException e) {
+ throw new AxisFault(e.getMessage(), e);
+ }
+ }
+ public static AxisTransport createMailTransport(EngineRegistry er) throws AxisFault {
+ try {
+ QName transportName = new QName("http");
+
+ AxisTransport mailTransport = null;
+ if (mailTransport == null) {
+ mailTransport = new AxisTransport(new QName("http"));
+ Class className =
+ Class.forName("org.apache.axis.transport.mail.MailTransportSender");
+ mailTransport.setSender((TransportSender) className.newInstance());
}
+ return mailTransport;
+ } catch (ClassNotFoundException e) {
+ throw new AxisFault(e.getMessage(), e);
+ } catch (InstantiationException e) {
+ throw new AxisFault(e.getMessage(), e);
+ } catch (IllegalAccessException e) {
+ throw new AxisFault(e.getMessage(), e);
}
+ }
}
Added: webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EnginePausingTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EnginePausingTest.java?view=auto&rev=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EnginePausingTest.java (added)
+++ webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EnginePausingTest.java Sun Mar 13 18:58:57 2005
@@ -0,0 +1,182 @@
+/*
+ * 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 java.util.ArrayList;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import org.apache.axis.addressing.AddressingConstants;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.AxisGlobal;
+import org.apache.axis.description.AxisService;
+import org.apache.axis.description.AxisTransport;
+import org.apache.axis.description.HandlerMetadata;
+import org.apache.axis.description.Parameter;
+import org.apache.axis.handlers.AbstractHandler;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.providers.AbstractProvider;
+import org.apache.axis.transport.TransportSender;
+import org.apache.wsdl.WSDLService;
+
+public class EnginePausingTest extends TestCase {
+ private MessageContext mc;
+ private ArrayList executedHandlers = new ArrayList();
+ private EngineRegistry engineRegistry;
+ private QName serviceName = new QName("NullService");
+
+ public EnginePausingTest() {
+ }
+
+ public EnginePausingTest(String arg0) {
+ super(arg0);
+ }
+ protected void setUp() throws Exception {
+ engineRegistry = new EngineRegistryImpl(new AxisGlobal());
+
+ AxisTransport transport = new AxisTransport(new QName("null"));
+ transport.setSender(new NullTransportSender());
+ mc = new MessageContext(engineRegistry, null, null, transport);
+ mc.setServerSide(true);
+ OMFactory omFac = OMFactory.newInstance();
+ mc.setEnvelope(omFac.getDefaultEnvelope());
+ AxisService service = new AxisService(serviceName);
+ service.setProvider(new NullProvider());
+ ArrayList phases = new ArrayList();
+
+ Phase phase = new Phase("1");
+ phase.addHandler(new TempHandler(1));
+ phase.addHandler(new TempHandler(2));
+ phase.addHandler(new TempHandler(3));
+ phase.addHandler(new TempHandler(4));
+ phase.addHandler(new TempHandler(5));
+ phase.addHandler(new TempHandler(6));
+ phase.addHandler(new TempHandler(7));
+ phase.addHandler(new TempHandler(8));
+ phase.addHandler(new TempHandler(9));
+ phases.add(phase);
+
+ phase = new Phase("2");
+ phase.addHandler(new TempHandler(10));
+ phase.addHandler(new TempHandler(11));
+ phase.addHandler(new TempHandler(12));
+ phase.addHandler(new TempHandler(13));
+ phase.addHandler(new TempHandler(14));
+ phase.addHandler(new TempHandler(15, true));
+ phase.addHandler(new TempHandler(16));
+ phase.addHandler(new TempHandler(17));
+ phase.addHandler(new TempHandler(18));
+ phases.add(phase);
+
+ Phase phase1 = new Phase("3");
+ phase1.addHandler(new TempHandler(19));
+ phase1.addHandler(new TempHandler(20));
+ phase1.addHandler(new TempHandler(21));
+ phase1.addHandler(new TempHandler(22));
+ phase1.addHandler(new TempHandler(23));
+ phase1.addHandler(new TempHandler(24));
+ phase1.addHandler(new TempHandler(25));
+ phase1.addHandler(new TempHandler(26));
+ phase1.addHandler(new TempHandler(27));
+ phases.add(phase1);
+ service.setPhases(phases, EngineRegistry.INFLOW);
+ engineRegistry.addService(service);
+ service.setStyle(WSDLService.STYLE_DOC);
+ mc.setTo(
+ new EndpointReference(
+ AddressingConstants.WSA_TO,
+ "http://127.0.0.1:8080/axis/services/NullService"));
+
+ }
+
+ public void testSend() throws Exception {
+ AxisEngine engine = new AxisEngine();
+ engine.receive(mc);
+ assertEquals(executedHandlers.size(), 15);
+ for (int i = 0; i < 15; i++) {
+ assertEquals(((Integer) executedHandlers.get(i)).intValue(), i + 1);
+ }
+ mc.setPaused(false);
+ engine.receive(mc);
+
+ assertEquals(executedHandlers.size(), 27);
+ for (int i = 15; i < 27; i++) {
+ assertEquals(((Integer) executedHandlers.get(i)).intValue(), i + 1);
+ }
+
+ }
+
+ public class TempHandler extends AbstractHandler {
+ private Integer index;
+ private boolean pause = false;
+ public TempHandler(int index, boolean pause) {
+ this.index = new Integer(index);
+ this.pause = pause;
+ }
+ public TempHandler(int index) {
+ this.index = new Integer(index);
+ }
+
+ public void invoke(MessageContext msgContext) throws AxisFault {
+ executedHandlers.add(index);
+ if (pause) {
+ msgContext.setPaused(true);
+ }
+ }
+
+ }
+
+ public class NullProvider extends AbstractProvider {
+ public MessageContext invoke(MessageContext msgCtx) throws AxisFault {
+ MessageContext newCtx =
+ new MessageContext(
+ msgCtx.getGlobalContext().getRegistry(),
+ msgCtx.getProperties(),
+ msgCtx.getSessionContext(),msgCtx.getTransport());
+ newCtx.setEnvelope(msgCtx.getEnvelope());
+ return newCtx;
+ }
+
+ }
+
+ public class NullTransportSender implements TransportSender {
+ public void cleanup() throws AxisFault {
+ }
+
+ public QName getName() {
+ return null;
+ }
+
+ public Parameter getParameter(String name) {
+ return null;
+ }
+
+ public void init(HandlerMetadata handlerdesc) {
+ }
+
+ public void invoke(MessageContext msgContext) throws AxisFault {
+ }
+
+ public void revoke(MessageContext msgContext) {
+ }
+
+ }
+
+}
Modified: webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EngineTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EngineTest.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EngineTest.java (original)
+++ webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/EngineTest.java Sun Mar 13 18:58:57 2005
@@ -16,47 +16,118 @@
package org.apache.axis.engine;
-import junit.framework.TestCase;
-import org.apache.axis.context.MessageContext;
+import java.util.ArrayList;
import javax.xml.namespace.QName;
+import junit.framework.TestCase;
+
+import org.apache.axis.addressing.AddressingConstants;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.AxisGlobal;
+import org.apache.axis.description.AxisService;
+import org.apache.axis.description.AxisTransport;
+import org.apache.axis.description.HandlerMetadata;
+import org.apache.axis.description.Parameter;
+import org.apache.axis.handlers.AbstractHandler;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.providers.AbstractProvider;
+import org.apache.axis.transport.TransportSender;
+import org.apache.wsdl.WSDLService;
+
public class EngineTest extends TestCase {
- private QName serviceName = new QName("", "EchoService");
- private QName operationName = new QName("", "echoVoid");
- private QName transportName = new QName("", "NullTransport");
- private EngineRegistry engineRegistry;
- private MessageContext mc;
-
- public EngineTest() {
- }
-
- public EngineTest(String arg0) {
- super(arg0);
- }
-// protected void setUp() throws Exception {
-// engineRegistry = EngineUtils.createMockRegistry(serviceName,operationName,transportName);
-// mc = new MessageContext(engineRegistry,null);
-// AxisService service = engineRegistry.getService(serviceName);
-// mc.setTo(new EndpointReference(AddressingConstants.WSA_TO,"127.0.0.1:8080/axis/services/EchoService"));
-// mc.setOperation(service.getOperation(operationName));
-//
-// OutputStream out = System.out;
-// mc.setProperty(MessageContext.TRANSPORT_TYPE,
-// TransportSenderLocator.TRANSPORT_HTTP);
-// mc.setProperty(MessageContext.TRANSPORT_WRITER,out);
-// out.flush();
-// }
-
- public void testSend() throws Exception {
-// AxisEngine engine = new AxisEngine(engineRegistry);
-// engine.send(mc);
- }
-// public void testReceive()throws Exception{
-// AxisEngine engine = new AxisEngine(engineRegistry);
-// engine.receive(mc);
-// }
-// protected void tearDown() throws Exception {
-// }
+ private MessageContext mc;
+ private ArrayList executedHandlers = new ArrayList();
+ private EngineRegistry engineRegistry;
+ private QName serviceName = new QName("NullService");
+
+ public EngineTest() {
+ }
+
+ public EngineTest(String arg0) {
+ super(arg0);
+ }
+ protected void setUp() throws Exception {
+ engineRegistry = new EngineRegistryImpl(new AxisGlobal());
+
+ AxisTransport transport = new AxisTransport(new QName("null"));
+ transport.setSender(new NullTransportSender());
+ mc = new MessageContext(engineRegistry, null, null, transport);
+ mc.setServerSide(true);
+ OMFactory omFac = OMFactory.newInstance();
+ mc.setEnvelope(omFac.getDefaultEnvelope());
+ AxisService service = new AxisService(serviceName);
+ service.setProvider(new NullProvider());
+ engineRegistry.addService(service);
+ service.setStyle(WSDLService.STYLE_DOC);
+ mc.setTo(
+ new EndpointReference(
+ AddressingConstants.WSA_TO,
+ "http://127.0.0.1:8080/axis/services/NullService"));
+
+ }
+
+ public void testSend() throws Exception {
+ AxisEngine engine = new AxisEngine();
+ engine.receive(mc);
+ }
+
+ public class TempHandler extends AbstractHandler {
+ private Integer index;
+ private boolean pause = false;
+ public TempHandler(int index, boolean pause) {
+ this.index = new Integer(index);
+ this.pause = pause;
+ }
+ public TempHandler(int index) {
+ this.index = new Integer(index);
+ }
+
+ public void invoke(MessageContext msgContext) throws AxisFault {
+ executedHandlers.add(index);
+ if (pause) {
+ msgContext.setPaused(true);
+ }
+ }
+
+ }
+
+ public class NullProvider extends AbstractProvider {
+ public MessageContext invoke(MessageContext msgCtx) throws AxisFault {
+ MessageContext newCtx =
+ new MessageContext(
+ msgCtx.getGlobalContext().getRegistry(),
+ msgCtx.getProperties(),
+ msgCtx.getSessionContext(),msgCtx.getTransport());
+ newCtx.setEnvelope(msgCtx.getEnvelope());
+ return newCtx;
+ }
+
+ }
+
+ public class NullTransportSender implements TransportSender {
+ public void cleanup() throws AxisFault {
+ }
+
+ public QName getName() {
+ return null;
+ }
+
+ public Parameter getParameter(String name) {
+ return null;
+ }
+
+ public void init(HandlerMetadata handlerdesc) {
+ }
+
+ public void invoke(MessageContext msgContext) throws AxisFault {
+ }
+
+ public void revoke(MessageContext msgContext) {
+ }
+
+ }
+
}
Modified: webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/MessageContextTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/MessageContextTest.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/MessageContextTest.java (original)
+++ webservices/axis/trunk/java/modules/core/src/test/org/apache/axis/engine/MessageContextTest.java Sun Mar 13 18:58:57 2005
@@ -19,7 +19,8 @@
import org.apache.axis.AbstractTestCase;
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.AxisGlobal;
-import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.util.Utils;
public class MessageContextTest extends AbstractTestCase {
public MessageContextTest(String testName) {
@@ -28,7 +29,7 @@
public void testMesssageContext() throws AxisFault {
EngineRegistry er = new EngineRegistryImpl(new AxisGlobal());
- MessageContext msgctx = new MessageContext(er, null,null);
+ MessageContext msgctx = new MessageContext(er, null,null,null);
msgctx.setEnvelope(OMFactory.newInstance().getDefaultEnvelope());
assertNotNull(msgctx.getEnvelope());
Modified: webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/AxisServlet.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/AxisServlet.java (original)
+++ webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/AxisServlet.java Sun Mar 13 18:58:57 2005
@@ -39,6 +39,7 @@
import org.apache.axis.context.MessageContext;
import org.apache.axis.context.SessionContext;
import org.apache.axis.context.SimpleSessionContext;
+import org.apache.axis.description.AxisTransport;
import org.apache.axis.engine.AxisEngine;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.EngineRegistry;
@@ -47,6 +48,7 @@
import org.apache.axis.om.SOAPEnvelope;
import org.apache.axis.om.impl.llom.builder.StAXBuilder;
import org.apache.axis.om.impl.llom.builder.StAXSOAPModelBuilder;
+import org.apache.axis.util.Utils;
/**
* Class AxisServlet
@@ -150,7 +152,7 @@
}
MessageContext msgContext = new MessageContext(engineRegistry,
null,
- (SessionContext) sessionContext);
+ (SessionContext) sessionContext,Utils.createHTTPTransport(engineRegistry));
msgContext.setServerSide(true);
String filePart = req.getRequestURL().toString();
msgContext.setTo(new EndpointReference(AddressingConstants.WSA_TO,
@@ -168,8 +170,10 @@
StAXBuilder builder =
new StAXSOAPModelBuilder(OMFactory.newInstance(), reader);
msgContext.setEnvelope((SOAPEnvelope) builder.getDocumentElement());
- msgContext.setProperty(MessageContext.TRANSPORT_TYPE,
- Constants.TRANSPORT_HTTP);
+
+ AxisTransport httpTransport = new AxisTransport(new QName("http"));
+ httpTransport.setSender(new HTTPTransportSender());
+
msgContext.setProperty(MessageContext.TRANSPORT_WRITER,
new BufferedWriter(res.getWriter()));
engine.receive(msgContext);
Modified: webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/SimpleHTTPServer.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/SimpleHTTPServer.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/SimpleHTTPServer.java (original)
+++ webservices/axis/trunk/java/modules/http/src/java/org/apache/axis/transport/http/SimpleHTTPServer.java Sun Mar 13 18:58:57 2005
@@ -23,11 +23,11 @@
import java.net.ServerSocket;
import java.net.Socket;
-import org.apache.axis.Constants;
import org.apache.axis.context.MessageContext;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.EngineRegistry;
import org.apache.axis.engine.EngineRegistryFactory;
+import org.apache.axis.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -131,7 +131,7 @@
Reader in =
new InputStreamReader(socket.getInputStream());
MessageContext msgContext =
- new MessageContext(this.engineReg, null, null);
+ new MessageContext(this.engineReg, null, null,Utils.createHTTPTransport(engineReg));
msgContext.setServerSide(true);
out.write(HTTPConstants.HTTP);
out.write(HTTPConstants.OK);
@@ -140,8 +140,6 @@
// We do not have any Addressing Headers to put
// let us put the information about incoming transport
- msgContext.setProperty(MessageContext.TRANSPORT_TYPE,
- Constants.TRANSPORT_HTTP);
msgContext.setProperty(MessageContext.TRANSPORT_WRITER,
out);
msgContext.setProperty(MessageContext.TRANSPORT_READER,
Modified: webservices/axis/trunk/java/modules/mail/src/java/org/apache/axis/transport/mail/MailWorker.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/mail/src/java/org/apache/axis/transport/mail/MailWorker.java?view=diff&r1=157368&r2=157369
==============================================================================
--- webservices/axis/trunk/java/modules/mail/src/java/org/apache/axis/transport/mail/MailWorker.java (original)
+++ webservices/axis/trunk/java/modules/mail/src/java/org/apache/axis/transport/mail/MailWorker.java Sun Mar 13 18:58:57 2005
@@ -37,7 +37,7 @@
import org.apache.axis.om.SOAPEnvelope;
import org.apache.axis.om.impl.llom.builder.StAXBuilder;
import org.apache.axis.om.impl.llom.builder.StAXSOAPModelBuilder;
-import org.apache.axis.Constants;
+import org.apache.axis.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.net.smtp.SMTPClient;
@@ -90,7 +90,7 @@
MessageContext msgContext = null;
// create and initialize a message context
try {
- msgContext = new MessageContext(this.reg, null, null);
+ msgContext = new MessageContext(this.reg, null, null, Utils.createHTTPTransport(this.reg));
msgContext.setServerSide(true);
} catch (AxisFault af) {
log.error("Error occured while creating the message context", af);
@@ -145,9 +145,6 @@
msgContext.setEnvelope((SOAPEnvelope) builder
.getDocumentElement());
-
- msgContext.setProperty(MessageContext.TRANSPORT_TYPE,
- Constants.TRANSPORT_MAIL);
//A writer is created and sent to the engine so that the engine
// can write straight to the writer