use of com.tremolosecurity.provisioning.objects.AuditLogType in project OpenUnison by TremoloSecurity.
the class SendMessageThread method initializeHibernate.
private void initializeHibernate(ApprovalDBType adbt) {
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
Configuration config = new Configuration();
config.setProperty("hibernate.connection.driver_class", adbt.getDriver());
config.setProperty("hibernate.connection.password", adbt.getPassword());
config.setProperty("hibernate.connection.url", adbt.getUrl());
config.setProperty("hibernate.connection.username", adbt.getUser());
config.setProperty("hibernate.dialect", adbt.getHibernateDialect());
if (adbt.isHibernateCreateSchema() == null || adbt.isHibernateCreateSchema()) {
config.setProperty("hibernate.hbm2ddl.auto", "update");
}
config.setProperty("show_sql", "true");
config.setProperty("hibernate.current_session_context_class", "thread");
config.setProperty("hibernate.c3p0.max_size", Integer.toString(adbt.getMaxConns()));
config.setProperty("hibernate.c3p0.maxIdleTimeExcessConnections", Integer.toString(adbt.getMaxIdleConns()));
if (adbt.getValidationQuery() != null && !adbt.getValidationQuery().isEmpty()) {
config.setProperty("hibernate.c3p0.testConnectionOnCheckout", "true");
}
config.setProperty("hibernate.c3p0.autoCommitOnClose", "true");
if (adbt.getHibernateProperty() != null) {
for (ParamType pt : adbt.getHibernateProperty()) {
config.setProperty(pt.getName(), pt.getValue());
}
}
// config.setProperty("hibernate.c3p0.debugUnreturnedConnectionStackTraces", "true");
// config.setProperty("hibernate.c3p0.unreturnedConnectionTimeout", "30");
String validationQuery = adbt.getValidationQuery();
if (validationQuery == null) {
validationQuery = "SELECT 1";
}
config.setProperty("hibernate.c3p0.preferredTestQuery", validationQuery);
LoadedConfig lc = null;
if (adbt.getHibernateConfig() == null || adbt.getHibernateConfig().trim().isEmpty()) {
JaxbCfgHibernateConfiguration jaxbCfg = new JaxbCfgHibernateConfiguration();
jaxbCfg.setSessionFactory(new JaxbCfgSessionFactory());
JaxbCfgMappingReferenceType mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(AllowedApprovers.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(Approvals.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(ApproverAttributes.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(Approvers.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(AuditLogs.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(AuditLogType.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(Escalation.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(Targets.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(UserAttributes.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(Users.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(WorkflowParameters.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(Workflows.class.getName());
jaxbCfg.getSessionFactory().getMapping().add(mrt);
lc = LoadedConfig.consume(jaxbCfg);
} else {
lc = LoadedConfig.baseline();
}
StandardServiceRegistry registry = builder.configure(lc).applySettings(config.getProperties()).build();
try {
sessionFactory = null;
if (adbt.getHibernateConfig() == null || adbt.getHibernateConfig().trim().isEmpty()) {
sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
} else {
sessionFactory = new MetadataSources(registry).addResource(adbt.getHibernateConfig()).buildMetadata().buildSessionFactory();
}
this.cfgMgr.addThread(new StopableThread() {
@Override
public void run() {
// TODO Auto-generated method stub
}
@Override
public void stop() {
logger.info("Stopping hibernate");
sessionFactory.close();
}
});
org.hibernate.Session session = sessionFactory.openSession();
this.auditLogTypes = new HashMap<String, AuditLogType>();
List<AuditLogType> alts = session.createCriteria(AuditLogType.class).list();
if (alts.size() == 0) {
session.beginTransaction();
AuditLogType alt = new AuditLogType();
alt.setName("Add");
session.save(alt);
this.auditLogTypes.put("add", alt);
alt = new AuditLogType();
alt.setName("Delete");
session.save(alt);
this.auditLogTypes.put("delete", alt);
alt = new AuditLogType();
alt.setName("Replace");
session.save(alt);
this.auditLogTypes.put("replace", alt);
session.getTransaction().commit();
} else {
for (AuditLogType alt : alts) {
this.auditLogTypes.put(alt.getName().toLowerCase(), alt);
}
}
session.close();
} catch (Exception e) {
e.printStackTrace();
// The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory
// so destroy it manually.
StandardServiceRegistryBuilder.destroy(registry);
}
}
Aggregations