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 ga...@apache.org on 2007/01/15 09:43:00 UTC

svn commit: r496248 - in /webservices/sandesha/trunk/java/src/org/apache/sandesha2: Sandesha2Constants.java client/SandeshaClient.java msgprocessors/ApplicationMsgProcessor.java storage/beans/RMSBean.java util/TerminateManager.java

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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org