SqlConnectionProducer.java
package org.ferris.resiste.console.sql;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import org.slf4j.Logger;
/**
*
* @author Michael Remijan mjremijan@yahoo.com @mjremijan
*/
@ApplicationScoped
public class SqlConnectionProducer {
private SqlConnection sqlConnection;
@Inject
protected Logger log;
@Inject
protected SqlProperties properties;
@PostConstruct
protected void postConstruct() {
log.info(String.format("Create connection to database %s", properties));
Connection conn = null;
try {
conn = DriverManager.getConnection(
properties.getUrl(), properties.getUsername(), properties.getPassword()
);
} catch (Exception e) {
throw new RuntimeException(
String.format("Problem connecting to database \"%s\", \"%s\", \"%s\""
, properties.getUrl(), properties.getUsername(), properties.getPassword()),
e
);
}
try {
conn.setSchema(properties.getSchema());
} catch (Exception e) {
throw new RuntimeException(
String.format("Problem setting database schema to \"%s\"",properties.getSchema()), e
);
}
sqlConnection = new SqlConnection(conn);
}
@Produces
protected SqlConnection produceSqlConnection() {
return sqlConnection;
}
}