30,8 → 30,9 |
import java.util.ArrayList; |
import java.util.List; |
|
|
import lombok.extern.slf4j.Slf4j; |
import org.apache.logging.log4j.Level; |
import org.apache.logging.log4j.LogManager; |
import org.apache.logging.log4j.Logger; |
import org.quartz.utils.ConnectionProvider; |
|
/** |
38,16 → 39,15 |
* @author Brian Rosenberger |
* |
*/ |
@Slf4j |
public class BrutexHSQLQuartzConnectionProvider implements ConnectionProvider { |
|
private Connection conn = null; |
private static final Logger logger = LogManager.getLogger(); |
|
|
|
public Connection getConnection() throws SQLException { |
if( conn!= null ) { // Todo: && conn.conn.isValid(5)) { |
log.debug("Checking tables on pre-exisiting database connection."); |
logger.debug("Checking tables on pre-exisiting database connection."); |
checkTables(); |
return conn; |
} |
55,7 → 55,7 |
// Class.forName("org.hsqldb.jdbc.JDBCDriver" ); |
Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); |
} catch (Exception e) { |
log.error("Failed to load Derby JDBC driver."); |
logger.fatal("Failed to load Derby JDBC driver."); |
e.printStackTrace(); |
return null; |
} |
106,9 → 106,9 |
} |
|
private synchronized void checkTables() throws SQLException { |
log.debug("Checking QUARTZ database schema."); |
logger.debug("Checking QUARTZ database schema."); |
if(!isConnected(false)) { |
log.error("Failed to validate QUARTZ database schema."); |
logger.error("Failed to validate QUARTZ database schema."); |
return; |
} |
List<String> ddl_list = new ArrayList<String>(11); |
131,7 → 131,7 |
for (String tbl : ddl_list) { |
ResultSet rs = dmd.getTables(null, "APP", tbl, null); |
if (!rs.next()) { |
log.debug("Adding DDL for table {}", tbl); |
logger.log(Level.INFO, "Adding DDL for table "+ tbl); |
Statement st = conn.createStatement(); |
File ddlFile = new File(ddl + tbl + ".ddl"); |
String create = ""; |
142,15 → 142,18 |
} |
create.trim(); |
if( st.execute(create)) { |
log.debug("Table {} created.", tbl); |
logger.log(Level.INFO, "Table " + tbl + " created."); |
} |
} catch (FileNotFoundException ex) { |
ex.printStackTrace(); |
} catch (IOException ex) { |
ex.printStackTrace(); |
} catch (SQLException ex) { |
log.error("Error executing statement {}.",create, ex ); |
logger.log(Level.ERROR, "Error executing statement "+ create ); |
System.out.println(ex.getMessage()); |
} |
} else { |
log.trace("Table {} exists.", tbl); |
logger.trace("Table "+tbl+" exists."); |
} |
} |
} |
161,15 → 164,15 |
} else { |
String t = this.getClass().getClassLoader().getResource("/").toString().substring(6); // WEB-INF/classes |
t += "../data/db"; |
log.debug("Database directory is set to '{}", t); |
logger.debug("Database directory is set to '" + t + "'"); |
try { |
this.conn = DriverManager.getConnection("jdbc:derby:" + t + ";create=true;"); |
} catch (SQLException ex) { |
log.error(ex.getMessage(), ex); |
logger.error(ex.getMessage(), ex); |
if(!fail) { |
log.warn("Deleting database directory."); |
logger.warn("Deleting database directory."); |
recursiveDelete(new File(t)); |
log.warn("Retrying to connect to database."); |
logger.warn("Retrying to connect to database."); |
return isConnected(true); |
} else { |
return false; |