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");