private Map<String, Map<Long, JobConfiguration>> getJobConfigurationsForApplicationName(final String applicationName) throws NoSuchJobConfigurationException { final Map<String, Map<Long, JobConfiguration>> jobConfigurationMap; if (StringUtils.hasLength(applicationName)) { if (this.jobConfigurations.containsKey(applicationName)) { jobConfigurationMap = this.jobConfigurations.get(applicationName); } else { throw new NoSuchJobConfigurationException("Could not determine SpringBatchLightminApplication with " + "name: " + applicationName); } } else { throw new SpringBatchLightminApplicationException("applicationName must not be null or empty"); } return jobConfigurationMap; }
@Override public JobConfiguration getJobConfigurationById(final Long jobConfigurationId) { try { final JobConfiguration jobConfiguration = this.jobConfigurationRepository.getJobConfiguration(jobConfigurationId, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); this.attachSchedulerStatus(jobConfiguration); return jobConfiguration; } catch (final NoSuchJobConfigurationException e) { throw new SpringBatchLightminApplicationException(e, e.getMessage()); } }
@Override public JobConfiguration getJobConfiguration(final Long jobConfigurationId, final String applicationName) throws NoSuchJobConfigurationException { final Map<String, Map<Long, JobConfiguration>> applicationJobConfigurations = this.getJobConfigurationsForApplicationName(applicationName); final Set<String> jobNames = applicationJobConfigurations.keySet(); final Map<Long, JobConfiguration> tempMap = new HashMap<>(); JobConfiguration jobConfiguration = null; for (final String jobName : jobNames) { final Map<Long, JobConfiguration> configurationMap = applicationJobConfigurations.get(jobName); if (configurationMap != null && !configurationMap.isEmpty()) { tempMap.putAll(configurationMap); } } for (final Map.Entry<Long, JobConfiguration> jc : tempMap.entrySet()) { if (jc.getKey().equals(jobConfigurationId)) { jobConfiguration = jc.getValue(); break; } } if (jobConfiguration == null) { final String message = "No jobConfiguration could be found for id:" + jobConfigurationId; log.error(message); throw new NoSuchJobConfigurationException(message); } return jobConfiguration; }
@Override public JobConfiguration getJobConfigurationById(final Long jobConfigurationId) { try { final JobConfiguration jobConfiguration = this.jobConfigurationRepository.getJobConfiguration(jobConfigurationId, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); this.attachSchedulerStatus(jobConfiguration); return jobConfiguration; } catch (final NoSuchJobConfigurationException e) { throw new SpringBatchLightminApplicationException(e, e.getMessage()); } }
@Override public synchronized void delete(final JobConfiguration jobConfiguration, final String applicationName) throws NoSuchJobConfigurationException { final Map<String, Map<Long, JobConfiguration>> applicationJobConfigurations = this.jobConfigurations.get(applicationName); final String jobName = jobConfiguration.getJobName(); final Long jobConfigurationId = jobConfiguration.getJobConfigurationId(); if (jobName == null) { throw new SpringBatchLightminApplicationException("jobName must not be null!"); } final JobConfiguration jobConfigurationToDelete; if (applicationJobConfigurations.containsKey(jobName)) { final Map<Long, JobConfiguration> jobConfigurationMap = applicationJobConfigurations.get(jobName); jobConfigurationToDelete = this.getJobConfiguration(jobConfigurationId, applicationName); jobConfigurationMap.remove(jobConfigurationToDelete.getJobConfigurationId()); log.debug("Removed JobConfiguration with id: " + jobConfiguration.getJobConfigurationId()); } else { final String message = "No configuration found for job: " + jobName + ". Nothing to delete"; log.error(message); throw new NoSuchJobConfigurationException(message); } }
@Override 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()); } }
@Override public void delete(final JobConfiguration jobConfiguration, final String applicationName) throws NoSuchJobConfigurationException { final Long jobConfigurationId = jobConfiguration.getJobConfigurationId(); if (this.checkJobConfigurationExists(jobConfigurationId, applicationName)) { this.jobConfigurationParameterDAO.delete(jobConfigurationId); this.jobConfigurationValueDAO.delete(jobConfigurationId); this.jobConfigurationDAO.delete(jobConfigurationId, applicationName); } else { final String message = "No jobConfiguration could be found for id:" + jobConfiguration; log.error(message); throw new NoSuchJobConfigurationException(message); } }
@Override 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()); } }
@Override public JobConfiguration getJobConfiguration(final Long jobConfigurationId, final String applicationName) throws NoSuchJobConfigurationException { if (this.checkJobConfigurationExists(jobConfigurationId, applicationName)) { final JobConfigurationDAO.JobConfigurationJdbcWrapper jobConfigurationJdbcWrapper = this.jobConfigurationDAO.getById(jobConfigurationId, applicationName); final JobConfiguration jobConfiguration = jobConfigurationJdbcWrapper.getJobConfiguration(); this.jobConfigurationValueDAO.attachConfigurationValues(jobConfiguration, jobConfigurationJdbcWrapper.jobConfigurationType); this.jobConfigurationParameterDAO.attachParameters(jobConfiguration); return jobConfiguration; } else { final String message = "No jobConfiguration could be found for id:" + jobConfigurationId; log.error(message); throw new NoSuchJobConfigurationException(message); } }
log.error(e.getMessage()); throw new SpringBatchLightminApplicationException(e, e.getMessage()); this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } catch (final NoSuchJobConfigurationException e) { log.error(e.getMessage()); throw new SpringBatchLightminApplicationException(e, e.getMessage());
@Override public JobConfiguration update(final JobConfiguration jobConfiguration, final String applicationName) throws NoSuchJobConfigurationException { final Long jobConfigurationId = jobConfiguration.getJobConfigurationId(); if (this.checkJobConfigurationExists(jobConfigurationId, applicationName)) { this.jobConfigurationDAO.update(jobConfiguration, applicationName); this.jobConfigurationValueDAO.update(jobConfiguration); this.jobConfigurationParameterDAO.delete(jobConfigurationId); this.jobConfigurationParameterDAO.add(jobConfiguration); return jobConfiguration; } else { final String message = "No jobConfiguration could be found for id:" + jobConfiguration; log.error(message); throw new NoSuchJobConfigurationException(message); } }
log.error(e.getMessage()); throw new SpringBatchLightminApplicationException(e, e.getMessage()); this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } catch (final NoSuchJobConfigurationException e) { log.error(e.getMessage()); throw new SpringBatchLightminApplicationException(e, e.getMessage());
@Override public void updateJobConfiguration(final JobConfiguration jobConfiguration) { jobConfiguration.validateForUpdate(); try { final JobConfiguration existingJobConfiguration = this.jobConfigurationRepository.getJobConfiguration(jobConfiguration.getJobConfigurationId(), this.springBatchLightminCoreConfigurationProperties.getApplicationName()); if (existingJobConfiguration.getJobSchedulerConfiguration() != null) { final String existingBeanName = existingJobConfiguration.getJobSchedulerConfiguration().getBeanName(); jobConfiguration.getJobSchedulerConfiguration().setBeanName(existingBeanName); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); this.schedulerService.refreshSchedulerForJob(jobConfiguration); if (SchedulerStatus.RUNNING.equals(jobConfiguration.getJobSchedulerConfiguration().getSchedulerStatus())) { this.schedulerService.schedule(jobConfiguration.getJobSchedulerConfiguration().getBeanName(), Boolean.TRUE); } else { log.info("Scheduler not started, no scheduling triggered!"); } } else if (existingJobConfiguration.getJobListenerConfiguration() != null) { final String existingBeanName = existingJobConfiguration.getJobListenerConfiguration().getBeanName(); jobConfiguration.getJobListenerConfiguration().setBeanName(existingBeanName); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); this.listenerService.refreshListenerForJob(jobConfiguration); } } catch (final NoSuchJobConfigurationException e) { log.error(e.getMessage()); throw new SpringBatchLightminApplicationException(e, e.getMessage()); } }
@Override public void updateJobConfiguration(final JobConfiguration jobConfiguration) { jobConfiguration.validateForUpdate(); try { final JobConfiguration existingJobConfiguration = this.jobConfigurationRepository.getJobConfiguration(jobConfiguration.getJobConfigurationId(), this.springBatchLightminCoreConfigurationProperties.getApplicationName()); if (existingJobConfiguration.getJobSchedulerConfiguration() != null) { final String existingBeanName = existingJobConfiguration.getJobSchedulerConfiguration().getBeanName(); jobConfiguration.getJobSchedulerConfiguration().setBeanName(existingBeanName); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); this.schedulerService.refreshSchedulerForJob(jobConfiguration); if (SchedulerStatus.RUNNING.equals(jobConfiguration.getJobSchedulerConfiguration().getSchedulerStatus())) { this.schedulerService.schedule(jobConfiguration.getJobSchedulerConfiguration().getBeanName(), Boolean.TRUE); } else { log.info("Scheduler not started, no scheduling triggered!"); } } else if (existingJobConfiguration.getJobListenerConfiguration() != null) { final String existingBeanName = existingJobConfiguration.getJobListenerConfiguration().getBeanName(); jobConfiguration.getJobListenerConfiguration().setBeanName(existingBeanName); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); this.listenerService.refreshListenerForJob(jobConfiguration); } } catch (final NoSuchJobConfigurationException e) { log.error(e.getMessage()); throw new SpringBatchLightminApplicationException(e, e.getMessage()); } }
@Override public void startJobConfiguration(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.schedule(beanName, Boolean.FALSE); jobConfiguration.getJobSchedulerConfiguration().setSchedulerStatus(SchedulerStatus.RUNNING); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } else if (jobListenerConfiguration != null) { final String beanName = jobListenerConfiguration.getBeanName(); this.listenerService.activateListener(beanName, Boolean.FALSE); jobConfiguration.getJobListenerConfiguration().setListenerStatus(ListenerStatus.ACTIVE); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } } catch (final NoSuchJobConfigurationException e) { throw new SpringBatchLightminApplicationException(e, e.getMessage()); } }
@Override public void startJobConfiguration(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.schedule(beanName, Boolean.FALSE); jobConfiguration.getJobSchedulerConfiguration().setSchedulerStatus(SchedulerStatus.RUNNING); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } else if (jobListenerConfiguration != null) { final String beanName = jobListenerConfiguration.getBeanName(); this.listenerService.activateListener(beanName, Boolean.FALSE); jobConfiguration.getJobListenerConfiguration().setListenerStatus(ListenerStatus.ACTIVE); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } } catch (final NoSuchJobConfigurationException e) { throw new SpringBatchLightminApplicationException(e, e.getMessage()); } }
@Override public void stopJobConfiguration(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); jobConfiguration.getJobSchedulerConfiguration().setSchedulerStatus(SchedulerStatus.STOPPED); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } else if (jobListenerConfiguration != null) { final String beanName = jobListenerConfiguration.getBeanName(); this.listenerService.terminateListener(beanName); jobConfiguration.getJobListenerConfiguration().setListenerStatus(ListenerStatus.STOPPED); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } } catch (final NoSuchJobConfigurationException e) { throw new SpringBatchLightminApplicationException(e, e.getMessage()); } }
@Override public void stopJobConfiguration(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); jobConfiguration.getJobSchedulerConfiguration().setSchedulerStatus(SchedulerStatus.STOPPED); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } else if (jobListenerConfiguration != null) { final String beanName = jobListenerConfiguration.getBeanName(); this.listenerService.terminateListener(beanName); jobConfiguration.getJobListenerConfiguration().setListenerStatus(ListenerStatus.STOPPED); this.jobConfigurationRepository.update(jobConfiguration, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); } } catch (final NoSuchJobConfigurationException e) { throw new SpringBatchLightminApplicationException(e, e.getMessage()); } }