use of org.hibernate.boot.cfgxml.spi.LoadedConfig in project hibernate-orm by hibernate.
the class EntityManagerFactoryBuilderImpl method processHibernateConfigXmlResources.
private void processHibernateConfigXmlResources(StandardServiceRegistryBuilder ssrBuilder, MergedSettings mergedSettings, String cfgXmlResourceName) {
final LoadedConfig loadedConfig = ssrBuilder.getConfigLoader().loadConfigXmlResource(cfgXmlResourceName);
mergedSettings.processHibernateConfigXmlResources(loadedConfig);
ssrBuilder.getAggregatedCfgXml().merge(loadedConfig);
}
use of org.hibernate.boot.cfgxml.spi.LoadedConfig 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);
}
}
use of org.hibernate.boot.cfgxml.spi.LoadedConfig in project hibernate-orm by hibernate.
the class EntityManagerFactoryBuilderImpl method mergeSettings.
@SuppressWarnings("unchecked")
private MergedSettings mergeSettings(PersistenceUnitDescriptor persistenceUnit, Map<?, ?> integrationSettings, StandardServiceRegistryBuilder ssrBuilder) {
final MergedSettings mergedSettings = new MergedSettings();
// first, apply persistence.xml-defined settings
if (persistenceUnit.getProperties() != null) {
mergedSettings.configurationValues.putAll(persistenceUnit.getProperties());
}
mergedSettings.configurationValues.put(PERSISTENCE_UNIT_NAME, persistenceUnit.getName());
final ConfigLoader configLoader = new ConfigLoader(ssrBuilder.getBootstrapServiceRegistry());
// see if the persistence.xml settings named a Hibernate config file....
final String cfgXmlResourceName1 = (String) mergedSettings.configurationValues.remove(CFG_FILE);
if (StringHelper.isNotEmpty(cfgXmlResourceName1)) {
final LoadedConfig loadedCfg = configLoader.loadConfigXmlResource(cfgXmlResourceName1);
processConfigXml(loadedCfg, mergedSettings, ssrBuilder);
}
// see if integration settings named a Hibernate config file....
final String cfgXmlResourceName2 = (String) integrationSettings.get(CFG_FILE);
if (StringHelper.isNotEmpty(cfgXmlResourceName2)) {
integrationSettings.remove(CFG_FILE);
final LoadedConfig loadedCfg = configLoader.loadConfigXmlResource(cfgXmlResourceName2);
processConfigXml(loadedCfg, mergedSettings, ssrBuilder);
}
// finally, apply integration-supplied settings (per JPA spec, integration settings should override other sources)
for (Map.Entry<?, ?> entry : integrationSettings.entrySet()) {
if (entry.getKey() == null) {
continue;
}
if (entry.getValue() == null) {
mergedSettings.configurationValues.remove(entry.getKey());
} else {
mergedSettings.configurationValues.put(entry.getKey(), entry.getValue());
}
}
if (!mergedSettings.configurationValues.containsKey(JPA_VALIDATION_MODE)) {
if (persistenceUnit.getValidationMode() != null) {
mergedSettings.configurationValues.put(JPA_VALIDATION_MODE, persistenceUnit.getValidationMode());
}
}
if (!mergedSettings.configurationValues.containsKey(JPA_SHARED_CACHE_MODE)) {
if (persistenceUnit.getSharedCacheMode() != null) {
mergedSettings.configurationValues.put(JPA_SHARED_CACHE_MODE, persistenceUnit.getSharedCacheMode());
}
}
final String jaccContextId = (String) mergedSettings.configurationValues.get(JACC_CONTEXT_ID);
// here we are going to iterate the merged config settings looking for:
// 1) additional JACC permissions
// 2) additional cache region declarations
//
// we will also clean up any references with null entries
Iterator itr = mergedSettings.configurationValues.entrySet().iterator();
while (itr.hasNext()) {
final Map.Entry entry = (Map.Entry) itr.next();
if (entry.getValue() == null) {
// remove entries with null values
itr.remove();
break;
}
if (String.class.isInstance(entry.getKey()) && String.class.isInstance(entry.getValue())) {
final String keyString = (String) entry.getKey();
final String valueString = (String) entry.getValue();
if (keyString.startsWith(JACC_PREFIX)) {
if (!JACC_CONTEXT_ID.equals(keyString) && !JACC_ENABLED.equals(keyString)) {
if (jaccContextId == null) {
LOG.debug("Found JACC permission grant [%s] in properties, but no JACC context id was specified; ignoring");
} else {
mergedSettings.getJaccPermissions(jaccContextId).addPermissionDeclaration(parseJaccConfigEntry(keyString, valueString));
}
}
} else if (keyString.startsWith(CLASS_CACHE_PREFIX)) {
mergedSettings.addCacheRegionDefinition(parseCacheRegionDefinitionEntry(keyString.substring(CLASS_CACHE_PREFIX.length() + 1), valueString, CacheRegionDefinition.CacheRegionType.ENTITY));
} else if (keyString.startsWith(COLLECTION_CACHE_PREFIX)) {
mergedSettings.addCacheRegionDefinition(parseCacheRegionDefinitionEntry(keyString.substring(COLLECTION_CACHE_PREFIX.length() + 1), (String) entry.getValue(), CacheRegionDefinition.CacheRegionType.COLLECTION));
}
}
}
return mergedSettings;
}
use of org.hibernate.boot.cfgxml.spi.LoadedConfig in project OpenUnison by TremoloSecurity.
the class SendMessageThread method initializeHibernate.
private void initializeHibernate(String driver, String user, String password, String url, String dialect, int maxCons, int maxIdleCons, String validationQuery, String mappingFile, String createSchema) {
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
Configuration config = new Configuration();
config.setProperty("hibernate.connection.driver_class", driver);
config.setProperty("hibernate.connection.password", password);
config.setProperty("hibernate.connection.url", url);
config.setProperty("hibernate.connection.username", user);
config.setProperty("hibernate.dialect", dialect);
if (createSchema == null || createSchema.equalsIgnoreCase("true")) {
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(maxCons));
config.setProperty("hibernate.c3p0.maxIdleTimeExcessConnections", Integer.toString(maxIdleCons));
if (validationQuery != null && !validationQuery.isEmpty()) {
config.setProperty("hibernate.c3p0.testConnectionOnCheckout", "true");
}
config.setProperty("hibernate.c3p0.autoCommitOnClose", "true");
if (validationQuery == null) {
validationQuery = "SELECT 1";
}
config.setProperty("hibernate.c3p0.preferredTestQuery", validationQuery);
LoadedConfig lc = null;
if (mappingFile == null || mappingFile.trim().isEmpty()) {
JaxbCfgHibernateConfiguration jaxbCfg = new JaxbCfgHibernateConfiguration();
jaxbCfg.setSessionFactory(new JaxbCfgSessionFactory());
JaxbCfgMappingReferenceType mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(PasswordResetRequest.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 (mappingFile == null || mappingFile.trim().isEmpty()) {
sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
} else {
sessionFactory = new MetadataSources(registry).addResource(mappingFile).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();
}
});
} 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);
}
}
use of org.hibernate.boot.cfgxml.spi.LoadedConfig in project OpenUnison by TremoloSecurity.
the class DbOidcSessionStore method initializeHibernate.
private void initializeHibernate(String driver, String user, String password, String url, String dialect, int maxCons, int maxIdleCons, String validationQuery, String mappingFile, String createSchema) {
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
Configuration config = new Configuration();
config.setProperty("hibernate.connection.driver_class", driver);
config.setProperty("hibernate.connection.password", password);
config.setProperty("hibernate.connection.url", url);
config.setProperty("hibernate.connection.username", user);
config.setProperty("hibernate.dialect", dialect);
if (createSchema == null || createSchema.equalsIgnoreCase("true")) {
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(maxCons));
config.setProperty("hibernate.c3p0.maxIdleTimeExcessConnections", Integer.toString(maxIdleCons));
if (validationQuery != null && !validationQuery.isEmpty()) {
config.setProperty("hibernate.c3p0.testConnectionOnCheckout", "true");
}
config.setProperty("hibernate.c3p0.autoCommitOnClose", "true");
if (validationQuery == null) {
validationQuery = "SELECT 1";
}
config.setProperty("hibernate.c3p0.preferredTestQuery", validationQuery);
LoadedConfig lc = null;
if (mappingFile == null || mappingFile.trim().isEmpty()) {
JaxbCfgHibernateConfiguration jaxbCfg = new JaxbCfgHibernateConfiguration();
jaxbCfg.setSessionFactory(new JaxbCfgSessionFactory());
JaxbCfgMappingReferenceType mrt = new JaxbCfgMappingReferenceType();
mrt.setClazz(OidcDbSession.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 {
if (mappingFile == null || mappingFile.trim().isEmpty()) {
sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
} else {
sessionFactory = new MetadataSources(registry).addResource(mappingFile).buildMetadata().buildSessionFactory();
}
GlobalEntries.getGlobalEntries().getConfigManager().addThread(new StopableThread() {
@Override
public void run() {
}
@Override
public void stop() {
logger.info("Stopping hibernate");
sessionFactory.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