You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/12/15 09:19:32 UTC
ignite git commit: IGNITE-2100: Fix to AffinityKey class.
Repository: ignite
Updated Branches:
refs/heads/ignite-2100 060e09498 -> 972d5a9bd
IGNITE-2100: Fix to AffinityKey class.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/972d5a9b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/972d5a9b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/972d5a9b
Branch: refs/heads/ignite-2100
Commit: 972d5a9bd978bc1410c1a40c43e7fecab5f9b8f4
Parents: 060e094
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Mon Dec 14 16:57:40 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Mon Dec 14 16:57:40 2015 +0300
----------------------------------------------------------------------
.../ignite/cache/affinity/AffinityKey.java | 2 +-
.../ignite/internal/binary/BinaryContext.java | 21 ++++++++++++++++++--
2 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/972d5a9b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java
index ee6321c..c745ed8 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java
@@ -64,6 +64,7 @@ public class AffinityKey<K> implements Externalizable {
private K key;
/** Affinity key. */
+ @AffinityKeyMapped
@GridToStringInclude
private Object affKey;
@@ -126,7 +127,6 @@ public class AffinityKey<K> implements Externalizable {
*
* @return Affinity key to use for affinity mapping.
*/
- @AffinityKeyMapped
@SuppressWarnings({"unchecked"})
public <T> T affinityKey() {
A.notNull(key, "key");
http://git-wip-us.apache.org/repos/asf/ignite/blob/972d5a9b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
index 9cd8a94..f227238 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
@@ -26,6 +26,7 @@ import org.apache.ignite.binary.BinarySerializer;
import org.apache.ignite.binary.BinaryType;
import org.apache.ignite.binary.BinaryTypeConfiguration;
import org.apache.ignite.cache.CacheKeyConfiguration;
+import org.apache.ignite.cache.affinity.AffinityKey;
import org.apache.ignite.cache.affinity.AffinityKeyMapped;
import org.apache.ignite.configuration.BinaryConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
@@ -205,14 +206,17 @@ public class BinaryContext implements Externalizable {
registerPredefinedType(Timestamp[].class, GridBinaryMarshaller.TIMESTAMP_ARR);
registerPredefinedType(Object[].class, GridBinaryMarshaller.OBJ_ARR);
+ // Special collections.
registerPredefinedType(ArrayList.class, 0);
registerPredefinedType(LinkedList.class, 0);
registerPredefinedType(HashSet.class, 0);
registerPredefinedType(LinkedHashSet.class, 0);
-
registerPredefinedType(HashMap.class, 0);
registerPredefinedType(LinkedHashMap.class, 0);
+ // Classes with overriden default serialziation flag.
+ registerPredefinedType(AffinityKey.class, 0, false);
+
registerPredefinedType(GridMapEntry.class, 60);
registerPredefinedType(IgniteBiTuple.class, 61);
registerPredefinedType(T2.class, 62);
@@ -719,8 +723,21 @@ public class BinaryContext implements Externalizable {
* @return GridBinaryClassDescriptor.
*/
public BinaryClassDescriptor registerPredefinedType(Class<?> cls, int id) {
+ return registerPredefinedType(cls, id, true);
+ }
+
+ /**
+ * @param cls Class.
+ * @param id Type ID.
+ * @param useDfltSerialization Use default serialization flag.
+ * @return GridBinaryClassDescriptor.
+ */
+ public BinaryClassDescriptor registerPredefinedType(Class<?> cls, int id, boolean useDfltSerialization) {
String typeName = typeName(cls.getName());
+ if (id == 0)
+ id = BinaryInternalIdMapper.defaultInstance().typeId(typeName);
+
BinaryClassDescriptor desc = new BinaryClassDescriptor(
this,
cls,
@@ -733,7 +750,7 @@ public class BinaryContext implements Externalizable {
false,
true, /* registered */
true, /* predefined */
- true /* default serialization */
+ useDfltSerialization /* default serialization */
);
predefinedTypeNames.put(typeName, id);