diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/JobInstance.java b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/JobInstance.java index 03baada78..2b61579cc 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/JobInstance.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/JobInstance.java @@ -34,27 +34,27 @@ public class JobInstance extends Entity { private List stepInstances = new ArrayList(); private JobIdentifier identifier; + + private Job job; // TODO declare transient or make the class serializable private BatchStatus status; private int jobExecutionCount; - /** - * Package private constructor for Hibernate use only - */ - JobInstance() { - this(null); + public JobInstance(JobIdentifier jobIdentifier){ + this.identifier = jobIdentifier; } - public JobInstance(JobIdentifier identifier, Long id) { + public JobInstance(JobIdentifier identifier, Long id, Job job) { super(); setId(id); this.identifier = identifier; + this.job = job; } - - public JobInstance(JobIdentifier identifier) { - this(identifier, null); + + public JobInstance(JobIdentifier jobIdentifier, Long id){ + this(jobIdentifier, id, null); } public BatchStatus getStatus() { @@ -108,5 +108,12 @@ public class JobInstance extends Entity { public String toString() { return super.toString()+", identifier=["+identifier+"]"; } + + public Job getJob() { + return job; + } + public void setJob(Job job) { + this.job = job; + } } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepInstance.java b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepInstance.java index d2b732593..cb5a951f1 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepInstance.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepInstance.java @@ -48,7 +48,7 @@ import org.springframework.batch.restart.RestartData; */ public class StepInstance extends Entity { - private JobInstance job; + private JobInstance jobInstance; // TODO declare transient or make serializable private BatchStatus status; @@ -76,7 +76,7 @@ public class StepInstance extends Entity { public StepInstance(JobInstance job, String name, Long stepId) { setId(stepId); - this.job = job; + this.jobInstance = job; this.name = name; } @@ -104,8 +104,8 @@ public class StepInstance extends Entity { this.status = status; } - public JobInstance getJob() { - return job; + public JobInstance getJobInstance() { + return jobInstance; } public String getName() { @@ -113,12 +113,12 @@ public class StepInstance extends Entity { } public Long getJobId() { - return job==null ? null : job.getId(); + return jobInstance==null ? null : jobInstance.getId(); } // @Override public String toString() { - return super.toString() + ", name=" + name + ", status=" + getStatus() + " in " + job; + return super.toString() + ", name=" + name + ", status=" + getStatus() + " in " + jobInstance; } } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/domain/JobExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/domain/JobExecutionTests.java index 2c811f4a0..f9a1f2006 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/domain/JobExecutionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/domain/JobExecutionTests.java @@ -29,8 +29,8 @@ import org.springframework.batch.repeat.context.RepeatContextSupport; */ public class JobExecutionTests extends TestCase { - private JobExecution execution = new JobExecution(new JobInstance(null, new Long(11))); - private JobExecution context = new JobExecution(new JobInstance(new SimpleJobIdentifier("foo"), new Long(11))); + private JobExecution execution = new JobExecution(new JobInstance(null, new Long(11), null)); + private JobExecution context = new JobExecution(new JobInstance(new SimpleJobIdentifier("foo"), new Long(11), null)); /** * Test method for {@link org.springframework.batch.core.domain.JobExecution#JobExecution()}. @@ -80,7 +80,7 @@ public class JobExecutionTests extends TestCase { */ public void testGetJobId() { assertEquals(11, execution.getJobId().longValue()); - execution = new JobExecution(new JobInstance(null, new Long(23))); + execution = new JobExecution(new JobInstance(null, new Long(23), null)); assertEquals(23, execution.getJobId().longValue()); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/domain/JobInstanceTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/domain/JobInstanceTests.java index d72f6f594..af93e627d 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/domain/JobInstanceTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/domain/JobInstanceTests.java @@ -28,13 +28,13 @@ import junit.framework.TestCase; */ public class JobInstanceTests extends TestCase { - private JobInstance instance = new JobInstance(null, new Long(11)); + private JobInstance instance = new JobInstance(null, new Long(11), new Job("job")); /** * Test method for {@link org.springframework.batch.core.domain.JobInstance#JobInstance()}. */ public void testJobInstance() { - assertNull(new JobInstance(null).getId()); + assertNull(new JobInstance(null, null, null).getId()); } /** @@ -77,7 +77,7 @@ public class JobInstanceTests extends TestCase { */ public void testGetIdentifier() { assertEquals(null, instance.getIdentifier()); - instance = new JobInstance(new SimpleJobIdentifier("foo")); + instance = new JobInstance(new SimpleJobIdentifier("foo"), new Long(1)); assertEquals("foo", instance.getIdentifier().getName()); } @@ -86,8 +86,12 @@ public class JobInstanceTests extends TestCase { */ public void testGetName() { assertEquals(null, instance.getName()); - instance = new JobInstance(new SimpleJobIdentifier("foo")); + instance = new JobInstance(new SimpleJobIdentifier("foo"), new Long(1)); assertEquals("foo", instance.getName()); } + public void testGetJob(){ + + assertEquals("job", instance.getJob().getName()); + } } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/domain/StepExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/domain/StepExecutionTests.java index c616b91bd..cda147bc9 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/domain/StepExecutionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/domain/StepExecutionTests.java @@ -212,7 +212,7 @@ public class StepExecutionTests extends TestCase { } private StepExecution newStepExecution(Long long1, Long long2) { - JobInstance job = new JobInstance(null); + JobInstance job = new JobInstance(null, null); StepInstance step = new StepInstance(job, "foo", long1); StepExecution execution = new StepExecution(step, new JobExecution(job, long2)); return execution; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/domain/StepInstanceTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/domain/StepInstanceTests.java index 8ab174970..47df483b8 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/domain/StepInstanceTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/domain/StepInstanceTests.java @@ -17,6 +17,7 @@ package org.springframework.batch.core.domain; import java.util.Properties; +import org.springframework.batch.core.runtime.SimpleJobIdentifier; import org.springframework.batch.restart.GenericRestartData; import junit.framework.TestCase; @@ -67,13 +68,21 @@ public class StepInstanceTests extends TestCase { } /** - * Test method for {@link org.springframework.batch.core.domain.StepInstance#getJob()}. + * Test method for {@link org.springframework.batch.core.domain.StepInstance#getJobInstance()}. */ - public void testGetJob() { - assertEquals(null, instance.getJob()); - JobInstance job = new JobInstance(null); - instance = new StepInstance(job, null); - assertEquals(job, instance.getJob()); + public void testGetJobInstance() { + assertEquals(null, instance.getJobInstance()); + JobInstance jobInstance = new JobInstance(null, null); + instance = new StepInstance(jobInstance, null); + assertEquals(jobInstance, instance.getJobInstance()); + } + + public void testGetJob(){ + + Job job = new Job("job"); + JobInstance jobInstance = new JobInstance(null, null, job); + instance = new StepInstance(jobInstance, null); + assertEquals(job, instance.getJobInstance().getJob()); } /** @@ -90,12 +99,12 @@ public class StepInstanceTests extends TestCase { */ public void testGetJobId() { assertEquals(null, instance.getJobId()); - instance = new StepInstance(new JobInstance(null, new Long(23)), null); + instance = new StepInstance(new JobInstance(null, new Long(23), null), null); assertEquals(23, instance.getJobId().longValue()); } public void testEqualsWithSameIdentifier() throws Exception { - JobInstance job = new JobInstance(null, new Long(100)); + JobInstance job = new JobInstance(null, new Long(100), null); StepInstance step1 = new StepInstance(job, "foo", new Long(0)); StepInstance step2 = new StepInstance(job, "foo", new Long(0)); assertEquals(step1, step2);