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

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

Introduction

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

Prototype

@SuppressWarnings({ "unchecked", "UnusedDeclaration" })
public StandardServiceRegistryBuilder applySetting(String settingName, Object value) 

Source Link

Document

Apply a setting value.

Usage

From source file:org.infinispan.test.hibernate.cache.commons.stress.CorrectnessTestCase.java

License:LGPL

protected void applySettings(StandardServiceRegistryBuilder ssrb) {
    ssrb.applySetting(Environment.DEFAULT_CACHE_CONCURRENCY_STRATEGY, accessType.getExternalName());
    ssrb.applySetting(TestRegionFactory.TRANSACTIONAL,
            TestRegionFactoryProvider.load().supportTransactionalCaches()
                    && accessType == AccessType.TRANSACTIONAL);
}

From source file:org.infinispan.test.hibernate.cache.commons.stress.SecondLevelCacheStressTestCase.java

License:LGPL

protected void applyCacheSettings(StandardServiceRegistryBuilder ssrb) {
    ssrb.applySetting(Environment.CACHE_REGION_FACTORY,
            TestRegionFactoryProvider.load().getRegionFactoryClass().getName());
    ssrb.applySetting(Environment.JTA_PLATFORM, new NarayanaStandaloneJtaPlatform());
    ssrb.applySetting(InfinispanProperties.INFINISPAN_CONFIG_RESOURCE_PROP, "stress-local-infinispan.xml");
}

From source file:org.infinispan.test.hibernate.cache.commons.timestamp.TimestampsRegionImplTest.java

License:LGPL

@Override
protected StandardServiceRegistryBuilder createStandardServiceRegistryBuilder() {
    StandardServiceRegistryBuilder ssrb = super.createStandardServiceRegistryBuilder();
    ssrb.applySetting(TestRegionFactory.WRAP_CACHE,
            (Function<AdvancedCache, AdvancedCache>) cache -> new ClassLoaderAwareCache(cache,
                    Thread.currentThread().getContextClassLoader()) {
                @Override/*from www .  ja  v  a2 s. c om*/
                public void addListener(Object listener) {
                    super.addListener(new MockClassLoaderAwareListener(listener, this));
                }

                @Override
                public CompletionStage<Void> addListenerAsync(Object listener) {
                    return super.addListenerAsync(new MockClassLoaderAwareListener(listener, this));
                }
            });
    return ssrb;
}

From source file:org.infinispan.test.hibernate.cache.commons.util.CacheTestUtil.java

License:LGPL

public static StandardServiceRegistryBuilder buildCustomQueryCacheStandardServiceRegistryBuilder(
        String regionPrefix, String queryCacheName, Class<? extends JtaPlatform> jtaPlatform) {
    final StandardServiceRegistryBuilder ssrb = buildBaselineStandardServiceRegistryBuilder(regionPrefix, true,
            true, jtaPlatform);/*from  w w  w.j  a va 2s . c o m*/
    ssrb.applySetting(InfinispanProperties.QUERY_CACHE_RESOURCE_PROP, queryCacheName);
    return ssrb;
}

From source file:org.infinispan.test.hibernate.cache.stress.CorrectnessTestCase.java

License:LGPL

protected void applySettings(StandardServiceRegistryBuilder ssrb) {
    ssrb.applySetting(Environment.DEFAULT_CACHE_CONCURRENCY_STRATEGY, accessType.getExternalName());
    ssrb.applySetting(TestInfinispanRegionFactory.TRANSACTIONAL, accessType == AccessType.TRANSACTIONAL);
}

From source file:org.infinispan.test.hibernate.cache.stress.SecondLevelCacheStressTestCase.java

License:LGPL

protected void applyCacheSettings(StandardServiceRegistryBuilder ssrb) {
    ssrb.applySetting(Environment.CACHE_REGION_FACTORY,
            "org.infinispan.hibernate.cache.InfinispanRegionFactory");
    ssrb.applySetting(Environment.JTA_PLATFORM,
            "org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform");
    ssrb.applySetting(InfinispanRegionFactory.INFINISPAN_CONFIG_RESOURCE_PROP, "stress-local-infinispan.xml");
}

From source file:org.infinispan.test.hibernate.cache.util.CacheTestUtil.java

License:LGPL

public static StandardServiceRegistryBuilder buildCustomQueryCacheStandardServiceRegistryBuilder(
        String regionPrefix, String queryCacheName, Class<? extends JtaPlatform> jtaPlatform) {
    final StandardServiceRegistryBuilder ssrb = buildBaselineStandardServiceRegistryBuilder(regionPrefix,
            InfinispanRegionFactory.class, true, true, jtaPlatform);
    ssrb.applySetting(InfinispanRegionFactory.QUERY_CACHE_RESOURCE_PROP, queryCacheName);
    return ssrb;//from   w  w w  .j av  a 2  s . c  o m
}

From source file:org.wallride.tools.Hbm2ddl.java

License:Apache License

public static void main(String[] args) throws Exception {
    String locationPattern = "classpath:/org/wallride/domain/*";

    final BootstrapServiceRegistry registry = new BootstrapServiceRegistryBuilder().build();
    final MetadataSources metadataSources = new MetadataSources(registry);
    final StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder(registry);

    registryBuilder.applySetting(AvailableSettings.DIALECT,
            ExtendedMySQL5InnoDBDialect.class.getCanonicalName());
    registryBuilder.applySetting(AvailableSettings.GLOBALLY_QUOTED_IDENTIFIERS, true);
    registryBuilder.applySetting(AvailableSettings.PHYSICAL_NAMING_STRATEGY,
            PhysicalNamingStrategySnakeCaseImpl.class);

    final PathMatchingResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
    final Resource[] resources = resourcePatternResolver.getResources(locationPattern);
    final SimpleMetadataReaderFactory metadataReaderFactory = new SimpleMetadataReaderFactory();
    for (Resource resource : resources) {
        MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource);
        AnnotationMetadata metadata = metadataReader.getAnnotationMetadata();
        if (metadata.hasAnnotation(Entity.class.getName())) {
            metadataSources.addAnnotatedClass(Class.forName(metadata.getClassName()));
        }/*from  w w w.  ja  v a  2  s .com*/
    }

    final StandardServiceRegistryImpl registryImpl = (StandardServiceRegistryImpl) registryBuilder.build();
    final MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(registryImpl);

    new SchemaExport().setHaltOnError(true).setDelimiter(";").create(EnumSet.of(TargetType.STDOUT),
            metadataBuilder.build());
}

From source file:to.etc.domui.hibernate.config.HibernateConfigurator.java

License:Open Source License

/**
 * Main worker to initialize the database layer, using Hibernate, with a user-specified core data source. This
 * code also enables SQL logging when .developer.properties option hibernate.sql=true.
 *///from w  ww .ja v a2  s  . c  om
public synchronized static void initialize(final DataSource ds) throws Exception {
    System.setProperty("org.jboss.logging.provider", "slf4j"); // Thanks to https://stackoverflow.com/questions/11639997/how-do-you-configure-logging-in-hibernate-4-to-use-slf4j
    if (m_sessionFactory != null)
        throw new IllegalStateException("HibernateConfigurator has already been initialized!");
    if (m_annotatedClassList.size() == 0)
        throw new IllegalStateException(
                "Please call addClasses(Class<?>...) and register your Hibernate data classes before calling me.");

    long ts = System.nanoTime();
    m_dataSource = ds;

    // see https://www.boraji.com/hibernate-5-event-listener-example

    //-- Create Hibernate's config. See https://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/chapters/bootstrap/Bootstrap.html
    /*
     * Hibernate apparently cannot initialize without the useless hibernate.cfg.xml file. We cannot
     * add that file at the root location because that would interfere with applications. To have a
     * working model we add it as a resource in this class's package. And of course Hibernate makes
     * it hard to reach- we need to calculate the proper name, sigh.
     */
    BootstrapServiceRegistry bootstrapRegistry = new BootstrapServiceRegistryBuilder()
            .applyIntegrator(new JpaIntegrator()).build();

    String resname = "/" + HibernateConfigurator.class.getPackage().getName().replace('.', '/')
            + "/hibernate.cfg.xml";
    StandardServiceRegistryBuilder serviceBuilder = new StandardServiceRegistryBuilder(bootstrapRegistry)
            .configure(resname);

    /*
     * Set other properties according to config settings made.
     */
    serviceBuilder.applySetting("hibernate.connection.datasource", ds);
    boolean logsql;
    if (m_showSQL == null)
        logsql = DeveloperOptions.getBool("hibernate.sql", false); // Take default from .developer.properties
    else
        logsql = m_showSQL.booleanValue();

    if (logsql) {
        serviceBuilder.applySetting("show_sql", "true");
        serviceBuilder.applySetting("hibernate.show_sql", "true");
    }

    /*
     * Hibernate defaults to completely non-standard behavior for sequences, using the
     * "hilo" sequence generator by default. This irresponsible behavior means that
     * by default Hibernate code is incompatible with any code using sequences.
     * Since that is irresponsible and downright DUMB this reverts the behavior to
     * using sequences in their normal behavior.
     * See https://stackoverflow.com/questions/12745751/hibernate-sequencegenerator-and-allocationsize
     */
    serviceBuilder.applySetting("hibernate.id.new_generator_mappings", "true"); // MUST BE BEFORE config.configure

    m_hibernateOptions.forEach((option, value) -> serviceBuilder.applySetting(option, value));

    if (DeveloperOptions.getBool("hibernate.format_sql", true)) {
        serviceBuilder.applySetting("hibernate.format_sql", "true");
    }

    switch (m_mode) {
    default:
        throw new IllegalStateException("Mode: " + m_mode);
    case CREATE:
        serviceBuilder.applySetting("hbm2ddl.auto", "create");
        serviceBuilder.applySetting("hibernate.hbm2ddl.auto", "create");
        break;
    case NONE:
        serviceBuilder.applySetting("hbm2ddl.auto", "none");
        serviceBuilder.applySetting("hibernate.hbm2ddl.auto", "none");
        break;
    case UPDATE:
        serviceBuilder.applySetting("hbm2ddl.auto", "update");
        serviceBuilder.applySetting("hibernate.hbm2ddl.auto", "update");
        break;
    }

    // change settings
    for (IHibernateConfigListener listener : m_onConfigureList) {
        listener.onSettings(serviceBuilder);
    }

    ServiceRegistry reg = serviceBuilder.build();
    MetadataSources sources = new MetadataSources(reg);

    for (Class<?> clz : m_annotatedClassList)
        sources.addAnnotatedClass(clz);

    // add classes
    for (IHibernateConfigListener listener : m_onConfigureList) {
        listener.onAddSources(sources);
    }

    Metadata metaData = sources.getMetadataBuilder()
            .applyImplicitNamingStrategy(ImplicitNamingStrategyJpaCompliantImpl.INSTANCE).build();

    enhanceMappings(metaData);

    //for(Consumer<Configuration> listener : m_onConfigureList) {
    //   listener.accept(config);
    //}

    //-- Create the session factory: this completes the Hibernate config part.
    SessionFactoryBuilder sessionFactoryBuilder = metaData.getSessionFactoryBuilder();

    //      sessionFactoryBuilder.applyInterceptor( new CustomSessionFactoryInterceptor() );

    //sessionFactoryBuilder.addSessionFactoryObservers( new CustomSessionFactoryObserver() );

    // Apply a CDI BeanManager ( for JPA event listeners )
    //sessionFactoryBuilder.applyBeanManager( getBeanManager() );

    SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor) sessionFactoryBuilder.build();
    m_sessionFactory = sessionFactory;

    EventListenerRegistry listenerRegistry = sessionFactory.getServiceRegistry()
            .getService(EventListenerRegistry.class);
    if (m_beforeImagesEnabled) {
        // https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/chapters/events/Events.html
        listenerRegistry.prependListeners(EventType.POST_LOAD, new CreateBeforeImagePostLoadListener());
        listenerRegistry.prependListeners(EventType.INIT_COLLECTION, new CopyCollectionEventListener());
    }
    for (IHibernateConfigListener listener : m_onConfigureList) {
        listener.onAddListeners(listenerRegistry);
    }

    //-- Start DomUI/WebApp.core initialization: generalized database layer
    HibernateSessionMaker hsm;
    if (m_beforeImagesEnabled) {
        //-- We need the copy interceptor to handle these.
        hsm = dc -> {
            return m_sessionFactory.withOptions().interceptor(new BeforeImageInterceptor(dc.getBeforeCache()))
                    .openSession();
            //return m_sessionFactory.openSession(new BeforeImageInterceptor(dc.getBeforeCache()));
        };
    } else {
        hsm = dc -> m_sessionFactory.openSession();
    }

    //-- If no handlers are registered: register the default ones.
    if (m_handlers.size() == 0) {
        m_handlers.register(JdbcQueryExecutor.FACTORY);
        m_handlers.register(HibernateQueryExecutor.FACTORY);
    }

    m_contextSource = new HibernateLongSessionContextFactory(m_listeners, hsm, m_handlers);
    System.out.println("domui: Hibernate initialization took a whopping "
            + StringTool.strNanoTime(System.nanoTime() - ts));
}

From source file:vault.queryrouter.common.util.HibernateUtil.java

License:Apache License

private static void init() {

    //Standard hibernate XML
    StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder().configure();

    //Configuration from config file
    registryBuilder.applySetting("hibernate.connection.url", Constant.getBackendDbConnString());
    registryBuilder.applySetting("hibernate.connection.username", Constant.getBackendDbUsername());
    registryBuilder.applySetting("hibernate.connection.password", Constant.getBackendDbPassword());

    StandardServiceRegistry registry = registryBuilder.build();

    try {/*www. ja  v  a  2  s .co m*/
        sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();

    } catch (Throwable ex) {
        StandardServiceRegistryBuilder.destroy(registry);
        logger.error("Fail to init Hibernate", ex);
        throw new RuntimeException(ex);
    }
}