// Path: plugins-compat-tester-model/src/main/java/org/jenkins/tools/test/model/PomData.java
// public class PomData {
//     public final String artifactId;
//     public final String groupId;
// 
//     @Nonnull
//     private final String packaging;
// 
//     @CheckForNull
//     public final MavenCoordinates parent;
//     private String connectionUrl;
//     private String scmTag;
//     private List<String> warningMessages = new ArrayList<>();
// 
//     public PomData(String artifactId, @CheckForNull String packaging, String connectionUrl, String scmTag, @CheckForNull MavenCoordinates parent, String groupId){
//         this.artifactId = artifactId;
//         this.groupId = groupId;
//         this.packaging = packaging != null ? packaging : "jar";
//         this.setConnectionUrl(connectionUrl);
//         this.scmTag = scmTag;
//         this.parent = parent;
//     }
// 
//     public String getConnectionUrl() {
//         return connectionUrl;
//     }
// 
//     public void setConnectionUrl(String connectionUrl) {
//         this.connectionUrl = connectionUrl;
//     }
// 
//     @SuppressFBWarnings(value = "EI_EXPOSE_REP", justification = "Deliberately mutable")
//     public List<String> getWarningMessages() {
//         return warningMessages;
//     }
// 
//     @Nonnull
//     public String getPackaging() {
//         return packaging;
//     }
// 
//     public String getScmTag() {
//         return scmTag;
//     }
// 
//     public boolean isPluginPOM() {
//         if (parent != null) {
//             return parent.matches("org.jenkins-ci.plugins", "plugin");
//         } else { // Interpolate by packaging
//             return "hpi".equalsIgnoreCase(packaging);
//         }
//     }
// }
// 
// Path: plugins-compat-tester-model/src/main/java/org/jenkins/tools/test/model/hook/PluginCompatTesterHookBeforeExecution.java
// public abstract class PluginCompatTesterHookBeforeExecution implements PluginCompatTesterHook {
//     /**
//      * Check the value of {@code args} (the arguments with which to run {@code mvn test}) and {@code
//      * pomData} (if the plugin should be checked out again).
//      */
//     @Override
//     public void validate(Map<String, Object> toCheck) {
//         if((toCheck.get("args") != null && 
//             toCheck.get("args") instanceof String) &&
//             (toCheck.get("pomData") != null && 
//             toCheck.get("pomData") instanceof PomData) ) {
//                 throw new IllegalArgumentException("A hook modified a required parameter for plugin test execution.");
//         }
//     } 
// }


import org.jenkins.tools.test.model.PomData;
import org.jenkins.tools.test.model.hook.PluginCompatTesterHookBeforeExecution;
import java.util.List;
import java.util.Map;
import java.util.stream.IntStream;
package org.jenkins.tools.test.hook;



/**
 * Workaround for JaCoCo plugin since it needs execute the jacoco:prepare-agent goal before execution.
 */
public class JacocoHook extends PluginCompatTesterHookBeforeExecution {

    @Override
    public boolean check(Map<String, Object> info) {
// Path: plugins-compat-tester-model/src/main/java/org/jenkins/tools/test/model/PomData.java
// public class PomData {
//     public final String artifactId;
//     public final String groupId;
// 
//     @Nonnull
//     private final String packaging;
// 
//     @CheckForNull
//     public final MavenCoordinates parent;
//     private String connectionUrl;
//     private String scmTag;
//     private List<String> warningMessages = new ArrayList<>();
// 
//     public PomData(String artifactId, @CheckForNull String packaging, String connectionUrl, String scmTag, @CheckForNull MavenCoordinates parent, String groupId){
//         this.artifactId = artifactId;
//         this.groupId = groupId;
//         this.packaging = packaging != null ? packaging : "jar";
//         this.setConnectionUrl(connectionUrl);
//         this.scmTag = scmTag;
//         this.parent = parent;
//     }
// 
//     public String getConnectionUrl() {
//         return connectionUrl;
//     }
// 
//     public void setConnectionUrl(String connectionUrl) {
//         this.connectionUrl = connectionUrl;
//     }
// 
//     @SuppressFBWarnings(value = "EI_EXPOSE_REP", justification = "Deliberately mutable")
//     public List<String> getWarningMessages() {
//         return warningMessages;
//     }
// 
//     @Nonnull
//     public String getPackaging() {
//         return packaging;
//     }
// 
//     public String getScmTag() {
//         return scmTag;
//     }
// 
//     public boolean isPluginPOM() {
//         if (parent != null) {
//             return parent.matches("org.jenkins-ci.plugins", "plugin");
//         } else { // Interpolate by packaging
//             return "hpi".equalsIgnoreCase(packaging);
//         }
//     }
// }
// 
// Path: plugins-compat-tester-model/src/main/java/org/jenkins/tools/test/model/hook/PluginCompatTesterHookBeforeExecution.java
// public abstract class PluginCompatTesterHookBeforeExecution implements PluginCompatTesterHook {
//     /**
//      * Check the value of {@code args} (the arguments with which to run {@code mvn test}) and {@code
//      * pomData} (if the plugin should be checked out again).
//      */
//     @Override
//     public void validate(Map<String, Object> toCheck) {
//         if((toCheck.get("args") != null && 
//             toCheck.get("args") instanceof String) &&
//             (toCheck.get("pomData") != null && 
//             toCheck.get("pomData") instanceof PomData) ) {
//                 throw new IllegalArgumentException("A hook modified a required parameter for plugin test execution.");
//         }
//     } 
// }


// Path: plugins-compat-tester/src/main/java/org/jenkins/tools/test/hook/JacocoHook.java
import org.jenkins.tools.test.model.PomData;
import org.jenkins.tools.test.model.hook.PluginCompatTesterHookBeforeExecution;
import java.util.List;
import java.util.Map;
import java.util.stream.IntStream;

package org.jenkins.tools.test.hook;



/**
 * Workaround for JaCoCo plugin since it needs execute the jacoco:prepare-agent goal before execution.
 */
public class JacocoHook extends PluginCompatTesterHookBeforeExecution {

    @Override
    public boolean check(Map<String, Object> info) {
        PomData data = (PomData) info.get("pomData");