package org.zstack.core.db;
import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.orm.jpa.persistenceunit.MutablePersistenceUnitInfo;
import org.springframework.orm.jpa.persistenceunit.PersistenceUnitPostProcessor;
public class JpaUnitPostProcessor implements PersistenceUnitPostProcessor {
private String dbUser;
private String dbPassword;
private String dbHost;
private String dbName;
private BasicDataSource dataSource = null;
@Override
public void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo unit) {
/*
unit.addProperty("hibernate.connection.username", getDbUser());
unit.addProperty("hibernate.connection.password", getDbPassword());
String jdbcUrl = String.format("jdbc:mysql://%s/%s", getDbHost(), getDbName());
unit.addProperty("hibernate.connection.url", jdbcUrl);
unit.addProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
unit.addProperty("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect");
unit.addProperty("org.jboss.logging.provider", "log4j2");
*/
}
void init() {
dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
String jdbcUrl = String.format("jdbc:mysql://%s/%s", getDbHost(), getDbName());
dataSource.setUrl(jdbcUrl);
dataSource.setUsername(getDbUser());
dataSource.setPassword(getDbPassword());
}
public String getDbUser() {
return dbUser;
}
public void setDbUser(String dbUser) {
this.dbUser = dbUser;
}
public String getDbPassword() {
return dbPassword;
}
public void setDbPassword(String dbPassword) {
this.dbPassword = dbPassword;
}
public String getDbHost() {
return dbHost;
}
public void setDbHost(String dbHost) {
this.dbHost = dbHost;
}
public String getDbName() {
return dbName;
}
public void setDbName(String dbName) {
this.dbName = dbName;
}
public BasicDataSource getDataSource() {
return dataSource;
}
}