killbill-memoizeit

util: export: fix datetime handling Export datetime as strings,

10/15/2012 7:15:37 PM

Details

diff --git a/util/src/main/java/com/ning/billing/util/export/dao/CSVExportOutputStream.java b/util/src/main/java/com/ning/billing/util/export/dao/CSVExportOutputStream.java
index ec7fb54..333a90c 100644
--- a/util/src/main/java/com/ning/billing/util/export/dao/CSVExportOutputStream.java
+++ b/util/src/main/java/com/ning/billing/util/export/dao/CSVExportOutputStream.java
@@ -25,6 +25,7 @@ import com.ning.billing.util.api.ColumnInfo;
 import com.ning.billing.util.api.DatabaseExportOutputStream;
 
 import com.fasterxml.jackson.databind.ObjectWriter;
+import com.fasterxml.jackson.databind.SerializationFeature;
 import com.fasterxml.jackson.dataformat.csv.CsvMapper;
 import com.fasterxml.jackson.dataformat.csv.CsvSchema;
 import com.fasterxml.jackson.dataformat.csv.CsvSchema.ColumnType;
@@ -42,6 +43,9 @@ public class CSVExportOutputStream extends OutputStream implements DatabaseExpor
 
     public CSVExportOutputStream(final OutputStream delegate) {
         this.delegate = delegate;
+
+        // To be mysqlimport friendly with datetime type
+        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
     }
 
     @Override
diff --git a/util/src/test/java/com/ning/billing/util/export/dao/TestDatabaseExportDao.java b/util/src/test/java/com/ning/billing/util/export/dao/TestDatabaseExportDao.java
index bb5ee85..b39f204 100644
--- a/util/src/test/java/com/ning/billing/util/export/dao/TestDatabaseExportDao.java
+++ b/util/src/test/java/com/ning/billing/util/export/dao/TestDatabaseExportDao.java
@@ -88,8 +88,8 @@ public class TestDatabaseExportDao extends UtilTestSuiteWithEmbeddedDB {
         final String newDump = getDump();
         // Note: unclear why Jackson would quote the header?
         Assert.assertEquals(newDump, "-- accounts record_id,id,email,name,first_name_length,\"is_notified_for_invoices\",created_date,created_by,updated_date,updated_by,tenant_record_id" + "\n" +
-                                     String.format("%s,\"%s\",%s,%s,%s,%s,%s,%s,%s,%s,%s", internalCallContext.getAccountRecordId(), accountId, accountEmail, accountName, firstNameLength,
-                                                   isNotifiedForInvoices, createdDate.getTime(), createdBy, updatedDate.getTime(), updatedBy, internalCallContext.getTenantRecordId()) + "\n" +
+                                     String.format("%s,\"%s\",%s,%s,%s,%s,\"%s\",%s,\"%s\",%s,%s", internalCallContext.getAccountRecordId(), accountId, accountEmail, accountName, firstNameLength,
+                                                   isNotifiedForInvoices, "1970-05-24T18:33:02.000+0000", createdBy, "1982-02-18T20:03:42.000+0000", updatedBy, internalCallContext.getTenantRecordId()) + "\n" +
                                      "-- " + tableNameA + " record_id,a_column,account_record_id,tenant_record_id\n" +
                                      "1,a," + internalCallContext.getAccountRecordId() + "," + internalCallContext.getTenantRecordId() + "\n" +
                                      "-- " + tableNameB + " record_id,b_column,account_record_id,tenant_record_id\n" +