Author: gatfora
Date: Mon Jan 15 00:42:59 2007
New Revision: 496248

URL: http://svn.apache.org/viewvc?view=rev&rev=496248
Log:
Move sequenceTimedOut property to RMSBean

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/msgprocessors/ApplicationMsgProcessor.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/beans/RMSBean.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.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=496248&r1=496247&r2=496248
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 Mon Jan 15 00:42:59 2007
@@ -257,8 +257,6 @@
                String INTERNAL_SEQUENCE_ID = "TempSequenceId";
 
                String INCOMING_SEQUENCE_LIST = "IncomingSequenceList";
-               
-               String SEQUENCE_TIMED_OUT = "SequenceTimedOut";
                                
                String SECURITY_TOKEN = "SecurityToken";
        }

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=496248&r1=496247&r2=496248
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/client/SandeshaClient.java
 Mon Jan 15 00:42:59 2007
@@ -113,7 +113,6 @@
                
sequenceReport.setSequenceDirection(SequenceReport.SEQUENCE_DIRECTION_OUT);
 
                StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configurationContext,configurationContext.getAxisConfiguration());
-               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropertyBeanMgr();
                RMSBeanMgr createSeqMgr = storageManager.getRMSBeanMgr();
 
                Transaction reportTransaction = null;
@@ -134,24 +133,26 @@
                        if (rMSBean != null && rMSBean.isTerminated()) {
 
                                // check weather this is an terminated sequence.
-                               
fillTerminatedOutgoingSequenceInfo(sequenceReport, internalSequenceID, 
storageManager);
+                               
sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_TERMINATED);
+
+                               fillOutgoingSequenceInfo(sequenceReport, 
rMSBean, storageManager);
 
                                return sequenceReport;
 
-                       } else if (rMSBean == null) {
+                       } else if (rMSBean != null && rMSBean.isTimedOut()) {
 
-                               if (isSequenceTimedout(internalSequenceID, 
seqPropMgr)) {
-                                       
fillTimedoutOutgoingSequenceInfo(sequenceReport, internalSequenceID, 
storageManager);
+                               
sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_TIMED_OUT);
+                               
+                               fillOutgoingSequenceInfo(sequenceReport, 
rMSBean, storageManager);
 
-                                       return sequenceReport;
-                               }
+                               return sequenceReport;
+                               
+                       } else if (rMSBean == null) {
 
-                               // sequence must hv been timed out before 
establiching. No other
+                               // sequence must hv been timed out before 
establishing. No other
                                // posibility I can think of.
                                // this does not get recorded since there is no 
key (which is
                                // normally the sequenceID) to store it.
-                               // (properties with key as the 
internalSequenceID get deleted in
-                               // timing out)
 
                                // so, setting the sequence status to INITIAL
                                
sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_INITIAL);
@@ -171,7 +172,7 @@
                        }
 
                        
sequenceReport.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_ESTABLISHED);
-                       fillOutgoingSequenceInfo(sequenceReport, 
internalSequenceID, outSequenceID, storageManager);
+                       fillOutgoingSequenceInfo(sequenceReport, rMSBean, 
storageManager);
 
                } catch (Exception e) {
                        if (reportTransaction!=null) {
@@ -185,6 +186,24 @@
                return sequenceReport;
        }
 
+       private static void fillOutgoingSequenceInfo(SequenceReport report, 
RMSBean rmsBean,
+                       StorageManager storageManager) throws SandeshaException 
{
+               report.setSequenceID(rmsBean.getSequenceID());
+
+               List completedMessageList = 
+                       
AcknowledgementManager.getClientCompletedMessagesList(rmsBean.getInternalSequenceID(),
 rmsBean.getSequenceID(),
+                               storageManager);
+
+               Iterator iter = completedMessageList.iterator();
+               while (iter.hasNext()) {
+                       report.addCompletedMessage((Long)iter.next());
+               }
+               
+               SequencePropertyBean tokenBean = 
+                       
storageManager.getSequencePropertyBeanMgr().retrieve(rmsBean.getInternalSequenceID(),
 Sandesha2Constants.SequenceProperties.SECURITY_TOKEN);
+               if(tokenBean != null) report.setSecureSequence(true);
+       }
+
        /**
         * Users can get a list of sequenceReports each describing a incoming
         * sequence, which are the sequences the client work as a RMD.
@@ -383,8 +402,7 @@
                                terminatedSequence = true;
        
                        //see if the sequence is timed out
-                       SequencePropertyBean sequenceTimedout = 
seqPropMgr.retrieve(internalSequenceId, 
Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT);
-                       if(sequenceTimedout!=null){
+                       if(rmsBean != null && rmsBean.isTimedOut()){
                                terminatedSequence = true;
                        }
        
@@ -971,105 +989,21 @@
                return dummyEnvelope;
        }
 
-       private static boolean isSequenceTimedout(String internalSequenceID, 
SequencePropertyBeanMgr seqPropMgr)
-                       throws SandeshaException {
-               SequencePropertyBean internalSequenceFindBean = new 
SequencePropertyBean();
-               internalSequenceFindBean.setValue(internalSequenceID);
-               
internalSequenceFindBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
-
-               SequencePropertyBean internalSequenceBean = 
seqPropMgr.findUnique(internalSequenceFindBean);
-               if (internalSequenceBean == null) {
-                       String message = SandeshaMessageHelper.getMessage(
-                                       
SandeshaMessageKeys.internalSeqBeanNotAvailableOnSequence, internalSequenceID);
-                       log.debug(message);
-
-                       return false;
-               }
-
-               String outSequenceID = 
internalSequenceBean.getSequencePropertyKey();
-               SequencePropertyBean sequenceTerminatedBean = 
seqPropMgr.retrieve(outSequenceID,
-                               
Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT);
-               if (sequenceTerminatedBean != null && 
Sandesha2Constants.VALUE_TRUE.equals(sequenceTerminatedBean.getValue())) {
-                       return true;
-               }
-
-               return false;
-       }
-
-       private static void fillTerminatedOutgoingSequenceInfo(SequenceReport 
report, String internalSequenceID,
-                       StorageManager storageManager) throws SandeshaException 
{
-               SequencePropertyBean internalSequenceFindBean = new 
SequencePropertyBean();
-               internalSequenceFindBean.setValue(internalSequenceID);
-               
internalSequenceFindBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
-
-               SequencePropertyBean internalSequenceBean = 
storageManager.getSequencePropertyBeanMgr().findUnique(internalSequenceFindBean);
-               if (internalSequenceBean == null) {
-                       String message = SandeshaMessageHelper.getMessage(
-                                       SandeshaMessageKeys.notValidTerminate, 
internalSequenceID);
-                       log.debug(message);
-
-                       throw new SandeshaException(message);
-               }
-
-               
report.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_TERMINATED);
-
-               String outSequenceID = 
internalSequenceBean.getSequencePropertyKey();
-               fillOutgoingSequenceInfo(report, internalSequenceID, 
outSequenceID, storageManager);
-       }
-
-       private static void fillTimedoutOutgoingSequenceInfo(SequenceReport 
report, String internalSequenceID,
-                       StorageManager storageManager) throws SandeshaException 
{
-               SequencePropertyBean internalSequenceFindBean = new 
SequencePropertyBean();
-               internalSequenceFindBean.setValue(internalSequenceID);
-               
internalSequenceFindBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
-
-               SequencePropertyBean internalSequenceBean = 
storageManager.getSequencePropertyBeanMgr().findUnique(internalSequenceFindBean);
-               if (internalSequenceBean == null) {
-                       String message = SandeshaMessageHelper.getMessage(
-                                       SandeshaMessageKeys.notValidTimeOut, 
internalSequenceID);
-                       log.debug(message);
-
-                       throw new SandeshaException(message);
-               }
-
-               
report.setSequenceStatus(SequenceReport.SEQUENCE_STATUS_TIMED_OUT);
-               String outSequenceID = 
internalSequenceBean.getSequencePropertyKey();
-               fillOutgoingSequenceInfo(report, internalSequenceID, 
outSequenceID, storageManager);
-       }
-
-       private static void fillOutgoingSequenceInfo(SequenceReport report, 
String internalSequenceID, String outSequenceID,
-                       StorageManager storageManager) throws SandeshaException 
{
-               report.setSequenceID(outSequenceID);
-
-               List completedMessageList = 
AcknowledgementManager.getClientCompletedMessagesList(internalSequenceID, 
outSequenceID,
-                               storageManager);
-
-               Iterator iter = completedMessageList.iterator();
-               while (iter.hasNext()) {
-                       report.addCompletedMessage((Long)iter.next());
-               }
-               
-               SequencePropertyBean tokenBean = 
-                       
storageManager.getSequencePropertyBeanMgr().retrieve(internalSequenceID, 
Sandesha2Constants.SequenceProperties.SECURITY_TOKEN);
-               if(tokenBean != null) report.setSecureSequence(true);
-       }
-
        private static byte getServerSequenceStatus(String sequenceID, 
StorageManager storageManager)
                        throws SandeshaException {
 
-               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropertyBeanMgr();
-
                RMDBean rmdBean = 
SandeshaUtil.getRMDBeanFromSequenceId(storageManager, sequenceID);
                if (rmdBean != null && rmdBean.isTerminated()) {
                        return SequenceReport.SEQUENCE_STATUS_TERMINATED;
                }
 
-               SequencePropertyBean timedOutBean = 
seqPropMgr.retrieve(sequenceID,
+/*     Only outbound sequences time out        
+    SequencePropertyBean timedOutBean = seqPropMgr.retrieve(sequenceID,
                                
Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT);
                if (timedOutBean != null) {
                        return SequenceReport.SEQUENCE_STATUS_TIMED_OUT;
                }
-
+*/
                if (rmdBean != null) {
                        return SequenceReport.SEQUENCE_STATUS_ESTABLISHED;
                }

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=496248&r1=496247&r2=496248
==============================================================================
--- 
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 15 00:42:59 2007
@@ -209,8 +209,7 @@
                }
 
                //see if the sequence is timed out
-               SequencePropertyBean sequenceTimedout = 
seqPropMgr.retrieve(sequencePropertyKey, 
Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT);
-               if(sequenceTimedout!=null){
+               if(rmsBean != null && rmsBean.isTimedOut()){
                        throw new 
SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotSendMsgAsSequenceTimedout,
 internalSequenceId));
                }
 

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=496248&r1=496247&r2=496248
==============================================================================
--- 
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 15 00:42:59 2007
@@ -107,15 +107,20 @@
   private boolean terminateAdded = false;
   
   /**
-   * The number of messages that were acked
+   * Indicates that a sequence has timed out.
    */
-  private long numberOfMessagesAcked = 0;
+  private boolean timedOut = false;
   
   /**
    * Indicates the client has sent a close sequence
    */
   private boolean sequenceClosedClient = false;
-  
+
+  /**
+   * The number of messages that were acked
+   */
+  private long numberOfMessagesAcked = 0;
+
   private String transportTo;
   
   private String offeredEndPoint = null;
@@ -230,6 +235,14 @@
        this.terminateAdded = terminateAdded;
   }
 
+       public boolean isTimedOut() {
+       return timedOut;
+  }
+
+       public void setTimedOut(boolean timedOut) {
+       this.timedOut = timedOut;
+  }
+
        public boolean isSequenceClosedClient() {
        return sequenceClosedClient;
   }
@@ -284,6 +297,7 @@
                result.append("\nHighestOutRelatesTo: 
");result.append(highestOutRelatesTo);
                result.append("\nNextMessageNumber: "); 
result.append(nextMessageNumber);
                result.append("\nTerminateAdded   : "); 
result.append(terminateAdded);
+               result.append("\nTimedOut         : "); result.append(timedOut);
                result.append("\nClosedClient     : "); 
result.append(sequenceClosedClient);
                result.append("\nNumAckedMsgs     : "); 
result.append(numberOfMessagesAcked);
                result.append("\nTransportTo      : "); 
result.append(transportTo);

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java?view=diff&rev=496248&r1=496247&r2=496248
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/TerminateManager.java
 Mon Jan 15 00:42:59 2007
@@ -195,52 +195,20 @@
                cleanSendingSideData (configContext, sequencePropertyKey , 
internalSequenceID, serverSide, storageManager);
        }
 
-       private static void doUpdatesIfNeeded(String sequenceID, 
SequencePropertyBean propertyBean,
-                       SequencePropertyBeanMgr seqPropMgr) throws 
SandeshaException {
-
-               boolean addEntryWithSequenceID = false;
-
-               if 
(propertyBean.getName().equals(Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT))
 {
-                       addEntryWithSequenceID = true;
-               }
-
-               if (addEntryWithSequenceID && sequenceID != null) {
-                       // this value cannot be completely deleted since this 
data will be
-                       // needed by SequenceReports
-                       // so saving it with the sequenceID value being the out 
sequenceID.
-
-                       SequencePropertyBean newBean = new 
SequencePropertyBean();
-                       newBean.setSequencePropertyKey(sequenceID);
-                       newBean.setName(propertyBean.getName());
-                       newBean.setValue(propertyBean.getValue());
-
-                       seqPropMgr.insert(newBean);
-                       // TODO amazingly this property does not seem to get 
deleted without
-                       // following - in the hibernate impl
-                       // (even though the lines efter current methodcall do 
this).
-                       
seqPropMgr.delete(propertyBean.getSequencePropertyKey(), 
propertyBean.getName());
-               }
-       }
-
        private static boolean isPropertyDeletable(String name) {
                boolean deleatable = true;
 
                if 
(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID.equals(name))
                        deleatable = false;
 
-               if 
(Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT.equals(name))
-                       deleatable = false;
-
                return deleatable;
        }
 
        public static void timeOutSendingSideSequence(ConfigurationContext 
context, String sequencePropertyKey,String internalSequenceId,
                        boolean serverside, StorageManager storageManager) 
throws SandeshaException {
 
-               SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropertyBeanMgr();
-               SequencePropertyBean seqTerminatedBean = new 
SequencePropertyBean(sequencePropertyKey,
-                               
Sandesha2Constants.SequenceProperties.SEQUENCE_TIMED_OUT, 
Sandesha2Constants.VALUE_TRUE);
-               seqPropMgr.insert(seqTerminatedBean);
+               RMSBean rmsBean = 
SandeshaUtil.getRMSBeanFromInternalSequenceId(storageManager, 
internalSequenceId);
+               rmsBean.setTimedOut(true);
 
                cleanSendingSideData(context, 
sequencePropertyKey,internalSequenceId, serverside, storageManager);
        }
@@ -265,11 +233,6 @@
                // removing the createSeqMgrEntry
                RMSBean createSeqFindBean = new RMSBean();
                createSeqFindBean.setInternalSequenceID(internalSequenceId);
-
-               RMSBean rMSBean = 
storageManager.getRMSBeanMgr().findUnique(createSeqFindBean);
-               //rMSBeanMgr.delete(rMSBean.getCreateSeqMsgID());
-
-               String outSequenceID = rMSBean.getSequenceID();
                
                // removing sequence properties
                SequencePropertyBean findSequencePropertyBean1 = new 
SequencePropertyBean();
@@ -278,7 +241,6 @@
                iterator = collection.iterator();
                while (iterator.hasNext()) {
                        SequencePropertyBean sequencePropertyBean = 
(SequencePropertyBean) iterator.next();
-                       doUpdatesIfNeeded(outSequenceID, sequencePropertyBean, 
sequencePropertyBeanMgr);
 
                        // TODO all properties which hv the temm:Seq:id as the 
key should be
                        // deletable.



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

Reply via email to