Author: chamikara
Date: Fri Mar 17 01:02:21 2006
New Revision: 386575
URL: http://svn.apache.org/viewcvs?rev=386575&view=rev
Log:
Added a new policy - MaximumRetransmissionCount. The retransmission will happen
only this number of times.
Added:
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/MaximumRetransmissionCountProcessor.java
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyProcessor.java
webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java?rev=386575&r1=386574&r2=386575&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java
Fri Mar 17 01:02:21 2006
@@ -12,6 +12,7 @@
private String permanentStorageMgr = null;
private String inmemoryStorageManager = null;
private String storageManager = null;
+ private int maximumRetransmissionCount;
public boolean isExponentialBackoff() {
return exponentialBackoff;
@@ -85,6 +86,7 @@
ped.setRetransmissionInterval(this.getRetransmissionInterval());
//ped.setPermanentStorageManager(this.getPermanentStorageManager());
ped.setStorageManager(this.getStorageManager());
+
ped.setMaximumRetransmissionCount(this.getMaximumRetransmissionCount());
return ped;
}
@@ -103,5 +105,13 @@
public String getStorageManager() {
return storageManager;
+ }
+
+ public int getMaximumRetransmissionCount() {
+ return maximumRetransmissionCount;
+ }
+
+ public void setMaximumRetransmissionCount(int
maximumRetransmissionCount) {
+ this.maximumRetransmissionCount = maximumRetransmissionCount;
}
}
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java?rev=386575&r1=386574&r2=386575&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java
Fri Mar 17 01:02:21 2006
@@ -10,6 +10,10 @@
public static final RMPolicyToken acknowledgementInterval = new
RMPolicyToken(
"AcknowledgementInterval", RMPolicyToken.SIMPLE_TOKEN,
new String[] {});
+
+ public static final RMPolicyToken maximumRetransmissionCount = new
RMPolicyToken(
+ "MaximumRetransmissionCount",
RMPolicyToken.SIMPLE_TOKEN,
+ new String[] {});
public static final RMPolicyToken exponentialBackoff = new
RMPolicyToken(
"ExponentialBackoff", RMPolicyToken.SIMPLE_TOKEN, new
String[] {});
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java?rev=386575&r1=386574&r2=386575&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyBean.java
Fri Mar 17 01:02:21 2006
@@ -30,6 +30,7 @@
private long acknowledgementInterval;
private long retransmissionInterval;
private boolean exponentialBackoff;
+ private int maximumRetransmissionCount;
public RMPolicyBean () {
loadValuesFromPropertyFile ();
@@ -70,6 +71,14 @@
public void setAcknowledgementInterval(long acknowledgementInterval) {
this.acknowledgementInterval = acknowledgementInterval;
}
+
+ public int getMaximumRetransmissionCount() {
+ return maximumRetransmissionCount;
+ }
+
+ public void setMaximumRetransmissionCount(int
maximumRetransmissionCount) {
+ this.maximumRetransmissionCount = maximumRetransmissionCount;
+ }
}
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyProcessor.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyProcessor.java?rev=386575&r1=386574&r2=386575&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyProcessor.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicyProcessor.java
Fri Mar 17 01:02:21 2006
@@ -11,6 +11,7 @@
import
org.apache.sandesha2.policy.processors.InactivityTimeoutMeasureProcessor;
import org.apache.sandesha2.policy.processors.InactivityTimeoutProcessor;
import org.apache.sandesha2.policy.processors.InvokeInOrderProcessor;
+import
org.apache.sandesha2.policy.processors.MaximumRetransmissionCountProcessor;
import org.apache.sandesha2.policy.processors.MessageTypesToDropProcessor;
import org.apache.sandesha2.policy.processors.RetransmissionItervalProcessor;
import org.apache.sandesha2.policy.processors.StorageManagersProcessor;
@@ -52,6 +53,11 @@
rpt.setProcessTokenMethod(aip);
topLevel.setChildToken(rpt);
+ MaximumRetransmissionCountProcessor mrip = new
MaximumRetransmissionCountProcessor();
+ rpt = RMPolicy.maximumRetransmissionCount.copy();
+ rpt.setProcessTokenMethod(mrip);
+ topLevel.setChildToken(rpt);
+
ExponentialBackoffProcessor ebp = new
ExponentialBackoffProcessor();
rpt = RMPolicy.exponentialBackoff.copy();
rpt.setProcessTokenMethod(ebp);
Added:
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/MaximumRetransmissionCountProcessor.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/MaximumRetransmissionCountProcessor.java?rev=386575&view=auto
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/MaximumRetransmissionCountProcessor.java
(added)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/MaximumRetransmissionCountProcessor.java
Fri Mar 17 01:02:21 2006
@@ -0,0 +1,57 @@
+package org.apache.sandesha2.policy.processors;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.sandesha2.policy.PolicyEngineData;
+import org.apache.sandesha2.policy.RMPolicyToken;
+import org.apache.sandesha2.policy.RMProcessorContext;
+
+public class MaximumRetransmissionCountProcessor {
+
+ private boolean initializedMaximumRetransmissionCount = false;
+
+ private Log logger = LogFactory.getLog(this.getClass().getName());
+
+ public void initializeMaximumRetransmissionCount(RMPolicyToken rmpt)
+ throws NoSuchMethodException {
+
logger.debug("MaximumRetransmissionCountProcessor:initializeAcknowledgementInterval");
+ }
+
+ public Object doMaximumRetransmissionCount(RMProcessorContext rmpc) {
+ logger.debug("Processing "
+ +
rmpc.readCurrentSecurityToken().getTokenName() + ": "
+ +
RMProcessorContext.ACTION_NAMES[rmpc.getAction()]);
+
+ RMPolicyToken rmpt = rmpc.readCurrentSecurityToken();
+
+ switch (rmpc.getAction()) {
+
+ case RMProcessorContext.START:
+ if (!initializedMaximumRetransmissionCount) {
+ try {
+
initializeMaximumRetransmissionCount(rmpt);
+ initializedMaximumRetransmissionCount =
true;
+ } catch (NoSuchMethodException e) {
+
logger.error("MaximumRetransmissionCountProcessor:doAcknowledgementInterval",
e);
+ return new Boolean(false);
+ }
+ }
+ logger.debug(rmpt.getTokenName());
+
+ case RMProcessorContext.COMMIT:
+
+ // //////////
+
+ PolicyEngineData engineData =
rmpc.readCurrentPolicyEngineData();
+ String txt = rmpc.getAssertion().getStrValue();
+
engineData.setMaximumRetransmissionCount(Integer.parseInt(txt.trim()));
+
+ // /////////////////////////////////
+
+ break;
+ case RMProcessorContext.ABORT:
+ break;
+ }
+ return new Boolean(true);
+ }
+}
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java?rev=386575&r1=386574&r2=386575&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
Fri Mar 17 01:02:21 2006
@@ -52,21 +52,12 @@
SandeshaPropertyBean propertyBean =
SandeshaUtil.getPropretyBean(messageContext);
-
- //TODO make MaxRetransmissionCount a policy
-// int maxRetransmissionCount =
Sandesha2Constants.Properties.DefaultValues.RetransmissionCount;
-// if (retransmitterBean.getSentCount()>maxRetransmissionCount) {
-// log.debug("Stopping retransmission since maximum
retransmission was exceeded");
-// retransmitterBean.setSend(false);
-//
-// //TODO do reporting and cleaning since this sequence
will not work correctly after this.
-// }
-
retransmitterBean.setSentCount(retransmitterBean.getSentCount()
+ 1);
adjustNextRetransmissionTime(retransmitterBean, propertyBean);
-// if (retransmitterBean.getSentCount() >=
Sandesha2Constants.MAXIMUM_RETRANSMISSION_ATTEMPTS)
-// stopRetransmission(retransmitterBean);
+ int maxRetransmissionAttempts =
propertyBean.getMaximumRetransmissionCount();
+ if (maxRetransmissionAttempts>=0 &&
retransmitterBean.getSentCount() > maxRetransmissionAttempts)
+ stopRetransmission(retransmitterBean);
return retransmitterBean;
}
@@ -106,7 +97,7 @@
}
private void stopRetransmission(SenderBean bean) {
- bean.setReSend(false);
+ bean.setSend(false);
}
private long generateNextExponentialBackedoffDifference(int count,
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java?rev=386575&r1=386574&r2=386575&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java
Fri Mar 17 01:02:21 2006
@@ -203,6 +203,7 @@
// CHECKME
propertyBean.setStorageManagerClass(data.getStorageManager());
+
propertyBean.setMaximumRetransmissionCount(data.getMaximumRetransmissionCount());
}
public void loadPropertiesFromAxisDescription(AxisDescription desc)
Modified:
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java
URL:
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java?rev=386575&r1=386574&r2=386575&view=diff
==============================================================================
---
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java
(original)
+++
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaPropertyBean.java
Fri Mar 17 01:02:21 2006
@@ -121,5 +121,13 @@
}
}
+ public int getMaximumRetransmissionCount() {
+ return policyBean.getMaximumRetransmissionCount();
+ }
+
+ public void setMaximumRetransmissionCount(int
maximumRetransmissionCount) {
+
policyBean.setMaximumRetransmissionCount(maximumRetransmissionCount);
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]