diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java index 84c8c3caa..321dc53d6 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java @@ -48,11 +48,11 @@ import org.springframework.util.StringUtils; */ public class DefaultJobParametersConverter implements JobParametersConverter { - public static String DATE_TYPE = "(date)"; + public static final String DATE_TYPE = "(date)"; - public static String STRING_TYPE = "(string)"; + public static final String STRING_TYPE = "(string)"; - public static String LONG_TYPE = "(long)"; + public static final String LONG_TYPE = "(long)"; private DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); @@ -104,7 +104,7 @@ public class DefaultJobParametersConverter implements JobParametersConverter { } else if (StringUtils.endsWithIgnoreCase(key, STRING_TYPE)) { propertiesBuilder.addString(StringUtils.replace(key, STRING_TYPE, ""), value); } else { - propertiesBuilder.addString(key.toString(), value.toString()); + propertiesBuilder.addString(key, value.toString()); } } @@ -124,9 +124,10 @@ public class DefaultJobParametersConverter implements JobParametersConverter { Map parameters = params.getParameters(); Properties result = new Properties(); - for (Iterator iterator = parameters.keySet().iterator(); iterator.hasNext();) { - String key = (String) iterator.next(); - Object value = parameters.get(key); + for (Iterator iterator = parameters.entrySet().iterator(); iterator.hasNext();) { + Entry entry = (Entry) iterator.next(); + String key = (String) entry.getKey(); + Object value = entry.getValue(); if (value instanceof Date) { result.setProperty(key + DATE_TYPE, dateFormat.format(value)); } else if (value instanceof Long) { diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/launch/support/ScheduledJobParametersFactory.java b/spring-batch-core/src/main/java/org/springframework/batch/core/launch/support/ScheduledJobParametersFactory.java index 7f646ebb0..e6a69e06a 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/launch/support/ScheduledJobParametersFactory.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/launch/support/ScheduledJobParametersFactory.java @@ -34,7 +34,7 @@ import org.springframework.batch.core.converter.JobParametersConverter; */ public class ScheduledJobParametersFactory implements JobParametersConverter { - public static String SCHEDULE_DATE_KEY = "schedule.date"; + public static final String SCHEDULE_DATE_KEY = "schedule.date"; private DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); @@ -82,13 +82,13 @@ public class ScheduledJobParametersFactory implements JobParametersConverter { Map parameters = params.getParameters(); Properties result = new Properties(); - for (Iterator iterator = parameters.keySet().iterator(); iterator.hasNext();) { - String key = (String) iterator.next(); - Object value = parameters.get(key); + for (Iterator iterator = parameters.entrySet().iterator(); iterator.hasNext();) { + Entry entry = (Entry) iterator.next(); + String key = (String) entry.getKey(); if (key.equals(SCHEDULE_DATE_KEY)) { - result.setProperty(key, dateFormat.format(value)); + result.setProperty(key, dateFormat.format(entry.getValue())); } else { - result.setProperty(key, "" + value); + result.setProperty(key, "" + entry.getValue()); } } return result; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/AbstractStep.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/AbstractStep.java index 345548a35..02480fd82 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/AbstractStep.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/AbstractStep.java @@ -310,11 +310,9 @@ public abstract class AbstractStep implements Step, InitializingBean, BeanNameAw } else { String message = ""; - if (ex != null) { - StringWriter writer = new StringWriter(); - ex.printStackTrace(new PrintWriter(writer)); - message = writer.toString(); - } + StringWriter writer = new StringWriter(); + ex.printStackTrace(new PrintWriter(writer)); + message = writer.toString(); exitStatus = ExitStatus.FAILED.addExitDescription(message); } @@ -326,7 +324,7 @@ public abstract class AbstractStep implements Step, InitializingBean, BeanNameAw * rollback transaction. Throwing this exception will result in storing * {@link BatchStatus#UNKNOWN} as step's status. */ - protected class FatalException extends RuntimeException { + protected static class FatalException extends RuntimeException { public FatalException(String string, Exception e) { super(string, e); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java index 5ad52f959..8b2d4b368 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java @@ -110,7 +110,7 @@ public class CommandLineJobRunnerTests extends TestCase { } } - public static class StubJobLauncher implements JobLauncher { + private static class StubJobLauncher implements JobLauncher { public static JobExecution jobExecution; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBeanTests.java index 1eea48c7e..edf3a5b19 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBeanTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/JobRepositoryFactoryBeanTests.java @@ -103,7 +103,7 @@ public class JobRepositoryFactoryBeanTests extends TestCase { incrementerControl.verify(); } - private class StubIncrementer implements DataFieldMaxValueIncrementer { + private static class StubIncrementer implements DataFieldMaxValueIncrementer { public int nextIntValue() throws DataAccessException { return 0; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/SimpleJobRepositoryTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/SimpleJobRepositoryTests.java index 951a82c51..9f4fd4c91 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/SimpleJobRepositoryTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/SimpleJobRepositoryTests.java @@ -68,8 +68,6 @@ public class SimpleJobRepositoryTests extends TestCase { StepExecutionDao stepExecutionDao; - MockStepDao mockStepDao = new MockStepDao(); - JobInstance databaseJob; String databaseStep1; @@ -78,7 +76,6 @@ public class SimpleJobRepositoryTests extends TestCase { List steps; - ExecutionContext executionContext; public void setUp() throws Exception { @@ -113,147 +110,6 @@ public class SimpleJobRepositoryTests extends TestCase { steps.add(databaseStep1); steps.add(databaseStep2); - executionContext = new ExecutionContext(); - } - - /* - * Test a restartable job, that has not been run before. - */ - public void testCreateRestartableJob() throws Exception { - -// List jobExecutions = new ArrayList(); -// -// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters); -// jobInstanceDaoControl.setReturnValue(jobExecutions); -// jobInstanceDao.createJobInstance(jobConfiguration.getName(), jobParameters); -// jobInstanceDaoControl.setReturnValue(databaseJob); -//// stepInstanceDao.createStepInstance(databaseJob, "TestStep1"); -//// stepInstanceDaoControl.setReturnValue(databaseStep1); -//// stepInstanceDao.createStepInstance(databaseJob, "TestStep2"); -//// stepInstanceDaoControl.setReturnValue(databaseStep2); -// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob)); -// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() { -// public boolean matches(Object[] expected, Object[] actual) { -// return ((JobExecution) actual[0]).getJobInstance().equals(databaseJob); -// } -// -// public String toString(Object[] arguments) { -// return "" + arguments[0]; -// } -// }); -// stepExecutionDaoControl.replay(); -//// stepInstanceDaoControl.replay(); -// jobExecutionDaoControl.replay(); -// jobInstanceDaoControl.replay(); -// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance(); -// assertTrue(job.equals(databaseJob)); -// List jobSteps = job.getStepNames(); -// Iterator it = jobSteps.iterator(); -// String step = (String) it.next(); -// assertTrue(step.equals(databaseStep1)); -// step = (String) it.next(); -// assertTrue(step.equals(databaseStep2)); - } - - public void testRestartedJob() throws Exception { - -// final List executions = new ArrayList(); -// JobExecution execution = databaseJob.createJobExecution(); -// executions.add(execution); -// // For this test it is important that the execution is finished -// // and the executions in the list contain one with an end date -// execution.setEndTime(new Date(System.currentTimeMillis())); -// -// StepExecution databaseStep1Exec = new StepExecution(databaseStep1, execution, new Long(1)); -// StepExecution databaseStep2Exec = new StepExecution(databaseStep2, execution, new Long(2)); -// -// List jobs = new ArrayList(); -// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters); -// jobs.add(databaseJob); -// jobInstanceDaoControl.setReturnValue(jobs); -//// stepInstanceDao.findStepInstance(databaseJob, "TestStep1"); -//// stepInstanceDaoControl.setReturnValue(databaseStep1); -//// stepExecutionDao.getLastStepExecution(databaseStep1, jobExecution); -//// stepExecutionDaoControl.setReturnValue(databaseStep1Exec); -// stepExecutionDao.findExecutionContext(databaseStep1Exec); -// stepExecutionDaoControl.setReturnValue(executionContext); -// //stepExecutionDao.getStepExecutionCount(databaseStep1); -//// stepExecutionDaoControl.setReturnValue(1); -//// stepInstanceDao.findStepInstance(databaseJob, "TestStep2"); -//// stepInstanceDaoControl.setReturnValue(databaseStep2); -//// stepExecutionDao.getLastStepExecution(databaseStep2, jobExecution); -//// stepExecutionDaoControl.setReturnValue(databaseStep2Exec); -// stepExecutionDao.findExecutionContext(databaseStep2Exec); -// stepExecutionDaoControl.setReturnValue(executionContext); -//// stepExecutionDao.getStepExecutionCount(databaseStep2); -//// stepExecutionDaoControl.setReturnValue(1); -// stepExecutionDaoControl.replay(); -//// stepInstanceDaoControl.replay(); -// jobExecutionDao.getJobExecutionCount(databaseJob); -// jobExecutionDaoControl.setReturnValue(1); -// jobExecutionDao.findJobExecutions(databaseJob); -// jobExecutionDaoControl.setReturnValue(executions); -// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob)); -// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() { -// public boolean matches(Object[] expected, Object[] actual) { -// JobExecution execution = (JobExecution) actual[0]; -// return execution.getJobInstance().equals(databaseJob); -// } -// -// public String toString(Object[] arguments) { -// return "" + arguments[0]; -// } -// }); -// jobExecutionDaoControl.setVoidCallable(); -// jobExecutionDaoControl.replay(); -// jobInstanceDaoControl.replay(); -// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance(); -// assertTrue(job.equals(databaseJob)); -// List jobSteps = job.getStepNames(); -// Iterator it = jobSteps.iterator(); -// String step = (String) it.next(); -// assertTrue(step.equals(databaseStep1)); -//// assertTrue(step.getStepExecutionCount() == 1); -// step = (String) it.next(); -// assertTrue(step.equals(databaseStep2)); -//// assertTrue(step.getStepExecutionCount() == 1); - } - - public void testCreateNonRestartableJob() throws Exception { - -// List jobs = new ArrayList(); -// jobConfiguration.setRestartable(false); -// -// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters); -// jobInstanceDaoControl.setReturnValue(jobs); -// jobInstanceDao.createJobInstance(jobConfiguration.getName(), jobParameters); -// jobInstanceDaoControl.setReturnValue(databaseJob); -//// stepInstanceDao.createStepInstance(databaseJob, "TestStep1"); -//// stepInstanceDaoControl.setReturnValue(databaseStep1); -//// stepInstanceDao.createStepInstance(databaseJob, "TestStep2"); -//// stepInstanceDaoControl.setReturnValue(databaseStep2); -// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob)); -// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() { -// public boolean matches(Object[] expected, Object[] actual) { -// return ((JobExecution) actual[0]).getJobInstance().equals(databaseJob); -// } -// -// public String toString(Object[] arguments) { -// return "" + arguments[0]; -// } -// }); -// stepExecutionDaoControl.replay(); -//// stepInstanceDaoControl.replay(); -// jobExecutionDaoControl.replay(); -// jobInstanceDaoControl.replay(); -// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance(); -// assertTrue(job.equals(databaseJob)); -// List jobSteps = job.getStepNames(); -// Iterator it = jobSteps.iterator(); -// String step = (String) it.next(); -// assertTrue(step.equals(databaseStep1)); -// step = (String) it.next(); -// assertTrue(step.equals(databaseStep2)); } @@ -301,99 +157,4 @@ public class SimpleJobRepositoryTests extends TestCase { } } - /* - * Test to ensure that if a StepDao returns invalid restart data, it is - * corrected. - */ - public void testCreateStepsFixesInvalidExecutionContext() throws Exception { - -// List jobs = new ArrayList(); -// -// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters); -// jobInstanceDaoControl.setReturnValue(jobs); -// jobInstanceDao.createJobInstance(jobConfiguration.getName(), jobParameters); -// jobInstanceDaoControl.setReturnValue(databaseJob); -//// stepInstanceDao.createStepInstance(databaseJob, "TestStep1"); -//// stepInstanceDaoControl.setReturnValue(databaseStep1); -//// stepInstanceDao.createStepInstance(databaseJob, "TestStep2"); -//// stepInstanceDaoControl.setReturnValue(databaseStep2); -// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob)); -// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() { -// public boolean matches(Object[] expected, Object[] actual) { -// return ((JobExecution) actual[0]).getJobInstance().equals(databaseJob); -// } -// -// public String toString(Object[] arguments) { -// return "" + arguments[0]; -// } -// }); -// stepExecutionDaoControl.replay(); -//// stepInstanceDaoControl.replay(); -// jobExecutionDaoControl.replay(); -// jobInstanceDaoControl.replay(); -// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance(); -// List jobSteps = job.getStepNames(); -// Iterator it = jobSteps.iterator(); -// String step = (String) it.next(); -// assertTrue(step.equals(databaseStep1)); -// step = (String) it.next(); -// assertTrue(step.equals(databaseStep2)); - } - - public void testFindStepsFixesInvalidExecutionContext() throws Exception { - -// StepExecution databaseStep1Exec = new StepExecution(databaseStep1, null, new Long(1)); -// StepExecution databaseStep2Exec = new StepExecution(databaseStep2, null, new Long(2)); -// -// List jobs = new ArrayList(); -// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters); -// jobs.add(databaseJob); -// jobInstanceDaoControl.setReturnValue(jobs); -//// stepInstanceDao.findStepInstance(databaseJob, "TestStep1"); -//// stepInstanceDaoControl.setReturnValue(databaseStep1); -//// stepExecutionDao.getLastStepExecution(databaseStep1, null); -//// stepExecutionDaoControl.setReturnValue(databaseStep1Exec); -// stepExecutionDao.findExecutionContext(databaseStep1Exec); -// stepExecutionDaoControl.setReturnValue(executionContext); -//// stepExecutionDao.getStepExecutionCount(databaseStep1); -//// stepExecutionDaoControl.setReturnValue(1); -//// stepInstanceDao.findStepInstance(databaseJob, "TestStep2"); -//// stepInstanceDaoControl.setReturnValue(databaseStep2); -//// stepExecutionDao.getLastStepExecution(databaseStep2, null); -//// stepExecutionDaoControl.setReturnValue(databaseStep2Exec); -// stepExecutionDao.findExecutionContext(databaseStep2Exec); -// stepExecutionDaoControl.setReturnValue(executionContext); -//// stepExecutionDao.getStepExecutionCount(databaseStep2); -//// stepExecutionDaoControl.setReturnValue(1); -// stepExecutionDaoControl.replay(); -//// stepInstanceDaoControl.replay(); -// -// jobExecutionDao.getJobExecutionCount(databaseJob); -// jobExecutionDaoControl.setReturnValue(1); -// jobExecutionDao.findJobExecutions(databaseJob); -// jobExecutionDaoControl.setReturnValue(new ArrayList()); -// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob)); -// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() { -// public boolean matches(Object[] expected, Object[] actual) { -// return ((JobExecution) actual[0]).getJobInstance().equals(databaseJob); -// } -// -// public String toString(Object[] arguments) { -// return "" + arguments[0]; -// } -// }); -// jobExecutionDaoControl.replay(); -// jobInstanceDaoControl.replay(); -// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance(); -// assertTrue(job.equals(databaseJob)); -// List jobSteps = job.getStepNames(); -// Iterator it = jobSteps.iterator(); -// String step = (String) it.next(); -// assertTrue(step.equals(databaseStep1)); -//// assertTrue(step.getLastExecution().getExecutionContext().isEmpty()); -// step = (String) it.next(); -//// assertTrue(step.getLastExecution().getExecutionContext().isEmpty()); -// assertTrue(step.equals(databaseStep2)); - } - } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/resource/StepExecutionPreparedStatementSetterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/resource/StepExecutionPreparedStatementSetterTests.java index 567a4596b..861636743 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/resource/StepExecutionPreparedStatementSetterTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/resource/StepExecutionPreparedStatementSetterTests.java @@ -37,7 +37,6 @@ import org.springframework.test.AbstractTransactionalDataSourceSpringContextTest */ public class StepExecutionPreparedStatementSetterTests extends AbstractTransactionalDataSourceSpringContextTests { - JdbcTemplate jdbcTemplate; StepExecutionPreparedStatementSetter pss; StepExecution stepExecution; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java index 0ffc51e3f..599934215 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java @@ -198,7 +198,7 @@ public class TaskletStepTests extends TestCase { } - private class StubTasklet extends StepExecutionListenerSupport implements Tasklet { + private static class StubTasklet extends StepExecutionListenerSupport implements Tasklet { private final boolean exitFailure;