Author: gatfora
Date: Mon Jan 8 05:25:49 2007
New Revision: 494063
URL: http://svn.apache.org/viewvc?view=rev&rev=494063
Log:
Move the nextMessageNumber to the RMSBean
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.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=494063&r1=494062&r2=494063
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
Mon Jan 8 05:25:49 2007
@@ -276,8 +276,6 @@
String OUT_CREATE_SEQUENCE_SENT = "OutCreateSeqSent";
- String NEXT_MESSAGE_NUMBER = "NextMsgNo";
-
String INCOMING_SEQUENCE_LIST = "IncomingSequenceList";
String OFFERED_SEQUENCE = "OfferedSequence";
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=494063&r1=494062&r2=494063
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
Mon Jan 8 05:25:49 2007
@@ -187,30 +187,6 @@
}
}
- // the message number that was last used.
- long systemMessageNumber = getPreviousMsgNo(configContext,
sequencePropertyKey, storageManager);
-
- // The number given by the user has to be larger than the last
stored
- // number.
- if (givenMessageNumber > 0 && givenMessageNumber <=
systemMessageNumber) {
- String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.msgNumberNotLargerThanLastMsg,
Long
- .toString(givenMessageNumber));
- throw new SandeshaException(message);
- }
-
- // Finding the correct message number.
- long messageNumber = -1;
- if (givenMessageNumber > 0) // if given message number is valid
use it.
- //
(this is larger than the last stored due
- // to
the last check)
- messageNumber = givenMessageNumber;
- else if (systemMessageNumber > 0) { // if system message number
is valid
-
// use it.
- messageNumber = systemMessageNumber + 1;
- } else { // This is the first message (systemMessageNumber = -1)
- messageNumber = 1;
- }
-
// A dummy message is a one which will not be processed as a
actual
// application message.
// The RM handlers will simply let these go.
@@ -237,10 +213,6 @@
throw new
SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendMsgAsSequenceTimedout,
internalSequenceId));
}
- // saving the used message number
- if (!dummyMessage)
- setNextMsgNo(configContext, sequencePropertyKey,
messageNumber, storageManager);
-
boolean sendCreateSequence = false;
String outSequenceID =
SandeshaUtil.getSequenceIDFromInternalSequenceID(internalSequenceId,
storageManager);
@@ -298,25 +270,15 @@
}
if (specVersion == null)
- specVersion =
SpecSpecificConstants.getDefaultSpecVersion(); // TODO
-
//
change
-
// the
-
//
default
-
// to
-
// v1_1.
-
- if (messageNumber == 1) {
- if (outSequenceID == null) { // out sequence will be
set for the
+ // TODO change the default to v1_1
+ specVersion =
SpecSpecificConstants.getDefaultSpecVersion();
+
+ if (outSequenceID == null) { // out sequence will be set for the
// server side, in the case of an offer.
- sendCreateSequence = true; // message number
being one and not
+ sendCreateSequence = true; // message number being one
and not
// having an out sequence, implies
// that a create sequence has to be
// send.
- }
-
- // if first message - setup the sending side sequence -
both for the
- // server and the client sides
- SequenceManager.setupNewClientSequence(msgContext,
sequencePropertyKey, specVersion, storageManager);
}
ServiceContext serviceContext = msgContext.getServiceContext();
@@ -326,6 +288,11 @@
// SENDING THE CREATE SEQUENCE.
if (sendCreateSequence) {
+
+ // if first message - setup the sending side sequence -
both for the
+ // server and the client sides
+ SequenceManager.setupNewClientSequence(msgContext,
sequencePropertyKey, specVersion, storageManager);
+
EndpointReference acksToEPR = null;
SequencePropertyBean responseCreateSeqAdded =
seqPropMgr.retrieve(sequencePropertyKey,
Sandesha2Constants.SequenceProperties.OUT_CREATE_SEQUENCE_SENT);
@@ -408,6 +375,30 @@
rmsBean =
storageManager.getRMSBeanMgr().findUnique(findBean);
}
+ // the message number that was last used.
+ long systemMessageNumber = rmsBean.getNextMessageNumber();
+
+ // The number given by the user has to be larger than the last
stored
+ // number.
+ if (givenMessageNumber > 0 && givenMessageNumber <=
systemMessageNumber) {
+ String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.msgNumberNotLargerThanLastMsg,
Long
+ .toString(givenMessageNumber));
+ throw new SandeshaException(message);
+ }
+
+ // Finding the correct message number.
+ long messageNumber = -1;
+ if (givenMessageNumber > 0) // if given message number is valid
use it.
+ //
(this is larger than the last stored due
+ // to
the last check)
+ messageNumber = givenMessageNumber;
+ else if (systemMessageNumber > 0) { // if system message number
is valid
+
// use it.
+ messageNumber = systemMessageNumber + 1;
+ } else { // This is the first message (systemMessageNumber = -1)
+ messageNumber = 1;
+ }
+
if (lastMessage) {
rmsBean.setLastOutMessage(messageNumber);
// Update the rmsBean
@@ -417,6 +408,16 @@
// set this as the response highest message.
rmsBean.setHighestOutMessageNumber(messageNumber);
+ // saving the used message number
+ if (!dummyMessage)
+ rmsBean.setNextMessageNumber(messageNumber);
+
+ if (messageNumber == 1 && !sendCreateSequence) {
+ // if first message - setup the sending side sequence -
both for the
+ // server and the client sides
+ SequenceManager.setupNewClientSequence(msgContext,
sequencePropertyKey, specVersion, storageManager);
+ }
+
RelatesTo relatesTo = msgContext.getRelatesTo();
if(relatesTo != null) {
rmsBean.setHighestOutRelatesTo(relatesTo.getValue());
@@ -747,62 +748,4 @@
if (log.isDebugEnabled())
log.debug("Exit:
ApplicationMsgProcessor::processResponseMessage");
}
-
- private long getPreviousMsgNo(ConfigurationContext context, String
sequencePropertyKey, StorageManager storageManager)
- throws SandeshaException {
- if (log.isDebugEnabled())
- log.debug("Enter:
ApplicationMsgProcessor::getPreviousMsgNo, " + sequencePropertyKey);
-
- SequencePropertyBeanMgr seqPropMgr =
storageManager.getSequencePropertyBeanMgr();
-
- SequencePropertyBean nextMsgNoBean =
seqPropMgr.retrieve(sequencePropertyKey,
-
Sandesha2Constants.SequenceProperties.NEXT_MESSAGE_NUMBER);
-
- long nextMsgNo = -1;
- if (nextMsgNoBean != null) {
- Long nextMsgNoLng = new Long(nextMsgNoBean.getValue());
- nextMsgNo = nextMsgNoLng.longValue();
- }
-
- if (log.isDebugEnabled())
- log.debug("Exit:
ApplicationMsgProcessor::getPreviousMsgNo, " + nextMsgNo);
-
- return nextMsgNo;
- }
-
- private void setNextMsgNo(ConfigurationContext context, String
sequencePropertyKey, long msgNo,
- StorageManager storageManager) throws SandeshaException
{
-
- if (log.isDebugEnabled())
- log.debug("Enter:
ApplicationMsgProcessor::setNextMsgNo, " + sequencePropertyKey + ", " + msgNo);
-
- if (msgNo <= 0) {
- String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.msgNumberMustBeLargerThanZero,
Long
- .toString(msgNo));
- throw new SandeshaException(message);
- }
-
- SequencePropertyBeanMgr seqPropMgr =
storageManager.getSequencePropertyBeanMgr();
-
- SequencePropertyBean nextMsgNoBean =
seqPropMgr.retrieve(sequencePropertyKey,
-
Sandesha2Constants.SequenceProperties.NEXT_MESSAGE_NUMBER);
-
- boolean update = true;
- if (nextMsgNoBean == null) {
- update = false;
- nextMsgNoBean = new SequencePropertyBean();
-
nextMsgNoBean.setSequencePropertyKey(sequencePropertyKey);
-
nextMsgNoBean.setName(Sandesha2Constants.SequenceProperties.NEXT_MESSAGE_NUMBER);
- }
-
- nextMsgNoBean.setValue(new Long(msgNo).toString());
- if (update)
- seqPropMgr.update(nextMsgNoBean);
- else
- seqPropMgr.insert(nextMsgNoBean);
-
- if (log.isDebugEnabled())
- log.debug("Exit:
ApplicationMsgProcessor::setNextMsgNo");
- }
-
}
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java?view=diff&rev=494063&r1=494062&r2=494063
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
Mon Jan 8 05:25:49 2007
@@ -95,6 +95,11 @@
* Keeps track of the highest transmitted message
*/
private String highestOutRelatesTo = null;
+
+ /**
+ * The next sequence number to apply to the message
+ */
+ private long nextMessageNumber = -1;
public RMSBean() {
}
@@ -195,6 +200,15 @@
this.highestOutRelatesTo = highestOutRelatesTo;
}
+ public long getNextMessageNumber() {
+ return nextMessageNumber;
+ }
+
+
+ public void setNextMessageNumber(long nextMessageNumber) {
+ this.nextMessageNumber = nextMessageNumber;
+ }
+
public String toString() {
StringBuffer result = new StringBuffer();
result.append(this.getClass().getName());
@@ -208,7 +222,7 @@
result.append("\nLastOutMessageNumber: ");
result.append(lastOutMessage);
result.append("\nHighestOutMessage: ");
result.append(highestOutMessageNumber);
result.append("\nHighestOutRelatesTo:
");result.append(highestOutRelatesTo);
+ result.append("\nNextMessageNumber: ");
result.append(nextMessageNumber);
return result.toString();
}
-
}
Modified:
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java?view=diff&rev=494063&r1=494062&r2=494063
==============================================================================
---
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java
(original)
+++
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/workers/ForceInboundDispatchTest.java
Mon Jan 8 05:25:49 2007
@@ -97,12 +97,12 @@
//we deliver msg 2
//set highest out msg number to 1
+ String internalSequenceId =
SandeshaUtil.getInternalSequenceID(to, sequenceKey);
t = mgr.getTransaction();
- SequencePropertyBean nextMsgNoBean =
- mgr.getSequencePropertyBeanMgr().
-
retrieve(SandeshaUtil.getInternalSequenceID(to, sequenceKey),
-
Sandesha2Constants.SequenceProperties.NEXT_MESSAGE_NUMBER);
- nextMsgNoBean.setValue("1");
+ RMSBean rmsBean =
SandeshaUtil.getRMSBeanFromInternalSequenceId(mgr, internalSequenceId);
+ rmsBean.setNextMessageNumber(1);
+ // Update the bean
+ mgr.getRMSBeanMgr().update(rmsBean);
t.commit();
clientOptions.setProperty(SandeshaClientConstants.MESSAGE_NUMBER,new Long(2));
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]