]> source.dussan.org Git - iciql.git/commitdiff
Generated models are now serializable.
authorJames Moger <james.moger@gmail.com>
Fri, 2 Sep 2011 21:44:53 +0000 (17:44 -0400)
committerJames Moger <james.moger@gmail.com>
Fri, 2 Sep 2011 21:44:53 +0000 (17:44 -0400)
docs/05_releases.mkd
src/com/iciql/Constants.java
src/com/iciql/TableInspector.java
tests/com/iciql/test/ModelsTest.java

index 9ccbbdeb019f2173f92a5f1d7824026d4a3b9646..474b1c3af7205c26d724d0eebe709a82c5d9800f 100644 (file)
@@ -6,6 +6,12 @@
 \r
 **%VERSION%** ([zip](http://code.google.com/p/iciql/downloads/detail?name=%ZIP%)|[jar](http://code.google.com/p/iciql/downloads/detail?name=%JAR%)) &nbsp; *released %BUILDDATE%*\r
 \r
+- generated models are now serializable with a default serial version id of 1\r
+\r
+### Older Releases\r
+\r
+**0.7.1** &nbsp; *released 2011-08-31*\r
+\r
 - api change release (API v7)\r
 - Undeprecated interface configuration\r
 - Interface configuration now maps ALL fields, not just public fields\r
@@ -16,8 +22,6 @@
 - Fix to default dialect when creating autoincrement columns\r
 - Added Db.open(url) method\r
 \r
-### Older Releases\r
-\r
 **0.7.0** &nbsp; *released 2011-08-17*\r
 \r
 - api change release (API v6)\r
index 247c39a1cef956ee8fddf263577c892fec020113..5d633939294423266b43a56d2bd28228cbfa6bae 100644 (file)
@@ -25,11 +25,11 @@ public class Constants {
 \r
        // The build script extracts this exact line so be careful editing it\r
        // and only use A-Z a-z 0-9 .-_ in the string.\r
-       public static final String VERSION = "0.7.1";\r
+       public static final String VERSION = "0.7.2-SNAPSHOT";\r
 \r
        // The build script extracts this exact line so be careful editing it\r
        // and only use A-Z a-z 0-9 .-_ in the string.\r
-       public static final String VERSION_DATE = "2011-08-31";\r
+       public static final String VERSION_DATE = "PENDING";\r
 \r
        // The build script extracts this exact line so be careful editing it\r
        // and only use A-Z a-z 0-9 .-_ in the string.\r
index 9b67ac3eab76e8e51327a948ceb7d5441a8e44c5..71eb16d77fc424612276c4c6bc29c1fdd132c2ca 100644 (file)
@@ -24,6 +24,7 @@ import static com.iciql.util.JdbcUtils.closeSilently;
 import static com.iciql.util.StringUtils.isNullOrEmpty;
 import static java.text.MessageFormat.format;
 
+import java.io.Serializable;
 import java.lang.reflect.Modifier;
 import java.sql.DatabaseMetaData;
 import java.sql.ResultSet;
@@ -190,6 +191,7 @@ public class TableInspector {
 
                // import statements
                Set<String> imports = Utils.newHashSet();
+               imports.add(Serializable.class.getCanonicalName());
                imports.add(IQSchema.class.getCanonicalName());
                imports.add(IQTable.class.getCanonicalName());
                imports.add(IQIndexes.class.getCanonicalName());
@@ -256,7 +258,9 @@ public class TableInspector {
 
                // class declaration
                String clazzName = ModelUtils.convertTableToClassName(table);
-               model.append(format("public class {0} '{'", clazzName)).append(eol);
+               model.append(format("public class {0} implements Serializable '{'", clazzName)).append(eol);
+               model.append(eol);
+               model.append("\tprivate static final long serialVersionUID = 1L;").append(eol);
                model.append(eol);
 
                // field declarations
index 39004376865ef55a556c5203bf142c18d660eb57..ceed7a96dfafbc5c09811e1d5f47bbfa7c782af4 100644 (file)
@@ -123,20 +123,20 @@ public class ModelsTest {
                // a poor test, but a start
                String dbName = IciqlSuite.getDatabaseEngineName(db);
                if (dbName.equals("H2")) {
-                       assertEquals(1475, models.get(0).length());
+                       assertEquals(1579, models.get(0).length());
                } else if (dbName.startsWith("HSQL")) {
                        // HSQL uses Double instead of Float
-                       assertEquals(1479, models.get(0).length());
+                       assertEquals(1583, models.get(0).length());
                } else if (dbName.equals("Apache Derby")) {
                        // Derby uses java.sql.Timestamp not java.util.Date
                        // Derby uses username as schema name
-                       assertEquals(1489, models.get(0).length());
+                       assertEquals(1593, models.get(0).length());
                } else if (dbName.equals("PostgreSQL")) {
-                       assertEquals(1531, models.get(0).length());
+                       assertEquals(1635, models.get(0).length());
                } else if (dbName.equals("MySQL")) {
                        // MySQL uses timestamp default values like
                        // 0000-00-00 00:00:00 and CURRENT_TIMESTAMP
-                       assertEquals(1561, models.get(0).length());
+                       assertEquals(1665, models.get(0).length());
                } else {
                        // unknown database
                        assertEquals(0, models.get(0).length());