public DefaultGobblinInstanceDriverImpl(String instanceName, Configurable sysConfig, JobCatalog jobCatalog, JobSpecScheduler jobScheduler, JobExecutionLauncher jobLauncher, Optional<MetricContext> baseMetricContext, Optional<Logger> log, SharedResourcesBroker<GobblinScopeTypes> instanceBroker) { Preconditions.checkNotNull(jobCatalog); Preconditions.checkNotNull(jobScheduler); Preconditions.checkNotNull(jobLauncher); Preconditions.checkNotNull(sysConfig); _instanceName = instanceName; _log = log.or(LoggerFactory.getLogger(getClass())); _metricCtx = baseMetricContext.or(constructMetricContext(sysConfig, _log)); _instrumentationEnabled = null != _metricCtx && GobblinMetrics.isEnabled(sysConfig.getConfig()); _jobCatalog = jobCatalog; _jobScheduler = jobScheduler; _jobLauncher = jobLauncher; _sysConfig = sysConfig; _instanceCfg = ConfigAccessor.createFromGlobalConfig(_sysConfig.getConfig()); _callbacksDispatcher = new JobLifecycleListenersList(_jobCatalog, _jobScheduler, _log); _instanceBroker = instanceBroker; _metrics = new StandardMetrics(this); }
@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")); }
public DefaultGobblinInstanceDriverImpl(String instanceName, Configurable sysConfig, JobCatalog jobCatalog, JobSpecScheduler jobScheduler, JobExecutionLauncher jobLauncher, Optional<MetricContext> baseMetricContext, Optional<Logger> log, SharedResourcesBroker<GobblinScopeTypes> instanceBroker) { Preconditions.checkNotNull(jobCatalog); Preconditions.checkNotNull(jobScheduler); Preconditions.checkNotNull(jobLauncher); Preconditions.checkNotNull(sysConfig); _instanceName = instanceName; _log = log.or(LoggerFactory.getLogger(getClass())); _metricCtx = baseMetricContext.or(constructMetricContext(sysConfig, _log)); _instrumentationEnabled = null != _metricCtx && GobblinMetrics.isEnabled(sysConfig.getConfig()); _jobCatalog = jobCatalog; _jobScheduler = jobScheduler; _jobLauncher = jobLauncher; _sysConfig = sysConfig; _instanceCfg = ConfigAccessor.createFromGlobalConfig(_sysConfig.getConfig()); _callbacksDispatcher = new JobLifecycleListenersList(_jobCatalog, _jobScheduler, _log); _instanceBroker = instanceBroker; _metrics = new StandardMetrics(this); }