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 %*


Reply via email to