[jboss-svn-commits] JBL Code SVN: r17663 - labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jan 10 01:06:10 EST 2008


Author: tcunning
Date: 2008-01-10 01:06:09 -0500 (Thu, 10 Jan 2008)
New Revision: 17663

Modified:
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
Log:
bug:JBESB-1441
Insert timestamp on change.


Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2008-01-09 20:53:35 UTC (rev 17662)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2008-01-10 06:06:09 UTC (rev 17663)
@@ -33,6 +33,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -351,7 +352,11 @@
         if (Util.isNullString(_inProcessField))
             throw new ConfigurationException(
                     "A valid inProcessField attribute must be specified");
-
+        _timestamp = ListenerUtil.getValue(_config,
+        		JDBCEpr.TIMESTAMP_COLUMN_TAG, "");
+        if (_timestamp.trim().length() < 1) 
+            _logger.debug("No value specified for: "
+                    + ListenerTagNames.SQL_TIMESTAMP_TAG);
         _where = ListenerUtil.getValue(_config,
                 ListenerTagNames.SQL_WHERE_CONDITION_TAG, "");
         if (_where.trim().length() < 1)
@@ -587,8 +592,11 @@
      */
     protected String updateStatement() {
         StringBuilder sb = new StringBuilder().append("update ").append(
-                _tableName).append(" set ").append(_inProcessField).append(
-                " = ? where ").append(_inProcessField).append(" = ?");
+                _tableName).append(" set ").append(_inProcessField).append(" = ? ");
+        if (_timestamp.trim().length() < 1) {
+        	sb.append(", " + _timestamp + " = ? ");
+        }
+        sb.append("where ").append(_inProcessField).append(" = ?");
         for (String sCurr : _keys) {
             sb.append(" and ").append(sCurr).append(" = ?");
         }
@@ -713,6 +721,9 @@
 
         try {
             int iParm = 3;
+            if (_timestamp.trim().length() < 1) {
+            	iParm++;
+            }
             
             List<String> tempKeys = new ArrayList<String>();
             for (String key : _currentRow.keySet()) {
@@ -741,8 +752,13 @@
             }
 
             try {
-                _PSupdate.setString(1, getStatus(toState));
-                _PSupdate.setString(2, getStatus(fromState));
+            	int counter = 1;
+                _PSupdate.setString(counter++, getStatus(toState));
+                if (_timestamp.trim().length() < 1) {
+                	Date now = new Date();
+                	_PSupdate.setString(counter++, now.toString());
+                }
+                _PSupdate.setString(counter++, getStatus(fromState));
                 final int count = getDbConn().execUpdWait(_PSupdate, 5);
                 if (count == 1) {
                     getDbConn().commit();
@@ -846,7 +862,7 @@
 
     protected String _driver, _url, _user, _password, _datasource;
 
-    protected String _tableName, _selectFields, _keyFields;
+    protected String _tableName, _selectFields, _keyFields, _timestamp;
 
     protected String _where, _orderBy;
 




More information about the jboss-svn-commits mailing list