@Override public void rescheduleTimerInstance(ProcessInstanceKey processInstanceKey, TimerInstanceSummary summary) { if (processInstanceKey == null || processInstanceKey.isValid() == false) { return; } ProcessAdminServicesClient servicesClient = getClient(processInstanceKey.getServerTemplateId(), ProcessAdminServicesClient.class); if (summary.isRelative()) { servicesClient.updateTimerRelative(processInstanceKey.getDeploymentId(), processInstanceKey.getProcessInstanceId(), summary.getId(), summary.getDelay(), summary.getPeriod(), summary.getRepeatLimit()); } else { servicesClient.updateTimer(processInstanceKey.getDeploymentId(), processInstanceKey.getProcessInstanceId(), summary.getId(), summary.getDelay(), summary.getPeriod(), summary.getRepeatLimit()); } }
@Override public TimerInstanceSummary apply(TimerInstance timerInstance) { if (timerInstance == null) { return null; } TimerInstanceSummary summary = new TimerInstanceSummary(); summary.setId(timerInstance.getId()); summary.setTimerId(timerInstance.getTimerId()); summary.setName(timerInstance.getTimerName()); summary.setProcessInstanceId(timerInstance.getProcessInstanceId()); summary.setActivationTime(timerInstance.getActivationTime()); summary.setDelay(timerInstance.getDelay()); summary.setLastFireTime(timerInstance.getLastFireTime()); summary.setNextFireTime(timerInstance.getNextFireTime()); summary.setPeriod(timerInstance.getPeriod()); summary.setRepeatLimit(timerInstance.getRepeatLimit()); return summary; } }
public static void assertTimerInstanceSummary(final TimerInstance ti, final TimerInstanceSummary ts) { assertNotNull(ts); assertEquals(ti.getId(), ts.getId().longValue()); assertEquals(ti.getTimerId(), ts.getTimerId().longValue()); assertEquals(ti.getTimerName(), ts.getName()); assertEquals(ti.getActivationTime(), ts.getActivationTime()); assertEquals(ti.getLastFireTime(), ts.getLastFireTime()); assertEquals(ti.getNextFireTime(), ts.getNextFireTime()); assertEquals(ti.getDelay(), ts.getDelay().longValue()); assertEquals(ti.getPeriod(), ts.getPeriod().longValue()); assertEquals(ti.getRepeatLimit(), ts.getRepeatLimit().intValue()); assertEquals(ti.getProcessInstanceId(), ts.getProcessInstanceId().longValue()); }
processInstanceId); TimerInstanceSummary summary = TimerInstanceSummary.builder().withId(2l).withRelative(false).withDelay(3l).withProcessInstanceId(1l).withPeriod(4l).withRepeatLimit(1).build(); summary.getId(), summary.getDelay(), summary.getPeriod(), summary.getRepeatLimit()); summary.setRelative(true); summary.getId(), summary.getDelay(), summary.getPeriod(), summary.getRepeatLimit());
TimerInstanceSummary.builder().withId(2l).withName("t2").build(), TimerInstanceSummary.builder().withId(1l).withName("t1").build()); assertThat(viewTimerInstances).hasSameSizeAs(timerInstances); assertThat(viewTimerInstances.get(0).getLabel()).isEqualTo("t1-1"); assertThat(viewTimerInstances.get(0).getName()).isEqualTo("t1"); assertThat(viewTimerInstances.get(0).getDescription()).startsWith("NextExecution"); assertThat(viewTimerInstances.get(0).getCallbacks()).hasSize(1); assertThat(viewTimerInstances.get(1).getLabel()).isEqualTo("t2-2"); assertThat(viewTimerInstances.get(1).getName()).isEqualTo("t2"); assertThat(viewTimerInstances.get(1).getDescription()).startsWith("NextExecution"); assertThat(viewTimerInstances.get(1).getCallbacks()).hasSize(1);
@Test public void testOnTimerInstanceReschedule() { ProcessInstanceSummary processInstance = ProcessInstanceSummary.builder().withServerTemplateId("serverTemplateId").withDeploymentId("containerId").withProcessInstanceId(1l).withState(ProcessInstance.STATE_ACTIVE).build(); final TimerInstanceSummary timer = TimerInstanceSummary.builder().withId(1l).withName("t1").build(); List<TimerInstanceSummary> timerInstance = Arrays.asList( timer, TimerInstanceSummary.builder().withId(2l).withName("t2").build()); ProcessInstanceDiagramSummary summary = new ProcessInstanceDiagramSummary(); summary.setProcessDefinition(ProcessSummary.builder().nodes(emptyList()).timers(emptyList()).build()); summary.setNodeInstances(emptyList()); summary.setTimerInstances(timerInstance); when(processService.getProcessInstanceDiagramSummary(processInstance.getProcessInstanceKey())).thenReturn(summary); presenter.setProcessInstance(processInstance); presenter.onTimerInstanceReschedule(timer); verify(processService).rescheduleTimerInstance(processInstance.getProcessInstanceKey(), timer); verify(notificationEvent).fire(any()); }
ti.setDescription(constants.NextExecution() + " " + DateUtils.getPrettyTime(ti.getNextFireTime())); ti.addCallback(constants.Reschedule(), () -> { rescheduleView.setOnReschedule(timer -> onTimerInstanceReschedule(timer));
@Override public void setValue(final TimerInstanceSummary timer) { this.timerInstance.setModel(timer); if (timer.hasCallbacks()) { for (GenericSummary.LabeledCommand callback : timer.getCallbacks()) { addAction(e -> callback.getCommand().execute(), constants.Reschedule()); } } else { actionsItems.getClassList().add("hidden"); } String id = Document.get().createUniqueId(); label.setAttribute("href", "#timer-instance-" + id); details.id = "timer-instance-" + id; }
private Builder() { summary = new TimerInstanceSummary(); }
public void onTimerInstanceReschedule(final TimerInstanceSummary summary) { processService.call((Void) -> { notification.fire(new NotificationEvent(constants.TimerInstanceRescheduled(summary.getLabel()), NotificationEvent.NotificationType.SUCCESS)); refreshDetails(); }).rescheduleTimerInstance(processInstance.getProcessInstanceKey(), summary); }
public static void assertTimerInstanceSummary(final TimerInstance ti, final TimerInstanceSummary ts) { assertNotNull(ts); assertEquals(ti.getId(), ts.getId().longValue()); assertEquals(ti.getTimerId(), ts.getTimerId().longValue()); assertEquals(ti.getTimerName(), ts.getName()); assertEquals(ti.getActivationTime(), ts.getActivationTime()); assertEquals(ti.getLastFireTime(), ts.getLastFireTime()); assertEquals(ti.getNextFireTime(), ts.getNextFireTime()); assertEquals(ti.getDelay(), ts.getDelay().longValue()); assertEquals(ti.getPeriod(), ts.getPeriod().longValue()); assertEquals(ti.getRepeatLimit(), ts.getRepeatLimit().intValue()); assertEquals(ti.getProcessInstanceId(), ts.getProcessInstanceId().longValue()); }
processInstanceId); TimerInstanceSummary summary = TimerInstanceSummary.builder().withId(2l).withRelative(false).withDelay(3l).withProcessInstanceId(1l).withPeriod(4l).withRepeatLimit(1).build(); summary.getId(), summary.getDelay(), summary.getPeriod(), summary.getRepeatLimit()); summary.setRelative(true); summary.getId(), summary.getDelay(), summary.getPeriod(), summary.getRepeatLimit());
@Test public void testGetProcessInstanceTimerInstances() { ProcessInstanceKey instanceKey = new ProcessInstanceKey(serverTemplateId, containerId, processInstanceId); List<TimerInstance> timerInstances = Arrays.asList(TimerInstance.builder().id(1l).timerId(0l).timerName("timer1").period(2l).delay(1).build(), TimerInstance.builder().id(2l).timerId(1l).timerName("time2").period(1l).delay(2).build()); when(processAdminServicesClient.getTimerInstances(containerId, processInstanceId)).thenReturn(timerInstances); List<TimerInstanceSummary> timers = service.getProcessInstanceTimerInstances(instanceKey); assertThat(timers).hasSize(2).containsExactly(TimerInstanceSummary.builder().withId(1l).withTimerId(0l).withName("timer1").withPeriod(2l).withDelay(1l).build(), TimerInstanceSummary.builder().withId(2l).withTimerId(1l).withName("time2").withPeriod(1l).withDelay(2l).build()); }
private Builder() { summary = new TimerInstanceSummary(); }
@Override public TimerInstanceSummary apply(TimerInstance timerInstance) { if (timerInstance == null) { return null; } TimerInstanceSummary summary = new TimerInstanceSummary(); summary.setId(timerInstance.getId()); summary.setTimerId(timerInstance.getTimerId()); summary.setName(timerInstance.getTimerName()); summary.setProcessInstanceId(timerInstance.getProcessInstanceId()); summary.setActivationTime(timerInstance.getActivationTime()); summary.setDelay(timerInstance.getDelay()); summary.setLastFireTime(timerInstance.getLastFireTime()); summary.setNextFireTime(timerInstance.getNextFireTime()); summary.setPeriod(timerInstance.getPeriod()); summary.setRepeatLimit(timerInstance.getRepeatLimit()); return summary; } }
@Override public void rescheduleTimerInstance(ProcessInstanceKey processInstanceKey, TimerInstanceSummary summary) { if (processInstanceKey == null || processInstanceKey.isValid() == false) { return; } ProcessAdminServicesClient servicesClient = getClient(processInstanceKey.getServerTemplateId(), ProcessAdminServicesClient.class); if (summary.isRelative()) { servicesClient.updateTimerRelative(processInstanceKey.getDeploymentId(), processInstanceKey.getProcessInstanceId(), summary.getId(), summary.getDelay(), summary.getPeriod(), summary.getRepeatLimit()); } else { servicesClient.updateTimer(processInstanceKey.getDeploymentId(), processInstanceKey.getProcessInstanceId(), summary.getId(), summary.getDelay(), summary.getPeriod(), summary.getRepeatLimit()); } }
@Test public void testGetProcessInstanceTimerInstances() { ProcessInstanceKey instanceKey = new ProcessInstanceKey(serverTemplateId, containerId, processInstanceId); List<TimerInstance> timerInstances = Arrays.asList(TimerInstance.builder().id(1l).timerId(0l).timerName("timer1").period(2l).delay(1).build(), TimerInstance.builder().id(2l).timerId(1l).timerName("time2").period(1l).delay(2).build()); when(processAdminServicesClient.getTimerInstances(containerId, processInstanceId)).thenReturn(timerInstances); List<TimerInstanceSummary> timers = service.getProcessInstanceTimerInstances(instanceKey); assertThat(timers).hasSize(2).containsExactly(TimerInstanceSummary.builder().withId(1l).withTimerId(0l).withName("timer1").withPeriod(2l).withDelay(1l).build(), TimerInstanceSummary.builder().withId(2l).withTimerId(1l).withName("time2").withPeriod(1l).withDelay(2l).build()); }
@Test public void testTimerInstanceForNode() { ProcessInstanceSummary processInstance = ProcessInstanceSummary.builder().withServerTemplateId("serverTemplateId").withDeploymentId("containerId").withProcessInstanceId(1l).withState(ProcessInstance.STATE_ACTIVE).build(); List<TimerSummary> timers = Arrays.asList( TimerSummary.builder().id(0l).nodeId(1l).uniqueId("_1").build(), TimerSummary.builder().id(1l).nodeId(2l).uniqueId("_2").build() ); TimerInstanceSummary t1 = TimerInstanceSummary.builder().withId(1l).withTimerId(0l).withName("t1").build(); TimerInstanceSummary t2 = TimerInstanceSummary.builder().withId(2l).withTimerId(1l).withName("t2").build(); ProcessInstanceDiagramSummary summary = new ProcessInstanceDiagramSummary(); summary.setProcessDefinition(ProcessSummary.builder().nodes(emptyList()).timers(timers).build()); summary.setNodeInstances(emptyList()); summary.setTimerInstances(Arrays.asList(t1, t2)); when(processService.getProcessInstanceDiagramSummary(processInstance.getProcessInstanceKey())).thenReturn(summary); presenter.setProcessInstance(processInstance); assertThat(presenter.getTimerInstanceForNode("_1")).containsExactly(t1); assertThat(presenter.getTimerInstanceForNode("_2")).containsExactly(t2); assertThat(presenter.getTimerInstanceForNode("_3")).isEmpty(); assertThat(presenter.getTimerInstanceForNode(null)).isEmpty(); }