Add support to build JsonItemReader when no Resource is provided

Resolves #3731
This commit is contained in:
Santiago Molano
2020-07-07 13:21:16 -05:00
committed by Mahmoud Ben Hassine
parent 743da96fcf
commit c78e2b518b
3 changed files with 26 additions and 13 deletions

View File

@@ -73,6 +73,9 @@ public class JsonItemReader<T> extends AbstractItemCountingItemStreamItemReader<
this.jsonObjectReader = jsonObjectReader;
setExecutionContextName(ClassUtils.getShortName(JsonItemReader.class));
}
public JsonItemReader(){
setExecutionContextName(ClassUtils.getShortName(JsonItemReader.class));
}
/**
* Set the {@link JsonObjectReader} to use to read and map Json fragments to domain objects.

View File

@@ -140,12 +140,13 @@ public class JsonItemReaderBuilder<T> {
*/
public JsonItemReader<T> build() {
Assert.notNull(this.jsonObjectReader, "A json object reader is required.");
Assert.notNull(this.resource, "A resource is required.");
if (this.saveState) {
Assert.state(StringUtils.hasText(this.name), "A name is required when saveState is set to true.");
}
JsonItemReader<T> reader = new JsonItemReader<>(this.resource, this.jsonObjectReader);
JsonItemReader<T> reader = new JsonItemReader<>();
reader.setResource(this.resource);
reader.setJsonObjectReader(this.jsonObjectReader);
reader.setName(this.name);
reader.setStrict(this.strict);
reader.setSaveState(this.saveState);