Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E8A99185D1 for ; Fri, 21 Aug 2015 09:05:09 +0000 (UTC) Received: (qmail 69785 invoked by uid 500); 21 Aug 2015 09:05:09 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 69748 invoked by uid 500); 21 Aug 2015 09:05:09 -0000 Mailing-List: contact commits-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list commits@ignite.incubator.apache.org Received: (qmail 69739 invoked by uid 99); 21 Aug 2015 09:05:09 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Aug 2015 09:05:09 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 31B1ADFC19 for ; Fri, 21 Aug 2015 09:05:09 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.037 X-Spam-Level: * X-Spam-Status: No, score=1.037 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-0.764, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id LEdFDxL1K3RT for ; Fri, 21 Aug 2015 09:04:57 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with SMTP id 1C94E25EA3 for ; Fri, 21 Aug 2015 09:04:49 +0000 (UTC) Received: (qmail 66906 invoked by uid 99); 21 Aug 2015 09:04:47 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Aug 2015 09:04:47 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 518D2E7DFC; Fri, 21 Aug 2015 09:04:47 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: vozerov@apache.org To: commits@ignite.incubator.apache.org Date: Fri, 21 Aug 2015 09:05:03 -0000 Message-Id: <746123b359b04bbeb016fcfb2d7cda6f@git.apache.org> In-Reply-To: <779fb856b3ed494ea4064fff6d37aa26@git.apache.org> References: <779fb856b3ed494ea4064fff6d37aa26@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [18/44] incubator-ignite git commit: IGNITE-843: Fixed POJO store null value and made dialects serializable. IGNITE-843: Fixed POJO store null value and made dialects serializable. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/939afff9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/939afff9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/939afff9 Branch: refs/heads/ignite-gg-9615-1 Commit: 939afff97f007d53f1fdee11e974beca4b75bf2f Parents: c04fcea Author: Alexey Kuznetsov Authored: Thu Aug 20 16:53:18 2015 +0700 Committer: Alexey Kuznetsov Committed: Thu Aug 20 16:53:18 2015 +0700 ---------------------------------------------------------------------- .../store/jdbc/CacheAbstractJdbcStore.java | 45 ++++----- .../cache/store/jdbc/CacheJdbcPojoStore.java | 20 +++- .../store/jdbc/dialect/BasicJdbcDialect.java | 3 + .../cache/store/jdbc/dialect/DB2Dialect.java | 3 + .../cache/store/jdbc/dialect/H2Dialect.java | 3 + .../cache/store/jdbc/dialect/JdbcDialect.java | 3 +- .../cache/store/jdbc/dialect/MySQLDialect.java | 3 + .../cache/store/jdbc/dialect/OracleDialect.java | 3 + .../store/jdbc/dialect/SQLServerDialect.java | 3 + .../config/store/jdbc/ignite-type-metadata.xml | 8 ++ .../store/jdbc/CacheJdbcPojoStoreTest.java | 11 +- ...eJdbcStoreAbstractMultithreadedSelfTest.java | 16 +-- .../ignite/cache/store/jdbc/model/Person.java | 26 ++++- .../ignite/schema/model/PojoDescriptor.java | 6 +- .../parser/dialect/OracleMetadataDialect.java | 101 ++++++++++--------- .../ignite/schema/ui/SchemaImportApp.java | 36 +++++-- .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java | 17 ++-- 17 files changed, 198 insertions(+), 109 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java index b1e223b..b2be8c7 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java @@ -355,6 +355,11 @@ public abstract class CacheAbstractJdbcStore implements CacheStore, * @throws SQLException If a database access error occurs or this method is called. */ protected Object getColumnValue(ResultSet rs, int colIdx, Class type) throws SQLException { + Object val = rs.getObject(colIdx); + + if (val == null) + return null; + if (type == int.class) return rs.getInt(colIdx); @@ -364,7 +369,7 @@ public abstract class CacheAbstractJdbcStore implements CacheStore, if (type == double.class) return rs.getDouble(colIdx); - if (type == boolean.class) + if (type == boolean.class || type == Boolean.class) return rs.getBoolean(colIdx); if (type == byte.class) @@ -378,31 +383,23 @@ public abstract class CacheAbstractJdbcStore implements CacheStore, if (type == Integer.class || type == Long.class || type == Double.class || type == Byte.class || type == Short.class || type == Float.class) { - Object val = rs.getObject(colIdx); - - if (val != null) { - Number num = (Number)val; - - if (type == Integer.class) - return num.intValue(); - else if (type == Long.class) - return num.longValue(); - else if (type == Double.class) - return num.doubleValue(); - else if (type == Byte.class) - return num.byteValue(); - else if (type == Short.class) - return num.shortValue(); - else if (type == Float.class) - return num.floatValue(); - } - else - return EMPTY_COLUMN_VALUE; + Number num = (Number)val; + + if (type == Integer.class) + return num.intValue(); + else if (type == Long.class) + return num.longValue(); + else if (type == Double.class) + return num.doubleValue(); + else if (type == Byte.class) + return num.byteValue(); + else if (type == Short.class) + return num.shortValue(); + else if (type == Float.class) + return num.floatValue(); } - Object val = rs.getObject(colIdx); - - if (type == UUID.class && val != null) { + if (type == UUID.class) { if (val instanceof UUID) return val; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java index 7b78bda..428485f 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java @@ -167,15 +167,25 @@ public class CacheJdbcPojoStore extends CacheAbstractJdbcStore { Object obj = mc.ctor.newInstance(); for (CacheTypeFieldMetadata field : fields) { - Method setter = mc.setters.get(field.getJavaName()); + String fldJavaName = field.getJavaName(); + + Method setter = mc.setters.get(fldJavaName); if (setter == null) - throw new CacheLoaderException("Failed to find setter in POJO class [class name=" + typeName + - ", property=" + field.getJavaName() + "]"); + throw new IllegalStateException("Failed to find setter in POJO class [class name=" + typeName + + ", property=" + fldJavaName + "]"); + + String fldDbName = field.getDatabaseName(); - Integer colIdx = loadColIdxs.get(field.getDatabaseName()); + Integer colIdx = loadColIdxs.get(fldDbName); - setter.invoke(obj, getColumnValue(rs, colIdx, field.getJavaType())); + try { + setter.invoke(obj, getColumnValue(rs, colIdx, field.getJavaType())); + } + catch (Exception e) { + throw new IllegalStateException("Failed to set property in POJO class [class name=" + typeName + + ", property=" + fldJavaName + ", column=" + colIdx + ", db name=" + fldDbName + "]", e); + } } return (R)obj; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/BasicJdbcDialect.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/BasicJdbcDialect.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/BasicJdbcDialect.java index d0dd6f4..b43c7d5 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/BasicJdbcDialect.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/BasicJdbcDialect.java @@ -26,6 +26,9 @@ import java.util.*; * Basic implementation of dialect based on JDBC specification. */ public class BasicJdbcDialect implements JdbcDialect { + /** */ + private static final long serialVersionUID = 0L; + /** Default max query parameters count. */ protected static final int DFLT_MAX_PARAMS_CNT = 2000; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/DB2Dialect.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/DB2Dialect.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/DB2Dialect.java index fe1d876..2a08557 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/DB2Dialect.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/DB2Dialect.java @@ -25,6 +25,9 @@ import java.util.*; * A dialect compatible with the IBM DB2 database. */ public class DB2Dialect extends BasicJdbcDialect { + /** */ + private static final long serialVersionUID = 0L; + /** {@inheritDoc} */ @Override public boolean hasMerge() { return true; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/H2Dialect.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/H2Dialect.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/H2Dialect.java index a97e144..8091e1a 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/H2Dialect.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/H2Dialect.java @@ -25,6 +25,9 @@ import java.util.*; * A dialect compatible with the H2 database. */ public class H2Dialect extends BasicJdbcDialect { + /** */ + private static final long serialVersionUID = 0L; + /** {@inheritDoc} */ @Override public boolean hasMerge() { return true; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/JdbcDialect.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/JdbcDialect.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/JdbcDialect.java index be1cc67..32adcc4 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/JdbcDialect.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/JdbcDialect.java @@ -17,12 +17,13 @@ package org.apache.ignite.cache.store.jdbc.dialect; +import java.io.*; import java.util.*; /** * Represents a dialect of SQL implemented by a particular RDBMS. */ -public interface JdbcDialect { +public interface JdbcDialect extends Serializable { /** * Construct select count query. * http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/MySQLDialect.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/MySQLDialect.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/MySQLDialect.java index df16841..def2fe7 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/MySQLDialect.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/MySQLDialect.java @@ -25,6 +25,9 @@ import java.util.*; * A dialect compatible with the MySQL database. */ public class MySQLDialect extends BasicJdbcDialect { + /** */ + private static final long serialVersionUID = 0L; + /** {@inheritDoc} */ @Override public boolean hasMerge() { return true; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java index 351f10a..e155fb4 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/OracleDialect.java @@ -25,6 +25,9 @@ import java.util.*; * A dialect compatible with the Oracle database. */ public class OracleDialect extends BasicJdbcDialect { + /** */ + private static final long serialVersionUID = 0L; + /** {@inheritDoc} */ @Override public boolean hasMerge() { return true; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java index e781e98..7fdda6b 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/dialect/SQLServerDialect.java @@ -25,6 +25,9 @@ import java.util.*; * A dialect compatible with the Microsoft SQL Server database. */ public class SQLServerDialect extends BasicJdbcDialect { + /** */ + private static final long serialVersionUID = 0L; + /** {@inheritDoc} */ @Override public boolean hasMerge() { return true; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/test/config/store/jdbc/ignite-type-metadata.xml ---------------------------------------------------------------------- diff --git a/modules/core/src/test/config/store/jdbc/ignite-type-metadata.xml b/modules/core/src/test/config/store/jdbc/ignite-type-metadata.xml index 91d77cd..3e3d6e0 100644 --- a/modules/core/src/test/config/store/jdbc/ignite-type-metadata.xml +++ b/modules/core/src/test/config/store/jdbc/ignite-type-metadata.xml @@ -180,6 +180,14 @@ + http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTest.java index 182d3bc..b1efb0d 100644 --- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTest.java +++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTest.java @@ -188,7 +188,7 @@ public class CacheJdbcPojoStoreTest extends GridAbstractCacheStoreSelfTest 0) + prnComplexStmt.setInt(5, 1000 + i * 500); + else // Add person with null salary + prnComplexStmt.setNull(5, java.sql.Types.INTEGER); + prnComplexStmt.addBatch(); } @@ -274,7 +279,7 @@ public class CacheJdbcPojoStoreTest extends GridAbstractCacheStoreSelfTest cache = jcache(); @@ -273,17 +273,17 @@ public abstract class CacheJdbcStoreAbstractMultithreadedSelfTest cache = jcache(); try (Transaction tx = grid().transactions().txStart()) { - cache.put(new PersonKey(1), new Person(1, rnd.nextInt(), "Name" + 1)); - cache.put(new PersonKey(2), new Person(2, rnd.nextInt(), "Name" + 2)); - cache.put(new PersonKey(3), new Person(3, rnd.nextInt(), "Name" + 3)); + cache.put(new PersonKey(1), new Person(1, rnd.nextInt(), "Name" + 1, 1)); + cache.put(new PersonKey(2), new Person(2, rnd.nextInt(), "Name" + 2, 2)); + cache.put(new PersonKey(3), new Person(3, rnd.nextInt(), "Name" + 3, 3)); cache.get(new PersonKey(1)); cache.get(new PersonKey(4)); Map map = U.newHashMap(2); - map.put(new PersonKey(5), new Person(5, rnd.nextInt(), "Name" + 5)); - map.put(new PersonKey(6), new Person(6, rnd.nextInt(), "Name" + 6)); + map.put(new PersonKey(5), new Person(5, rnd.nextInt(), "Name" + 5, 5)); + map.put(new PersonKey(6), new Person(6, rnd.nextInt(), "Name" + 6, 6)); cache.putAll(map); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java index 1c4b9a7..95c83b9 100644 --- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java +++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java @@ -37,6 +37,9 @@ public class Person implements Serializable { /** Value for name. */ private String name; + /** Value for salary. */ + private Integer salary; + /** * Empty constructor. */ @@ -50,11 +53,13 @@ public class Person implements Serializable { public Person( Integer id, Integer orgId, - String name + String name, + Integer salary ) { this.id = id; this.orgId = orgId; this.name = name; + this.salary = salary; } /** @@ -111,6 +116,25 @@ public class Person implements Serializable { this.name = name; } + + /** + * Gets salary. + * + * @return Value for salary. + */ + public Integer getSalary() { + return salary; + } + + /** + * Sets salary. + * + * @param salary New value for salary. + */ + public void setSalary(Integer salary) { + this.salary = salary; + } + /** {@inheritDoc} */ @Override public boolean equals(Object o) { if (this == o) http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java ---------------------------------------------------------------------- diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java index 5e1da06..5a4a1fa 100644 --- a/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java +++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java @@ -504,7 +504,11 @@ public class PojoDescriptor { case TIMESTAMP: return java.sql.Timestamp.class; - // BINARY, VARBINARY, LONGVARBINARY, ARRAY, BLOB, CLOB, NCLOB, NULL, DATALINK + case CLOB: + case NCLOB: + return String.class; + + // BINARY, VARBINARY, LONGVARBINARY, ARRAY, BLOB, NULL, DATALINK // OTHER, JAVA_OBJECT, DISTINCT, STRUCT, REF, ROWID, SQLXML default: return Object.class; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java ---------------------------------------------------------------------- diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java index 860ff68..30dda5d 100644 --- a/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java +++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java @@ -87,73 +87,76 @@ public class OracleMetadataDialect extends DatabaseMetadataDialect { * @throws SQLException If failed to decode type. */ private int decodeType(ResultSet rs) throws SQLException { - switch (rs.getString(DATA_TYPE_IDX)) { - case "CHAR": - case "NCHAR": - return CHAR; + String type = rs.getString(DATA_TYPE_IDX); - case "VARCHAR2": - case "NVARCHAR2": - return VARCHAR; + if (type.startsWith("TIMESTAMP")) + return TIMESTAMP; + else { + switch (type) { + case "CHAR": + case "NCHAR": + return CHAR; - case "LONG": - return LONGVARCHAR; + case "VARCHAR2": + case "NVARCHAR2": + return VARCHAR; - case "LONG RAW": - return LONGVARBINARY; + case "LONG": + return LONGVARCHAR; - case "FLOAT": - return FLOAT; + case "LONG RAW": + return LONGVARBINARY; - case "NUMBER": - int precision = rs.getInt(DATA_PRECISION_IDX); - int scale = rs.getInt(DATA_SCALE_IDX); + case "FLOAT": + return FLOAT; - if (scale > 0) { - if (scale < 4 && precision < 19) - return FLOAT; + case "NUMBER": + int precision = rs.getInt(DATA_PRECISION_IDX); + int scale = rs.getInt(DATA_SCALE_IDX); - if (scale > 4 || precision > 19) - return DOUBLE; + if (scale > 0) { + if (scale < 4 && precision < 19) + return FLOAT; - return NUMERIC; - } - else { - if (precision < 1) - return INTEGER; + if (scale > 4 || precision > 19) + return DOUBLE; - if (precision < 2) - return BOOLEAN; + return NUMERIC; + } + else { + if (precision < 1) + return INTEGER; - if (precision < 4) - return TINYINT; + if (precision < 2) + return BOOLEAN; - if (precision < 6) - return SMALLINT; + if (precision < 4) + return TINYINT; - if (precision < 11) - return INTEGER; + if (precision < 6) + return SMALLINT; - if (precision < 20) - return BIGINT; + if (precision < 11) + return INTEGER; - return NUMERIC; - } + if (precision < 20) + return BIGINT; - case "DATE": - return DATE; + return NUMERIC; + } - case "TIMESTAMP": - return TIMESTAMP; + case "DATE": + return DATE; - case "BFILE": - case "BLOB": - return BLOB; + case "BFILE": + case "BLOB": + return BLOB; - case "CLOB": - case "NCLOB": - case "XMLTYPE": - return CLOB; + case "CLOB": + case "NCLOB": + case "XMLTYPE": + return CLOB; + } } return OTHER; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java ---------------------------------------------------------------------- diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java index 00d1bc8..7b9c220 100644 --- a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java +++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/SchemaImportApp.java @@ -109,7 +109,7 @@ public class SchemaImportApp extends Application { "jdbc:mysql://[host]:[port]/[database]", "root"), new Preset("mssql", "Microsoft SQL Server", "sqljdbc41.jar", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "jdbc:sqlserver://[host]:[port][;databaseName=database]", "sa"), - new Preset("posgresql", "PostgreSQL", "postgresql-9.3.jdbc4.jar", "org.postgresql.Driver", + new Preset("postgresql", "PostgreSQL", "postgresql-9.3.jdbc4.jar", "org.postgresql.Driver", "jdbc:postgresql://[host]:[port]/[database]", "sa"), new Preset("custom", "Custom server...", "custom-jdbc.jar", "org.custom.Driver", "jdbc:custom", "sa") }; @@ -444,6 +444,11 @@ public class SchemaImportApp extends Application { final boolean singleXml = xmlSingleFileCh.isSelected(); Runnable task = new Task() { + /** + * @param pojo POJO descriptor to check. + * @param selected Selected flag. + * @param msg Message to show in case of check failed. + */ private void checkEmpty(final PojoDescriptor pojo, boolean selected, String msg) { if (!selected) { Platform.runLater(new Runnable() { @@ -694,6 +699,8 @@ public class SchemaImportApp extends Application { /** * Create connection pane with controls. + * + * @return Pane with connection controls. */ private Pane createConnectionPane() { connPnl = paneEx(10, 10, 0, 10); @@ -1110,10 +1117,10 @@ public class SchemaImportApp extends Application { if (curPojo != null) { TableView.TableViewSelectionModel selMdl = pojosTbl.getSelectionModel(); - List idxs = new ArrayList<>(selMdl.getSelectedIndices()); + List selIndices = new ArrayList<>(selMdl.getSelectedIndices()); - if (idxs.size() > 1) { - for (Integer idx : idxs) { + if (selIndices.size() > 1) { + for (Integer idx : selIndices) { if (pojos.get(idx) != curPojo) selMdl.clearSelection(idx); } @@ -1242,6 +1249,7 @@ public class SchemaImportApp extends Application { * * @param key Property key. * @param dflt Default value. + * @return Property value as string. */ private String getStringProp(String key, String dflt) { String val = prefs.getProperty(key); @@ -1267,6 +1275,7 @@ public class SchemaImportApp extends Application { * * @param key Property key. * @param dflt Default value. + * @return Property value as int. */ private int getIntProp(String key, int dflt) { String val = prefs.getProperty(key); @@ -1297,6 +1306,7 @@ public class SchemaImportApp extends Application { * * @param key Property key. * @param dflt Default value. + * @return Property value as boolean. */ private boolean getBoolProp(String key, boolean dflt) { String val = prefs.getProperty(key); @@ -1563,7 +1573,11 @@ public class SchemaImportApp extends Application { /** Combo box. */ private final ComboBox comboBox; - /** Creates a ComboBox cell factory for use in TableColumn controls. */ + /** + * Creates a ComboBox cell factory for use in TableColumn controls. + * + * @return Cell factory for cell with java types combobox. + */ public static Callback, TableCell> cellFactory() { return new Callback, TableCell>() { @Override public TableCell call(TableColumn col) { @@ -1637,7 +1651,11 @@ public class SchemaImportApp extends Application { * Special table cell to select schema or table. */ private static class PojoDescriptorCell extends TableCell { - /** Creates a ComboBox cell factory for use in TableColumn controls. */ + /** + * Creates a ComboBox cell factory for use in TableColumn controls. + * + * @return Cell factory for schema / table selection. + */ public static Callback, TableCell> cellFactory() { return new Callback, TableCell>() { @Override public TableCell call(TableColumn col) { @@ -1694,7 +1712,11 @@ public class SchemaImportApp extends Application { * Special table cell to select "used" fields for code generation. */ private static class PojoFieldUseCell extends TableCell { - /** Creates a ComboBox cell factory for use in TableColumn controls. */ + /** + * Creates a ComboBox cell factory for use in TableColumn controls. + * + * @return Cell factory for used fields selection. + */ public static Callback, TableCell> cellFactory() { return new Callback, TableCell>() { @Override public TableCell call(TableColumn col) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/939afff9/modules/spring/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactorySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/spring/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactorySelfTest.java b/modules/spring/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactorySelfTest.java index c456339..faaf28f 100644 --- a/modules/spring/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactorySelfTest.java +++ b/modules/spring/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactorySelfTest.java @@ -57,17 +57,14 @@ public class CacheJdbcPojoStoreFactorySelfTest extends GridCommonAbstractTest { * @throws Exception If failed. */ public void testSerializable() throws Exception { - GridTestUtils.assertThrows(log, new Callable() { - @Override public Object call() throws Exception { - try (Ignite ignite = Ignition.start("modules/spring/src/test/config/node.xml")) { - try (IgniteCache cache = ignite.getOrCreateCache(cacheConfigurationH2Dialect())) { - checkStore(cache, JdbcDataSource.class); - } - } - - return null; + try (Ignite ignite = Ignition.start("modules/spring/src/test/config/node.xml")) { + try (IgniteCache cache = ignite.getOrCreateCache(cacheConfigurationH2Dialect())) { + checkStore(cache, JdbcDataSource.class); } - }, CacheException.class, "Failed to validate cache configuration. Cache store factory is not serializable."); + } + catch (Exception e) { + fail("Failed to validate cache configuration. Cache store factory is not serializable."); + } } /**