Repository: ignite Updated Branches: refs/heads/ignite-1753-1282 8d325a4c4 -> 852e54c06
http://git-wip-us.apache.org/repos/asf/ignite/blob/2961aaa7/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 deleted file mode 100644 index ccd26b3..0000000 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreTypeField.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.cache.store.jdbc; - -import java.io.Serializable; -import org.apache.ignite.internal.util.typedef.internal.S; - -/** - * Description of how field declared in database and in cache. - */ -public class CacheJdbcPojoStoreTypeField implements Serializable { - /** */ - private static final long serialVersionUID = 0L; - - /** Field JDBC type in database. */ - private int dbFieldType; - - /** Field name in database. */ - private String dbFieldName; - - /** Field java type. */ - private Class<?> javaFieldType; - - /** Field name in java object. */ - private String javaFieldName; - - /** - * Default constructor. - */ - public CacheJdbcPojoStoreTypeField() { - // No-op. - } - - /** - * Full constructor. - * - * @param dbFieldType Field JDBC type in database. - * @param dbFieldName Field name in database. - * @param javaFieldType Field java type. - * @param javaFieldName Field name in java object. - */ - public CacheJdbcPojoStoreTypeField(int dbFieldType, String dbFieldName, Class<?> javaFieldType, String javaFieldName) { - this.dbFieldType = dbFieldType; - this.dbFieldName = dbFieldName; - this.javaFieldType = javaFieldType; - this.javaFieldName = javaFieldName; - } - - /** - * Copy constructor. - * - * @param field Field to copy. - */ - public CacheJdbcPojoStoreTypeField(CacheJdbcPojoStoreTypeField field) { - this(field.getDatabaseFieldType(), field.getDatabaseFieldName(), - field.getJavaFieldType(), field.getJavaFieldName()); - } - - /** - * @return Column JDBC type in database. - */ - public int getDatabaseFieldType() { - return dbFieldType; - } - - /** - * @param dbType Column JDBC type in database. - * @return {@code this} for chaining. - */ - public CacheJdbcPojoStoreTypeField setDatabaseFieldType(int dbType) { - this.dbFieldType = dbType; - - return this; - } - - - /** - * @return Column name in database. - */ - public String getDatabaseFieldName() { - return dbFieldName; - } - - /** - * @param dbName Column name in database. - * @return {@code this} for chaining. - */ - public CacheJdbcPojoStoreTypeField setDatabaseFieldName(String dbName) { - this.dbFieldName = dbName; - - return this; - } - - /** - * @return Field java type. - */ - public Class<?> getJavaFieldType() { - return javaFieldType; - } - - /** - * @param javaType Corresponding java type. - * @return {@code this} for chaining. - */ - public CacheJdbcPojoStoreTypeField setJavaFieldType(Class<?> javaType) { - this.javaFieldType = javaType; - - return this; - } - - /** - * @return Field name in java object. - */ - public String getJavaFieldName() { - return javaFieldName; - } - - /** - * @param javaName Field name in java object. - * @return {@code this} for chaining. - */ - public CacheJdbcPojoStoreTypeField setJavaFieldName(String javaName) { - this.javaFieldName = javaName; - - return this; - } - - /** {@inheritDoc} */ - @Override public boolean equals(Object o) { - if (this == o) - return true; - - if (!(o instanceof CacheJdbcPojoStoreTypeField)) - return false; - - CacheJdbcPojoStoreTypeField that = (CacheJdbcPojoStoreTypeField)o; - - return dbFieldType == that.dbFieldType && dbFieldName.equals(that.dbFieldName) && - javaFieldType == that.javaFieldType && javaFieldName.equals(that.javaFieldName); - } - - /** {@inheritDoc} */ - @Override public int hashCode() { - int res = dbFieldType; - res = 31 * res + dbFieldName.hashCode(); - - res = 31 * res + javaFieldType.hashCode(); - res = 31 * res + javaFieldName.hashCode(); - - return res; - } - - /** {@inheritDoc} */ - @Override public String toString() { - return S.toString(CacheJdbcPojoStoreTypeField.class, this); - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/2961aaa7/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcType.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcType.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcType.java new file mode 100644 index 0000000..cb08fc1 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcType.java @@ -0,0 +1,272 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.cache.store.jdbc; + +import java.io.Serializable; +import org.apache.ignite.internal.util.tostring.GridToStringInclude; + +/** + * Description for type that could be stored into database by store. + */ +public class JdbcType implements Serializable { + /** */ + private static final long serialVersionUID = 0L; + + /** Cache name. */ + private String cacheName; + + /** Schema name in database. */ + private String dbSchema; + + /** Table name in database. */ + private String dbTbl; + + /** Key class used to store key in cache. */ + private String keyType; + + /** List of fields descriptors for key object. */ + @GridToStringInclude + private JdbcTypeField[] keyFields; + + /** Value class used to store value in cache. */ + private String valType; + + /** List of fields descriptors for value object. */ + @GridToStringInclude + private JdbcTypeField[] valFields; + + /** If {@code true} object is stored as IgniteObject. */ + private boolean keepSerialized; + + /** + * Empty constructor (all values are initialized to their defaults). + */ + public JdbcType() { + /* No-op. */ + } + + /** + * Copy constructor. + * + * @param type Type to copy. + */ + public JdbcType(JdbcType type) { + cacheName = type.getCacheName(); + + dbSchema = type.getDatabaseSchema(); + dbTbl = type.getDatabaseTable(); + + keyType = type.getKeyType(); + keyFields = type.getKeyFields(); + + valType = type.getValueType(); + valFields = type.getValueFields(); + + keepSerialized = type.isKeepSerialized(); + } + + /** + * Gets associated cache name. + * + * @return Сache name. + */ + public String getCacheName() { + return cacheName; + } + + /** + * Sets associated cache name. + * + * @param cacheName Cache name. + */ + public JdbcType setCacheName(String cacheName) { + this.cacheName = cacheName; + + return this; + } + + /** + * Gets database schema name. + * + * @return Schema name. + */ + public String getDatabaseSchema() { + return dbSchema; + } + + /** + * Sets database schema name. + * + * @param dbSchema Schema name. + */ + public JdbcType setDatabaseSchema(String dbSchema) { + this.dbSchema = dbSchema; + + return this; + } + + /** + * Gets table name in database. + * + * @return Table name in database. + */ + public String getDatabaseTable() { + return dbTbl; + } + + /** + * Table name in database. + * + * @param dbTbl Table name in database. + * @return {@code this} for chaining. + */ + public JdbcType setDatabaseTable(String dbTbl) { + this.dbTbl = dbTbl; + + return this; + } + + /** + * Gets key type. + * + * @return Key type. + */ + public String getKeyType() { + return keyType; + } + + /** + * Sets key type. + * + * @param keyType Key type. + * @return {@code this} for chaining. + */ + public JdbcType setKeyType(String keyType) { + this.keyType = keyType; + + return this; + } + + /** + * Sets key type. + * + * @param cls Key type class. + * @return {@code this} for chaining. + */ + public JdbcType setKeyType(Class<?> cls) { + setKeyType(cls.getName()); + + return this; + } + + /** + * Gets value type. + * + * @return Key type. + */ + public String getValueType() { + return valType; + } + + /** + * Sets value type. + * + * @param valType Value type. + * @return {@code this} for chaining. + */ + public JdbcType setValueType(String valType) { + this.valType = valType; + + return this; + } + + /** + * Sets value type. + * + * @param cls Value type class. + * @return {@code this} for chaining. + */ + public JdbcType setValueType(Class<?> cls) { + setValueType(cls.getName()); + + return this; + } + + /** + * Gets optional persistent key fields (needed only if {@link CacheJdbcPojoStore} is used). + * + * @return Persistent key fields. + */ + public JdbcTypeField[] getKeyFields() { + return keyFields; + } + + /** + * Sets optional persistent key fields (needed only if {@link CacheJdbcPojoStore} is used). + * + * @param keyFields Persistent key fields. + * @return {@code this} for chaining. + */ + public JdbcType setKeyFields(JdbcTypeField... keyFields) { + this.keyFields = keyFields; + + return this; + } + + /** + * Gets optional persistent value fields (needed only if {@link CacheJdbcPojoStore} is used). + * + * @return Persistent value fields. + */ + public JdbcTypeField[] getValueFields() { + return valFields; + } + + /** + * Sets optional persistent value fields (needed only if {@link CacheJdbcPojoStore} is used). + * + * @param valFields Persistent value fields. + * @return {@code this} for chaining. + */ + public JdbcType setValueFields(JdbcTypeField... valFields) { + this.valFields = valFields; + + return this; + } + + /** + * Gets how value stored in cache. + * + * @return {@code true} if object is stored as IgniteObject. + */ + public boolean isKeepSerialized() { + return keepSerialized; + } + + /** + * Sets how value stored in cache. + * + * @param keepSerialized {@code true} if object is stored as IgniteObject. + * @return {@code this} for chaining. + */ + public JdbcType setKeepSerialized(boolean keepSerialized) { + this.keepSerialized = keepSerialized; + + return this; + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/2961aaa7/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeField.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeField.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeField.java new file mode 100644 index 0000000..ec8c18d --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeField.java @@ -0,0 +1,172 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.cache.store.jdbc; + +import java.io.Serializable; +import org.apache.ignite.internal.util.typedef.internal.S; + +/** + * Description of how field declared in database and in cache. + */ +public class JdbcTypeField implements Serializable { + /** */ + private static final long serialVersionUID = 0L; + + /** Field JDBC type in database. */ + private int dbFieldType; + + /** Field name in database. */ + private String dbFieldName; + + /** Field java type. */ + private Class<?> javaFieldType; + + /** Field name in java object. */ + private String javaFieldName; + + /** + * Default constructor. + */ + public JdbcTypeField() { + // No-op. + } + + /** + * Full constructor. + * + * @param dbFieldType Field JDBC type in database. + * @param dbFieldName Field name in database. + * @param javaFieldType Field java type. + * @param javaFieldName Field name in java object. + */ + public JdbcTypeField(int dbFieldType, String dbFieldName, Class<?> javaFieldType, String javaFieldName) { + this.dbFieldType = dbFieldType; + this.dbFieldName = dbFieldName; + this.javaFieldType = javaFieldType; + this.javaFieldName = javaFieldName; + } + + /** + * Copy constructor. + * + * @param field Field to copy. + */ + public JdbcTypeField(JdbcTypeField field) { + this(field.getDatabaseFieldType(), field.getDatabaseFieldName(), + field.getJavaFieldType(), field.getJavaFieldName()); + } + + /** + * @return Column JDBC type in database. + */ + public int getDatabaseFieldType() { + return dbFieldType; + } + + /** + * @param dbType Column JDBC type in database. + * @return {@code this} for chaining. + */ + public JdbcTypeField setDatabaseFieldType(int dbType) { + this.dbFieldType = dbType; + + return this; + } + + + /** + * @return Column name in database. + */ + public String getDatabaseFieldName() { + return dbFieldName; + } + + /** + * @param dbName Column name in database. + * @return {@code this} for chaining. + */ + public JdbcTypeField setDatabaseFieldName(String dbName) { + this.dbFieldName = dbName; + + return this; + } + + /** + * @return Field java type. + */ + public Class<?> getJavaFieldType() { + return javaFieldType; + } + + /** + * @param javaType Corresponding java type. + * @return {@code this} for chaining. + */ + public JdbcTypeField setJavaFieldType(Class<?> javaType) { + this.javaFieldType = javaType; + + return this; + } + + /** + * @return Field name in java object. + */ + public String getJavaFieldName() { + return javaFieldName; + } + + /** + * @param javaName Field name in java object. + * @return {@code this} for chaining. + */ + public JdbcTypeField setJavaFieldName(String javaName) { + this.javaFieldName = javaName; + + return this; + } + + /** {@inheritDoc} */ + @Override public boolean equals(Object o) { + if (this == o) + return true; + + if (!(o instanceof JdbcTypeField)) + return false; + + JdbcTypeField that = (JdbcTypeField)o; + + return dbFieldType == that.dbFieldType && dbFieldName.equals(that.dbFieldName) && + javaFieldType == that.javaFieldType && javaFieldName.equals(that.javaFieldName); + } + + /** {@inheritDoc} */ + @Override public int hashCode() { + int res = dbFieldType; + res = 31 * res + dbFieldName.hashCode(); + + res = 31 * res + javaFieldType.hashCode(); + res = 31 * res + javaFieldName.hashCode(); + + return res; + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(JdbcTypeField.class, this); + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/2961aaa7/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreSelfTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreSelfTest.java index 9f50507..7566572 100644 --- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStoreSelfTest.java @@ -20,7 +20,6 @@ package org.apache.ignite.cache.store.jdbc; import java.sql.Types; import org.apache.ignite.marshaller.Marshaller; import org.apache.ignite.marshaller.optimized.OptimizedMarshaller; -import org.apache.ignite.marshaller.portable.PortableMarshaller; /** * Class for {@code PojoCacheStore} tests. @@ -28,36 +27,34 @@ import org.apache.ignite.marshaller.portable.PortableMarshaller; public class CacheJdbcPojoStoreSelfTest extends CacheJdbcStoreAbstractSelfTest { /** {@inheritDoc} */ @Override protected Marshaller marshaller(){ - OptimizedMarshaller marsh = new OptimizedMarshaller(); - - return marsh; + return new OptimizedMarshaller(); } /** {@inheritDoc} */ - @Override protected CacheJdbcPojoStoreType[] storeTypes() { - CacheJdbcPojoStoreType[] storeTypes = new CacheJdbcPojoStoreType[2]; + @Override protected JdbcType[] storeTypes() { + JdbcType[] storeTypes = new JdbcType[2]; - storeTypes[0] = new CacheJdbcPojoStoreType(); + storeTypes[0] = new JdbcType(); storeTypes[0].setDatabaseSchema("PUBLIC"); storeTypes[0].setDatabaseTable("ORGANIZATION"); storeTypes[0].setKeyType("org.apache.ignite.cache.store.jdbc.model.OrganizationKey"); - storeTypes[0].setKeyFields(new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id")); + storeTypes[0].setKeyFields(new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id")); storeTypes[0].setValueType("org.apache.ignite.cache.store.jdbc.model.Organization"); storeTypes[0].setValueFields( - new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id"), - new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "NAME", String.class, "name"), - new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "CITY", String.class, "city")); + new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id"), + new JdbcTypeField(Types.VARCHAR, "NAME", String.class, "name"), + new JdbcTypeField(Types.VARCHAR, "CITY", String.class, "city")); - storeTypes[1] = new CacheJdbcPojoStoreType(); + storeTypes[1] = new JdbcType(); storeTypes[1].setDatabaseSchema("PUBLIC"); storeTypes[1].setDatabaseTable("PERSON"); storeTypes[1].setKeyType("org.apache.ignite.cache.store.jdbc.model.PersonKey"); - storeTypes[1].setKeyFields(new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id")); + storeTypes[1].setKeyFields(new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id")); storeTypes[1].setValueType("org.apache.ignite.cache.store.jdbc.model.Person"); storeTypes[1].setValueFields( - 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 JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id"), + new JdbcTypeField(Types.INTEGER, "ORG_ID", Integer.class, "orgId"), + new JdbcTypeField(Types.VARCHAR, "NAME", String.class, "name")); return storeTypes; } http://git-wip-us.apache.org/repos/asf/ignite/blob/2961aaa7/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 11c0040..8c4f7d4 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 @@ -70,74 +70,74 @@ public class CacheJdbcPojoStoreTest extends GridAbstractCacheStoreSelfTest<Cache CacheJdbcPojoStoreConfiguration storeCfg = new CacheJdbcPojoStoreConfiguration(); storeCfg.setDialect(new H2Dialect()); - CacheJdbcPojoStoreType[] storeTypes = new CacheJdbcPojoStoreType[6]; + JdbcType[] storeTypes = new JdbcType[6]; - storeTypes[0] = new CacheJdbcPojoStoreType(); + storeTypes[0] = new JdbcType(); storeTypes[0].setDatabaseSchema("PUBLIC"); storeTypes[0].setDatabaseTable("ORGANIZATION"); storeTypes[0].setKeyType("org.apache.ignite.cache.store.jdbc.model.OrganizationKey"); - storeTypes[0].setKeyFields(new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id")); + storeTypes[0].setKeyFields(new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id")); storeTypes[0].setValueType("org.apache.ignite.cache.store.jdbc.model.Organization"); storeTypes[0].setValueFields( - new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id"), - new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "NAME", String.class, "name"), - new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "CITY", String.class, "city")); + new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id"), + new JdbcTypeField(Types.VARCHAR, "NAME", String.class, "name"), + new JdbcTypeField(Types.VARCHAR, "CITY", String.class, "city")); - storeTypes[1] = new CacheJdbcPojoStoreType(); + storeTypes[1] = new JdbcType(); storeTypes[1].setDatabaseSchema("PUBLIC"); storeTypes[1].setDatabaseTable("PERSON"); storeTypes[1].setKeyType("org.apache.ignite.cache.store.jdbc.model.PersonKey"); - storeTypes[1].setKeyFields(new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id")); + storeTypes[1].setKeyFields(new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id")); storeTypes[1].setValueType("org.apache.ignite.cache.store.jdbc.model.Person"); storeTypes[1].setValueFields( - 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 JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id"), + new JdbcTypeField(Types.INTEGER, "ORG_ID", Integer.class, "orgId"), + new JdbcTypeField(Types.VARCHAR, "NAME", String.class, "name")); - storeTypes[2] = new CacheJdbcPojoStoreType(); + storeTypes[2] = new JdbcType(); storeTypes[2].setDatabaseSchema("PUBLIC"); storeTypes[2].setDatabaseTable("PERSON_COMPLEX"); storeTypes[2].setKeyType("org.apache.ignite.cache.store.jdbc.model.PersonComplexKey"); storeTypes[2].setKeyFields( - new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", int.class, "id"), - new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ORG_ID", int.class, "orgId"), - new CacheJdbcPojoStoreTypeField(Types.INTEGER, "CITY_ID", int.class, "cityId")); + new JdbcTypeField(Types.INTEGER, "ID", int.class, "id"), + new JdbcTypeField(Types.INTEGER, "ORG_ID", int.class, "orgId"), + new JdbcTypeField(Types.INTEGER, "CITY_ID", int.class, "cityId")); storeTypes[2].setValueType("org.apache.ignite.cache.store.jdbc.model.Person"); storeTypes[2].setValueFields( - 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.INTEGER, "SALARY", Integer.class, "salary")); + new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id"), + new JdbcTypeField(Types.INTEGER, "ORG_ID", Integer.class, "orgId"), + new JdbcTypeField(Types.VARCHAR, "NAME", String.class, "name"), + new JdbcTypeField(Types.INTEGER, "SALARY", Integer.class, "salary")); - storeTypes[3] = new CacheJdbcPojoStoreType(); + storeTypes[3] = new JdbcType(); storeTypes[3].setDatabaseSchema("PUBLIC"); storeTypes[3].setDatabaseTable("TIMESTAMP_ENTRIES"); storeTypes[3].setKeyType("java.sql.Timestamp"); - storeTypes[3].setKeyFields(new CacheJdbcPojoStoreTypeField(Types.TIMESTAMP, "KEY", Timestamp.class, null)); + storeTypes[3].setKeyFields(new JdbcTypeField(Types.TIMESTAMP, "KEY", Timestamp.class, null)); storeTypes[3].setValueType("java.lang.Integer"); - storeTypes[3].setValueFields(new CacheJdbcPojoStoreTypeField(Types.INTEGER, "VAL", Integer.class, null)); + storeTypes[3].setValueFields(new JdbcTypeField(Types.INTEGER, "VAL", Integer.class, null)); - storeTypes[4] = new CacheJdbcPojoStoreType(); + storeTypes[4] = new JdbcType(); storeTypes[4].setDatabaseSchema("PUBLIC"); storeTypes[4].setDatabaseTable("STRING_ENTRIES"); storeTypes[4].setKeyType("java.lang.String"); - storeTypes[4].setKeyFields(new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "KEY", String.class, null)); + storeTypes[4].setKeyFields(new JdbcTypeField(Types.VARCHAR, "KEY", String.class, null)); storeTypes[4].setValueType("java.lang.String"); - storeTypes[4].setValueFields(new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "VAL", Integer.class, null)); + storeTypes[4].setValueFields(new JdbcTypeField(Types.VARCHAR, "VAL", Integer.class, null)); - storeTypes[5] = new CacheJdbcPojoStoreType(); + storeTypes[5] = new JdbcType(); storeTypes[5].setDatabaseSchema("PUBLIC"); storeTypes[5].setDatabaseTable("UUID_ENTRIES"); storeTypes[5].setKeyType("java.util.UUID"); - storeTypes[5].setKeyFields(new CacheJdbcPojoStoreTypeField(Types.BINARY, "KEY", UUID.class, null)); + storeTypes[5].setKeyFields(new JdbcTypeField(Types.BINARY, "KEY", UUID.class, null)); storeTypes[5].setValueType("java.util.UUID"); - storeTypes[5].setValueFields(new CacheJdbcPojoStoreTypeField(Types.BINARY, "VAL", UUID.class, null)); + storeTypes[5].setValueFields(new JdbcTypeField(Types.BINARY, "VAL", UUID.class, null)); storeCfg.setTypes(storeTypes); http://git-wip-us.apache.org/repos/asf/ignite/blob/2961aaa7/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPortableStoreSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPortableStoreSelfTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPortableStoreSelfTest.java index 4b533b2..299b537 100644 --- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPortableStoreSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPortableStoreSelfTest.java @@ -17,29 +17,11 @@ package org.apache.ignite.cache.store.jdbc; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.sql.Statement; import java.sql.Types; import java.util.ArrayList; import java.util.Collection; -import org.apache.ignite.IgniteCache; -import org.apache.ignite.cache.store.jdbc.dialect.H2Dialect; -import org.apache.ignite.configuration.CacheConfiguration; -import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.marshaller.Marshaller; import org.apache.ignite.marshaller.portable.PortableMarshaller; -import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; -import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; -import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; -import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; -import org.h2.jdbcx.JdbcConnectionPool; - -import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC; -import static org.apache.ignite.cache.CacheMode.PARTITIONED; /** * Class for {@code PojoCacheStore} tests. @@ -61,32 +43,32 @@ public class CacheJdbcPortableStoreSelfTest extends CacheJdbcStoreAbstractSelfTe } /** {@inheritDoc} */ - @Override protected CacheJdbcPojoStoreType[] storeTypes() { - CacheJdbcPojoStoreType[] storeTypes = new CacheJdbcPojoStoreType[2]; + @Override protected JdbcType[] storeTypes() { + JdbcType[] storeTypes = new JdbcType[2]; - storeTypes[0] = new CacheJdbcPojoStoreType(); + storeTypes[0] = new JdbcType(); storeTypes[0].setKeepSerialized(true); storeTypes[0].setDatabaseSchema("PUBLIC"); storeTypes[0].setDatabaseTable("ORGANIZATION"); storeTypes[0].setKeyType("org.apache.ignite.cache.store.jdbc.model.OrganizationKey"); - storeTypes[0].setKeyFields(new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id")); + storeTypes[0].setKeyFields(new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id")); storeTypes[0].setValueType("org.apache.ignite.cache.store.jdbc.model.Organization"); storeTypes[0].setValueFields( - new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id"), - new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "NAME", String.class, "name"), - new CacheJdbcPojoStoreTypeField(Types.VARCHAR, "CITY", String.class, "city")); + new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id"), + new JdbcTypeField(Types.VARCHAR, "NAME", String.class, "name"), + new JdbcTypeField(Types.VARCHAR, "CITY", String.class, "city")); - storeTypes[1] = new CacheJdbcPojoStoreType(); + storeTypes[1] = new JdbcType(); storeTypes[1].setKeepSerialized(true); storeTypes[1].setDatabaseSchema("PUBLIC"); storeTypes[1].setDatabaseTable("PERSON"); storeTypes[1].setKeyType("org.apache.ignite.cache.store.jdbc.model.PersonKey"); - storeTypes[1].setKeyFields(new CacheJdbcPojoStoreTypeField(Types.INTEGER, "ID", Integer.class, "id")); + storeTypes[1].setKeyFields(new JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id")); storeTypes[1].setValueType("org.apache.ignite.cache.store.jdbc.model.Person"); storeTypes[1].setValueFields( - 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 JdbcTypeField(Types.INTEGER, "ID", Integer.class, "id"), + new JdbcTypeField(Types.INTEGER, "ORG_ID", Integer.class, "orgId"), + new JdbcTypeField(Types.VARCHAR, "NAME", String.class, "name")); return storeTypes; } http://git-wip-us.apache.org/repos/asf/ignite/blob/2961aaa7/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractMultithreadedSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractMultithreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractMultithreadedSelfTest.java index 42cc4c9..4c4bd58 100644 --- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractMultithreadedSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractMultithreadedSelfTest.java @@ -60,7 +60,7 @@ import static org.apache.ignite.testframework.GridTestUtils.runMultiThreadedAsyn /** * */ -public abstract class CacheJdbcStoreAbstractMultithreadedSelfTest<T extends CacheJdbcPojoStore> +public abstract class CacheJdbcStoreAbstractMultithreadedSelfTest<T extends CacheAbstractJdbcStore> extends GridCommonAbstractTest { /** Default config with mapping. */ private static final String DFLT_MAPPING_CONFIG = "modules/core/src/test/config/store/jdbc/ignite-type-metadata.xml"; @@ -78,7 +78,7 @@ public abstract class CacheJdbcStoreAbstractMultithreadedSelfTest<T extends Cach private static final int BATCH_CNT = 2000; /** Cache store. */ - protected static CacheJdbcPojoStore store; + protected static CacheAbstractJdbcStore store; /** {@inheritDoc} */ @Override protected void beforeTestsStarted() throws Exception { http://git-wip-us.apache.org/repos/asf/ignite/blob/2961aaa7/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractSelfTest.java index c083e93..2b07b0a 100644 --- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/CacheJdbcStoreAbstractSelfTest.java @@ -22,7 +22,6 @@ import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; -import java.sql.Types; import org.apache.ignite.IgniteCache; import org.apache.ignite.cache.store.jdbc.dialect.H2Dialect; import org.apache.ignite.configuration.CacheConfiguration; @@ -30,7 +29,6 @@ import org.apache.ignite.configuration.ConnectorConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.marshaller.Marshaller; -import org.apache.ignite.marshaller.portable.PortableMarshaller; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; @@ -110,6 +108,9 @@ public abstract class CacheJdbcStoreAbstractSelfTest extends GridCommonAbstractT return cfg; } + /** + * @return Marshaller to be used in test. + */ protected abstract Marshaller marshaller(); /** */ @@ -123,7 +124,10 @@ public abstract class CacheJdbcStoreAbstractSelfTest extends GridCommonAbstractT return storeCfg; } - protected abstract CacheJdbcPojoStoreType[] storeTypes(); + /** + * @return Types to be used in test. + */ + protected abstract JdbcType[] storeTypes(); /** */ protected CacheConfiguration cacheConfiguration() throws Exception { @@ -133,9 +137,8 @@ public abstract class CacheJdbcStoreAbstractSelfTest extends GridCommonAbstractT cc.setAtomicityMode(ATOMIC); cc.setSwapEnabled(false); cc.setWriteBehindEnabled(false); - cc.setNearConfiguration(null); - CacheJdbcPojoStoreFactory<Object, Object> storeFactory = new CacheJdbcPojoStoreFactory<Object, Object>(); + CacheJdbcPojoStoreFactory<Object, Object> storeFactory = new CacheJdbcPojoStoreFactory<>(); storeFactory.setConfiguration(storeConfiguration()); storeFactory.setDataSource(JdbcConnectionPool.create(DFLT_CONN_URL, "sa", "")); // H2 DataSource @@ -147,6 +150,11 @@ public abstract class CacheJdbcStoreAbstractSelfTest extends GridCommonAbstractT return cc; } + /** + * Fill in-memory database with sample data. + * + * @throws SQLException In case of filling database with sample data failed. + */ protected void fillSampleDatabase() throws SQLException { Connection conn = getConnection();