Example usage for org.hibernate.boot.registry StandardServiceRegistryBuilder addService

List of usage examples for org.hibernate.boot.registry StandardServiceRegistryBuilder addService

Introduction

In this page you can find the example usage for org.hibernate.boot.registry StandardServiceRegistryBuilder addService.

Prototype

@SuppressWarnings({ "unchecked" })
public StandardServiceRegistryBuilder addService(final Class serviceRole, final Service service) 

Source Link

Document

Adds a user-provided service.

Usage

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   ww  w .ja va  2 s. com*/
        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:edu.nps.moves.mmowgli.hibernate.AbstractVHib.java

License:Open Source License

protected void init2() {
    if (initted2)
        return;/* ww  w. j  a  v a 2 s  .  c  om*/
    initted2 = true;

    try {
        // Set up the mapping
        addAnnotatedClasses(getExampleMappedClass(), cnf);

        StandardServiceRegistryBuilder srb = new StandardServiceRegistryBuilder();
        srb.applySettings(cnf.getProperties());
        srb.addService(EventListenerRegistry.class, new EventListenerRegistryImpl()); // have to add manually
        sr = srb.build();

        sf = cnf.buildSessionFactory(sr);
    } catch (Throwable ex) {
        commonInitCatch(ex);
    }
}