package com.dgrid.plugins; import java.sql.Connection; import java.sql.DriverManager; import com.dgrid.errors.TransportException; import com.dgrid.gen.InvalidApiKey; import com.dgrid.plugin.BaseDGridPlugin; import com.dgrid.service.DGridClient; import com.dgrid.service.DGridPluginContext; public class DataSourcePlugin extends BaseDGridPlugin { private String jdbcDriverClass; private String jdbcUrl; private String jdbcUsername; private String jdbcPassword; public String getDescription() { return "Provides for data sources"; } public boolean enabledByDefault() { return false; } public void start() { log.trace("start()"); try { DGridClient gridClient = ((DGridPluginContext) super.context) .getGridClient(); jdbcDriverClass = gridClient.getSetting("dataSource.driverClass", "com.mysql.jdbc.Driver"); jdbcUrl = gridClient.getSetting("dataSource.url", "jdbc:mysql://192.168.1.116/e20"); jdbcUsername = gridClient.getSetting("dataSource.username", "e20"); jdbcPassword = gridClient.getSetting("dataSource.password", "phpsux"); } catch (TransportException e) { log .warn( "TransportException in start(). DataSourcePlugin will be disabled", e); throw (new RuntimeException(e)); } catch (InvalidApiKey e) { log .warn( "TransportException in start(). DataSourcePlugin will be disabled", e); throw (new RuntimeException(e)); } finally { } } public void stop() { log.trace("stop()"); } public Connection getConnection() throws Exception { return getConnection(jdbcDriverClass, this.jdbcUrl, this.jdbcUsername, this.jdbcPassword); } public Connection getNamedConnection(String name) throws Exception { DGridClient gridClient = ((DGridPluginContext) super.context) .getGridClient(); String driverClass = gridClient.getSetting("dataSource." + name + ".driverClass", "com.mysql.jdbc.Driver"); String url = gridClient.getSetting("dataSource." + name + ".url", "jdbc:mysql://192.168.1.116/e20"); String username = gridClient.getSetting("dataSource." + name + ".username", "e20"); String password = gridClient.getSetting("dataSource." + name + ".password", "phpsux"); return getConnection(driverClass, url, username, password); } public Connection getConnection(String driverClass, String url, String username, String password) throws Exception { Class.forName(driverClass); Connection conn = DriverManager.getConnection(url, username, password); return conn; } public void closeConnection(Connection conn) { try { conn.close(); } catch (Exception e) { log.warn("Exception calling close() on jdbc connection", e); } } }