|
51 | 51 | import org.junit.platform.engine.OutputDirectoryCreator;
|
52 | 52 | import org.junit.platform.engine.TestDescriptor;
|
53 | 53 | import org.junit.platform.engine.UniqueId;
|
| 54 | +import org.junit.platform.engine.support.descriptor.EngineDescriptor; |
54 | 55 | import org.junit.platform.engine.support.hierarchical.EngineExecutionContext;
|
55 | 56 | import org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine;
|
56 | 57 | import org.junit.platform.engine.support.hierarchical.ThrowableCollector;
|
57 | 58 |
|
58 | 59 | public class BytecodeEnhancedTestEngine extends HierarchicalTestEngine<JupiterEngineExecutionContext> {
|
59 | 60 |
|
| 61 | + public static final String ENHANCEMENT_EXTENSION_ENGINE_ENABLED = "hibernate.testing.bytecode.enhancement.extension.engine.enabled"; |
| 62 | + |
| 63 | + public static boolean isEnabled() { |
| 64 | + return "true".equalsIgnoreCase( System.getProperty( ENHANCEMENT_EXTENSION_ENGINE_ENABLED, "false" ) ); |
| 65 | + } |
| 66 | + |
60 | 67 | @Override
|
61 | 68 | public String getId() {
|
62 | 69 | return "bytecode-enhanced-engine";
|
63 | 70 | }
|
64 | 71 |
|
65 | 72 | @Override
|
66 | 73 | public TestDescriptor discover(EngineDiscoveryRequest discoveryRequest, UniqueId uniqueId) {
|
| 74 | + if ( isEnabled() ) { |
| 75 | + return doDiscover( discoveryRequest, uniqueId ); |
| 76 | + } |
| 77 | + |
| 78 | + return new EngineDescriptor( uniqueId, getId() ); |
| 79 | + } |
| 80 | + |
| 81 | + public TestDescriptor doDiscover(EngineDiscoveryRequest discoveryRequest, UniqueId uniqueId) { |
67 | 82 | final BytecodeEnhancedEngineDescriptor engineDescriptor = new BytecodeEnhancedEngineDescriptor(
|
68 | 83 | (JupiterEngineDescriptor) new JupiterTestEngine().discover( discoveryRequest, uniqueId )
|
69 | 84 | );
|
@@ -235,8 +250,12 @@ protected JupiterEngineExecutionContext createExecutionContext(ExecutionRequest
|
235 | 250 | }
|
236 | 251 |
|
237 | 252 | private JupiterConfiguration getJupiterConfiguration(ExecutionRequest request) {
|
238 |
| - JupiterEngineDescriptor engineDescriptor = (JupiterEngineDescriptor) request.getRootTestDescriptor(); |
239 |
| - return engineDescriptor.getConfiguration(); |
| 253 | + if ( request.getRootTestDescriptor() instanceof JupiterEngineDescriptor descriptor ) { |
| 254 | + return descriptor.getConfiguration(); |
| 255 | + } |
| 256 | + else { |
| 257 | + return null; |
| 258 | + } |
240 | 259 | }
|
241 | 260 |
|
242 | 261 | public Optional<String> getGroupId() {
|
|
0 commit comments