/** {@inheritDoc} */ @Override public void onAddJob(JobSpec addedJob) { if (this.filter.apply(addedJob)) { this.delegate.onAddJob(addedJob); } }
/** * {@inheritDoc} * * NOTE: For this callback only conditions on the URI and version will be used. * */ @Override public void onDeleteJob(URI deletedJobURI, String deletedJobVersion) { JobSpec fakeJobSpec = JobSpec.builder(deletedJobURI).withVersion(deletedJobVersion).build(); if (this.filter.apply(fakeJobSpec)) { this.delegate.onDeleteJob(deletedJobURI, deletedJobVersion); } }
@Override public Void apply(JobLifecycleListener listener) { listener.onJobLaunch(_jobDriver); return null; }
testListener.onMetadataChange(jss1_2, "metaKey", "value1", "value2"); verify(mockListener).onAddJob(eq(js1_2)); verify(mockListener).onDeleteJob(eq(js1_2.getUri()), eq(js1_2.getVersion())); verify(mockListener).onUpdateJob(eq(js1_2)); verify(mockListener).onStatusChange(eq(jss1_2), eq(RunningState.RUNNING), eq(RunningState.SUCCESSFUL)); verify(mockListener).onStageTransition(eq(jss1_2), eq("Stage1"), eq("Stage2")); verify(mockListener).onMetadataChange(eq(jss1_2), eq("metaKey"), eq("value1"), eq("value2")); verify(mockListener, never()).onAddJob(eq(js1_1)); verify(mockListener, never()).onDeleteJob(eq(js1_1.getUri()), eq(js1_1.getVersion())); verify(mockListener, never()).onUpdateJob(eq(js1_1)); verify(mockListener, never()).onStatusChange(eq(jss1_1), eq(RunningState.RUNNING), eq(RunningState.SUCCESSFUL)); verify(mockListener, never()).onStatusChange(eq(jss1_1), eq(RunningState.PENDING), eq(RunningState.RUNNING)); verify(mockListener, never()).onStageTransition(eq(jss1_1), eq("Stage1"), eq("Stage2")); verify(mockListener, never()).onMetadataChange(eq(jss1_1), eq("metaKey"), eq("value1"), eq("value2"));
@Test public void testHappyPath() { Logger log = LoggerFactory.getLogger("testHappyPath"); JobCatalogListenersContainer jobCatalog = mock(JobCatalogListenersContainer.class); JobSpecSchedulerListenersContainer jobScheduler = mock(JobSpecSchedulerListenersContainer.class); JobExecutionDriver mockDriver = mock(JobExecutionDriver.class); JobExecutionState mockState = mock(JobExecutionState.class); JobLifecycleListener listener1 = mock(JobLifecycleListener.class); JobLifecycleListener listener2 = mock(JobLifecycleListener.class); JobLifecycleListenersList disp = new JobLifecycleListenersList(jobCatalog, jobScheduler, log); disp.registerJobLifecycleListener(listener1); disp.onJobLaunch(mockDriver); disp.registerWeakJobLifecycleListener(listener2); disp.onMetadataChange(mockState, "key", "oldValue", "newValue"); verify(jobCatalog).addListener(eq(listener1)); verify(jobScheduler).registerJobSpecSchedulerListener(eq(listener1)); verify(listener1).onJobLaunch(eq(mockDriver)); verify(listener2, never()).onJobLaunch(eq(mockDriver)); verify(jobCatalog).registerWeakJobCatalogListener(eq(listener2)); verify(jobScheduler).registerWeakJobSpecSchedulerListener(eq(listener2)); verify(listener1).onMetadataChange(eq(mockState), eq("key"), eq("oldValue"), eq("newValue")); verify(listener2).onMetadataChange(eq(mockState), eq("key"), eq("oldValue"), eq("newValue")); }
/** {@inheritDoc} */ @Override public void onStageTransition(JobExecutionState state, String previousStage, String newStage) { if (this.filter.apply(state.getJobSpec())) { this.delegate.onStageTransition(state, previousStage, newStage); } }
/** {@inheritDoc} */ @Override public void onUpdateJob(JobSpec updatedJob) { if (this.filter.apply(updatedJob)) { this.delegate.onUpdateJob(updatedJob); } }
/** {@inheritDoc} */ @Override public void onMetadataChange(JobExecutionState state, String key, Object oldValue, Object newValue) { if (this.filter.apply(state.getJobSpec())) { this.delegate.onMetadataChange(state, key, oldValue, newValue); } }
/** {@inheritDoc} */ @Override public void onStatusChange(JobExecutionState state, RunningState previousStatus, RunningState newStatus) { if (this.filter.apply(state.getJobSpec())) { this.delegate.onStatusChange(state, previousStatus, newStatus); } }
@Override public void onJobScheduled(JobSpecSchedule jobSchedule) { if (this.filter.apply(jobSchedule.getJobSpec())) { this.delegate.onJobScheduled(jobSchedule); } }
@Override public void onJobTriggered(JobSpec jobSpec) { if (this.filter.apply(jobSpec)) { this.delegate.onJobTriggered(jobSpec); } }
@Override public void onJobUnscheduled(JobSpecSchedule jobSchedule) { if (this.filter.apply(jobSchedule.getJobSpec())) { this.delegate.onJobUnscheduled(jobSchedule); } }
/** {@inheritDoc} */ @Override public void onStageTransition(JobExecutionState state, String previousStage, String newStage) { if (this.filter.apply(state.getJobSpec())) { this.delegate.onStageTransition(state, previousStage, newStage); } }
/** {@inheritDoc} */ @Override public void onUpdateJob(JobSpec updatedJob) { if (this.filter.apply(updatedJob)) { this.delegate.onUpdateJob(updatedJob); } }
/** {@inheritDoc} */ @Override public void onMetadataChange(JobExecutionState state, String key, Object oldValue, Object newValue) { if (this.filter.apply(state.getJobSpec())) { this.delegate.onMetadataChange(state, key, oldValue, newValue); } }
/** {@inheritDoc} */ @Override public void onStatusChange(JobExecutionState state, RunningState previousStatus, RunningState newStatus) { if (this.filter.apply(state.getJobSpec())) { this.delegate.onStatusChange(state, previousStatus, newStatus); } }
@Override public void onJobScheduled(JobSpecSchedule jobSchedule) { if (this.filter.apply(jobSchedule.getJobSpec())) { this.delegate.onJobScheduled(jobSchedule); } }
@Override public void onJobTriggered(JobSpec jobSpec) { if (this.filter.apply(jobSpec)) { this.delegate.onJobTriggered(jobSpec); } }
@Override public void onJobUnscheduled(JobSpecSchedule jobSchedule) { if (this.filter.apply(jobSchedule.getJobSpec())) { this.delegate.onJobUnscheduled(jobSchedule); } }
@Override public void onJobLaunch(JobExecutionDriver jobDriver) { if (this.filter.apply(jobDriver.getJobExecutionState().getJobSpec())) { this.delegate.onJobLaunch(jobDriver); } }