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

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

package io.sealights.agents.plugin;

import io.sealights.onpremise.agents.java.agent.infra.logging.ConsoleLogger;
import io.sealights.onpremise.agents.java.agent.infra.logging.ILogger;
import io.sealights.onpremise.agents.java.agent.infra.utils.StringUtils;
import io.sealights.onpremise.agents.java.agent.plugins.engine.api.ExecutionStage;
import io.sealights.onpremise.agents.java.agent.plugins.engine.api.PluginEngine;
import io.sealights.onpremise.agents.java.agent.plugins.engine.api.PluginExecData;
import io.sealights.onpremise.agents.java.agent.plugins.engine.api.PluginGoal;
import io.sealights.onpremise.agents.java.agent.plugins.engine.api.PluginParameters;
import io.sealights.onpremise.agents.java.agent.plugins.engine.api.PluginType;
import io.sealights.onpremise.agents.java.agent.plugins.engine.api.ProjectDescriptor;
import io.sealights.onpremise.agents.java.agent.plugins.engine.procsexecutor.PluginEngineHandler;
import lombok.Data;

@Data
public abstract class SealightsTask implements PluginGoal {

    private SealightsPluginExtention extention;
    private PluginEngine pluginEngine = new PluginEngineHandler();
    private ConsoleLogger consoleLog = new ConsoleLogger(ConsoleLogger.formattedPrefix(EnhancedLogger.PLUGIN_TAG));

    public boolean execute() {
        try {
            if (getExecData().getExecStage() != ExecutionStage.initFailed) {
                return executePluginGoal();
            }
            else {
                getLogger().info(PluginExecData.SKIP_SEALIGHTS_MSG + ": failed to initialize");
                return true;
            }
        }
        catch(Exception e) {
           getLogger().info("Failed to execute goal '{}'; proceed build", getName());
           return false;
        }
    }

    public SealightsTask(SealightsPluginExtention extension) {
        this.extention = extension;
    }

	@Override
	public PluginType getPluginType() {
		return PluginType.gradle;
	}

    @Override
    public PluginParameters getParams() {
        PluginParameters params = new PluginParameters();
        params.getGeneralParams().setToken(extention.getToken());
        params.getGeneralParams().setTokenFile(extention.getTokenFile());
        params.getGeneralParams().setCustomerid(extention.getCustomerid());
        params.getGeneralParams().setServer(extention.getServer());
        params.getGeneralParams().setProxy(extention.getProxy());
        params.getGeneralParams().setWorkspacepath(extention.getWorkspacepath());
        params.getGeneralParams().setCreateBuildSessionId(extention.isCreateBuildSessionId());
        params.getGeneralParams().setBuildSessionId(extention.getBuildSessionId());
        params.getGeneralParams().setBuildSessionIdFile(extention.getBuildSessionIdFile());
        params.getGeneralParams().setAppName(extention.getAppName());
        if (StringUtils.isNotEmpty(extention.getModuleName())) {
        	params.getGeneralParams().setModuleName(extention.getModuleName());
         } 
        else {
        	params.getGeneralParams().setModuleName(extention.getProject().getName());
        }
        params.getGeneralParams().setEnvironment(extention.getEnvironment());
        params.getGeneralParams().setBranch(extention.getBranch());
        params.getGeneralParams().setBuild(extention.getBuild());
        params.getGeneralParams().setPackagesincluded(extention.getPackagesIncluded());
        params.getGeneralParams().setPackagesexcluded(extention.getPackagesExcluded());
        params.getGeneralParams().setFilesincluded(extention.getFilesIncluded());
        params.getGeneralParams().setFilesexcluded(extention.getFilesExcluded());
        params.getGeneralParams().setRecursive(extention.isRecursive());
        params.getGeneralParams().setLogEnabled(extention.isLogEnabled());
        params.getGeneralParams().setLogLevel(extention.getLogLevel());
        params.getGeneralParams().setLogToFile(extention.isLogToFile());
        params.getGeneralParams().setLogFolder(extention.getLogFolder());
        params.getGeneralParams().setLogToConsole(extention.isLogToConsole());
        params.getGeneralParams().setJavaPath(extention.getJavaPath());
        params.getGeneralParams().setFilesStorage(extention.getFilesStorage());
        params.getGeneralParams().setSealightsJvmParams(extention.getSealightsJvmParams());
        params.getGeneralParams().setOverrideMetaJsonPath(extention.getOverrideMetaJsonPath());
        params.getGeneralParams().setIncludeResources(extention.isIncludeResources());
        params.getGeneralParams().setBuildScannerJar(extention.getBuildScannerJar());
        params.getGeneralParams().setTestListenerJar(extention.getTestListenerJar());

        params.getBldScanrParams().setEnableNoneZeroErrorCode(extention.isEnableNoneZeroErrorCode());
        params.getBldScanrParams().setBuildScannerPackagesincluded(extention.getBuildScannerPackagesincluded());
        params.getBldScanrParams().setBuildScannerPackagesexcluded(extention.getBuildScannerPackagesexcluded());
        params.getBldScanrParams().setBuildScannerParams(extention.getBuildScannerParams());
        params.getBldScanrParams().setSendContributors(extention.getSendContributors());
        params.getBldScanrParams().setBuildScannerIgnoreLogEnabled(extention.isBuildScannerIgnoreLogEnabled());

        params.getTstListnrParams().setTestListenerEnabled(extention.isTestListenerEnabled());
        params.getTstListnrParams().setTestListenerConfigFile(extention.getTestListenerConfigFile());
        params.getTstListnrParams().setTestListenerJvmParams(extention.getTestListenerJvmParams());
        params.getTstListnrParams().setTestListenerPackagesincluded(extention.getTestListenerPackagesincluded());
        params.getTstListnrParams().setTestListenerPackagesexcluded(extention.getTestListenerPackagesexcluded());
        params.getTstListnrParams().setInitialColor(extention.getInitialColor());
        params.getTstListnrParams().setClassLoadersExcluded(extention.getClassLoadersExcluded());
        params.getTstListnrParams().setTestStage(extention.getTestStage());
        params.getTstListnrParams().setLabId(extention.getLabId());
        params.getTstListnrParams().setOverrideTestListenerPath(extention.getOverrideTestListenerPath());
        params.getTstListnrParams().setTestListenerIgnoreLogEnabled(extention.isTestListenerIgnoreLogEnabled());

        return params;
   }

    @Override
    public PluginExecData getExecData() {
        return extention.getExecData();
    }

    @Override
    public ProjectDescriptor getProjectDecriptor() {
        return ProjectDataCollector.execute(extention.getProject().getRootProject());
    }

    @Override
    public boolean initGoalInternals() {
        return true;
    }

    @Override
    public void onSuccess(PluginExecData pluginExecData) {
    	extention.setExecData(pluginExecData);
    }

    @Override
    public void onFailure() {
    }

    @Override
    public ILogger getLogger() {
        return extention.getLogger();
    }

    abstract protected boolean executePluginGoal();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy