static Integer determineJobConfigurationType(final JobConfiguration jobConfiguration) { final Integer jobConfigurationType; if (jobConfiguration.getJobSchedulerConfiguration() != null) { jobConfigurationType = JobConfigurationType.SCHEDULER; } else if (jobConfiguration.getJobListenerConfiguration() != null) { jobConfigurationType = JobConfigurationType.LISTENER; } else { throw new SpringBatchLightminApplicationException("Could not determine JobConfigurationType"); } return jobConfigurationType; } }
@Override public String registerListenerForJob(final JobConfiguration jobConfiguration) { final JobListenerType jobListenerType = jobConfiguration.getJobListenerConfiguration().getJobListenerType(); final String beanName; switch (jobListenerType) { case LOCAL_FOLDER_LISTENER: beanName = this.registerFolderListener(jobConfiguration); break; default: throw new SpringBatchLightminApplicationException("Unknown ListenerType: " + jobListenerType); } return beanName; }
@Override public String registerListenerForJob(final JobConfiguration jobConfiguration) { final JobListenerType jobListenerType = jobConfiguration.getJobListenerConfiguration().getJobListenerType(); final String beanName; switch (jobListenerType) { case LOCAL_FOLDER_LISTENER: beanName = this.registerFolderListener(jobConfiguration); break; default: throw new SpringBatchLightminApplicationException("Unknown ListenerType: " + jobListenerType); } return beanName; }
@Test public void addWithListenerIT() { 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(); final JobConfiguration secondAddedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(secondAddedJobConfiguration).isNotNull(); assertThat(secondAddedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(secondAddedJobConfiguration.getJobListenerConfiguration()).isNotNull(); final Collection<JobConfiguration> allResult = this.getJobConfigurationRepository().getAllJobConfigurations(APPLICATION_NAME); assertThat(allResult).hasSize(2); }
@Test public void addWithListenerIT() { 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(); final JobConfiguration secondAddedJobConfiguration = this.getJobConfigurationRepository().add(jobConfiguration, APPLICATION_NAME); assertThat(secondAddedJobConfiguration).isNotNull(); assertThat(secondAddedJobConfiguration.getJobConfigurationId()).isNotNull(); assertThat(secondAddedJobConfiguration.getJobListenerConfiguration()).isNotNull(); final Collection<JobConfiguration> allResult = this.getJobConfigurationRepository().getAllJobConfigurations(APPLICATION_NAME); assertThat(allResult).hasSize(2); }
private List<ValueRecord> getValueRecords(final JobConfiguration jobConfiguration) { final Integer jobConfigurationType = JobConfigurationType.determineJobConfigurationType(jobConfiguration); final List<ValueRecord> valueRecords; if (JobConfigurationType.SCHEDULER.equals(jobConfigurationType)) { valueRecords = JobSchedulerConfigurationMapper.map(jobConfiguration.getJobSchedulerConfiguration(), jobConfiguration.getJobConfigurationId()); } else if (JobConfigurationType.LISTENER.equals(jobConfigurationType)) { valueRecords = JobListenerConfigurationMapper.map(jobConfiguration.getJobListenerConfiguration(), jobConfiguration.getJobConfigurationId()); } else { throw new SpringBatchLightminApplicationException("Unknown JobConfigurationType : " + jobConfigurationType); } return valueRecords; }
@Test public void getJobConfigurationWithListenerIT() 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(); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration (addedJobConfiguration.getJobConfigurationId(), APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(addedJobConfiguration.getJobConfigurationId()); }
@Test public void getJobConfigurationWithListenerIT() 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(); final JobConfiguration fetchedJobConfiguration = this.getJobConfigurationRepository().getJobConfiguration (addedJobConfiguration.getJobConfigurationId(), APPLICATION_NAME); assertThat(fetchedJobConfiguration.getJobConfigurationId()).isEqualTo(addedJobConfiguration.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()); }
private void validateCommon() { if (this.jobName == null) { this.throwExceptionAndLogError("jobName must not be null"); } if (this.jobSchedulerConfiguration == null) { if (this.jobListenerConfiguration == null) { this.throwExceptionAndLogError("jobSchedulerConfiguration or jobListenerConfiguration must not be null"); } else { this.getJobListenerConfiguration().validate(); } } else { this.jobSchedulerConfiguration.validate(); } }
@Override public void refreshListenerForJob(final JobConfiguration jobConfiguration) { this.unregisterListenerForJob(jobConfiguration.getJobListenerConfiguration().getBeanName()); final String beanName = this.registerListenerForJob(jobConfiguration); final Listener listener = this.applicationContext.getBean(beanName, Listener.class); if (ListenerStatus.ACTIVE.equals(listener.getListenerStatus())) { listener.start(); } }
@Override public void refreshListenerForJob(final JobConfiguration jobConfiguration) { this.unregisterListenerForJob(jobConfiguration.getJobListenerConfiguration().getBeanName()); final String beanName = this.registerListenerForJob(jobConfiguration); final Listener listener = this.applicationContext.getBean(beanName, Listener.class); if (ListenerStatus.ACTIVE.equals(listener.getListenerStatus())) { listener.start(); } }
@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 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()); }
public FolderListener(final ListenerConstructorWrapper listenerConstructorWrapper) { this.jobConfiguration = listenerConstructorWrapper.getJobConfiguration(); this.job = listenerConstructorWrapper.getJob(); this.jobParameters = listenerConstructorWrapper.getJobParameters(); this.jobLauncher = listenerConstructorWrapper.getJobLauncher(); this.jobIncrementer = listenerConstructorWrapper.getJobIncrementer(); this.jobListenerConfiguration = this.jobConfiguration.getJobListenerConfiguration(); this.listenerStatus = listenerConstructorWrapper.getJobConfiguration().getJobListenerConfiguration().getListenerStatus(); this.assertConstructor(); try { this.attachJobIncrementer(); this.initFileListFilter(); this.initTransformer(); this.initJobLaunchingMessageHandler(); this.initIntegrationFlow(); } catch (final Exception e) { throw new SpringBatchLightminConfigurationException(e.getMessage()); } }
public FolderListener(final ListenerConstructorWrapper listenerConstructorWrapper) { this.jobConfiguration = listenerConstructorWrapper.getJobConfiguration(); this.job = listenerConstructorWrapper.getJob(); this.jobParameters = listenerConstructorWrapper.getJobParameters(); this.jobLauncher = listenerConstructorWrapper.getJobLauncher(); this.jobIncrementer = listenerConstructorWrapper.getJobIncrementer(); this.jobListenerConfiguration = this.jobConfiguration.getJobListenerConfiguration(); this.listenerStatus = listenerConstructorWrapper.getJobConfiguration().getJobListenerConfiguration().getListenerStatus(); this.assertConstructor(); try { this.attachJobIncrementer(); this.initFileListFilter(); this.initTransformer(); this.initJobLaunchingMessageHandler(); this.initIntegrationFlow(); } catch (final Exception e) { throw new SpringBatchLightminConfigurationException(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()); } }
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; }