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/06/01 04:31:17 UTC
svn commit: r179336 - in /webservices/axis/trunk/java: etc/
modules/core/src/org/apache/axis/ modules/core/src/org/apache/axis/context/
modules/core/src/org/apache/axis/deployment/
modules/core/src/org/apache/axis/engine/
modules/core/src/org/apache/axis/handlers/
modules/core/src/org/apache/axis/receivers/
modules/core/src/org/apache/axis/transport/
modules/core/src/org/apache/axis/transport/http/
modules/core/src/org/apache/axis/transport/mail/
modules/core/src/org/apache/axis/util/
modules/core/test/org/apache/axis/engine/
modules/samples/test/org/apache/axis/engine/
Author: hemapani
Date: Tue May 31 19:31:16 2005
New Revision: 179336
URL: http://svn.apache.org/viewcvs?rev=179336&view=rev
Log:
fixing the REST and Engine Pausing
Modified:
webservices/axis/trunk/java/etc/project.xml
webservices/axis/trunk/java/modules/core/src/org/apache/axis/Constants.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/MessageContext.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.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/Phase.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/handlers/AbstractHandler.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.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/HTTPTransportReceiver.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPTransportSender.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailTransportSender.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/SimpleMailListener.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/util/Utils.java
webservices/axis/trunk/java/modules/core/test/org/apache/axis/engine/EnginePausingTest.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/CallUnregisteredServiceTest.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/RESTBasedEchoRawXMLTest.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler.java
webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler1.java
Modified: webservices/axis/trunk/java/etc/project.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/etc/project.xml?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/etc/project.xml (original)
+++ webservices/axis/trunk/java/etc/project.xml Tue May 31 19:31:16 2005
@@ -172,9 +172,6 @@
<exclude>**/*Abstract*.java</exclude>
<exclude>**/*Util*.java</exclude>
<exclude>**/*PhaseResolvingTest.java</exclude>
- <exclude>**/*EnginePausingTest.java</exclude>
-
-
</excludes>
<includes>
<include>**/*Test.java</include>
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/Constants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/Constants.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/Constants.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/Constants.java Tue May 31 19:31:16 2005
@@ -83,7 +83,7 @@
* Field TRANSPORT_SMTP
*/
public static final String TRANSPORT_MAIL = "mail";
-
+
public static final String TRANSPORT_JMS = "jms";
/**
@@ -126,17 +126,12 @@
public static final String ERROR_SERVICE_MAP = "errprservicemap";
public static final String IS_FAULTY = "Fault";
-
- public static final String DO_REST = "doREST";
-
-
public static final String MODULE_ADDRESSING = "addressing";
public static final String USER_NAME = "userName";
public static final String PASSWORD = "password";
-
/**
* Field SINGLE_SERVICE
*/
@@ -148,4 +143,20 @@
public static final char METHOD_NAME_ESCAPE_CHARACTOR = '?';
public static final String LOGGED = "Logged";
+
+ public static interface SOAP {
+ public static final String SOAP_12_CONTENT_TYPE = "application/soap+xml";
+ public static final String SOAP_11_CONTENT_TYPE = "text/xml";
+ public static final String MTOM_CONTENT_TYPE = "text/xml";
+ }
+
+ public static interface Configuration {
+ public static final String DO_REST = "doREST";
+ public static final String ENABLE_REST = "eanbleREST";
+ public static final String ENABLE_MTOM = "eanbleMTOM";
+ public static final String DO_MTOM = "doMTOM";
+ }
+ public static final String VALUE_TRUE = "true";
+ public static final String VALUE_FALSE = "false";
+
}
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=179336&r1=179335&r2=179336&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 Tue May 31 19:31:16 2005
@@ -15,6 +15,8 @@
*/
package org.apache.axis.context;
+import javax.xml.namespace.QName;
+
import org.apache.axis.addressing.EndpointReference;
import org.apache.axis.addressing.MessageInformationHeadersCollection;
import org.apache.axis.addressing.miheaders.RelatesTo;
@@ -116,6 +118,10 @@
private String serviceInstanceID;
+ private String pausedPhaseName;
+
+ private QName pausedHandlerName;
+
/**
* Conveniance Method, but before call engine.send() or engine.receive() one must send transport in/out
* @param engineContext
@@ -373,9 +379,14 @@
/**
* @param b
*/
- public void setPaused(boolean b) {
- paused = b;
+ public void setPausedTrue(QName handlerName) {
+ paused = true;
+ this.pausedHandlerName = handlerName;
}
+
+ public void setPausedFalse() {
+ paused = false;
+ }
/**
* @return
@@ -519,4 +530,25 @@
}
return obj;
}
+ /**
+ * @return
+ */
+ public QName getPausedHandlerName() {
+ return pausedHandlerName;
+ }
+
+ /**
+ * @return
+ */
+ public String getPausedPhaseName() {
+ return pausedPhaseName;
+ }
+
+ /**
+ * @param name
+ */
+ public void setPausedPhaseName(String name) {
+ pausedPhaseName = name;
+ }
+
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java Tue May 31 19:31:16 2005
@@ -16,6 +16,21 @@
package org.apache.axis.deployment;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+
import org.apache.axis.context.ConfigurationContextFactory;
import org.apache.axis.deployment.listener.RepositoryListenerImpl;
import org.apache.axis.deployment.repository.utill.ArchiveFileData;
@@ -25,23 +40,21 @@
import org.apache.axis.deployment.scheduler.Scheduler;
import org.apache.axis.deployment.scheduler.SchedulerTask;
import org.apache.axis.deployment.util.DeploymentData;
-import org.apache.axis.description.*;
+import org.apache.axis.description.Flow;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.ModuleDescription;
+import org.apache.axis.description.OperationDescription;
+import org.apache.axis.description.Parameter;
+import org.apache.axis.description.ServiceDescription;
import org.apache.axis.engine.AxisConfiguration;
-import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.Handler;
import org.apache.axis.modules.Module;
import org.apache.axis.phaseresolver.PhaseException;
import org.apache.axis.phaseresolver.PhaseMetadata;
-import org.apache.axis.phaseresolver.PhaseResolver;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import java.io.*;
-import java.util.*;
-import java.util.zip.ZipInputStream;
public class DeploymentEngine implements DeploymentConstants {
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=179336&r1=179335&r2=179336&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 Tue May 31 19:31:16 2005
@@ -68,8 +68,12 @@
OperationContext operationContext = msgContext.getOperationContext();
ArrayList phases = operationContext.getAxisOperation().getPhasesOutFlow();
- invokePhases(phases, msgContext);
-
+ if (msgContext.isPaused()) {
+ resumeInvocationPhases(phases, msgContext);
+ } else {
+ invokePhases(phases, msgContext);
+ }
+
TransportOutDescription transportOut = msgContext.getTransportOut();
TransportSender sender = transportOut.getSender();
@@ -91,25 +95,36 @@
* @see Phase
* @see Handler
*/
- public void receive(MessageContext context) throws AxisFault {
+ public void receive(MessageContext msgContext) throws AxisFault {
+ boolean paused = msgContext.isPaused();
try {
- ConfigurationContext sysCtx = context.getSystemContext();
- ArrayList phases = sysCtx.getAxisConfiguration().getInPhasesUptoAndIncludingPostDispatch();
- invokePhases(phases, context);
- verifyContextBuilt(context);
-
- OperationContext operationContext = context.getOperationContext();
+ ConfigurationContext sysCtx = msgContext.getSystemContext();
+ ArrayList phases =
+ sysCtx.getAxisConfiguration().getInPhasesUptoAndIncludingPostDispatch();
+
+ if (paused) {
+ resumeInvocationPhases(phases, msgContext);
+ } else {
+ invokePhases(phases, msgContext);
+ }
+ verifyContextBuilt(msgContext);
+
+ OperationContext operationContext = msgContext.getOperationContext();
OperationDescription operationDescription = operationContext.getAxisOperation();
phases = operationDescription.getRemainingPhasesInFlow();
- invokePhases(phases, context);
- if (context.isServerSide()) {
+ if (paused) {
+ resumeInvocationPhases(phases, msgContext);
+ } else {
+ invokePhases(phases, msgContext);
+ }
+ if (msgContext.isServerSide()) {
// add invoke Phase
MessageReceiver reciver =
- context.getOperationContext().getAxisOperation().getMessageReciever();
- reciver.recieve(context);
+ msgContext.getOperationContext().getAxisOperation().getMessageReciever();
+ reciver.recieve(msgContext);
}
} catch (Throwable e) {
- handleFault(context, e);
+ handleFault(msgContext, e);
}
}
@@ -131,25 +146,25 @@
// create a SOAP envelope with the Fault
MessageContext faultContext =
- new MessageContext(engineContext,
+ new MessageContext(
+ engineContext,
context.getSessionContext(),
context.getTransportIn(),
context.getTransportOut());
-
- if(context.getFaultTo() != null){
+
+ if (context.getFaultTo() != null) {
faultContext.setFaultTo(context.getFaultTo());
- } else{
+ } else {
Object writer = context.getProperty(MessageContext.TRANSPORT_WRITER);
- if(writer != null){
- faultContext.setProperty(MessageContext.TRANSPORT_WRITER,writer);
- }else{
+ if (writer != null) {
+ faultContext.setProperty(MessageContext.TRANSPORT_WRITER, writer);
+ } else {
//TODO Opps there are no place to send this, we will log and should we throw the exception?
log.error("Error in fault flow", e);
e.printStackTrace();
}
- }
-
-
+ }
+
faultContext.setOperationContext(context.getOperationContext());
faultContext.setProcessingFault(true);
faultContext.setServerSide(true);
@@ -161,8 +176,8 @@
body.addFault(new AxisFault(e.getMessage(), e));
faultContext.setEnvelope(envelope);
- OperationContext opContext = context.getOperationContext();
- if(opContext != null){
+ OperationContext opContext = context.getOperationContext();
+ if (opContext != null) {
OperationDescription axisOperation = opContext.getAxisOperation();
ArrayList phases = axisOperation.getPhasesOutFaultFlow();
invokePhases(phases, context);
@@ -193,9 +208,28 @@
private void invokePhases(ArrayList phases, MessageContext msgctx) throws AxisFault {
int count = phases.size();
- for (int i = 0; i < count; i++) {
+ for (int i = 0; (i < count && !msgctx.isPaused()); i++) {
Phase phase = (Phase) phases.get(i);
phase.invoke(msgctx);
+ }
+ }
+
+ public void resumeInvocationPhases(ArrayList phases, MessageContext msgctx) throws AxisFault {
+ msgctx.setPausedFalse();
+ int count = phases.size();
+ boolean foudMatch = false;
+
+ for (int i = 0; i < count && !msgctx.isPaused(); i++) {
+ Phase phase = (Phase) phases.get(i);
+ if (phase.getPhaseName().equals(msgctx.getPausedPhaseName())) {
+ foudMatch = true;
+ phase.invokeStartFromHandler(msgctx.getPausedHandlerName(), msgctx);
+ } else {
+ if (foudMatch) {
+ phase.invoke(msgctx);
+ }
+
+ }
}
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/Phase.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/Phase.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/Phase.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/Phase.java Tue May 31 19:31:16 2005
@@ -23,6 +23,8 @@
import java.util.ArrayList;
+import javax.xml.namespace.QName;
+
/**
* <p>This is Phase, a orderd collection of Handlers.
* seems this is Handler Chain with order.</p>
@@ -91,7 +93,6 @@
*/
private boolean isonehanlder;
-
/**
* Constructor Phase
*
@@ -109,8 +110,8 @@
* @param index
*/
public void addHandler(Handler handler, int index) {
- log.info("Handler " + handler.getName() + "Added to place " + 1
- + " At the Phase " + phaseName);
+ log.info(
+ "Handler " + handler.getName() + "Added to place " + 1 + " At the Phase " + phaseName);
handlers.add(index, handler);
}
@@ -120,8 +121,7 @@
* @param handler
*/
public void addHandler(Handler handler) {
- log.info("Handler " + handler.getName() + " Added to the Phase "
- + phaseName);
+ log.info("Handler " + handler.getName() + " Added to the Phase " + phaseName);
handlers.add(handler);
}
@@ -132,13 +132,17 @@
* @throws AxisFault
*/
public void invoke(MessageContext msgctx) throws AxisFault {
+ msgctx.setPausedPhaseName(this.getPhaseName());
//If phase first Hnadler is there then it should run first
if (phaseFirst != null) {
if (msgctx.isPaused()) {
return;
} else {
- log.info("Invoke the Phase first handler " + phaseFirst.getName()
- + "with in the Phase " + phaseName);
+ log.info(
+ "Invoke the Phase first handler "
+ + phaseFirst.getName()
+ + "with in the Phase "
+ + phaseName);
phaseFirst.invoke(msgctx);
}
}
@@ -150,8 +154,11 @@
} else {
Handler handler = (Handler) handlers.get(indexOfHandlerToExecute);
if (handler != null) {
- log.info("Invoke the Handler " + handler.getName()
- + "with in the Phase " + phaseName);
+ 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
@@ -164,8 +171,11 @@
if (msgctx.isPaused()) {
return;
} else {
- log.info("Invoke the Phase first handler " + phaseLast.getName()
- + "with in the Phase " + phaseName);
+ log.info(
+ "Invoke the Phase first handler "
+ + phaseLast.getName()
+ + "with in the Phase "
+ + phaseName);
phaseLast.invoke(msgctx);
}
}
@@ -178,16 +188,12 @@
return phaseName;
}
-
public int getHandlerCount() {
return handlers.size();
}
-
-
//////////////////////////////////////////////////////////////// FROM PhaseMetaData //////////
-
/**
* Method getBeforeAfter
*
@@ -198,9 +204,14 @@
*/
private int getBeforeAfter(Handler handler) throws PhaseException {
if ((!handler.getHandlerDesc().getRules().getBefore().equals(""))
- && (!handler.getHandlerDesc().getRules().getAfter().equals(""))) {
- if (handler.getHandlerDesc().getRules().getBefore().equals(handler.getHandlerDesc().getRules().getAfter())) {
- throw new PhaseException("Both before and after cannot be the same for this handler"
+ && (!handler.getHandlerDesc().getRules().getAfter().equals(""))) {
+ if (handler
+ .getHandlerDesc()
+ .getRules()
+ .getBefore()
+ .equals(handler.getHandlerDesc().getRules().getAfter())) {
+ throw new PhaseException(
+ "Both before and after cannot be the same for this handler"
+ handler.getName());
}
return BOTH_BEFORE_AFTER;
@@ -219,14 +230,15 @@
* @param phaseFirst
* @throws PhaseException
*/
- public void setPhaseFirst(Handler phaseFirst)
- throws PhaseException {
+ public void setPhaseFirst(Handler phaseFirst) throws PhaseException {
if (phasefirstset) {
- throw new PhaseException("PhaseFirst alredy has been set, cannot have two phaseFirst Handler for same phase "
+ throw new PhaseException(
+ "PhaseFirst alredy has been set, cannot have two phaseFirst Handler for same phase "
+ this.getPhaseName());
} else {
if (getBeforeAfter(phaseFirst) != ANYWHERE) {
- throw new PhaseException("Handler with PhaseFirst can not have any before or after proprty error in "
+ throw new PhaseException(
+ "Handler with PhaseFirst can not have any before or after proprty error in "
+ phaseFirst.getName());
} else {
this.phaseFirst = phaseFirst;
@@ -235,7 +247,6 @@
}
}
-
/**
* Method setPhaseLast
*
@@ -244,11 +255,13 @@
*/
public void setPhaseLast(Handler phaseLast) throws PhaseException {
if (phaselastset) {
- throw new PhaseException("PhaseLast already has been set, cannot have two PhaseLast Handler for same phase "
+ throw new PhaseException(
+ "PhaseLast already has been set, cannot have two PhaseLast Handler for same phase "
+ this.getPhaseName());
} else {
if (getBeforeAfter(phaseLast) != ANYWHERE) {
- throw new PhaseException("Handler with PhaseLast property can not have any before or after property error in "
+ throw new PhaseException(
+ "Handler with PhaseLast property can not have any before or after property error in "
+ phaseLast.getName());
} else {
this.phaseLast = phaseLast;
@@ -257,7 +270,6 @@
}
}
-
/**
* Method addHandler
*
@@ -266,13 +278,18 @@
*/
public void addHandler(HandlerDescription handler) throws PhaseException {
if (isonehanlder) {
- throw new PhaseException(this.getPhaseName() + "can only have one handler, since there is a " +
- "handler with both phaseFirst and PhaseLast true ");
+ throw new PhaseException(
+ this.getPhaseName()
+ + "can only have one handler, since there is a "
+ + "handler with both phaseFirst and PhaseLast true ");
} else {
if (handler.getRules().isPhaseFirst() && handler.getRules().isPhaseLast()) {
if (handlers.size() > 0) {
- throw new PhaseException(this.getPhaseName() + " can not have more than one handler "
- + handler.getName() + " is invalid or incorrect phase rules");
+ throw new PhaseException(
+ this.getPhaseName()
+ + " can not have more than one handler "
+ + handler.getName()
+ + " is invalid or incorrect phase rules");
} else {
handlers.add(handler.getHandler());
isonehanlder = true;
@@ -303,7 +320,8 @@
if (phaseFirst != null) {
String phasFirstname = phaseFirst.getHandlerDesc().getName().getLocalPart();
if (handler.getHandlerDesc().getRules().getBefore().equals(phasFirstname)) {
- throw new PhaseException("Trying to insert a Handler "
+ throw new PhaseException(
+ "Trying to insert a Handler "
+ handler.getName()
+ " before phaseFirst "
+ phasFirstname);
@@ -321,7 +339,8 @@
if (phaseLast != null) {
String phaseLastName = phaseLast.getHandlerDesc().getName().getLocalPart();
if (handler.getName().equals(phaseLastName)) {
- throw new PhaseException("Try to insert a Handler "
+ throw new PhaseException(
+ "Try to insert a Handler "
+ handler.getName()
+ " after phaseLast "
+ phaseLastName);
@@ -397,8 +416,7 @@
* @param handler
* @throws PhaseException
*/
- private void insertBeforeandAfter(Handler handler)
- throws PhaseException {
+ private void insertBeforeandAfter(Handler handler) throws PhaseException {
int before = -1;
int after = -1;
@@ -407,35 +425,57 @@
* just add the entery to vector
*/
if ((phaseFirst != null) && (phaseLast != null)) {
- if ((phaseFirst.getHandlerDesc().getName().getLocalPart().equals(handler.getHandlerDesc().getRules().getAfter()))
- && (phaseLast.getHandlerDesc().getName().getLocalPart().equals(handler.getHandlerDesc().getRules().getBefore()))) {
+ if ((phaseFirst
+ .getHandlerDesc()
+ .getName()
+ .getLocalPart()
+ .equals(handler.getHandlerDesc().getRules().getAfter()))
+ && (phaseLast
+ .getHandlerDesc()
+ .getName()
+ .getLocalPart()
+ .equals(handler.getHandlerDesc().getRules().getBefore()))) {
handlers.add(handler);
return;
}
}
- if (phaseFirst != null &&
- (phaseFirst.getHandlerDesc().getName().getLocalPart().equals(handler.getHandlerDesc().getRules().getAfter()))) {
+ if (phaseFirst != null
+ && (phaseFirst
+ .getHandlerDesc()
+ .getName()
+ .getLocalPart()
+ .equals(handler.getHandlerDesc().getRules().getAfter()))) {
after = 0;
}
- if (phaseLast != null &&
- (phaseLast.getHandlerDesc().getName().getLocalPart().equals(handler.getHandlerDesc().getRules().getBefore()))) {
+ if (phaseLast != null
+ && (phaseLast
+ .getHandlerDesc()
+ .getName()
+ .getLocalPart()
+ .equals(handler.getHandlerDesc().getRules().getBefore()))) {
before = handlers.size();
}
for (int i = 0; i < handlers.size(); i++) {
Handler temphandler = (Handler) handlers.get(i);
- if (handler.getHandlerDesc().getRules().getAfter().equals(temphandler.getHandlerDesc().getName().getLocalPart())) {
+ if (handler
+ .getHandlerDesc()
+ .getRules()
+ .getAfter()
+ .equals(temphandler.getHandlerDesc().getName().getLocalPart())) {
after = i;
- } else if (handler.getHandlerDesc().getRules().getBefore().equals(temphandler.getHandlerDesc().getName().getLocalPart())) {
+ } else if (
+ handler.getHandlerDesc().getRules().getBefore().equals(
+ temphandler.getHandlerDesc().getName().getLocalPart())) {
before = i;
}
if ((after >= 0) && (before >= 0)) {
// no point of continue since both the before and after index has found
if (after > before) {
//TODO fix me Deepal , (have to check this)
- throw new PhaseException("incorrect handler order for "
- + handler.getHandlerDesc().getName());
+ throw new PhaseException(
+ "incorrect handler order for " + handler.getHandlerDesc().getName());
} else {
if (after + 1 <= handlers.size()) {
handlers.add(after + 1, handler);
@@ -456,22 +496,22 @@
validateafter(han);
validatebefore(han);
switch (type) {
- case BOTH_BEFORE_AFTER:
+ case BOTH_BEFORE_AFTER :
{
insertBeforeandAfter(han);
break;
}
- case BEFORE:
+ case BEFORE :
{
insertBefore(han);
break;
}
- case AFTER:
+ case AFTER :
{
insertAfter(han);
break;
}
- case ANYWHERE:
+ case ANYWHERE :
{
handlers.add(han);
break;
@@ -479,10 +519,10 @@
}
}
- /**
- * To get the all the handlers in the phase
- * @return
- */
+ /**
+ * To get the all the handlers in the phase
+ * @return
+ */
public ArrayList getHandlers() {
ArrayList phaseHandlers = new ArrayList();
if (phaseFirst != null) {
@@ -496,6 +536,25 @@
phaseHandlers.add(phaseLast);
}
return phaseHandlers;
+ }
+ public void invokeStartFromHandler(QName name, MessageContext msgctx) throws AxisFault {
+ msgctx.setPausedPhaseName(this.getPhaseName());
+ boolean foudMatch = false;
+ ArrayList phaseHandlers = getHandlers();
+ for (int i = 0; i < phaseHandlers.size(); i++) {
+ Handler handler = (Handler) handlers.get(i);
+ if(handler != null && handler.getName().equals(name)){
+ foudMatch = true;
+ }
+
+ if(handler != null && foudMatch){
+ handler.invoke(msgctx);
+ }
+ }
+ }
+
+ public String toString() {
+ return this.getPhaseName();
}
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/handlers/AbstractHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/handlers/AbstractHandler.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/handlers/AbstractHandler.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/handlers/AbstractHandler.java Tue May 31 19:31:16 2005
@@ -32,7 +32,7 @@
* Field EMPTY_HANDLER_METADATA
*/
private static HandlerDescription EMPTY_HANDLER_METADATA =
- new HandlerDescription();
+ new HandlerDescription(new QName("deafult Handler"));
/**
* Field handlerDesc
@@ -99,4 +99,12 @@
public HandlerDescription getHandlerDesc() {
return handlerDesc;
}
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ public String toString() {
+ QName name = this.getName();
+ return (name!=null)?name.toString():null;
+ }
+
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java Tue May 31 19:31:16 2005
@@ -15,6 +15,7 @@
*/
package org.apache.axis.receivers;
+import org.apache.axis.Constants;
import org.apache.axis.addressing.AddressingConstants;
import org.apache.axis.addressing.MessageInformationHeadersCollection;
import org.apache.axis.addressing.miheaders.RelatesTo;
@@ -55,6 +56,8 @@
newmsgCtx.setOperationContext(messgeCtx.getOperationContext());
newmsgCtx.setServiceContext(messgeCtx.getServiceContext());
newmsgCtx.setProperty(MessageContext.TRANSPORT_WRITER,messgeCtx.getProperty(MessageContext.TRANSPORT_WRITER));
+ newmsgCtx.setProperty(Constants.Configuration.DO_REST,messgeCtx.getProperty((Constants.Configuration.DO_REST)));
+ newmsgCtx.setProperty(Constants.Configuration.DO_MTOM,messgeCtx.getProperty(Constants.Configuration.DO_MTOM));
invokeBusinessLogic(messgeCtx,newmsgCtx);
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java Tue May 31 19:31:16 2005
@@ -38,19 +38,17 @@
* TRANSPORT_WRITER property set in the message Context with a Writer. This Class would write the
* SOAPMessage using either of the methods in the order To then Writer.
*/
-public abstract class AbstractTransportSender
- extends AbstractHandler
- implements TransportSender {
+public abstract class AbstractTransportSender extends AbstractHandler implements TransportSender {
/**
* Field log
*/
private Log log = LogFactory.getLog(getClass());
+ protected boolean doREST = false;
/**
* Field NAME
*/
- public static final QName NAME =
- new QName("http://axis.ws.apache.org", "TransportSender");
+ public static final QName NAME = new QName("http://axis.ws.apache.org", "TransportSender");
/**
* Constructor AbstractTransportSender
@@ -66,13 +64,19 @@
* @throws AxisFault
*/
public void invoke(MessageContext msgContext) throws AxisFault {
+ //Check for the REST behaviour, if you desire rest beahaviour
+ //put a <parameter name="doREST" value="true"/> at the server.xml/client.xml file
+ Object doREST = msgContext.getProperty(Constants.Configuration.DO_REST);
+ if (doREST != null && Constants.VALUE_TRUE.equals(doREST)) {
+ this.doREST = true;
+ }
+
Writer out = null;
EndpointReference epr = null;
if (msgContext.getTo() != null
- && !AddressingConstants.EPR_ANONYMOUS_URL.equals(
- msgContext.getTo().getAddress())) {
+ && !AddressingConstants.EPR_ANONYMOUS_URL.equals(msgContext.getTo().getAddress())) {
epr = msgContext.getTo();
}
@@ -82,43 +86,29 @@
writeMessage(msgContext, out);
finalizeSendWithToAddress(msgContext, out);
} else {
- out =
- (Writer) msgContext.getProperty(
- MessageContext.TRANSPORT_WRITER);
+ out = (Writer) msgContext.getProperty(MessageContext.TRANSPORT_WRITER);
if (out != null) {
- startSendWithOutputStreamFromIncomingConnection(
- msgContext,
- out);
+ startSendWithOutputStreamFromIncomingConnection(msgContext, out);
writeMessage(msgContext, out);
- finalizeSendWithOutputStreamFromIncomingConnection(
- msgContext,
- out);
+ finalizeSendWithOutputStreamFromIncomingConnection(msgContext, out);
} else {
throw new AxisFault("Both the TO and Property MessageContext.TRANSPORT_WRITER is Null, No where to send");
}
}
}
- public void writeMessage(MessageContext msgContext, Writer out)
- throws AxisFault {
+ public void writeMessage(MessageContext msgContext, Writer out) throws AxisFault {
SOAPEnvelope envelope = msgContext.getEnvelope();
OMElement outputMessage = envelope;
- //Check for the REST behaviour, if you desire rest beahaviour
- //put a <parameter name="doREST" value="true"/> at the server.xml/client.xml file
-
- Object doREST = msgContext.getProperty(Constants.DO_REST);
- if (envelope != null
- && doREST != null
- && "true".equals(doREST)) {
+ if (envelope != null && this.doREST) {
outputMessage = envelope.getBody().getFirstElement();
}
if (outputMessage != null) {
XMLStreamWriter outputWriter = null;
try {
- outputWriter =
- XMLOutputFactory.newInstance().createXMLStreamWriter(out);
+ outputWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(out);
outputMessage.serialize(outputWriter);
outputWriter.flush();
out.flush();
@@ -131,13 +121,9 @@
}
}
- public abstract void startSendWithToAddress(
- MessageContext msgContext,
- Writer writer)
+ public abstract void startSendWithToAddress(MessageContext msgContext, Writer writer)
throws AxisFault;
- public abstract void finalizeSendWithToAddress(
- MessageContext msgContext,
- Writer writer)
+ public abstract void finalizeSendWithToAddress(MessageContext msgContext, Writer writer)
throws AxisFault;
public abstract void startSendWithOutputStreamFromIncomingConnection(
@@ -149,6 +135,5 @@
Writer writer)
throws AxisFault;
- protected abstract Writer openTheConnection(EndpointReference epr)
- throws AxisFault;
+ protected abstract Writer openTheConnection(EndpointReference epr) throws AxisFault;
}
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=179336&r1=179335&r2=179336&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 Tue May 31 19:31:16 2005
@@ -19,10 +19,9 @@
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.util.HashMap;
-import java.util.Collection;
-import java.util.Iterator;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
@@ -37,23 +36,23 @@
import javax.xml.stream.XMLStreamReader;
import org.apache.axis.Constants;
-import org.apache.axis.deployment.util.DeploymentData;
-import org.apache.axis.description.ServiceDescription;
import org.apache.axis.addressing.AddressingConstants;
import org.apache.axis.addressing.EndpointReference;
import org.apache.axis.context.ConfigurationContext;
import org.apache.axis.context.ConfigurationContextFactory;
import org.apache.axis.context.MessageContext;
import org.apache.axis.context.SessionContext;
+import org.apache.axis.deployment.util.DeploymentData;
+import org.apache.axis.engine.AxisConfigurationImpl;
import org.apache.axis.engine.AxisEngine;
import org.apache.axis.engine.AxisFault;
-import org.apache.axis.engine.AxisConfigurationImpl;
import org.apache.axis.om.impl.llom.builder.StAXBuilder;
import org.apache.axis.om.impl.llom.builder.StAXOMBuilder;
import org.apache.axis.soap.SOAPEnvelope;
import org.apache.axis.soap.SOAPFactory;
import org.apache.axis.soap.impl.llom.builder.StAXSOAPModelBuilder;
import org.apache.axis.soap.impl.llom.soap11.SOAP11Factory;
+import org.apache.axis.util.Utils;
/**
* Class AxisServlet
@@ -234,10 +233,11 @@
XMLInputFactory.newInstance().createXMLStreamReader(
new BufferedReader(
new InputStreamReader(req.getInputStream())));
+ Utils.configureMessageContextForHTTP(req.getContentType(),soapActionString,msgContext);
//Check for the REST behaviour, if you desire rest beahaviour
//put a <parameter name="doREST" value="true"/> at the server.xml/client.xml file
- Object doREST = msgContext.getProperty(Constants.DO_REST);
+ Object doREST = msgContext.getProperty(Constants.Configuration.DO_REST);
StAXBuilder builder = null;
SOAPEnvelope envelope = null;
if (doREST != null && "true".equals(doREST)) {
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPTransportReceiver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPTransportReceiver.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPTransportReceiver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPTransportReceiver.java Tue May 31 19:31:16 2005
@@ -35,6 +35,7 @@
import org.apache.axis.soap.SOAPFactory;
import org.apache.axis.soap.impl.llom.builder.StAXSOAPModelBuilder;
import org.apache.axis.soap.impl.llom.soap11.SOAP11Factory;
+import org.apache.axis.util.Utils;
/**
* Class HTTPTransportReceiver
@@ -105,6 +106,7 @@
if (serverSide) {
msgContext.setWSAAction(
(String) map.get(HTTPConstants.HEADER_SOAP_ACTION));
+ Utils.configureMessageContextForHTTP((String)map.get(HTTPConstants.HEADER_CONTENT_TYPE),msgContext.getWSAAction(),msgContext);
String requestURI = (String) map.get(HTTPConstants.REQUEST_URI);
msgContext.setTo(
@@ -131,7 +133,7 @@
try {
//Check for the REST behaviour, if you desire rest beahaviour
//put a <parameter name="doREST" value="true"/> at the server.xml/client.xml file
- Object doREST = msgContext.getProperty(Constants.DO_REST);
+ Object doREST = msgContext.getProperty(Constants.Configuration.DO_REST);
XMLStreamReader xmlreader =
XMLInputFactory.newInstance().createXMLStreamReader(in);
StAXBuilder builder = null;
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPTransportSender.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPTransportSender.java Tue May 31 19:31:16 2005
@@ -83,7 +83,10 @@
buf.append("Cache-Control: no-cache\n");
buf.append("Pragma: no-cache\n");
buf.append("Content-Length: " + contentLength + "\n");
- buf.append("SOAPAction: \"" + soapActionString + "\"\n\n");
+ if(!this.doREST){
+ buf.append("SOAPAction: \"" + soapActionString + "\"\n");
+ }
+ buf.append("\n");
out.write(buf.toString());
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailTransportSender.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailTransportSender.java Tue May 31 19:31:16 2005
@@ -29,6 +29,7 @@
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.apache.axis.addressing.EndpointReference;
@@ -56,34 +57,6 @@
}
public void startSendWithToAddress(MessageContext msgContext, Writer writer) throws AxisFault {
- }
-
- protected Writer openTheConnection(EndpointReference epr) throws AxisFault {
-
- try {
-
- in = new PipedInputStream();
- PipedOutputStream out = new PipedOutputStream(in);
-
- return new OutputStreamWriter(out);
- } catch (IOException e) {
- throw new AxisFault(e);
- }
-
- }
-
- //Output Stream based cases are not supported
- public void startSendWithOutputStreamFromIncomingConnection(
- MessageContext msgContext,
- Writer writer)
- throws AxisFault {
- throw new UnsupportedOperationException();
-
- }
- public void finalizeSendWithOutputStreamFromIncomingConnection(
- MessageContext msgContext,
- Writer writer)
- throws AxisFault {
try {
TransportOutDescription transportOut = msgContext.getTransportOut();
user = Utils.getParameterValue(transportOut.getParameter(MailConstants.SMTP_USER));
@@ -111,8 +84,8 @@
if (action != null) {
msg.setHeader("transport.mail.soapaction", action);
}
-
- msg.addRecipients(Message.RecipientType.TO, msgContext.getTo().getAddress());
+
+ msg.addRecipient(Message.RecipientType.TO, new InternetAddress(msgContext.getTo().getAddress()));
msg.setSubject(msgContext.getTo().getAddress());
Transport.send(msg);
@@ -132,6 +105,35 @@
} catch (MessagingException e) {
throw new AxisFault(e);
}
+
+ }
+
+ protected Writer openTheConnection(EndpointReference epr) throws AxisFault {
+
+ try {
+
+ in = new PipedInputStream();
+ PipedOutputStream out = new PipedOutputStream(in);
+
+ return new OutputStreamWriter(out);
+ } catch (IOException e) {
+ throw new AxisFault(e);
+ }
+
+ }
+
+ //Output Stream based cases are not supported
+ public void startSendWithOutputStreamFromIncomingConnection(
+ MessageContext msgContext,
+ Writer writer)
+ throws AxisFault {
+ throw new UnsupportedOperationException();
+
+ }
+ public void finalizeSendWithOutputStreamFromIncomingConnection(
+ MessageContext msgContext,
+ Writer writer)
+ throws AxisFault {
}
/* (non-Javadoc)
* @see org.apache.axis.transport.TransportSender#cleanUp()
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/SimpleMailListener.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/SimpleMailListener.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/SimpleMailListener.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/SimpleMailListener.java Tue May 31 19:31:16 2005
@@ -191,8 +191,7 @@
//log.debug(Messages.getMessage("exception00"), e); TODO Issue
// #1 CT 07-Feb-2005.
log.debug("An error occured when running the mail listner." + e.getMessage(), e);
- System.out.println(
- "An error occured when running the mail listner." + e.getMessage());
+ e.printStackTrace();
break;
}
try {
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=179336&r1=179335&r2=179336&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 Tue May 31 19:31:16 2005
@@ -17,6 +17,8 @@
import javax.xml.namespace.QName;
+import org.apache.axis.Constants;
+import org.apache.axis.context.MessageContext;
import org.apache.axis.description.Flow;
import org.apache.axis.description.HandlerDescription;
import org.apache.axis.description.OperationDescription;
@@ -134,5 +136,24 @@
return (String)param.getValue();
}
}
+
+ public static void configureMessageContextForHTTP(String contextType,String soapAction, MessageContext msgCtx) throws AxisFault{
+ if(Constants.SOAP.MTOM_CONTENT_TYPE.equals(contextType)){
+ if(Constants.VALUE_TRUE.equals(msgCtx.getProperty(Constants.Configuration.ENABLE_MTOM))){
+ msgCtx.setProperty(Constants.Configuration.DO_MTOM,Constants.VALUE_TRUE);
+ }else{
+ throw new AxisFault("MTOTM Not supported");
+ }
+ }else if(Constants.SOAP.SOAP_12_CONTENT_TYPE.equals(contextType)){
+ //TODO what to do with 1.2 for REST
+ }else if(contextType != null && contextType.indexOf(Constants.SOAP.SOAP_11_CONTENT_TYPE) > -1){
+ if((soapAction == null || soapAction.length() == 0)
+ && Constants.VALUE_TRUE.equals(msgCtx.getProperty(Constants.Configuration.ENABLE_REST))){
+ msgCtx.setProperty(Constants.Configuration.DO_REST,Constants.VALUE_TRUE);
+ }
+ }
+
+ }
+
}
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=179336&r1=179335&r2=179336&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 Tue May 31 19:31:16 2005
@@ -22,6 +22,7 @@
import org.apache.axis.context.ConfigurationContext;
import org.apache.axis.context.MessageContext;
import org.apache.axis.context.ServiceContext;
+import org.apache.axis.description.HandlerDescription;
import org.apache.axis.description.OperationDescription;
import org.apache.axis.description.ServiceDescription;
import org.apache.axis.description.TransportInDescription;
@@ -36,7 +37,6 @@
import java.io.OutputStreamWriter;
import java.util.ArrayList;
-
public class EnginePausingTest extends TestCase {
private QName serviceName = new QName("NullService");
@@ -81,49 +81,46 @@
SOAPFactory omFac = OMAbstractFactory.getSOAP11Factory();
mc.setEnvelope(omFac.getDefaultEnvelope());
- 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);
+ Phase phase1 = new Phase("1");
+ phase1.addHandler(new TempHandler(1));
+ phase1.addHandler(new TempHandler(2));
+ phase1.addHandler(new TempHandler(3));
+ phase1.addHandler(new TempHandler(4));
+ phase1.addHandler(new TempHandler(5));
+ phase1.addHandler(new TempHandler(6));
+ phase1.addHandler(new TempHandler(7));
+ phase1.addHandler(new TempHandler(8));
+ phase1.addHandler(new TempHandler(9));
+
+ Phase phase2 = new Phase("2");
+ phase2.addHandler(new TempHandler(10));
+ phase2.addHandler(new TempHandler(11));
+ phase2.addHandler(new TempHandler(12));
+ phase2.addHandler(new TempHandler(13));
+ phase2.addHandler(new TempHandler(14));
+ phase2.addHandler(new TempHandler(15, true));
+ phase2.addHandler(new TempHandler(16));
+ phase2.addHandler(new TempHandler(17));
+ phase2.addHandler(new TempHandler(18));
+
+ Phase phase3 = new Phase("3");
+ phase3.addHandler(new TempHandler(19));
+ phase3.addHandler(new TempHandler(20));
+ phase3.addHandler(new TempHandler(21));
+ phase3.addHandler(new TempHandler(22));
+ phase3.addHandler(new TempHandler(23));
+ phase3.addHandler(new TempHandler(24));
+ phase3.addHandler(new TempHandler(25));
+ phase3.addHandler(new TempHandler(26));
+ phase3.addHandler(new TempHandler(27));
ServiceContext serviceContext = new ServiceContext(service, engineContext);
engineContext.registerServiceContext(serviceContext.getServiceInstanceID(), serviceContext);
//TODO
- axisOp.getRemainingPhasesInFlow().addAll(phases);
+ axisOp.getRemainingPhasesInFlow().add(phase1);
+ axisOp.getRemainingPhasesInFlow().add(phase2);
+ axisOp.getRemainingPhasesInFlow().add(phase3);
mc.setWSAAction(operationName.getLocalPart());
System.out.flush();
@@ -131,14 +128,14 @@
}
public void testReceive() throws Exception {
- mc.setTo(new EndpointReference(AddressingConstants.WSA_TO, "axis/services/NullService/DummyOp"));
+ mc.setTo(
+ new EndpointReference(AddressingConstants.WSA_TO, "axis/services/NullService/DummyOp"));
AxisEngine engine = new AxisEngine(engineContext);
engine.receive(mc);
- assertEquals(executedHandlers.size(), 15);
- for (int i = 0; i < 15; i++) {
+ assertEquals(executedHandlers.size(), 14);
+ for (int i = 0; i < 14; i++) {
assertEquals(((Integer) executedHandlers.get(i)).intValue(), i + 1);
}
- mc.setPaused(false);
engine.receive(mc);
assertEquals(executedHandlers.size(), 27);
@@ -155,16 +152,21 @@
public TempHandler(int index, boolean pause) {
this.index = new Integer(index);
this.pause = pause;
+ init(new HandlerDescription(new QName("handler" + index)));
}
public TempHandler(int index) {
this.index = new Integer(index);
+ init(new HandlerDescription(new QName("handler" + index)));
}
public void invoke(MessageContext msgContext) throws AxisFault {
- executedHandlers.add(index);
- if (pause) {
- msgContext.setPaused(true);
+ String paused = "paused";
+ if (pause && msgContext.getProperty(paused) == null) {
+ msgContext.setProperty(paused, "true");
+ msgContext.setPausedTrue(getName());
+ }else{
+ executedHandlers.add(index);
}
}
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/CallUnregisteredServiceTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/CallUnregisteredServiceTest.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/CallUnregisteredServiceTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/CallUnregisteredServiceTest.java Tue May 31 19:31:16 2005
@@ -18,7 +18,10 @@
//todo
+import javax.xml.namespace.QName;
+
import junit.framework.TestCase;
+
import org.apache.axis.Constants;
import org.apache.axis.addressing.AddressingConstants;
import org.apache.axis.addressing.EndpointReference;
@@ -34,8 +37,6 @@
import org.apache.axis.transport.http.SimpleHTTPServer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
public class CallUnregisteredServiceTest extends TestCase{
private Log log = LogFactory.getLog(getClass());
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java Tue May 31 19:31:16 2005
@@ -20,15 +20,12 @@
import javax.xml.namespace.QName;
import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
import junit.framework.TestCase;
import org.apache.axis.Constants;
import org.apache.axis.addressing.AddressingConstants;
import org.apache.axis.addressing.EndpointReference;
-import org.apache.axis.clientapi.AsyncResult;
-import org.apache.axis.clientapi.Callback;
import org.apache.axis.context.MessageContext;
import org.apache.axis.context.ServiceContext;
import org.apache.axis.description.ServiceDescription;
@@ -38,7 +35,6 @@
import org.apache.axis.om.OMFactory;
import org.apache.axis.om.OMNamespace;
import org.apache.axis.soap.SOAPFactory;
-import org.apache.axis.transport.http.SimpleHTTPServer;
import org.apache.axis.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java Tue May 31 19:31:16 2005
@@ -38,7 +38,6 @@
import org.apache.axis.om.OMFactory;
import org.apache.axis.om.OMNamespace;
import org.apache.axis.soap.SOAPFactory;
-import org.apache.axis.transport.http.SimpleHTTPServer;
import org.apache.axis.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java Tue May 31 19:31:16 2005
@@ -20,15 +20,12 @@
import javax.xml.namespace.QName;
import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
import junit.framework.TestCase;
import org.apache.axis.Constants;
import org.apache.axis.addressing.AddressingConstants;
import org.apache.axis.addressing.EndpointReference;
-import org.apache.axis.clientapi.AsyncResult;
-import org.apache.axis.clientapi.Callback;
import org.apache.axis.context.MessageContext;
import org.apache.axis.context.ServiceContext;
import org.apache.axis.description.ServiceDescription;
@@ -38,7 +35,6 @@
import org.apache.axis.om.OMFactory;
import org.apache.axis.om.OMNamespace;
import org.apache.axis.soap.SOAPFactory;
-import org.apache.axis.transport.http.SimpleHTTPServer;
import org.apache.axis.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java Tue May 31 19:31:16 2005
@@ -18,7 +18,16 @@
//todo
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.net.Socket;
+
+import javax.xml.namespace.QName;
+
import junit.framework.TestCase;
+
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.ModuleDescription;
import org.apache.axis.description.OperationDescription;
@@ -28,13 +37,6 @@
import org.apache.axis.util.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.net.Socket;
public class MessageWithServerTest extends TestCase {
private Log log = LogFactory.getLog(getClass());
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/RESTBasedEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/RESTBasedEchoRawXMLTest.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/RESTBasedEchoRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/RESTBasedEchoRawXMLTest.java Tue May 31 19:31:16 2005
@@ -18,6 +18,13 @@
//todo
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+
import javax.xml.namespace.QName;
import javax.xml.stream.XMLOutputFactory;
@@ -60,6 +67,11 @@
private ServiceDescription service;
private boolean finish = false;
+
+
+ private Thread thread;
+
+ private final MessageInformation messageInfo = new MessageInformation();
public RESTBasedEchoRawXMLTest() {
super(RESTBasedEchoRawXMLTest.class.getName());
@@ -71,7 +83,7 @@
protected void setUp() throws Exception {
UtilServer.start();
- Parameter parameter = new ParameterImpl(Constants.DO_REST,"true");
+ Parameter parameter = new ParameterImpl(Constants.Configuration.ENABLE_REST,"true");
((AxisConfigurationImpl)UtilServer.getConfigurationContext().getAxisConfiguration()).addParameter(parameter);
service =
Utils.createSimpleService(serviceName,
@@ -80,6 +92,47 @@
UtilServer.deployService(service);
serviceContext =
UtilServer.getConfigurationContext().createServiceContext(service.getName());
+//
+// Runnable runnable = new Runnable() {
+// public void run() {
+// try {
+// ServerSocket socket = new ServerSocket(UtilServer.TESTING_PORT+345);
+// Socket clientSocket = socket.accept();
+//
+// InputStream in = clientSocket.getInputStream();
+// OutputStream out = clientSocket.getOutputStream();
+//
+//
+// byte[] byteBuff = new byte[in.available()];
+// in.read(byteBuff);
+// messageInfo.requestMessage = new String(byteBuff);
+//
+// Socket toServer = new Socket();
+// toServer.connect(new InetSocketAddress(UtilServer.TESTING_PORT));
+// OutputStream toServerOut = toServer.getOutputStream();
+// toServerOut.write(messageInfo.requestMessage.getBytes());
+// toServerOut.flush();
+//
+// InputStream fromServerIn = toServer.getInputStream();
+// byteBuff = new byte[fromServerIn.available()];
+// fromServerIn.read(byteBuff);
+// messageInfo.responseMessage = new String(byteBuff);
+// out.write(messageInfo.responseMessage.getBytes());
+// Thread.sleep(30000);
+// out.flush();
+//
+// toServer.close();
+// clientSocket.close();
+// socket.close();
+// } catch (Exception e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
+//
+// }
+// };
+// thread = new Thread(runnable);
+// thread.start();
}
@@ -148,9 +201,17 @@
call.setTo(targetEPR);
call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP, false);
- call.set(Constants.DO_REST,"true");
+ call.set(Constants.Configuration.DO_REST,"true");
OMElement result =
(OMElement) call.invokeBlocking(operationName.getLocalPart(), payload);
result.serializeWithCache(XMLOutputFactory.newInstance().createXMLStreamWriter(System.out));
+
+ System.out.println(messageInfo.requestMessage);
+ System.out.println(messageInfo.responseMessage);
+ }
+
+ public class MessageInformation{
+ private String requestMessage = null;
+ private String responseMessage = null;
}
}
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler.java Tue May 31 19:31:16 2005
@@ -16,12 +16,12 @@
package org.apache.axis.engine;
+import javax.xml.namespace.QName;
+
import org.apache.axis.context.MessageContext;
import org.apache.axis.handlers.AbstractHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
public class SpeakingHandler extends AbstractHandler implements Handler {
private Log log = LogFactory.getLog(getClass());
Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler1.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler1.java?rev=179336&r1=179335&r2=179336&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler1.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SpeakingHandler1.java Tue May 31 19:31:16 2005
@@ -16,6 +16,8 @@
package org.apache.axis.engine;
+import javax.xml.namespace.QName;
+
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.HandlerDescription;
import org.apache.axis.description.PhaseRule;
@@ -23,8 +25,6 @@
import org.apache.axis.phaseresolver.PhaseMetadata;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
public class SpeakingHandler1 extends AbstractHandler implements Handler {
private Log log = LogFactory.getLog(getClass());