BUG-7013: do not rely on default character encoding 63/47663/2
authorRobert Varga <rovarga@cisco.com>
Thu, 27 Oct 2016 10:33:43 +0000 (12:33 +0200)
committerRobert Varga <nite@hq.sk>
Wed, 9 Nov 2016 10:35:53 +0000 (10:35 +0000)
Generated java files should always be UTF8-encoded,
as that is what our maven settings enforce.

Therefore we cannot rely on JVM-default encoding, but
have to force file output to be UTF8.

Change-Id: Ie24f753fda3ab4d71ec951cf7b725b97678bae7a
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit d2b401cc036c53685dcd076a406a13f348ca5102)

binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/maven/sal/api/gen/plugin/CodeGeneratorImpl.java
binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/GeneratorImpl.xtend
binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/wadl/generator/WadlRestconfGenerator.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/GeneratorJavaFile.java

index 40387d8cba727b9769955998fa6cf3a6e7d946a9..6d7b125749432b06bdccc2d7e008056e1e6e36de 100644 (file)
@@ -11,18 +11,17 @@ import com.google.common.base.Joiner;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.ImmutableSet.Builder;
-
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-
 import org.apache.maven.project.MavenProject;
 import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
@@ -178,7 +177,7 @@ public final class CodeGeneratorImpl implements BasicCodeGenerator, BuildContext
 
     private File writeFile(final File file, final String source) {
         try (final OutputStream stream = buildContext.newFileOutputStream(file)) {
-            try (final Writer fw = new OutputStreamWriter(stream)) {
+            try (final Writer fw = new OutputStreamWriter(stream, StandardCharsets.UTF_8)) {
                 try (final BufferedWriter bw = new BufferedWriter(fw)) {
                     bw.write(source);
                 }
index 5462a14cb50d43a6f6b48d5ec992ce2a28bae31c..654b53160207c1d70be17567962ab4e15371ff24 100644 (file)
@@ -12,6 +12,7 @@ import java.io.BufferedWriter
 import java.io.File
 import java.io.IOException
 import java.io.OutputStreamWriter
+import java.nio.charset.StandardCharsets
 import java.text.SimpleDateFormat
 import java.util.ArrayList
 import java.util.Collection
@@ -84,7 +85,7 @@ class GeneratorImpl {
         this.ctx = ctx;
         module.imports.forEach[importModule | this.imports.put(importModule.prefix, importModule.moduleName)]
         try {
-            val fw = new OutputStreamWriter(CTX.newFileOutputStream(destination))
+            val fw = new OutputStreamWriter(CTX.newFileOutputStream(destination), StandardCharsets.UTF_8)
             val bw = new BufferedWriter(fw)
             currentModule = module;
             bw.append(generate(module, ctx));
index 2a02f379462176bee9676b27db4680e6446c4018..2a25d919a7a0acf4aade4284c987039e1ad28066 100644 (file)
@@ -11,6 +11,7 @@ import java.io.BufferedWriter
 import java.io.File
 import java.io.OutputStreamWriter
 import java.net.URI
+import java.nio.charset.StandardCharsets
 import java.util.ArrayList
 import java.util.HashSet
 import java.util.List
@@ -60,7 +61,7 @@ class WadlRestconfGenerator {
                                
                                this.module = module
                                val destination = new File(path, '''«module.name».wadl''')
-                   val fw = new OutputStreamWriter(CTX.newFileOutputStream(destination))
+                   val fw = new OutputStreamWriter(CTX.newFileOutputStream(destination), StandardCharsets.UTF_8)
                    val bw = new BufferedWriter(fw)
                    bw.append(application);
                    bw.close();
index f863d14801c1cc57f67c9a0c8bf3534279be6ba7..253a0b69614439d8ef818d76220e0e09ee8121bf 100644 (file)
@@ -7,16 +7,17 @@
  */
 package org.opendaylight.yangtools.sal.java.api.generator;
 
+import com.google.common.base.Preconditions;
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-
 import org.opendaylight.yangtools.sal.binding.model.api.CodeGenerator;
 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
@@ -25,8 +26,6 @@ import org.slf4j.LoggerFactory;
 import org.sonatype.plexus.build.incremental.BuildContext;
 import org.sonatype.plexus.build.incremental.DefaultBuildContext;
 
-import com.google.common.base.Preconditions;
-
 /**
  * Generates files with JAVA source codes for every specified type.
  *
@@ -181,7 +180,7 @@ public final class GeneratorJavaFile {
             }
 
             try (final OutputStream stream = buildContext.newFileOutputStream(file)) {
-                try (final Writer fw = new OutputStreamWriter(stream)) {
+                try (final Writer fw = new OutputStreamWriter(stream, StandardCharsets.UTF_8)) {
                     try (final BufferedWriter bw = new BufferedWriter(fw)) {
                         bw.write(generatedCode);
                     }