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);
     }
 

Reply via email to