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

View File

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

View File

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