All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.sealights.agents.plugin.BldScanrTask Maven / Gradle / Ivy

package io.sealights.agents.plugin;

import java.io.File;

import org.gradle.api.tasks.JavaExec;
import org.gradle.api.tasks.compile.JavaCompile;

import io.sealights.onpremise.agents.java.agent.plugins.engine.api.PluginExecData;
import io.sealights.onpremise.agents.java.agent.plugins.engine.clibuilders.TokenValueFormatter;

public class BldScanrTask extends SealightsTask {

    private JavaCompile compileTask;

    public BldScanrTask(JavaCompile compileTask, SealightsPluginExtention extention) {
        super(extention);
        this.compileTask = compileTask;
     }

    @Override
    protected boolean executePluginGoal() {
        if (getExtention().isRunTestOnly()) {
            getLogger().info("SeaLights is in test-only mode. Skipping Build Scanner.");
            return true;
        }
        if (getParams().getGeneralParams().getWorkspacepath() == null) {
            getParams().getGeneralParams().setWorkspacepath(compileTask.getDestinationDir().getName());
        }
        
        return getPluginEngine().executeBldScanrGoal(this).isOk();
    }

    @Override
    public void onSuccess(PluginExecData pluginExecData) {
        super.onSuccess(pluginExecData);
        runBuildScanner();
    }
    
    private boolean runBuildScanner() {
        boolean firstExecution = getExtention().getExecData().isNullModuleDone();
        String executionName = "build-scan-" + compileTask.getName();
        if (firstExecution) {
            executionName += "-null-module";
        }
    	try {
            JavaExec buildScanrExecTask = getExtention().getProject().getTasks().create(executionName, JavaExec.class);
    		buildScanrExecTask.setArgs(getExecData().getBldScanrCliData().getGradlePluginJvmArg());
    		buildScanrExecTask.setSystemProperties(getExecData().getBldScanrCliData().getGradlePluginSysProperties());
    		buildScanrExecTask.setMain("io.sealights.javaBuildAgent.App");
    		File bldScanrJar = new File(getExecData().getBldScanrLocation());
    		buildScanrExecTask.classpath(bldScanrJar.getAbsolutePath());
    		buildScanrExecTask.setDescription("Run SeaLights Build Scanner");
    		getLogger().info("JavaExec CLI:{}", TokenValueFormatter.toStringArgsWithToken(buildScanrExecTask.getCommandLine()));
    		buildScanrExecTask.execute();
     		return true;
    	}
    	catch(Exception e) {
            getLogger().error("Failed to run SeaLights Build Scanner. Error: ", e);
    		return false;
    	}
    }

    @Override
    public String getName() {
        return "build scanner";
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy