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]