You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2014/10/21 22:01:20 UTC

git commit: [CXF-6057] Passing the encoding property to the JAXB compiler, thanks to Dan

Repository: cxf
Updated Branches:
  refs/heads/master 2b95868a7 -> da9070b37


[CXF-6057] Passing the encoding property to the JAXB compiler, thanks to Dan


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/da9070b3
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/da9070b3
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/da9070b3

Branch: refs/heads/master
Commit: da9070b37e1f2c15f0bd530dfbe56255adc6707e
Parents: 2b95868
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Tue Oct 21 21:00:59 2014 +0100
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Tue Oct 21 21:00:59 2014 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/cxf/common/jaxb/JAXBUtils.java | 12 +++++++++++-
 .../apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java   |  1 +
 .../apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java  | 10 ++++++++--
 3 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/da9070b3/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
index 28294a4..d4b900e 100644
--- a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
@@ -699,8 +699,10 @@ public final class JAXBUtils {
         }
         return classes;
     }
-    
     public static Object createFileCodeWriter(File f) throws JAXBException {
+        return createFileCodeWriter(f, "UTF-8");
+    }
+    public static Object createFileCodeWriter(File f, String encoding) throws JAXBException {
         try {
             Class<?> cls;
             try {
@@ -710,6 +712,14 @@ public final class JAXBUtils {
                 cls = Class.forName("com.sun.codemodel.internal.writer.FileCodeWriter",
                                     true, getXJCClassLoader());
             }
+            if (encoding != null) {
+                try {
+                    return cls.getConstructor(File.class, String.class)
+                              .newInstance(f, encoding);
+                } catch (Exception ex) {
+                    // try a single argument constructor
+                }
+            }
             return cls.getConstructor(File.class).newInstance(f);
         } catch (Exception ex) {
             throw new JAXBException(ex);

http://git-wip-us.apache.org/repos/asf/cxf/blob/da9070b3/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java
----------------------------------------------------------------------
diff --git a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java
index 7607637..49b690a 100644
--- a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java
+++ b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java
@@ -125,6 +125,7 @@ public class JAXRSContainer extends AbstractCXFToolContainer {
         }
         sg.setPackageName((String)context.get(WadlToolConstants.CFG_PACKAGENAME));
         sg.setResourceName((String)context.get(WadlToolConstants.CFG_RESOURCENAME));
+        sg.setEncoding((String)context.get(WadlToolConstants.CFG_ENCODING));
 
         String wadlNs = (String)context.get(WadlToolConstants.CFG_WADL_NAMESPACE);
         if (wadlNs != null) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/da9070b3/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
----------------------------------------------------------------------
diff --git a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
index 74ff3f4..59d08e6 100644
--- a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
+++ b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
@@ -220,6 +220,7 @@ public class SourceGenerator {
     private boolean supportMultipleXmlReps;
     private boolean validateWadl;    
     private SchemaCollection schemaCollection = new SchemaCollection();
+    private String encoding;
     
     public SourceGenerator() {
         this(Collections.<String, String>emptyMap());
@@ -1447,7 +1448,8 @@ public class SourceGenerator {
             file.createNewFile();
             Writer writer = null;
             try {
-                writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
+                writer = new OutputStreamWriter(new FileOutputStream(file), 
+                                                encoding == null ? "UTF-8" : encoding);
                 writer.write(content);
                 writer.flush();
             } finally {
@@ -1499,7 +1501,7 @@ public class SourceGenerator {
     
     private void generateClassesFromSchema(JCodeModel codeModel, File src) {
         try {
-            Object writer = JAXBUtils.createFileCodeWriter(src);
+            Object writer = JAXBUtils.createFileCodeWriter(src, encoding == null ? "UTF-8" : encoding);
             codeModel.build(writer);
             generatedTypeClasses = JAXBUtils.getGeneratedClassNames(codeModel);
         } catch (Exception e) {
@@ -1751,6 +1753,10 @@ public class SourceGenerator {
         this.validateWadl = validateWadl;
     }
 
+    public void setEncoding(String encoding) {
+        this.encoding = encoding;
+    }
+
     private static class GrammarInfo {
         private Map<String, String> nsMap = new HashMap<String, String>();
         private Map<String, String> elementTypeMap = new HashMap<String, String>();