diff --git a/documentation/src/main/asciidoc/userguide/chapters/transactions/Transactions.adoc b/documentation/src/main/asciidoc/userguide/chapters/transactions/Transactions.adoc index 84d649a26f34..ae8c521d1d1c 100644 --- a/documentation/src/main/asciidoc/userguide/chapters/transactions/Transactions.adoc +++ b/documentation/src/main/asciidoc/userguide/chapters/transactions/Transactions.adoc @@ -76,22 +76,13 @@ Hibernate tries to discover the `JtaPlatform` it should use through the use of a If that resolution does not work, or if you wish to provide a custom implementation you will need to specify the `hibernate.transaction.jta.platform` setting. Hibernate provides many implementations of the `JtaPlatform` contract, all with short names: -`Atomikos`:: `JtaPlatform` for Atomikos. -`Borland`:: `JtaPlatform` for the Borland Enterprise Server. -`Bitronix`:: `JtaPlatform` for Bitronix. `JBossAS`:: `JtaPlatform` for Arjuna/JBossTransactions/Narayana when used within the JBoss/WildFly Application Server. `JBossTS`:: `JtaPlatform` for Arjuna/JBossTransactions/Narayana when used standalone. -`JOnAS`:: `JtaPlatform` for JOTM when used within JOnAS. -`JOTM`:: `JtaPlatform` for JOTM when used standalone. -`JRun4`:: `JtaPlatform` for the JRun 4 Application Server. -`OC4J`:: `JtaPlatform` for Oracle's OC4J container. -`Orion`:: `JtaPlatform` for the Orion Application Server. +`Atomikos`:: `JtaPlatform` for Atomikos. +`GlassFish`, `Payara`:: `JtaPlatform` for GlassFish or Payara. `Resin`:: `JtaPlatform` for the Resin Application Server. -`SapNetWeaver`:: `JtaPlatform` for the SAP NetWeaver Application Server. -`SunOne`:: `JtaPlatform` for the SunOne Application Server. `Weblogic`:: `JtaPlatform` for the Weblogic Application Server. -`WebSphere`:: `JtaPlatform` for older versions of the WebSphere Application Server. -`WebSphereExtended`:: `JtaPlatform` for newer versions of the WebSphere Application Server. +`WebSphere`, `WebSphereLiberty`:: `JtaPlatform` for newer versions of the WebSphere Application Server. [[transactions-api]] === Hibernate Transaction API diff --git a/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/DefaultJtaPlatformSelector.java b/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/DefaultJtaPlatformSelector.java index 5ff662d7e140..1129f5e0f426 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/DefaultJtaPlatformSelector.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/DefaultJtaPlatformSelector.java @@ -7,20 +7,10 @@ import java.util.Objects; import org.hibernate.engine.transaction.jta.platform.internal.AtomikosJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.BitronixJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.BorlandEnterpriseServerJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.JBossAppServerJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.JBossStandAloneJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.JOTMJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.JOnASJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.JRun4JtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.OC4JJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.OrionJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.ResinJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.SapNetWeaverJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.SunOneJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.WebSphereExtendedJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.WebSphereJtaPlatform; +import org.hibernate.engine.transaction.jta.platform.internal.GlassFishJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.WebSphereLibertyJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.WeblogicJtaPlatform; import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform; @@ -30,109 +20,46 @@ public class DefaultJtaPlatformSelector implements LazyServiceResolver resolve(final String name) { Objects.requireNonNull( name); - if ( name.isEmpty() ) { + if ( name.isBlank() ) { return null; } - //Let's organize all string matches in groups by first letter: - final char n = name.charAt( 0 ); - switch ( n ) { - case 'B': return caseB( name ); - case 'J': return caseJ( name ); - case 'W': return caseW( name ); - case 'o': return caseLegacy( name, this ); - default: return caseOthers( name ); + else if ( name.startsWith( "org." ) ) { + return legacy( name, this ); + } + else { + return switch ( name ) { + case "JBossAS" -> JBossAppServerJtaPlatform.class; + case "JBossTS" -> JBossStandAloneJtaPlatform.class; + case "Weblogic" -> WeblogicJtaPlatform.class; + case "WebSphere", "WebSphereLiberty" -> WebSphereLibertyJtaPlatform.class; + case "Atomikos" -> AtomikosJtaPlatform.class; + case "Resin" -> ResinJtaPlatform.class; + case "GlassFish", "Payara", "SunOne" -> GlassFishJtaPlatform.class; + default -> null; + }; } } - private static Class caseB(final String name) { - if ( "Bitronix".equals( name ) ) { - return BitronixJtaPlatform.class; - } - if ( "Borland".equals( name ) ) { - return BorlandEnterpriseServerJtaPlatform.class; - } - return null; - } - - private static Class caseJ(final String name) { - if ( "JBossAS".equals( name ) ) { - return JBossAppServerJtaPlatform.class; - } - if ( "JBossTS".equals( name ) ) { - return JBossStandAloneJtaPlatform.class; - } - if ( "JOnAS".equals( name ) ) { - return JOnASJtaPlatform.class; - } - if ( "JOTM".equals( name ) ) { - return JOTMJtaPlatform.class; - } - if ( "JRun4".equals( name ) ) { - return JRun4JtaPlatform.class; - } - return null; - } - - private static Class caseW(final String name) { - if ( "Weblogic".equals( name ) ) { - return WeblogicJtaPlatform.class; - } - if ( "WebSphereLiberty".equals( name ) ) { - return WebSphereLibertyJtaPlatform.class; - } - if ( "WebSphere".equals( name ) ) { - return WebSphereJtaPlatform.class; - } - if ( "WebSphereExtended".equals( name ) ) { - return WebSphereExtendedJtaPlatform.class; - } - return null; - } - - private static Class caseOthers(final String name) { - if ( "Atomikos".equals( name ) ) { - return AtomikosJtaPlatform.class; - } - if ( "OC4J".equals( name ) ) { - return OC4JJtaPlatform.class; - } - if ( "Orion".equals( name ) ) { - return OrionJtaPlatform.class; - } - if ( "Resin".equals( name ) ) { - return ResinJtaPlatform.class; - } - if ( "SapNetWeaver".equals( name ) ) { - return SapNetWeaverJtaPlatform.class; - } - if ( "SunOne".equals( name ) ) { - return SunOneJtaPlatform.class; - } - return null; - } /** * Special case: we have several old fully qualified classnames which need to * be remapped to their new names for backwards compatibility reasons. */ - private static Class caseLegacy( + private static Class legacy( final String name, final DefaultJtaPlatformSelector defaultJtaPlatformSelector) { //First, let's deal with the special cases which don't follow any recognizable pattern: - if ( name.equals( "org.hibernate.service.jta.platform.internal.BorlandEnterpriseServerJtaPlatform" ) ) { - return BorlandEnterpriseServerJtaPlatform.class; - } - if ( name.equals( "org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" ) ) { - return JBossAppServerJtaPlatform.class; - } - if ( name.equals( "org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform" ) ) { - return JBossStandAloneJtaPlatform.class; - } - //This one shouldn't be necessary as it matches the implementation FQN, but let's translate the existing - //code faithfully. - if ( name.equals( "org.hibernate.engine.transaction.jta.platform.internal.WebSphereLibertyJtaPlatform" ) ) { - return WebSphereLibertyJtaPlatform.class; + switch ( name ) { + case "org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" -> { + return JBossAppServerJtaPlatform.class; + } + case "org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform" -> { + return JBossStandAloneJtaPlatform.class; + } + case "org.hibernate.engine.transaction.jta.platform.internal.WebSphereLibertyJtaPlatform" -> { + return WebSphereLibertyJtaPlatform.class; + } } //All other ones follow a pattern, beginning with the same prefix and ending with the same postfix, diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/AbstractJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/AbstractJtaPlatform.java index 42ade53e7c23..4b2e4127cfb1 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/AbstractJtaPlatform.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/AbstractJtaPlatform.java @@ -11,17 +11,19 @@ import jakarta.transaction.TransactionManager; import jakarta.transaction.UserTransaction; -import org.hibernate.cfg.AvailableSettings; import org.hibernate.engine.jndi.spi.JndiService; import org.hibernate.engine.transaction.internal.jta.JtaStatusHelper; import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform; import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatformException; -import org.hibernate.internal.util.config.ConfigurationHelper; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.spi.Configurable; import org.hibernate.service.spi.ServiceRegistryAwareService; import org.hibernate.service.spi.ServiceRegistryImplementor; +import static org.hibernate.cfg.TransactionSettings.JTA_CACHE_TM; +import static org.hibernate.cfg.TransactionSettings.JTA_CACHE_UT; +import static org.hibernate.internal.util.config.ConfigurationHelper.getBoolean; + /** * @author Steve Ebersole */ @@ -43,7 +45,7 @@ private final class TransactionManagerBasedSynchronizationStrategy implements Jt @Override public void registerSynchronization(Synchronization synchronization) { try { - AbstractJtaPlatform.this.getTransactionManager().getTransaction().registerSynchronization( synchronization ); + getTransactionManager().getTransaction().registerSynchronization( synchronization ); } catch (Exception e) { throw new JtaPlatformException( "Could not access JTA Transaction to register synchronization", e ); @@ -52,7 +54,7 @@ public void registerSynchronization(Synchronization synchronization) { @Override public boolean canRegisterSynchronization() { - return JtaStatusHelper.isActive( AbstractJtaPlatform.this.getTransactionManager() ); + return JtaStatusHelper.isActive( getTransactionManager() ); } } @@ -68,16 +70,8 @@ protected JndiService jndiService() { protected abstract UserTransaction locateUserTransaction(); public void configure(Map configValues) { - cacheTransactionManager = ConfigurationHelper.getBoolean( - AvailableSettings.JTA_CACHE_TM, - configValues, - canCacheTransactionManagerByDefault() - ); - cacheUserTransaction = ConfigurationHelper.getBoolean( - AvailableSettings.JTA_CACHE_UT, - configValues, - canCacheUserTransactionByDefault() - ); + cacheTransactionManager = getBoolean( JTA_CACHE_TM, configValues, canCacheTransactionManagerByDefault() ); + cacheUserTransaction = getBoolean( JTA_CACHE_UT, configValues, canCacheUserTransactionByDefault() ); } protected boolean canCacheTransactionManagerByDefault() { @@ -126,7 +120,9 @@ public UserTransaction retrieveUserTransaction() { } return userTransaction; } - return locateUserTransaction(); + else { + return locateUserTransaction(); + } } @Override diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/BitronixJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/BitronixJtaPlatform.java deleted file mode 100644 index 3a993a228cec..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/BitronixJtaPlatform.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import java.lang.reflect.Method; -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -import org.hibernate.boot.registry.classloading.spi.ClassLoaderService; -import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatformException; - -/** - * @author Steve Ebersole - */ -public class BitronixJtaPlatform extends AbstractJtaPlatform { - public static final String TM_CLASS_NAME = "bitronix.tm.TransactionManagerServices"; - - @Override - protected TransactionManager locateTransactionManager() { - try { - final Method getTransactionManagerMethod = - serviceRegistry().requireService( ClassLoaderService.class ) - .classForName( TM_CLASS_NAME ) - .getMethod( "getTransactionManager" ); - return (TransactionManager) getTransactionManagerMethod.invoke( null ); - } - catch (Exception e) { - throw new JtaPlatformException( "Could not locate Bitronix TransactionManager", e ); - } - } - - @Override - protected UserTransaction locateUserTransaction() { - return (UserTransaction) jndiService().locate( "java:comp/UserTransaction" ); - } -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/BorlandEnterpriseServerJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/BorlandEnterpriseServerJtaPlatform.java deleted file mode 100644 index 6fac084a759e..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/BorlandEnterpriseServerJtaPlatform.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -/** - * @author Steve Ebersole - */ -public class BorlandEnterpriseServerJtaPlatform extends AbstractJtaPlatform { - protected static final String TM_NAME = "java:pm/TransactionManager"; - protected static final String UT_NAME = "java:comp/UserTransaction"; - - @Override - protected TransactionManager locateTransactionManager() { - return (TransactionManager) jndiService().locate( TM_NAME ); - } - - @Override - protected UserTransaction locateUserTransaction() { - return (UserTransaction) jndiService().locate( UT_NAME ); - } -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/SunOneJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/GlassFishJtaPlatform.java similarity index 93% rename from hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/SunOneJtaPlatform.java rename to hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/GlassFishJtaPlatform.java index a5cf93639f6f..e0ef2b5f694e 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/SunOneJtaPlatform.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/GlassFishJtaPlatform.java @@ -15,7 +15,7 @@ * @author Emmanuel Bernard * @author Steve Ebersole */ -public class SunOneJtaPlatform extends AbstractJtaPlatform { +public class GlassFishJtaPlatform extends AbstractJtaPlatform { public static final String TM_NAME = "java:appserver/TransactionManager"; public static final String UT_NAME = "java:comp/UserTransaction"; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JBossAppServerJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JBossAppServerJtaPlatform.java index e0784228fe1f..05951bfd2cf3 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JBossAppServerJtaPlatform.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JBossAppServerJtaPlatform.java @@ -25,11 +25,6 @@ protected boolean canCacheUserTransactionByDefault() { return true; } - @Override - protected boolean canCacheTransactionManagerByDefault() { - return true; - } - @Override protected TransactionManager locateTransactionManager() { try { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JOTMJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JOTMJtaPlatform.java deleted file mode 100644 index e038df6c6816..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JOTMJtaPlatform.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -import org.hibernate.boot.registry.classloading.spi.ClassLoaderService; -import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatformException; - -/** - * @author Steve Ebersole - */ -public class JOTMJtaPlatform extends AbstractJtaPlatform { - public static final String TM_CLASS_NAME = "org.objectweb.jotm.Current"; - public static final String UT_NAME = "java:comp/UserTransaction"; - - @Override - protected TransactionManager locateTransactionManager() { - try { - return (TransactionManager) serviceRegistry() - .requireService( ClassLoaderService.class ) - .classForName( TM_CLASS_NAME ) - .getMethod( "getTransactionManager" ) - .invoke( null, (Object[]) null ); - } - catch (Exception e) { - throw new JtaPlatformException( "Could not obtain JOTM transaction manager instance", e ); - } - } - - @Override - protected UserTransaction locateUserTransaction() { - return (UserTransaction) jndiService().locate( UT_NAME ); - } -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JOnASJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JOnASJtaPlatform.java deleted file mode 100644 index 0c824ecc1892..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JOnASJtaPlatform.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import java.lang.reflect.Method; -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatformException; - -/** - * JTA platform implementation for JOnAS - * - * @author Steve Ebersole - */ -public class JOnASJtaPlatform extends AbstractJtaPlatform { - public static final String UT_NAME = "java:comp/UserTransaction"; - public static final String TM_CLASS_NAME = "org.objectweb.jonas_tm.Current"; - - @Override - protected TransactionManager locateTransactionManager() { - try { - final Class clazz = Class.forName( TM_CLASS_NAME ); - final Method getTransactionManagerMethod = clazz.getMethod( "getTransactionManager" ); - return (TransactionManager) getTransactionManagerMethod.invoke( null ); - } - catch (Exception e) { - throw new JtaPlatformException( "Could not obtain JOnAS transaction manager instance", e ); - } - } - - @Override - protected UserTransaction locateUserTransaction() { - return (UserTransaction) jndiService().locate( UT_NAME ); - } -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JRun4JtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JRun4JtaPlatform.java deleted file mode 100644 index 0eae843016a4..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/JRun4JtaPlatform.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -/** - * {@link org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform} implementation for JRun4 AS - * - * @author Joseph Bissen - * @author Steve Ebersole - */ -public class JRun4JtaPlatform extends AbstractJtaPlatform { - public static final String TM_NAME = "java:/TransactionManager"; - public static final String UT_NAME = "java:comp/UserTransaction"; - - @Override - protected TransactionManager locateTransactionManager() { - return (TransactionManager) jndiService().locate( TM_NAME ); - } - - @Override - protected UserTransaction locateUserTransaction() { - return (UserTransaction) jndiService().locate( UT_NAME ); - } -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/OC4JJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/OC4JJtaPlatform.java deleted file mode 100644 index 9a0117101515..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/OC4JJtaPlatform.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -/** - * {@link org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform} implementation for the OC4J (Oracle) AS. - * - * @author Stijn Janssens - * @author Steve Ebersole - */ -public class OC4JJtaPlatform extends AbstractJtaPlatform { - public static final String TM_NAME = "java:comp/pm/TransactionManager"; - public static final String UT_NAME = "java:comp/UserTransaction"; - - @Override - protected TransactionManager locateTransactionManager() { - return (TransactionManager) jndiService().locate( TM_NAME ); - } - - @Override - protected UserTransaction locateUserTransaction() { - return (UserTransaction) jndiService().locate( UT_NAME ); - } -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/OrionJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/OrionJtaPlatform.java deleted file mode 100644 index 44acc93437d6..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/OrionJtaPlatform.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -/** - * {@link org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform} implementation for Orion - * - * @author Gavin King - * @author Steve Ebersole - */ -public class OrionJtaPlatform extends AbstractJtaPlatform { - public static final String TM_NAME = "java:comp/UserTransaction"; - public static final String UT_NAME = "java:comp/UserTransaction"; - - @Override - protected TransactionManager locateTransactionManager() { - return (TransactionManager) jndiService().locate( TM_NAME ); - } - - @Override - protected UserTransaction locateUserTransaction() { - return (UserTransaction) jndiService().locate( UT_NAME ); - } -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/SapNetWeaverJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/SapNetWeaverJtaPlatform.java deleted file mode 100644 index 49e27459fd26..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/SapNetWeaverJtaPlatform.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -/** - * {@link org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform} implementation for SAP NetWeaver - * - * @author Lukas Pradel - */ -public class SapNetWeaverJtaPlatform extends AbstractJtaPlatform { - public static final String TM_NAME = "TransactionManager"; - public static final String UT_NAME = "UserTransaction"; - - @Override - protected TransactionManager locateTransactionManager() { - return (TransactionManager) jndiService().locate( TM_NAME ); - } - - @Override - protected UserTransaction locateUserTransaction() { - return (UserTransaction) jndiService().locate( UT_NAME ); - } -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/StandardJtaPlatformResolver.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/StandardJtaPlatformResolver.java index 63c2c7c131b0..613a10b01bad 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/StandardJtaPlatformResolver.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/StandardJtaPlatformResolver.java @@ -24,13 +24,13 @@ public class StandardJtaPlatformResolver implements JtaPlatformResolver { private static final Logger log = Logger.getLogger( StandardJtaPlatformResolver.class ); @Override - public JtaPlatform resolveJtaPlatform(Map configurationValues, ServiceRegistryImplementor registry) { + public JtaPlatform resolveJtaPlatform(Map configurationValues, ServiceRegistryImplementor registry) { final ClassLoaderService classLoaderService = registry.requireService( ClassLoaderService.class ); // Initially look for a JtaPlatformProvider for ( JtaPlatformProvider provider : classLoaderService.loadJavaServices( JtaPlatformProvider.class ) ) { final JtaPlatform providedPlatform = provider.getProvidedJtaPlatform(); - log.tracef( "Located JtaPlatformProvider [%s] provided JtaPlaform : %s", provider, providedPlatform ); + log.tracef( "Located JtaPlatformProvider [%s] provided JtaPlatform : %s", provider, providedPlatform ); if ( providedPlatform!= null ) { return providedPlatform; } @@ -88,30 +88,6 @@ public JtaPlatform resolveJtaPlatform(Map configurationValues, ServiceRegistryIm catch (ClassLoadingException ignore) { } - // Bitronix ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - try { - classLoaderService.classForName( BitronixJtaPlatform.TM_CLASS_NAME ); - return new BitronixJtaPlatform(); - } - catch (ClassLoadingException ignore) { - } - - // JOnAS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - try { - classLoaderService.classForName( JOnASJtaPlatform.TM_CLASS_NAME ); - return new JOnASJtaPlatform(); - } - catch (ClassLoadingException ignore) { - } - - // JOTM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - try { - classLoaderService.classForName( JOTMJtaPlatform.TM_CLASS_NAME ); - return new JOTMJtaPlatform(); - } - catch (ClassLoadingException ignore) { - } - // WebSphere Liberty ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ try { classLoaderService.classForName(WebSphereLibertyJtaPlatform.TMF_CLASS_NAME); @@ -120,17 +96,6 @@ public JtaPlatform resolveJtaPlatform(Map configurationValues, ServiceRegistryIm catch (ClassLoadingException ignore) { } - // WebSphere traditional ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - for ( WebSphereJtaPlatform.WebSphereEnvironment webSphereEnvironment - : WebSphereJtaPlatform.WebSphereEnvironment.values() ) { - try { - Class accessClass = classLoaderService.classForName( webSphereEnvironment.getTmAccessClassName() ); - return new WebSphereJtaPlatform( accessClass, webSphereEnvironment ); - } - catch (ClassLoadingException ignore) { - } - } - // Finally, return the default... log.debugf( "Could not resolve JtaPlatform, using default [%s]", NoJtaPlatform.class.getName() ); return NoJtaPlatform.INSTANCE; diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java deleted file mode 100644 index 514f1c5fad44..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereExtendedJtaPlatform.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import jakarta.transaction.NotSupportedException; -import jakarta.transaction.RollbackException; -import jakarta.transaction.Status; -import jakarta.transaction.Synchronization; -import jakarta.transaction.SystemException; -import jakarta.transaction.Transaction; -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -import org.checkerframework.checker.nullness.qual.Nullable; - -import javax.transaction.xa.XAResource; - -import org.hibernate.HibernateException; - -/** - * JTA platform implementation intended for use with WebSphere Application Server (WAS). - *

- * WAS, unlike every other app server on the planet, does not allow direct access to the JTS TransactionManager. - * Instead, for common transaction-related tasks users must utilize a proprietary API known as ExtendedJTATransaction. - *

- * Even more unfortunate, the exact TransactionManagerLookup to use inside of WAS is highly dependent upon

- *

- * This class is reported to work on WAS version 6 in any of the standard J2EE/Java EE component containers. - * - * @author Gavin King - * @author Jesper Udby - * @author Steve Ebersole - */ -public class WebSphereExtendedJtaPlatform extends AbstractJtaPlatform { - public static final String UT_NAME = "java:comp/UserTransaction"; - - @Override - protected boolean canCacheTransactionManager() { - return true; - } - - @Override - protected TransactionManager locateTransactionManager() { - return new TransactionManagerAdapter(); - } - - @Override - protected UserTransaction locateUserTransaction() { - return (UserTransaction) jndiService().locate( UT_NAME ); - } - - @Override - public Object getTransactionIdentifier(Transaction transaction) { - // WebSphere, however, is not a sane Java EE/JTA container... - return transaction.hashCode(); - } - - public class TransactionManagerAdapter implements TransactionManager { - private final Class synchronizationCallbackClass; - private final Method registerSynchronizationMethod; - private final Method getLocalIdMethod; - private Object extendedJTATransaction; - - private TransactionManagerAdapter() throws HibernateException { - try { - synchronizationCallbackClass = Class.forName( "com.ibm.websphere.jtaextensions.SynchronizationCallback" ); - Class extendedJTATransactionClass = Class.forName( "com.ibm.websphere.jtaextensions.ExtendedJTATransaction" ); - registerSynchronizationMethod = extendedJTATransactionClass.getMethod( - "registerSynchronizationCallbackForCurrentTran", - synchronizationCallbackClass ); - getLocalIdMethod = extendedJTATransactionClass.getMethod( "getLocalId", (Class[]) null ); - } - catch ( ClassNotFoundException cnfe ) { - throw new HibernateException( cnfe ); - } - catch ( NoSuchMethodException nsme ) { - throw new HibernateException( nsme ); - } - } - - @Override - public void begin() throws NotSupportedException, SystemException { - throw new UnsupportedOperationException(); - } - - @Override - public void commit() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - @Override - public int getStatus() throws SystemException { - return getTransaction() == null ? Status.STATUS_NO_TRANSACTION : getTransaction().getStatus(); - } - - @Override - public Transaction getTransaction() throws SystemException { - return new TransactionAdapter(); - } - - @Override - public void resume(Transaction txn) throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - @Override - public void rollback() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - @Override - public void setRollbackOnly() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - @Override - public void setTransactionTimeout(int i) throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - @Override - public Transaction suspend() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - public class TransactionAdapter implements Transaction { - - private TransactionAdapter() { - if ( extendedJTATransaction == null ) { - extendedJTATransaction = jndiService().locate( "java:comp/websphere/ExtendedJTATransaction" ); - } - } - - @Override - public void registerSynchronization(final Synchronization synchronization) - throws RollbackException, IllegalStateException, - SystemException { - - final InvocationHandler ih = new InvocationHandler() { - - @Override - public @Nullable Object invoke(Object proxy, Method method, Object[] args) throws Throwable { - if ( "afterCompletion".equals( method.getName() ) ) { - int status = args[2].equals(Boolean.TRUE) ? - Status.STATUS_COMMITTED : - Status.STATUS_UNKNOWN; - synchronization.afterCompletion(status); - } - else if ( "beforeCompletion".equals( method.getName() ) ) { - synchronization.beforeCompletion(); - } - else if ( "toString".equals( method.getName() ) ) { - return synchronization.toString(); - } - return null; - } - - }; - - final Object synchronizationCallback = Proxy.newProxyInstance( - getClass().getClassLoader(), - new Class[] {synchronizationCallbackClass}, - ih - ); - - try { - registerSynchronizationMethod.invoke( extendedJTATransaction, synchronizationCallback ); - } - catch (Exception e) { - throw new HibernateException(e); - } - - } - - @Override - public int hashCode() { - return getLocalId().hashCode(); - } - - @Override - public boolean equals(@Nullable Object other) { - if ( !(other instanceof TransactionAdapter that) ) { - return false; - } - return getLocalId().equals( that.getLocalId() ); - } - - private Object getLocalId() throws HibernateException { - try { - return getLocalIdMethod.invoke( extendedJTATransaction, (Object[]) null ); - } - catch ( Exception e ) { - throw new HibernateException( e ); - } - } - - @Override - public void commit() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - @Override - public boolean delistResource(XAResource resource, int i) throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - @Override - public boolean enlistResource(XAResource resource) throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - @Override - public int getStatus() { - return Integer.valueOf( 0 ).equals( getLocalId() ) ? - Status.STATUS_NO_TRANSACTION : Status.STATUS_ACTIVE; - } - - @Override - public void rollback() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - - @Override - public void setRollbackOnly() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - } - } - -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereJtaPlatform.java deleted file mode 100644 index 49f5baf4848c..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereJtaPlatform.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.engine.transaction.jta.platform.internal; - -import java.lang.reflect.Method; -import jakarta.transaction.TransactionManager; -import jakarta.transaction.UserTransaction; - -import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatformException; -import org.hibernate.internal.util.NullnessUtil; - -import org.jboss.logging.Logger; - -/** - * JTA platform implementation for WebSphere (versions 4, 5.0 and 5.1) - * - * @author Gavin King - * @author Steve Ebersole - */ -public class WebSphereJtaPlatform extends AbstractJtaPlatform { - private static final Logger log = Logger.getLogger( WebSphereJtaPlatform.class ); - - private final Class transactionManagerAccessClass; - private final WebSphereEnvironment webSphereEnvironment; - - public WebSphereJtaPlatform() { - Class tmAccessClass = null; - WebSphereEnvironment webSphereEnvironment = null; - - for ( WebSphereEnvironment check : WebSphereEnvironment.values() ) { - try { - tmAccessClass = Class.forName( check.getTmAccessClassName() ); - webSphereEnvironment = check; - log.debugf( "WebSphere version : %s", webSphereEnvironment.getWebSphereVersion() ); - break; - } - catch ( Exception ignore ) { - // go on to the next iteration - } - } - - if ( webSphereEnvironment == null ) { - throw new JtaPlatformException( "Could not locate WebSphere TransactionManager access class" ); - } - - this.transactionManagerAccessClass = NullnessUtil.castNonNull( tmAccessClass ); - this.webSphereEnvironment = webSphereEnvironment; - } - - public WebSphereJtaPlatform(Class transactionManagerAccessClass, WebSphereEnvironment webSphereEnvironment) { - this.transactionManagerAccessClass = transactionManagerAccessClass; - this.webSphereEnvironment = webSphereEnvironment; - } - - @Override - protected TransactionManager locateTransactionManager() { - try { - final Method method = transactionManagerAccessClass.getMethod( "getTransactionManager" ); - return (TransactionManager) method.invoke( null ); - } - catch (Exception e) { - throw new JtaPlatformException( "Could not obtain WebSphere TransactionManager", e ); - } - - } - - @Override - protected UserTransaction locateUserTransaction() { - final String utName = webSphereEnvironment.getUtName(); - return (UserTransaction) jndiService().locate( utName ); - } - - public enum WebSphereEnvironment { - WS_4_0( "4.x", "com.ibm.ejs.jts.jta.JTSXA", "jta/usertransaction" ), - WS_5_0( "5.0", "com.ibm.ejs.jts.jta.TransactionManagerFactory", "java:comp/UserTransaction" ), - WS_5_1( "5.1", "com.ibm.ws.Transaction.TransactionManagerFactory", "java:comp/UserTransaction" ) - ; - - private final String webSphereVersion; - private final String tmAccessClassName; - private final String utName; - - WebSphereEnvironment(String webSphereVersion, String tmAccessClassName, String utName) { - this.webSphereVersion = webSphereVersion; - this.tmAccessClassName = tmAccessClassName; - this.utName = utName; - } - - public String getWebSphereVersion() { - return webSphereVersion; - } - - public String getTmAccessClassName() { - return tmAccessClassName; - } - - public String getUtName() { - return utName; - } - } -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereLibertyJtaPlatform.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereLibertyJtaPlatform.java index 13adfb89df16..cb2897ea587c 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereLibertyJtaPlatform.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/internal/WebSphereLibertyJtaPlatform.java @@ -8,7 +8,6 @@ import jakarta.transaction.Status; import jakarta.transaction.Synchronization; import jakarta.transaction.SystemException; -import jakarta.transaction.Transaction; import jakarta.transaction.TransactionManager; import jakarta.transaction.UserTransaction; @@ -61,11 +60,6 @@ public int getCurrentStatus() throws SystemException { return NullnessUtil.castNonNull( retrieveTransactionManager() ).getStatus(); } - @Override - public Object getTransactionIdentifier(Transaction transaction) { - return transaction; - } - @Override public void registerSynchronization(Synchronization synchronization) { try { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/spi/JtaPlatformResolver.java b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/spi/JtaPlatformResolver.java index 2595eb14dce4..806b26d038fb 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/spi/JtaPlatformResolver.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/transaction/jta/platform/spi/JtaPlatformResolver.java @@ -22,5 +22,5 @@ * @author Steve Ebersole */ public interface JtaPlatformResolver extends Service { - JtaPlatform resolveJtaPlatform(Map configurationValues, ServiceRegistryImplementor registry); + JtaPlatform resolveJtaPlatform(Map configurationValues, ServiceRegistryImplementor registry); } diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/strategyselectors/JtaPlatformSelectorTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/strategyselectors/JtaPlatformSelectorTest.java index 21b5684f1ac0..caad2f1443e3 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/strategyselectors/JtaPlatformSelectorTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/strategyselectors/JtaPlatformSelectorTest.java @@ -6,20 +6,10 @@ import org.hibernate.boot.registry.selector.internal.DefaultJtaPlatformSelector; import org.hibernate.engine.transaction.jta.platform.internal.AtomikosJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.BitronixJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.BorlandEnterpriseServerJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.JBossAppServerJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.JBossStandAloneJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.JOTMJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.JOnASJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.JRun4JtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.OC4JJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.OrionJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.ResinJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.SapNetWeaverJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.SunOneJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.WebSphereExtendedJtaPlatform; -import org.hibernate.engine.transaction.jta.platform.internal.WebSphereJtaPlatform; +import org.hibernate.engine.transaction.jta.platform.internal.GlassFishJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.WebSphereLibertyJtaPlatform; import org.hibernate.engine.transaction.jta.platform.internal.WeblogicJtaPlatform; import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform; @@ -47,20 +37,6 @@ public void verifyAllJtaPlatformResolve() { "org.hibernate.service.jta.platform.internal.AtomikosJtaPlatform" ); - testJtaPlatformResolves( - strategySelector, - BorlandEnterpriseServerJtaPlatform.class, - "Borland", - "org.hibernate.service.jta.platform.internal.BorlandEnterpriseServerJtaPlatform" - ); - - testJtaPlatformResolves( - strategySelector, - BitronixJtaPlatform.class, - "Bitronix", - "org.hibernate.service.jta.platform.internal.BitronixJtaPlatform" - ); - testJtaPlatformResolves( strategySelector, JBossAppServerJtaPlatform.class, @@ -77,57 +53,29 @@ public void verifyAllJtaPlatformResolve() { testJtaPlatformResolves( strategySelector, - JOnASJtaPlatform.class, - "JOnAS", - "org.hibernate.service.jta.platform.internal.JOnASJtaPlatform" - ); - - testJtaPlatformResolves( - strategySelector, - JOTMJtaPlatform.class, - "JOTM", - "org.hibernate.service.jta.platform.internal.JOTMJtaPlatform" - ); - - testJtaPlatformResolves( - strategySelector, - JRun4JtaPlatform.class, - "JRun4", - "org.hibernate.service.jta.platform.internal.JRun4JtaPlatform" - ); - - testJtaPlatformResolves( - strategySelector, - OC4JJtaPlatform.class, - "OC4J", - "org.hibernate.service.jta.platform.internal.OC4JJtaPlatform" - ); - - testJtaPlatformResolves( - strategySelector, - OrionJtaPlatform.class, - "Orion", - "org.hibernate.service.jta.platform.internal.OrionJtaPlatform" + ResinJtaPlatform.class, + "Resin", + "org.hibernate.service.jta.platform.internal.ResinJtaPlatform" ); testJtaPlatformResolves( strategySelector, - ResinJtaPlatform.class, - "Resin", - "org.hibernate.service.jta.platform.internal.ResinJtaPlatform" + GlassFishJtaPlatform.class, + "SunOne", + "org.hibernate.service.jta.platform.internal.SunOneJtaPlatform" ); testJtaPlatformResolves( strategySelector, - SapNetWeaverJtaPlatform.class, - "SapNetWeaver", - "org.hibernate.service.jta.platform.internal.SapNetWeaverJtaPlatform" + GlassFishJtaPlatform.class, + "GlassFish", + "org.hibernate.service.jta.platform.internal.SunOneJtaPlatform" ); testJtaPlatformResolves( strategySelector, - SunOneJtaPlatform.class, - "SunOne", + GlassFishJtaPlatform.class, + "Payara", "org.hibernate.service.jta.platform.internal.SunOneJtaPlatform" ); @@ -145,19 +93,6 @@ public void verifyAllJtaPlatformResolve() { "org.hibernate.engine.transaction.jta.platform.internal.WebSphereLibertyJtaPlatform" ); - testJtaPlatformResolves( - strategySelector, - WebSphereJtaPlatform.class, - "WebSphere", - "org.hibernate.service.jta.platform.internal.WebSphereJtaPlatform" - ); - - testJtaPlatformResolves( - strategySelector, - WebSphereExtendedJtaPlatform.class, - "WebSphereExtended", - "org.hibernate.service.jta.platform.internal.WebSphereExtendedJtaPlatform" - ); } private static void testJtaPlatformResolves(final DefaultJtaPlatformSelector strategySelector, final Class expectedType, final String shortname, final String longname) {