Author: chamikara
Date: Thu Dec 29 02:22:01 2005
New Revision: 359770
URL: http://svn.apache.org/viewcvs?rev=359770&view=rev
Log:
Ability to request for a RMReport within the client code. Users can ask for
reports of both outgoing sequences and incoming sequences. RMReport currently
gives the number of messages acked and tells weather the sequence has been
completed.
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java
webservices/sandesha/trunk/src/org/apache/sandesha2/RMReport.java
webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2ClientAPI.java
webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java
webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/CreateSeqBeanMgr.java
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/InvokerBeanMgr.java
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/NextMsgBeanMgr.java
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SenderBeanMgr.java
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SequencePropertyBeanMgr.java
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/AcknowledgementManager.java
Thu Dec 29 02:22:01 2005
@@ -23,7 +23,6 @@
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.sandesha2.storage.StorageManager;
-import org.apache.sandesha2.storage.Transaction;
import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr;
import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
import org.apache.sandesha2.storage.beans.SenderBean;
Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/RMReport.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/RMReport.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/RMReport.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/RMReport.java Thu Dec
29 02:22:01 2005
@@ -24,8 +24,7 @@
private long ackedMessageCount = 0;
private boolean sequenceCompleted = false;
-
-
+ private boolean outGoingSequence = false;
public long getAckedMessageCount() {
return ackedMessageCount;
@@ -42,4 +41,13 @@
public void setSequenceCompleted(boolean sequenceCompleted) {
this.sequenceCompleted = sequenceCompleted;
}
+
+ public boolean isOutGoingSequence() {
+ return outGoingSequence;
+ }
+
+ public void setOutGoingSequence(boolean outGoingSequence) {
+ this.outGoingSequence = outGoingSequence;
+ }
+
}
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2ClientAPI.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2ClientAPI.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2ClientAPI.java
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2ClientAPI.java
Thu Dec 29 02:22:01 2005
@@ -38,11 +38,22 @@
public static RMReport getRMReport (String to, String
sequenceKey,ConfigurationContext configurationContext) throws SandeshaException
{
String internalSequenceID = SandeshaUtil.getInternalSequenceID
(to,sequenceKey);
+ RMReport report = new RMReport ();
- RMReport rmReport = new RMReport ();
-
rmReport.setAckedMessageCount(SequenceManager.getAckedMessageCount
(internalSequenceID,configurationContext));
-
rmReport.setSequenceCompleted(SequenceManager.isSequenceCompleted
(internalSequenceID,configurationContext));
+
report.setAckedMessageCount(SequenceManager.getOutGoingSequenceAckedMessageCount
(internalSequenceID,configurationContext));
+
report.setSequenceCompleted(SequenceManager.isOutGoingSequenceCompleted
(internalSequenceID,configurationContext));
+ report.setOutGoingSequence(true);
+
+ return report;
+ }
+
+ public static RMReport getIncomingSequenceReport (String
sequenceID,ConfigurationContext configurationContext) throws SandeshaException {
- return rmReport;
+ RMReport report = new RMReport ();
+ report.setOutGoingSequence(false);
+
report.setAckedMessageCount(SequenceManager.getIncomingSequenceAckedMessageCount(sequenceID,configurationContext));
+
report.setSequenceCompleted(SequenceManager.isIncomingSequenceCompleted(sequenceID,configurationContext));
+
+ return report;
}
}
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java
Thu Dec 29 02:22:01 2005
@@ -179,9 +179,11 @@
String TERMINATE_ADDED = "TerminateAdded";
+ String TERMINATE_RECEIVED = "TerminateReceived";
+
String LAST_ACTIVATED_TIME = "LastActivatedTime";
- String NO_OF_MSGS_ACKED = "NoOfMessagesAcked";
+ String NO_OF_OUTGOING_MSGS_ACKED = "NoOfOutGoingMessagesAcked";
String TRANSPORT_TO = "TransportTo";
}
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java
Thu Dec 29 02:22:01 2005
@@ -193,7 +193,7 @@
if
(Sandesha2Constants.SequenceProperties.TERMINATE_ADDED.equals(name))
deleatable = false;
- if
(Sandesha2Constants.SequenceProperties.NO_OF_MSGS_ACKED.equals(name))
+ if
(Sandesha2Constants.SequenceProperties.NO_OF_OUTGOING_MSGS_ACKED.equals(name))
deleatable = false;
if
(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID.equals(name))
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
Thu Dec 29 02:22:01 2005
@@ -138,14 +138,14 @@
//setting acked message date.
//TODO add details specific to each message.
long noOfMsgsAcked =
getNoOfMessagesAcked(sequenceAck.getAcknowledgementRanges().iterator());
- SequencePropertyBean ackedMessagesBean =
seqPropMgr.retrieve(outSequenceId,Sandesha2Constants.SequenceProperties.NO_OF_MSGS_ACKED);
+ SequencePropertyBean ackedMessagesBean =
seqPropMgr.retrieve(outSequenceId,Sandesha2Constants.SequenceProperties.NO_OF_OUTGOING_MSGS_ACKED);
boolean added = false;
if (ackedMessagesBean==null) {
added = true;
ackedMessagesBean = new SequencePropertyBean ();
ackedMessagesBean.setSequenceID(outSequenceId);
-
ackedMessagesBean.setName(Sandesha2Constants.SequenceProperties.NO_OF_MSGS_ACKED);
+
ackedMessagesBean.setName(Sandesha2Constants.SequenceProperties.NO_OF_OUTGOING_MSGS_ACKED);
}
ackedMessagesBean.setValue(Long.toString(noOfMsgsAcked));
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
Thu Dec 29 02:22:01 2005
@@ -27,6 +27,8 @@
import org.apache.sandesha2.TerminateManager;
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.SequencePropertyBean;
import org.apache.sandesha2.util.SandeshaUtil;
import org.apache.sandesha2.util.SequenceManager;
import org.apache.sandesha2.wsrm.SequenceAcknowledgement;
@@ -51,7 +53,7 @@
AcknowledgementProcessor ackProcessor = new
AcknowledgementProcessor();
ackProcessor.processMessage(terminateSeqRMMSg);
}
-
+
//Processing the terminate message
//TODO Add terminate sequence message logic.
TerminateSequence terminateSequence = (TerminateSequence)
terminateSeqRMMSg.getMessagePart(Sandesha2Constants.MessageParts.TERMINATE_SEQ);
@@ -63,8 +65,18 @@
throw new SandeshaException ("Invalid sequence id");
ConfigurationContext context =
terminateSeqMsg.getConfigurationContext();
-
StorageManager storageManager =
SandeshaUtil.getSandeshaStorageManager(context);
+ SequencePropertyBeanMgr sequencePropertyBeanMgr =
storageManager.getSequencePropretyBeanMgr();
+
+ Transaction terminateReceivedTransaction =
storageManager.getTransaction();
+ SequencePropertyBean terminateReceivedBean = new
SequencePropertyBean ();
+ terminateReceivedBean.setSequenceID(sequenceId);
+
terminateReceivedBean.setName(Sandesha2Constants.SequenceProperties.TERMINATE_RECEIVED);
+ terminateReceivedBean.setValue("true");
+
+ sequencePropertyBeanMgr.insert(terminateReceivedBean);
+
+ terminateReceivedTransaction.commit();
Transaction terminateTransaction =
storageManager.getTransaction();
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/CreateSeqBeanMgr.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/CreateSeqBeanMgr.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/CreateSeqBeanMgr.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/CreateSeqBeanMgr.java
Thu Dec 29 02:22:01 2005
@@ -17,7 +17,6 @@
package org.apache.sandesha2.storage.beanmanagers;
-import java.sql.ResultSet;
import java.util.Collection;
import org.apache.sandesha2.storage.SandeshaStorageException;
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/InvokerBeanMgr.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/InvokerBeanMgr.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/InvokerBeanMgr.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/InvokerBeanMgr.java
Thu Dec 29 02:22:01 2005
@@ -17,7 +17,6 @@
package org.apache.sandesha2.storage.beanmanagers;
-import java.sql.ResultSet;
import java.util.Collection;
import org.apache.sandesha2.storage.SandeshaStorageException;
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/NextMsgBeanMgr.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/NextMsgBeanMgr.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/NextMsgBeanMgr.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/NextMsgBeanMgr.java
Thu Dec 29 02:22:01 2005
@@ -17,7 +17,6 @@
package org.apache.sandesha2.storage.beanmanagers;
-import java.sql.ResultSet;
import java.util.Collection;
import org.apache.sandesha2.storage.SandeshaStorageException;
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SenderBeanMgr.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SenderBeanMgr.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SenderBeanMgr.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SenderBeanMgr.java
Thu Dec 29 02:22:01 2005
@@ -17,9 +17,8 @@
package org.apache.sandesha2.storage.beanmanagers;
-import java.sql.ResultSet;
import java.util.Collection;
-import org.apache.sandesha2.SandeshaException;
+
import org.apache.sandesha2.storage.SandeshaStorageException;
import org.apache.sandesha2.storage.beans.SenderBean;
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SequencePropertyBeanMgr.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SequencePropertyBeanMgr.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SequencePropertyBeanMgr.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/storage/beanmanagers/SequencePropertyBeanMgr.java
Thu Dec 29 02:22:01 2005
@@ -17,7 +17,6 @@
package org.apache.sandesha2.storage.beanmanagers;
-import java.sql.ResultSet;
import java.util.Collection;
import org.apache.sandesha2.storage.SandeshaStorageException;
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
Thu Dec 29 02:22:01 2005
@@ -58,6 +58,8 @@
import org.apache.sandesha2.Sandesha2Constants;
import org.apache.sandesha2.SandeshaException;
import org.apache.sandesha2.storage.StorageManager;
+import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
+import org.apache.sandesha2.storage.beans.SequencePropertyBean;
import org.apache.sandesha2.workers.InOrderInvoker;
import org.apache.sandesha2.workers.Sender;
import org.apache.sandesha2.wsrm.AcknowledgementRange;
@@ -592,6 +594,20 @@
return to;
else
return to + ":" +sequenceKey;
+ }
+
+ public static String getSequenceIDFromInternalSequenceID (String
internalSequenceID, ConfigurationContext configurationContext) throws
SandeshaException {
+
+ StorageManager storageManager =
getSandeshaStorageManager(configurationContext);
+ SequencePropertyBeanMgr sequencePropertyBeanMgr =
storageManager.getSequencePropretyBeanMgr();
+
+ SequencePropertyBean outSequenceBean =
sequencePropertyBeanMgr.retrieve(internalSequenceID,
Sandesha2Constants.SequenceProperties.OUT_SEQUENCE_ID);
+
+ String sequeunceID = null;
+ if (outSequenceBean!=null)
+ sequeunceID = outSequenceBean.getValue();
+
+ return sequeunceID;
}
}
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java?rev=359770&r1=359769&r2=359770&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java
Thu Dec 29 02:22:01 2005
@@ -6,8 +6,8 @@
*/
package org.apache.sandesha2.util;
-import java.util.ArrayList;
import java.util.Collection;
+import java.util.StringTokenizer;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
@@ -22,10 +22,8 @@
import org.apache.sandesha2.policy.RMPolicyBean;
import org.apache.sandesha2.storage.StorageManager;
import org.apache.sandesha2.storage.Transaction;
-import org.apache.sandesha2.storage.beanmanagers.CreateSeqBeanMgr;
import org.apache.sandesha2.storage.beanmanagers.NextMsgBeanMgr;
import org.apache.sandesha2.storage.beanmanagers.SequencePropertyBeanMgr;
-import org.apache.sandesha2.storage.beans.CreateSeqBean;
import org.apache.sandesha2.storage.beans.NextMsgBean;
import org.apache.sandesha2.storage.beans.SequencePropertyBean;
import org.apache.sandesha2.wsrm.CreateSequence;
@@ -232,7 +230,7 @@
return sequenceTimedOut;
}
- public static long getAckedMessageCount (String
internalSequenceID,ConfigurationContext configurationContext) throws
SandeshaException {
+ public static long getOutGoingSequenceAckedMessageCount (String
internalSequenceID,ConfigurationContext configurationContext) throws
SandeshaException {
StorageManager storageManager =
SandeshaUtil.getSandeshaStorageManager(configurationContext);
Transaction transaction = storageManager.getTransaction();
SequencePropertyBeanMgr seqPropBeanMgr =
storageManager.getSequencePropretyBeanMgr();
@@ -251,16 +249,17 @@
SequencePropertyBean seqIDBean = (SequencePropertyBean)
seqIDBeans.iterator().next();
String sequenceID = seqIDBean.getSequenceID();
- SequencePropertyBean ackedMsgBean =
seqPropBeanMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.NO_OF_MSGS_ACKED);
+ SequencePropertyBean ackedMsgBean =
seqPropBeanMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.NO_OF_OUTGOING_MSGS_ACKED);
if (ackedMsgBean==null)
return 0; //No acknowledgement has been received yet.
long noOfMessagesAcked =
Long.parseLong(ackedMsgBean.getValue());
+ transaction.commit();
return noOfMessagesAcked;
}
- public static boolean isSequenceCompleted (String
internalSequenceID,ConfigurationContext configurationContext) throws
SandeshaException {
+ public static boolean isOutGoingSequenceCompleted (String
internalSequenceID,ConfigurationContext configurationContext) throws
SandeshaException {
StorageManager storageManager =
SandeshaUtil.getSandeshaStorageManager(configurationContext);
Transaction transaction = storageManager.getTransaction();
SequencePropertyBeanMgr seqPropBeanMgr =
storageManager.getSequencePropretyBeanMgr();
@@ -286,7 +285,47 @@
if ("true".equals(terminateAddedBean.getValue()))
return true;
+ transaction.commit();
return false;
+ }
+
+ public static long getIncomingSequenceAckedMessageCount (String
sequenceID, ConfigurationContext configurationContext) throws SandeshaException
{
+ StorageManager storageManager =
SandeshaUtil.getSandeshaStorageManager(configurationContext);
+ Transaction transaction = storageManager.getTransaction();
+ SequencePropertyBeanMgr seqPropBeanMgr =
storageManager.getSequencePropretyBeanMgr();
+
+ SequencePropertyBean receivedMsgsBean =
seqPropBeanMgr.retrieve(sequenceID,
Sandesha2Constants.SequenceProperties.RECEIVED_MESSAGES);
+
+ //we should be able to assume that all the received messages
has been acked.
+ String receivedMsgsStr = receivedMsgsBean.getValue();
+
+ StringTokenizer tokenizer = new StringTokenizer
(receivedMsgsStr,",");
+
+ long count = 0;
+ while (tokenizer.hasMoreTokens()) {
+ String temp = tokenizer.nextToken();
+ count++;
+ }
+
+
+ transaction.commit();
+ return count;
+ }
+
+ public static boolean isIncomingSequenceCompleted (String sequenceID,
ConfigurationContext configurationContext) throws SandeshaException {
+
+ StorageManager storageManager =
SandeshaUtil.getSandeshaStorageManager(configurationContext);
+ Transaction transaction = storageManager.getTransaction();
+ SequencePropertyBeanMgr seqPropBeanMgr =
storageManager.getSequencePropretyBeanMgr();
+
+ SequencePropertyBean terminateReceivedBean =
seqPropBeanMgr.retrieve(sequenceID,Sandesha2Constants.SequenceProperties.TERMINATE_RECEIVED);
+ boolean complete = false;
+
+ if (terminateReceivedBean!=null &&
"true".equals(terminateReceivedBean.getValue()))
+ complete = true;
+
+ transaction.commit();
+ return complete;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]