diff --git a/hibernate-testing/src/main/java/org/hibernate/testing/bytecode/enhancement/extension/engine/BytecodeEnhancedTestEngine.java b/hibernate-testing/src/main/java/org/hibernate/testing/bytecode/enhancement/extension/engine/BytecodeEnhancedTestEngine.java index 86914a9d2999..3bccc2927867 100644 --- a/hibernate-testing/src/main/java/org/hibernate/testing/bytecode/enhancement/extension/engine/BytecodeEnhancedTestEngine.java +++ b/hibernate-testing/src/main/java/org/hibernate/testing/bytecode/enhancement/extension/engine/BytecodeEnhancedTestEngine.java @@ -9,6 +9,8 @@ import static org.hibernate.testing.bytecode.enhancement.extension.engine.BytecodeEnhancedClassUtils.enhanceTestClass; import static org.junit.platform.commons.util.AnnotationUtils.findAnnotation; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Arrays; import java.util.HashSet; @@ -39,10 +41,12 @@ import org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor; import org.junit.jupiter.engine.descriptor.ClassTestDescriptor; import org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor; +import org.junit.jupiter.engine.descriptor.LauncherStoreFacade; import org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor; import org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor; import org.junit.jupiter.engine.execution.JupiterEngineExecutionContext; import org.junit.platform.engine.EngineDiscoveryRequest; +import org.junit.platform.engine.EngineExecutionListener; import org.junit.platform.engine.ExecutionRequest; import org.junit.platform.engine.TestDescriptor; import org.junit.platform.engine.UniqueId; @@ -213,9 +217,20 @@ private Method findMethodReplacement(ClassTestDescriptor updated, Method testMet @Override protected JupiterEngineExecutionContext createExecutionContext(ExecutionRequest request) { + try { + // Try constructing the JupiterEngineExecutionContext the way it was done in 5.12 and before + final Constructor constructorV5_12 = JupiterEngineExecutionContext.class + .getConstructor( EngineExecutionListener.class, JupiterConfiguration.class ); + return constructorV5_12.newInstance( request.getEngineExecutionListener(), this.getJupiterConfiguration( request ) ); + } + catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) { + // Ignore errors as they are probably due to version mismatches and try the 5.13 way + } + return new JupiterEngineExecutionContext( request.getEngineExecutionListener(), - this.getJupiterConfiguration( request ) + this.getJupiterConfiguration( request ), + new LauncherStoreFacade( request.getStore() ) ); } @@ -272,6 +287,11 @@ public boolean isParallelExecutionEnabled() { return configuration.isParallelExecutionEnabled(); } + @Override + public boolean isClosingStoredAutoCloseablesEnabled() { + return configuration.isClosingStoredAutoCloseablesEnabled(); + } + @Override public boolean isExtensionAutoDetectionEnabled() { return configuration.isExtensionAutoDetectionEnabled(); diff --git a/settings.gradle b/settings.gradle index 0c7993dca334..c9ec73615a1f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -161,7 +161,7 @@ dependencyResolutionManagement { library( "xjc", "org.glassfish.jaxb", "jaxb-xjc" ).versionRef( xjcVersion ) } testLibs { - def junit5Version = version "junit5", "5.12.0" + def junit5Version = version "junit5", "5.13.0" def junit4Version = version "junit4", "4.13.2" def junit5LauncherVersion = version "junit5Launcher", "1.12.0"