Author: cbegin
Date: Fri Aug 22 22:20:02 2008
New Revision: 688262
URL: http://svn.apache.org/viewvc?rev=688262&view=rev
Log:
Introduced new migration repository directory structure
Refactored commands
Added dynamic driver loading
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_README
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/common/jdbc/ScriptRunner.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/adhoc/AdHocExecutor.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/ScriptRunner.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UndoCommand.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate.cmd
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/BaseDataTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/migration/ScriptRunnerTest.java
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/common/jdbc/ScriptRunner.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/common/jdbc/ScriptRunner.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/common/jdbc/ScriptRunner.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/common/jdbc/ScriptRunner.java
Fri Aug 22 22:20:02 2008
@@ -5,10 +5,6 @@
public class ScriptRunner extends org.apache.ibatis.migration.ScriptRunner {
- public ScriptRunner(DataSource dataSource, boolean autoCommit, boolean
stopOnError) {
- super(dataSource, autoCommit, stopOnError);
- }
-
public ScriptRunner(Connection connection, boolean autoCommit, boolean
stopOnError) {
super(connection, autoCommit, stopOnError);
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/adhoc/AdHocExecutor.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/adhoc/AdHocExecutor.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/adhoc/AdHocExecutor.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/adhoc/AdHocExecutor.java
Fri Aug 22 22:20:02 2008
@@ -13,18 +13,36 @@
private TypeHandlerRegistry typeHandlerRegistry;
private boolean forceGeneratedKeySupport = false;
+ public AdHocExecutor(Connection connection) {
+ this(connection, false);
+ }
+
public AdHocExecutor(Connection connection, boolean
forceGeneratedKeySupport) {
this.connection = connection;
this.typeHandlerRegistry = new TypeHandlerRegistry();
this.forceGeneratedKeySupport = forceGeneratedKeySupport;
}
+ public AdHocExecutor(String driver, String url, String username, String
password) {
+ this(driver,url,username,password,false,null);
+ }
+
public AdHocExecutor(String driver, String url, String username, String
password, boolean forceGeneratedKeySupport) {
+ this(driver,url,username,password,forceGeneratedKeySupport,null);
+ }
+
+ public AdHocExecutor(String driver, String url, String username, String
password, boolean forceGeneratedKeySupport, ClassLoader driverClassLoader) {
try {
- Class driverType = Class.forName(driver);
- DriverManager.registerDriver((Driver) driverType.newInstance());
+ Class driverType;
+ if (driverClassLoader != null) {
+ driverType = Class.forName(driver, true, driverClassLoader);
+ } else {
+ driverType = Class.forName(driver);
+ }
+ Driver driverInstance = (Driver) driverType.newInstance();
+ DriverProxy driverProxy = new DriverProxy(driverInstance);
+ DriverManager.registerDriver(driverProxy);
connection = DriverManager.getConnection(url, username, password);
- this.connection = connection;
this.typeHandlerRegistry = new TypeHandlerRegistry();
this.forceGeneratedKeySupport = forceGeneratedKeySupport;
} catch (Exception e) {
@@ -32,10 +50,6 @@
}
}
- public AdHocExecutor(Connection connection) {
- this(connection, false);
- }
-
/**
* Executes a SELECT statement that returns one row.
*
@@ -231,4 +245,29 @@
}
}
+ private static class DriverProxy implements Driver {
+ private Driver driver;
+ DriverProxy(Driver d) {
+ this.driver = d;
+ }
+ public boolean acceptsURL(String u) throws SQLException {
+ return this.driver.acceptsURL(u);
+ }
+ public Connection connect(String u, Properties p) throws SQLException {
+ return this.driver.connect(u, p);
+ }
+ public int getMajorVersion() {
+ return this.driver.getMajorVersion();
+ }
+ public int getMinorVersion() {
+ return this.driver.getMinorVersion();
+ }
+ public DriverPropertyInfo[] getPropertyInfo(String u, Properties p) throws
SQLException {
+ return this.driver.getPropertyInfo(u, p);
+ }
+ public boolean jdbcCompliant() {
+ return this.driver.jdbcCompliant();
+ }
+ }
+
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/ScriptRunner.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/ScriptRunner.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/ScriptRunner.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/ScriptRunner.java
Fri Aug 22 22:20:02 2008
@@ -1,15 +1,14 @@
package org.apache.ibatis.migration;
-import javax.sql.DataSource;
import java.io.*;
import java.sql.*;
+import java.util.Properties;
public class ScriptRunner {
private static final String DEFAULT_DELIMITER = ";";
- private DataSource dataSource;
private Connection connection;
private String driver;
private String url;
@@ -24,12 +23,7 @@
private String delimiter = DEFAULT_DELIMITER;
private boolean fullLineDelimiter = false;
-
- public ScriptRunner(DataSource dataSource, boolean autoCommit, boolean
stopOnError) {
- this.dataSource = dataSource;
- this.autoCommit = autoCommit;
- this.stopOnError = stopOnError;
- }
+ private ClassLoader driverClassLoader;
public ScriptRunner(Connection connection, boolean autoCommit, boolean
stopOnError) {
this.connection = connection;
@@ -46,6 +40,10 @@
this.stopOnError = stopOnError;
}
+ public void setDriverClassLoader(ClassLoader loader) {
+ driverClassLoader = loader;
+ }
+
public void setDelimiter(String delimiter, boolean fullLineDelimiter) {
this.delimiter = delimiter;
this.fullLineDelimiter = fullLineDelimiter;
@@ -61,23 +59,10 @@
public void runScript(Reader reader) throws IOException, SQLException {
try {
- if (dataSource != null) {
- connection = dataSource.getConnection();
- try {
- configureAutoCommitAndRun(reader);
- } finally {
- try {
- connection.close();
- } finally {
- connection = null;
- }
- }
- } else if (connection != null) {
+ if (connection != null) {
configureAutoCommitAndRun(reader);
} else {
- Class driverType = Class.forName(driver);
- DriverManager.registerDriver((Driver) driverType.newInstance());
- connection = DriverManager.getConnection(url, username, password);
+ initConnection();
try {
configureAutoCommitAndRun(reader);
} finally {
@@ -99,6 +84,18 @@
}
}
+ private void initConnection() throws ClassNotFoundException, SQLException,
InstantiationException, IllegalAccessException {
+ Class driverType;
+ if (driverClassLoader != null) {
+ driverType = Class.forName(driver, true, driverClassLoader);
+ } else {
+ driverType = Class.forName(driver);
+ }
+ Driver driverInstance = (Driver) driverType.newInstance();
+ DriverManager.registerDriver(new DriverProxy(driverInstance));
+ connection = DriverManager.getConnection(url, username, password);
+ }
+
private void configureAutoCommitAndRun(Reader reader) throws SQLException,
IOException {
boolean originalAutoCommit = connection.getAutoCommit();
try {
@@ -241,5 +238,29 @@
}
}
+ private static class DriverProxy implements Driver {
+ private Driver driver;
+ DriverProxy(Driver d) {
+ this.driver = d;
+ }
+ public boolean acceptsURL(String u) throws SQLException {
+ return this.driver.acceptsURL(u);
+ }
+ public Connection connect(String u, Properties p) throws SQLException {
+ return this.driver.connect(u, p);
+ }
+ public int getMajorVersion() {
+ return this.driver.getMajorVersion();
+ }
+ public int getMinorVersion() {
+ return this.driver.getMinorVersion();
+ }
+ public DriverPropertyInfo[] getPropertyInfo(String u, Properties p) throws
SQLException {
+ return this.driver.getPropertyInfo(u, p);
+ }
+ public boolean jdbcCompliant() {
+ return this.driver.jdbcCompliant();
+ }
+ }
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
Fri Aug 22 22:20:02 2008
@@ -11,22 +11,29 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.io.*;
+import java.net.*;
public abstract class BaseCommand implements Command {
protected static final PrintStream out = System.out;
- protected File repository;
+ protected File basePath;
+ protected File envPath;
+ protected File scriptPath;
+ protected File driverPath;
protected String environment;
protected boolean force;
+ private ClassLoader driverClassLoader;
protected BaseCommand(File repository, String environment, boolean force) {
- this.repository = repository;
+ this.basePath = repository;
+ this.envPath = subdirectory(repository, "environments");
+ this.scriptPath = subdirectory(repository, "scripts");
+ this.driverPath = subdirectory(repository, "drivers");
this.environment = environment;
this.force = force;
}
-
protected Change parseChangeFromFilename(String filename) {
try {
Change change = new Change();
@@ -128,23 +135,28 @@
}
protected AdHocExecutor getAdHocExecutor() {
+ lazyInitializeDrivers();
+
Properties props = getEnvironmentProperties();
String driver = props.getProperty("driver");
String url = props.getProperty("url");
String username = props.getProperty("username");
String password = props.getProperty("password");
- return new AdHocExecutor(driver, url, username, password, false);
+ return new AdHocExecutor(driver, url, username, password, false,
driverClassLoader);
}
protected ScriptRunner getScriptRunner() {
try {
+ lazyInitializeDrivers();
+
Properties props = getEnvironmentProperties();
String driver = props.getProperty("driver");
String url = props.getProperty("url");
String username = props.getProperty("username");
String password = props.getProperty("password");
- ScriptRunner scriptRunner = new ScriptRunner(driver, url, username,
password, false, !force);
PrintWriter outWriter = new PrintWriter(out);
+ ScriptRunner scriptRunner = new ScriptRunner(driver, url, username,
password, false, !force);
+ scriptRunner.setDriverClassLoader(driverClassLoader);
scriptRunner.setLogWriter(outWriter);
scriptRunner.setErrorLogWriter(outWriter);
return scriptRunner;
@@ -153,12 +165,24 @@
}
}
- protected File repositoryFile(String fileName) {
- return new File(repository.getAbsolutePath() + File.separator + fileName);
+ protected File baseFile(String fileName) {
+ return new File(basePath.getAbsolutePath() + File.separator + fileName);
+ }
+
+ protected File environmentFile(String fileName) {
+ return new File(envPath.getAbsolutePath() + File.separator + fileName);
+ }
+
+ protected File scriptFile(String fileName) {
+ return new File(scriptPath.getAbsolutePath() + File.separator + fileName);
+ }
+
+ protected File driverFile(String fileName) {
+ return new File(driverPath.getAbsolutePath() + File.separator + fileName);
}
protected File environmentFile() {
- return repositoryFile(environment + ".properties");
+ return environmentFile(environment + ".properties");
}
protected File existingEnvironmentFile() {
@@ -169,6 +193,26 @@
return envFile;
}
+ private void lazyInitializeDrivers() {
+ try {
+ if (driverClassLoader == null) {
+ List<URL> urlList = new ArrayList<URL>();
+ for (File file : driverPath.listFiles()) {
+ URL url = new URL("jar:file:/" + file.getAbsolutePath() + "!/");
+ urlList.add(url);
+ }
+ URL[] urls = urlList.toArray(new URL[urlList.size()]);
+ driverClassLoader = new URLClassLoader(urls);
+ }
+ } catch (IOException e) {
+ throw new MigrationException("Error loading JDBC drivers. Cause: " + e,
e);
+ }
+ }
+
+ private File subdirectory(File base, String sub) {
+ return new File(base.getAbsoluteFile() + File.separator + sub);
+ }
+
private Properties getEnvironmentProperties() {
try {
File file = existingEnvironmentFile();
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java
Fri Aug 22 22:20:02 2008
@@ -11,12 +11,19 @@
}
public void execute(String... args) {
- createDirectoryIfNecessary(repository);
- ensureDirectoryIsEmpty(repository);
- out.println("Initializing: " + repository);
+ out.println("Initializing: " + basePath);
+
+ createDirectoryIfNecessary(basePath);
+ ensureDirectoryIsEmpty(basePath);
+
+ createDirectoryIfNecessary(envPath);
+ createDirectoryIfNecessary(scriptPath);
+ createDirectoryIfNecessary(driverPath);
+
+ copyResourceTo("org/apache/ibatis/migration/template_README",
baseFile("README"));
copyResourceTo("org/apache/ibatis/migration/template_environment.properties",
environmentFile());
- copyResourceTo("org/apache/ibatis/migration/template_changelog.sql",
repositoryFile(getTimestampAsString() + "_create_changelog.sql"));
- copyResourceTo("org/apache/ibatis/migration/template_migration.sql",
repositoryFile(getTimestampAsString() + "_first_migration.sql"));
+ copyResourceTo("org/apache/ibatis/migration/template_changelog.sql",
scriptFile(getTimestampAsString() + "_create_changelog.sql"));
+ copyResourceTo("org/apache/ibatis/migration/template_migration.sql",
scriptFile(getTimestampAsString() + "_first_migration.sql"));
out.println("Done!");
}
@@ -35,6 +42,7 @@
if (!path.exists()) {
File parent = new File(path.getParent());
createDirectoryIfNecessary(parent);
+ out.println("Creating: " + path.getName());
if (!path.mkdir()) {
throw new MigrationException("Could not create directory path for an
unknown reason. Make sure you have access to the directory.");
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java
Fri Aug 22 22:20:02 2008
@@ -21,7 +21,7 @@
variables.put("description", description);
existingEnvironmentFile();
String filename = getTimestampAsString() + "_" + description.replace(' ',
'_') + ".sql";
- copyResourceTo("org/apache/ibatis/migration/template_migration.sql",
repositoryFile(filename), variables);
+ copyResourceTo("org/apache/ibatis/migration/template_migration.sql",
scriptFile(filename), variables);
out.println("Done!");
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java
Fri Aug 22 22:20:02 2008
@@ -19,7 +19,7 @@
public void execute(String... params) {
try {
- String[] filenames = repository.list();
+ String[] filenames = scriptPath.list();
Arrays.sort(filenames);
Change lastChange = null;
if (changelogExists()) {
@@ -31,7 +31,7 @@
if (lastChange == null ||
change.getId().compareTo(lastChange.getId()) > 0) {
out.println(horizontalLine("Applying: " + filename, 80));
ScriptRunner runner = getScriptRunner();
- runner.runScript(new MigrationReader(new
FileReader(repositoryFile(filename)), false));
+ runner.runScript(new MigrationReader(new
FileReader(scriptFile(filename)), false));
insertChangelog(change);
}
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UndoCommand.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UndoCommand.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UndoCommand.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UndoCommand.java
Fri Aug 22 22:20:02 2008
@@ -20,7 +20,7 @@
public void execute(String... params) {
try {
- String[] filenames = repository.list();
+ String[] filenames = scriptPath.list();
reverse(filenames);
Change lastChange = getLastChange();
for (String filename : filenames) {
@@ -29,7 +29,7 @@
if (change.getId().equals(lastChange.getId())) {
out.println(horizontalLine("Undoing: " + filename, 80));
ScriptRunner runner = getScriptRunner();
- runner.runScript(new MigrationReader(new
FileReader(repositoryFile(filename)), true));
+ runner.runScript(new MigrationReader(new
FileReader(scriptFile(filename)), true));
if (changelogExists()) {
deleteChange(change);
} else {
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_README
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_README?rev=688262&view=auto
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_README
(added)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_README
Fri Aug 22 22:20:02 2008
@@ -0,0 +1,38 @@
+Welcome!
+
+This is an iBATIS Migration repository. You can specify the repository
+directory when running migrations using the --path=<repos-directory>
+option. The default path is the current working directory ("./").
+
+The repository base directory contains three subdirectories as follows:
+
+./drivers
+
+Place your JDBC driver .jar or .zip files in this directory. Upon running a
+migration, the drivers will be dynamically loaded.
+
+./environments
+
+In the environments folder you will find .properties files that represent
+your database instances. By default a development.properties file is
+created for you to configure your development time database properties.
+You can also create test.properties and production.properties files.
+The environment can be specified when running a migration by using
+the --env=<environment> option (without the path or ".properties" part).
+
+The default environment is "development".
+
+./scripts
+
+This directory contains your migration SQL files. These are the files
+that contain your DDL to both upgrade and downgrade your database
+structure. By default, the directory will contain the script to
+create the changelog table, plus one empty "first" migration script.
+To create a new migration script, use the "new" command. To run
+all pending migrations, use the "run" command. To undo the last
+migration applied, use the "undo" command etc.
+
+For more information about commands and options, run the ibatis
+migration script with the --help option.
+
+Enjoy.
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties
Fri Aug 22 22:20:02 2008
@@ -3,13 +3,3 @@
url=
username=
password=
-
-## The table containing the changelog. Defaults to 'changelog'
-#changelog.table=
-
-## The schema the changelog can be found in. Default is null.
-#changelog.schema=
-
-## The catalog the changelog can be found in. Default is null.
-#changelog.catalog=
-
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate Fri Aug
22 22:20:02 2008
@@ -1,9 +1,5 @@
#!/bin/sh
IBATIS_LIB=/home/clinton/Development/ibatis-3/ibatis-3-core/target/classes
-CURDIR=$(dirname $0)
-JARS=$CURDIR/drivers/
-MYCP=$(ls $JARS/ | sed "s#^#$JARS&#" | sed "s/$/:/" | xargs echo | sed 's/:
*/:/')
-MYCP="$MYCP:$IBATIS_LIB"
-java -cp $MYCP org.apache.ibatis.migration.Migrator $*
+java -cp $IBATIS_LIB org.apache.ibatis.migration.Migrator $*
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate.cmd
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate.cmd?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate.cmd
(original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/scripts/migrate.cmd Fri
Aug 22 22:20:02 2008
@@ -1,5 +1,5 @@
@ECHO off
-set IBATIS_LIB=/home/clinton/Development/ibatis-3/ibatis-3-core/target/classes
+set IBATIS_LIB=D:\Development\ibatis-3\ibatis-3-core\target\classes
java -cp %IBATIS_LIB% org.apache.ibatis.migration.Migrator %*
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/BaseDataTest.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/BaseDataTest.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/BaseDataTest.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/BaseDataTest.java
Fri Aug 22 22:20:02 2008
@@ -7,7 +7,7 @@
import javax.sql.DataSource;
import java.io.*;
-import java.sql.SQLException;
+import java.sql.*;
import java.util.Properties;
public class BaseDataTest {
@@ -31,9 +31,14 @@
}
public static void runScript(DataSource ds, String resource) throws
IOException, SQLException {
- ScriptRunner runner = new ScriptRunner(ds, true, false);
- runner.setLogWriter(null);
- runScript(runner, resource);
+ Connection connection = ds.getConnection();
+ try {
+ ScriptRunner runner = new ScriptRunner(connection, true, false);
+ runner.setLogWriter(null);
+ runScript(runner, resource);
+ } finally {
+ connection.close();
+ }
}
public static void runScript(ScriptRunner runner, String resource) throws
IOException, SQLException {
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/migration/ScriptRunnerTest.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/migration/ScriptRunnerTest.java?rev=688262&r1=688261&r2=688262&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/migration/ScriptRunnerTest.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/migration/ScriptRunnerTest.java
Fri Aug 22 22:20:02 2008
@@ -13,17 +13,6 @@
public class ScriptRunnerTest extends BaseDataTest {
@Test
- public void shouldRunScriptsUsingDataSource() throws Exception {
- SimpleDataSource ds = createSimpleDataSource(JPETSTORE_PROPERTIES);
- ScriptRunner runner = new ScriptRunner(ds, true, false);
- runner.setDelimiter(";", false);
- runner.setLogWriter(null);
- runner.setErrorLogWriter(null);
- runJPetStoreScripts(runner);
- assertProductsTableExistsAndLoaded();
- }
-
- @Test
public void shouldRunScriptsUsingConnection() throws Exception {
SimpleDataSource ds = createSimpleDataSource(JPETSTORE_PROPERTIES);
Connection conn = ds.getConnection();