X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2FExternalDbProducerNode.java;h=301ed801d85375f37a3b03dee84a714fefd373f5;hb=b1e3d8e04d556e10831192d6dfed20e5cd871fd4;hp=5c621d89b54551095a42ce68f4b13dda95baceb3;hpb=e44404fac09c8da04b5ef7874160cb91f8fc98a9;p=mir.git diff --git a/source/mir/producer/ExternalDbProducerNode.java b/source/mir/producer/ExternalDbProducerNode.java index 5c621d89..301ed801 100755 --- a/source/mir/producer/ExternalDbProducerNode.java +++ b/source/mir/producer/ExternalDbProducerNode.java @@ -29,19 +29,13 @@ */ package mir.producer; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.Statement; +import mir.util.ExceptionRoutines; +import mir.util.ParameterExpander; + +import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; -import java.util.Map; - -import mir.log.LoggerWrapper; -import mir.util.ExceptionFunctions; -import mir.util.ParameterExpander; public class ExternalDbProducerNode extends ProducerNodeDecorator { private String key; @@ -51,11 +45,11 @@ public class ExternalDbProducerNode extends ProducerNodeDecorator { private String database; private String username; private String password; - private String query; - + private String query; - public ExternalDbProducerNode(String aKey, String aDriver, String aHost, String aPort, String aDatabase, String aUsername, String aPassword,String aQuery,ProducerNode aSubNode) { + public ExternalDbProducerNode(String aKey, String aDriver, String aHost, String aPort, String aDatabase, String aUsername, String aPassword, String aQuery, ProducerNode aSubNode) { super(aSubNode); + key = aKey; driver = aDriver; host = aHost; @@ -63,61 +57,58 @@ public class ExternalDbProducerNode extends ProducerNodeDecorator { database = aDatabase; username = aUsername; password = aPassword; - query =aQuery; - + query = aQuery; } - public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure { + public void produce(ProductionContext aProductionContext) throws ProducerFailure { try { - String expandedKey = ParameterExpander.expandExpression( aValueMap, key ); - String expandedDriver = ParameterExpander.expandExpression( aValueMap, driver); - String expandedHost = ParameterExpander.expandExpression( aValueMap, host); - String expandedPort = ParameterExpander.expandExpression( aValueMap, port); - String expandedDatabase = ParameterExpander.expandExpression( aValueMap, database); - String expandedUsername = ParameterExpander.expandExpression( aValueMap, username); - String expandedPassword = ParameterExpander.expandExpression( aValueMap, password); - String expandedQuery = ParameterExpander.expandExpression( aValueMap, query); + String expandedKey = ParameterExpander.expandExpression(aProductionContext.getValueSet(), key); + String expandedDriver = ParameterExpander.expandExpression(aProductionContext.getValueSet(), driver); + String expandedHost = ParameterExpander.expandExpression(aProductionContext.getValueSet(), host); + String expandedPort = ParameterExpander.expandExpression(aProductionContext.getValueSet(), port); + String expandedDatabase = ParameterExpander.expandExpression(aProductionContext.getValueSet(), database); + String expandedUsername = ParameterExpander.expandExpression(aProductionContext.getValueSet(), username); + String expandedPassword = ParameterExpander.expandExpression(aProductionContext.getValueSet(), password); + String expandedQuery = ParameterExpander.expandExpression(aProductionContext.getValueSet(), query); - if (expandedDriver.equals("postgresql")){ - Class.forName("org.postgresql.Driver"); - } - if (expandedDriver.equals("mysql")){ - Class.forName("com.mysql.jdbc.Driver"); + if (expandedDriver.equals("postgresql")) { + Class.forName("org.postgresql.Driver"); } - else { - throw new Exception("Unsupported DB Driver:"+expandedDriver); + if (expandedDriver.equals("mysql")) { + Class.forName("com.mysql.jdbc.Driver"); + } else { + throw new Exception("Unsupported DB Driver:" + expandedDriver); } - - Connection db = DriverManager.getConnection("jdbc:"+expandedDriver+"://"+expandedHost - +":"+expandedPort+"/"+expandedDatabase - , expandedUsername, expandedPassword); - + + Connection db = DriverManager.getConnection("jdbc:" + expandedDriver + "://" + expandedHost + + ":" + expandedPort + "/" + expandedDatabase + , expandedUsername, expandedPassword); + Statement st = db.createStatement(); ResultSet rs = st.executeQuery(expandedQuery); ResultSetMetaData rsmd = rs.getMetaData(); - int numberOfColumns= rsmd.getColumnCount(); - ArrayList fieldNames = new ArrayList(numberOfColumns); - for (int i=0;i