From: Robert Varga Date: Thu, 27 Oct 2016 10:33:43 +0000 (+0200) Subject: BUG-7013: do not rely on default character encoding X-Git-Tag: release/boron-sr2~4 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;ds=sidebyside;h=8216dbb9b22b70155a583e7d5444c0f6da78b0a1;hp=3abb1680f36ece1f05e6bca3f326a9430ae1405b;p=mdsal.git BUG-7013: do not rely on default character encoding 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 (cherry picked from commit d2b401cc036c53685dcd076a406a13f348ca5102) --- diff --git a/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/maven/sal/api/gen/plugin/CodeGeneratorImpl.java b/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/maven/sal/api/gen/plugin/CodeGeneratorImpl.java index 40387d8cba..6d7b125749 100644 --- a/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/maven/sal/api/gen/plugin/CodeGeneratorImpl.java +++ b/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/maven/sal/api/gen/plugin/CodeGeneratorImpl.java @@ -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); } diff --git a/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/GeneratorImpl.xtend b/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/GeneratorImpl.xtend index 5462a14cb5..654b531602 100644 --- a/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/GeneratorImpl.xtend +++ b/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/GeneratorImpl.xtend @@ -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)); diff --git a/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/wadl/generator/WadlRestconfGenerator.xtend b/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/wadl/generator/WadlRestconfGenerator.xtend index 2a02f37946..2a25d919a7 100644 --- a/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/wadl/generator/WadlRestconfGenerator.xtend +++ b/binding/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/wadl/generator/WadlRestconfGenerator.xtend @@ -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(); diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/GeneratorJavaFile.java b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/GeneratorJavaFile.java index f863d14801..253a0b6961 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/GeneratorJavaFile.java +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/GeneratorJavaFile.java @@ -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); }