@Test public void testErrorInContext() throws Exception { Resource[] jobPaths = new Resource[] { new ClassPathResource("org/springframework/batch/core/launch/support/2jobs.xml"), new ClassPathResource("org/springframework/batch/core/launch/support/error.xml") }; setUpApplicationContextFactories(jobPaths, null); try { registrar.start(); fail("Expected BeanCreationException"); } catch (BeanCreationException e) { } }
@Test public void testChildContextOverridesBeanPostProcessor() throws Exception { Resource[] jobPaths = new Resource[] { new ClassPathResource( "org/springframework/batch/core/launch/support/2jobs.xml") }; @SuppressWarnings("resource") ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext( "/org/springframework/batch/core/launch/support/test-environment-with-registry-and-auto-register.xml"); registrar.setApplicationContext(applicationContext); setUpApplicationContextFactories(jobPaths, applicationContext); registrar.start(); assertEquals(2, registry.getJobNames().size()); }
@Test public void testStartStopRunningWithCallback() throws Exception { Runnable callback = Mockito.mock(Runnable.class); Resource[] jobPaths = new Resource[] { new ClassPathResource( "org/springframework/batch/core/launch/support/2jobs.xml") }; setUpApplicationContextFactories(jobPaths, null); registrar.start(); assertTrue(registrar.isRunning()); registrar.start(); assertEquals(2, registry.getJobNames().size()); registrar.stop(callback); assertFalse(registrar.isRunning()); assertEquals(0, registry.getJobNames().size()); Mockito.verify(callback, Mockito.times(1)).run(); }
@Test public void testNoJobFound() throws Exception { Resource[] jobPaths = new Resource[] { new ClassPathResource( "org/springframework/batch/core/launch/support/test-environment.xml") }; @SuppressWarnings("resource") GenericApplicationContext applicationContext = new GenericApplicationContext(); applicationContext.refresh(); setUpApplicationContextFactories(jobPaths, applicationContext); registrar.setApplicationContext(applicationContext); registrar.start(); }
@Test public void testStartStopRunning() throws Exception { Resource[] jobPaths = new Resource[] { new ClassPathResource( "org/springframework/batch/core/launch/support/2jobs.xml") }; setUpApplicationContextFactories(jobPaths, null); registrar.start(); assertTrue(registrar.isRunning()); registrar.start(); assertEquals(2, registry.getJobNames().size()); registrar.stop(); assertFalse(registrar.isRunning()); }
@Test public void testClear() throws Exception { Resource[] jobPaths = new Resource[] { new ClassPathResource( "org/springframework/batch/core/launch/support/2jobs.xml") }; setUpApplicationContextFactories(jobPaths, null); registrar.start(); assertEquals(2, registry.getJobNames().size()); registrar.stop(); assertEquals(0, registry.getJobNames().size()); }
@Test public void testDuplicateJobsInFile() throws Exception { Resource[] jobPaths = new Resource[] { new ClassPathResource( "org/springframework/batch/core/launch/support/2jobs.xml") }; @SuppressWarnings("resource") GenericApplicationContext applicationContext = new GenericApplicationContext(); applicationContext.refresh(); setUpApplicationContextFactories(jobPaths, applicationContext); registrar.setApplicationContext(applicationContext); registrar.start(); assertEquals(2, registry.getJobNames().size()); }
@Test public void testLocateJob() throws Exception { Resource[] jobPaths = new Resource[] { new ClassPathResource("org/springframework/batch/core/launch/support/job.xml"), new ClassPathResource("org/springframework/batch/core/launch/support/job2.xml") }; @SuppressWarnings("resource") GenericApplicationContext applicationContext = new GenericApplicationContext(); applicationContext.refresh(); setUpApplicationContextFactories(jobPaths, applicationContext); registrar.setApplicationContext(applicationContext); registrar.start(); Collection<String> names = registry.getJobNames(); assertEquals(2, names.size()); assertTrue(names.contains("test-job")); assertTrue(names.contains("test-job2")); Job job = registry.getJob("test-job"); assertEquals("test-job", job.getName()); job = registry.getJob("test-job2"); assertEquals("test-job2", job.getName()); }
/** * Creates all the application contexts required and set up job registry * entries with all the instances of {@link Job} found therein. Also closes * the contexts when the enclosing context is closed. * * @see InitializingBean#afterPropertiesSet() */ public final void onApplicationEvent(ApplicationEvent event) { // TODO: With Spring 3 a SmartLifecycle is started automatically if (event.getSource() == applicationContext) { if (event instanceof ContextRefreshedEvent) { start(); } else if (event instanceof ContextClosedEvent) { stop(); } } }
/** * Creates all the application contexts required and set up job registry entries with all the instances of * {@link Job} found therein. Also closes the contexts when the enclosing context is closed. * * @see InitializingBean#afterPropertiesSet() */ @Override public final void onApplicationEvent(ApplicationEvent event) { // TODO: With Spring 3 a SmartLifecycle is started automatically if (event.getSource() == applicationContext) { if (event instanceof ContextRefreshedEvent) { start(); } else if (event instanceof ContextClosedEvent) { stop(); } } }