[jboss-svn-commits] JBL Code SVN: r7532 - labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Nov 10 08:59:14 EST 2006


Author: estebanschifman
Date: 2006-11-10 08:59:12 -0500 (Fri, 10 Nov 2006)
New Revision: 7532

Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
Log:
Minor changes in sleep cycle for pollers in run() method

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java	2006-11-09 21:25:58 UTC (rev 7531)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java	2006-11-10 13:59:12 UTC (rev 7532)
@@ -72,12 +72,21 @@
 		boolean bSleep = false;
 		while (_controller.continueLooping()) 
         {
-			//  only sleep in between
+			//  only sleep in between - not the first time
 			if (bSleep)
-				try { Thread.sleep(_sleepBetweenPolls); }
-				catch (InterruptedException e) { break; }
+			{	long lUntil = System.currentTimeMillis()+_sleepBetweenPolls;
+				while (System.currentTimeMillis() < lUntil)
+				{
+					try { Thread.sleep(1000); }
+					catch (InterruptedException e) { lUntil = 0; }
+					if (! _controller.continueLooping())
+						break;
+				}
+			}
 			else
 				bSleep = true;
+			if (! _controller.continueLooping())
+				break;
 
 			for (File fileIn : _inputDirectory.listFiles(_fileFilter))
             {

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2006-11-09 21:25:58 UTC (rev 7531)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2006-11-10 13:59:12 UTC (rev 7532)
@@ -49,6 +49,7 @@
 import org.jboss.soa.esb.helpers.persist.SimpleDataSource;
 import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.Properties;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.services.registry.RegistryException;
 import org.jboss.soa.esb.util.Util;
@@ -95,10 +96,19 @@
         {
 			//  only sleep in between - not the first time
 			if (bSleep)
-				try { Thread.sleep(_sleepBetweenPolls); }
-				catch (InterruptedException e) { break; }
+			{	long lUntil = System.currentTimeMillis()+_sleepBetweenPolls;
+				while (System.currentTimeMillis() < lUntil)
+				{
+					try { Thread.sleep(1000); }
+					catch (InterruptedException e) { lUntil = 0; }
+					if (! _controller.continueLooping())
+						break;
+				}
+			}
 			else
 				bSleep = true;
+			if (! _controller.continueLooping())
+				break;
 
 			for (Map<String,Object> row : pollForCandidates())
             {
@@ -117,30 +127,40 @@
 	        			_logger.warn("Action class method <"+_processMethod.getName()+"> returned a null object");
 	        			continue;
 	        		}
-	        		_courier.deliver((org.jboss.soa.esb.message.Message)obj);
+	        		Message message = (Message)obj;
+	        		if(_composerClass.equals(PackageRowContents.class))
+	        		{
+	        			Properties props = message.getProperties(); 
+	            		props.setProperty(JDBCEpr.DRIVER_TAG	,_driver);
+	            		props.setProperty(JDBCEpr.URL_TAG		,_url);
+	            		props.setProperty(JDBCEpr.USERNAME_TAG	,_user);
+	            		props.setProperty(JDBCEpr.PASSWORD_TAG	, _password);
+	        			
+	        		}
+	        		_courier.deliver(message);
 	            }
 
-		            catch (InvocationTargetException e)	
-		            {
-		            	thrown = e;
-		            	text = "Problems invoking method <"+_processMethod.getName()+">";
-		            	
-		            }
-		            catch (IllegalAccessException e)	
-		            {	
-		            	thrown = e;
-		            	text = "Problems invoking method <"+_processMethod.getName()+">";
-		            }
-	        		catch (ClassCastException e)
-	        		{
-	        			thrown = e;
-	        			text = "Action class method <"+_processMethod.getName()+"> returned a non Message object";
-	        		}
-	        		catch (CourierException e)
-	        		{
-	        			thrown = e;
-	        			text = "Courier <"+_courier.getClass().getName()+".deliver(Message) FAILED";
-	        		}
+	            catch (InvocationTargetException e)	
+	            {
+	            	thrown = e;
+	            	text = "Problems invoking method <"+_processMethod.getName()+">";
+	            	
+	            }
+	            catch (IllegalAccessException e)	
+	            {	
+	            	thrown = e;
+	            	text = "Problems invoking method <"+_processMethod.getName()+">";
+	            }
+        		catch (ClassCastException e)
+        		{
+        			thrown = e;
+        			text = "Action class method <"+_processMethod.getName()+"> returned a non Message object";
+        		}
+        		catch (CourierException e)
+        		{
+        			thrown = e;
+        			text = "Courier <"+_courier.getClass().getName()+".deliver(Message) FAILED";
+        		}
         		
         		if (null==thrown)
         		{
@@ -198,13 +218,24 @@
         _password = _controller.obtainAtt(_config, JDBCEpr.PASSWORD_TAG	, "");
 
         _tableName = _controller.obtainAtt(_config, ListenerTagNames.SQL_TABLE_NAME_TAG,null);
+        if (Util.isNullString(_tableName))
+        	throw new ConfigurationException("Empty or invalid table name");
     	_selectFields = _controller.obtainAtt(_config, ListenerTagNames.SQL_SELECT_FIELDS_TAG,null);
+        if (Util.isNullString(_selectFields))
+        	throw new ConfigurationException("Empty or invalid list of select fields");
     	_keyFields = _controller.obtainAtt(_config, ListenerTagNames.SQL_KEY_FIELDS_TAG,null);
+        if (Util.isNullString(_keyFields))
+        	throw new ConfigurationException("Empty or invalid list of key fields");
     	_inProcessField = _controller.obtainAtt(_config, ListenerTagNames.SQL_IN_PROCESS_FIELD_TAG,null);
+        if (Util.isNullString(_inProcessField))
+        	throw new ConfigurationException("A valid inProcessField attribute must be specified");
 	  
     	_where	 = _controller.obtainAtt(_config, ListenerTagNames.SQL_WHERE_CONDITION_TAG,"");
     	_orderBy = _controller.obtainAtt(_config, ListenerTagNames.SQL_ORDER_BY_TAG,"");
     	_inProcessVals = _controller.obtainAtt(_config, ListenerTagNames.SQL_IN_PROCESS_VALUES_TAG,DEFAULT_IN_PROCESS_STATES);
+    	
+    	_deleteAfterOK = Boolean.parseBoolean
+    		(_controller.obtainAtt(_config,ListenerTagNames.SQL_POST_DEL_TAG,"false"));
 
     	if (_inProcessVals.length()<4)
 		  throw new Exception("Parameter <"+ListenerTagNames.SQL_IN_PROCESS_VALUES_TAG
@@ -420,9 +451,7 @@
 	 */
     protected boolean deleteCurrentRow() 
     {
-        JdbcCleanConn dbConnection = null;
-        
-        try { dbConnection = getDbConn(); } 
+        try { getDbConn().rollback(); } 
         catch (Exception e) 
         {
             _logger.error("Unable to get DB connection.", e);
@@ -437,8 +466,8 @@
 
             try 
             {
-                dbConnection.execUpdWait(_PSdeleteRow, 5);
-                dbConnection.commit();
+            	getDbConn().execUpdWait(_PSdeleteRow, 5);
+            	getDbConn().commit();
                 return true;
             } 
             catch(Exception e) 
@@ -446,7 +475,7 @@
                 _logger.error("Delete row has failed.  Rolling back!!", e);
             }
             
-            try { dbConnection.rollback(); }
+            try { getDbConn().rollback(); }
             catch (Exception e) 
             {
                 _logger.error("Unable to rollback delete row", e);
@@ -479,9 +508,7 @@
 
     protected boolean changeStatus(ROW_STATE fromState, ROW_STATE toState) 
     {
-        JdbcCleanConn dbConnection = null;
-        
-        try { dbConnection = getDbConn(); } 
+        try { getDbConn(); } 
         catch (Exception e) 
         {
             _logger.error("Unable to get DB connection.", e);
@@ -501,7 +528,7 @@
 
             try 
             {
-                ResultSet resultSet = dbConnection.execQueryWait(_PSsel4U, 5);
+                ResultSet resultSet = getDbConn().execQueryWait(_PSsel4U, 5);
                 
                 if (resultSet.next()) 
                 {
@@ -510,8 +537,8 @@
                     if (sOldStatus.equalsIgnoreCase(getStatus(fromState))) 
                     {
                         _PSupdate.setString(1, getStatus(toState));
-                        dbConnection.execUpdWait(_PSupdate, 5);
-                        dbConnection.commit();
+                        getDbConn().execUpdWait(_PSupdate, 5);
+                        getDbConn().commit();
 
                         if(_logger.isDebugEnabled()) 
                             _logger.debug("Successfully changed row state from " + fromState + " to " + toState + ".");
@@ -531,7 +558,7 @@
                 _logger.error("Row status change to " + toState + " has failed.  Rolling back!!", e);
             }
             
-            try { dbConnection.rollback(); }
+            try { getDbConn().rollback(); }
             catch (Exception e) 
             {
                 _logger.error("Unable to rollback row status change to " + fromState.name(), e);
@@ -549,7 +576,7 @@
  * @since Version 4.0
  *
  */
-    private class PackageRowContents
+    public static class PackageRowContents
     {
     	public Message process (Object obj) throws Exception
     	{
@@ -560,10 +587,6 @@
     		org.jboss.soa.esb.message.Properties props = message.getProperties();
 
     		props.setProperty(ListenerTagNames.SQL_ROW_DATA_TAG, obj);
-    		props.setProperty(JDBCEpr.DRIVER_TAG	,_driver);
-    		props.setProperty(JDBCEpr.URL_TAG		,_url);
-    		props.setProperty(JDBCEpr.USERNAME_TAG	,_user);
-    		props.setProperty(JDBCEpr.PASSWORD_TAG	, _password);
     		
     		return message;
     	}    	




More information about the jboss-svn-commits mailing list