class MultiResourceJobConfiguration {

	@Bean
	@StepScope
	public MultiResourceItemReader<CustomerCredit> itemReader(
			@Value("#{jobParameters[inputFiles]}") Resource[] resources) {
		return new MultiResourceItemReaderBuilder<CustomerCredit>().name("itemReader")
			.resources(resources)
			.delegate(delegateReader())
			.build();
	}

	@Bean
	public FlatFileItemReader<CustomerCredit> delegateReader() {
		return new FlatFileItemReaderBuilder<CustomerCredit>().name("delegateItemReader")
			.delimited()
			.names("name", "credit")
			.targetType(CustomerCredit.class)
			.build();
	}

	@Bean
	@StepScope
	public MultiResourceItemWriter<CustomerCredit> itemWriter(
			@Value("#{jobParameters[outputFiles]}") WritableResource resource) {
		return new MultiResourceItemWriterBuilder<CustomerCredit>().name("itemWriter")
			.delegate(delegateWriter())
			.resource(resource)
			.itemCountLimitPerResource(6)
			.build();
	}

	@Bean
	public FlatFileItemWriter<CustomerCredit> delegateWriter() {
		return new FlatFileItemWriterBuilder<CustomerCredit>().name("delegateItemWriter")
			.delimited()
			.names("name", "credit")
			.build();
	}

	@Bean
	public Job job(JobRepository jobRepository, JdbcTransactionManager transactionManager,
			ItemReader<CustomerCredit> itemReader, ItemWriter<CustomerCredit> itemWriter) {<FILL_FUNCTION_BODY>}

}

		return new JobBuilder("ioSampleJob", jobRepository)
			.start(new StepBuilder("step1", jobRepository).<CustomerCredit, CustomerCredit>chunk(2, transactionManager)
				.reader(itemReader)
				.processor(new CustomerCreditIncreaseProcessor())
				.writer(itemWriter)
				.build())
			.build();
	
<no_super_class>