REPO-3774 Fix intervals in scheduled persisted actions (#163)

Cherry-picked 8c51eb2 from master to 6.56.N
This commit is contained in:
Alex Mukha
2018-08-23 14:09:33 +01:00
parent 1101a7ec60
commit 06fc64bc94
3 changed files with 18 additions and 9 deletions

View File

@@ -31,6 +31,7 @@ import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.scheduled.ScheduledPersistedAction;
import org.alfresco.service.cmr.repository.NodeRef;
import org.quartz.CalendarIntervalScheduleBuilder;
import org.quartz.DateBuilder;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
@@ -274,7 +275,10 @@ public class ScheduledPersistedActionImpl implements ScheduledPersistedAction
// due to fire?
Trigger testT = TriggerBuilder.newTrigger()
.withIdentity("TEST")
.withSchedule(CalendarIntervalScheduleBuilder.calendarIntervalSchedule())
.withSchedule(CalendarIntervalScheduleBuilder.calendarIntervalSchedule()
.withInterval(
intervalCount,
DateBuilder.IntervalUnit.valueOf(intervalPeriod.toString().toUpperCase())))
.startAt(scheduleStart)
.build();
Date nextFireFromNow = testT.getFireTimeAfter(new Date());
@@ -318,7 +322,10 @@ public class ScheduledPersistedActionImpl implements ScheduledPersistedAction
.endAt(endAt)
.withSchedule(
CalendarIntervalScheduleBuilder.calendarIntervalSchedule()
.withMisfireHandlingInstructionFireAndProceed())
.withMisfireHandlingInstructionFireAndProceed()
.withInterval(
intervalCount,
DateBuilder.IntervalUnit.valueOf(intervalPeriod.toString().toUpperCase())))
.build();
}
return trigger;

View File

@@ -51,6 +51,7 @@ import org.junit.runners.Suite;
org.alfresco.repo.tenant.MultiTServiceImplTest.class,
org.alfresco.repo.search.SearcherComponentTest.class,
org.alfresco.repo.blog.BlogServiceImplTest.class,
org.alfresco.repo.action.scheduled.ScheduledPersistedActionServiceTest.class
})
public class AppContext06TestSuite
{

View File

@@ -61,10 +61,11 @@ import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.matchers.GroupMatcher;
import org.quartz.impl.triggers.CalendarIntervalTriggerImpl;
import org.quartz.impl.triggers.SimpleTriggerImpl;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
@@ -279,7 +280,7 @@ public class ScheduledPersistedActionServiceTest extends TestCase
assertNotNull(t);
assertEquals(12345, t.getStartTime().getTime());
assertEquals(null, t.getEndTime());
assertEquals(SimpleTrigger.class, t.getClass());
assertEquals(SimpleTriggerImpl.class, t.getClass());
// Only end date
// (End date + no repeat = never schedule)
@@ -299,7 +300,7 @@ public class ScheduledPersistedActionServiceTest extends TestCase
assertNotNull(t);
assertEquals((double) System.currentTimeMillis(), (double) t.getStartTime().getTime(), 10); // Within 10ms
assertEquals(null, t.getEndTime());
assertEquals(Trigger.class, t.getClass());
assertEquals(CalendarIntervalTriggerImpl.class, t.getClass());
assertEquals(2, ((CalendarIntervalTrigger) t).getRepeatInterval());
assertEquals(DateBuilder.IntervalUnit.SECOND, ((CalendarIntervalTrigger) t).getRepeatIntervalUnit());
@@ -313,7 +314,7 @@ public class ScheduledPersistedActionServiceTest extends TestCase
assertNotNull(t);
assertEquals(12345, t.getStartTime().getTime());
assertEquals(null, t.getEndTime());
assertEquals(CalendarIntervalTrigger.class, t.getClass());
assertEquals(CalendarIntervalTriggerImpl.class, t.getClass());
assertEquals(3, ((CalendarIntervalTrigger) t).getRepeatInterval());
assertEquals(DateBuilder.IntervalUnit.MONTH, ((CalendarIntervalTrigger) t).getRepeatIntervalUnit());
@@ -337,7 +338,7 @@ public class ScheduledPersistedActionServiceTest extends TestCase
assertNotNull(t);
assertEquals(12345, t.getStartTime().getTime());
assertEquals(future, t.getEndTime().getTime());
assertEquals(CalendarIntervalTrigger.class, t.getClass());
assertEquals(CalendarIntervalTriggerImpl.class, t.getClass());
assertEquals(12, ((CalendarIntervalTrigger) t).getRepeatInterval());
assertEquals(DateBuilder.IntervalUnit.WEEK, ((CalendarIntervalTrigger) t).getRepeatIntervalUnit());
@@ -351,7 +352,7 @@ public class ScheduledPersistedActionServiceTest extends TestCase
assertNotNull(t);
assertEquals((double) System.currentTimeMillis(), (double) t.getStartTime().getTime(), 2); // Within 2ms
assertEquals(future, t.getEndTime().getTime());
assertEquals(CalendarIntervalTrigger.class, t.getClass());
assertEquals(CalendarIntervalTriggerImpl.class, t.getClass());
assertEquals(6, ((CalendarIntervalTrigger) t).getRepeatInterval());
assertEquals(DateBuilder.IntervalUnit.HOUR, ((CalendarIntervalTrigger) t).getRepeatIntervalUnit());
@@ -378,7 +379,7 @@ public class ScheduledPersistedActionServiceTest extends TestCase
assertNotNull(t);
assertEquals(12345, t.getStartTime().getTime());
assertEquals(null, t.getEndTime());
assertEquals(SimpleTrigger.class, t.getClass());
assertEquals(SimpleTriggerImpl.class, t.getClass());
}
/**