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=