package com.sonatype.buildserver.monitor;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.osgi.util.NLS;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.sonatype.buildserver.eclipse.ui.Messages;
import org.hudsonci.rest.model.build.BuildDTO;
import org.hudsonci.rest.model.build.ChangesDTO;
extends Job
{
private static Logger log = LoggerFactory.getLogger( RetrieveChangesJob.class );
final private HudsonMonitor hudsonMonitor;
final private HudsonJob job;
final private BuildDTO build;
{
super( NLS.bind( Messages.background_retrieve_changes, job.getJobName(), bld.getId() ) );
this.hudsonMonitor = monitor;
this.job = job;
this.build = bld;
}
@Override
protected IStatus
run( IProgressMonitor monitor )
{
log.debug( "Retrieve list of changes for job {} / build {} on server {}", new Object[] {job.getJobName(), build.getId(), job.getServerName()} );
ChangesDTO changes = hudsonMonitor.retrieveChanges( job, build );
hudsonMonitor.notifyListeners( new HudsonJobChangesEvent( job, changes, build ) );
return Status.OK_STATUS;
}
}