diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/ConfigurableSystemProcessExitCodeMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/ConfigurableSystemProcessExitCodeMapper.java
similarity index 92%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/ConfigurableSystemProcessExitCodeMapper.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/common/ConfigurableSystemProcessExitCodeMapper.java
index b39d1c377..0841f2a51 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/ConfigurableSystemProcessExitCodeMapper.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/ConfigurableSystemProcessExitCodeMapper.java
@@ -1,4 +1,4 @@
-package org.springframework.batch.sample.tasklet;
+package org.springframework.batch.sample.common;
import java.util.Map;
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/DummyItemWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/DummyItemWriter.java
similarity index 94%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/DummyItemWriter.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/common/DummyItemWriter.java
index 84ddeef97..77479cc70 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/DummyItemWriter.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/DummyItemWriter.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.batch.sample.item.writer;
+package org.springframework.batch.sample.common;
import org.springframework.batch.item.support.AbstractItemWriter;
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/FieldSetResultSetExtractor.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/FieldSetResultSetExtractor.java
similarity index 97%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/FieldSetResultSetExtractor.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/common/FieldSetResultSetExtractor.java
index d94dec03f..697bbfbed 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/FieldSetResultSetExtractor.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/FieldSetResultSetExtractor.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.batch.sample;
+package org.springframework.batch.sample.common;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SimpleSystemProcessExitCodeMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SimpleSystemProcessExitCodeMapper.java
similarity index 87%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SimpleSystemProcessExitCodeMapper.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SimpleSystemProcessExitCodeMapper.java
index 380ec2a05..f4f06143d 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SimpleSystemProcessExitCodeMapper.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SimpleSystemProcessExitCodeMapper.java
@@ -1,4 +1,4 @@
-package org.springframework.batch.sample.tasklet;
+package org.springframework.batch.sample.common;
import org.springframework.batch.repeat.ExitStatus;
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/reader/StagingItemReader.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/StagingItemReader.java
similarity index 98%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/item/reader/StagingItemReader.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/common/StagingItemReader.java
index 998cc6ba4..326538c9d 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/reader/StagingItemReader.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/StagingItemReader.java
@@ -1,4 +1,4 @@
-package org.springframework.batch.sample.item.reader;
+package org.springframework.batch.sample.common;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -16,7 +16,6 @@ import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemStream;
import org.springframework.batch.item.ReaderNotOpenException;
import org.springframework.batch.repeat.ExitStatus;
-import org.springframework.batch.sample.item.writer.StagingItemWriter;
import org.springframework.dao.OptimisticLockingFailureException;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.RowMapper;
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/StagingItemWriter.java
similarity index 98%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/common/StagingItemWriter.java
index 53ad598dc..e97cea975 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/StagingItemWriter.java
@@ -1,4 +1,4 @@
-package org.springframework.batch.sample.item.writer;
+package org.springframework.batch.sample.common;
import java.io.Serializable;
import java.sql.PreparedStatement;
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SystemCommandException.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SystemCommandException.java
similarity index 84%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SystemCommandException.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SystemCommandException.java
index 148de6e31..aa0b51e3d 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SystemCommandException.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SystemCommandException.java
@@ -1,4 +1,4 @@
-package org.springframework.batch.sample.tasklet;
+package org.springframework.batch.sample.common;
/**
* Exception indicating failed execution of system command.
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SystemCommandTasklet.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SystemCommandTasklet.java
similarity index 95%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SystemCommandTasklet.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SystemCommandTasklet.java
index 7a34576d9..191b6f624 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SystemCommandTasklet.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SystemCommandTasklet.java
@@ -1,4 +1,4 @@
-package org.springframework.batch.sample.tasklet;
+package org.springframework.batch.sample.common;
import java.io.File;
import java.io.IOException;
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SystemProcessExitCodeMapper.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SystemProcessExitCodeMapper.java
similarity index 87%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SystemProcessExitCodeMapper.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SystemProcessExitCodeMapper.java
index 02101a5ad..059b44e90 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/tasklet/SystemProcessExitCodeMapper.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/common/SystemProcessExitCodeMapper.java
@@ -1,4 +1,4 @@
-package org.springframework.batch.sample.tasklet;
+package org.springframework.batch.sample.common;
import org.springframework.batch.repeat.ExitStatus;
diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/exception/handler/FootballExceptionHandler.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/football/FootballExceptionHandler.java
similarity index 91%
rename from spring-batch-samples/src/main/java/org/springframework/batch/sample/exception/handler/FootballExceptionHandler.java
rename to spring-batch-samples/src/main/java/org/springframework/batch/sample/football/FootballExceptionHandler.java
index 9521a1427..5dcde3f16 100644
--- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/exception/handler/FootballExceptionHandler.java
+++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/football/FootballExceptionHandler.java
@@ -1,4 +1,4 @@
-package org.springframework.batch.sample.exception.handler;
+package org.springframework.batch.sample.football;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/spring-batch-samples/src/main/resources/jobs/infiniteLoopJob.xml b/spring-batch-samples/src/main/resources/jobs/infiniteLoopJob.xml
index b9c7ff978..cd316e811 100644
--- a/spring-batch-samples/src/main/resources/jobs/infiniteLoopJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/infiniteLoopJob.xml
@@ -30,7 +30,7 @@
-
+
diff --git a/spring-batch-samples/src/main/resources/jobs/parallelJob.xml b/spring-batch-samples/src/main/resources/jobs/parallelJob.xml
index de78989a6..0aadd448a 100644
--- a/spring-batch-samples/src/main/resources/jobs/parallelJob.xml
+++ b/spring-batch-samples/src/main/resources/jobs/parallelJob.xml
@@ -27,7 +27,7 @@
+ class="org.springframework.batch.sample.common.StagingItemWriter">
+ class="org.springframework.batch.sample.common.StagingItemReader">
+ class="org.springframework.batch.sample.common.SystemCommandTasklet">
diff --git a/spring-batch-samples/src/main/resources/staging-test-context.xml b/spring-batch-samples/src/main/resources/staging-test-context.xml
index 91c507605..374d4bbe1 100644
--- a/spring-batch-samples/src/main/resources/staging-test-context.xml
+++ b/spring-batch-samples/src/main/resources/staging-test-context.xml
@@ -8,7 +8,7 @@
+ class="org.springframework.batch.sample.common.StagingItemWriter">
+ class="org.springframework.batch.sample.common.StagingItemReader">
diff --git a/spring-batch-samples/src/site/apt/index.apt b/spring-batch-samples/src/site/apt/index.apt
index bd18d8bf9..5e0c47eb8 100644
--- a/spring-batch-samples/src/site/apt/index.apt
+++ b/spring-batch-samples/src/site/apt/index.apt
@@ -143,7 +143,7 @@ xmlStaxJob | | | x | | | | | | x | | | | | | | |
+ class="org.springframework.batch.sample.common.SystemCommandTasklet">
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/ParallelJobFunctionalTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/ParallelJobFunctionalTests.java
index d5a4f5983..5637946ac 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/ParallelJobFunctionalTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/ParallelJobFunctionalTests.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.*;
import javax.sql.DataSource;
-import org.springframework.batch.sample.item.writer.StagingItemWriter;
+import org.springframework.batch.sample.common.StagingItemWriter;
import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/reader/StagingItemReaderTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/reader/StagingItemReaderTests.java
index 859a40502..f40a5e246 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/reader/StagingItemReaderTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/reader/StagingItemReaderTests.java
@@ -11,7 +11,8 @@ import org.springframework.batch.core.JobInstance;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.item.ExecutionContext;
-import org.springframework.batch.sample.item.writer.StagingItemWriter;
+import org.springframework.batch.sample.common.StagingItemReader;
+import org.springframework.batch.sample.common.StagingItemWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.jdbc.core.JdbcTemplate;
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/StagingItemWriterTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/StagingItemWriterTests.java
index 3224e2698..32f2b8f91 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/StagingItemWriterTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/item/writer/StagingItemWriterTests.java
@@ -26,6 +26,7 @@ import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobInstance;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.StepExecution;
+import org.springframework.batch.sample.common.StagingItemWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.jdbc.core.JdbcTemplate;
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/ConfigurableSystemProcessExitCodeMapperTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/ConfigurableSystemProcessExitCodeMapperTests.java
index eba4feed1..a340b0ae0 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/ConfigurableSystemProcessExitCodeMapperTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/ConfigurableSystemProcessExitCodeMapperTests.java
@@ -4,6 +4,7 @@ import static org.junit.Assert.assertSame;
import static org.junit.Assert.fail;
import org.junit.Test;
import org.springframework.batch.repeat.ExitStatus;
+import org.springframework.batch.sample.common.ConfigurableSystemProcessExitCodeMapper;
import java.util.HashMap;
import java.util.Map;
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleSystemProcessExitCodeMapperTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleSystemProcessExitCodeMapperTests.java
index 9a787676f..d8c7f203b 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleSystemProcessExitCodeMapperTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SimpleSystemProcessExitCodeMapperTests.java
@@ -4,6 +4,7 @@ import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.batch.repeat.ExitStatus;
+import org.springframework.batch.sample.common.SimpleSystemProcessExitCodeMapper;
/**
* Tests for {@link SimpleSystemProcessExitCodeMapper}.
diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SystemCommandTaskletIntegrationTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SystemCommandTaskletIntegrationTests.java
index 9b52d13e8..c663ffc04 100644
--- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SystemCommandTaskletIntegrationTests.java
+++ b/spring-batch-samples/src/test/java/org/springframework/batch/sample/tasklet/SystemCommandTaskletIntegrationTests.java
@@ -11,6 +11,9 @@ import org.springframework.batch.core.JobInterruptedException;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.repeat.ExitStatus;
+import org.springframework.batch.sample.common.SystemCommandException;
+import org.springframework.batch.sample.common.SystemCommandTasklet;
+import org.springframework.batch.sample.common.SystemProcessExitCodeMapper;
import org.springframework.util.Assert;
import java.io.File;