List of usage examples for org.hibernate.service ServiceRegistry getService
<R extends Service> R getService(Class<R> serviceRole);
From source file:com.blazebit.persistence.integration.hibernate.Hibernate43Integrator.java
License:Apache License
@Override public void prepareServices(final StandardServiceRegistryBuilder serviceRegistryBuilder) { final StrategySelector strategySelector = serviceRegistryBuilder.getBootstrapServiceRegistry() .getService(StrategySelector.class); serviceRegistryBuilder.addService(StrategySelector.class, new StrategySelector() { @Override/*from w w w. j a va 2 s.c om*/ public <T> void registerStrategyImplementor(Class<T> aClass, String s, Class<? extends T> aClass1) { strategySelector.registerStrategyImplementor(aClass, s, aClass1); } @Override public <T> void unRegisterStrategyImplementor(Class<T> aClass, Class<? extends T> aClass1) { strategySelector.unRegisterStrategyImplementor(aClass, aClass1); } @Override public <T> Class<? extends T> selectStrategyImplementor(Class<T> aClass, String s) { return strategySelector.selectStrategyImplementor(aClass, s); } @Override public <T> T resolveStrategy(Class<T> aClass, Object o) { if (MultiTableBulkIdStrategy.class == aClass) { if (o == null) { ServiceRegistry serviceRegistry = SERVICE_REGISTRY_ACCESS.get(); SERVICE_REGISTRY_ACCESS.remove(); return (T) new CustomMultiTableBulkIdStrategy(serviceRegistry.getService(JdbcServices.class) .getDialect().supportsTemporaryTables() ? TemporaryTableBulkIdStrategy.INSTANCE : new PersistentTableBulkIdStrategy()); } else { LOG.warning( "Can't replace hibernate.hql.bulk_id_strategy because it was overridden by the user with: " + o); } } return strategySelector.resolveStrategy(aClass, o); } @Override public <T> T resolveDefaultableStrategy(Class<T> aClass, Object o, T t) { return strategySelector.resolveDefaultableStrategy(aClass, o, t); } }); serviceRegistryBuilder.addInitiator(new StandardServiceInitiator<Database>() { @Override public Database initiateService(@SuppressWarnings("rawtypes") Map configurationValues, ServiceRegistryImplementor registry) { return null; } @Override public Class<Database> getServiceInitiated() { return Database.class; } }); }
From source file:com.blazebit.persistence.integration.hibernate.Hibernate4Integrator.java
License:Apache License
@Override public void contribute(TypeContributions typeContributions, ServiceRegistry serviceRegistry) { ((StandardServiceRegistryImpl) serviceRegistry).configureService(new ServiceBinding<>( (ServiceBinding.ServiceLifecycleOwner) serviceRegistry, Hibernate4Integrator.class, this)); Object o = configuration.get("hibernate.hql.bulk_id_strategy"); if (o == null) { serviceRegistry.getService(JdbcServices.class).getDialect().getDefaultProperties() .put("hibernate.hql.bulk_id_strategy", new CustomMultiTableBulkIdStrategy(serviceRegistry.getService(JdbcServices.class) .getDialect().supportsTemporaryTables() ? TemporaryTableBulkIdStrategy.INSTANCE : new PersistentTableBulkIdStrategy())); } else {// ww w . j a va2 s. c o m LOG.warning("Can't replace hibernate.hql.bulk_id_strategy because it was overridden by the user with: " + o); } }
From source file:com.tsoft.app.domain.identifier.StringSequenceIdentifier.java
@Override public void configure(Type type, Properties params, ServiceRegistry serviceRegistry) throws MappingException { final JdbcEnvironment jdbcEnvironment = serviceRegistry.getService(JdbcEnvironment.class); final Dialect dialect = jdbcEnvironment.getDialect(); final ConfigurationService configurationService = serviceRegistry.getService(ConfigurationService.class); String globalEntityIdentifierPrefix = configurationService.getSetting("entity.identifier.prefix", String.class, "SEQ_"); sequencePrefix = ConfigurationHelper.getString(SEQUENCE_PREFIX, params, globalEntityIdentifierPrefix); final String sequencePerEntitySuffix = ConfigurationHelper.getString( SequenceStyleGenerator.CONFIG_SEQUENCE_PER_ENTITY_SUFFIX, params, SequenceStyleGenerator.DEF_SEQUENCE_SUFFIX); final String defaultSequenceName = ConfigurationHelper .getBoolean(SequenceStyleGenerator.CONFIG_PREFER_SEQUENCE_PER_ENTITY, params, false) ? params.getProperty(JPA_ENTITY_NAME) + sequencePerEntitySuffix : SequenceStyleGenerator.DEF_SEQUENCE_NAME; sequenceCallSyntax = dialect.getSequenceNextValString( ConfigurationHelper.getString(SequenceStyleGenerator.SEQUENCE_PARAM, params, defaultSequenceName)); }
From source file:net.e6tech.elements.persist.hibernate.ModifiedTableGenerator.java
License:Apache License
@Override public void configure(Type type, Properties params, ServiceRegistry serviceRegistry) throws MappingException { identifierType = type;//w w w .j av a 2 s . c om final JdbcEnvironment jdbcEnvironment = serviceRegistry.getService(JdbcEnvironment.class); qualifiedTableName = determineGeneratorTableName(params, jdbcEnvironment); segmentColumnName = determineSegmentColumnName(params, jdbcEnvironment); valueColumnName = determineValueColumnName(params, jdbcEnvironment); segmentValue = determineSegmentValue(params); segmentValueLength = determineSegmentColumnSize(params); initialValue = determineInitialValue(params); incrementSize = determineIncrementSize(params); final String optimizationStrategy = ConfigurationHelper.getString(OPT_PARAM, params, OptimizerFactory.determineImplicitOptimizerName(incrementSize, params)); optimizer = OptimizerFactory.buildOptimizer(optimizationStrategy, identifierType.getReturnedClass(), incrementSize, ConfigurationHelper.getInt(INITIAL_PARAM, params, -1)); }
From source file:net.krotscheck.jersey2.hibernate.factory.HibernateSessionFactoryFactory.java
License:Apache License
/** * This method automatically adds discovered hibernate event listeners into * the hibernate service registry.//from ww w . j av a2s .c o m * * @param registry The service registry. */ private void injectEventListeners(final ServiceRegistry registry) { EventListenerRegistry eventRegistry = registry.getService(EventListenerRegistry.class); List<PostInsertEventListener> postInsertEvents = locator.getAllServices(PostInsertEventListener.class); for (PostInsertEventListener piEventListener : postInsertEvents) { logger.trace("Registering PostInsert: " + piEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_INSERT, piEventListener); } List<PostUpdateEventListener> postUpdateEvents = locator.getAllServices(PostUpdateEventListener.class); for (PostUpdateEventListener puEventListener : postUpdateEvents) { logger.trace("Registering PostUpdate: " + puEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_UPDATE, puEventListener); } List<PostDeleteEventListener> postDeleteEvents = locator.getAllServices(PostDeleteEventListener.class); for (PostDeleteEventListener pdEventListener : postDeleteEvents) { logger.trace("Registering PostDelete: " + pdEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_DELETE, pdEventListener); } List<PreInsertEventListener> preInsertEvents = locator.getAllServices(PreInsertEventListener.class); for (PreInsertEventListener piEventListener : preInsertEvents) { logger.trace("Registering PreInsert: " + piEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.PRE_INSERT, piEventListener); } List<PreUpdateEventListener> preUpdateEvents = locator.getAllServices(PreUpdateEventListener.class); for (PreUpdateEventListener puEventListener : preUpdateEvents) { logger.trace("Registering PreUpdate: " + puEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.PRE_UPDATE, puEventListener); } List<PreDeleteEventListener> preDeleteEvents = locator.getAllServices(PreDeleteEventListener.class); for (PreDeleteEventListener pdEventListener : preDeleteEvents) { logger.trace("Registering PreDelete: " + pdEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.PRE_DELETE, pdEventListener); } List<PostCommitInsertEventListener> pciEvents = locator.getAllServices(PostCommitInsertEventListener.class); for (PostCommitInsertEventListener cpiEventListener : pciEvents) { logger.trace("Registering PostCommitInsert: " + cpiEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_COMMIT_INSERT, cpiEventListener); } List<PostCommitUpdateEventListener> pcuEvents = locator.getAllServices(PostCommitUpdateEventListener.class); for (PostCommitUpdateEventListener cpuEventListener : pcuEvents) { logger.trace("Registering PostCommitUpdate: " + cpuEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_COMMIT_UPDATE, cpuEventListener); } List<PostCommitDeleteEventListener> pcdEvents = locator.getAllServices(PostCommitDeleteEventListener.class); for (PostCommitDeleteEventListener cpdEventListener : pcdEvents) { logger.trace("Registering PostCommitDelete: " + cpdEventListener.getClass().getCanonicalName()); eventRegistry.appendListeners(EventType.POST_COMMIT_DELETE, cpdEventListener); } }
From source file:net.krotscheck.jersey2.hibernate.factory.HibernateSessionFactoryFactoryTest.java
License:Apache License
/** * Test the application event injectors. */// w w w .j av a 2 s. c om @Test public void testEventInjection() { // Create a fake application. SessionFactory factoryFactory = locator.getService(SessionFactory.class); Assert.assertNotNull(factoryFactory); ServiceRegistry serviceRegistry = ((SessionFactoryImpl) factoryFactory).getServiceRegistry(); EventListenerRegistry eventRegistry = serviceRegistry.getService(EventListenerRegistry.class); EventListenerGroup<PreInsertEventListener> priGroup = eventRegistry .getEventListenerGroup(EventType.PRE_INSERT); assertContainsListener(priGroup); EventListenerGroup<PostInsertEventListener> poiGroup = eventRegistry .getEventListenerGroup(EventType.POST_INSERT); assertContainsListener(poiGroup); EventListenerGroup<PreUpdateEventListener> pruGroup = eventRegistry .getEventListenerGroup(EventType.PRE_UPDATE); assertContainsListener(pruGroup); EventListenerGroup<PostUpdateEventListener> pouGroup = eventRegistry .getEventListenerGroup(EventType.POST_UPDATE); assertContainsListener(pouGroup); EventListenerGroup<PreDeleteEventListener> prdGroup = eventRegistry .getEventListenerGroup(EventType.PRE_DELETE); assertContainsListener(prdGroup); EventListenerGroup<PostDeleteEventListener> podGroup = eventRegistry .getEventListenerGroup(EventType.POST_DELETE); assertContainsListener(podGroup); EventListenerGroup<PostInsertEventListener> pciGroup = eventRegistry .getEventListenerGroup(EventType.POST_COMMIT_INSERT); assertContainsListener(pciGroup); EventListenerGroup<PostUpdateEventListener> pcuGroup = eventRegistry .getEventListenerGroup(EventType.POST_COMMIT_UPDATE); assertContainsListener(pcuGroup); EventListenerGroup<PostDeleteEventListener> pcdGroup = eventRegistry .getEventListenerGroup(EventType.POST_COMMIT_DELETE); assertContainsListener(pcdGroup); }
From source file:org.babyfish.hibernate.internal.SessionFactoryImplWrapper.java
License:Open Source License
static CurrentXSessionContext buildCurrentXSessionContext(XSessionFactoryImplementor sessionFactory) { ServiceRegistry serviceRegistry = sessionFactory.getServiceRegistry(); TransactionFactory<?> transactionFactory = serviceRegistry.getService(TransactionFactory.class); boolean canAccessTransactionManager; try {/*from w w w . ja v a2 s . com*/ canAccessTransactionManager = serviceRegistry.getService(JtaPlatform.class) .retrieveTransactionManager() != null; } catch (Exception ex) { canAccessTransactionManager = false; } String impl = sessionFactory.getProperties().getProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS); if (impl == null) { if (canAccessTransactionManager) { impl = "jta"; } else { return null; } } if ("jta".equals(impl)) { if (!transactionFactory.compatibleWithJtaSynchronization()) { LOG.autoFlushWillNotWork(); } return new JTAXSessionContext(sessionFactory); } else if ("thread".equals(impl)) { return new ThreadLocalXSessionContext(sessionFactory); } else if ("managed".equals(impl)) { return new ManagedXSessionContext(sessionFactory); } else { try { Class<?> implClass = serviceRegistry.getService(ClassLoaderService.class).classForName(impl); if (!CurrentXSessionContext.class.isAssignableFrom(implClass)) { throw new HibernateException("The class specified by \"" + Environment.CURRENT_SESSION_CONTEXT_CLASS + "\" must be derived class of \"" + CurrentXSessionContext.class.getName() + "\""); } return (CurrentXSessionContext) implClass .getConstructor(new Class[] { XSessionFactoryImplementor.class }) .newInstance(sessionFactory); } catch (Throwable t) { LOG.unableToConstructCurrentSessionContext(impl, t); return null; } } }
From source file:org.eclipse.emf.cdo.server.internal.hibernate.HibernateStore.java
License:Open Source License
public synchronized SessionFactory getHibernateSessionFactory() { if (cdoDataStore == null) { if (TRACER.isEnabled()) { TRACER.trace("Initializing SessionFactory for HibernateStore"); //$NON-NLS-1$ }/*from w w w.j av a 2 s . c om*/ currentHibernateStore.set(this); identifierPropertyNameByEntity = new HashMap<String, String>(); try { initDataStore(); // this has to be done before the classmapping is iterated // otherwise it is not initialized SessionFactory hibernateSessionFactory = cdoDataStore.getSessionFactory(); ServiceRegistry serviceRegistry = ((SessionFactoryImpl) hibernateSessionFactory) .getServiceRegistry(); final EventListenerRegistry eventListenerRegistry = serviceRegistry .getService(EventListenerRegistry.class); eventListenerRegistry.setListeners(EventType.MERGE, new CDOMergeEventListener()); final Iterator<?> iterator = cdoDataStore.getConfiguration().getClassMappings(); while (iterator.hasNext()) { final PersistentClass pc = (PersistentClass) iterator.next(); if (pc.getIdentifierProperty() == null) { // happens for featuremaps for now... continue; } identifierPropertyNameByEntity.put(pc.getEntityName(), pc.getIdentifierProperty().getName()); } } catch (Throwable t) { t.printStackTrace(System.err); if (TRACER.isEnabled()) { TRACER.trace(t); } throw new RuntimeException(t); } finally { currentHibernateStore.set(null); } } return cdoDataStore.getSessionFactory(); }
From source file:org.infinispan.hibernate.cache.commons.InfinispanRegionFactory.java
License:LGPL
private ConfigurationBuilderHolder loadConfiguration(ServiceRegistry serviceRegistry, String configFile) { final FileLookup fileLookup = FileLookupFactory.newInstance(); final ClassLoader infinispanClassLoader = InfinispanRegionFactory.class.getClassLoader(); return serviceRegistry.getService(ClassLoaderService.class) .workWithClassLoader(new ClassLoaderService.Work<ConfigurationBuilderHolder>() { @Override/* w w w. j a va 2 s .co m*/ public ConfigurationBuilderHolder doWork(ClassLoader classLoader) { InputStream is = null; try { is = fileLookup.lookupFile(configFile, classLoader); if (is == null) { // when it's not a user-provided configuration file, it might be a default configuration file, // and if that's included in [this] module might not be visible to the ClassLoaderService: classLoader = infinispanClassLoader; // This time use lookupFile*Strict* so to provide an exception if we can't find it yet: is = FileLookupFactory.newInstance().lookupFileStrict(configFile, classLoader); } final ParserRegistry parserRegistry = new ParserRegistry(infinispanClassLoader); final ConfigurationBuilderHolder holder = parseWithOverridenClassLoader(parserRegistry, is, infinispanClassLoader); return holder; } catch (IOException e) { throw log.unableToCreateCacheManager(e); } finally { Util.close(is); } } }); }
From source file:org.infinispan.hibernate.cache.v53.InfinispanRegionFactory.java
License:LGPL
private ConfigurationBuilderHolder loadConfiguration(ServiceRegistry serviceRegistry, String configFile) { final FileLookup fileLookup = FileLookupFactory.newInstance(); final ClassLoader infinispanClassLoader = InfinispanRegionFactory.class.getClassLoader(); return serviceRegistry.getService(ClassLoaderService.class).workWithClassLoader(classLoader -> { InputStream is = null;//ww w . j a v a2 s. com try { is = fileLookup.lookupFile(configFile, classLoader); if (is == null) { // when it's not a user-provided configuration file, it might be a default configuration file, // and if that's included in [this] module might not be visible to the ClassLoaderService: classLoader = infinispanClassLoader; // This time use lookupFile*Strict* so to provide an exception if we can't find it yet: is = FileLookupFactory.newInstance().lookupFileStrict(configFile, classLoader); } final ParserRegistry parserRegistry = new ParserRegistry(infinispanClassLoader); final ConfigurationBuilderHolder holder = parseWithOverridenClassLoader(parserRegistry, is, infinispanClassLoader); return holder; } catch (IOException e) { throw log.unableToCreateCacheManager(e); } finally { Util.close(is); } }); }