Example usage for org.hibernate.boot.registry StandardServiceInitiator StandardServiceInitiator

List of usage examples for org.hibernate.boot.registry StandardServiceInitiator StandardServiceInitiator

Introduction

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

Prototype

StandardServiceInitiator

Source Link

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   w  ww. j  av a2s.  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:com.blazebit.persistence.integration.hibernate.Hibernate52ServiceContributor.java

License:Apache License

@Override
public void contribute(StandardServiceRegistryBuilder serviceRegistryBuilder) {
    serviceRegistryBuilder.addInitiator(new StandardServiceInitiator<Database>() {
        @Override/*from   w  w w  . j av  a 2  s .c o m*/
        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.Hibernate5ServiceContributor.java

License:Apache License

@Override
public void contribute(StandardServiceRegistryBuilder serviceRegistryBuilder) {
    serviceRegistryBuilder.addInitiator(new StandardServiceInitiator<Database>() {
        @Override//from ww w  .j a  va  2s.  c  o  m
        public Database initiateService(Map configurationValues, ServiceRegistryImplementor registry) {
            return null;
        }

        @Override
        public Class<Database> getServiceInitiated() {
            return Database.class;
        }
    });
}

From source file:org.babyfish.hibernate.cfg.Configuration.java

License:Open Source License

private static void replacePersisterClassResolver(AbstractServiceRegistryImpl abstractServiceRegistryImpl) {
    try {//from  w ww.  ja  v  a  2s  .co m
        ABSTACT_SERVICE_RESGISTRY_IMPL_CREATE_SERVICE_BINDING.invoke(abstractServiceRegistryImpl,
                new StandardServiceInitiator<PersisterClassResolver>() {
                    @Override
                    public Class<PersisterClassResolver> getServiceInitiated() {
                        return PersisterClassResolver.class;
                    }

                    @SuppressWarnings("rawtypes")
                    @Override
                    public PersisterClassResolver initiateService(Map configurationValues,
                            ServiceRegistryImplementor registry) {
                        return new org.babyfish.hibernate.persister.StandardPersisterClassResolver();
                    }
                });
        ABSTACT_SERVICE_RESGISTRY_IMPL_CREATE_SERVICE_BINDING.invoke(abstractServiceRegistryImpl,
                new StandardServiceInitiator<PersisterFactory>() {
                    @Override
                    public Class<PersisterFactory> getServiceInitiated() {
                        return PersisterFactory.class;
                    }

                    @SuppressWarnings("rawtypes")
                    @Override
                    public PersisterFactory initiateService(Map configurationValues,
                            ServiceRegistryImplementor registry) {
                        return new org.hibernate.persister.internal.PersisterFactoryImpl();
                    }
                });
    } catch (IllegalAccessException ex) {
        throw new AssertionError(ex);
    } catch (InvocationTargetException ex) {
        UncheckedException.rethrow(ex.getTargetException());
    }
}