You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ga...@apache.org on 2008/07/02 15:09:40 UTC

svn commit: r673385 - in /webservices/sandesha/trunk/java/modules: core/src/main/java/org/apache/sandesha2/msgprocessors/ core/src/main/java/org/apache/sandesha2/polling/ core/src/main/java/org/apache/sandesha2/util/ samples/ tests/src/test/java/org/ap...

Author: gatfora
Date: Wed Jul  2 06:09:40 2008
New Revision: 673385

URL: http://svn.apache.org/viewvc?rev=673385&view=rev
Log:
Applying patches from SANDESHA2-166 and SANDESHA2-158

Removed:
    webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/utils/SandeshaUtilTest.java
Modified:
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java
    webservices/sandesha/trunk/java/modules/samples/pom.xml

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=673385&r1=673384&r2=673385&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Wed Jul  2 06:09:40 2008
@@ -386,59 +386,58 @@
 			// set this as the response highest message.
 			rmsBean.setHighestOutMessageNumber(messageNumber);
 			
-			// saving the used message number, and the expected reply count
-			boolean startPolling = false;
+			// saving the used message number
+			//Save the expected replies if it's not a dummy msg and it's an outIn MEP
+			String specVersion = SequenceManager.getSpecVersion(rmMsgCtx.getMessageContext(), storageManager);
 			if (!dummyMessage) {
-				if (log.isDebugEnabled())
-					log.debug("Enter: ApplicationMsgProcessor:: not a dummy msg");
 				rmsBean.setNextMessageNumber(messageNumber);
-	
+				
 				// Identify the MEP associated with the message.
 				AxisOperation op = msgContext.getAxisOperation();
 				int mep = WSDLConstants.MEP_CONSTANT_INVALID;
 				if(op != null) {
 					mep = op.getAxisSpecificMEPConstant();
 				}
-	
-				if(mep == WSDLConstants.MEP_CONSTANT_OUT_IN) {
+				
+				EndpointReference replyTo = msgContext.getReplyTo();
+				
+				if(mep == WSDLConstants.MEP_CONSTANT_OUT_IN){
 					// We only match up requests and replies when we are doing sync interactions
-					if (log.isDebugEnabled()) log.debug("MEP OUT_IN");
-					EndpointReference replyTo = msgContext.getReplyTo();
+					if (log.isDebugEnabled()) log.debug("MEP OUT_IN");	
 					if(replyTo == null || replyTo.hasAnonymousAddress()) {
 						long expectedReplies = rmsBean.getExpectedReplies();
 						rmsBean.setExpectedReplies(expectedReplies + 1);
 					}
-	
+					
 					// If we support the RM anonymous URI then rewrite the ws-a anon to use the RM equivalent.
 					//(do should be done only for WSRM 1.1)
-					
-					String specVersion = SequenceManager.getSpecVersion(rmMsgCtx.getMessageContext(), storageManager);
 					if (Sandesha2Constants.SPEC_VERSIONS.v1_1.equals(specVersion)) {
 						if (log.isDebugEnabled()) log.debug("SPEC_1_1");
 						String oldAddress = (replyTo == null) ? null : replyTo.getAddress();
 						EndpointReference newReplyTo = SandeshaUtil.rewriteEPR(rmsBean, msgContext
 								.getReplyTo(), configContext);
 						String newAddress = (newReplyTo == null) ? null : newReplyTo.getAddress();
-						if (newAddress != null && !newAddress.equals(oldAddress)) {
-							// We have rewritten the replyTo. If this is the first message that we have needed to
-							// rewrite then we should set the sequence up for polling, and once we have saved the
-							// changes to the sequence then we can start the polling thread.
-							
-							//Firstly, we are going to use make connection in this configuration so we should now ensure that
-							//WS-Adressing is enabled
-							if (log.isDebugEnabled()) log.debug("Ensuring that WS-A is enabled for msg " + msgContext);
-							msgContext.setProperty(AddressingConstants.DISABLE_ADDRESSING_FOR_OUT_MESSAGES,Boolean.FALSE);
+						if(newAddress != null && !newAddress.equals(oldAddress)){
 							msgContext.setReplyTo(newReplyTo);
-							
-							//start the polling process to pull back response messages
-							if (!rmsBean.isPollingMode()) {
-								rmsBean.setPollingMode(true);
-								startPolling = true;
-							}
 						}
 					}
 				}
+			} 
+			
+			boolean startPolling = false;
+			// We should poll for any reply-to that uses the anonymous URI, when MakeConnection
+			// is enabled.
+			if (Sandesha2Constants.SPEC_VERSIONS.v1_1.equals(specVersion)) {
+				SandeshaPolicyBean policy = SandeshaUtil.getPropertyBean(msgContext.getConfigurationContext().getAxisConfiguration());
+				if(policy.isEnableMakeConnection()) {
+					EndpointReference reference = rmsBean.getAcksToEndpointReference();
+					if(reference == null || reference.hasAnonymousAddress()) {
+						rmsBean.setPollingMode(true);
+						startPolling = true;
+					}
+				}
 			}
+
 			if (log.isDebugEnabled()) log.debug("App msg using replyTo EPR as " + msgContext.getReplyTo());
 			
 			RelatesTo relatesTo = msgContext.getRelatesTo();

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java?rev=673385&r1=673384&r2=673385&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java Wed Jul  2 06:09:40 2008
@@ -160,8 +160,14 @@
 			if (beanToPoll.getNextMessageNumber() > -1)
 				cleanAcks = AcknowledgementManager.verifySequenceCompletion(beanToPoll.getClientCompletedMessages(), beanToPoll.getNextMessageNumber());
 			long  repliesExpected = beanToPoll.getExpectedReplies();
-			if(beanToPoll.getSequenceID() != null && (force || !cleanAcks || repliesExpected > 0) && beanToPoll.getReferenceMessageStoreKey() != null)
-		            pollForSequence(beanToPoll.getAnonymousUUID(), beanToPoll.getInternalSequenceID(), beanToPoll.getReferenceMessageStoreKey(), beanToPoll, entry);
+			if(beanToPoll.getSequenceID() != null){
+				if((force || !cleanAcks || repliesExpected > 0) && beanToPoll.getReferenceMessageStoreKey() != null){
+					pollForSequence(beanToPoll.getAnonymousUUID(), beanToPoll.getInternalSequenceID(), beanToPoll.getReferenceMessageStoreKey(), beanToPoll, entry);
+				}
+			} else {
+				//If seqID is null on RMS bean then it must be an RMSBean waiting for a createSeqResponse and we want to poll for these
+		        pollForSequence(beanToPoll.getAnonymousUUID(), beanToPoll.getInternalSequenceID(), beanToPoll.getReferenceMessageStoreKey(), beanToPoll, entry);
+			}
 		}
 		
 

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java?rev=673385&r1=673384&r2=673385&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java Wed Jul  2 06:09:40 2008
@@ -975,11 +975,12 @@
 		int executionChainLength = executionChain.size();
 		for(int i=0;i<executionChainLength;i++){
 			Handler handler = (Handler)executionChain.get(i);
-			if("Security".equals(handler.getName())||"MessageOut".equals(handler.getName())){
+			if("Security".equals(handler.getName())){
 				retransmittablePhases.add(handler);
 			}
 		}
 		executionChain.removeAll(retransmittablePhases);
+				
 		message.setProperty(Sandesha2Constants.RETRANSMITTABLE_PHASES, retransmittablePhases);
 	}
 	

Modified: webservices/sandesha/trunk/java/modules/samples/pom.xml
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/samples/pom.xml?rev=673385&r1=673384&r2=673385&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/samples/pom.xml (original)
+++ webservices/sandesha/trunk/java/modules/samples/pom.xml Wed Jul  2 06:09:40 2008
@@ -93,6 +93,11 @@
             <version>${pom.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-transports</artifactId>
+            <version>SNAPSHOT</version>
+        </dependency>
+        <dependency>
             <groupId>org.apache.geronimo.specs</groupId>
             <artifactId>geronimo-activation_1.1_spec</artifactId>
             <version>${geronimo.spec.activation.version}</version>



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org