Example usage for org.hibernate.service.spi ServiceRegistryImplementor getService

List of usage examples for org.hibernate.service.spi ServiceRegistryImplementor getService

Introduction

In this page you can find the example usage for org.hibernate.service.spi ServiceRegistryImplementor getService.

Prototype

<R extends Service> R getService(Class<R> serviceRole);

Source Link

Document

Retrieve a service by role.

Usage

From source file:br.com.fabiose.book.utils.MultiTenantConnectionProviderImpl.java

@Override
public void injectServices(ServiceRegistryImplementor registry) {
    Map settings = registry.getService(ConfigurationService.class).getSettings();
    provider.configure(settings);/*  w  w w.  j ava 2 s  . c o m*/
    provider.injectServices(registry);
}

From source file:com.blogspot.hwellmann.multitenancy.hibernate.SchemaMultiTenantConnectionProvider.java

License:Apache License

@Override
public void injectServices(ServiceRegistryImplementor serviceRegistry) {
    final Object dataSourceConfigValue = serviceRegistry.getService(ConfigurationService.class).getSettings()
            .get(AvailableSettings.DATASOURCE);
    if (dataSourceConfigValue == null || !String.class.isInstance(dataSourceConfigValue)) {
        throw new HibernateException("Improper set up of DataSourceBasedMultiTenantConnectionProviderImpl");
    }//  www  .j  a v  a2  s  . c  o  m
    final String jndiName = (String) dataSourceConfigValue;

    jndiService = serviceRegistry.getService(JndiService.class);
    if (jndiService == null) {
        throw new HibernateException(
                "Could not locate JndiService from DataSourceBasedMultiTenantConnectionProviderImpl");
    }

    final Object namedObject = jndiService.locate(jndiName);
    if (namedObject == null) {
        throw new HibernateException("JNDI name [" + jndiName + "] could not be resolved");
    }

    if (DataSource.class.isInstance(namedObject)) {
        final int loc = jndiName.lastIndexOf("/");
        this.baseJndiNamespace = jndiName.substring(0, loc);
        this.tenantIdentifierForAny = jndiName.substring(loc + 1);
        dataSourceMap().put(tenantIdentifierForAny, (DataSource) namedObject);
    } else if (Context.class.isInstance(namedObject)) {
        this.baseJndiNamespace = jndiName;
        this.tenantIdentifierForAny = (String) serviceRegistry.getService(ConfigurationService.class)
                .getSettings().get(TENANT_IDENTIFIER_TO_USE_FOR_ANY_KEY);
        if (tenantIdentifierForAny == null) {
            throw new HibernateException(
                    "JNDI name named a Context, but tenant identifier to use for ANY was not specified");
        }
    } else {
        throw new HibernateException("Unknown object type [" + namedObject.getClass().getName()
                + "] found in JNDI location [" + jndiName + "]");
    }
}

From source file:kr.debop4j.data.mongodb.test.loading.LoadSelectedColumnsCollectionTest.java

License:Apache License

protected Service getService(Class<? extends Service> serviceImpl) {
    SessionFactoryImplementor factory = super.sfi();
    ServiceRegistryImplementor serviceRegistry = factory.getServiceRegistry();
    return serviceRegistry.getService(serviceImpl);
}

From source file:kr.debop4j.data.ogm.spring.GridDatastoreConfigBase.java

License:Apache License

/**
 * hibernate {@link ServiceRegistryImplementor}   .
 *
 * @param serviceImpl  ? /*from ww  w  .  jav a2 s.c  om*/
 * @return {@link ServiceRegistryImplementor}? ?? 
 */
protected final org.hibernate.service.Service getService(
        Class<? extends org.hibernate.service.Service> serviceImpl) {
    if (log.isDebugEnabled())
        log.debug("Service  . serviceImpl=[{}]", serviceImpl.getName());

    SessionFactoryImplementor sessionFactory = getSessionFactoryImplementor();
    ServiceRegistryImplementor serviceRegistry = sessionFactory.getServiceRegistry();
    return serviceRegistry.getService(serviceImpl);
}