[jboss-svn-commits] JBL Code SVN: r8779 - in labs/jbossesb/trunk/product/core: listeners/tests/src/org/jboss/soa/esb/listeners and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jan 9 14:14:09 EST 2007


Author: estebanschifman
Date: 2007-01-09 14:13:58 -0500 (Tue, 09 Jan 2007)
New Revision: 8779

Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
   labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFtp.xml
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java
Log:
Fixes to use pollLatencySeconds attribute in FileCourier and SqlTableCourier

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java	2007-01-09 18:58:39 UTC (rev 8778)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java	2007-01-09 19:13:58 UTC (rev 8779)
@@ -22,6 +22,8 @@
 
 package org.jboss.soa.esb.listeners.message;
 
+import java.lang.reflect.Method;
+
 import org.jboss.internal.soa.esb.couriers.PickUpOnlyCourier;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.couriers.CourierException;
@@ -94,8 +96,6 @@
         try   
         {
         	registerProcess();
-        	_pickUpCourier = CourierFactory.getPickupCourier(_epr);
-        	return true;
         }
 		catch (Exception re) 
 		{ 
@@ -104,7 +104,50 @@
 			catch (Exception iE) {/*  OK  do nothing */}
 			return false;
 		}
-		
+		try
+		{
+			Method setPollLatency = null;
+        	_pickUpCourier = CourierFactory.getPickupCourier(_epr);
+        	try
+        	{
+        		setPollLatency = _pickUpCourier.getClass()
+        			.getMethod("setPollLatency", new Class[] {Long.class} );
+        	}
+        	catch (NoSuchMethodException e)
+        	{
+        		// OK, just leave it null
+        	}
+
+        	if (null!=setPollLatency)
+        	{
+	    		String latency = _config.getAttribute(ListenerTagNames.POLL_LATENCY_SECS_TAG);
+	        	long lSeconds = 10;
+	        	if (null!=latency)
+	        	try
+	        	{
+	        		lSeconds = Integer.parseInt(latency);
+	        	}
+	        	catch (NumberFormatException e) 
+	        	{
+	        		_logger.warn("Invalid number format <"+latency+"> using default value ("+lSeconds+")");
+	        	}
+	        	try
+	        	{
+	        		setPollLatency.invoke(_pickUpCourier, new Long(1000*lSeconds));
+	        	}
+	        	catch (Exception e) 
+	        	{
+	        		_logger.warn("Problems invoking setPollLatency(long)",e);
+	        		return false;
+	        	}
+        	}
+        	return true;
+		}
+		catch (CourierException e)
+		{
+			_logger.fatal("No appropriate courier can be obtained for " + _epr.toString(),e);
+			return false;
+		}
 	} //________________________________
 
 	@Override

Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFtp.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFtp.xml	2007-01-09 18:58:39 UTC (rev 8778)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/listenerFtp.xml	2007-01-09 19:13:58 UTC (rev 8779)
@@ -5,6 +5,7 @@
 	service-description="My Dummy Service Name FILE"
   	listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener"
 	maxThreads="10"
+	pollLatencySeconds="1"
 	>
 		<EPR
 			URL="ftp://ftpuser:ftppassword@localhost:/"

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java	2007-01-09 18:58:39 UTC (rev 8778)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/FileCourier.java	2007-01-09 19:13:58 UTC (rev 8779)
@@ -301,9 +301,10 @@
 			}
 			try
 			{
-				// TODO magic number!!
-				
-				Thread.sleep(200);
+				long lSleep = limit - System.currentTimeMillis();
+				if (_pollLatency < lSleep)
+					lSleep = _pollLatency;
+				Thread.sleep(lSleep);
 			}
 			catch (InterruptedException e)
 			{
@@ -473,6 +474,16 @@
 
 		return new File(dir, input.getName() + sfx);
 	} // ________________________________
+	
+	public void setPollLatency(Long millis)
+	{
+		if (millis <= 900)
+			_logger.warn("Poll latency must be >= 900 milliseconds - Keeping old value of "+_pollLatency);
+		else
+			_pollLatency = millis;
+	} // ________________________________
+	
+	protected long _pollLatency = 900;
 
 	protected static final String DEFAULT_TMP = System
 			.getProperty("java.io.tmpdir");

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java	2007-01-09 18:58:39 UTC (rev 8778)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java	2007-01-09 19:13:58 UTC (rev 8779)
@@ -197,7 +197,10 @@
 				}
 				try
 				{
-					Thread.sleep(200);
+					long lSleep = limit - System.currentTimeMillis();
+					if (_pollLatency < lSleep)
+						lSleep = _pollLatency;
+					Thread.sleep(lSleep);
 				}
 				catch (InterruptedException e)
 				{
@@ -509,6 +512,16 @@
 		}
 	};
 
+	public void setPollLatency(Long millis)
+	{
+		if (millis <= 200)
+			_logger.warn("Poll latency must be >= 200 milliseconds - Keeping old value of "+_pollLatency);
+		else
+			_pollLatency = millis;
+	} // ________________________________
+	
+	protected long _pollLatency = 200;
+
 	protected long _sleepForRetries = 3000; // milliseconds
 
 	protected boolean _postDelete, _errorDelete;




More information about the jboss-svn-commits mailing list