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]

Reply via email to