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;
}
}