You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/10/26 12:15:03 UTC

ignite git commit: IGNITE-1753 Added check for duplicate key types.

Repository: ignite
Updated Branches:
  refs/heads/ignite-1753-1282 8c1a71b28 -> 77f1f73ba


IGNITE-1753 Added check for duplicate key types.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/77f1f73b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/77f1f73b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/77f1f73b

Branch: refs/heads/ignite-1753-1282
Commit: 77f1f73ba5005716ad8574bd46bb1df50210d458
Parents: 8c1a71b
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Mon Oct 26 18:15:04 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Mon Oct 26 18:15:04 2015 +0700

----------------------------------------------------------------------
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |  8 ++++++--
 .../store/jdbc/CacheJdbcPojoStoreFactory.java   |  7 +++++--
 .../store/jdbc/CacheJdbcPojoStoreTypeField.java | 20 ++++++++++++++++----
 .../store/jdbc/CacheJdbcPojoStoreTest.java      |  2 +-
 4 files changed, 28 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/77f1f73b/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 6b3473a..fa718be 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
@@ -412,11 +412,15 @@ public class CacheJdbcPojoStore<K, V> implements CacheStore<K, V>, LifecycleAwar
 
         for (CacheJdbcPojoStoreType type : types) {
             if (!type.isKeepSerialized()) {
-                // TODO check for duplicates
-
                 String keyType = type.getKeyType();
+
+                if (typeMethods.containsKey(keyType))
+                    throw new CacheException("Found duplicate key type [cache=" + cacheName +
+                        ", keyType=" + keyType + "]");
+
                 typeMethods.put(keyType, new PojoMethodsCache(keyType, type.getKeyFields()));
 
+                // TODO fix if exists and merge getters if needed.
                 String valType = type.getValueType();
                 typeMethods.put(valType, new PojoMethodsCache(valType, type.getValueFields()));
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/77f1f73b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactory.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactory.java
index 6d8f8af..5545343 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreFactory.java
@@ -83,7 +83,7 @@ public class CacheJdbcPojoStoreFactory<K, V> implements Factory<CacheJdbcPojoSto
     @Override public CacheJdbcPojoStore<K, V> create() {
         CacheJdbcPojoStore<K, V> store = new CacheJdbcPojoStore<>();
 
-        // For backward compatibility create store configuration.
+        // For backward compatibility create and initialize store configuration.
         if (cfg == null) {
             cfg = new CacheJdbcPojoStoreConfiguration();
 
@@ -156,11 +156,14 @@ public class CacheJdbcPojoStoreFactory<K, V> implements Factory<CacheJdbcPojoSto
      * Set database dialect.
      *
      * @param dialect Database dialect.
+     * @return {@code This} for chaining.
      * @see CacheJdbcPojoStore#setDialect(JdbcDialect)
      */
     @Deprecated
-    public void setDialect(JdbcDialect dialect) {
+    public CacheJdbcPojoStoreFactory<K, V> setDialect(JdbcDialect dialect) {
         this.dialect = dialect;
+
+        return this;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/77f1f73b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTypeField.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTypeField.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTypeField.java
index 46a2647..ccd26b3 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTypeField.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTypeField.java
@@ -80,9 +80,12 @@ public class CacheJdbcPojoStoreTypeField implements Serializable {
 
     /**
      * @param dbType Column JDBC type in database.
+     * @return {@code this} for chaining.
      */
-    public void setDatabaseFieldType(int dbType) {
+    public CacheJdbcPojoStoreTypeField setDatabaseFieldType(int dbType) {
         this.dbFieldType = dbType;
+
+        return this;
     }
 
 
@@ -95,9 +98,12 @@ public class CacheJdbcPojoStoreTypeField implements Serializable {
 
     /**
      * @param dbName Column name in database.
+     * @return {@code this} for chaining.
      */
-    public void setDatabaseFieldName(String dbName) {
+    public CacheJdbcPojoStoreTypeField  setDatabaseFieldName(String dbName) {
         this.dbFieldName = dbName;
+
+        return this;
     }
 
     /**
@@ -109,9 +115,12 @@ public class CacheJdbcPojoStoreTypeField implements Serializable {
 
     /**
      * @param javaType Corresponding java type.
+     * @return {@code this} for chaining.
      */
-    public void setJavaFieldType(Class<?> javaType) {
+    public CacheJdbcPojoStoreTypeField setJavaFieldType(Class<?> javaType) {
         this.javaFieldType = javaType;
+
+        return this;
     }
 
     /**
@@ -123,9 +132,12 @@ public class CacheJdbcPojoStoreTypeField implements Serializable {
 
     /**
      * @param javaName Field name in java object.
+     * @return {@code this} for chaining.
      */
-    public void setJavaFieldName(String javaName) {
+    public CacheJdbcPojoStoreTypeField setJavaFieldName(String javaName) {
         this.javaFieldName = javaName;
+
+        return this;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/77f1f73b/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 b2d871c..11c0040 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
@@ -110,7 +110,7 @@ public class CacheJdbcPojoStoreTest extends GridAbstractCacheStoreSelfTest<Cache
             new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id"),
             new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ORG_ID", Integer.class, "orgId"),
             new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "NAME", String.class, "name"),
-            new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "SALARY", Integer.class, "salary"));
+            new CacheJdbcPojoStoreTypeField(Types.INTEGER, "SALARY", Integer.class, "salary"));
 
         storeTypes[3] = new CacheJdbcPojoStoreType();
         storeTypes[3].setDatabaseSchema("PUBLIC");