From 06fc64bc94cc48c338f9bcfae4334b4c761225c3 Mon Sep 17 00:00:00 2001 From: Alex Mukha Date: Thu, 23 Aug 2018 14:09:33 +0100 Subject: [PATCH] REPO-3774 Fix intervals in scheduled persisted actions (#163) Cherry-picked 8c51eb2 from master to 6.56.N --- .../scheduled/ScheduledPersistedActionImpl.java | 11 +++++++++-- .../java/org/alfresco/AppContext06TestSuite.java | 1 + .../ScheduledPersistedActionServiceTest.java | 15 ++++++++------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/alfresco/repo/action/scheduled/ScheduledPersistedActionImpl.java b/src/main/java/org/alfresco/repo/action/scheduled/ScheduledPersistedActionImpl.java index 26198b318c..360e51dffa 100644 --- a/src/main/java/org/alfresco/repo/action/scheduled/ScheduledPersistedActionImpl.java +++ b/src/main/java/org/alfresco/repo/action/scheduled/ScheduledPersistedActionImpl.java @@ -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; diff --git a/src/test/java/org/alfresco/AppContext06TestSuite.java b/src/test/java/org/alfresco/AppContext06TestSuite.java index 94cad118ac..779bfb6274 100644 --- a/src/test/java/org/alfresco/AppContext06TestSuite.java +++ b/src/test/java/org/alfresco/AppContext06TestSuite.java @@ -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 { diff --git a/src/test/java/org/alfresco/repo/action/scheduled/ScheduledPersistedActionServiceTest.java b/src/test/java/org/alfresco/repo/action/scheduled/ScheduledPersistedActionServiceTest.java index 406c66d80c..ccf80f5825 100644 --- a/src/test/java/org/alfresco/repo/action/scheduled/ScheduledPersistedActionServiceTest.java +++ b/src/test/java/org/alfresco/repo/action/scheduled/ScheduledPersistedActionServiceTest.java @@ -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()); } /**