Author: gatfora
Date: Mon Jan  8 03:54:21 2007
New Revision: 494037

URL: http://svn.apache.org/viewvc?view=rev&rev=494037
Log:
Move the highestOut properties 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/msgprocessors/TerminateSeqMsgProcessor.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=494037&r1=494036&r2=494037
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 Mon Jan  8 03:54:21 2007
@@ -305,11 +305,6 @@
                // in the sequence.
                String LAST_IN_MSG_ID = "LastInMessageId";
                
-               // A pair pf properties to keep track of the highest 
transmitted message
-               // for an outbound sequence.
-               String HIGHEST_OUT_MSG_NUMBER = "HighestOutMsgNumber";
-               String HIGHEST_OUT_RELATES_TO = "HighestOutRelatesTo";
-               
                String SECURITY_TOKEN = "SecurityToken";
                
                String SOAP_VERSION = "SOAPVersion";

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=494037&r1=494036&r2=494037
==============================================================================
--- 
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 03:54:21 2007
@@ -241,17 +241,6 @@
                if (!dummyMessage)
                        setNextMsgNo(configContext, sequencePropertyKey, 
messageNumber, storageManager);
 
-               // set this as the response highest message.
-               SequencePropertyBean responseHighestMsgBean = new 
SequencePropertyBean(sequencePropertyKey,
-                               
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_MSG_NUMBER, new 
Long(messageNumber).toString());
-               seqPropMgr.insert(responseHighestMsgBean);
-               RelatesTo relatesTo = msgContext.getRelatesTo();
-               if(relatesTo != null) {
-                       SequencePropertyBean responseRelatesToBean = new 
SequencePropertyBean(sequencePropertyKey,
-                                       
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_RELATES_TO, 
relatesTo.getValue());
-                       seqPropMgr.insert(responseRelatesToBean);
-               }
-
                boolean sendCreateSequence = false;
 
                String outSequenceID = 
SandeshaUtil.getSequenceIDFromInternalSequenceID(internalSequenceId, 
storageManager);
@@ -413,7 +402,7 @@
                        }
                }
                
-               if (rmsBean == null && lastMessage) {
+               if (rmsBean == null) {
                        RMSBean findBean = new RMSBean();
                        findBean.setInternalSequenceID(internalSequenceId);
                        rmsBean = 
storageManager.getRMSBeanMgr().findUnique(findBean);
@@ -425,7 +414,17 @@
                        storageManager.getRMSBeanMgr().update(rmsBean);
                }
 
+               // set this as the response highest message.
+               rmsBean.setHighestOutMessageNumber(messageNumber);
+               
+               RelatesTo relatesTo = msgContext.getRelatesTo();
+               if(relatesTo != null) {
+                       rmsBean.setHighestOutRelatesTo(relatesTo.getValue());
+               }
 
+               // Update the rmsBean
+               storageManager.getRMSBeanMgr().update(rmsBean);
+               
                SOAPEnvelope env = rmMsgCtx.getSOAPEnvelope();
                if (env == null) {
                        SOAPEnvelope envelope = 
SOAPAbstractFactory.getSOAPFactory(SandeshaUtil.getSOAPVersion(env))

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java?view=diff&rev=494037&r1=494036&r2=494037
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
 Mon Jan  8 03:54:21 2007
@@ -194,20 +194,20 @@
                                
                                // If an outbound message has already gone out 
with that relatesTo, then we can terminate
                                // right away.
-                               String highestOutRelatesTo = 
SandeshaUtil.getSequenceProperty(responseSideSequencePropertyKey,
-                                               
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_RELATES_TO, storageManager);
-                               if(highestOutRelatesTo != null && 
highestOutRelatesTo.equals(inMsgId)) {
-                                       String highOutMessageNumberString = 
SandeshaUtil.getSequenceProperty(responseSideSequencePropertyKey,
-                                                       
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_MSG_NUMBER, storageManager);
-                                       highestOutMsgNo = 
Long.parseLong(highOutMessageNumberString);
-                                       addResponseSideTerminate = true;
-                                       
-                                       // It is possible that the message has 
gone out, but not been acked yet. In that case
-                                       // we can store the 
HIGHEST_OUT_MSG_NUMBER as the LAST_OUT_MESSAGE_NO, so that when the
-                                       // ack arrives we will terminate the 
sequence
-                                       RMSBean rmsBean = 
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager, 
responseSideInternalSequenceId);
-                                       
rmsBean.setLastOutMessage(highestOutMsgNo);
-                                       
storageManager.getRMSBeanMgr().update(rmsBean);
+                               RMSBean rmsBean = 
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager, 
responseSideInternalSequenceId);
+
+                               if(rmsBean != null) {
+                                       String highestOutRelatesTo = 
rmsBean.getHighestOutRelatesTo();
+                                       if (highestOutRelatesTo != null && 
highestOutRelatesTo.equals(inMsgId)) {
+                                               highestOutMsgNo = 
rmsBean.getHighestOutMessageNumber();
+                                               addResponseSideTerminate = true;
+                                               
+                                               // It is possible that the 
message has gone out, but not been acked yet. In that case
+                                               // we can store the 
HIGHEST_OUT_MSG_NUMBER as the LAST_OUT_MESSAGE_NO, so that when the
+                                               // ack arrives we will 
terminate the sequence
+                                               
rmsBean.setLastOutMessage(highestOutMsgNo);
+                                               
storageManager.getRMSBeanMgr().update(rmsBean);
+                                       }
                                }
                        }
 

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=494037&r1=494036&r2=494037
==============================================================================
--- 
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 03:54:21 2007
@@ -83,7 +83,19 @@
         * The last Out message number
         */
        private long lastOutMessage = 0;
-
+       
+       /**
+        * The Highest out message number
+        * Keeps track of the highest transmitted message
+        */
+       private long highestOutMessageNumber = 0;
+       
+       /**
+        * The highest out message relates to message id         
+        * Keeps track of the highest transmitted message
+        */
+  private String highestOutRelatesTo = null;
+       
        public RMSBean() {
        }
 
@@ -164,6 +176,25 @@
        this.lastOutMessage = lastOutMessage;
   }
 
+       public long getHighestOutMessageNumber() {
+       return highestOutMessageNumber;
+  }
+
+
+       public void setHighestOutMessageNumber(long highestOutMessageNumber) {
+       this.highestOutMessageNumber = highestOutMessageNumber;
+  }
+
+
+       public String getHighestOutRelatesTo() {
+       return highestOutRelatesTo;
+  }
+
+
+       public void setHighestOutRelatesTo(String highestOutRelatesTo) {
+       this.highestOutRelatesTo = highestOutRelatesTo;
+  }
+
        public String toString() {
                StringBuffer result = new StringBuffer();
                result.append(this.getClass().getName());
@@ -175,8 +206,9 @@
                result.append("\nReference Msg Key: "); 
result.append(referenceMessageStoreKey);
                result.append("\nPolling          : "); 
result.append(pollingMode);
                result.append("\nLastOutMessageNumber: "); 
result.append(lastOutMessage);
+               result.append("\nHighestOutMessage: "); 
result.append(highestOutMessageNumber);
+               result.append("\nHighestOutRelatesTo: 
");result.append(highestOutRelatesTo);
                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=494037&r1=494036&r2=494037
==============================================================================
--- 
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 03:54:21 2007
@@ -17,8 +17,8 @@
 import org.apache.sandesha2.client.SequenceReport;
 import org.apache.sandesha2.storage.StorageManager;
 import org.apache.sandesha2.storage.Transaction;
-import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
 import org.apache.sandesha2.storage.beans.RMDBean;
+import org.apache.sandesha2.storage.beans.RMSBean;
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
 import org.apache.sandesha2.util.RangeString;
 import org.apache.sandesha2.util.SandeshaUtil;
@@ -178,18 +178,16 @@
     ConfigurationContext context = 
serviceClient.getServiceContext().getConfigurationContext();
     StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(context, context.getAxisConfiguration());
     
-    // Get the sequence property bean manager
-    SequencePropertyBeanMgr beanMgr = 
storageManager.getSequencePropertyBeanMgr();
-    
     // Get a transaction for the property finding
     Transaction transaction = storageManager.getTransaction();
     
     // Get the highest out message property
-    SequencePropertyBean bean = beanMgr.retrieve(internalSequenceId, 
Sandesha2Constants.SequenceProperties.HIGHEST_OUT_MSG_NUMBER);
+    RMSBean rmsBean = 
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager, 
internalSequenceId);
     
     transaction.commit();
     
-    Long highestOutMsgKey = Long.valueOf(bean.getValue());
+    long highestOutMsgNum = rmsBean.getHighestOutMessageNumber();
+    Long highestOutMsgKey = new Long(highestOutMsgNum);
     
     long timeNow = System.currentTimeMillis();
     long timeToComplete = timeNow + waitTime;



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to