|
24 | 24 | import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
25 | 25 | import org.junit.jupiter.api.extension.AfterAllCallback;
|
26 | 26 | import org.junit.jupiter.api.extension.BeforeAllCallback;
|
| 27 | +import org.junit.jupiter.api.extension.BeforeEachCallback; |
27 | 28 | import org.junit.jupiter.api.extension.ExtendWith;
|
28 | 29 | import org.junit.jupiter.api.extension.Extension;
|
29 | 30 | import org.junit.jupiter.api.extension.ExtensionContext;
|
|
67 | 68 | * @author David van Leusen
|
68 | 69 | */
|
69 | 70 | public class CompilationExtension
|
70 |
| - implements BeforeAllCallback, AfterAllCallback, ParameterResolver { |
| 71 | + implements BeforeAllCallback, BeforeEachCallback, AfterAllCallback, ParameterResolver { |
71 | 72 | private static final JavaFileObject DUMMY =
|
72 | 73 | JavaFileObjects.forSourceLines("Dummy", "final class Dummy {}");
|
73 | 74 | private static final ExtensionContext.Namespace NAMESPACE =
|
@@ -130,6 +131,15 @@ protected boolean onAdvance(int phase, int parties) {
|
130 | 131 | }
|
131 | 132 | }
|
132 | 133 |
|
| 134 | + @Override |
| 135 | + public void beforeEach(ExtensionContext extensionContext) { |
| 136 | + checkState( |
| 137 | + PHASER_KEY.get(extensionContext.getStore(NAMESPACE)) != null, |
| 138 | + "CompilationExtension is only available as a class-level extension. " + |
| 139 | + "Using it as an instance-level extension through @RegisterExtension is not supported" |
| 140 | + ); |
| 141 | + } |
| 142 | + |
133 | 143 | @Override
|
134 | 144 | public void afterAll(ExtensionContext context) throws Exception {
|
135 | 145 | final ExtensionContext.Store store = context.getStore(NAMESPACE);
|
|
0 commit comments