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/11/12 15:39:56 UTC
[2/2] ignite git commit: IGNITE-1816: WIP.
IGNITE-1816: WIP.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/93f12f76
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/93f12f76
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/93f12f76
Branch: refs/heads/ignite-1816
Commit: 93f12f76681f7c5fbde257ab3be5b37c8a35c2a7
Parents: ab427d3
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Nov 12 17:24:04 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Nov 12 17:24:04 2015 +0300
----------------------------------------------------------------------
.../internal/portable/BinaryMetadataCollector.java | 17 ++++++++---------
.../internal/portable/PortableClassDescriptor.java | 6 +++++-
.../portable/builder/BinaryObjectBuilderImpl.java | 11 +++++++++--
.../cache/portable/CacheObjectBinaryProcessor.java | 2 +-
.../portable/CacheObjectBinaryProcessorImpl.java | 2 +-
.../processors/platform/PlatformContextImpl.java | 2 +-
6 files changed, 25 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/93f12f76/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryMetadataCollector.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryMetadataCollector.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryMetadataCollector.java
index ab2fbce..28eb1d0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryMetadataCollector.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryMetadataCollector.java
@@ -17,24 +17,23 @@
package org.apache.ignite.internal.portable;
+import org.apache.ignite.binary.BinaryIdMapper;
+import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinaryRawWriter;
+import org.apache.ignite.binary.BinaryWriter;
+import org.jetbrains.annotations.Nullable;
+
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Collection;
-import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
-import org.apache.ignite.binary.BinaryIdMapper;
-import org.apache.ignite.binary.BinaryObjectException;
-import org.apache.ignite.binary.BinaryRawWriter;
-import org.apache.ignite.binary.BinaryWriter;
-import org.jetbrains.annotations.Nullable;
-
/**
* Writer for meta data collection.
*/
@@ -77,8 +76,8 @@ class BinaryMetadataCollector implements BinaryWriter {
/**
* @return Schemas.
*/
- Collection<PortableSchema> schemas() {
- return Collections.singleton(schemaBuilder.build());
+ PortableSchema schema() {
+ return schemaBuilder.build();
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/93f12f76/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java
index d2b5327..8543ce6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java
@@ -583,10 +583,14 @@ public class PortableClassDescriptor {
else
((Binarylizable)obj).writeBinary(collector);
+ PortableSchema newSchema = collector.schema();
+
BinaryMetadata meta = new BinaryMetadata(typeId, typeName, collector.meta(),
- affKeyFieldName, collector.schemas());
+ affKeyFieldName, Collections.singleton(newSchema));
ctx.updateMetadata(typeId, meta);
+
+ schemaReg.addSchema(newSchema.schemaId(), newSchema);
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/93f12f76/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/BinaryObjectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/BinaryObjectBuilderImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/BinaryObjectBuilderImpl.java
index 7697c91..dfc2330 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/BinaryObjectBuilderImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/BinaryObjectBuilderImpl.java
@@ -29,6 +29,7 @@ import org.apache.ignite.internal.portable.BinaryWriterExImpl;
import org.apache.ignite.internal.portable.GridPortableMarshaller;
import org.apache.ignite.internal.portable.PortableContext;
import org.apache.ignite.internal.portable.PortableSchema;
+import org.apache.ignite.internal.portable.PortableSchemaRegistry;
import org.apache.ignite.internal.portable.PortableUtils;
import org.apache.ignite.internal.util.GridArgumentCheck;
import org.apache.ignite.internal.util.typedef.F;
@@ -365,7 +366,9 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
// Update metadata if needed.
int schemaId = writer.schemaId();
- if (ctx.schemaRegistry(typeId).schema(schemaId) == null) {
+ PortableSchemaRegistry schemaReg = ctx.schemaRegistry(typeId);
+
+ if (schemaReg.schema(schemaId) == null) {
String typeName = this.typeName;
if (typeName == null) {
@@ -374,8 +377,12 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
typeName = meta.typeName();
}
+ PortableSchema curSchema = writer.currentSchema();
+
ctx.updateMetadata(typeId, new BinaryMetadata(typeId, typeName, fieldsMeta,
- ctx.affinityKeyFieldName(typeId), Collections.singleton(writer.currentSchema())));
+ ctx.affinityKeyFieldName(typeId), Collections.singleton(curSchema)));
+
+ schemaReg.addSchema(curSchema.schemaId(), curSchema);
}
}
finally {
http://git-wip-us.apache.org/repos/asf/ignite/blob/93f12f76/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessor.java
index cac0dcf..e4db77c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessor.java
@@ -59,7 +59,7 @@ public interface CacheObjectBinaryProcessor extends IgniteCacheObjectProcessor {
* @param fieldTypeIds Fields map.
* @throws IgniteException In case of error.
*/
- public void updateMetaData(int typeId, String typeName, @Nullable String affKeyFieldName,
+ public void updateMetadata(int typeId, String typeName, @Nullable String affKeyFieldName,
Map<String, Integer> fieldTypeIds) throws IgniteException;
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/93f12f76/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java
index eb51d13..acd926f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java
@@ -440,7 +440,7 @@ public class CacheObjectBinaryProcessorImpl extends IgniteCacheObjectProcessorIm
}
/** {@inheritDoc} */
- @Override public void updateMetaData(int typeId, String typeName, @Nullable String affKeyFieldName,
+ @Override public void updateMetadata(int typeId, String typeName, @Nullable String affKeyFieldName,
Map<String, Integer> fieldTypeIds) throws BinaryObjectException {
portableCtx.updateMetadata(typeId, new BinaryMetadata(typeId, typeName, fieldTypeIds, affKeyFieldName, null));
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/93f12f76/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformContextImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformContextImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformContextImpl.java
index 05d3515..41598bc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformContextImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformContextImpl.java
@@ -359,7 +359,7 @@ public class PlatformContextImpl implements PlatformContext {
);
for (T4<Integer, String, String, Map<String, Integer>> meta : metas)
- cacheObjProc.updateMetaData(meta.get1(), meta.get2(), meta.get3(), meta.get4());
+ cacheObjProc.updateMetadata(meta.get1(), meta.get2(), meta.get3(), meta.get4());
}
/** {@inheritDoc} */