in kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/annotation/JobAnnotationBuilder.java [42:75]
public static JobConfiguration generateJobConfiguration(final Class<?> type) {
ElasticJobConfiguration annotation = type.getAnnotation(ElasticJobConfiguration.class);
Preconditions.checkArgument(null != annotation, "@ElasticJobConfiguration not found by class '%s'.", type);
Preconditions.checkArgument(!Strings.isNullOrEmpty(annotation.jobName()), "@ElasticJobConfiguration jobName could not be empty by class '%s'.", type);
JobConfiguration.Builder jobConfigurationBuilder = JobConfiguration.newBuilder(annotation.jobName(), annotation.shardingTotalCount())
.shardingItemParameters(annotation.shardingItemParameters())
.cron(Strings.isNullOrEmpty(annotation.cron()) ? null : annotation.cron())
.timeZone(Strings.isNullOrEmpty(annotation.timeZone()) ? null : annotation.timeZone())
.jobParameter(annotation.jobParameter())
.monitorExecution(annotation.monitorExecution())
.failover(annotation.failover())
.misfire(annotation.misfire())
.maxTimeDiffSeconds(annotation.maxTimeDiffSeconds())
.reconcileIntervalMinutes(annotation.reconcileIntervalMinutes())
.jobShardingStrategyType(Strings.isNullOrEmpty(annotation.jobShardingStrategyType()) ? null : annotation.jobShardingStrategyType())
.jobExecutorThreadPoolSizeProviderType(Strings.isNullOrEmpty(annotation.jobExecutorThreadPoolSizeProviderType()) ? null : annotation.jobExecutorThreadPoolSizeProviderType())
.jobErrorHandlerType(Strings.isNullOrEmpty(annotation.jobErrorHandlerType()) ? null : annotation.jobErrorHandlerType())
.jobListenerTypes(annotation.jobListenerTypes())
.description(annotation.description())
.disabled(annotation.disabled())
.overwrite(annotation.overwrite());
for (Class<? extends JobExtraConfigurationFactory> clazz : annotation.extraConfigurations()) {
try {
Optional<JobExtraConfiguration> jobExtraConfig = clazz.newInstance().getJobExtraConfiguration();
jobExtraConfig.ifPresent(jobConfigurationBuilder::addExtraConfigurations);
} catch (IllegalAccessException | InstantiationException exception) {
throw (JobConfigurationException) new JobConfigurationException("new JobExtraConfigurationFactory instance by class '%s' failure", clazz).initCause(exception);
}
}
for (ElasticJobProp prop : annotation.props()) {
jobConfigurationBuilder.setProperty(prop.key(), prop.value());
}
return jobConfigurationBuilder.build();
}