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 ml...@apache.org on 2006/11/22 11:44:33 UTC

svn commit: r478121 - in /webservices/sandesha/trunk/java: src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java test/src/org/apache/sandesha2/SandeshaClientTest.java

Author: mlovett
Date: Wed Nov 22 02:44:32 2006
New Revision: 478121

URL: http://svn.apache.org/viewvc?view=rev&rev=478121
Log:
Andy's patch for SANDESHA2-48

Modified:
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java
    webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java?view=diff&rev=478121&r1=478120&r2=478121
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java Wed Nov 22 02:44:32 2006
@@ -409,14 +409,16 @@
 
 		SenderBeanMgr retramsmitterMgr = storageManager.getRetransmitterBeanMgr();
 
+		// Set the sequence id and internal sequence id in the SenderBean
+		ackRequestBean.setInternalSequenceID(internalSeqenceID);
+		ackRequestBean.setSequenceID(outSequenceID);
+		
 		retramsmitterMgr.insert(ackRequestBean);
 
-		ackRequestRMMsg.setProperty(Sandesha2Constants.SET_SEND_TO_TRUE, Sandesha2Constants.VALUE_TRUE);
-
 		SandeshaUtil.executeAndStore(ackRequestRMMsg, key);
 
 		if (log.isDebugEnabled())
-			log.debug("Exit: AckRequestedProcessor::processOutgoingAckRequestMessage " + Boolean.FALSE);
+			log.debug("Exit: AckRequestedProcessor::processOutgoingAckRequestMessage " + Boolean.TRUE);
 		
 		return true;
 

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java?view=diff&rev=478121&r1=478120&r2=478121
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java Wed Nov 22 02:44:32 2006
@@ -267,11 +267,12 @@
 		closeBean.setReSend(false);
 
 		SenderBeanMgr retramsmitterMgr = storageManager.getRetransmitterBeanMgr();
+		
+		// Add the sequence id and internal sequenceid to the closeBean
+		closeBean.setSequenceID(outSequenceID);
+		closeBean.setInternalSequenceID(internalSeqenceID);
 
 		retramsmitterMgr.insert(closeBean);
-
-
-		rmMsgCtx.setProperty(Sandesha2Constants.SET_SEND_TO_TRUE, Sandesha2Constants.VALUE_TRUE);
 
 		SandeshaUtil.executeAndStore(rmMsgCtx, key);
 

Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java?view=diff&rev=478121&r1=478120&r2=478121
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java Wed Nov 22 02:44:32 2006
@@ -17,6 +17,7 @@
 package org.apache.sandesha2;
 
 import java.io.File;
+import java.util.List;
 
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
@@ -37,6 +38,9 @@
 import org.apache.sandesha2.client.SandeshaClient;
 import org.apache.sandesha2.client.SandeshaClientConstants;
 import org.apache.sandesha2.client.SequenceReport;
+import org.apache.sandesha2.storage.StorageManager;
+import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr;
+import org.apache.sandesha2.storage.beans.SenderBean;
 import org.apache.sandesha2.util.SandeshaUtil;
 
 public class SandeshaClientTest extends SandeshaTestCase {
@@ -164,10 +168,73 @@
 //	public void testCloseSequence () {
 //		
 //	}
-//	
-//	public void testAckRequest () {
-//		
-//	}
+//
+	/**
+	 * Test that sending an ACK request gets transmitted
+	 * This doesn't check the content of the Ack Request, only that the
+	 * SenderBean no longer exists for it.
+	 */
+	public void testAckRequest () throws Exception {
+		startServer();
+		
+		String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
+		String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
+		
+		String repoPath = "target" + File.separator + "repos" + File.separator + "client";
+		String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
+		
+		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
+
+		Options clientOptions = new Options ();
+
+		clientOptions.setTo(new EndpointReference (to));
+		clientOptions.setProperty(Configuration.TRANSPORT_URL,transportTo);
+				
+		ServiceClient serviceClient = new ServiceClient (configContext,null);
+		
+		clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
+		clientOptions.setProperty(SandeshaClientConstants.RM_SPEC_VERSION, Sandesha2Constants.SPEC_VERSIONS.v1_1);
+		clientOptions.setUseSeparateListener(true);
+		
+		serviceClient.setOptions(clientOptions);
+				
+		// Create a sequence 
+		SandeshaClient.createSequence(serviceClient, false, null);
+		
+		Thread.sleep(5000);
+		
+		// Send the ACK request
+		SandeshaClient.sendAckRequest(serviceClient);
+		
+		Thread.sleep(10000);
+		
+		// Get the storage manager from the ConfigurationContext
+		StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configContext, configContext.getAxisConfiguration());
+		
+		// Get the sequence id for this sequence.
+		String sequenceId = SandeshaClient.getSequenceID(serviceClient);
+		
+		// Get the SenderBeanManager
+		SenderBeanMgr senderManager = storageManager.getRetransmitterBeanMgr();
+				
+		// Check that there are no sender beans inside the SenderBeanMgr.
+		SenderBean senderBean = new SenderBean();
+		senderBean.setSequenceID(sequenceId);
+		senderBean.setSend(true);
+		senderBean.setReSend(false);
+		
+		// Find any sender beans for the to address.
+		List beans = senderManager.find(senderBean);
+		assertTrue("SenderBeans found when the list should be empty", beans.isEmpty());
+		
+		SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+		
+		assertNotNull(sequenceReport.getSequenceID());
+		assertFalse(sequenceReport.isSecureSequence());
+		
+		configContext.getListenerManager().stop();
+		serviceClient.cleanup();
+	}
 //	
 //	public void getSequenceIDTest () {
 //		



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