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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to