Hi,

Just in case somebody needs it I wrote Junit-jupiter extensions for
ApplicationComposer and SingleApplicationComposer. They are very simple
since all the work is already done, but they may save somebody's 10 minutes.

public class ApplicationComposerExtension implements BeforeEachCallback,
AfterEachCallback {

    private ApplicationComposers delegate;

    @Override
    public void beforeEach(ExtensionContext context) throws Exception {
        delegate = new
ApplicationComposers(context.getRequiredTestInstance());
        delegate.before(context.getRequiredTestInstance());
    }

    @Override
    public void afterEach(ExtensionContext context) throws Exception {
        delegate.after();
    }

}



public class SingleApplicationComposerExtension implements
BeforeEachCallback {


    private static volatile boolean started = false;
    private static final AtomicReference APP = new AtomicReference<>();
    private static final AtomicReference<Thread> HOOK = new
AtomicReference<>();

    @Override
    public void beforeEach(ExtensionContext context) throws Exception {
        start(context.getRequiredTestInstance().getClass());
        composerInject(context.getRequiredTestInstance());
    }


    public static void setApp(final Object o) {
        APP.set(o);
    }


    public static void close() {
        //Same as in SingleApplicationComposerRunner
        ...
    }


    private static void start(final Class<?> marker) throws Exception {
        //Same as in SingleApplicationComposerRunner
        ...
    }

    private static void composerInject(final Object target) throws
IllegalAccessException {
        //Same as in SingleApplicationComposerRunner
        ...
    }


}

Of course, I may not have taken into account all possibilities (it does work
in my project, that's all), so feel free to criticize or implement it some
other way.

If you want I can try to make a pull request with this (reusing code from
SingleApplicationComposerRunner) and some tests. 


Best regards,
Vicente.



--
Sent from: http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html

Reply via email to