Author: jgbutler
Date: Mon Nov 27 18:30:27 2006
New Revision: 479852

URL: http://svn.apache.org/viewvc?view=rev&rev=479852
Log:
Fixes for IBATIS-340: Allow for overriding the default character encoding

Modified:
    ibatis/trunk/java/mapper/mapper2/build/version.properties
    ibatis/trunk/java/mapper/mapper2/doc/release.txt
    
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/resources/Resources.java

Modified: ibatis/trunk/java/mapper/mapper2/build/version.properties
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/build/version.properties?view=diff&rev=479852&r1=479851&r2=479852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/build/version.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/build/version.properties Mon Nov 27 
18:30:27 2006
@@ -1,5 +1,5 @@
 #Build version info
-#Mon Nov 27 10:29:35 CST 2006
+#Mon Nov 27 20:26:47 CST 2006
 version=2.3.0
-buildDate=2006/11/27 10\:29
-buildNum=671
+buildDate=2006/11/27 20\:26
+buildNum=672

Modified: ibatis/trunk/java/mapper/mapper2/doc/release.txt
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/doc/release.txt?view=diff&rev=479852&r1=479851&r2=479852
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/doc/release.txt (original)
+++ ibatis/trunk/java/mapper/mapper2/doc/release.txt Mon Nov 27 18:30:27 2006
@@ -11,6 +11,7 @@
  o Merged common and sqlmap jar files (no more DAO means there's no point in 
keeping commons separate)
  o Implemented transaction level PreparedStatement caching
  o Fixed IBATIS-335 - Don't call setQueryTimeout if no value specified
+ o Fixed IBATIS-340 - Provide ability to override the default encoding in the 
Resources class
  o Fixed IBATIS-353 - Probe exception when using inheritance hierarchies
  o Fixed IBATIS-366 - Use ResultObjectFactory to create nested classes
 

Modified: 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/resources/Resources.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/resources/Resources.java?view=diff&rev=479852&r1=479851&r2=479852
==============================================================================
--- 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/resources/Resources.java 
(original)
+++ 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/resources/Resources.java 
Mon Nov 27 18:30:27 2006
@@ -18,6 +18,7 @@
 import java.io.*;
 import java.net.URL;
 import java.net.URLConnection;
+import java.nio.charset.Charset;
 import java.util.Properties;
 
 /**
@@ -26,6 +27,12 @@
 public class Resources extends Object {
 
   private static ClassLoader defaultClassLoader;
+  
+  /**
+   * Charset to use when calling getResourceAsReader.
+   * null means use the system default.
+   */
+  private static Charset charset;
 
   private Resources() {
   }
@@ -147,7 +154,14 @@
    * @throws IOException If the resource cannot be found or read
    */
   public static Reader getResourceAsReader(String resource) throws IOException 
{
-    return new InputStreamReader(getResourceAsStream(resource));
+    Reader reader;
+    if (charset == null) {
+      reader = new InputStreamReader(getResourceAsStream(resource));
+    } else {
+      reader = new InputStreamReader(getResourceAsStream(resource), charset);
+    }
+    
+    return reader;
   }
 
   /**
@@ -159,7 +173,14 @@
    * @throws IOException If the resource cannot be found or read
    */
   public static Reader getResourceAsReader(ClassLoader loader, String 
resource) throws IOException {
-    return new InputStreamReader(getResourceAsStream(loader, resource));
+    Reader reader;
+    if (charset == null) {
+      reader = new InputStreamReader(getResourceAsStream(loader, resource));
+    } else {
+      reader = new InputStreamReader(getResourceAsStream(loader, resource), 
charset);
+    }
+    
+    return reader;
   }
 
   /**
@@ -279,6 +300,22 @@
     } else {
       return Thread.currentThread().getContextClassLoader();
     }
+  }
+
+  public static Charset getCharset() {
+    return charset;
+  }
+
+  /**
+   * Use this method to set the Charset to be used when
+   * calling the getResourceAsReader methods.  This will
+   * allow iBATIS to function properly when the system default
+   * encoding doesn't deal well with unicode (IBATIS-340, IBATIS-349)
+   * 
+   * @param charset
+   */
+  public static void setCharset(Charset charset) {
+    Resources.charset = charset;
   }
 
 }


Reply via email to