public JobDesc()

in src/main/java/org/apache/sling/commons/scheduler/impl/QuartzJobExecutor.java [90:133]


        public JobDesc(final JobDataMap data) {
            this.job = data.get(QuartzScheduler.DATA_MAP_OBJECT);
            this.name = (String) data.get(QuartzScheduler.DATA_MAP_NAME);
            this.providedName = (String)data.get(QuartzScheduler.DATA_MAP_PROVIDED_NAME);
            this.runOn = (String[])data.get(QuartzScheduler.DATA_MAP_RUN_ON);

            // initialize metrics fields
            final QuartzScheduler localQuartzScheduler = (QuartzScheduler) data.get(QuartzScheduler.DATA_MAP_QUARTZ_SCHEDULER);
            MetricRegistry localMetricsService = null;
            ConfigHolder localConfigHolder = null;
            if (localQuartzScheduler != null) {
                // shouldn't be null but for paranoia
                localMetricsService = localQuartzScheduler.metricsRegistry;
                localConfigHolder = localQuartzScheduler.configHolder;
            }
            // mainConfiguration might be null during deactivation
            slowThresholdMillis = localConfigHolder != null ? localConfigHolder.slowThresholdMillis() : DEFAULT_SLOW_JOB_THRESHOLD_MILLIS;

            String metricsSuffix = "";
            final String filterName = MetricsHelper.deriveFilterName(localConfigHolder, job);
            if (filterName != null) {
                metricsSuffix = ".filter." + filterName;
            } else {
                // no filter matches -> try (custom) thread pool
                final String threadPoolName = data.getString(QuartzScheduler.DATA_MAP_THREAD_POOL_NAME);
                if (threadPoolName != null) {
                    // 'tp' stands for thread pool
                    metricsSuffix = ".tp." + threadPoolName;
                }
            }

            if ( localMetricsService != null ) {
                metricRegistry = localMetricsService;
                runningJobsCounter = metricRegistry.counter(QuartzScheduler.METRICS_NAME_RUNNING_JOBS + metricsSuffix);
                jobDurationTimer = metricRegistry.timer(QuartzScheduler.METRICS_NAME_TIMER + metricsSuffix);
                overallRunningJobsCounter = metricsSuffix.length() == 0 ? null
                        : metricRegistry.counter(QuartzScheduler.METRICS_NAME_RUNNING_JOBS);
            } else {
                metricRegistry = null;
                runningJobsCounter = null;
                jobDurationTimer = null;
                overallRunningJobsCounter = null;
            }
        }