[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