Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-51 8a92246a0 -> 7d31dde89


# ignite-51


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

Branch: refs/heads/ignite-51
Commit: 7d31dde89621f1407505ea9942b81b71d7458c8a
Parents: 8a92246
Author: sboikov <[email protected]>
Authored: Thu Feb 26 17:15:51 2015 +0300
Committer: sboikov <[email protected]>
Committed: Thu Feb 26 18:20:58 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/cache/IgniteImmutable.java    | 29 ++++++++++++++
 .../configuration/CacheConfiguration.java       | 20 ++++++++++
 .../processors/cache/GridCacheContext.java      |  3 ++
 .../processors/cache/GridCacheMapEntry.java     |  2 +-
 .../dht/preloader/GridDhtForceKeysRequest.java  | 25 +++---------
 .../dht/preloader/GridDhtForceKeysResponse.java | 41 ++++++++------------
 .../distributed/near/GridNearGetResponse.java   |  2 +-
 .../portable/GridPortableProcessor.java         |  7 ++--
 8 files changed, 81 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d31dde8/modules/core/src/main/java/org/apache/ignite/cache/IgniteImmutable.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/IgniteImmutable.java 
b/modules/core/src/main/java/org/apache/ignite/cache/IgniteImmutable.java
new file mode 100644
index 0000000..04c4df2
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/cache/IgniteImmutable.java
@@ -0,0 +1,29 @@
+/*
+ * 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;
+
+import java.lang.annotation.*;
+
+/**
+ *
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface IgniteImmutable {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d31dde8/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
index 57583d4..21d008c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
@@ -217,6 +217,9 @@ public class CacheConfiguration<K, V> extends 
MutableConfiguration<K, V> {
     /** Cache distribution mode. */
     private CacheDistributionMode distro = DFLT_DISTRIBUTION_MODE;
 
+    /** Default value for 'copyOnGet' flag. */
+    public static final boolean DFLT_COPY_ON_GET = true;
+
     /** Write synchronization mode. */
     private CacheWriteSynchronizationMode writeSync;
 
@@ -319,6 +322,9 @@ public class CacheConfiguration<K, V> extends 
MutableConfiguration<K, V> {
     /** Collection of type metadata. */
     private Collection<CacheTypeMetadata> typeMeta;
 
+    /** */
+    private boolean cpOnGet = DFLT_COPY_ON_GET;
+
     /** Empty constructor (all values are initialized to their defaults). */
     public CacheConfiguration() {
         /* No-op. */
@@ -1620,6 +1626,20 @@ public class CacheConfiguration<K, V> extends 
MutableConfiguration<K, V> {
         this.readFromBackup = readFromBackup;
     }
 
+    /**
+     * @return Copy on get flag.
+     */
+    public boolean isCopyOnGet() {
+        return cpOnGet;
+    }
+
+    /**
+     * @param cpOnGet Copy on get flag.
+     */
+    public void setCopyOnGet(boolean cpOnGet) {
+        this.cpOnGet = cpOnGet;
+    }
+
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(CacheConfiguration.class, this);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d31dde8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index a17c366..8d52f6f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
@@ -1806,6 +1806,9 @@ public class GridCacheContext<K, V> implements 
Externalizable {
             Object key0 = key.value(this);
             Object val0 = skipVals ? Boolean.TRUE : val.value(this);
 
+            assert key0 != null;
+            assert val0 != null;
+
             if (portableEnabled() && deserializePortable) {
                 key0 = unwrapPortableIfNeeded(key0, false);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d31dde8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index aa9d100..9a8f9f0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -338,7 +338,7 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
 
     /** {@inheritDoc} */
     @Override public boolean isInternal() {
-        return key instanceof GridCacheInternal;
+        return key.internal();
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d31dde8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysRequest.java
index f28c9f0..ca3d0d1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysRequest.java
@@ -44,13 +44,9 @@ public class GridDhtForceKeysRequest extends 
GridCacheMessage implements GridCac
     /** Mini-future ID. */
     private IgniteUuid miniId;
 
-    /** Serialized keys. */
-    @GridDirectCollection(byte[].class)
-    private Collection<byte[]> keyBytes;
-
     /** Keys to request. */
     @GridToStringInclude
-    @GridDirectTransient
+    @GridDirectCollection(KeyCacheObject.class)
     private Collection<KeyCacheObject> keys;
 
     /** Topology version for which keys are requested. */
@@ -117,13 +113,6 @@ public class GridDhtForceKeysRequest extends 
GridCacheMessage implements GridCac
     }
 
     /**
-     * @return Collection of serialized keys.
-     */
-    public Collection<byte[]> keyBytes() {
-        return keyBytes;
-    }
-
-    /**
      * @return Keys.
      */
     public Collection<KeyCacheObject> keys() {
@@ -142,23 +131,21 @@ public class GridDhtForceKeysRequest extends 
GridCacheMessage implements GridCac
     @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
-        if (keyBytes == null)
-            keyBytes = marshalCollection(keys, ctx);
+        prepareMarshalCacheObjects(keys, ctx);
     }
 
     /** {@inheritDoc} */
     @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
-        if (keys == null)
-            keys = unmarshalCollection(keyBytes, ctx, ldr);
+        finishUnmarshalCacheObjects(keys, ctx, ldr);
     }
 
     /**
      * @return Key count.
      */
     private int keyCount() {
-        return keyBytes == null ? keys.size() : keyBytes.size();
+        return keys.size();
     }
 
     /** {@inheritDoc} */
@@ -183,7 +170,7 @@ public class GridDhtForceKeysRequest extends 
GridCacheMessage implements GridCac
                 writer.incrementState();
 
             case 4:
-                if (!writer.writeCollection("keyBytes", keyBytes, 
MessageCollectionItemType.BYTE_ARR))
+                if (!writer.writeCollection("keys", keys, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -225,7 +212,7 @@ public class GridDhtForceKeysRequest extends 
GridCacheMessage implements GridCac
                 reader.incrementState();
 
             case 4:
-                keyBytes = reader.readCollection("keyBytes", 
MessageCollectionItemType.BYTE_ARR);
+                keys = reader.readCollection("keys", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d31dde8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java
index 7e2ce08..970a1af 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java
@@ -42,23 +42,16 @@ public class GridDhtForceKeysResponse extends 
GridCacheMessage implements GridCa
     /** Mini-future ID. */
     private IgniteUuid miniId;
 
-    /** */
-    @GridDirectCollection(byte[].class)
-    private Collection<byte[]> missedKeyBytes;
-
     /** Missed (not found) keys. */
     @GridToStringInclude
-    @GridDirectTransient
-    private Collection<KeyCacheObject> missedKeys;
+    @GridDirectCollection(KeyCacheObject.class)
+    private List<KeyCacheObject> missedKeys;
 
     /** Cache entries. */
     @GridToStringInclude
-    @GridDirectTransient
+    @GridDirectCollection(GridCacheEntryInfo.class)
     private List<GridCacheEntryInfo> infos;
 
-    /** */
-    private byte[] infosBytes;
-
     /**
      * Required by {@link Externalizable}.
      */
@@ -140,13 +133,12 @@ public class GridDhtForceKeysResponse extends 
GridCacheMessage implements GridCa
     @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
-        if (missedKeys != null && missedKeyBytes == null)
-            missedKeyBytes = marshalCollection(missedKeys, ctx);
+        if (missedKeys != null)
+            prepareMarshalCacheObjects(missedKeys, ctx);
 
         if (infos != null) {
-            marshalInfos(infos, ctx);
-
-            infosBytes = ctx.marshaller().marshal(infos);
+            for (GridCacheEntryInfo info : infos)
+                info.marshal(ctx);
         }
     }
 
@@ -154,13 +146,14 @@ public class GridDhtForceKeysResponse extends 
GridCacheMessage implements GridCa
     @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
-        if (missedKeys == null && missedKeyBytes != null)
-            missedKeys = unmarshalCollection(missedKeyBytes, ctx, ldr);
+        if (missedKeys != null)
+            finishUnmarshalCacheObjects(missedKeys, ctx, ldr);
 
-        if (infosBytes != null) {
-            infos = ctx.marshaller().unmarshal(infosBytes, ldr);
+        if (infos != null) {
+            GridCacheContext cctx = ctx.cacheContext(cacheId);
 
-            unmarshalInfos(infos, ctx.cacheContext(cacheId()), ldr);
+            for (GridCacheEntryInfo info : infos)
+                info.unmarshal(cctx, ldr);
         }
     }
 
@@ -186,7 +179,7 @@ public class GridDhtForceKeysResponse extends 
GridCacheMessage implements GridCa
                 writer.incrementState();
 
             case 4:
-                if (!writer.writeByteArray("infosBytes", infosBytes))
+                if (!writer.writeCollection("infos", infos, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -198,7 +191,7 @@ public class GridDhtForceKeysResponse extends 
GridCacheMessage implements GridCa
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeCollection("missedKeyBytes", missedKeyBytes, 
MessageCollectionItemType.BYTE_ARR))
+                if (!writer.writeCollection("missedKeys", missedKeys, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -228,7 +221,7 @@ public class GridDhtForceKeysResponse extends 
GridCacheMessage implements GridCa
                 reader.incrementState();
 
             case 4:
-                infosBytes = reader.readByteArray("infosBytes");
+                infos = reader.readCollection("infos", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -244,7 +237,7 @@ public class GridDhtForceKeysResponse extends 
GridCacheMessage implements GridCa
                 reader.incrementState();
 
             case 6:
-                missedKeyBytes = reader.readCollection("missedKeyBytes", 
MessageCollectionItemType.BYTE_ARR);
+                missedKeys = reader.readCollection("missedKeys", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d31dde8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java
index 560e1c4..1f9c306 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java
@@ -120,7 +120,7 @@ public class GridNearGetResponse extends GridCacheMessage 
implements GridCacheDe
      * @return Entries.
      */
     public Collection<GridCacheEntryInfo> entries() {
-        return entries;
+        return entries != null ? entries : 
Collections.<GridCacheEntryInfo>emptyList();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d31dde8/modules/core/src/main/java/org/apache/ignite/internal/processors/portable/GridPortableProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/portable/GridPortableProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/portable/GridPortableProcessor.java
index ac688a2..825d692 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/portable/GridPortableProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/portable/GridPortableProcessor.java
@@ -133,6 +133,7 @@ public interface GridPortableProcessor extends 
GridProcessor {
 
     /**
      * @param obj Portable object to get field from.
+     * @param fieldName Field name.
      * @return Field value.
      */
     public Object field(Object obj, String fieldName);
@@ -153,8 +154,8 @@ public interface GridPortableProcessor extends 
GridProcessor {
     @Nullable public CacheObject toCacheObject(@Nullable Object obj);
 
     /**
-     * @param obj Object.
-     * @return Cache object.
+     * @param obj Key value.
+     * @return Cache key object.
      */
-    @Nullable public KeyCacheObject toCacheKeyObject(@Nullable Object obj);
+    public KeyCacheObject toCacheKeyObject(Object obj);
 }

Reply via email to