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

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

package io.sealights.agents.plugin;

import org.gradle.BuildAdapter;
import org.gradle.BuildResult;
import org.gradle.api.Project;
import org.gradle.api.invocation.Gradle;

import io.sealights.onpremise.agents.java.agent.plugins.engine.lifecycle.BuildEndInfo;

/**
 * Implements build lifecycle hooking
 * @author ala schneider   Jan 1, 2018
 *
 */
public class SealightsBuildListener extends BuildAdapter {
	private long startedAt;

	private Project project;

	public SealightsBuildListener(Project project) {
		this.project = project;
		startedAt = System.currentTimeMillis();
	}

	@Override
	public void buildFinished(BuildResult buildResult) {
		super.buildFinished(buildResult);
		long buildDuration = System.currentTimeMillis() - startedAt;
		BuildEndInfo buildInfo = new BuildEndInfo();
		buildInfo.setBuildDurationMSec(buildDuration);
		if (buildResult.getFailure()!= null) {
			buildInfo.setSuccessful(false);
			buildInfo.setFailureReason(buildResult.getFailure().getMessage());
		}
		else {
			buildInfo.setSuccessful(true);
		}

    	final SealightsPluginExtention extension = (SealightsPluginExtention) project.getExtensions().getByName(Constants.PLUGIN_EXTENSION_NAME);
    	new NotifyBuildEndTask(extension, buildInfo);
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy