class WebsterMojo extends AbstractMojo {

    @Override
    public final void execute() throws MojoFailureException {
        WebsterPlan.Builder builder = new WebsterPlan.Builder();
        builder.withArchiveRoot(websterArchiveRoot.getAbsoluteFile());
        suppressOakLogging(System::setProperty);

        if (websterTargets == null || websterTargets.isEmpty()) {
            getLog().info("No websterTargets configuration found in plugin configuration. skipping webster execution.");
            return;
        }

        addTargets(builder, JsonTargetFactory::fromJsonHintMap);

        WebsterPlan.FixtureProvider fixtureProvider = getFixtureProvider();
        if (fixtureProvider == null) {
            getLog().info("No source Oak repository provided. skipping webster execution.");
            return;
        }

        builder.withFixtureProvider(fixtureProvider);

        executeWebsterPlan(builder);
    }

}