Package org.pentaho.platform.api.scheduler2

Examples of org.pentaho.platform.api.scheduler2.ComplexJobTrigger


      jobTrigger = simpleJobTrigger;

    } else if ( scheduleRequest.getComplexJobTrigger() != null ) {

      ComplexJobTriggerProxy proxyTrigger = scheduleRequest.getComplexJobTrigger();
      ComplexJobTrigger complexJobTrigger = new ComplexJobTrigger();
      complexJobTrigger.setStartTime( proxyTrigger.getStartTime() );
      complexJobTrigger.setEndTime( proxyTrigger.getEndTime() );

      if ( proxyTrigger.getDaysOfWeek().length > 0 ) {
        if ( proxyTrigger.getWeeksOfMonth().length > 0 ) {
          for ( int dayOfWeek : proxyTrigger.getDaysOfWeek() ) {
            for ( int weekOfMonth : proxyTrigger.getWeeksOfMonth() ) {

              QualifiedDayOfWeek qualifiedDayOfWeek = new QualifiedDayOfWeek();
              qualifiedDayOfWeek.setDayOfWeek( DayOfWeek.values()[dayOfWeek] );

              if ( weekOfMonth == JobScheduleRequest.LAST_WEEK_OF_MONTH ) {
                qualifiedDayOfWeek.setQualifier( DayOfWeekQualifier.LAST );
              } else {
                qualifiedDayOfWeek.setQualifier( DayOfWeekQualifier.values()[weekOfMonth] );
              }
              complexJobTrigger.addDayOfWeekRecurrence( qualifiedDayOfWeek );
            }
          }
        } else {
          for ( int dayOfWeek : proxyTrigger.getDaysOfWeek() ) {
            complexJobTrigger.addDayOfWeekRecurrence( dayOfWeek + 1 );
          }
        }
      } else if ( proxyTrigger.getDaysOfMonth().length > 0 ) {

        for ( int dayOfMonth : proxyTrigger.getDaysOfMonth() ) {
          complexJobTrigger.addDayOfMonthRecurrence( dayOfMonth );
        }
      }

      for ( int month : proxyTrigger.getMonthsOfYear() ) {
        complexJobTrigger.addMonthlyRecurrence( month + 1 );
      }

      for ( int year : proxyTrigger.getYears() ) {
        complexJobTrigger.addYearlyRecurrence( year );
      }

      Calendar calendar = Calendar.getInstance();
      calendar.setTime( complexJobTrigger.getStartTime() );
      complexJobTrigger.setHourlyRecurrence( calendar.get( Calendar.HOUR_OF_DAY ) );
      complexJobTrigger.setMinuteRecurrence( calendar.get( Calendar.MINUTE ) );
      complexJobTrigger.setUiPassParam( scheduleRequest.getComplexJobTrigger().getUiPassParam() );
      jobTrigger = complexJobTrigger;

    } else if ( scheduleRequest.getCronJobTrigger() != null ) {

      if ( scheduler instanceof QuartzScheduler ) {
        String cronString = scheduleRequest.getCronJobTrigger().getCronString();

        String delims = "[ ]+"; //$NON-NLS-1$
        String[] tokens = cronString.split( delims );
        if ( tokens.length < 7 ) {
          cronString += " *";
        }

        ComplexJobTrigger complexJobTrigger = QuartzScheduler.createComplexTrigger( cronString );
        complexJobTrigger.setStartTime( scheduleRequest.getCronJobTrigger().getStartTime() );
        complexJobTrigger.setEndTime( scheduleRequest.getCronJobTrigger().getEndTime() );
        complexJobTrigger.setUiPassParam( scheduleRequest.getCronJobTrigger().getUiPassParam() );
        jobTrigger = complexJobTrigger;
      } else {
        throw new IllegalArgumentException();
      }
    }
View Full Code Here


      simpleJobTrigger.setRepeatInterval( interval );
      simpleJobTrigger.setRepeatCount( simpleTrigger.getRepeatCount() );
      job.setJobTrigger( simpleJobTrigger );
    } else if ( trigger instanceof CronTrigger ) {
      CronTrigger cronTrigger = (CronTrigger) trigger;
      ComplexJobTrigger complexJobTrigger = createComplexTrigger( cronTrigger.getCronExpression() );
      complexJobTrigger.setUiPassParam( (String) job.getJobParams().get( RESERVEDMAPKEY_UIPASSPARAM ) );
      complexJobTrigger.setCronString( ( (CronTrigger) trigger ).getCronExpression() );
      job.setJobTrigger( complexJobTrigger );
      if ( trigger.getCalendarName() != null ) {
        Calendar calendar = scheduler.getCalendar( trigger.getCalendarName() );
        if ( calendar instanceof QuartzSchedulerAvailability ) {
          QuartzSchedulerAvailability quartzSchedulerAvailability = (QuartzSchedulerAvailability) calendar;
          complexJobTrigger.setStartTime( quartzSchedulerAvailability.getStartTime() );
          complexJobTrigger.setEndTime( quartzSchedulerAvailability.getEndTime() );
        }
      }
      complexJobTrigger.setCronString( ( (CronTrigger) trigger ).getCronExpression() );
    }

    int triggerState = scheduler.getTriggerState( job.getJobId(), groupName );
    switch ( triggerState ) {
      case Trigger.STATE_NORMAL:
View Full Code Here

    Principal p = SecurityHelper.getInstance().getAuthentication();
    return ( p == null ) ? null : p.getName();
  }

  public static ComplexJobTrigger createComplexTrigger( String cronExpression ) {
    ComplexJobTrigger complexJobTrigger = new ComplexJobTrigger();
    complexJobTrigger.setHourlyRecurrence( (ITimeRecurrence) null );
    complexJobTrigger.setMinuteRecurrence( (ITimeRecurrence) null );
    complexJobTrigger.setSecondRecurrence( (ITimeRecurrence) null );

    for ( ITimeRecurrence recurrence : parseRecurrence( cronExpression, 6 ) ) {
      complexJobTrigger.addYearlyRecurrence( recurrence );
    }
    for ( ITimeRecurrence recurrence : parseRecurrence( cronExpression, 4 ) ) {
      complexJobTrigger.addMonthlyRecurrence( recurrence );
    }
    List<ITimeRecurrence> dayOfWeekRecurrences = parseDayOfWeekRecurrences( cronExpression );
    List<ITimeRecurrence> dayOfMonthRecurrences = parseRecurrence( cronExpression, 3 );
    if ( ( dayOfWeekRecurrences.size() > 0 ) && ( dayOfMonthRecurrences.size() == 0 ) ) {
      for ( ITimeRecurrence recurrence : dayOfWeekRecurrences ) {
        complexJobTrigger.addDayOfWeekRecurrence( recurrence );
      }
    } else if ( ( dayOfWeekRecurrences.size() == 0 ) && ( dayOfMonthRecurrences.size() > 0 ) ) {
      for ( ITimeRecurrence recurrence : dayOfMonthRecurrences ) {
        complexJobTrigger.addDayOfMonthRecurrence( recurrence );
      }
    }
    for ( ITimeRecurrence recurrence : parseRecurrence( cronExpression, 2 ) ) {
      complexJobTrigger.addHourlyRecurrence( recurrence );
    }
    for ( ITimeRecurrence recurrence : parseRecurrence( cronExpression, 1 ) ) {
      complexJobTrigger.addMinuteRecurrence( recurrence );
    }
    for ( ITimeRecurrence recurrence : parseRecurrence( cronExpression, 0 ) ) {
      complexJobTrigger.addSecondRecurrence( recurrence );
    }
    return complexJobTrigger;
  }
View Full Code Here

      recurrenceList = new RecurrenceList( 10, 15 );
      sequentialRecurrence = new SequentialRecurrence( 10, 15 );
      incrementalRecurrence = new IncrementalRecurrence( 10, 5 );
      startingMinute++;
    }
    ComplexJobTrigger jobTrigger = new ComplexJobTrigger();
    jobTrigger.setHourlyRecurrence( (ITimeRecurrence) null );
    jobTrigger.setMinuteRecurrence( startingMinute );

    jobTrigger.setSecondRecurrence( recurrenceList );
    System.out.println( jobTrigger.toString() );
    String jobName = "complexJob1";
    Job job = scheduler.createJob( jobName, TestAction.class, new HashMap<String, Serializable>(), jobTrigger );
    Assert.assertTrue( job.getJobName().contains( jobName ) );
    Assert.assertEquals( job.getSchedulableClass(), TestAction.class.getName() );
    Assert.assertEquals( job.getJobTrigger().toString(), jobTrigger.toString() );

    jobTrigger.setSecondRecurrence( sequentialRecurrence );
    jobName = "complexJob2";
    job = scheduler.createJob( jobName, TestAction2.class, new HashMap<String, Serializable>(), jobTrigger );
    Assert.assertTrue( job.getJobName().contains( jobName ) );
    Assert.assertEquals( job.getSchedulableClass(), TestAction2.class.getName() );
    Assert.assertEquals( job.getJobTrigger().toString(), jobTrigger.toString() );

    jobTrigger.setSecondRecurrence( incrementalRecurrence );
    jobName = "complexJob3";
    job = scheduler.createJob( jobName, TestAction3.class, new HashMap<String, Serializable>(), jobTrigger );
    Assert.assertTrue( job.getJobName().contains( jobName ) );
    Assert.assertEquals( job.getSchedulableClass(), TestAction3.class.getName() );
    Assert.assertEquals( job.getJobTrigger().toString(), jobTrigger.toString() );

    //
    // Wait for the jobs to complete, then check that each action executed the correct number of times
    //
    sleep( 60 );
View Full Code Here

    int startingSec = calendar.get( Calendar.SECOND ) + 10;
    if ( startingSec > 59 ) {
      startingSec = startingSec % 60;
      startingMin++;
    }
    ComplexJobTrigger complexJobTrigger = new ComplexJobTrigger();
    complexJobTrigger.setHourlyRecurrence( (ITimeRecurrence) null );
    complexJobTrigger.setMinuteRecurrence( startingMin );
    complexJobTrigger.setSecondRecurrence( startingSec );
    Job job = scheduler.createJob( jobName, TestAction.class, jobParams, complexJobTrigger );
    scheduler.pauseJob( job.getJobId() );
    sleep( 30 );
    Assert.assertEquals( counter, TestAction.counter );
    Assert.assertEquals( 1, scheduler.getJobs( null ).size() );
View Full Code Here

    Calendar calendar = Calendar.getInstance();
    int startingSec = calendar.get( Calendar.SECOND ) + 10;
    if ( startingSec > 59 ) {
      startingSec = startingSec % 60;
    }
    ComplexJobTrigger complexJobTrigger = new ComplexJobTrigger();
    complexJobTrigger.setHourlyRecurrence( (ITimeRecurrence) null );
    complexJobTrigger.setMinuteRecurrence( (ITimeRecurrence) null );
    complexJobTrigger.setSecondRecurrence( startingSec );
    String jobName = "complexJob1";
    int counter = TestAction.counter;

    scheduler.pause();
    scheduler.createJob( jobName, TestAction.class, jobParams, complexJobTrigger );
View Full Code Here

  }

  @Test
  public void testStartAndEndDate() throws SchedulerException {

    ComplexJobTrigger startEndJobTrigger = new ComplexJobTrigger();
    ComplexJobTrigger startJobTrigger = new ComplexJobTrigger();
    ComplexJobTrigger endJobTrigger = new ComplexJobTrigger();
    startEndJobTrigger.setHourlyRecurrence( (ITimeRecurrence) null );
    startJobTrigger.setHourlyRecurrence( (ITimeRecurrence) null );
    endJobTrigger.setHourlyRecurrence( (ITimeRecurrence) null );
    startEndJobTrigger.setMinuteRecurrence( (ITimeRecurrence) null );
    startJobTrigger.setMinuteRecurrence( (ITimeRecurrence) null );
    endJobTrigger.setMinuteRecurrence( (ITimeRecurrence) null );
    startEndJobTrigger.setSecondRecurrence( new IncrementalRecurrence( 0, 5 ) );
    startJobTrigger.setSecondRecurrence( new IncrementalRecurrence( 0, 5 ) );
    endJobTrigger.setSecondRecurrence( new IncrementalRecurrence( 0, 5 ) );

    Calendar calendar = Calendar.getInstance();
    int startingMin = calendar.get( Calendar.MINUTE );
    int startingSec = calendar.get( Calendar.SECOND ) + 20;
    if ( startingSec > 59 ) {
      startingSec = startingSec % 60;
      startingMin++;
    }
    calendar.set( Calendar.MINUTE, startingMin );
    calendar.set( Calendar.SECOND, startingSec );

    startEndJobTrigger.setStartTime( calendar.getTime() );
    startJobTrigger.setStartTime( calendar.getTime() );

    calendar.add( Calendar.MINUTE, 1 );
    startEndJobTrigger.setEndTime( calendar.getTime() );
    endJobTrigger.setEndTime( calendar.getTime() );

    int startEndCounter = TestAction.counter;
    int startCounter = TestAction2.counter;
    int endCounter = TestAction3.counter;
View Full Code Here

  }

  @Test
  public void testRemoveJob() throws SchedulerException {
    scheduler.pause();
    ComplexJobTrigger trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2050 );
    scheduler.createJob( "testName1", TestAction.class, jobParams, trigger );
    Assert.assertEquals( 1, scheduler.getJobs( null ).size() );

    for ( Job oldJob : scheduler.getJobs( null ) ) {
      scheduler.removeJob( oldJob.getJobId() );
View Full Code Here

@SuppressWarnings( "nls" )
public class ComplexTriggerTest {

  @Test
  public void timeSliceTest() {
    ComplexJobTrigger trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH );
    trigger.addDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY );
    trigger.addHourlyRecurrence( 12 );
    trigger.addMinuteRecurrence( 15 );
    trigger.addSecondRecurrence( 1 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0,1 0,15 0,12 ? 3 7 2010" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY );
    trigger.setHourlyRecurrence( 12 );
    trigger.setMinuteRecurrence( 15 );
    trigger.setSecondRecurrence( 1 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "1 15 12 ? 3 7 2010" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH );
    trigger.addDayOfMonthRecurrence( 10 );
    trigger.addHourlyRecurrence( 12 );
    trigger.addMinuteRecurrence( 15 );
    trigger.addSecondRecurrence( 1 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0,1 0,15 0,12 10 3 ? 2010" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH );
    trigger.setDayOfMonthRecurrence( 10 );
    trigger.setHourlyRecurrence( 12 );
    trigger.setMinuteRecurrence( 15 );
    trigger.setSecondRecurrence( 1 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "1 15 12 10 3 ? 2010" );

    trigger = new ComplexJobTrigger( 2010, ComplexJobTrigger.MARCH, null, ComplexJobTrigger.SATURDAY, 12 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0 12 ? 3 7 2010" );

    trigger = new ComplexJobTrigger( 2010, ComplexJobTrigger.MARCH, 10, null, 12 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0 12 10 3 ? 2010" );

    trigger = QuartzScheduler.createComplexTrigger( "5 15 12 ? 3 7 2010" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getYearlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 2010 ) );

    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( ComplexJobTrigger.MARCH ) );

    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 0 );

    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getDayOfWeekRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfWeekRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfWeekRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 7 ) );

    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getHourlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 12 ) );

    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMinuteRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 15 ) );

    Assert.assertEquals( trigger.getSecondRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getSecondRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getSecondRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getSecondRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 5 ) );

    trigger = QuartzScheduler.createComplexTrigger( "* * * * * ? *" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getSecondRecurrences().size(), 0 );

    trigger = QuartzScheduler.createComplexTrigger( "* * * ? * * *" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getSecondRecurrences().size(), 0 );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addDayOfMonthRecurrence( 3, 10 );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addMinuteRecurrence( 30, 45 );
    trigger.addSecondRecurrence( 1, 2 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0,1,2 0,30,45 0,12,15 3,10 3,5 ? 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.setDayOfMonthRecurrence( 3, 10 );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.setMinuteRecurrence( 30, 45 );
    trigger.setSecondRecurrence( 1, 2 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "1,2 30,45 12,15 3,10 3,5 ? 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addDayOfMonthRecurrence( 3, 10 );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addMinuteRecurrence( 30, 45 );
    trigger.addSecondRecurrence( 1, 2 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0,1,2 0,30,45 0,12,15 3,10 3,5 ? 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.setDayOfMonthRecurrence( 3, 10 );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.setMinuteRecurrence( 30, 45 );
    trigger.setSecondRecurrence( 1, 2 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "1,2 30,45 12,15 3,10 3,5 ? 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY, ComplexJobTrigger.SUNDAY );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30,45 0,12,15 ? 3,5 1,7 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY, ComplexJobTrigger.SUNDAY );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.setMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30,45 12,15 ? 3,5 1,7 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY, ComplexJobTrigger.SUNDAY );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30,45 0,12,15 ? 3,5 1,7 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY, ComplexJobTrigger.SUNDAY );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.setMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30,45 12,15 ? 3,5 1,7 2010,2013" );

    trigger = QuartzScheduler.createComplexTrigger( "0 30,45 12,15 3,10 3,5 ? 2010,2013" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getYearlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 2010 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 2013 ) );

    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( ComplexJobTrigger.MARCH ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( ComplexJobTrigger.MAY ) );

    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getDayOfMonthRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 3 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 10 ) );

    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 0 );

    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getHourlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 12 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 15 ) );

    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMinuteRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 30 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 45 ) );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( new SequentialRecurrence( 2010, 2013 ) );
    trigger.addMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY ) );
    trigger.addDayOfMonthRecurrence( new SequentialRecurrence( 15, 20 ) );
    trigger.addHourlyRecurrence( new SequentialRecurrence( 12, 15 ) );
    trigger.addMinuteRecurrence( new SequentialRecurrence( 30, 45 ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30-45 0,12-15 15-20 3-5 ? 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( new SequentialRecurrence( 2010, 2013 ) );
    trigger.setMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY ) );
    trigger.setDayOfMonthRecurrence( new SequentialRecurrence( 15, 20 ) );
    trigger.setHourlyRecurrence( new SequentialRecurrence( 12, 15 ) );
    trigger.setMinuteRecurrence( new SequentialRecurrence( 30, 45 ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30-45 12-15 15-20 3-5 ? 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2011, 2012, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.APRIL, ComplexJobTrigger.MAY );
    trigger.addDayOfMonthRecurrence( 15, 16, 17, 18, 19, 20 );
    trigger.addHourlyRecurrence( 12, 13, 14, 15 );
    trigger.addMinuteRecurrence( 30, 31, 32, 33, 34, 35, 36 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30-36 0,12-15 15-20 3-5 ? 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2011, 2012, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.APRIL, ComplexJobTrigger.MAY );
    trigger.setDayOfMonthRecurrence( 15, 16, 17, 18, 19, 20 );
    trigger.setHourlyRecurrence( 12, 13, 14, 15 );
    trigger.setMinuteRecurrence( 30, 31, 32, 33, 34, 35, 36 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30-36 12-15 15-20 3-5 ? 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2011, 2012, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.APRIL, ComplexJobTrigger.MAY );
    trigger.addDayOfWeekRecurrence( ComplexJobTrigger.SUNDAY, ComplexJobTrigger.MONDAY, ComplexJobTrigger.TUESDAY,
        ComplexJobTrigger.WEDNESDAY, ComplexJobTrigger.THURSDAY, ComplexJobTrigger.FRIDAY, ComplexJobTrigger.SATURDAY );
    trigger.addHourlyRecurrence( 12, 13, 14, 15 );
    trigger.addMinuteRecurrence( 30, 31, 32, 33, 34, 35, 36 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30-36 0,12-15 ? 3-5 1-7 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2011, 2012, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.APRIL, ComplexJobTrigger.MAY );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.SUNDAY, ComplexJobTrigger.MONDAY, ComplexJobTrigger.TUESDAY,
        ComplexJobTrigger.WEDNESDAY, ComplexJobTrigger.THURSDAY, ComplexJobTrigger.FRIDAY, ComplexJobTrigger.SATURDAY );
    trigger.setHourlyRecurrence( 12, 13, 14, 15 );
    trigger.setMinuteRecurrence( 30, 31, 32, 33, 34, 35, 36 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30-36 12-15 ? 3-5 1-7 2010-2013" );

    trigger = QuartzScheduler.createComplexTrigger( "0 30-45 12-15 ? 3-5 1-7 2010-2013" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getYearlyRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getYearlyRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( 2010 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getYearlyRecurrences().get( 0 ) ).getLastValue(),
        new Integer( 2013 ) );

    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMonthlyRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( ComplexJobTrigger.MARCH ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMonthlyRecurrences().get( 0 ) ).getLastValue(),
        new Integer( ComplexJobTrigger.MAY ) );

    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 0 );

    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getDayOfWeekRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getDayOfWeekRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( ComplexJobTrigger.SUNDAY ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getDayOfWeekRecurrences().get( 0 ) ).getLastValue(),
        new Integer( ComplexJobTrigger.SATURDAY ) );

    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getHourlyRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getHourlyRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( 12 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getHourlyRecurrences().get( 0 ) ).getLastValue(),
        new Integer( 15 ) );

    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMinuteRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMinuteRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( 30 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMinuteRecurrences().get( 0 ) ).getLastValue(),
        new Integer( 45 ) );

    trigger = new ComplexJobTrigger();
    trigger.addDayOfWeekRecurrence( new QualifiedDayOfWeek( DayOfWeekQualifier.LAST, DayOfWeek.FRI ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0 0 ? * 6L *" );

    trigger = new ComplexJobTrigger();
    trigger.addDayOfWeekRecurrence( new QualifiedDayOfWeek( DayOfWeekQualifier.LAST, DayOfWeek.FRI ) );
    trigger.addDayOfWeekRecurrence( new QualifiedDayOfWeek( DayOfWeekQualifier.THIRD, DayOfWeek.SUN ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0 0 ? * 6L,1#3 *" );

    trigger = QuartzScheduler.createComplexTrigger( "* 0 0 ? * 6L,1#3 *" );
    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 2 );
    Assert.assertTrue( trigger.getDayOfWeekRecurrences().get( 0 ) instanceof QualifiedDayOfWeek );
    Assert.assertEquals( ( (QualifiedDayOfWeek) trigger.getDayOfWeekRecurrences().get( 0 ) ).getQualifier(),
        DayOfWeekQualifier.LAST );
    Assert.assertEquals( ( (QualifiedDayOfWeek) trigger.getDayOfWeekRecurrences().get( 0 ) ).getDayOfWeek(),
        DayOfWeek.FRI );
    Assert.assertTrue( trigger.getDayOfWeekRecurrences().get( 1 ) instanceof QualifiedDayOfWeek );
    Assert.assertEquals( ( (QualifiedDayOfWeek) trigger.getDayOfWeekRecurrences().get( 1 ) ).getQualifier(),
        DayOfWeekQualifier.THIRD );
    Assert.assertEquals( ( (QualifiedDayOfWeek) trigger.getDayOfWeekRecurrences().get( 1 ) ).getDayOfWeek(),
        DayOfWeek.SUN );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addYearlyRecurrence( new SequentialRecurrence( 2015, 2020 ) );
    trigger.addYearlyRecurrence( new IncrementalRecurrence( 2025, 5 ) );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.JULY, ComplexJobTrigger.SEPTEMBER ) );
    trigger.addMonthlyRecurrence( new IncrementalRecurrence( ComplexJobTrigger.JANUARY, 3 ) );
    trigger.addDayOfMonthRecurrence( 3, 10 );
    trigger.addDayOfMonthRecurrence( new SequentialRecurrence( 15, 20 ) );
    trigger.addDayOfMonthRecurrence( new IncrementalRecurrence( 21, 3 ) );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addHourlyRecurrence( new SequentialRecurrence( 25, 30 ) );
    trigger.addHourlyRecurrence( new IncrementalRecurrence( 10, 5 ) );
    trigger.addMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(),
        "0 0,30,45 0,12,15,25-30,10/5 3,10,15-20,21/3 3,5,7-9,1/3 ? 2010,2013,2015-2020,2025/5" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.addYearlyRecurrence( new SequentialRecurrence( 2015, 2020 ) );
    trigger.addYearlyRecurrence( new IncrementalRecurrence( 2025, 5 ) );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.JULY, ComplexJobTrigger.SEPTEMBER ) );
    trigger.addMonthlyRecurrence( new IncrementalRecurrence( ComplexJobTrigger.JANUARY, 3 ) );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.THURSDAY, ComplexJobTrigger.FRIDAY );
    trigger.addDayOfWeekRecurrence( new SequentialRecurrence( ComplexJobTrigger.SUNDAY, ComplexJobTrigger.MONDAY ) );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.addHourlyRecurrence( new SequentialRecurrence( 25, 30 ) );
    trigger.addHourlyRecurrence( new IncrementalRecurrence( 10, 5 ) );
    trigger.setMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(),
        "0 30,45 12,15,25-30,10/5 ? 3,5,7-9,1/3 5,6,1-2 2010,2013,2015-2020,2025/5" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( new SequentialRecurrence( 2015, 2020 ) );
    trigger.setMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.JULY, ComplexJobTrigger.SEPTEMBER ) );
    trigger.setDayOfWeekRecurrence( new SequentialRecurrence( ComplexJobTrigger.SUNDAY, ComplexJobTrigger.MONDAY ) );
    trigger.setHourlyRecurrence( new SequentialRecurrence( 25, 30 ) );
    trigger.setMinuteRecurrence( new SequentialRecurrence( 5, 10 ) );
    trigger.setSecondRecurrence( new SequentialRecurrence( 30, 35 ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "30-35 5-10 25-30 ? 7-9 1-2 2015-2020" );

    trigger =
        QuartzScheduler
            .createComplexTrigger( "0 30,45 12,15,25-30,10/5 3,10,15-20,21/3 3,5,7-9,"
                    + "1/3 ? 2010,2013,2015-2020,2025/5" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 3 );
    Assert.assertTrue( trigger.getYearlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 2010 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 2013 ) );

    Assert.assertTrue( trigger.getYearlyRecurrences().get( 1 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getYearlyRecurrences().get( 1 ) ).getFirstValue(),
        new Integer( 2015 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getYearlyRecurrences().get( 1 ) ).getLastValue(),
        new Integer( 2020 ) );

    Assert.assertTrue( trigger.getYearlyRecurrences().get( 2 ) instanceof IncrementalRecurrence );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getYearlyRecurrences().get( 2 ) ).getStartingValue(),
        new Integer( 2025 ) );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getYearlyRecurrences().get( 2 ) ).getIncrement(),
        new Integer( 5 ) );

    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 3 );
    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( ComplexJobTrigger.MARCH ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( ComplexJobTrigger.MAY ) );

    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 1 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMonthlyRecurrences().get( 1 ) ).getFirstValue(),
        new Integer( ComplexJobTrigger.JULY ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMonthlyRecurrences().get( 1 ) ).getLastValue(),
        new Integer( ComplexJobTrigger.SEPTEMBER ) );

    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 2 ) instanceof IncrementalRecurrence );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getMonthlyRecurrences().get( 2 ) ).getStartingValue(),
        new Integer( ComplexJobTrigger.JANUARY ) );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getMonthlyRecurrences().get( 2 ) ).getIncrement(),
        new Integer( 3 ) );

    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 3 );
    Assert.assertTrue( trigger.getDayOfMonthRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 3 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 10 ) );

    Assert.assertTrue( trigger.getDayOfMonthRecurrences().get( 1 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getDayOfMonthRecurrences().get( 1 ) ).getFirstValue(),
        new Integer( 15 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getDayOfMonthRecurrences().get( 1 ) ).getLastValue(),
        new Integer( 20 ) );

    Assert.assertTrue( trigger.getDayOfMonthRecurrences().get( 2 ) instanceof IncrementalRecurrence );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getDayOfMonthRecurrences().get( 2 ) ).getStartingValue(),
        new Integer( 21 ) );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getDayOfMonthRecurrences().get( 2 ) ).getIncrement(),
        new Integer( 3 ) );
    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 3 );

    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 0 );

    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 3 );
    Assert.assertTrue( trigger.getHourlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 12 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 15 ) );

    Assert.assertTrue( trigger.getHourlyRecurrences().get( 1 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getHourlyRecurrences().get( 1 ) ).getFirstValue(),
        new Integer( 25 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getHourlyRecurrences().get( 1 ) ).getLastValue(),
        new Integer( 30 ) );

    Assert.assertTrue( trigger.getHourlyRecurrences().get( 2 ) instanceof IncrementalRecurrence );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getHourlyRecurrences().get( 2 ) ).getStartingValue(),
        new Integer( 10 ) );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getHourlyRecurrences().get( 2 ) ).getIncrement(),
        new Integer( 5 ) );

    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMinuteRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 30 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 45 ) );

  }
View Full Code Here

    assertFalse( this.blockOutManager.willFire( falseScheduleTrigger ) );

    /*
     * Complex Schedule Triggers
     */
    IJobTrigger trueComplexScheduleTrigger = new ComplexJobTrigger();
    trueComplexScheduleTrigger.setStartTime( scheduleStartDate.getTime() );
    trueComplexScheduleTrigger.setCronString( "0 0 1 ? * 2-3 *" ); //$NON-NLS-1$

    IJobTrigger falseComplexScheduleTrigger = new ComplexJobTrigger();
    falseComplexScheduleTrigger.setStartTime( scheduleStartDate.getTime() );
    falseComplexScheduleTrigger.setCronString( "0 0 1 ? * 2 *" ); //$NON-NLS-1$

    assertTrue( this.blockOutManager.willFire( trueComplexScheduleTrigger ) );
    assertFalse( this.blockOutManager.willFire( falseComplexScheduleTrigger ) );

    /*
     * Complex Block out
     */
    deleteJob( blockOutJob.getJobId() );
    blockOutJobTrigger = new ComplexJobTrigger();
    blockOutJobTrigger.setStartTime( blockOutStartDate.getTime() );
    blockOutJobTrigger.setDuration( duration );
    blockOutJobTrigger.setCronString( "0 0 0 ? * 2 *" ); //$NON-NLS-1$

    addBlockOutJob( blockOutJobTrigger );
View Full Code Here

TOP

Related Classes of org.pentaho.platform.api.scheduler2.ComplexJobTrigger

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.