@Override public void run() { JsrJobContextFactoryBean factoryBean = null; try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final Job job = batchContext.getBean(Job.class); semaphore.release(); // Initialization of the JobExecution for job level dependencies jobRegistry.register(job, jobExecution); job.execute(jobExecution); jobRegistry.remove(jobExecution); } catch (Exception e) { exceptionHolder.add(e); } finally { if(factoryBean != null) { factoryBean.close(); } batchContext.close(); if(semaphore.availablePermits() == 0) { semaphore.release(); } } } });
@Override public JobContext getObject() throws Exception { return getCurrent(); }
@Before public void setUp() throws Exception { StepSynchronizationManager.close(); propertyContext = new BatchPropertyContext(); factoryBean = new JsrJobContextFactoryBean(); }
@Test public void testInitialCreationSingleThread() throws Exception { factoryBean.setJobExecution(new JobExecution(5L)); factoryBean.setBatchPropertyContext(propertyContext); assertTrue(factoryBean.getObjectType().isAssignableFrom(JobContext.class)); assertFalse(factoryBean.isSingleton()); JobContext jobContext1 = factoryBean.getObject(); JobContext jobContext2 = factoryBean.getObject(); assertEquals(5L, jobContext1.getExecutionId()); assertEquals(5L, jobContext2.getExecutionId()); assertTrue(jobContext1 == jobContext2); }
@After public void tearDown() throws Exception { factoryBean.close(); StepSynchronizationManager.close(); }
@Test public void testInitialCreationSingleThreadUsingStepScope() throws Exception { factoryBean.setBatchPropertyContext(propertyContext); StepSynchronizationManager.register(new StepExecution("step1", new JobExecution(5L))); JobContext jobContext = factoryBean.getObject(); assertEquals(5L, jobContext.getExecutionId()); StepSynchronizationManager.close(); }
@Test(expected=FactoryBeanNotInitializedException.class) public void testNoJobExecutionProvided() throws Exception { factoryBean.getObject(); }
@Override public JobContext call() throws Exception { try { StepSynchronizationManager.register(new StepExecution("step" + count, new JobExecution(count))); JobContext context = factoryBean.getObject(); Thread.sleep(1000L); return context; } catch (Throwable ignore) { return null; }finally { StepSynchronizationManager.release(); } } }));
@Override public void run() { JsrJobContextFactoryBean factoryBean = null; try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final Job job = batchContext.getBean(Job.class); if(!job.isRestartable()) { throw new JobRestartException("Job " + jobName + " is not restartable"); } semaphore.release(); // Initialization of the JobExecution for job level dependencies jobRegistry.register(job, jobExecution); job.execute(jobExecution); jobRegistry.remove(jobExecution); } catch (Exception e) { exceptionHolder.add(e); } finally { if(factoryBean != null) { factoryBean.close(); } batchContext.close(); if(semaphore.availablePermits() == 0) { semaphore.release(); } } } });
@Override public JobContext getObject() throws Exception { return getCurrent(); }
@Override public void run() { JsrJobContextFactoryBean factoryBean = null; try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final Job job = batchContext.getBean(Job.class); semaphore.release(); // Initialization of the JobExecution for job level dependencies jobRegistry.register(job, jobExecution); job.execute(jobExecution); jobRegistry.remove(jobExecution); } catch (Exception e) { exceptionHolder.add(e); } finally { if(factoryBean != null) { factoryBean.close(); } batchContext.close(); if(semaphore.availablePermits() == 0) { semaphore.release(); } } } });
@Override public JobContext getObject() throws Exception { return getCurrent(); }
@Override public void run() { JsrJobContextFactoryBean factoryBean = null; try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final Job job = batchContext.getBean(Job.class); semaphore.release(); // Initialization of the JobExecution for job level dependencies jobRegistry.register(job, jobExecution); job.execute(jobExecution); jobRegistry.remove(jobExecution); } catch (Exception e) { exceptionHolder.add(e); } finally { if(factoryBean != null) { factoryBean.close(); } batchContext.close(); if(semaphore.availablePermits() == 0) { semaphore.release(); } } } });
@Override public JobContext getObject() throws Exception { return getCurrent(); }
@Override public void run() { JsrJobContextFactoryBean factoryBean = null; try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final Job job = batchContext.getBean(Job.class); semaphore.release(); // Initialization of the JobExecution for job level dependencies jobRegistry.register(job, jobExecution); job.execute(jobExecution); jobRegistry.remove(jobExecution); } catch (Exception e) { exceptionHolder.add(e); } finally { if(factoryBean != null) { factoryBean.close(); } batchContext.close(); if(semaphore.availablePermits() == 0) { semaphore.release(); } } } });
@Override public void run() { JsrJobContextFactoryBean factoryBean = null; try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final Job job = batchContext.getBean(Job.class); if(!job.isRestartable()) { throw new JobRestartException("Job " + jobName + " is not restartable"); } semaphore.release(); // Initialization of the JobExecution for job level dependencies jobRegistry.register(job, jobExecution); job.execute(jobExecution); jobRegistry.remove(jobExecution); } catch (Exception e) { exceptionHolder.add(e); } finally { if(factoryBean != null) { factoryBean.close(); } batchContext.close(); if(semaphore.availablePermits() == 0) { semaphore.release(); } } } });
@Override public void run() { JsrJobContextFactoryBean factoryBean = null; try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final Job job = batchContext.getBean(Job.class); if(!job.isRestartable()) { throw new JobRestartException("Job " + jobName + " is not restartable"); } semaphore.release(); // Initialization of the JobExecution for job level dependencies jobRegistry.register(job, jobExecution); job.execute(jobExecution); jobRegistry.remove(jobExecution); } catch (Exception e) { exceptionHolder.add(e); } finally { if(factoryBean != null) { factoryBean.close(); } batchContext.close(); if(semaphore.availablePermits() == 0) { semaphore.release(); } } } });
@Override public void run() { JsrJobContextFactoryBean factoryBean = null; try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final Job job = batchContext.getBean(Job.class); if(!job.isRestartable()) { throw new JobRestartException("Job " + jobName + " is not restartable"); } semaphore.release(); // Initialization of the JobExecution for job level dependencies jobRegistry.register(job, jobExecution); job.execute(jobExecution); jobRegistry.remove(jobExecution); } catch (Exception e) { exceptionHolder.add(e); } finally { if(factoryBean != null) { factoryBean.close(); } batchContext.close(); if(semaphore.availablePermits() == 0) { semaphore.release(); } } } });
try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final AbstractJob job = batchContext.getBean(AbstractJob.class); addListenerToJobService.addListenerToJob(job); } finally { if (factoryBean != null) { factoryBean.close();
try { factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); factoryBean.setJobExecution(jobExecution); final AbstractJob job = batchContext.getBean(AbstractJob.class); addListenerToJobService.addListenerToJob(job); } finally { if (factoryBean != null) { factoryBean.close();