OPEN - issue BATCH-243: Register Job twice if beanName property is used to define a job name
http://opensource.atlassian.com/projects/spring/browse/BATCH-243 Added test case for double registration.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beansProjectDescription>
|
||||
<version>1</version>
|
||||
<pluginVersion><![CDATA[2.0.2.v200710312100]]></pluginVersion>
|
||||
<pluginVersion><![CDATA[2.0.2.v200711172000]]></pluginVersion>
|
||||
<configSuffixes>
|
||||
<configSuffix><![CDATA[xml]]></configSuffix>
|
||||
</configSuffixes>
|
||||
@@ -12,6 +12,8 @@
|
||||
<config>src/test/resources/org/springframework/batch/execution/repository/dao/sql-dao-test.xml</config>
|
||||
<config>src/test/resources/org/springframework/batch/execution/bootstrap/support/test-batch-environment.xml</config>
|
||||
<config>src/test/resources/org/springframework/batch/execution/bootstrap/support/test-batch-environment-no-launcher.xml</config>
|
||||
<config>src/test/resources/org/springframework/batch/execution/configuration/test-context.xml</config>
|
||||
<config>src/test/resources/org/springframework/batch/execution/scope/scope-tests.xml</config>
|
||||
</configs>
|
||||
<configSets>
|
||||
<configSet>
|
||||
|
||||
@@ -15,14 +15,15 @@
|
||||
*/
|
||||
package org.springframework.batch.execution.configuration;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.batch.core.configuration.DuplicateJobConfigurationException;
|
||||
import org.springframework.batch.core.configuration.JobConfiguration;
|
||||
import org.springframework.batch.core.configuration.NoSuchJobConfigurationException;
|
||||
import org.springframework.batch.execution.configuration.JobConfigurationRegistryBeanPostProcessor;
|
||||
import org.springframework.batch.execution.configuration.MapJobConfigurationRegistry;
|
||||
import org.springframework.beans.FatalBeanException;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
@@ -91,4 +92,16 @@ public class JobConfigurationRegistryBeanPostProcessorTests extends TestCase {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
public void testExecutionWithApplicationContext() throws Exception {
|
||||
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("test-context.xml", getClass());
|
||||
MapJobConfigurationRegistry registry = (MapJobConfigurationRegistry) context.getBean("registry");
|
||||
Collection configurations = registry.getJobConfigurations();
|
||||
assertEquals(6, configurations.size());
|
||||
assertNotNull(registry.getJobConfiguration("test-job"));
|
||||
assertEquals(context.getBean("test-job-with-name"), registry.getJobConfiguration("foo"));
|
||||
assertEquals(context.getBean("test-job-with-bean-name"), registry.getJobConfiguration("bar"));
|
||||
assertEquals(context.getBean("test-job-with-parent-and-name"), registry.getJobConfiguration("spam"));
|
||||
assertEquals(context.getBean("test-job-with-parent-and-bean-name"), registry.getJobConfiguration("bucket"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
|
||||
|
||||
<bean class="org.springframework.batch.execution.configuration.JobConfigurationRegistryBeanPostProcessor">
|
||||
<property name="jobConfigurationRegistry" ref="registry"/>
|
||||
</bean>
|
||||
|
||||
<bean id="registry" class="org.springframework.batch.execution.configuration.MapJobConfigurationRegistry"/>
|
||||
|
||||
<bean id="test-job" class="org.springframework.batch.core.configuration.JobConfiguration">
|
||||
<property name="steps">
|
||||
<bean id="step1" class="org.springframework.batch.execution.step.SimpleStepConfiguration">
|
||||
<constructor-arg>
|
||||
<bean
|
||||
class="org.springframework.batch.execution.tasklet.ItemProviderProcessTasklet">
|
||||
<property name="itemProvider">
|
||||
<bean
|
||||
class="org.springframework.batch.item.provider.ListItemProvider">
|
||||
<constructor-arg value="foo,bar,spam"/>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="itemProcessor">
|
||||
<bean class="org.springframework.batch.execution.launch.EmptyItemProcessor"/>
|
||||
</property>
|
||||
</bean>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="test-job-with-name" class="org.springframework.batch.core.configuration.JobConfiguration">
|
||||
<property name="name" value="foo"/>
|
||||
</bean>
|
||||
|
||||
<bean id="test-job-with-bean-name" class="org.springframework.batch.core.configuration.JobConfiguration">
|
||||
<property name="beanName" value="bar"/>
|
||||
</bean>
|
||||
|
||||
<bean id="abstract-job" class="org.springframework.batch.core.configuration.JobConfiguration" abstract="true"/>
|
||||
|
||||
<bean id="test-job-with-parent" parent="abstract-job"/>
|
||||
|
||||
<bean id="test-job-with-parent-and-name" parent="abstract-job" p:name="spam"/>
|
||||
|
||||
<bean id="test-job-with-parent-and-bean-name" parent="abstract-job" p:beanName="bucket"/>
|
||||
|
||||
</beans>
|
||||
Reference in New Issue
Block a user