Author: cbegin Date: Wed Dec 16 05:03:32 2009 New Revision: 891126 URL: http://svn.apache.org/viewvc?rev=891126&view=rev Log: added timezone support to migrations
Modified: 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 ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/scripts/migrate.cmd 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=891126&r1=891125&r2=891126&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 Wed Dec 16 05:03:32 2009 @@ -12,12 +12,15 @@ import java.math.BigDecimal; import java.net.URL; import java.net.URLClassLoader; -import java.sql.SQLException; +import java.sql.*; import java.text.SimpleDateFormat; import java.util.*; +import java.util.Date; public abstract class BaseCommand implements Command { + private static final String DATE_FORMAT = "yyyyMMddHHmmss"; + protected static final PrintStream out = System.out; protected File basePath; @@ -119,7 +122,21 @@ } catch (InterruptedException e) { //ignore } - return new SimpleDateFormat("yyyyMMddHHmmss").format(new java.sql.Date(System.currentTimeMillis())); + String timezone = environmentProperties().getProperty("time_zone"); + if (timezone == null) { + timezone = "GMT+0:00"; + } + final SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); + final Date now = nowInTimeZone(timezone); + return dateFormat.format(now); + } + + protected Date nowInTimeZone(String toTimezone) { + final Calendar c = new GregorianCalendar(TimeZone.getTimeZone(toTimezone), Locale.US); + c.setTimeInMillis(new GregorianCalendar().getTimeInMillis()); + return new Date( + c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE), + c.get(Calendar.HOUR), c.get(Calendar.MINUTE), c.get(Calendar.SECOND)); } protected void copyResourceTo(String resource, File toFile) { 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=891126&r1=891125&r2=891126&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 Wed Dec 16 05:03:32 2009 @@ -1,3 +1,6 @@ +## Base time zone to ensure times are consistent across machines +time_zone=GMT+0:00 + ## JDBC connection properties. driver= url= Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/scripts/migrate.cmd URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/scripts/migrate.cmd?rev=891126&r1=891125&r2=891126&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/scripts/migrate.cmd (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/scripts/migrate.cmd Wed Dec 16 05:03:32 2009 @@ -2,6 +2,6 @@ set WORKING_DIR=%~dp0 set LIB=%WORKING_DIR%lib\ -for /F %%a in ('dir %LIB% /a /b /-p /o') do set MIGRATOR_CP=%LIB%%%a +for /F %%a in ('dir "%LIB%" /a /b /-p /o') do set MIGRATOR_CP=%LIB%%%a -java -cp %MIGRATOR_CP% org.apache.ibatis.migration.Migrator %* +java -cp "%MIGRATOR_CP%" org.apache.ibatis.migration.Migrator %*