[maven-repo-helper] 01/01: Always write the transformed poms in UTF-8

Emmanuel Bourg ebourg-guest at moszumanska.debian.org
Tue Jul 21 07:43:37 UTC 2015


This is an automated email from the git hooks/post-receive script.

ebourg-guest pushed a commit to branch master
in repository maven-repo-helper.

commit 868d5bf912a1ce1fda4a8ea3202e3c8efd2f32ab
Author: Emmanuel Bourg <ebourg at apache.org>
Date:   Tue Jul 21 09:42:23 2015 +0200

    Always write the transformed poms in UTF-8
---
 debian/changelog                                        | 4 ++--
 src/main/java/org/debian/maven/repo/POMTransformer.java | 5 +++--
 src/main/java/org/debian/maven/util/Readers.java        | 4 ++++
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index c0cf205..5e100f3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,8 @@
 maven-repo-helper (1.8.12) UNRELEASED; urgency=medium
 
   * Fixed a parsing error with poms containing a byte order mark
-  * Always use ISO-8859-1 as the default charset when transforming poms
-    to improve the reproducibility of the builds
+  * Always use the same system independent encoding when transforming
+    the pom files to improve the reproducibility of the builds.
 
  -- Emmanuel Bourg <ebourg at apache.org>  Tue, 21 Jul 2015 00:39:42 +0200
 
diff --git a/src/main/java/org/debian/maven/repo/POMTransformer.java b/src/main/java/org/debian/maven/repo/POMTransformer.java
index b90c9f6..2dfa674 100644
--- a/src/main/java/org/debian/maven/repo/POMTransformer.java
+++ b/src/main/java/org/debian/maven/repo/POMTransformer.java
@@ -19,8 +19,9 @@ package org.debian.maven.repo;
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.io.Writer;
 import java.util.*;
 import java.util.logging.Level;
@@ -278,7 +279,7 @@ public class POMTransformer extends POMReader {
             String element = null;
             boolean afterText = false;
             XMLStreamReader parser = factory.createXMLStreamReader(new BufferedReader(Readers.read(originalPom)));
-            out = new BufferedWriter(new FileWriter(targetPom));
+            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(targetPom), "UTF-8"));
             XMLStreamWriter writer = outFactory.createXMLStreamWriter(out);
             XMLWriterWrapper writerWrapper = new XMLWriterWrapper(writer);
 
diff --git a/src/main/java/org/debian/maven/util/Readers.java b/src/main/java/org/debian/maven/util/Readers.java
index d222c52..c6df6ad 100644
--- a/src/main/java/org/debian/maven/util/Readers.java
+++ b/src/main/java/org/debian/maven/util/Readers.java
@@ -32,6 +32,10 @@ public class Readers {
     /**
      * Detects a BOM in the specified input stream and returns a Reader
      * using the charset detected, or ISO-8859-1 otherwise.
+     * ISO-8859-1 is used by default because it won't break on invalid
+     * byte sequences unlike UTF-8. This may corrupt some non functionnal
+     * texts of the poms, but it guarantees the build will never break
+     * on corrupted characters.
      */
     public static Reader read(InputStream in) throws IOException {
         BOMInputStream bis = new BOMInputStream(in, false, UTF_8, UTF_16BE, UTF_16LE, UTF_32BE, UTF_32LE);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/maven-repo-helper.git



More information about the pkg-java-commits mailing list