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

com.progress.hudson.ScheduleFailedBuildsTrigger Maven / Gradle / Ivy

The newest version!
package com.progress.hudson;

import hudson.Extension;
import hudson.model.BuildableItem;
import hudson.model.Item;
import hudson.triggers.Trigger;
import hudson.triggers.TriggerDescriptor;

import net.sf.json.JSONObject;
import org.kohsuke.stapler.StaplerRequest;

import antlr.ANTLRException;

/** Triggers a build when a project has failed previously and is scheduled for a retry. 
 * 
 * @author Stefan Fritz 
 * */
public class ScheduleFailedBuildsTrigger extends Trigger {

    
    public ScheduleFailedBuildsTrigger(String crontab) throws ANTLRException{
      super(crontab); //run was never called when using the default constructor!? 
    }
  
    
    @Override
    public void run() {      
        if(FailedBuildsQueue.needsBuild(job)){          
                job.scheduleBuild(new ScheduleFailedBuildsCause());
        }
    }  
    
    @Extension
    public static final class DescriptorImpl extends TriggerDescriptor {

        public DescriptorImpl() {
            super(ScheduleFailedBuildsTrigger.class);
        }

        @Override
        public boolean isApplicable(Item item) {
            return true;
        }

        @Override
        public String getDisplayName() {
            return "Schedule failed Builds regularly (see Retry interval @ScheduleFailedBuildsPublisher)";
        }
        
       
  
        
        @Override
        public ScheduleFailedBuildsTrigger newInstance(StaplerRequest req, JSONObject formData) throws FormException {
                     
                  try {
                    return new ScheduleFailedBuildsTrigger("* * * * *"); 
                  } catch (ANTLRException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    return null;
                  }
               
        }

    }

  

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy