Skip to content

Commit c5de9ef

Browse files
Merge pull request #10 from chrisgleissner/feature/decoupled-core-and-quartz
Support for JobConfig properties with non-String types. No-arg and al…
2 parents fe04529 + 344e957 commit c5de9ef

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

util/src/main/java/com/github/chrisgleissner/springbatchrest/util/core/AdHocStarter.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.springframework.stereotype.Component;
1515

1616
import javax.batch.operations.BatchRuntimeException;
17+
import java.util.Date;
1718
import java.util.Map;
1819
import java.util.Optional;
1920
import java.util.UUID;
@@ -55,7 +56,7 @@ public JobExecution start(JobConfig jobConfig) {
5556
jobPropertyResolvers.started(jobConfig);
5657

5758
Map<String, JobParameter> params = Optional.ofNullable(jobConfig.getProperties()).orElse(emptyMap()).entrySet().stream()
58-
.collect(toMap(e -> e.getKey(), e -> new JobParameter(e.getValue())));
59+
.collect(toMap(Map.Entry::getKey, e -> createJobParameter(e.getValue())));
5960
if (addUniqueJobParameter)
6061
params.put("uuid", new JobParameter(UUID.randomUUID().toString()));
6162
JobParameters jobParameters = new JobParameters(params);
@@ -71,4 +72,15 @@ public JobExecution start(JobConfig jobConfig) {
7172
jobConfig.getName(), jobConfig, e.getMessage()), e);
7273
}
7374
}
75+
76+
private JobParameter createJobParameter(Object value) {
77+
if (value instanceof Date)
78+
return new JobParameter((Date) value);
79+
else if (value instanceof Long)
80+
return new JobParameter((Long) value);
81+
else if (value instanceof Double)
82+
return new JobParameter((Double) value);
83+
else
84+
return new JobParameter("" + value);
85+
}
7486
}
Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
package com.github.chrisgleissner.springbatchrest.util.core;
22

3-
import lombok.Builder;
4-
import lombok.Data;
5-
import lombok.Singular;
3+
import lombok.*;
64

75
import java.util.HashMap;
86
import java.util.Map;
97

10-
@Data
11-
@Builder(toBuilder = true)
8+
@Data @NoArgsConstructor @AllArgsConstructor @Builder(toBuilder = true)
129
public class JobConfig {
13-
1410
private String name;
1511
@Singular("property")
16-
private Map<String, String> properties = new HashMap<>();
12+
private Map<String, Object> properties = new HashMap<>();
1713
private boolean asynchronous;
1814
}

0 commit comments

Comments
 (0)