@Override public Map<String, Collection<JobConfiguration>> getJobConfigurationMap(final Collection<String> jobNames) { final Map<String, Collection<JobConfiguration>> jobConfigurationMap = new HashMap<>(); final Collection<JobConfiguration> jobConfigurations = this.jobConfigurationRepository.getAllJobConfigurationsByJobNames(jobNames, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); this.attachSchedulerStatus(jobConfigurations); log.info("Fetched " + jobConfigurations.size() + " JobConfigurations"); for (final JobConfiguration jobConfiguration : jobConfigurations) { final String jobName = jobConfiguration.getJobName(); if (!jobConfigurationMap.containsKey(jobName)) { jobConfigurationMap.put(jobName, new HashSet<>()); } log.info("add " + jobConfiguration + " to result set"); jobConfigurationMap.get(jobName).add(jobConfiguration); } return jobConfigurationMap; }
@Override public Map<String, Collection<JobConfiguration>> getJobConfigurationMap(final Collection<String> jobNames) { final Map<String, Collection<JobConfiguration>> jobConfigurationMap = new HashMap<>(); final Collection<JobConfiguration> jobConfigurations = this.jobConfigurationRepository.getAllJobConfigurationsByJobNames(jobNames, this.springBatchLightminCoreConfigurationProperties.getApplicationName()); this.attachSchedulerStatus(jobConfigurations); log.info("Fetched " + jobConfigurations.size() + " JobConfigurations"); for (final JobConfiguration jobConfiguration : jobConfigurations) { final String jobName = jobConfiguration.getJobName(); if (!jobConfigurationMap.containsKey(jobName)) { jobConfigurationMap.put(jobName, new HashSet<>()); } log.info("add " + jobConfiguration + " to result set"); jobConfigurationMap.get(jobName).add(jobConfiguration); } return jobConfigurationMap; }
public void update(final JobConfiguration jobConfiguration, final String applicationName) { final String sql = String.format(UPDATE_STATEMENT, this.tableName); this.jdbcTemplate.update( sql, new Object[]{jobConfiguration.getJobName(), jobConfiguration.getJobIncrementer().getIncrementerIdentifier(), jobConfiguration.getJobConfigurationId(), applicationName}, new int[]{Types.VARCHAR, Types.VARCHAR, Types.NUMERIC, Types.VARCHAR}); }
private Map<String, Object> map(final JobConfiguration jobConfiguration, final String applicationName) { final Map<String, Object> keyValues = new HashMap<>(); keyValues.put(JobConfigurationDomain.JOB_NAME, jobConfiguration.getJobName()); keyValues.put(JobConfigurationDomain.JOB_INCREMENTER, jobConfiguration.getJobIncrementer() .getIncrementerIdentifier()); keyValues.put(JobConfigurationDomain.APLLICATION_NAME, applicationName); if (jobConfiguration.getJobConfigurationId() != null) { keyValues.put(JobConfigurationDomain.JOB_CONFIGURATION_ID, jobConfiguration.getJobConfigurationId()); } final Integer jobConfigurationType = JobConfigurationType.determineJobConfigurationType(jobConfiguration); keyValues.put(JobConfigurationDomain.JOB_CONFIGURATION_TYPE, jobConfigurationType); return keyValues; }
@Override public synchronized JobConfiguration update(final JobConfiguration jobConfiguration, final String applicationName) throws NoSuchJobConfigurationException { if (this.jobConfigurations.containsKey(applicationName)) { final Map<String, Map<Long, JobConfiguration>> applicationJobConfigurations = this.jobConfigurations.get(applicationName); this.getJobConfiguration(jobConfiguration.getJobConfigurationId(), applicationName); if (applicationJobConfigurations.containsKey(jobConfiguration.getJobName())) { applicationJobConfigurations.get(jobConfiguration.getJobName()).put(jobConfiguration.getJobConfigurationId(), jobConfiguration); } else { this.add(jobConfiguration, applicationName); } } else { this.add(jobConfiguration, applicationName); } return jobConfiguration; }
@Override public synchronized JobConfiguration add(final JobConfiguration jobConfiguration, final String applicationName) { final String jobName = jobConfiguration.getJobName(); if (jobName == null) { throw new SpringBatchLightminConfigurationException("jobName must not be null!"); } if (!StringUtils.hasLength(applicationName)) { throw new SpringBatchLightminConfigurationException("applicationName must not be null or empty"); } if (!this.jobConfigurations.containsKey(applicationName)) { this.jobConfigurations.put(applicationName, new HashMap<>()); } final Map<String, Map<Long, JobConfiguration>> jobConfigurationsMap = this.jobConfigurations.get(applicationName); final Long jobConfigurationId = this.getNextJobId(); jobConfiguration.setJobConfigurationId(jobConfigurationId); if (jobConfigurationsMap.containsKey(jobName)) { jobConfigurationsMap.get(jobName).put(jobConfigurationId, jobConfiguration); } else { final Map<Long, JobConfiguration> jobConfigurationMap = new HashMap<>(); jobConfigurationMap.put(jobConfigurationId, jobConfiguration); jobConfigurationsMap.put(jobName, jobConfigurationMap); } return jobConfiguration; }
@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); } }
@Test public void updateWithListenerWithParametersIT() throws NoSuchJobConfigurationException { final JobListenerConfiguration jobListenerConfiguration = DomainTestHelper.createJobListenerConfiguration ("src/test/", "*.txt", JobListenerType.LOCAL_FOLDER_LISTENER); jobListenerConfiguration.setBeanName("testBean"); final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobListenerConfiguration); final JobConfiguration addedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(addedJobConfiguration).isNotNull(); assertThat(addedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(addedJobConfiguration.getJobListenerConfiguration()).isNotNull(); addedJobConfiguration.setJobName("updated"); final Map<String, Object> parameters = new HashMap<>(); parameters.put("test", "input"); addedJobConfiguration.setJobParameters(parameters); final JobConfiguration updatedJobConfiguration = this.getJobConfigurationRepository().update(addedJobConfiguration, APPLICATION_NAME); assertThat(updatedJobConfiguration.getJobName()).isEqualTo("updated"); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration(1L, APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(updatedJobConfiguration.getJobConfigurationId()); }
@Test public void updateWithListenerWithParametersIT() throws NoSuchJobConfigurationException { final JobListenerConfiguration jobListenerConfiguration = DomainTestHelper.createJobListenerConfiguration ("src/test/", "*.txt", JobListenerType.LOCAL_FOLDER_LISTENER); jobListenerConfiguration.setBeanName("testBean"); final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobListenerConfiguration); final JobConfiguration addedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(addedJobConfiguration).isNotNull(); assertThat(addedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(addedJobConfiguration.getJobListenerConfiguration()).isNotNull(); addedJobConfiguration.setJobName("updated"); final Map<String, Object> parameters = new HashMap<>(); parameters.put("test", "input"); addedJobConfiguration.setJobParameters(parameters); final JobConfiguration updatedJobConfiguration = this.getJobConfigurationRepository().update(addedJobConfiguration, APPLICATION_NAME); assertThat(updatedJobConfiguration.getJobName()).isEqualTo("updated"); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration(1L, APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(updatedJobConfiguration.getJobConfigurationId()); }
@Test public void updateWithListenerIT() throws NoSuchJobConfigurationException { final JobListenerConfiguration jobListenerConfiguration = DomainTestHelper.createJobListenerConfiguration ("src/test/", "*.txt", JobListenerType.LOCAL_FOLDER_LISTENER); jobListenerConfiguration.setBeanName("testBean"); final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobListenerConfiguration); final JobConfiguration addedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(addedJobConfiguration).isNotNull(); assertThat(addedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(addedJobConfiguration.getJobListenerConfiguration()).isNotNull(); addedJobConfiguration.setJobName("updated"); final JobConfiguration updatedJobConfiguration = this.getJobConfigurationRepository().update(addedJobConfiguration, APPLICATION_NAME); assertThat(updatedJobConfiguration.getJobName()).isEqualTo("updated"); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration (updatedJobConfiguration.getJobConfigurationId(), APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(updatedJobConfiguration.getJobConfigurationId()); }
@Test public void updateWithParametersIT() throws NoSuchJobConfigurationException { final JobSchedulerConfiguration jobSchedulerConfiguration = DomainTestHelper.createJobSchedulerConfiguration(null, 10L, 10L, JobSchedulerType.PERIOD); jobSchedulerConfiguration.setBeanName("testBean"); final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobSchedulerConfiguration); final JobConfiguration addedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(addedJobConfiguration).isNotNull(); assertThat(addedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(addedJobConfiguration.getJobSchedulerConfiguration()).isNotNull(); addedJobConfiguration.setJobName("updated"); final Map<String, Object> parameters = new HashMap<>(); parameters.put("test", "input"); addedJobConfiguration.setJobParameters(parameters); final JobConfiguration updatedJobConfiguration = this.getJobConfigurationRepository().update(addedJobConfiguration, APPLICATION_NAME); assertThat(updatedJobConfiguration.getJobName()).isEqualTo("updated"); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration (addedJobConfiguration.getJobConfigurationId(), APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(updatedJobConfiguration.getJobConfigurationId()); }
@Test public void updateWithListenerIT() throws NoSuchJobConfigurationException { final JobListenerConfiguration jobListenerConfiguration = DomainTestHelper.createJobListenerConfiguration ("src/test/", "*.txt", JobListenerType.LOCAL_FOLDER_LISTENER); jobListenerConfiguration.setBeanName("testBean"); final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobListenerConfiguration); final JobConfiguration addedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(addedJobConfiguration).isNotNull(); assertThat(addedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(addedJobConfiguration.getJobListenerConfiguration()).isNotNull(); addedJobConfiguration.setJobName("updated"); final JobConfiguration updatedJobConfiguration = this.getJobConfigurationRepository().update(addedJobConfiguration, APPLICATION_NAME); assertThat(updatedJobConfiguration.getJobName()).isEqualTo("updated"); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration (updatedJobConfiguration.getJobConfigurationId(), APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(updatedJobConfiguration.getJobConfigurationId()); }
@Test public void updateIT() throws NoSuchJobConfigurationException { final JobSchedulerConfiguration jobSchedulerConfiguration = DomainTestHelper.createJobSchedulerConfiguration(null, 10L, 10L, JobSchedulerType.PERIOD); jobSchedulerConfiguration.setBeanName("testBean"); final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobSchedulerConfiguration); final JobConfiguration addedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(addedJobConfiguration).isNotNull(); assertThat(addedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(addedJobConfiguration.getJobSchedulerConfiguration()).isNotNull(); addedJobConfiguration.setJobName("updated"); final Map<String, Object> jobParameters = new HashMap<>(); jobParameters.put("Double", 20.2); addedJobConfiguration.setJobParameters(jobParameters); final JobConfiguration updatedJobConfiguration = this.getJobConfigurationRepository().update(addedJobConfiguration, APPLICATION_NAME); assertThat(updatedJobConfiguration.getJobName()).isEqualTo("updated"); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration (updatedJobConfiguration.getJobConfigurationId(), APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(updatedJobConfiguration.getJobConfigurationId()); }
@Test public void updateWithParametersIT() throws NoSuchJobConfigurationException { final JobSchedulerConfiguration jobSchedulerConfiguration = DomainTestHelper.createJobSchedulerConfiguration(null, 10L, 10L, JobSchedulerType.PERIOD); jobSchedulerConfiguration.setBeanName("testBean"); final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobSchedulerConfiguration); final JobConfiguration addedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(addedJobConfiguration).isNotNull(); assertThat(addedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(addedJobConfiguration.getJobSchedulerConfiguration()).isNotNull(); addedJobConfiguration.setJobName("updated"); final Map<String, Object> parameters = new HashMap<>(); parameters.put("test", "input"); addedJobConfiguration.setJobParameters(parameters); final JobConfiguration updatedJobConfiguration = this.getJobConfigurationRepository().update(addedJobConfiguration, APPLICATION_NAME); assertThat(updatedJobConfiguration.getJobName()).isEqualTo("updated"); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration (addedJobConfiguration.getJobConfigurationId(), APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(updatedJobConfiguration.getJobConfigurationId()); }
@Test public void updateIT() throws NoSuchJobConfigurationException { final JobSchedulerConfiguration jobSchedulerConfiguration = DomainTestHelper.createJobSchedulerConfiguration(null, 10L, 10L, JobSchedulerType.PERIOD); jobSchedulerConfiguration.setBeanName("testBean"); final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobSchedulerConfiguration); final JobConfiguration addedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(addedJobConfiguration).isNotNull(); assertThat(addedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(addedJobConfiguration.getJobSchedulerConfiguration()).isNotNull(); addedJobConfiguration.setJobName("updated"); final Map<String, Object> jobParameters = new HashMap<>(); jobParameters.put("Double", 20.2); addedJobConfiguration.setJobParameters(jobParameters); final JobConfiguration updatedJobConfiguration = this.getJobConfigurationRepository().update(addedJobConfiguration, APPLICATION_NAME); assertThat(updatedJobConfiguration.getJobName()).isEqualTo("updated"); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration (updatedJobConfiguration.getJobConfigurationId(), APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(updatedJobConfiguration.getJobConfigurationId()); }
private String registerFolderListener(final JobConfiguration jobConfiguration) { final String beanName; try { final ListenerConstructorWrapper listenerConstructorWrapper = new ListenerConstructorWrapper(); final JobListenerConfiguration jobListenerConfiguration = jobConfiguration.getJobListenerConfiguration(); final JobLauncher jobLauncher = this.createLobLauncher(jobListenerConfiguration.getTaskExecutorType(), this.jobRepository); final JobParameters jobParameters = ServiceUtil.mapToJobParameters(jobConfiguration.getJobParameters()); final Job job = this.jobRegistry.getJob(jobConfiguration.getJobName()); listenerConstructorWrapper.setJob(job); listenerConstructorWrapper.setJobParameters(jobParameters); listenerConstructorWrapper.setJobLauncher(jobLauncher); listenerConstructorWrapper.setJobConfiguration(jobConfiguration); listenerConstructorWrapper.setJobIncrementer(jobConfiguration.getJobIncrementer()); if (!StringUtils.hasText(jobListenerConfiguration.getBeanName())) { beanName = this.generateSchedulerBeanName(jobConfiguration.getJobName(), jobConfiguration.getJobConfigurationId(), jobListenerConfiguration.getJobListenerType()); } else { beanName = jobListenerConfiguration.getBeanName(); } final Set<Object> constructorValues = new HashSet<>(); constructorValues.add(listenerConstructorWrapper); this.beanRegistrar.registerBean(FolderListener.class, beanName, constructorValues, null, null, null, null); } catch (final Exception e) { throw new SpringBatchLightminConfigurationException(e, e.getMessage()); } return beanName; }
private String registerFolderListener(final JobConfiguration jobConfiguration) { final String beanName; try { final ListenerConstructorWrapper listenerConstructorWrapper = new ListenerConstructorWrapper(); final JobListenerConfiguration jobListenerConfiguration = jobConfiguration.getJobListenerConfiguration(); final JobLauncher jobLauncher = this.createLobLauncher(jobListenerConfiguration.getTaskExecutorType(), this.jobRepository); final JobParameters jobParameters = ServiceUtil.mapToJobParameters(jobConfiguration.getJobParameters()); final Job job = this.jobRegistry.getJob(jobConfiguration.getJobName()); listenerConstructorWrapper.setJob(job); listenerConstructorWrapper.setJobParameters(jobParameters); listenerConstructorWrapper.setJobLauncher(jobLauncher); listenerConstructorWrapper.setJobConfiguration(jobConfiguration); listenerConstructorWrapper.setJobIncrementer(jobConfiguration.getJobIncrementer()); if (!StringUtils.hasText(jobListenerConfiguration.getBeanName())) { beanName = this.generateSchedulerBeanName(jobConfiguration.getJobName(), jobConfiguration.getJobConfigurationId(), jobListenerConfiguration.getJobListenerType()); } else { beanName = jobListenerConfiguration.getBeanName(); } final Set<Object> constructorValues = new HashSet<>(); constructorValues.add(listenerConstructorWrapper); this.beanRegistrar.registerBean(FolderListener.class, beanName, constructorValues, null, null, null, null); } catch (final Exception e) { throw new SpringBatchLightminConfigurationException(e, e.getMessage()); } return beanName; }
jobConfiguration.getJobSchedulerConfiguration().getTaskExecutorType(), this.jobRepository); final Job job = this.jobRegistry.getJob(jobConfiguration.getJobName()); final JobParameters jobParameters = ServiceUtil.mapToJobParameters(jobConfiguration.getJobParameters()); final JobSchedulerConfiguration jobSchedulerConfiguration = jobConfiguration.getJobSchedulerConfiguration(); final String beanName; if (jobSchedulerConfiguration.getBeanName() == null || jobSchedulerConfiguration.getBeanName().isEmpty()) { beanName = this.generateSchedulerBeanName(jobConfiguration.getJobName(), jobConfiguration.getJobConfigurationId(), jobConfiguration.getJobSchedulerConfiguration() .getJobSchedulerType());
public static JobConfiguration map(final org.tuxdevelop.spring.batch.lightmin.domain.JobConfiguration jobConfiguration) { final JobConfiguration response = new JobConfiguration(); response.setJobConfigurationId(jobConfiguration.getJobConfigurationId()); response.setJobName(jobConfiguration.getJobName()); response.setJobIncrementer(map(jobConfiguration.getJobIncrementer())); response.setJobParameters(map(jobConfiguration.getJobParameters())); response.setJobSchedulerConfiguration(map(jobConfiguration.getJobSchedulerConfiguration())); response.setJobListenerConfiguration(map(jobConfiguration.getJobListenerConfiguration())); return response; }
public static JobConfiguration map(final org.tuxdevelop.spring.batch.lightmin.domain.JobConfiguration jobConfiguration) { final JobConfiguration response = new JobConfiguration(); response.setJobConfigurationId(jobConfiguration.getJobConfigurationId()); response.setJobName(jobConfiguration.getJobName()); response.setJobIncrementer(map(jobConfiguration.getJobIncrementer())); response.setJobParameters(map(jobConfiguration.getJobParameters())); response.setJobSchedulerConfiguration(map(jobConfiguration.getJobSchedulerConfiguration())); response.setJobListenerConfiguration(map(jobConfiguration.getJobListenerConfiguration())); return response; }