hsarback/src/de/hsadmin/core/qserv/JDBCProcessor.java
@@ -15,50 +15,48 @@ private static final long serialVersionUID = 1L; private String driver; private String url; private String user; private String password; private List<String> sql; final private String driver; final private String url; final private String user; final private String password; final private List<String> sql; private String errorMsg; public JDBCProcessor(String driver, String url, String user, String password) { public JDBCProcessor(final String driver, final String url, final String user, final String password) { this.driver = driver; this.url = url; this.user = user; this.password = password; this.errorMsg = ""; this.sql = new ArrayList<String>(); } public JDBCProcessor(String driver, String url) { public JDBCProcessor(final String driver, final String url) throws ProcessorException { this.driver = driver; this.url = url; final Config config = Config.getInstance(); if ("com.mysql.jdbc.Driver".equals(driver)) { user = config.getProperty("mysqladmin.user", "root"); password = config.getProperty("mysqladmin.password"); } else { if ("org.postgresql.Driver".equals(driver)) { user = config.getProperty("pgsqladmin.user", "postgres"); password = config.getProperty("pgsqladmin.password"); } else { throw new ProcessorException("database admin-user configuration failed"); } } this.errorMsg = ""; this.sql = new ArrayList<String>(); } public void addSQL(String sqlStatement) { if (sql == null) sql = new ArrayList<String>(); sql.add(sqlStatement); } public Object process() throws ProcessorException { Connection c = null; Config config = Config.getInstance(); if ("com.mysql.jdbc.Driver".equals(driver)) { if (user == null) user = config.getProperty("mysqladmin.user", "root"); if (password == null) password = config.getProperty("mysqladmin.password"); } if ("org.postgresql.Driver".equals(driver)) { if (user == null) user = config.getProperty("pgsqladmin.user", "postgres"); if (password == null) password = config.getProperty("pgsqladmin.password"); } if (user == null || password == null) { throw new ProcessorException("database admin-user configuration failed"); } try { Class.forName(driver); c = DriverManager.getConnection(url, user, password); @@ -66,10 +64,10 @@ throw new ProcessorException("cannot connect to '" + url + "'"); Statement s = c.createStatement(); for (String sqlStatement : sql) { s.addBatch(sqlStatement); System.out.println("SQL: " + sqlStatement); s.execute(sqlStatement); } return s.executeBatch(); return s.getUpdateCount(); } catch (SQLException aSqlExc) { Exception exc = aSqlExc.getNextException(); if (exc == null) { @@ -82,10 +80,7 @@ throw new ProcessorException(aExc.getMessage()); } finally { if (c != null) { try { c.close(); } catch (Exception exc) { } try { c.close(); } catch (Exception exc) { } } } } hsarback/src/de/hsadmin/mods/db/MySqlDatabaseProcessorFactory.java
@@ -6,6 +6,7 @@ import de.hsadmin.core.qserv.EntityProcessorFactory; import de.hsadmin.core.qserv.JDBCProcessor; import de.hsadmin.core.qserv.Processor; import de.hsadmin.core.qserv.ProcessorException; /** * Factory class which creates Processor instances for dealing with UNIX user @@ -20,12 +21,12 @@ "jdbc:mysql://localhost/" + database, user, password); } public static JDBCProcessor createMySqlAdminProcessor() { public static JDBCProcessor createMySqlAdminProcessor() throws ProcessorException { return new JDBCProcessor("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/"); } public <T extends AbstractEntity> Processor createCreateProcessor( EntityManager em, T entity) { EntityManager em, T entity) throws ProcessorException { Database db = (Database) entity; assert db.getInstance().equals("mysql"); JDBCProcessor aJDBCP = null; @@ -38,7 +39,7 @@ return aJDBCP; } public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) throws ProcessorException { Database db = (Database) entity; assert db.getInstance().equals("mysql"); String aName = AbstractEntity.escapeString(db.getName()); @@ -49,7 +50,7 @@ return aJDBCP; } public <T extends AbstractEntity> Processor createDeleteProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createDeleteProcessor(EntityManager em, T entity) throws ProcessorException { Database db = (Database) entity; assert db.getInstance().equals("mysql"); JDBCProcessor aJDBCP = createMySqlAdminProcessor(); hsarback/src/de/hsadmin/mods/db/MySqlUserProcessorFactory.java
@@ -6,6 +6,7 @@ import de.hsadmin.core.qserv.EntityProcessorFactory; import de.hsadmin.core.qserv.JDBCProcessor; import de.hsadmin.core.qserv.Processor; import de.hsadmin.core.qserv.ProcessorException; /** * Factory class which creates Processor instances for dealing with UNIX user @@ -15,7 +16,7 @@ */ public class MySqlUserProcessorFactory implements EntityProcessorFactory { public <T extends AbstractEntity> Processor createCreateProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createCreateProcessor(EntityManager em, T entity) throws ProcessorException { DatabaseUser dbu = (DatabaseUser) entity; assert dbu.getInstance().equals("mysql"); JDBCProcessor aJDBCP = MySqlDatabaseProcessorFactory.createMySqlAdminProcessor(); @@ -25,7 +26,7 @@ return aJDBCP; } public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) throws ProcessorException { DatabaseUser dbu = (DatabaseUser) entity; assert dbu.getInstance().equals("mysql"); JDBCProcessor aJDBCP = MySqlDatabaseProcessorFactory.createMySqlAdminProcessor(); @@ -35,7 +36,7 @@ return aJDBCP; } public <T extends AbstractEntity> Processor createDeleteProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createDeleteProcessor(EntityManager em, T entity) throws ProcessorException { DatabaseUser dbu = (DatabaseUser) entity; assert dbu.getInstance().equals("mysql"); JDBCProcessor aJDBCP = MySqlDatabaseProcessorFactory.createMySqlAdminProcessor(); hsarback/src/de/hsadmin/mods/db/PgSqlDatabaseProcessorFactory.java
@@ -6,6 +6,7 @@ import de.hsadmin.core.qserv.EntityProcessorFactory; import de.hsadmin.core.qserv.JDBCProcessor; import de.hsadmin.core.qserv.Processor; import de.hsadmin.core.qserv.ProcessorException; public class PgSqlDatabaseProcessorFactory implements EntityProcessorFactory { @@ -13,11 +14,11 @@ return new JDBCProcessor("org.postgresql.Driver", "jdbc:postgresql://localhost/template1", user, password); } public static JDBCProcessor createPostgreSqlAdminProcessor() { public static JDBCProcessor createPostgreSqlAdminProcessor() throws ProcessorException { return new JDBCProcessor("org.postgresql.Driver", "jdbc:postgresql://localhost/template1"); } public <T extends AbstractEntity> Processor createCreateProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createCreateProcessor(EntityManager em, T entity) throws ProcessorException { Database db = (Database) entity; assert db.getInstance().equals("pgsql"); JDBCProcessor aJDBCP = null; @@ -29,7 +30,7 @@ return aJDBCP; } public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) throws ProcessorException { Database db = (Database) entity; assert db.getInstance().equals("pgsql"); String aName = AbstractEntity.escapeString(db.getName()); @@ -40,7 +41,7 @@ return aJDBCP; } public <T extends AbstractEntity> Processor createDeleteProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createDeleteProcessor(EntityManager em, T entity) throws ProcessorException { Database db = (Database) entity; assert db.getInstance().equals("pgsql"); JDBCProcessor aJDBCP = createPostgreSqlAdminProcessor(); hsarback/src/de/hsadmin/mods/db/PgSqlUserProcessorFactory.java
@@ -6,6 +6,7 @@ import de.hsadmin.core.qserv.EntityProcessorFactory; import de.hsadmin.core.qserv.JDBCProcessor; import de.hsadmin.core.qserv.Processor; import de.hsadmin.core.qserv.ProcessorException; /** * Factory class which creates Processor instances for dealing with UNIX user @@ -15,7 +16,7 @@ */ public class PgSqlUserProcessorFactory implements EntityProcessorFactory { public <T extends AbstractEntity> Processor createCreateProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createCreateProcessor(EntityManager em, T entity) throws ProcessorException { DatabaseUser dbu = (DatabaseUser) entity; assert dbu.getInstance().equals("pgsql"); JDBCProcessor aJDBCP = PgSqlDatabaseProcessorFactory.createPostgreSqlAdminProcessor(); @@ -25,7 +26,7 @@ return aJDBCP; } public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createUpdateProcessor(EntityManager em, T entity) throws ProcessorException { DatabaseUser dbu = (DatabaseUser) entity; assert dbu.getInstance().equals("pgsql"); JDBCProcessor aJDBCP = PgSqlDatabaseProcessorFactory.createPostgreSqlAdminProcessor(); @@ -35,7 +36,7 @@ return aJDBCP; } public <T extends AbstractEntity> Processor createDeleteProcessor(EntityManager em, T entity) { public <T extends AbstractEntity> Processor createDeleteProcessor(EntityManager em, T entity) throws ProcessorException { DatabaseUser dbu = (DatabaseUser) entity; assert dbu.getInstance().equals("pgsql"); JDBCProcessor aJDBCP = PgSqlDatabaseProcessorFactory.createPostgreSqlAdminProcessor();