diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/builder/ScriptItemProcessorBuilder.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/builder/ScriptItemProcessorBuilder.java index d3f53bffa..f212ecac5 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/builder/ScriptItemProcessorBuilder.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/builder/ScriptItemProcessorBuilder.java @@ -106,6 +106,7 @@ public class ScriptItemProcessorBuilder { if (this.scriptResource == null && !StringUtils.hasText(this.scriptSource)) { throw new IllegalArgumentException("scriptResource or scriptSource is required."); } + if (StringUtils.hasText(this.scriptSource)) { Assert.hasText(this.language, "language is required when using scriptSource."); } @@ -114,12 +115,15 @@ public class ScriptItemProcessorBuilder { if (StringUtils.hasText(this.itemBindingVariableName)) { processor.setItemBindingVariableName(this.itemBindingVariableName); } + if (this.scriptResource != null) { processor.setScript(this.scriptResource); } + if (this.scriptSource != null) { processor.setScriptSource(this.scriptSource, this.language); } + return processor; } } diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/builder/ScriptItemProcessorBuilderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/builder/ScriptItemProcessorBuilderTests.java index 7eb28ca33..ce685ee71 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/builder/ScriptItemProcessorBuilderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/builder/ScriptItemProcessorBuilderTests.java @@ -57,7 +57,9 @@ public class ScriptItemProcessorBuilderTests { @Test public void testScriptSource() throws Exception { ScriptItemProcessor scriptItemProcessor = new ScriptItemProcessorBuilder() - .scriptSource("item.toUpperCase();").language("javascript").build(); + .scriptSource("item.toUpperCase();") + .language("javascript") + .build(); scriptItemProcessor.afterPropertiesSet(); assertEquals("Incorrect transformed value", "AA", scriptItemProcessor.process("aa")); @@ -66,7 +68,10 @@ public class ScriptItemProcessorBuilderTests { @Test public void testItemBinding() throws Exception { ScriptItemProcessor scriptItemProcessor = new ScriptItemProcessorBuilder() - .scriptSource("foo.contains('World');").language("javascript").itemBindingVariableName("foo").build(); + .scriptSource("foo.contains('World');") + .language("javascript") + .itemBindingVariableName("foo") + .build(); scriptItemProcessor.afterPropertiesSet(); assertEquals("Incorrect transformed value", true, scriptItemProcessor.process("Hello World")); @@ -76,7 +81,8 @@ public class ScriptItemProcessorBuilderTests { public void testScriptResource() throws Exception { Resource resource = new ClassPathResource("org/springframework/batch/item/support/processor-test-simple.js"); ScriptItemProcessor scriptItemProcessor = new ScriptItemProcessorBuilder() - .scriptResource(resource).build(); + .scriptResource(resource) + .build(); scriptItemProcessor.afterPropertiesSet(); assertEquals("Incorrect transformed value", "BB", scriptItemProcessor.process("bb"));