[jboss-svn-commits] JBL Code SVN: r8592 - in labs/jbossesb/trunk/product: core/listeners/src/org/jboss/soa/esb/listeners/gateway samples/quickstarts/helloworld_sql_action

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Dec 24 18:35:10 EST 2006


Author: estebanschifman
Date: 2006-12-24 18:35:04 -0500 (Sun, 24 Dec 2006)
New Revision: 8592

Added:
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_sql_action/create.sql
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_sql_action/populate.sql
Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
Log:
Adapt SqlTableGatewayListener to new configuration

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-12-24 23:33:44 UTC (rev 8591)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2006-12-24 23:35:04 UTC (rev 8592)
@@ -27,6 +27,7 @@
 import java.lang.reflect.Method;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -50,7 +51,6 @@
 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;
@@ -131,20 +131,21 @@
 	        			continue;
 	        		}
 	        		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);
-	        			
-	        		}
+	        		
+//	        		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);
+//	        			
+//	        		}
 	        		boolean bSent = false;
 	        		for (EPR current : _targetEprs)
 	        		{
 	        			_courier = CourierFactory.getCourier(current);
-	        			if (_courier.deliver((org.jboss.soa.esb.message.Message)obj))
+	        			if (_courier.deliver(message))
 	        			{
 	        				bSent = true;
 	        				break;
@@ -240,16 +241,23 @@
         _user	= _controller.obtainAtt(_config, JDBCEpr.USERNAME_TAG	, null);
         _password = _controller.obtainAtt(_config, JDBCEpr.PASSWORD_TAG	, "");
 
-        _tableName = _controller.obtainAtt(_config, ListenerTagNames.SQL_TABLE_NAME_TAG,null);
+        _tableName = _config.getAttribute(ListenerTagNames.SQL_TABLE_NAME_TAG);
+        if (null==_tableName)
+        	_tableName = _config.getAttribute(JDBCEpr.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);
+        
+    	_selectFields = _controller.obtainAtt(_config, ListenerTagNames.SQL_SELECT_FIELDS_TAG,"*");
         if (Util.isNullString(_selectFields))
         	throw new ConfigurationException("Empty or invalid list of select fields");
-    	_keyFields = _controller.obtainAtt(_config, ListenerTagNames.SQL_KEY_FIELDS_TAG,null);
+    	_keyFields = _config.getAttribute(ListenerTagNames.SQL_KEY_FIELDS_TAG);
+    	if (null==_keyFields)
+    		_keyFields = _config.getAttribute(JDBCEpr.MESSAGE_ID_COLUMN_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);
+    	_inProcessField = _config.getAttribute(ListenerTagNames.SQL_IN_PROCESS_FIELD_TAG);
+    	if (null==_inProcessField)
+    		_inProcessField=_config.getAttribute(JDBCEpr.STATUS_COLUMN_TAG);
         if (Util.isNullString(_inProcessField))
         	throw new ConfigurationException("A valid inProcessField attribute must be specified");
 	  
@@ -275,22 +283,25 @@
     	if (_columns.length < 1)
 			throw new Exception("Empty list of select fields");
     	
-    	Set<String>colSet = new HashSet<String>(Arrays.asList(_columns));
     	_keys	 = _keyFields.split(",");
-    	if (_keys.length < 1)
-			throw new Exception("Empty list of keyFields");
-    	for(String currKey : _keys)
+    	if (! "*".equals(_selectFields))
     	{
-    		if (colSet.contains(currKey))
-    			continue;
-    		else
-    		{	StringBuilder sb = new StringBuilder()
-    				.append("All key field names in the <").append(ListenerTagNames.SQL_KEY_FIELDS_TAG)
-    				.append("> attribute must be in the ").append(ListenerTagNames.SQL_SELECT_FIELDS_TAG)
-    				.append("list - '").append(currKey).append("' is not there");
-    				;
-    			throw new ConfigurationException(sb.toString());
-    		}
+	    	Set<String>colSet = new HashSet<String>(Arrays.asList(_columns));
+	    	if (_keys.length < 1)
+				throw new Exception("Empty list of keyFields");
+	    	for(String currKey : _keys)
+	    	{
+	    		if (colSet.contains(currKey))
+	    			continue;
+	    		else
+	    		{	StringBuilder sb = new StringBuilder()
+	    				.append("All key field names in the <").append(ListenerTagNames.SQL_KEY_FIELDS_TAG)
+	    				.append("> attribute must be in the ").append(ListenerTagNames.SQL_SELECT_FIELDS_TAG)
+	    				.append("list - '").append(currKey).append("' is not there");
+	    				;
+	    			throw new ConfigurationException(sb.toString());
+	    		}
+	    	}
     	}
     	prepareStatements();
     } //________________________________
@@ -349,14 +360,17 @@
 
 			PreparedStatement PS = oConn.prepareStatement(sScan);
 			ResultSet RS = oConn.execQueryWait(PS,1);
+			ResultSetMetaData meta = RS.getMetaData();
 			while (RS.next()) 
 			{	
                 Map<String,Object> row = new HashMap<String,Object>();
-				int iCurr = 0;
+				for (int iCurr = 1; iCurr<=meta.getColumnCount(); iCurr++)
+				{
+					String sCol = meta.getColumnName(iCurr);
+					if (!_inProcessField.equals(sCol))
+						row.put(sCol,RS.getObject(iCurr));
+				}
 
-                for (String sColName : _columns)
-                    row.put(sColName,RS.getObject(++iCurr));
-
 				oResults.add(row);
 			}
 		}
@@ -364,7 +378,7 @@
 		{
 			_logger.warn("Some triggers might not have been returned",e);
 		}
-        _logger.info("Returning " + oResults.size() + " rows.");
+        _logger.debug("Returning " + oResults.size() + " rows.\n");
 		return oResults;
 	} //________________________________
 

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_sql_action/create.sql
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_sql_action/create.sql	2006-12-24 23:33:44 UTC (rev 8591)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_sql_action/create.sql	2006-12-24 23:35:04 UTC (rev 8592)
@@ -0,0 +1,10 @@
+-- drop database test_sql_gateway;
+create database test_sql_gateway;
+use test_sql_gateway;
+create table gateway_table
+(
+unique_id serial
+,data_column text
+,status_col text
+);
+create unique index  uid_index  on gateway_table (unique_id);

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_sql_action/populate.sql
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_sql_action/populate.sql	2006-12-24 23:33:44 UTC (rev 8591)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_sql_action/populate.sql	2006-12-24 23:35:04 UTC (rev 8592)
@@ -0,0 +1,6 @@
+use test_sql_gateway;
+insert into gateway_table values(0,'data 111111','p');
+insert into gateway_table values(0,'data 22','p');
+insert into gateway_table values(0,'data 333333333333111111','p');
+insert into gateway_table values(0,'data d d d d','p');
+insert into gateway_table values(0,'data last record','p');




More information about the jboss-svn-commits mailing list