Example usage for org.hibernate.cfg AvailableSettings JTA_PLATFORM

List of usage examples for org.hibernate.cfg AvailableSettings JTA_PLATFORM

Introduction

In this page you can find the example usage for org.hibernate.cfg AvailableSettings JTA_PLATFORM.

Prototype

String JTA_PLATFORM

To view the source code for org.hibernate.cfg AvailableSettings JTA_PLATFORM.

Click Source Link

Document

Names the org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform implementation to use for integrating with JTA systems.

Usage

From source file:com.baomidou.hibernateplus.HibernateSpringSessionFactoryBuilder.java

License:Apache License

/**
 * Set the Spring {@link JtaTransactionManager} or the JTA {@link TransactionManager}
 * to be used with Hibernate, if any. Allows for using a Spring-managed transaction
 * manager for Hibernate 5's session and cache synchronization, with the
 * "hibernate.transaction.jta.platform" automatically set to it.
 * <p>A passed-in Spring {@link JtaTransactionManager} needs to contain a JTA
 * {@link TransactionManager} reference to be usable here, except for the WebSphere
 * case where we'll automatically set {@code WebSphereExtendedJtaPlatform} accordingly.
 * <p>Note: If this is set, the Hibernate settings should not contain a JTA platform
 * setting to avoid meaningless double configuration.
 *///w  ww.  jav a2s  .co  m
public HibernateSpringSessionFactoryBuilder setJtaTransactionManager(Object jtaTransactionManager) {
    Assert.notNull(jtaTransactionManager, "Transaction manager reference must not be null");

    if (jtaTransactionManager instanceof JtaTransactionManager) {
        boolean webspherePresent = ClassUtils.isPresent("com.ibm.wsspi.uow.UOWManager",
                getClass().getClassLoader());
        if (webspherePresent) {
            getProperties().put(AvailableSettings.JTA_PLATFORM,
                    "org.hibernate.engine.transaction.jta.platform.internal.WebSphereExtendedJtaPlatform");
        } else {
            JtaTransactionManager jtaTm = (JtaTransactionManager) jtaTransactionManager;
            if (jtaTm.getTransactionManager() == null) {
                throw new IllegalArgumentException(
                        "Can only apply JtaTransactionManager which has a TransactionManager reference set");
            }
            getProperties().put(AvailableSettings.JTA_PLATFORM,
                    new HibernateConfigurableJtaPlatform(jtaTm.getTransactionManager(),
                            jtaTm.getUserTransaction(), jtaTm.getTransactionSynchronizationRegistry()));
        }
    } else if (jtaTransactionManager instanceof TransactionManager) {
        getProperties().put(AvailableSettings.JTA_PLATFORM,
                new HibernateConfigurableJtaPlatform((TransactionManager) jtaTransactionManager, null, null));
    } else {
        throw new IllegalArgumentException(
                "Unknown transaction manager type: " + jtaTransactionManager.getClass().getName());
    }

    // Hibernate 5.1/5.2: manually enforce connection release mode AFTER_STATEMENT (the JTA default)
    try {
        // Try Hibernate 5.2
        AvailableSettings.class.getField("CONNECTION_HANDLING");
        getProperties().put("hibernate.connection.handling_mode",
                "DELAYED_ACQUISITION_AND_RELEASE_AFTER_STATEMENT");
    } catch (NoSuchFieldException ex) {
        // Try Hibernate 5.1
        try {
            AvailableSettings.class.getField("ACQUIRE_CONNECTIONS");
            getProperties().put("hibernate.connection.release_mode", "AFTER_STATEMENT");
        } catch (NoSuchFieldException ex2) {
            // on Hibernate 5.0.x or lower - no need to change the default there
        }
    }

    return this;
}

From source file:org.babyfish.springframework.orm.hibernate.LocalXSessionFactoryBuilder.java

License:Open Source License

/**
 * Set the Spring {@link JtaTransactionManager} or the JTA {@link TransactionManager}
 * to be used with Hibernate, if any. Allows for using a Spring-managed transaction
 * manager for Hibernate 4's session and cache synchronization, with the
 * "hibernate.transaction.jta.platform" automatically set to it. Also sets
 * "hibernate.transaction.factory_class" to {@link CMTTransactionFactory},
 * instructing Hibernate to interact with externally managed transactions.
 * <p>A passed-in Spring {@link JtaTransactionManager} needs to contain a JTA
 * {@link TransactionManager} reference to be usable here, except for the WebSphere
 * case where we'll automatically set {@link WebSphereExtendedJtaPlatform} accordingly.
 * <p>Note: If this is set, the Hibernate settings should not contain a JTA platform
 * setting to avoid meaningless double configuration.
 *//*from ww  w. j ava  2  s .c o m*/
public LocalXSessionFactoryBuilder setJtaTransactionManager(Object jtaTransactionManager) {
    Assert.notNull(jtaTransactionManager, "Transaction manager reference must not be null");
    if (jtaTransactionManager instanceof JtaTransactionManager) {
        boolean webspherePresent = ClassUtils.isPresent("com.ibm.wsspi.uow.UOWManager",
                getClass().getClassLoader());
        if (webspherePresent) {
            getProperties().put(AvailableSettings.JTA_PLATFORM, new WebSphereExtendedJtaPlatform());
        } else {
            JtaTransactionManager jtaTm = (JtaTransactionManager) jtaTransactionManager;
            if (jtaTm.getTransactionManager() == null) {
                throw new IllegalArgumentException(
                        "Can only apply JtaTransactionManager which has a TransactionManager reference set");
            }
            getProperties().put(AvailableSettings.JTA_PLATFORM,
                    new ConfigurableJtaPlatform(jtaTm.getTransactionManager(), jtaTm.getUserTransaction()));
        }
    } else if (jtaTransactionManager instanceof TransactionManager) {
        getProperties().put(AvailableSettings.JTA_PLATFORM,
                new ConfigurableJtaPlatform((TransactionManager) jtaTransactionManager, null));
    } else {
        throw new IllegalArgumentException(
                "Unknown transaction manager type: " + jtaTransactionManager.getClass().getName());
    }
    getProperties().put(AvailableSettings.TRANSACTION_STRATEGY, new CMTTransactionFactory());
    return this;
}

From source file:org.everit.osgi.hibernate.adapter.HibernatePersistenceProvider.java

License:Open Source License

protected Map<?, ?> generateExtendedSettings(final Map<?, ?> map) {
    Map<Object, Object> result = null;
    if (map == null) {
        result = new ConcurrentHashMap<Object, Object>();
    } else {/*from w  w  w  .  jav a 2 s  .c o  m*/
        result = new ConcurrentHashMap<Object, Object>(map);
    }
    result.put("javax.persistence.validation.factory", getValidatorFactory());
    result.put(AvailableSettings.JTA_CACHE_TM, false);
    result.put(AvailableSettings.JTA_CACHE_UT, false);

    OsgiJtaPlatform osgiJtaPlatform = new OsgiJtaPlatform(transactionManagerTracker, userTransactionTracker);
    osgiJtaPlatform.configure(result);
    result.put(AvailableSettings.JTA_PLATFORM, osgiJtaPlatform);
    return result;
}

From source file:org.infinispan.test.hibernate.cache.commons.functional.AbstractFunctionalTest.java

License:LGPL

@Override
@SuppressWarnings("unchecked")
protected void addSettings(Map settings) {
    super.addSettings(settings);

    settings.put(Environment.USE_SECOND_LEVEL_CACHE, "true");
    settings.put(Environment.GENERATE_STATISTICS, "true");
    settings.put(Environment.USE_QUERY_CACHE, String.valueOf(getUseQueryCache()));
    settings.put(Environment.CACHE_REGION_FACTORY,
            TestRegionFactoryProvider.load().getRegionFactoryClass().getName());
    settings.put(Environment.CACHE_KEYS_FACTORY, SimpleCacheKeysFactory.SHORT_NAME);
    settings.put(TestRegionFactory.TRANSACTIONAL, useTransactionalCache());
    settings.put(TestRegionFactory.CACHE_MODE, cacheMode);
    settings.put(TestRegionFactory.STATS, stats);

    settings.put(AvailableSettings.JTA_PLATFORM, jtaPlatformClass.getName());
    settings.put(Environment.TRANSACTION_COORDINATOR_STRATEGY, transactionCoordinatorBuilderClass.getName());
    if (connectionProviderClass != null) {
        settings.put(Environment.CONNECTION_PROVIDER, connectionProviderClass.getName());
    }/*from w w  w .ja v  a  2s. c  om*/
}

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

License:LGPL

@SuppressWarnings("unchecked")
public static Map buildBaselineSettings(String regionPrefix, boolean use2ndLevel, boolean useQueries,
        Class<? extends JtaPlatform> jtaPlatform) {
    Map settings = new HashMap();

    settings.put(AvailableSettings.GENERATE_STATISTICS, "true");
    settings.put(AvailableSettings.USE_STRUCTURED_CACHE, "true");
    if (jtaPlatform == null || jtaPlatform == NoJtaPlatform.class) {
        settings.put(Environment.TRANSACTION_COORDINATOR_STRATEGY,
                JdbcResourceLocalTransactionCoordinatorBuilderImpl.class.getName());
        settings.put(AvailableSettings.JTA_PLATFORM, NoJtaPlatform.class);
    } else {/*from  w w  w  .j a va 2s.  co m*/
        settings.put(Environment.TRANSACTION_COORDINATOR_STRATEGY,
                JtaTransactionCoordinatorBuilderImpl.class.getName());
        settings.put(AvailableSettings.JTA_PLATFORM, jtaPlatform);
    }
    settings.put(AvailableSettings.CACHE_REGION_FACTORY,
            TestRegionFactoryProvider.load().getRegionFactoryClass());
    settings.put(AvailableSettings.CACHE_REGION_PREFIX, regionPrefix);
    settings.put(AvailableSettings.USE_SECOND_LEVEL_CACHE, String.valueOf(use2ndLevel));
    settings.put(AvailableSettings.USE_QUERY_CACHE, String.valueOf(useQueries));

    return settings;
}

From source file:org.infinispan.test.hibernate.cache.functional.AbstractFunctionalTest.java

License:LGPL

@Override
@SuppressWarnings("unchecked")
protected void addSettings(Map settings) {
    super.addSettings(settings);

    settings.put(Environment.USE_SECOND_LEVEL_CACHE, "true");
    settings.put(Environment.GENERATE_STATISTICS, "true");
    settings.put(Environment.USE_QUERY_CACHE, String.valueOf(getUseQueryCache()));
    settings.put(Environment.CACHE_REGION_FACTORY, getRegionFactoryClass().getName());
    settings.put(Environment.CACHE_KEYS_FACTORY, SimpleCacheKeysFactory.SHORT_NAME);
    settings.put(TestInfinispanRegionFactory.TRANSACTIONAL, useTransactionalCache);
    settings.put(TestInfinispanRegionFactory.CACHE_MODE, cacheMode);

    if (jtaPlatformClass != null) {
        settings.put(AvailableSettings.JTA_PLATFORM, jtaPlatformClass.getName());
    }/*from  w  w w.j  a  va  2 s.  c om*/
    settings.put(Environment.TRANSACTION_COORDINATOR_STRATEGY, transactionCoordinatorBuilderClass.getName());
    if (connectionProviderClass != null) {
        settings.put(Environment.CONNECTION_PROVIDER, connectionProviderClass.getName());
    }
}

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

License:LGPL

@SuppressWarnings("unchecked")
public static Map buildBaselineSettings(String regionPrefix, Class regionFactory, boolean use2ndLevel,
        boolean useQueries, Class<? extends JtaPlatform> jtaPlatform) {
    Map settings = new HashMap();

    settings.put(AvailableSettings.GENERATE_STATISTICS, "true");
    settings.put(AvailableSettings.USE_STRUCTURED_CACHE, "true");
    if (jtaPlatform == null) {
        settings.put(Environment.TRANSACTION_COORDINATOR_STRATEGY,
                JdbcResourceLocalTransactionCoordinatorBuilderImpl.class.getName());
    } else {// w  w  w.  jav  a 2 s.co m
        settings.put(Environment.TRANSACTION_COORDINATOR_STRATEGY,
                JtaTransactionCoordinatorBuilderImpl.class.getName());
        settings.put(AvailableSettings.JTA_PLATFORM, jtaPlatform);
    }
    settings.put(AvailableSettings.CACHE_REGION_FACTORY, regionFactory.getName());
    settings.put(AvailableSettings.CACHE_REGION_PREFIX, regionPrefix);
    settings.put(AvailableSettings.USE_SECOND_LEVEL_CACHE, String.valueOf(use2ndLevel));
    settings.put(AvailableSettings.USE_QUERY_CACHE, String.valueOf(useQueries));

    return settings;
}

From source file:org.jboss.additional.testsuite.jdkall.past.jpa.hibernate.secondlevelcache.SFSB.java

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public void setupConfig() {
    // static {// www.  java2s .co  m
    try {

        // prepare the configuration
        Configuration configuration = new Configuration()
                .setProperty(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
        configuration.getProperties().put(AvailableSettings.JTA_PLATFORM, JBossAppServerJtaPlatform.class);
        configuration.getProperties().put(AvailableSettings.TRANSACTION_COORDINATOR_STRATEGY, "jta");
        configuration.setProperty(Environment.HBM2DDL_AUTO, "create-drop");
        configuration.setProperty(Environment.DATASOURCE, "java:jboss/datasources/ExampleDS");
        // fetch the properties
        Properties properties = new Properties();
        configuration = configuration.configure("hibernate.cfg.xml");
        properties.putAll(configuration.getProperties());
        Environment.verifyProperties(properties);
        ConfigurationHelper.resolvePlaceHolders(properties);

        sessionFactory = configuration.buildSessionFactory();

    } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed
        ex.printStackTrace();
        throw new ExceptionInInitializerError(ex);
    }
}

From source file:org.jboss.as.jpa.hibernate.HibernatePersistenceProviderAdaptor.java

License:Open Source License

@Override
public void addProviderProperties(Map properties, PersistenceUnitMetadata pu) {
    properties.put(Configuration.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
    properties.put(org.hibernate.ejb.AvailableSettings.SCANNER,
            "org.jboss.as.jpa.hibernate.HibernateAnnotationScanner");
    properties.put(AvailableSettings.APP_CLASSLOADER, pu.getClassLoader());
    properties.put(AvailableSettings.JTA_PLATFORM, new JBossAppServerJtaPlatform());
}

From source file:org.jboss.as.jpa.hibernate4.HibernatePersistenceProviderAdaptor.java

License:Open Source License

@SuppressWarnings("deprecation")
@Override//  w  w  w. j a  v a 2s  .  co  m
public void addProviderProperties(Map properties, PersistenceUnitMetadata pu) {
    putPropertyIfAbsent(pu, properties, AvailableSettings.JPAQL_STRICT_COMPLIANCE, "true"); // JIPI-24 ignore jpql aliases case
    putPropertyIfAbsent(pu, properties, Configuration.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
    putPropertyIfAbsent(pu, properties, org.hibernate.ejb.AvailableSettings.SCANNER,
            HibernateArchiveScanner.class.getName());
    properties.put(AvailableSettings.APP_CLASSLOADER, pu.getClassLoader());
    putPropertyIfAbsent(pu, properties, AvailableSettings.JTA_PLATFORM,
            new JBossAppServerJtaPlatform(jtaManager));
    putPropertyIfAbsent(pu, properties, org.hibernate.ejb.AvailableSettings.ENTITY_MANAGER_FACTORY_NAME,
            pu.getScopedPersistenceUnitName());
    putPropertyIfAbsent(pu, properties, AvailableSettings.SESSION_FACTORY_NAME,
            pu.getScopedPersistenceUnitName());
    if (!pu.getProperties().containsKey(AvailableSettings.SESSION_FACTORY_NAME)) {
        putPropertyIfAbsent(pu, properties, AvailableSettings.SESSION_FACTORY_NAME_IS_JNDI, Boolean.FALSE);
    }
}