Author: cbegin
Date: Sat Jan 23 22:55:22 2010
New Revision: 902504

URL: http://svn.apache.org/viewvc?rev=902504&view=rev
Log:
IBATIS-728 Problem when a script is written in a different encode than the 
default

Modified:
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java?rev=902504&r1=902503&r2=902504&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java
 Sat Jan 23 22:55:22 2010
@@ -3,6 +3,7 @@
 import java.io.BufferedReader;
 import java.io.PrintWriter;
 import java.io.Reader;
+import java.io.UnsupportedEncodingException;
 import java.sql.*;
 
 public class ScriptRunner {
@@ -20,11 +21,16 @@
 
   private String delimiter = DEFAULT_DELIMITER;
   private boolean fullLineDelimiter = false;
+  private String characterSetName;
 
   public ScriptRunner(Connection connection) {
     this.connection = connection;
   }
 
+  public void setCharacterSetName(String characterSetName) {
+    this.characterSetName = characterSetName;
+  }
+
   public void setStopOnError(boolean stopOnError) {
     this.stopOnError = stopOnError;
   }
@@ -149,7 +155,7 @@
     }
   }
 
-  private StringBuffer handleLine(StringBuffer command, String line) throws 
SQLException {
+  private StringBuffer handleLine(StringBuffer command, String line) throws 
SQLException, UnsupportedEncodingException {
     String trimmedLine = line.trim();
     if (lineIsComment(trimmedLine)) {
       println(trimmedLine);
@@ -175,7 +181,10 @@
         || fullLineDelimiter && trimmedLine.equals(delimiter);
   }
 
-  private void executeStatement(String command) throws SQLException {
+  private void executeStatement(String command) throws SQLException, 
UnsupportedEncodingException {
+    if(characterSetName != null){
+      command = new String(command.getBytes(), characterSetName);
+    }
     boolean hasResults = false;
     Statement statement = connection.createStatement();
     if (stopOnError) {

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java?rev=902504&r1=902503&r2=902504&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
 Sat Jan 23 22:55:22 2010
@@ -191,10 +191,12 @@
       String url = props.getProperty("url");
       String username = props.getProperty("username");
       String password = props.getProperty("password");
+      String charSetName = props.getProperty("script_char_set");
       PrintWriter outWriter = new PrintWriter(out);
       UnpooledDataSource dataSource = new 
UnpooledDataSource(driverClassLoader, driver, url, username, password);
       dataSource.setAutoCommit(false);
       ScriptRunner scriptRunner = new ScriptRunner(dataSource.getConnection());
+      scriptRunner.setCharacterSetName(charSetName);
       scriptRunner.setStopOnError(!force);
       scriptRunner.setLogWriter(outWriter);
       scriptRunner.setErrorLogWriter(outWriter);

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties?rev=902504&r1=902503&r2=902504&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties
 Sat Jan 23 22:55:22 2010
@@ -1,6 +1,9 @@
 ## Base time zone to ensure times are consistent across machines
 time_zone=GMT+0:00
 
+## The character set that scripts are encoded with
+# script_char_set=UTF-8
+
 ## JDBC connection properties.
 driver=
 url=


Reply via email to