You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2011/09/19 22:13:23 UTC
svn commit: r1172791 - in /axis/axis2/java/core/branches/1_6: ./
modules/integration/test/org/apache/axis2/deployment/
modules/integration/test/org/apache/axis2/engine/
modules/integration/test/org/apache/axis2/integration/
modules/kernel/src/org/apach...
Author: veithen
Date: Mon Sep 19 20:13:22 2011
New Revision: 1172791
URL: http://svn.apache.org/viewvc?rev=1172791&view=rev
Log:
AXIS2-5111: Merged r1154615 to the 1.6 branch.
Added:
axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/LongRunningServiceTest.java
- copied unchanged from r1154615, axis/axis2/java/core/trunk/modules/integration/test/org/apache/axis2/engine/LongRunningServiceTest.java
Modified:
axis/axis2/java/core/branches/1_6/ (props changed)
axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/deployment/TargetResolverServiceTest.java
axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/Echo.java
axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/PausingHandlerExecutionTest.java
axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/integration/UtilServer.java
axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
Propchange: axis/axis2/java/core/branches/1_6/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 20:13:22 2011
@@ -1 +1 @@
-/axis/axis2/java/core/trunk:1068985,1069659,1069898,1070439,1072077,1072271,1072296,1072499,1072510,1075057,1078242,1081563,1081587,1081590,1082316,1082322,1082600,1082702,1082726,1082738,1083180,1083192,1083379,1083381,1083425,1083433,1083446,1084753,1085157,1085173,1085514,1085889,1085927,1085931,1087073,1088239,1088248-1088249,1088251,1088268,1088730,1088904,1089225,1089989,1090429,1090457,1091178,1091191,1094117,1096530,1096557,1099385,1099389,1100628,1101037,1103013,1103336,1103606,1103760,1128580,1128584,1128618,1128645,1130590,1131425,1134438,1134616,1136156,1136159,1136177,1137153,1137159,1138144,1138203,1139448,1139484,1156305,1156382,1157211,1157265,1157373,1157415,1157424,1157501,1157517,1157522,1157535,1163389,1166038,1166040,1167045
+/axis/axis2/java/core/trunk:1068985,1069659,1069898,1070439,1072077,1072271,1072296,1072499,1072510,1075057,1078242,1081563,1081587,1081590,1082316,1082322,1082600,1082702,1082726,1082738,1083180,1083192,1083379,1083381,1083425,1083433,1083446,1084753,1085157,1085173,1085514,1085889,1085927,1085931,1087073,1088239,1088248-1088249,1088251,1088268,1088730,1088904,1089225,1089989,1090429,1090457,1091178,1091191,1094117,1096530,1096557,1099385,1099389,1100628,1101037,1103013,1103336,1103606,1103760,1128580,1128584,1128618,1128645,1130590,1131425,1134438,1134616,1136156,1136159,1136177,1137153,1137159,1138144,1138203,1139448,1139484,1154615,1156305,1156382,1157211,1157265,1157373,1157415,1157424,1157501,1157517,1157522,1157535,1163389,1166038,1166040,1167045
Modified: axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/deployment/TargetResolverServiceTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/deployment/TargetResolverServiceTest.java?rev=1172791&r1=1172790&r2=1172791&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/deployment/TargetResolverServiceTest.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/deployment/TargetResolverServiceTest.java Mon Sep 19 20:13:22 2011
@@ -39,7 +39,7 @@ public class TargetResolverServiceTest e
public void receive(MessageContext msgContext) throws AxisFault {
// Set the reply to on the server side to test server side
// target resolvers
- msgContext.setReplyTo(new EndpointReference(
+ msgContext.setTo(new EndpointReference(
"http://ws.apache.org/new/anonymous/address"));
new RawXMLINOutMessageReceiver().receive(msgContext);
}
Modified: axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/Echo.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/Echo.java?rev=1172791&r1=1172790&r2=1172791&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/Echo.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/Echo.java Mon Sep 19 20:13:22 2011
@@ -29,7 +29,7 @@ public class Echo {
private static final Log log = LogFactory.getLog(Echo.class);
public static final String SERVICE_NAME = "EchoXMLService";
public static final String ECHO_OM_ELEMENT_OP_NAME = "echoOMElement";
-
+
public Echo() {
}
@@ -42,7 +42,7 @@ public class Echo {
log.info("echoOMElementNoResponse service called.");
}
- public void echoWithExeption(OMElement omEle) throws Exception {
+ public void echoWithExeption(OMElement omEle) throws Exception {
throw new Exception("Invoked the service");
}
@@ -55,6 +55,21 @@ public class Echo {
return omEle;
}
+ public OMElement longRunning(OMElement omEle) {
+ omEle.buildWithAttachments();
+ omEle.setLocalName(omEle.getLocalName() + "Response");
+ if (omEle.getFirstElement().getText().trim().startsWith("fault")) {
+ throw new RuntimeException("fault string found in echoOMElement");
+ }
+ try {
+ Thread.sleep(60000);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ return omEle;
+ }
+
+
public OMElement echoOM(OMElement omEle) {
return omEle;
}
@@ -68,7 +83,7 @@ public class Echo {
}
public OMElement echoMTOMtoBase64(OMElement omEle) {
- OMText omText = (OMText)(omEle.getFirstElement()).getFirstOMChild();
+ OMText omText = (OMText) (omEle.getFirstElement()).getFirstOMChild();
omText.setOptimize(false);
return omEle;
}
Modified: axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/PausingHandlerExecutionTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/PausingHandlerExecutionTest.java?rev=1172791&r1=1172790&r2=1172791&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/PausingHandlerExecutionTest.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/engine/PausingHandlerExecutionTest.java Mon Sep 19 20:13:22 2011
@@ -161,7 +161,6 @@ public class PausingHandlerExecutionTest
private void executeClient() throws Exception {
OMElement payload = TestingUtils.createDummyOMElement();
OMElement result = createClient().sendReceive(payload);
-
TestingUtils.compareWithCreatedOMElement(result);
}
@@ -192,8 +191,8 @@ public class PausingHandlerExecutionTest
// expected results when pausing
List expectedExecutionState = Arrays.asList(new String[] { "In1", "In2", "In2", "In3",
- "In4", "In5", "In6", "Out1", "Out2", "Out3", "FCOut3", "FCOut2", "FCOut1", "FCIn6",
- "FCIn5", "FCIn4", "FCIn3", "FCIn2", "FCIn1" });
+ "In4", "In5", "In6", "FCIn6", "FCIn5", "FCIn4", "FCIn3", "FCIn2", "FCIn1", "Out1",
+ "Out2", "Out3", "FCOut3", "FCOut2", "FCOut1" });
//-----------------------------------------------------------------------
assertEquals(expectedExecutionState, testResults);
Modified: axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/integration/UtilServer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/integration/UtilServer.java?rev=1172791&r1=1172790&r2=1172791&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/integration/UtilServer.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/integration/test/org/apache/axis2/integration/UtilServer.java Mon Sep 19 20:13:22 2011
@@ -137,8 +137,8 @@ public class UtilServer {
}
return ConfigurationContextFactory
.createConfigurationContextFromFileSystem(file.getAbsolutePath(),
- file.getAbsolutePath() +
- "/conf/axis2.xml");
+ file.getAbsolutePath() +
+ "/conf/axis2.xml");
}
public static ConfigurationContext getNewConfigurationContext(
@@ -150,7 +150,7 @@ public class UtilServer {
}
return ConfigurationContextFactory
.createConfigurationContextFromFileSystem(file.getAbsolutePath(),
- axis2xml);
+ axis2xml);
}
public static synchronized void stop() throws AxisFault {
@@ -184,7 +184,7 @@ public class UtilServer {
.createConfigurationContextFromFileSystem(
TestingUtils.prefixBaseDirectory("target/test-resources/integrationRepo"), null);
AxisModule axisModule = DeploymentEngine.buildModule(file,
- configContext.getAxisConfiguration());
+ configContext.getAxisConfiguration());
configContext.getAxisConfiguration().addModule(axisModule);
configContext.getAxisConfiguration().addService(service);
@@ -215,18 +215,26 @@ public class UtilServer {
TestCase.assertTrue(file.exists());
ConfigurationContext configContext =
- ConfigurationContextFactory .createConfigurationContextFromFileSystem(
- TestingUtils.prefixBaseDirectory(Constants.TESTING_PATH +"/integrationRepo"),
+ ConfigurationContextFactory.createConfigurationContextFromFileSystem(
+ TestingUtils.prefixBaseDirectory(Constants.TESTING_PATH + "/integrationRepo"),
TestingUtils.prefixBaseDirectory(Constants.TESTING_PATH + "/integrationRepo/conf/axis2.xml"));
AxisModule axisModule = DeploymentEngine.buildModule(file,
- configContext.getAxisConfiguration());
+ configContext.getAxisConfiguration());
configContext.getAxisConfiguration().addModule(axisModule);
return configContext;
}
+ public static void engageAddressingModule() throws AxisFault {
+ File file = getAddressingMARFile();
+ AxisModule axisModule = DeploymentEngine.buildModule(file,
+ receiver.getConfigurationContext().getAxisConfiguration());
+ receiver.getConfigurationContext().getAxisConfiguration().engageModule(axisModule);
+ }
+
+
public static ConfigurationContext createClientConfigurationContext(String repo)
throws AxisFault {
- return ConfigurationContextFactory .createConfigurationContextFromFileSystem(
+ return ConfigurationContextFactory.createConfigurationContextFromFileSystem(
repo,
repo + "/conf/axis2.xml");
}
@@ -239,7 +247,7 @@ public class UtilServer {
ConfigurationContext configContext = ConfigurationContextFactory
.createConfigurationContextFromFileSystem(clientHome, null);
AxisModule axisModule = DeploymentEngine.buildModule(file,
- configContext.getAxisConfiguration());
+ configContext.getAxisConfiguration());
configContext.getAxisConfiguration().addModule(axisModule);
// sysContext.getAxisConfiguration().engageModule(moduleDesc.getName());
Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java?rev=1172791&r1=1172790&r2=1172791&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java Mon Sep 19 20:13:22 2011
@@ -83,27 +83,31 @@ public abstract class AbstractMessageRec
* @throws AxisFault if a problem occurred
*/
public void receive(final MessageContext messageCtx) throws AxisFault {
- if (messageCtx.isPropertyTrue(DO_ASYNC)
- || ((messageCtx.getParameter(DO_ASYNC) != null) &&
- JavaUtils.isTrueExplicitly(messageCtx.getParameter(DO_ASYNC).getValue()))) {
-
+ // Checking whether the replyTo address, if it is non Anonymous then we need to send the ACK and
+ // send the reply to on replyTo address
+ EndpointReference replyTo = messageCtx.getReplyTo();
+ if (replyTo != null && !replyTo.hasAnonymousAddress()) {
+ // We have a valid reply to address, so processing the request through AsyncMessageReceiverWorker and send the ACK
+ processAsAsync(messageCtx);
+ return;
+ }
+ // Checking for long running services
+ if (messageCtx.isPropertyTrue(DO_ASYNC)
+ || ((messageCtx.getParameter(DO_ASYNC) != null) &&
+ JavaUtils.isTrueExplicitly(messageCtx.getParameter(DO_ASYNC).getValue()))) {
String mep = messageCtx.getAxisOperation()
- .getMessageExchangePattern();
- EndpointReference replyTo = messageCtx.getReplyTo();
- // In order to invoke the service in the ASYNC mode, the request
+ .getMessageExchangePattern();
+ // Checking whether the replyTo address is valid, so that we can send the Application response
+ // In order to invoke the service in the ASYNC mode, the request
// should contain ReplyTo header if the MEP of the service is not
// InOnly type
- if ((!WSDLUtil.isOutputPresentForMEP(mep))
- || (replyTo != null && !replyTo.hasAnonymousAddress())) {
- AsyncMessageReceiverWorker worker = new AsyncMessageReceiverWorker(
- messageCtx);
- messageCtx.getEnvelope().build();
- messageCtx.getConfigurationContext().getThreadPool().execute(
- worker);
- return;
- }
- }
+ if ((!WSDLUtil.isOutputPresentForMEP(mep))
+ || (replyTo != null && !replyTo.hasAnonymousAddress())) {
+ processAsAsync(messageCtx);
+ return;
+ }
+ }
ThreadContextDescriptor tc = setThreadContext(messageCtx);
try {
@@ -129,6 +133,28 @@ public abstract class AbstractMessageRec
}
/**
+ * This is to create a separate thread to process business logic invocation. We create a AsyncMessageReceiverWorker
+ * which internally calls the message receiver specified for the operation.
+ *
+ * We send the ACK through the incoming transport and reply through the address specified in replyTo address.
+ * @param messageCtx msgContext the current MessageContext
+ */
+ private void processAsAsync(MessageContext messageCtx) {
+ AsyncMessageReceiverWorker worker = new AsyncMessageReceiverWorker(
+ messageCtx);
+ if (messageCtx.isDoingMTOM() || messageCtx.isDoingSwA()) {
+ // If we are doing MTOM or SWA then we need to build with attachment, because we are going to close the incoming connection
+ messageCtx.getEnvelope().buildWithAttachments();
+ } else {
+ // We need to build the envelop since we are going to close the input stream
+ messageCtx.getEnvelope().build();
+ }
+
+ messageCtx.getConfigurationContext().getThreadPool().execute(
+ worker);
+ }
+
+ /**
* Several pieces of information need to be available to the service
* implementation class. For one, the ThreadContextClassLoader needs
* to be correct, and for another we need to give the service code