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