test_class.declarator: srcDir = new File("src/test/resources/WebsterMojoTest")
test_class.modifier: private final
test_class.original_string: private final File srcDir = new File("src/test/resources/WebsterMojoTest");
test_class.type: File
test_class.var_name: srcDir
test_class.declarator: testOutBaseDir = new File("target/test-out/WebsterMojoTest")
test_class.modifier: private final
test_class.original_string: private final File testOutBaseDir = new File("target/test-out/WebsterMojoTest");
test_class.type: File
test_class.var_name: testOutBaseDir
test_class.file: maven/src/test/java/net/adamcin/oakpal/maven/mojo/WebsterMojoTest.java
test_class.identifier: WebsterMojoTest
test_case.body: @Test
      public void testExecute_noTargets() throws Exception {
          final File testOutDir = new File(testOutBaseDir, "testExecute_noTargets");
          FileUtils.deleteDirectory(testOutDir);
          final File projectRoot = new File(testOutDir, "content-package");
          FileUtils.copyDirectory(new File(srcDir, "content-package"), projectRoot);
          WebsterMojo mojo = newMojo();
          mojo.websterArchiveRoot = new File(projectRoot, "src/main/resources");
          mojo.execute();
          Optional<MockMojoLog.MockMojoLogEntry> logEntry = logFor(mojo).last();
          assertTrue("log is not empty", logEntry.isPresent());
          assertTrue("log starts with 'No websterTargets",
                  logEntry.get().message.startsWith("No websterTargets"));
      }
test_case.class_method_signature: WebsterMojoTest.testExecute_noTargets()
test_case.full_signature: @Test public void testExecute_noTargets()
test_case.identifier: testExecute_noTargets
test_case.invocations: deleteDirectory copyDirectory newMojo execute last logFor assertTrue isPresent assertTrue startsWith get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testExecute_noTargets()
focal_class.declarator: PARAM_REPOSITORY_HOME = "webster.repositoryHome"
focal_class.modifier: public static final
focal_class.original_string: public static final String PARAM_REPOSITORY_HOME = "webster.repositoryHome";
focal_class.type: String
focal_class.var_name: PARAM_REPOSITORY_HOME
focal_class.declarator: PARAM_OAK_RUN_ARGS = "webster.oakRunArgs"
focal_class.modifier: public static final
focal_class.original_string: public static final String PARAM_OAK_RUN_ARGS = "webster.oakRunArgs";
focal_class.type: String
focal_class.var_name: PARAM_OAK_RUN_ARGS
focal_class.declarator: PARAM_TMPDIR = "webster.tmpdir"
focal_class.modifier: public static final
focal_class.original_string: public static final String PARAM_TMPDIR = "webster.tmpdir";
focal_class.type: String
focal_class.var_name: PARAM_TMPDIR
focal_class.declarator: websterRepositoryHome
focal_class.modifier: @Parameter(property = PARAM_REPOSITORY_HOME)
focal_class.original_string: @Parameter(property = PARAM_REPOSITORY_HOME)
      File websterRepositoryHome;
focal_class.type: File
focal_class.var_name: websterRepositoryHome
focal_class.declarator: websterOakRunArgs
focal_class.modifier: @Parameter(property = PARAM_OAK_RUN_ARGS)
focal_class.original_string: @Parameter(property = PARAM_OAK_RUN_ARGS)
      String websterOakRunArgs;
focal_class.type: String
focal_class.var_name: websterOakRunArgs
focal_class.declarator: websterTempDirectory
focal_class.modifier: @Parameter(property = PARAM_TMPDIR, defaultValue = "${project.build.directory}/oakpal-plugin/webster-tmpdir")
focal_class.original_string: @Parameter(property = PARAM_TMPDIR, defaultValue = "${project.build.directory}/oakpal-plugin/webster-tmpdir")
      File websterTempDirectory;
focal_class.type: File
focal_class.var_name: websterTempDirectory
focal_class.declarator: websterArchiveRoot
focal_class.modifier: @Parameter(defaultValue = "${basedir}/src/main/content")
focal_class.original_string: @Parameter(defaultValue = "${basedir}/src/main/content")
      File websterArchiveRoot;
focal_class.type: File
focal_class.var_name: websterArchiveRoot
focal_class.declarator: websterTargets
focal_class.modifier: @Parameter
focal_class.original_string: @Parameter
      JsonObject websterTargets;
focal_class.type: JsonObject
focal_class.var_name: websterTargets
focal_class.declarator: revealOakLogging
focal_class.modifier: @Parameter(property = "webster.revealOakLogging")
focal_class.original_string: @Parameter(property = "webster.revealOakLogging")
      boolean revealOakLogging;
focal_class.type: boolean
focal_class.var_name: revealOakLogging
focal_class.declarator: baseDir
focal_class.modifier: @Parameter(defaultValue = "${project.basedir}")
focal_class.original_string: @Parameter(defaultValue = "${project.basedir}")
      File baseDir;
focal_class.type: File
focal_class.var_name: baseDir
focal_class.declarator: tempDirDeleter = FileUtils::deleteDirectory
focal_class.original_string: Fun.ThrowingConsumer<File> tempDirDeleter = FileUtils::deleteDirectory;
focal_class.type: Fun.ThrowingConsumer<File>
focal_class.var_name: tempDirDeleter
focal_class.file: maven/src/main/java/net/adamcin/oakpal/maven/mojo/WebsterMojo.java
focal_class.identifier: WebsterMojo
focal_class.class_method_signature: WebsterMojo.suppressOakLogging(final @NotNull BiConsumer<String, String> propSetter)
focal_class.full_signature:  void suppressOakLogging(final @NotNull BiConsumer<String, String> propSetter)
focal_class.identifier: suppressOakLogging
focal_class.parameters: (final @NotNull BiConsumer<String, String> propSetter)
focal_class.return: void
focal_class.signature: void suppressOakLogging(final @NotNull BiConsumer<String, String> propSetter)
focal_class.class_method_signature: WebsterMojo.addTargets(final @NotNull WebsterPlan.Builder builder,
                      final @NotNull Fun.ThrowingBiFunction<File, JsonObject, List<WebsterTarget>> parser)
focal_class.full_signature:  void addTargets(final @NotNull WebsterPlan.Builder builder,
                      final @NotNull Fun.ThrowingBiFunction<File, JsonObject, List<WebsterTarget>> parser)
focal_class.identifier: addTargets
focal_class.parameters: (final @NotNull WebsterPlan.Builder builder,
                      final @NotNull Fun.ThrowingBiFunction<File, JsonObject, List<WebsterTarget>> parser)
focal_class.return: void
focal_class.signature: void addTargets(final @NotNull WebsterPlan.Builder builder,
                      final @NotNull Fun.ThrowingBiFunction<File, JsonObject, List<WebsterTarget>> parser)
focal_class.class_method_signature: WebsterMojo.getFixtureProvider()
focal_class.full_signature: @Nullable WebsterPlan.FixtureProvider getFixtureProvider()
focal_class.identifier: getFixtureProvider
focal_class.modifiers: @Nullable
focal_class.parameters: ()
focal_class.return: WebsterPlan.FixtureProvider
focal_class.signature: WebsterPlan.FixtureProvider getFixtureProvider()
focal_class.class_method_signature: WebsterMojo.executeWebsterPlan(final @NotNull WebsterPlan.Builder builder)
focal_class.full_signature:  void executeWebsterPlan(final @NotNull WebsterPlan.Builder builder)
focal_class.identifier: executeWebsterPlan
focal_class.parameters: (final @NotNull WebsterPlan.Builder builder)
focal_class.return: void
focal_class.signature: void executeWebsterPlan(final @NotNull WebsterPlan.Builder builder)
focal_class.class_method_signature: WebsterMojo.execute()
focal_class.full_signature: @Override public final void execute()
focal_class.identifier: execute
focal_class.modifiers: @Override public final
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void execute()
focal_class.superclass: extends AbstractMojo
focal_method.body: @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);
      }
focal_method.class_method_signature: WebsterMojo.execute()
focal_method.full_signature: @Override public final void execute()
focal_method.identifier: execute
focal_method.invocations: withArchiveRoot getAbsoluteFile suppressOakLogging isEmpty info getLog addTargets getFixtureProvider info getLog withFixtureProvider executeWebsterPlan
focal_method.modifiers: @Override public final
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void execute()