You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ml...@apache.org on 2006/11/29 11:29:34 UTC
svn commit: r480511 - in /webservices/sandesha/trunk/java:
src/org/apache/sandesha2/ src/org/apache/sandesha2/client/
src/org/apache/sandesha2/i18n/ src/org/apache/sandesha2/msgprocessors/
src/org/apache/sandesha2/util/ test/src/org/apache/sandesha2/
Author: mlovett
Date: Wed Nov 29 02:29:32 2006
New Revision: 480511
URL: http://svn.apache.org/viewvc?view=rev&rev=480511
Log:
Tom's patch for SANDESHA2-53, to ensure that we do not assign new messages to closed sequences
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClientConstants.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CloseSequenceProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/Range.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RangeString.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaClientTest.java
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaUtilTest.java
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java Wed Nov 29 02:29:32 2006
@@ -299,6 +299,8 @@
String SEQUENCE_CLOSED = "SequenceClosed";
+ String SEQUENCE_CLOSED_CLIENT = "SequenceClosedClient"; //indicates the client has sent a close sequence
+
String SEQUENCE_TERMINATED = "SequenceTerminated";
String SEQUENCE_TIMED_OUT = "SequenceTimedOut";
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java Wed Nov 29 02:29:32 2006
@@ -784,10 +784,16 @@
throw new SandeshaException(SandeshaMessageHelper.getMessage(
SandeshaMessageKeys.toEPRNotValid, null));
- String to = epr.getAddress();
- String sequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
-
- String internalSequenceID = SandeshaUtil.getInternalSequenceID(to, sequenceKey);
+ //first see if the cliet has told us which sequence to close
+ String internalSequenceID =
+ (String)options.getProperty(SandeshaClientConstants.INTERNAL_SEQUENCE_ID);
+
+ if(internalSequenceID==null){
+ //lookup the internal seq id based on to EPR and sequenceKey
+ String to = epr.getAddress();
+ String sequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+ internalSequenceID = SandeshaUtil.getInternalSequenceID(to, sequenceKey);
+ }
SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(internalSequenceID,
configurationContext);
@@ -1085,9 +1091,17 @@
throw new SandeshaException(SandeshaMessageHelper.getMessage(
SandeshaMessageKeys.toEPRNotValid, null));
- String to = epr.getAddress();
- String sequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
- String internalSequenceID = SandeshaUtil.getInternalSequenceID(to, sequenceKey);
+ //first see if the cliet has told us which sequence to terminate
+ String internalSequenceID =
+ (String)options.getProperty(SandeshaClientConstants.INTERNAL_SEQUENCE_ID);
+
+ if(internalSequenceID==null){
+ //lookup the internal seq id based on to EPR and sequenceKey
+ String to = epr.getAddress();
+ String sequenceKey = (String) options.getProperty(SandeshaClientConstants.SEQUENCE_KEY);
+ internalSequenceID = SandeshaUtil.getInternalSequenceID(to, sequenceKey);
+ }
+
SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(internalSequenceID,
configurationContext);
if (sequenceReport == null)
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClientConstants.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClientConstants.java?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClientConstants.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClientConstants.java Wed Nov 29 02:29:32 2006
@@ -23,6 +23,7 @@
public static String AcksTo = "Sandesha2AcksTo";
public static String LAST_MESSAGE = "Sandesha2LastMessage";
public static String OFFERED_SEQUENCE_ID = "Sandesha2OfferedSequenceId";
+ public static String INTERNAL_SEQUENCE_ID = "Sandesha2InternalSequenceId";
public static String SANDESHA_DEBUG_MODE = "Sandesha2DebugMode";
public static String SEQUENCE_KEY = "Sandesha2SequenceKey";
public static String MESSAGE_NUMBER = "Sandesha2MessageNumber";
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java Wed Nov 29 02:29:32 2006
@@ -20,6 +20,7 @@
public static final String invokeMsgError="invokeMsgError";
public static final String msgError="msgError";
public static final String sendMsgError="sendMsgError";
+ public static final String cannotSendMsgAsSequenceClosed="cannotSendMsgAsSequenceClosed";
public static final String noValidSyncResponse="noValidSyncResponse";
public static final String generalError="generalError";
public static final String classLoaderNotFound="classLoaderNotFound";
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties Wed Nov 29 02:29:32 2006
@@ -37,6 +37,7 @@
invokeMsgError=Sandesha2 got an exception when invoking message: {0}
msgError=Sandesha2 got an exception when processing a message: {0}
sendMsgError=Sandesha2 got an exception when sending a message: {0}
+cannotSendMsgAsSequenceClosed=Sandesha2 could not send the message on sequence {0} as the sequence has been closed.
noValidSyncResponse=Sandesha2 sender thread has not received a valid synchronous response...
generalError=Sandesha2 Internal Error: sandesha2 encountered the following exception {0}
classLoaderNotFound=Module class loader not found.
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Wed Nov 29 02:29:32 2006
@@ -220,6 +220,12 @@
if (dummyMessageString != null && Sandesha2Constants.VALUE_TRUE.equals(dummyMessageString))
dummyMessage = true;
+ //see if the sequence is closed
+ SequencePropertyBean sequenceClosed = seqPropMgr.retrieve(sequencePropertyKey, Sandesha2Constants.SequenceProperties.SEQUENCE_CLOSED_CLIENT);
+ if(sequenceClosed!=null){
+ throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendMsgAsSequenceClosed, internalSequenceId));
+ }
+
// saving the used message number
if (!dummyMessage)
setNextMsgNo(configContext, sequencePropertyKey, messageNumber, storageManager);
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=480511&r1=480510&r2=480511
==============================================================================
--- 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 29 02:29:32 2006
@@ -97,12 +97,11 @@
if (fault != null) {
throw fault;
}
-
+
SequencePropertyBean sequenceClosedBean = new SequencePropertyBean();
sequenceClosedBean.setSequencePropertyKey(sequencePropertyKey);
sequenceClosedBean.setName(Sandesha2Constants.SequenceProperties.SEQUENCE_CLOSED);
sequenceClosedBean.setValue(Sandesha2Constants.VALUE_TRUE);
-
sequencePropMgr.insert(sequenceClosedBean);
RMMsgContext ackRMMsgCtx = AcknowledgementManager.generateAckMessage(rmMsgCtx, sequencePropertyKey, sequenceId, storageManager);
@@ -162,6 +161,8 @@
sequenceId, e.toString());
throw new SandeshaException(message, e);
}
+
+
if (log.isDebugEnabled())
log.debug("Exit: CloseSequenceProcessor::processInMessage " + Boolean.FALSE);
@@ -190,6 +191,12 @@
throw new SandeshaException(SandeshaMessageHelper.getMessage(
SandeshaMessageKeys.couldNotSendCloseSeqNotFound, internalSeqenceID));
+ //write into the sequence proeprties that the client is now closed
+ SequencePropertyBean sequenceClosedBean = new SequencePropertyBean();
+ sequenceClosedBean.setSequencePropertyKey(internalSeqenceID);
+ sequenceClosedBean.setName(Sandesha2Constants.SequenceProperties.SEQUENCE_CLOSED_CLIENT);
+ sequenceClosedBean.setValue(Sandesha2Constants.VALUE_TRUE);
+ storageManager.getSequencePropertyBeanMgr().insert(sequenceClosedBean);
AxisOperation closeOperation = SpecSpecificConstants.getWSRMOperation(
Sandesha2Constants.MessageTypes.CLOSE_SEQUENCE,
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/Range.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/Range.java?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/Range.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/Range.java Wed Nov 29 02:29:32 2006
@@ -1,3 +1,20 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
package org.apache.sandesha2.util;
import org.apache.commons.logging.Log;
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RangeString.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RangeString.java?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RangeString.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RangeString.java Wed Nov 29 02:29:32 2006
@@ -1,3 +1,20 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
package org.apache.sandesha2.util;
import java.util.Collections;
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java Wed Nov 29 02:29:32 2006
@@ -930,6 +930,28 @@
return sequenceID;
}
+
+ public static String getSequenceKeyFromInternalSequenceID(String internalSequenceID, String to){
+ if(to==null){
+ //sequenceKey is just the internalSequenceID
+ return internalSequenceID;
+ }
+ else{
+ //remove the prefix
+ int postPrefixStringIndex = internalSequenceID.indexOf(Sandesha2Constants.INTERNAL_SEQUENCE_PREFIX);
+ if(postPrefixStringIndex>=0){
+ String postPrefixString = internalSequenceID.substring(postPrefixStringIndex + Sandesha2Constants.INTERNAL_SEQUENCE_PREFIX.length());
+ //strip of the to epr and trailing and trailing ":"
+ String toEPRString = ":" + to + ":";
+ int indexOfToEPR = postPrefixString.indexOf(toEPRString);
+ if(indexOfToEPR>=0){
+ return postPrefixString.substring(indexOfToEPR + toEPRString.length());
+ }
+ }
+ }
+ return null; //could not find the sequenceKey
+ }
+
public static SecurityManager getSecurityManager(ConfigurationContext context) throws SandeshaException {
SecurityManager util = (SecurityManager) context.getProperty(Sandesha2Constants.SECURITY_MANAGER);
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=480511&r1=480510&r2=480511
==============================================================================
--- 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 29 02:29:32 2006
@@ -32,6 +32,7 @@
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
+import org.apache.axis2.context.MessageContextConstants;
import org.apache.axis2.transport.http.SimpleHTTPServer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -102,8 +103,6 @@
public void testCreateSequenceWithOffer () throws AxisFault,InterruptedException {
- startServer();
-
String to = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
String transportTo = "http://127.0.0.1:" + serverPort + "/axis2/services/RMSampleService";
@@ -111,9 +110,8 @@
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);
@@ -122,34 +120,111 @@
ServiceClient serviceClient = new ServiceClient (configContext,null);
- String acksTo = serviceClient.getMyEPR(Constants.TRANSPORT_HTTP).getAddress();
- clientOptions.setProperty(SandeshaClientConstants.AcksTo,acksTo);
- clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
-
- String offeredSequenceID = SandeshaUtil.getUUID();
- clientOptions.setProperty(SandeshaClientConstants.OFFERED_SEQUENCE_ID,offeredSequenceID);
-
- serviceClient.setOptions(clientOptions);
- //serviceClient.
-
- clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
- clientOptions.setUseSeparateListener(true);
-
- serviceClient.setOptions(clientOptions);
-
- String sequenceKey = SandeshaClient.createSequence(serviceClient,true);
- clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY, sequenceKey);
-
- Thread.sleep(10000);
-
- SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
-
- assertNotNull(sequenceReport.getSequenceID());
- assertFalse(sequenceReport.isSecureSequence());
-
- configContext.getListenerManager().stop();
- serviceClient.cleanup();
+ startServer();
+ try
+ {
+ String acksTo = serviceClient.getMyEPR(Constants.TRANSPORT_HTTP).getAddress();
+ clientOptions.setProperty(SandeshaClientConstants.AcksTo,acksTo);
+ clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
+
+ String offeredSequenceID = SandeshaUtil.getUUID();
+ clientOptions.setProperty(SandeshaClientConstants.OFFERED_SEQUENCE_ID,offeredSequenceID);
+
+ serviceClient.setOptions(clientOptions);
+ //serviceClient.
+
+ clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
+ clientOptions.setUseSeparateListener(true);
+
+ serviceClient.setOptions(clientOptions);
+
+ String sequenceKey = SandeshaClient.createSequence(serviceClient,true);
+ clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY, sequenceKey);
+
+ Thread.sleep(10000);
+
+ SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+
+ assertNotNull(sequenceReport.getSequenceID());
+ assertFalse(sequenceReport.isSecureSequence());
+ }
+ finally
+ {
+ configContext.getListenerManager().stop();
+ serviceClient.cleanup();
+ }
+
}
+
+ public void testSequenceCloseTerminate()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.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
+ clientOptions.setProperty(SandeshaClientConstants.RM_SPEC_VERSION,
+ Sandesha2Constants.SPEC_VERSIONS.v1_1);
+ clientOptions.setTo(new EndpointReference (to));
+ clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
+
+ String sequenceKey = "some_sequence_key";
+ clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
+
+ ServiceClient serviceClient = new ServiceClient (configContext,null);
+
+ String acksTo = serviceClient.getMyEPR(Constants.TRANSPORT_HTTP).getAddress();
+ clientOptions.setProperty(SandeshaClientConstants.AcksTo,acksTo);
+ clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
+ //serviceClient.
+ serviceClient.setOptions(clientOptions);
+
+ try{
+
+ serviceClient.fireAndForget(getPingOMBlock("ping1"));
+
+ Thread.sleep(10000);
+
+ SequenceReport sequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
+ assertNotNull(sequenceReport.getSequenceID());
+
+ //now close the sequence
+ SandeshaClient.closeSequence(serviceClient);
+
+ //try and send another msg - this should fail
+ try{
+ serviceClient.fireAndForget(getPingOMBlock("ping2"));
+ fail(); //this should have failed
+ }
+ catch(Exception e){
+ //good
+ }
+
+ //finally terminate the sequence
+ terminateAndCheck(serviceClient);
+ }
+ finally{
+ configContext.getListenerManager().stop();
+ serviceClient.cleanup();
+ }
+
+ }
+
+ private void terminateAndCheck(ServiceClient srvcClient)throws Exception{
+ SandeshaClient.terminateSequence(srvcClient);
+ //wait
+ Thread.sleep(1000);
+ //now check the sequence is terminated
+ SequenceReport report = SandeshaClient.getOutgoingSequenceReport(srvcClient);
+ assertNotNull(report);
+ assertEquals(report.getSequenceStatus(), SequenceReport.SEQUENCE_STATUS_TERMINATED);
+
+ }
// public void testCreateSequenceWithoutOffer () {
//// SandeshaClient.createSequence(serviceClient,true);
Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaUtilTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaUtilTest.java?view=diff&rev=480511&r1=480510&r2=480511
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaUtilTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/SandeshaUtilTest.java Wed Nov 29 02:29:32 2006
@@ -41,6 +41,26 @@
assertTrue(UUID2.startsWith("urn:uuid:"));
}
+ public void testInternalSequenceIDToSequenceKeyConversion()throws SandeshaException{
+ String toEPR = "http://127.0.0.1:1111/some_random_uri";
+ String sequenceKey = "1234abcd";
+
+ String internalSequenceID = SandeshaUtil.getInternalSequenceID(toEPR, sequenceKey);
+
+ //check that we can parse out the sequence key
+ assertEquals(sequenceKey, SandeshaUtil.getSequenceKeyFromInternalSequenceID(internalSequenceID, toEPR));
+
+ //try an internal sequenceID without a sequenceKey - should get null
+ internalSequenceID = SandeshaUtil.getSequenceKeyFromInternalSequenceID(toEPR, null);
+ assertNull(SandeshaUtil.getSequenceKeyFromInternalSequenceID(internalSequenceID, toEPR));
+
+ //for badly formed sequences, or for server-side response sequences, check
+ //we just get null
+ String outgoingSequenceID = SandeshaUtil.getOutgoingSideInternalSequenceID(SandeshaUtil.getUUID());
+ assertNull(SandeshaUtil.getSequenceKeyFromInternalSequenceID(outgoingSequenceID, toEPR));
+
+ }
+
public void testGetAckRangeArrayList () throws SandeshaException {
SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(Sandesha2Constants.SOAPVersion.v1_1);
String msgNumberStr = "3,6,1,5,8,2";
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org