List of usage examples for org.springframework.integration.leader.event OnGrantedEvent OnGrantedEvent
public OnGrantedEvent(Object source, Context context, String role)
From source file:com.netflix.genie.web.tasks.leader.LocalLeader.java
/** * Event listener for when a context is started up. * * @param event The Spring Boot application ready event to startup on *///from w w w .j ava 2s . c o m @EventListener public void startLeadership(final ContextRefreshedEvent event) { if (this.isLeader) { log.debug("Starting Leadership due to {}", event); this.genieEventBus.publishSynchronousEvent(new OnGrantedEvent(this, null, "leader")); } }
From source file:com.netflix.genie.web.tasks.leader.LeadershipTasksCoordinatorUnitTests.java
/** * Make sure all leadership activities are started when leadership is granted. */// ww w.j a v a 2 s. com @Test @SuppressWarnings("unchecked") public void canStartLeadershipTasks() { final long task1Period = 13238; Mockito.when(this.task1.getScheduleType()).thenReturn(GenieTaskScheduleType.FIXED_RATE); Mockito.when(this.task1.getFixedRate()).thenReturn(task1Period); final long task2Period = 3891082; Mockito.when(this.task2.getScheduleType()).thenReturn(GenieTaskScheduleType.FIXED_DELAY); Mockito.when(this.task2.getFixedDelay()).thenReturn(task2Period); final Trigger task3Trigger = Mockito.mock(Trigger.class); Mockito.when(this.task3.getScheduleType()).thenReturn(GenieTaskScheduleType.TRIGGER); Mockito.when(this.task3.getTrigger()).thenReturn(task3Trigger); final OnGrantedEvent event = new OnGrantedEvent(this, null, "blah"); this.coordinator.onLeaderEvent(event); Mockito.verify(this.scheduler, Mockito.times(1)).scheduleAtFixedRate(this.task1, task1Period); Mockito.verify(this.task1, Mockito.never()).getFixedDelay(); Mockito.verify(this.task1, Mockito.never()).getTrigger(); Mockito.verify(this.scheduler, Mockito.times(1)).scheduleWithFixedDelay(this.task2, task2Period); Mockito.verify(this.task2, Mockito.never()).getFixedRate(); Mockito.verify(this.task2, Mockito.never()).getTrigger(); Mockito.verify(this.scheduler, Mockito.times(1)).schedule(this.task3, task3Trigger); Mockito.verify(this.task3, Mockito.never()).getFixedRate(); Mockito.verify(this.task3, Mockito.never()).getFixedDelay(); //Make sure a second OnGrantedEvent doesn't do anything if it's already running this.coordinator.onLeaderEvent(event); Mockito.verify(this.scheduler, Mockito.times(1)).scheduleAtFixedRate(this.task1, task1Period); Mockito.verify(this.scheduler, Mockito.times(1)).scheduleWithFixedDelay(this.task2, task2Period); Mockito.verify(this.scheduler, Mockito.times(1)).schedule(this.task3, task3Trigger); }
From source file:com.netflix.genie.web.tasks.leader.LeadershipTasksCoordinatorUnitTests.java
/** * Make sure all leadership activities are stopped when leadership is revoked. *///from w w w . j a v a2s. co m @Test @SuppressWarnings("unchecked") public void canStopLeadershipTasks() { final long task1Period = 13238; Mockito.when(this.task1.getScheduleType()).thenReturn(GenieTaskScheduleType.FIXED_RATE); Mockito.when(this.task1.getFixedRate()).thenReturn(task1Period); final long task2Period = 3891082; Mockito.when(this.task2.getScheduleType()).thenReturn(GenieTaskScheduleType.FIXED_DELAY); Mockito.when(this.task2.getFixedDelay()).thenReturn(task2Period); final Trigger task3Trigger = Mockito.mock(Trigger.class); Mockito.when(this.task3.getScheduleType()).thenReturn(GenieTaskScheduleType.TRIGGER); Mockito.when(this.task3.getTrigger()).thenReturn(task3Trigger); final ScheduledFuture future1 = Mockito.mock(ScheduledFuture.class); Mockito.when(future1.cancel(true)).thenReturn(true); Mockito.when(this.scheduler.scheduleAtFixedRate(this.task1, task1Period)).thenReturn(future1); final ScheduledFuture future2 = Mockito.mock(ScheduledFuture.class); Mockito.when(future2.cancel(true)).thenReturn(true); Mockito.when(this.scheduler.scheduleWithFixedDelay(this.task2, task2Period)).thenReturn(future2); final ScheduledFuture future3 = Mockito.mock(ScheduledFuture.class); Mockito.when(future3.cancel(true)).thenReturn(false); Mockito.when(this.scheduler.schedule(this.task3, task3Trigger)).thenReturn(future3); final OnGrantedEvent grantedEvent = new OnGrantedEvent(this, null, "blah"); this.coordinator.onLeaderEvent(grantedEvent); Mockito.verify(this.scheduler, Mockito.times(1)).scheduleAtFixedRate(this.task1, task1Period); Mockito.verify(this.task1, Mockito.never()).getFixedDelay(); Mockito.verify(this.task1, Mockito.never()).getTrigger(); Mockito.verify(this.scheduler, Mockito.times(1)).scheduleWithFixedDelay(this.task2, task2Period); Mockito.verify(this.task2, Mockito.never()).getFixedRate(); Mockito.verify(this.task2, Mockito.never()).getTrigger(); Mockito.verify(this.scheduler, Mockito.times(1)).schedule(this.task3, task3Trigger); Mockito.verify(this.task3, Mockito.never()).getFixedRate(); Mockito.verify(this.task3, Mockito.never()).getFixedDelay(); // Should now be running final OnRevokedEvent revokedEvent = new OnRevokedEvent(this, null, "blah"); this.coordinator.onLeaderEvent(revokedEvent); Mockito.verify(future1, Mockito.times(1)).cancel(true); Mockito.verify(future2, Mockito.times(1)).cancel(true); Mockito.verify(future3, Mockito.times(1)).cancel(true); // Call again to make sure nothing is invoked even though they were cancelled this.coordinator.onLeaderEvent(revokedEvent); Mockito.verify(future1, Mockito.times(1)).cancel(true); Mockito.verify(future2, Mockito.times(1)).cancel(true); Mockito.verify(future3, Mockito.times(1)).cancel(true); }