Subversion Repositories XServices

Compare Revisions

Ignore whitespace Rev 198 → Rev 199

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