From f19379e27b4cbfef56acc4e16fe1608e5d85fa53 Mon Sep 17 00:00:00 2001 From: dsyer Date: Thu, 23 Aug 2007 19:46:28 +0000 Subject: [PATCH] Make a SimpleJobIdentifierFactory for SimpleJobIdentifiers OPEN - issue BATCH-58: Make JobStream and JobRun optional properties of Job (e.g. through join to optional table) http://opensource.atlassian.com/projects/spring/browse/BATCH-58 --- .../batch/core/runtime/JobIdentifier.java | 18 +++++++++++++- .../runtime/SimpleJobIdentifierFactory.java | 24 +++++++++++++++++++ .../SimpleJobIdentifierFactoryTests.java | 12 ++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 core/src/main/java/org/springframework/batch/core/runtime/SimpleJobIdentifierFactory.java create mode 100644 core/src/test/java/org/springframework/batch/core/runtime/SimpleJobIdentifierFactoryTests.java diff --git a/core/src/main/java/org/springframework/batch/core/runtime/JobIdentifier.java b/core/src/main/java/org/springframework/batch/core/runtime/JobIdentifier.java index 6f572118b..b50ed577d 100644 --- a/core/src/main/java/org/springframework/batch/core/runtime/JobIdentifier.java +++ b/core/src/main/java/org/springframework/batch/core/runtime/JobIdentifier.java @@ -16,9 +16,25 @@ package org.springframework.batch.core.runtime; +import org.springframework.batch.core.domain.JobInstance; +/** + * Identifier strategy for {@link JobInstance}. Different batch projects can + * have different approaches and requirements regarding the identity of a job. + * The minimum requirement is to provide a unique name to identify a job. Other + * applications or projects might add other properties like a schedule date, or + * an additional label (code). + * + * @author Dave Syer + * + */ public interface JobIdentifier { - + + /** + * A name property for jobs provided by the {@link JobIdentifier} strategy. + * + * @return the name of the job + */ public String getName(); } diff --git a/core/src/main/java/org/springframework/batch/core/runtime/SimpleJobIdentifierFactory.java b/core/src/main/java/org/springframework/batch/core/runtime/SimpleJobIdentifierFactory.java new file mode 100644 index 000000000..227544034 --- /dev/null +++ b/core/src/main/java/org/springframework/batch/core/runtime/SimpleJobIdentifierFactory.java @@ -0,0 +1,24 @@ +package org.springframework.batch.core.runtime; + + +/** + * Factory for {@link SimpleJobIdentifier} instances. + * + * @author Dave Syer + * + */ +public class SimpleJobIdentifierFactory implements JobIdentifierFactory { + + /** + * Create a {@link JobIdentifier} with the given name. + * + * @param name the name for the {@link JobIdentifier} + * @return a {@link JobIdentifier} with the given name. + * + * @see org.springframework.batch.core.runtime.JobIdentifierFactory#getJobIdentifier(java.lang.String) + */ + public JobIdentifier getJobIdentifier(String name) { + return new SimpleJobIdentifier(name); + } + +} diff --git a/core/src/test/java/org/springframework/batch/core/runtime/SimpleJobIdentifierFactoryTests.java b/core/src/test/java/org/springframework/batch/core/runtime/SimpleJobIdentifierFactoryTests.java new file mode 100644 index 000000000..5abc384ce --- /dev/null +++ b/core/src/test/java/org/springframework/batch/core/runtime/SimpleJobIdentifierFactoryTests.java @@ -0,0 +1,12 @@ +package org.springframework.batch.core.runtime; + +import junit.framework.TestCase; + +public class SimpleJobIdentifierFactoryTests extends TestCase { + + public void testGetJobIdentifier() { + JobIdentifier jobIdentifier = new SimpleJobIdentifierFactory().getJobIdentifier("foo"); + assertEquals("foo", jobIdentifier.getName()); + } + +}