@@ -0,0 +1,1034 @@
+package org.springframework.batch.core.step.job;%0A%0Aimport org.springframework.batch.core.Job;%0Aimport org.springframework.batch.core.JobParameter;%0Aimport org.springframework.batch.core.JobParameters;%0Aimport org.springframework.batch.core.StepExecution;%0A%0Aimport java.util.HashMap;%0Aimport java.util.Map;%0A%0A/**%0A * Simple composition of multiple %7B@link JobParametersExtractor%7D.%0A *%0A * @author Almex%0A */%0Apublic class CompositeJobParametersExtractor implements JobParametersExtractor %7B%0A%0A    private JobParametersExtractor%5B%5D delegates;%0A%0A    @Override%0A    public JobParameters getJobParameters(Job job, StepExecution stepExecution) %7B%0A        Map%3CString, JobParameter%3E jobParametersMap = new HashMap%3C%3E();%0A%0A        for (JobParametersExtractor delegate : delegates) %7B%0A            jobParametersMap.putAll(delegate.getJobParameters(job, stepExecution).getParameters());%0A        %7D%0A%0A        return new JobParameters(jobParametersMap);%0A    %7D%0A%0A    public void setDelegates(JobParametersExtractor%5B%5D delegates) %7B%0A        this.delegates = delegates;%0A    %7D%0A%7D%0A

Create CompositeJobParametersExtractor.java