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 ch...@apache.org on 2006/03/17 10:02:23 UTC
svn commit: r386575 - in
/webservices/sandesha/trunk/src/org/apache/sandesha2: policy/
policy/processors/ util/
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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org