*/
public class GenericJdbcValidator extends Validator {
@Override
public Validation validateConnection(Object configuration) {
Validation validation = new Validation(ConnectionConfiguration.class);
ConnectionConfiguration config = (ConnectionConfiguration)configuration;
if(config.connection.jdbcDriver == null) {
validation.addMessage(Status.UNACCEPTABLE, "connection", "jdbcDriver", "Driver can't be empty");
} else {
try {
Class.forName(config.connection.jdbcDriver);
} catch (ClassNotFoundException e) {
validation.addMessage(Status.UNACCEPTABLE, "connection", "jdbcDriver", "Can't load specified driver");
}
}
if(config.connection.connectionString == null) {
validation.addMessage(Status.UNACCEPTABLE, "connection", "connectionString", "JDBC URL can't be empty");
} else if(!config.connection.connectionString.startsWith("jdbc:")) {
validation.addMessage(Status.UNACCEPTABLE, "connection", "connectionString", "This do not seem as a valid JDBC URL");
}
// See if we can connect to the database
try {
DriverManager.getConnection(config.connection.connectionString,
config.connection.username, config.connection.password);
} catch (SQLException e) {
validation.addMessage(Status.ACCEPTABLE, "connection", "Can't connect to the database with given credentials: " + e.getMessage());
}
// Return final validation object
return validation;
}