¿Cómo crear un objeto disparador mediante programación?

Estoy usando Spring Quartz Scheduler pero no estoy usando un archivo XML. Quiero crear toda la configuración mediante programación.

He escrito el siguiente código.

package com.eaportal.service.impl;

import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.quartz.JobDetail;
import org.springframework.scheduling.SchedulingException;
import org.springframework.scheduling.quartz.CronTriggerBean;
import org.springframework.scheduling.quartz.JobDetailBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;

import com.eaportal.service.intfc.AuctionWinnerService;

public class NormalAuctionWinnerServiceImpl1 implements AuctionWinnerService {

    @SuppressWarnings("deprecation")
    public void declareWinner(int auctionId, Map<String, Object> parameterMap) {
        System.out.println("INSIDE DECLARE WINNER METHOD.");
        /** STEP 1 : INSTANTIATE TASK CLASS **/
        NormalAuctionWinnerTask1 runMeTask = new NormalAuctionWinnerTask1();
        System.out.println("FINISHED STEP 1");

        /** STEP 2 : INSTANTIATE JOB DETAIL CLASS AND SET ITS PROPERTIES **/
        Map<String,Object> jobDataAsMap = new HashMap<String,Object>();
        jobDataAsMap.put("runMeTask",runMeTask);
        JobDetailBean jdb = new JobDetailBean();
        jdb.setJobClass(NormalAuctionWinnerTask1.class);
        jdb.setJobDataAsMap(jobDataAsMap);
        System.out.println("FINISHED STEP 2");

        /** STEP 3 : INSTANTIATE CRON TRIGGER AND SET ITS PROPERTIES **/
        CronTriggerBean ctb = new CronTriggerBean();
        Date d1 = new Date();
        Date d2 = new Date();
        d2.setMinutes(d1.getMinutes()+10);
        ctb.setStartTime(d1);
        ctb.setEndTime(d2);
        ctb.setJobDetail(jdb);

        try {
            ctb.setCronExpression("59 * * * * ? *");
        } catch (ParseException e) {
            e.printStackTrace();
        }

        /** STEP 4 : INSTANTIATE SCHEDULER FACTORY BEAN AND SET ITS PROPERTIES **/
        SchedulerFactoryBean sfb = new SchedulerFactoryBean();
        sfb.setJobDetails(new JobDetail[]{jdb});
        try {
            sfb.start();
        } catch (SchedulingException e) {
            e.printStackTrace();
        }
    }

}

El código funciona, excepto que el disparador no se activa porque no lo configuré.

Aquí el problema está en la configuración XML, tenemos la propiedad 'triggers' de SchedulerFactoryBean y usamos list para configurar nuestros disparadores.

Pero no puedo establecer la misma propiedad mediante programación. Hay un método setTriggers en SchedulerFactoryBean que acepta una matriz de Trigger pero el problema es cómo crearlo.

Estoy en ello durante las últimas 4 horas, todavía no hay signos de éxito.

¿Puede alguien ayudarme aquí?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta