class DefaultAdminService implements AdminService {

    @Override
    @Transactional(propagation = Propagation.REQUIRED, transactionManager = "lightminTransactionManager")
    public void deleteJobConfiguration(final Long jobConfigurationId) {
        try {
            final JobConfiguration jobConfiguration = this.jobConfigurationRepository.getJobConfiguration(jobConfigurationId,
                    this.springBatchLightminCoreConfigurationProperties.getApplicationName());
            final JobSchedulerConfiguration jobSchedulerConfiguration = jobConfiguration.getJobSchedulerConfiguration();
            final JobListenerConfiguration jobListenerConfiguration = jobConfiguration.getJobListenerConfiguration();
            if (jobSchedulerConfiguration != null) {
                final String beanName = jobSchedulerConfiguration.getBeanName();
                this.schedulerService.terminate(beanName);
                this.schedulerService.unregisterSchedulerForJob(beanName);
                this.jobConfigurationRepository.delete(jobConfiguration,
                        this.springBatchLightminCoreConfigurationProperties.getApplicationName());
            }
            if (jobListenerConfiguration != null) {
                final String beanName = jobListenerConfiguration.getBeanName();
                this.listenerService.terminateListener(beanName);
                this.jobConfigurationRepository.delete(jobConfiguration,
                        this.springBatchLightminCoreConfigurationProperties.getApplicationName());
            }
        } catch (final NoSuchJobConfigurationException e) {
            log.error(e.getMessage());
            throw new SpringBatchLightminApplicationException(e, e.getMessage());
        }
    }

    public  DefaultAdminService(final JobConfigurationRepository jobConfigurationRepository,
                               final SchedulerService schedulerService,
                               final ListenerService listenerService,
                               final SpringBatchLightminCoreConfigurationProperties springBatchLightminCoreConfigurationProperties
    );

}