Repository: incubator-batchee Updated Branches: refs/heads/master 4d739e97f -> f8d68fef9
BATCHEE-85 configurable fileEncoding for JSefaReaders Project: http://git-wip-us.apache.org/repos/asf/incubator-batchee/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-batchee/commit/f8d68fef Tree: http://git-wip-us.apache.org/repos/asf/incubator-batchee/tree/f8d68fef Diff: http://git-wip-us.apache.org/repos/asf/incubator-batchee/diff/f8d68fef Branch: refs/heads/master Commit: f8d68fef9a9bd1f4bb293b98d44154b2b1d5679d Parents: 4d739e9 Author: Mark Struberg <[email protected]> Authored: Mon Dec 7 22:50:40 2015 +0100 Committer: Mark Struberg <[email protected]> Committed: Mon Dec 7 22:51:31 2015 +0100 ---------------------------------------------------------------------- .../org/apache/batchee/jsefa/JSefaReader.java | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/f8d68fef/extensions/jsefa/src/main/java/org/apache/batchee/jsefa/JSefaReader.java ---------------------------------------------------------------------- diff --git a/extensions/jsefa/src/main/java/org/apache/batchee/jsefa/JSefaReader.java b/extensions/jsefa/src/main/java/org/apache/batchee/jsefa/JSefaReader.java index 05cb3a6..4400897 100644 --- a/extensions/jsefa/src/main/java/org/apache/batchee/jsefa/JSefaReader.java +++ b/extensions/jsefa/src/main/java/org/apache/batchee/jsefa/JSefaReader.java @@ -22,8 +22,11 @@ import org.apache.batchee.extras.transaction.CountedReader; import javax.batch.api.BatchProperty; import javax.inject.Inject; -import java.io.FileReader; +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.InputStreamReader; import java.io.Serializable; +import java.nio.charset.Charset; public abstract class JSefaReader extends CountedReader { @Inject @@ -61,12 +64,25 @@ public abstract class JSefaReader extends CountedReader { @Documentation("file to read") protected String file; + @Inject + @BatchProperty + @Documentation("the encoding to use while reading the file. E.g. \"UTF-8\". If not specified the system default encoding is being used.") + protected String fileEncoding; + protected Deserializer deserializer; @Override public void open(final Serializable checkpoint) throws Exception { deserializer = initDeserializer(); - deserializer.open(new FileReader(file)); + + Charset charset; + if (fileEncoding != null && !fileEncoding.isEmpty()) { + charset = Charset.forName(fileEncoding); + } else { + charset = Charset.defaultCharset(); + } + + deserializer.open(new BufferedReader(new InputStreamReader(new FileInputStream(file), charset))); super.open(checkpoint); }
