All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.as.jpa.hibernate5.JBossAppServerJtaPlatform Maven / Gradle / Ivy

/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or .
 */
package org.jboss.as.jpa.hibernate5;


import javax.transaction.TransactionManager;
import javax.transaction.TransactionSynchronizationRegistry;

import org.hibernate.engine.transaction.jta.platform.internal.JtaSynchronizationStrategy;
import org.hibernate.engine.transaction.jta.platform.internal.SynchronizationRegistryAccess;
import org.hibernate.engine.transaction.jta.platform.internal.SynchronizationRegistryBasedSynchronizationStrategy;

import org.jipijapa.plugin.spi.JtaManager;


/**
 * @author Steve Ebersole
 */
@SuppressWarnings({"unused", "WeakerAccess"})
public class JBossAppServerJtaPlatform
		extends org.hibernate.engine.transaction.jta.platform.internal.JBossAppServerJtaPlatform {

	private final JtaSynchronizationStrategy synchronizationStrategy;

	protected JtaManager getJtaManager() {
		return jtaManager;
	}

	private final JtaManager jtaManager;

	public JBossAppServerJtaPlatform(final JtaManager jtaManager) {
		this.jtaManager = jtaManager;
		this.synchronizationStrategy = new SynchronizationRegistryBasedSynchronizationStrategy( new SynchronizationRegistryAccess() {
			@Override
			public TransactionSynchronizationRegistry getSynchronizationRegistry() {
				return jtaManager.getSynchronizationRegistry();
			}
		} );
	}

	@Override
	protected boolean canCacheTransactionManager() {
		return true;
	}

	@Override
	protected TransactionManager locateTransactionManager() {
		return jtaManager.locateTransactionManager();
	}

	@Override
	protected JtaSynchronizationStrategy getSynchronizationStrategy() {
		return synchronizationStrategy;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy