IGNITE-36 Removed GridMetadataAware interface.

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

Branch: refs/heads/ignite-36
Commit: 1bbd19c933fdd2089dc65ec721574f6dcaff8b94
Parents: 1812040
Author: nikolay_tikhonov <ntikho...@gridgain.com>
Authored: Tue Dec 16 09:45:03 2014 +0300
Committer: nikolay_tikhonov <ntikho...@gridgain.com>
Committed: Fri Dec 19 16:29:31 2014 +0300

----------------------------------------------------------------------
 .../org/apache/ignite/cluster/ClusterNode.java  |  39 +++-
 .../ignite/cluster/ClusterNodeLocalMap.java     |   3 +-
 .../ignite/compute/ComputeJobSibling.java       |   3 +-
 .../ignite/compute/ComputeLoadBalancer.java     |   3 +-
 .../ignite/logger/java/IgniteJavaLogger.java    |   4 +-
 .../org/gridgain/grid/GridMetadataAware.java    | 179 -------------------
 .../org/gridgain/grid/cache/GridCacheEntry.java |  77 +++++++-
 .../org/gridgain/grid/cache/GridCacheTx.java    |  33 +++-
 .../grid/cache/store/GridCacheStore.java        |   5 +-
 .../grid/kernal/ClusterNodeLocalMapImpl.java    |  80 ---------
 .../grid/kernal/GridJobContextImpl.java         |   4 +-
 .../grid/kernal/GridJobSiblingImpl.java         |   3 +-
 .../gridgain/grid/kernal/GridKernalContext.java |   3 +-
 .../grid/kernal/GridKernalContextImpl.java      |   4 +-
 .../gridgain/grid/kernal/GridLoggerProxy.java   |   5 +-
 .../kernal/executor/GridExecutorService.java    |   4 +-
 .../loadbalancer/GridLoadBalancerAdapter.java   |   4 +-
 .../processors/cache/GridCacheAdapter.java      |   4 +-
 .../processors/cache/GridCacheEntryEx.java      |  85 ++++++++-
 .../processors/cache/GridCacheEntryImpl.java    |  54 +-----
 .../cache/GridCacheEvictionEntry.java           |  36 ----
 .../cache/GridCacheFilterEvaluationEntry.java   |  36 ----
 .../processors/cache/GridCacheLogger.java       |   3 +-
 .../processors/cache/GridCacheMapEntry.java     |  88 +--------
 .../processors/cache/GridCacheTxProxyImpl.java  |  59 ------
 .../GridPartitionedCacheEntryImpl.java          | 147 ---------------
 .../cache/query/GridCacheQueryManager.java      |  37 ----
 .../GridCacheContinuousQueryEntry.java          |  50 ------
 .../java/org/gridgain/grid/util/GridUtils.java  |  19 --
 .../grid/util/lang/GridComputeJobWrapper.java   |  14 +-
 .../org/gridgain/grid/util/lang/GridFunc.java   | 146 ---------------
 .../util/lang/GridMetadataAwareAdapter.java     | 159 ++++++++++++----
 .../org/gridgain/grid/GridTestJobContext.java   |   2 +-
 .../gridgain/grid/lang/GridTupleSelfTest.java   |  85 ---------
 .../junits/logger/GridTestLog4jLogger.java      |   2 +-
 .../gridgain/grid/logger/jcl/GridJclLogger.java |   2 +-
 .../ignite/logger/log4j/IgniteLog4jLogger.java  |   2 +-
 .../processors/schedule/ScheduleFutureImpl.java |   5 +-
 .../grid/logger/slf4j/GridSlf4jLogger.java      |   2 +-
 .../java/org/gridgain/grid/GridSpringBean.java  |   2 +-
 40 files changed, 381 insertions(+), 1111 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java 
b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
index a0dd196..72b2840 100644
--- a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
+++ b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNode.java
@@ -11,11 +11,11 @@ package org.apache.ignite.cluster;
 
 import org.apache.ignite.IgniteCluster;
 import org.apache.ignite.product.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
+import java.util.concurrent.*;
 
 /**
  * Interface representing a single grid node. Use {@link #attribute(String)} or
@@ -99,7 +99,7 @@ import java.util.*;
  * that comes with JDK as it also provides ability to view any node parameter
  * as a graph.
  */
-public interface ClusterNode extends GridMetadataAware {
+public interface ClusterNode {
     /**
      * Gets globally unique node ID. A new ID is generated every time a node 
restarts.
      *
@@ -246,4 +246,39 @@ public interface ClusterNode extends GridMetadataAware {
      * @return {@code True} if this node is a client node, {@code false} 
otherwise.
      */
     public boolean isClient();
+
+    /**
+     * Adds a new metadata.
+     *
+     * @param name Metadata name.
+     * @param val Metadata value.
+     * @param <V> Type of the value.
+     * @return Metadata previously associated with given name, or
+     *      {@code null} if there was none.
+     */
+    @Nullable public <V> V addMeta(String name, V val);
+
+    /**
+     * Adds given metadata value only if it was absent.
+     *
+     * @param name Metadata name.
+     * @param c Factory closure to produce value to add if it's not attached 
already.
+     *      Not that unlike {@link #addMeta(String, Object)} method the 
factory closure will
+     *      not be called unless the value is required and therefore value 
will only be created
+     *      when it is actually needed. If {@code null} and metadata value is 
missing - {@code null}
+     *      will be returned from this method.
+     * @param <V> Type of the value.
+     * @return The value of the metadata after execution of this method.
+     */
+    @Nullable public <V> V addMetaIfAbsent(String name, @Nullable Callable<V> 
c);
+
+
+    /**
+     * Gets metadata by name.
+     *
+     * @param name Metadata name.
+     * @param <V> Type of the value.
+     * @return Metadata value or {@code null}.
+     */
+    @Nullable public <V> V meta(String name);
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeLocalMap.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeLocalMap.java 
b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeLocalMap.java
index 770d08f..84d65b0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeLocalMap.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeLocalMap.java
@@ -9,7 +9,6 @@
 
 package org.apache.ignite.cluster;
 
-import org.gridgain.grid.*;
 import org.jetbrains.annotations.*;
 import java.util.concurrent.*;
 
@@ -26,7 +25,7 @@ import java.util.concurrent.*;
  * <p>
  * You can get an instance of {@code GridNodeLocalMap} by calling {@link 
org.apache.ignite.IgniteCluster#nodeLocalMap()} method.
  */
-public interface ClusterNodeLocalMap<K, V> extends ConcurrentMap<K, V>, 
GridMetadataAware {
+public interface ClusterNodeLocalMap<K, V> extends ConcurrentMap<K, V> {
     /**
      * Gets the value with given key. If that value does not exist, calls 
given closure
      * to get the default value, puts it into the map and returns it. If 
closure is {@code null}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobSibling.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobSibling.java 
b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobSibling.java
index 330196a..7876214 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobSibling.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/compute/ComputeJobSibling.java
@@ -11,7 +11,6 @@ package org.apache.ignite.compute;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 
 import java.util.*;
 
@@ -19,7 +18,7 @@ import java.util.*;
  * Job sibling interface defines a job from the same split. In other words a 
sibling is a job returned
  * from the same {@link ComputeTask#map(List, Object)} method invocation.
  */
-public interface ComputeJobSibling extends GridMetadataAware {
+public interface ComputeJobSibling {
     /**
      * Gets ID of this grid job sibling. Note that ID stays constant
      * throughout job life time, even if a job gets failed over to another

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/apache/ignite/compute/ComputeLoadBalancer.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/compute/ComputeLoadBalancer.java 
b/modules/core/src/main/java/org/apache/ignite/compute/ComputeLoadBalancer.java
index e4ee221..4176aa1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/compute/ComputeLoadBalancer.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/compute/ComputeLoadBalancer.java
@@ -11,7 +11,6 @@ package org.apache.ignite.compute;
 
 import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
-import org.gridgain.grid.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
@@ -93,7 +92,7 @@ import java.util.*;
  * }
  * </pre>
  */
-public interface ComputeLoadBalancer extends GridMetadataAware {
+public interface ComputeLoadBalancer {
     /**
      * Gets the next balanced node according to the underlying load balancing 
policy.
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLogger.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLogger.java
 
b/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLogger.java
index 9e806fd..0071715 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLogger.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLogger.java
@@ -11,8 +11,6 @@ package org.apache.ignite.logger.java;
 
 import org.apache.ignite.*;
 import org.apache.ignite.logger.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
@@ -75,7 +73,7 @@ import static org.apache.ignite.IgniteSystemProperties.*;
  * logger in your task/job code. See {@link 
org.apache.ignite.resources.IgniteLoggerResource} annotation about logger
  * injection.
  */
-public class IgniteJavaLogger extends GridMetadataAwareAdapter implements 
IgniteLogger, IgniteLoggerNodeIdAware {
+public class IgniteJavaLogger implements IgniteLogger, IgniteLoggerNodeIdAware 
{
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/GridMetadataAware.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/GridMetadataAware.java 
b/modules/core/src/main/java/org/gridgain/grid/GridMetadataAware.java
deleted file mode 100644
index 7a7c739..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/GridMetadataAware.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid;
-
-import org.jetbrains.annotations.*;
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-/**
- * Allows to attach metadata attributes to any entity that implements
- * this interface. This promotes <i>meta-programming technique</i> throughout 
the
- * GridGain APIs by allowing to attach and query the <b>metadata 
information</b> to top-level
- * entities in GridGain APIs.
- * <p>
- * Note that unlike other types of attributes the metadata is explicitly
- * local to VM. Local metadata does not have any distribution semantic and is 
not
- * specifically distributed in any way. Note, however, that if object that 
implements this
- * interface gets serialized and deserialized on the remote node the 
attachments may or may not
- * be carried over (depending on the implementation). All classes that come 
with GridGain
- * and implement this interface support proper serialization and 
deserialization.
- * <p>
- * For example, this may become useful for cache entries or
- * cache transactions. Cache entry attachment can be used whenever entry
- * needs to carry additional context and it is too expensive to keep
- * looking that context up from a separate map by a key. For example,
- * an expiration policy used by caches may add some expiration
- * context to cache entries to properly expire them.
- */
-public interface GridMetadataAware extends Serializable {
-    /**
-     * Copies all metadata from another instance.
-     *
-     * @param from Metadata aware instance to copy metadata from.
-     */
-    public void copyMeta(GridMetadataAware from);
-
-    /**
-     * Copies all metadata from given map.
-     *
-     * @param data Map to copy metadata from.
-     */
-    public void copyMeta(Map<String, ?> data);
-
-    /**
-     * Adds a new metadata.
-     *
-     * @param name Metadata name.
-     * @param val Metadata value.
-     * @param <V> Type of the value.
-     * @return Metadata previously associated with given name, or
-     *      {@code null} if there was none.
-     */
-    @Nullable public <V> V addMeta(String name, V val);
-
-    /**
-     * Adds given metadata value only if it was absent.
-     *
-     * @param name Metadata name.
-     * @param val Value to add if it's not attached already.
-     * @param <V> Type of the value.
-     * @return {@code null} if new value was put, or current value if put 
didn't happen.
-     */
-    @Nullable public <V> V putMetaIfAbsent(String name, V val);
-
-    /**
-     * Adds given metadata value only if it was absent.
-     *
-     * @param name Metadata name.
-     * @param c Factory closure to produce value to add if it's not attached 
already.
-     *      Not that unlike {@link #addMeta(String, Object)} method the 
factory closure will
-     *      not be called unless the value is required and therefore value 
will only be created
-     *      when it is actually needed.
-     * @param <V> Type of the value.
-     * @return {@code null} if new value was put, or current value if put 
didn't happen.
-     */
-    @Nullable public <V> V putMetaIfAbsent(String name, Callable<V> c);
-
-    /**
-     * Adds given metadata value only if it was absent. Unlike
-     * {@link #putMetaIfAbsent(String, Callable)}, this method always returns
-     * the latest value and never previous one. 
-     *
-     * @param name Metadata name.
-     * @param val Value to add if it's not attached already.
-     * @param <V> Type of the value.
-     * @return The value of the metadata after execution of this method.
-     */
-    public <V> V addMetaIfAbsent(String name, V val);
-
-    /**
-     * Adds given metadata value only if it was absent.
-     *
-     * @param name Metadata name.
-     * @param c Factory closure to produce value to add if it's not attached 
already.
-     *      Not that unlike {@link #addMeta(String, Object)} method the 
factory closure will
-     *      not be called unless the value is required and therefore value 
will only be created
-     *      when it is actually needed. If {@code null} and metadata value is 
missing - {@code null}
-     *      will be returned from this method.
-     * @param <V> Type of the value.
-     * @return The value of the metadata after execution of this method.
-     */
-    @Nullable public <V> V addMetaIfAbsent(String name, @Nullable Callable<V> 
c);
-
-    /**
-     * Gets metadata by name.
-     *
-     * @param name Metadata name.
-     * @param <V> Type of the value.
-     * @return Metadata value or {@code null}.
-     */
-    public <V> V meta(String name);
-
-    /**
-     * Removes metadata by name.
-     *
-     * @param name Name of the metadata to remove.
-     * @param <V> Type of the value.
-     * @return Value of removed metadata or {@code null}.
-     */
-    public <V> V removeMeta(String name);
-
-    /**
-     * Removes metadata only if its current value is equal to {@code val} 
passed in.
-     *
-     * @param name Name of metadata attribute.
-     * @param val Value to compare.
-     * @param <V> Value type.
-     * @return {@code True} if value was removed, {@code false} otherwise.
-     */
-    public <V> boolean removeMeta(String name, V val);
-
-    /**
-     * Gets all metadata in this entry.
-     *
-     * @param <V> Type of the value.
-     * @return All metadata in this entry.
-     */
-    public <V> Map<String, V> allMeta();
-
-    /**
-     * Tests whether or not given metadata is set.
-     *
-     * @param name Name of the metadata to test.
-     * @return Whether or not given metadata is set.
-     */
-    public boolean hasMeta(String name);
-
-    /**
-     * Tests whether or not metadata with given name and value is set. Returns 
{@code true} if
-     * attachment with given name it set and its value is equals to provided 
value. Otherwise returns
-     * {@code false}.
-     *
-     * @param name Name of the metadata.
-     * @param val Value to compare. Cannot be {@code null}.
-     * @param <V> Type of the value.
-     * @return {@code true} if metadata with given name is set and its value 
is equals to provided value -
-     *      otherwise returns {@code false}.
-     */
-    public <V> boolean hasMeta(String name, V val);
-
-    /**
-     * Replaces given metadata with new {@code newVal} value only if its 
current value
-     * is equal to {@code curVal}. Otherwise, it is no-op.
-     *
-     * @param name Name of the metadata.
-     * @param curVal Current value to check.
-     * @param newVal New value.
-     * @return {@code true} if replacement occurred, {@code false} otherwise.
-     */
-    public <V> boolean replaceMeta(String name, V curVal, V newVal);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheEntry.java 
b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheEntry.java
index 725f377..6966cb5 100644
--- a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheEntry.java
+++ b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheEntry.java
@@ -11,11 +11,11 @@ package org.gridgain.grid.cache;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
 import java.util.Map.*;
+import java.util.concurrent.*;
 
 /**
  * This interface provides a rich API for working with individual cache 
entries. It
@@ -78,7 +78,7 @@ import java.util.Map.*;
  * @param <K> Key type.
  * @param <V> Value type.
  */
-public interface GridCacheEntry<K, V> extends Map.Entry<K, V>, 
GridMetadataAware {
+public interface GridCacheEntry<K, V> extends Map.Entry<K, V> {
     /**
      * Cache projection to which this entry belongs. Note that entry and its
      * parent projections have same flags and filters.
@@ -557,4 +557,77 @@ public interface GridCacheEntry<K, V> extends Map.Entry<K, 
V>, GridMetadataAware
      * @throws IgniteCheckedException If failed to evaluate entry size.
      */
     public int memorySize() throws IgniteCheckedException;
+
+    /**
+     * Removes metadata by name.
+     *
+     * @param name Name of the metadata to remove.
+     * @param <V> Type of the value.
+     * @return Value of removed metadata or {@code null}.
+     */
+    public <V> V removeMeta(String name);
+
+    /**
+     * Removes metadata only if its current value is equal to {@code val} 
passed in.
+     *
+     * @param name Name of metadata attribute.
+     * @param val Value to compare.
+     * @param <V> Value type.
+     * @return {@code True} if value was removed, {@code false} otherwise.
+     */
+    public <V> boolean removeMeta(String name, V val);
+
+    /**
+     * Gets metadata by name.
+     *
+     * @param name Metadata name.
+     * @param <V> Type of the value.
+     * @return Metadata value or {@code null}.
+     */
+    public <V> V meta(String name);
+
+    /**
+     * Adds given metadata value only if it was absent.
+     *
+     * @param name Metadata name.
+     * @param c Factory closure to produce value to add if it's not attached 
already.
+     *      Not that unlike {@link #addMeta(String, Object)} method the 
factory closure will
+     *      not be called unless the value is required and therefore value 
will only be created
+     *      when it is actually needed.
+     * @param <V> Type of the value.
+     * @return {@code null} if new value was put, or current value if put 
didn't happen.
+     */
+    @Nullable public <V> V putMetaIfAbsent(String name, Callable<V> c);
+
+    /**
+     * Adds given metadata value only if it was absent.
+     *
+     * @param name Metadata name.
+     * @param val Value to add if it's not attached already.
+     * @param <V> Type of the value.
+     * @return {@code null} if new value was put, or current value if put 
didn't happen.
+     */
+    @Nullable public <V> V putMetaIfAbsent(String name, V val);
+
+    /**
+     * Adds a new metadata.
+     *
+     * @param name Metadata name.
+     * @param val Metadata value.
+     * @param <V> Type of the value.
+     * @return Metadata previously associated with given name, or
+     *      {@code null} if there was none.
+     */
+    @Nullable public <V> V addMeta(String name, V val);
+
+    /**
+     * Replaces given metadata with new {@code newVal} value only if its 
current value
+     * is equal to {@code curVal}. Otherwise, it is no-op.
+     *
+     * @param name Name of the metadata.
+     * @param curVal Current value to check.
+     * @param newVal New value.
+     * @return {@code true} if replacement occurred, {@code false} otherwise.
+     */
+    public <V> boolean replaceMeta(String name, V curVal, V newVal);
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTx.java 
b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTx.java
index 6e8c5bd..dde0ea2 100644
--- a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTx.java
+++ b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTx.java
@@ -11,7 +11,7 @@ package org.gridgain.grid.cache;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
+import org.jetbrains.annotations.*;
 
 import java.util.*;
 
@@ -105,7 +105,7 @@ import java.util.*;
  * }
  * </pre>
  */
-public interface GridCacheTx extends GridMetadataAware, AutoCloseable {
+public interface GridCacheTx extends AutoCloseable {
     /**
      * Gets unique identifier for this transaction.
      *
@@ -240,4 +240,33 @@ public interface GridCacheTx extends GridMetadataAware, 
AutoCloseable {
      * @throws IgniteCheckedException If rollback failed.
      */
     public void rollback() throws IgniteCheckedException;
+
+    /**
+     * Removes metadata by name.
+     *
+     * @param name Name of the metadata to remove.
+     * @param <V> Type of the value.
+     * @return Value of removed metadata or {@code null}.
+     */
+    @Nullable public <V> V removeMeta(String name);
+
+    /**
+     * Gets metadata by name.
+     *
+     * @param name Metadata name.
+     * @param <V> Type of the value.
+     * @return Metadata value or {@code null}.
+     */
+    @Nullable public <V> V meta(String name);
+
+    /**
+     * Adds a new metadata.
+     *
+     * @param name Metadata name.
+     * @param val Metadata value.
+     * @param <V> Type of the value.
+     * @return Metadata previously associated with given name, or
+     *      {@code null} if there was none.
+     */
+    @Nullable public <V> V addMeta(String name, V val);
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/cache/store/GridCacheStore.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/cache/store/GridCacheStore.java 
b/modules/core/src/main/java/org/gridgain/grid/cache/store/GridCacheStore.java
index 4bf2fc0..974c9a9 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/cache/store/GridCacheStore.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/cache/store/GridCacheStore.java
@@ -12,7 +12,6 @@ package org.gridgain.grid.cache.store;
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.portables.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.store.jdbc.*;
 import org.jetbrains.annotations.*;
@@ -43,8 +42,8 @@ import java.util.Date;
  * </ul>
  * <p>
  * All transactional operations of this API are provided with ongoing {@link 
GridCacheTx},
- * if any. As transaction is {@link GridMetadataAware}, you can attach any 
metadata to
- * it, e.g. to recognize if several operations belong to the same transaction 
or not.
+ * if any. You can attach any metadata to it, e.g. to recognize if several 
operations belong
+ * to the same transaction or not.
  * Here is an example of how attach a JDBC connection as transaction metadata:
  * <pre name="code" class="java">
  * Connection conn = tx.meta("some.name");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/ClusterNodeLocalMapImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/ClusterNodeLocalMapImpl.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/ClusterNodeLocalMapImpl.java
index da31c46..54cb206 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/ClusterNodeLocalMapImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/ClusterNodeLocalMapImpl.java
@@ -10,15 +10,12 @@
 package org.gridgain.grid.kernal;
 
 import org.apache.ignite.cluster.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.lang.*;
 import org.jdk8.backport.*;
 import org.jetbrains.annotations.*;
 
 import java.io.*;
-import java.util.*;
 import java.util.concurrent.*;
 
 /**
@@ -33,9 +30,6 @@ public class ClusterNodeLocalMapImpl<K, V> extends 
ConcurrentHashMap8<K, V> impl
     private static final ThreadLocal<String> stash = new ThreadLocal<>();
 
     /** */
-    private GridMetadataAwareAdapter impl = new GridMetadataAwareAdapter();
-
-    /** */
     private GridKernalContext ctx;
 
     /**
@@ -66,80 +60,6 @@ public class ClusterNodeLocalMapImpl<K, V> extends 
ConcurrentHashMap8<K, V> impl
     }
 
     /** {@inheritDoc} */
-    @Override public <V> V addMeta(String name, V val) {
-        return impl.addMeta(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> V putMetaIfAbsent(String name, V val) {
-        return impl.putMetaIfAbsent(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> V putMetaIfAbsent(String name, Callable<V> c) {
-        return impl.putMetaIfAbsent(name, c);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> V addMetaIfAbsent(String name, V val) {
-        return impl.addMetaIfAbsent(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> V addMetaIfAbsent(String name, Callable<V> c) {
-        return impl.addMetaIfAbsent(name, c);
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Nullable
-    @Override public <V> V meta(String name) {
-        return (V)impl.meta(name);
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Nullable
-    @Override public <V> V removeMeta(String name) {
-        return (V)impl.removeMeta(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> boolean removeMeta(String name, V val) {
-        return impl.removeMeta(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> Map<String, V> allMeta() {
-        return impl.allMeta();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name) {
-        return impl.hasMeta(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> boolean hasMeta(String name, V val) {
-        return impl.hasMeta(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> boolean replaceMeta(String name, V curVal, V newVal) {
-        return impl.replaceMeta(name, curVal, newVal);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(GridMetadataAware from) {
-        impl.copyMeta(from);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(Map<String, ?> data) {
-        impl.copyMeta(data);
-    }
-
-    /** {@inheritDoc} */
     @Override public void writeExternal(ObjectOutput out) throws IOException {
         U.writeString(out, ctx.gridName());
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobContextImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobContextImpl.java 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobContextImpl.java
index 7db3f51..9ab9c36 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobContextImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobContextImpl.java
@@ -12,14 +12,12 @@ package org.gridgain.grid.kernal;
 import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.affinity.*;
 import org.gridgain.grid.kernal.processors.job.*;
 import org.gridgain.grid.kernal.processors.timeout.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.tostring.*;
 import org.jetbrains.annotations.*;
 
@@ -31,7 +29,7 @@ import java.util.concurrent.atomic.*;
 /**
  * Remote job context implementation.
  */
-public class GridJobContextImpl extends GridMetadataAwareAdapter implements 
ComputeJobContext, Externalizable {
+public class GridJobContextImpl implements ComputeJobContext, Externalizable {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobSiblingImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobSiblingImpl.java 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobSiblingImpl.java
index c8efde8..19fec20 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobSiblingImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridJobSiblingImpl.java
@@ -13,7 +13,6 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.internal.*;
 
 import java.io.*;
@@ -25,7 +24,7 @@ import static 
org.gridgain.grid.kernal.managers.communication.GridIoPolicy.*;
 /**
  * This class provides implementation for job sibling.
  */
-public class GridJobSiblingImpl extends GridMetadataAwareAdapter implements 
ComputeJobSibling, Externalizable {
+public class GridJobSiblingImpl implements ComputeJobSibling, Externalizable {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java
index 7b161a4..85aa3c0 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContext.java
@@ -13,7 +13,6 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.plugin.*;
 import org.apache.ignite.product.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.managers.security.*;
 import org.gridgain.grid.kernal.managers.checkpoint.*;
 import org.gridgain.grid.kernal.managers.collision.*;
@@ -63,7 +62,7 @@ import java.util.concurrent.*;
  *
  */
 @GridToStringExclude
-public interface GridKernalContext extends GridMetadataAware, 
Iterable<GridComponent> {
+public interface GridKernalContext extends Iterable<GridComponent> {
     /**
      * Gets list of all grid components in the order they were added.
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
index b6f4ac8..1ac9f25 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernalContextImpl.java
@@ -13,7 +13,6 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.plugin.*;
 import org.apache.ignite.product.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.managers.checkpoint.*;
 import org.gridgain.grid.kernal.managers.collision.*;
 import org.gridgain.grid.kernal.managers.communication.*;
@@ -57,7 +56,6 @@ import org.gridgain.grid.kernal.processors.streamer.*;
 import org.gridgain.grid.kernal.processors.task.*;
 import org.gridgain.grid.kernal.processors.timeout.*;
 import org.gridgain.grid.util.direct.*;
-import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
@@ -75,7 +73,7 @@ import static org.gridgain.grid.kernal.GridKernalState.*;
  * Implementation of kernal context.
  */
 @GridToStringExclude
-public class GridKernalContextImpl extends GridMetadataAwareAdapter implements 
GridKernalContext, Externalizable {
+public class GridKernalContextImpl implements GridKernalContext, 
Externalizable {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/GridLoggerProxy.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/GridLoggerProxy.java 
b/modules/core/src/main/java/org/gridgain/grid/kernal/GridLoggerProxy.java
index 065488b..f9e8189 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridLoggerProxy.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridLoggerProxy.java
@@ -12,10 +12,8 @@ package org.gridgain.grid.kernal;
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.lifecycle.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.tostring.*;
 import org.jetbrains.annotations.*;
 
@@ -27,8 +25,7 @@ import static org.apache.ignite.IgniteSystemProperties.*;
 /**
  *
  */
-public class GridLoggerProxy extends GridMetadataAwareAdapter implements 
IgniteLogger, LifecycleAware,
-    Externalizable {
+public class GridLoggerProxy implements IgniteLogger, LifecycleAware, 
Externalizable {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/executor/GridExecutorService.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/executor/GridExecutorService.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/executor/GridExecutorService.java
index 8be6cc1..1122121 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/executor/GridExecutorService.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/executor/GridExecutorService.java
@@ -12,10 +12,8 @@ package org.gridgain.grid.kernal.executor;
 import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.util.future.*;
-import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 
@@ -64,7 +62,7 @@ import java.util.concurrent.*;
  * }
  * </pre>
  */
-public class GridExecutorService extends GridMetadataAwareAdapter implements 
ExecutorService, Externalizable {
+public class GridExecutorService implements ExecutorService, Externalizable {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/managers/loadbalancer/GridLoadBalancerAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/loadbalancer/GridLoadBalancerAdapter.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/loadbalancer/GridLoadBalancerAdapter.java
index 0b3b254..75d9331 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/loadbalancer/GridLoadBalancerAdapter.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/loadbalancer/GridLoadBalancerAdapter.java
@@ -10,15 +10,13 @@
 package org.gridgain.grid.kernal.managers.loadbalancer;
 
 import org.apache.ignite.compute.*;
-import org.gridgain.grid.util.lang.*;
 
 import java.io.*;
 
 /**
  * This adapter allows for graceful exception when load balancer gets 
marshalled.
  */
-public abstract class GridLoadBalancerAdapter extends GridMetadataAwareAdapter 
implements ComputeLoadBalancer,
-    Externalizable {
+public abstract class GridLoadBalancerAdapter implements ComputeLoadBalancer, 
Externalizable {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
index bf40a85..66eb0ac 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
@@ -52,8 +52,6 @@ import static org.gridgain.grid.cache.GridCacheFlag.*;
 import static org.gridgain.grid.cache.GridCachePeekMode.*;
 import static org.gridgain.grid.cache.GridCacheTxConcurrency.*;
 import static org.gridgain.grid.cache.GridCacheTxIsolation.*;
-import static org.gridgain.grid.cache.GridCacheTxState.*;
-import static org.apache.ignite.events.IgniteEventType.*;
 import static org.gridgain.grid.kernal.GridClosureCallMode.*;
 import static org.gridgain.grid.kernal.processors.dr.GridDrType.*;
 import static 
org.gridgain.grid.kernal.processors.task.GridTaskThreadContextKey.*;
@@ -62,7 +60,7 @@ import static 
org.gridgain.grid.kernal.processors.task.GridTaskThreadContextKey.
  * Adapter for different cache implementations.
  */
 @SuppressWarnings("unchecked")
-public abstract class GridCacheAdapter<K, V> extends GridMetadataAwareAdapter 
implements GridCache<K, V>,
+public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
     GridCacheProjectionEx<K, V>, Externalizable {
     /** */
     private static final long serialVersionUID = 0L;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryEx.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryEx.java
index e94016f..f6eb3c2 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryEx.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryEx.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
 import org.gridgain.grid.kernal.processors.dr.*;
@@ -19,11 +18,12 @@ import org.gridgain.grid.util.lang.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
+import java.util.concurrent.*;
 
 /**
  * Internal API for cache entry ({@code 'Ex'} stands for extended).
  */
-public interface GridCacheEntryEx<K, V> extends GridMetadataAware {
+public interface GridCacheEntryEx<K, V> {
     /**
      * @return Memory size.
      * @throws IgniteCheckedException If failed.
@@ -884,4 +884,85 @@ public interface GridCacheEntryEx<K, V> extends 
GridMetadataAware {
      * @throws IgniteCheckedException If failed.
      */
     @Nullable public V unswap(boolean ignoreFlags, boolean needVal) throws 
IgniteCheckedException;
+
+    /**
+     * Tests whether or not given metadata is set.
+     *
+     * @param name Name of the metadata to test.
+     * @return Whether or not given metadata is set.
+     */
+    public boolean hasMeta(String name);
+
+    /**
+     * Gets metadata by name.
+     *
+     * @param name Metadata name.
+     * @param <V> Type of the value.
+     * @return Metadata value or {@code null}.
+     */
+    @Nullable public <V> V meta(String name);
+
+    /**
+     * Adds a new metadata.
+     *
+     * @param name Metadata name.
+     * @param val Metadata value.
+     * @param <V> Type of the value.
+     * @return Metadata previously associated with given name, or
+     *      {@code null} if there was none.
+     */
+    @Nullable public <V> V addMeta(String name, V val);
+
+    /**
+     * Adds given metadata value only if it was absent.
+     *
+     * @param name Metadata name.
+     * @param val Value to add if it's not attached already.
+     * @param <V> Type of the value.
+     * @return {@code null} if new value was put, or current value if put 
didn't happen.
+     */
+    @Nullable public <V> V putMetaIfAbsent(String name, V val);
+
+    /**
+     * Adds given metadata value only if it was absent.
+     *
+     * @param name Metadata name.
+     * @param c Factory closure to produce value to add if it's not attached 
already.
+     *      Not that unlike {@link #addMeta(String, Object)} method the 
factory closure will
+     *      not be called unless the value is required and therefore value 
will only be created
+     *      when it is actually needed.
+     * @param <V> Type of the value.
+     * @return {@code null} if new value was put, or current value if put 
didn't happen.
+     */
+    @Nullable public <V> V putMetaIfAbsent(String name, Callable<V> c);
+
+    /**
+     * Replaces given metadata with new {@code newVal} value only if its 
current value
+     * is equal to {@code curVal}. Otherwise, it is no-op.
+     *
+     * @param name Name of the metadata.
+     * @param curVal Current value to check.
+     * @param newVal New value.
+     * @return {@code true} if replacement occurred, {@code false} otherwise.
+     */
+    public <V> boolean replaceMeta(String name, V curVal, V newVal);
+
+    /**
+     * Removes metadata by name.
+     *
+     * @param name Name of the metadata to remove.
+     * @param <V> Type of the value.
+     * @return Value of removed metadata or {@code null}.
+     */
+    @Nullable public <V> V removeMeta(String name);
+
+    /**
+     * Removes metadata only if its current value is equal to {@code val} 
passed in.
+     *
+     * @param name Name of metadata attribute.
+     * @param val Value to compare.
+     * @param <V> Value type.
+     * @return {@code True} if value was removed, {@code false} otherwise.
+     */
+    public <V> boolean removeMeta(String name, V val);
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryImpl.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryImpl.java
index 452e074..4184415 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEntryImpl.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.util.lang.*;
@@ -565,7 +564,7 @@ public class GridCacheEntryImpl<K, V> implements 
GridCacheEntry<K, V>, Externali
     /** {@inheritDoc} */
     @SuppressWarnings({"unchecked"})
     @Override public <V1> V1 meta(String name) {
-        GridCacheEntryEx e = unwrapForMeta();
+        GridCacheEntryEx<K, V> e = unwrapForMeta();
 
         return e.meta(name);
     }
@@ -573,30 +572,9 @@ public class GridCacheEntryImpl<K, V> implements 
GridCacheEntry<K, V>, Externali
     /** {@inheritDoc} */
     @SuppressWarnings({"unchecked"})
     @Override public <V1> V1 removeMeta(String name) {
-        GridCacheEntryEx e = unwrapForMeta();
-
-        return e.removeMeta(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V1> Map<String, V1> allMeta() {
-        GridCacheEntryEx e = unwrapForMeta();
-
-        return e.allMeta();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name) {
-        GridCacheEntryEx<K, V> e = unwrapForMeta();
-
-        return e.hasMeta(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name, Object val) {
         GridCacheEntryEx<K, V> e = unwrapForMeta();
 
-        return e.hasMeta(name, val);
+        return e.removeMeta(name);
     }
 
     /** {@inheritDoc} */
@@ -614,20 +592,6 @@ public class GridCacheEntryImpl<K, V> implements 
GridCacheEntry<K, V>, Externali
     }
 
     /** {@inheritDoc} */
-    @Override public <V1> V1 addMetaIfAbsent(String name, V1 val) {
-        GridCacheEntryEx<K, V> cached = unwrapForMeta();
-
-        return cached.addMetaIfAbsent(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V1> V1 addMetaIfAbsent(String name, Callable<V1> c) {
-        GridCacheEntryEx<K, V> cached = unwrapForMeta();
-
-        return cached.addMetaIfAbsent(name, c);
-    }
-
-    /** {@inheritDoc} */
     @Override public <V1> boolean replaceMeta(String name, V1 curVal, V1 
newVal) {
         GridCacheEntryEx<K, V> cached = unwrapForMeta();
 
@@ -635,20 +599,6 @@ public class GridCacheEntryImpl<K, V> implements 
GridCacheEntry<K, V>, Externali
     }
 
     /** {@inheritDoc} */
-    @Override public void copyMeta(GridMetadataAware from) {
-        GridCacheEntryEx<K, V> cached = unwrapForMeta();
-
-        cached.copyMeta(from);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(Map<String, ?> data) {
-        GridCacheEntryEx<K, V> cached = unwrapForMeta();
-
-        cached.copyMeta(data);
-    }
-
-    /** {@inheritDoc} */
     @Override public <V1> boolean removeMeta(String name, V1 val) {
         GridCacheEntryEx e = unwrapForMeta();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEntry.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEntry.java
index b15b958..df673bd 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEntry.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheEvictionEntry.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
@@ -383,21 +382,6 @@ public class GridCacheEvictionEntry<K, V> implements 
GridCacheEntry<K, V>, Exter
     }
 
     /** {@inheritDoc} */
-    @Override public <V> Map<String, V> allMeta() {
-        return cached.allMeta();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name) {
-        return cached.hasMeta(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name, Object val) {
-        return cached.hasMeta(name, val);
-    }
-
-    /** {@inheritDoc} */
     @Override public <V> V putMetaIfAbsent(String name, V val) {
         return cached.putMetaIfAbsent(name, val);
     }
@@ -408,31 +392,11 @@ public class GridCacheEvictionEntry<K, V> implements 
GridCacheEntry<K, V>, Exter
     }
 
     /** {@inheritDoc} */
-    @Override public <V> V addMetaIfAbsent(String name, V val) {
-        return cached.addMetaIfAbsent(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> V addMetaIfAbsent(String name, Callable<V> c) {
-        return cached.addMetaIfAbsent(name, c);
-    }
-
-    /** {@inheritDoc} */
     @Override public <V> boolean replaceMeta(String name, V curVal, V newVal) {
         return cached.replaceMeta(name, curVal, newVal);
     }
 
     /** {@inheritDoc} */
-    @Override public void copyMeta(GridMetadataAware from) {
-        cached.copyMeta(from);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(Map<String, ?> data) {
-        cached.copyMeta(data);
-    }
-
-    /** {@inheritDoc} */
     @Override public <V> boolean removeMeta(String name, V val) {
         return cached.removeMeta(name, val);
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheFilterEvaluationEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheFilterEvaluationEntry.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheFilterEvaluationEntry.java
index 6862a5e..52cf8f8 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheFilterEvaluationEntry.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheFilterEvaluationEntry.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
@@ -353,16 +352,6 @@ public class GridCacheFilterEvaluationEntry<K, V> 
implements GridCacheEntry<K, V
     }
 
     /** {@inheritDoc} */
-    @Override public void copyMeta(GridMetadataAware from) {
-        impl.copyMeta(from);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(Map<String, ?> data) {
-        impl.copyMeta(data);
-    }
-
-    /** {@inheritDoc} */
     @Nullable @Override public <V> V addMeta(String name, V val) {
         return impl.addMeta(name, val);
     }
@@ -378,16 +367,6 @@ public class GridCacheFilterEvaluationEntry<K, V> 
implements GridCacheEntry<K, V
     }
 
     /** {@inheritDoc} */
-    @Override public <V> V addMetaIfAbsent(String name, V val) {
-        return impl.addMetaIfAbsent(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public <V> V addMetaIfAbsent(String name, @Nullable 
Callable<V> c) {
-        return impl.addMetaIfAbsent(name, c);
-    }
-
-    /** {@inheritDoc} */
     @Override public <V> V meta(String name) {
         return impl.meta(name);
     }
@@ -403,21 +382,6 @@ public class GridCacheFilterEvaluationEntry<K, V> 
implements GridCacheEntry<K, V
     }
 
     /** {@inheritDoc} */
-    @Override public <V> Map<String, V> allMeta() {
-        return impl.allMeta();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name) {
-        return impl.hasMeta(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> boolean hasMeta(String name, V val) {
-        return impl.hasMeta(name, val);
-    }
-
-    /** {@inheritDoc} */
     @Override public <V> boolean replaceMeta(String name, V curVal, V newVal) {
         return impl.replaceMeta(name, curVal, newVal);
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheLogger.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheLogger.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheLogger.java
index 7cc4593..a33e7dd 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheLogger.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheLogger.java
@@ -13,7 +13,6 @@ import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.tostring.*;
 import org.jetbrains.annotations.*;
 
@@ -23,7 +22,7 @@ import java.io.*;
  * Logger which automatically attaches {@code [cacheName]} to every log 
statement.
  */
 @GridToStringExclude
-class GridCacheLogger extends GridMetadataAwareAdapter implements 
IgniteLogger, Externalizable {
+class GridCacheLogger implements IgniteLogger, Externalizable {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMapEntry.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMapEntry.java
index 32c1485..064ee86 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMapEntry.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMapEntry.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.managers.deployment.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
@@ -3662,30 +3661,6 @@ public abstract class GridCacheMapEntry<K, V> implements 
GridCacheEntryEx<K, V>
     }
 
     /** {@inheritDoc} */
-    @Override public void copyMeta(GridMetadataAware from) {
-        A.notNull(from, "from");
-
-        synchronized (this) {
-            Map m = from.allMeta();
-
-            ensureData(m.size());
-
-            attributeDataExtras().putAll(from.allMeta());
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(Map<String, ?> attrData) {
-        A.notNull(attrData, "data");
-
-        synchronized (this) {
-            ensureData(attrData.size());
-
-            attributeDataExtras().putAll(attrData);
-        }
-    }
-
-    /** {@inheritDoc} */
     @SuppressWarnings({"unchecked"})
     @Nullable @Override public <V1> V1 addMeta(String name, V1 val) {
         A.notNull(name, "name", val, "val");
@@ -3711,8 +3686,7 @@ public abstract class GridCacheMapEntry<K, V> implements 
GridCacheEntryEx<K, V>
 
     /** {@inheritDoc} */
     @SuppressWarnings({"unchecked"})
-    @Nullable
-    @Override public <V1> V1 removeMeta(String name) {
+    @Nullable @Override public <V1> V1 removeMeta(String name) {
         A.notNull(name, "name");
 
         synchronized (this) {
@@ -3757,36 +3731,11 @@ public abstract class GridCacheMapEntry<K, V> 
implements GridCacheEntryEx<K, V>
     }
 
     /** {@inheritDoc} */
-    @SuppressWarnings( {"unchecked", "RedundantCast"})
-    @Override public synchronized  <V1> Map<String, V1> allMeta() {
-        GridLeanMap<String, Object> attrData = attributeDataExtras();
-
-        if (attrData == null)
-            return Collections.emptyMap();
-
-        if (attrData.size() <= 5)
-            // This is a singleton unmodifiable map.
-            return (Map<String, V1>)attrData;
-
-        // Return a copy.
-        return new HashMap<>((Map<String, V1>)attrData);
-    }
-
-    /** {@inheritDoc} */
     @Override public boolean hasMeta(String name) {
         return meta(name) != null;
     }
 
     /** {@inheritDoc} */
-    @Override public <V1> boolean hasMeta(String name, V1 val) {
-        A.notNull(name, "name");
-
-        Object v = meta(name);
-
-        return v != null && v.equals(val);
-    }
-
-    /** {@inheritDoc} */
     @SuppressWarnings({"unchecked"})
     @Nullable @Override public <V1> V1 putMetaIfAbsent(String name, V1 val) {
         A.notNull(name, "name", val, "val");
@@ -3822,41 +3771,6 @@ public abstract class GridCacheMapEntry<K, V> implements 
GridCacheEntryEx<K, V>
     }
 
     /** {@inheritDoc} */
-    @SuppressWarnings({"unchecked"})
-    @Override public <V1> V1 addMetaIfAbsent(String name, V1 val) {
-        A.notNull(name, "name", val, "val");
-
-        synchronized (this) {
-            V1 v = meta(name);
-
-            if (v == null)
-                addMeta(name, v = val);
-
-            return v;
-        }
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings({"unchecked"})
-    @Nullable @Override public <V1> V1 addMetaIfAbsent(String name, @Nullable 
Callable<V1> c) {
-        A.notNull(name, "name", c, "c");
-
-        synchronized (this) {
-            V1 v = meta(name);
-
-            if (v == null && c != null)
-                try {
-                    addMeta(name, v = c.call());
-                }
-                catch (Exception e) {
-                    throw F.wrap(e);
-                }
-
-            return v;
-        }
-    }
-
-    /** {@inheritDoc} */
     @SuppressWarnings({"RedundantTypeArguments"})
     @Override public <V1> boolean replaceMeta(String name, V1 curVal, V1 
newVal) {
         A.notNull(name, "name", newVal, "newVal", curVal, "curVal");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxProxyImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxProxyImpl.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxProxyImpl.java
index 4e61db6..0c2ec00 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxProxyImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxProxyImpl.java
@@ -11,15 +11,12 @@ package org.gridgain.grid.kernal.processors.cache;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.grid.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
 
 import java.io.*;
 import java.util.*;
-import java.util.concurrent.*;
 
 /**
  * Cache transaction proxy.
@@ -213,43 +210,12 @@ public class GridCacheTxProxyImpl<K, V> implements 
GridCacheTxProxy, Externaliza
             leave();
         }
     }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(GridMetadataAware from) {
-        tx.copyMeta(from);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(Map<String, ?> data) {
-        tx.copyMeta(data);
-    }
-
     /** {@inheritDoc} */
     @Override public <V1> V1 addMeta(String name, V1 val) {
         return tx.addMeta(name, val);
     }
 
     /** {@inheritDoc} */
-    @Override public <V1> V1 putMetaIfAbsent(String name, V1 val) {
-        return tx.putMetaIfAbsent(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V1> V1 putMetaIfAbsent(String name, Callable<V1> c) {
-        return tx.putMetaIfAbsent(name, c);
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public <V1> V1 addMetaIfAbsent(String name, V1 val) {
-        return tx.addMeta(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V1> V1 addMetaIfAbsent(String name, @Nullable 
Callable<V1> c) {
-        return tx.addMetaIfAbsent(name, c);
-    }
-
-    /** {@inheritDoc} */
     @SuppressWarnings({"RedundantTypeArguments"})
     @Override public <V1> V1 meta(String name) {
         return tx.<V1>meta(name);
@@ -262,31 +228,6 @@ public class GridCacheTxProxyImpl<K, V> implements 
GridCacheTxProxy, Externaliza
     }
 
     /** {@inheritDoc} */
-    @Override public <V1> boolean removeMeta(String name, V1 val) {
-        return tx.removeMeta(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V1> Map<String, V1> allMeta() {
-        return tx.allMeta();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name) {
-        return tx.hasMeta(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V1> boolean hasMeta(String name, V1 val) {
-        return tx.hasMeta(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V1> boolean replaceMeta(String name, V1 curVal, V1 
newVal) {
-        return tx.replaceMeta(name, curVal, newVal);
-    }
-
-    /** {@inheritDoc} */
     @Override public void writeExternal(ObjectOutput out) throws IOException {
         out.writeObject(tx);
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/GridPartitionedCacheEntryImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/GridPartitionedCacheEntryImpl.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/GridPartitionedCacheEntryImpl.java
index 7810847..2b138cb 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/GridPartitionedCacheEntryImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/GridPartitionedCacheEntryImpl.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.kernal.processors.cache.distributed;
 
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
@@ -276,120 +275,6 @@ public class GridPartitionedCacheEntryImpl<K, V> extends 
GridCacheEntryImpl<K, V
     }
 
     /** {@inheritDoc} */
-    @Override public <V1> V1 addMetaIfAbsent(String name, Callable<V1> c) {
-        V1 v = null;
-
-        GridDhtCacheEntry<K, V> de = dht().peekExx(key);
-
-        if (de != null)
-            v = de.addMetaIfAbsent(name, c);
-
-        if (ctx.isNear()) {
-            GridNearCacheEntry<K, V> ne = de != null ? near().peekExx(key) :
-                near().entryExx(key, ctx.affinity().affinityTopologyVersion());
-
-            if (ne != null) {
-                V1 v1 = ne.addMetaIfAbsent(name, c);
-
-                if (v == null)
-                    v = v1;
-            }
-        }
-
-        return v;
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V1> V1 addMetaIfAbsent(String name, V1 val) {
-        V1 v = null;
-
-        GridDhtCacheEntry<K, V> de = dht().peekExx(key);
-
-        if (de != null)
-            v = de.addMetaIfAbsent(name, val);
-
-        if (ctx.isNear()) {
-            GridNearCacheEntry<K, V> ne = de != null ? near().peekExx(key) :
-                near().entryExx(key, ctx.affinity().affinityTopologyVersion());
-
-            if (ne != null) {
-                V1 v1 = ne.addMetaIfAbsent(name, val);
-
-                if (v == null)
-                    v = v1;
-            }
-        }
-
-        return v;
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V1> Map<String, V1> allMeta() {
-        Map<String, V1> m = null;
-
-        GridDhtCacheEntry<K, V> de = dht().peekExx(key);
-
-        if (de != null)
-            m = de.allMeta();
-
-        if (ctx.isNear()) {
-            GridNearCacheEntry<K, V> ne = near().peekExx(key);
-
-            if (ne != null) {
-                Map<String, V1> m1 = ne.allMeta();
-
-                if (m == null)
-                    m = m1;
-                else if (!m1.isEmpty()) {
-                    for (Map.Entry<String, V1> e1 : m1.entrySet())
-                        if (!m.containsKey(e1.getKey())) // Give preference to 
DHT.
-                            m.put(e1.getKey(), e1.getValue());
-                }
-            }
-        }
-
-        return m;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name) {
-        boolean b = false;
-
-        GridDhtCacheEntry<K, V> de = dht().peekExx(key);
-
-        if (de != null)
-            b = de.hasMeta(name);
-
-        if (ctx.isNear()) {
-            GridNearCacheEntry<K, V> ne = near().peekExx(key);
-
-            if (ne != null)
-                b |= ne.hasMeta(name);
-        }
-
-        return b;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name, Object val) {
-        boolean b = false;
-
-        GridDhtCacheEntry<K, V> de = dht().peekExx(key);
-
-        if (de != null)
-            b = de.hasMeta(name, val);
-
-        if (ctx.isNear()) {
-            GridNearCacheEntry<K, V> ne = near().peekExx(key);
-
-            if (ne != null)
-                b |= ne.hasMeta(name, val);
-        }
-
-        return b;
-    }
-
-    /** {@inheritDoc} */
     @SuppressWarnings( {"RedundantCast"})
     @Override public <V1> V1 meta(String name) {
         V1 v = null;
@@ -524,38 +409,6 @@ public class GridPartitionedCacheEntryImpl<K, V> extends 
GridCacheEntryImpl<K, V
     }
 
     /** {@inheritDoc} */
-    @Override public void copyMeta(Map<String, ?> data) {
-        GridDhtCacheEntry<K, V> de = dht().peekExx(key);
-
-        if (de != null)
-            de.copyMeta(data);
-
-        if (ctx.isNear()) {
-            GridNearCacheEntry<K, V> ne = de != null ? near().peekExx(key) :
-                near().entryExx(key, ctx.affinity().affinityTopologyVersion());
-
-            if (ne != null)
-                ne.copyMeta(data);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(GridMetadataAware from) {
-        GridDhtCacheEntry<K, V> de = dht().peekExx(key);
-
-        if (de != null)
-            de.copyMeta(from);
-
-        if (ctx.isNear()) {
-            GridNearCacheEntry<K, V> ne = de != null ? near().peekExx(key) :
-                near().entryExx(key, ctx.affinity().affinityTopologyVersion());
-
-            if (ne != null)
-                ne.copyMeta(from);
-        }
-    }
-
-    /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(GridPartitionedCacheEntryImpl.class, this, 
super.toString());
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
index 25c0668..854a65f 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
@@ -16,7 +16,6 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.spi.indexing.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
@@ -2804,17 +2803,6 @@ public abstract class GridCacheQueryManager<K, V> 
extends GridCacheManagerAdapte
         }
 
         /** {@inheritDoc} */
-        @Override public void copyMeta(GridMetadataAware from) {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void copyMeta(Map<String, ?> data) {
-            throw new UnsupportedOperationException();
-
-        }
-
-        /** {@inheritDoc} */
         @Nullable @Override public <V> V addMeta(String name, V val) {
             throw new UnsupportedOperationException();
         }
@@ -2830,16 +2818,6 @@ public abstract class GridCacheQueryManager<K, V> 
extends GridCacheManagerAdapte
         }
 
         /** {@inheritDoc} */
-        @Override public <V> V addMetaIfAbsent(String name, V val) {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Nullable @Override public <V> V addMetaIfAbsent(String name, 
@Nullable Callable<V> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
         @Override public <V> V meta(String name) {
             return null;
         }
@@ -2855,21 +2833,6 @@ public abstract class GridCacheQueryManager<K, V> 
extends GridCacheManagerAdapte
         }
 
         /** {@inheritDoc} */
-        @Override public <V> Map<String, V> allMeta() {
-            return null;
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean hasMeta(String name) {
-            return false;
-        }
-
-        /** {@inheritDoc} */
-        @Override public <V> boolean hasMeta(String name, V val) {
-            return false;
-        }
-
-        /** {@inheritDoc} */
         @Override public <V> boolean replaceMeta(String name, V curVal, V 
newVal) {
             throw new UnsupportedOperationException();
         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryEntry.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryEntry.java
index 75453ee..a0ae428 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryEntry.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryEntry.java
@@ -12,7 +12,6 @@ package 
org.gridgain.grid.kernal.processors.cache.query.continuous;
 import org.apache.ignite.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.managers.deployment.*;
 import org.gridgain.grid.kernal.processors.cache.*;
@@ -582,20 +581,6 @@ public class GridCacheContinuousQueryEntry<K, V> 
implements GridCacheEntry<K, V>
     }
 
     /** {@inheritDoc} */
-    @Override public void copyMeta(GridMetadataAware from) {
-        assert impl != null;
-
-        impl.copyMeta(from);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void copyMeta(Map<String, ?> data) {
-        assert impl != null;
-
-        impl.copyMeta(data);
-    }
-
-    /** {@inheritDoc} */
     @Nullable @Override public <V> V addMeta(String name, V val) {
         assert impl != null;
 
@@ -617,20 +602,6 @@ public class GridCacheContinuousQueryEntry<K, V> 
implements GridCacheEntry<K, V>
     }
 
     /** {@inheritDoc} */
-    @Override public <V> V addMetaIfAbsent(String name, V val) {
-        assert impl != null;
-
-        return impl.addMetaIfAbsent(name, val);
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public <V> V addMetaIfAbsent(String name, @Nullable 
Callable<V> c) {
-        assert impl != null;
-
-        return impl.addMetaIfAbsent(name, c);
-    }
-
-    /** {@inheritDoc} */
     @Override public <V> V meta(String name) {
         assert impl != null;
 
@@ -652,27 +623,6 @@ public class GridCacheContinuousQueryEntry<K, V> 
implements GridCacheEntry<K, V>
     }
 
     /** {@inheritDoc} */
-    @Override public <V> Map<String, V> allMeta() {
-        assert impl != null;
-
-        return impl.allMeta();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasMeta(String name) {
-        assert impl != null;
-
-        return impl.hasMeta(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public <V> boolean hasMeta(String name, V val) {
-        assert impl != null;
-
-        return impl.hasMeta(name, val);
-    }
-
-    /** {@inheritDoc} */
     @Override public <V> boolean replaceMeta(String name, V curVal, V newVal) {
         assert impl != null;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java 
b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
index 803badd..72910a4 100644
--- a/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
+++ b/modules/core/src/main/java/org/gridgain/grid/util/GridUtils.java
@@ -1757,25 +1757,6 @@ public abstract class GridUtils {
     }
 
     /**
-     * Copies metadata from given object into the passed in metadata aware
-     * instance - if object is not {@code null} and implements {@link 
GridMetadataAware}.
-     * Otherwise - returns passed metadata aware instance unchanged.
-     *
-     * @param t Passed in metadata aware instance.
-     * @param obj Object to copy metadata from.
-     * @param <T> Type of the metadata aware instance.
-     * @return Metadata aware instance with metadata potentially copied.
-     */
-    public static <T extends GridMetadataAware> T withMeta(T t, @Nullable 
Object obj) {
-        assert t != null;
-
-        if (obj instanceof GridMetadataAware)
-            t.copyMeta((GridMetadataAware)obj);
-
-        return t;
-    }
-
-    /**
      * Replace password in URI string with a single '*' character.
      * <p>
      * Parses given URI by applying &quot;.*://(.*:.*)@.*&quot;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/util/lang/GridComputeJobWrapper.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/util/lang/GridComputeJobWrapper.java
 
b/modules/core/src/main/java/org/gridgain/grid/util/lang/GridComputeJobWrapper.java
index 3fe0590..7cf70bb 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/util/lang/GridComputeJobWrapper.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/util/lang/GridComputeJobWrapper.java
@@ -11,7 +11,6 @@ package org.gridgain.grid.util.lang;
 
 import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
-import org.gridgain.grid.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
 
@@ -21,7 +20,7 @@ import java.util.concurrent.*;
  * Convenient wrapper for grid job. It allows to create a job clone in cases 
when the same
  * job needs to be cloned to multiple grid nodes during mapping phase of task 
execution.
  */
-public class GridComputeJobWrapper extends GridMetadataAwareAdapter implements 
ComputeJob, Callable<Object>,
+public class GridComputeJobWrapper implements ComputeJob, Callable<Object>,
     GridPeerDeployAware {
     /** */
     private static final long serialVersionUID = 0L;
@@ -33,21 +32,14 @@ public class GridComputeJobWrapper extends 
GridMetadataAwareAdapter implements C
     private transient volatile GridPeerDeployAware p;
 
     /**
-     * Creates a wrapper with given grid {@code job}. If {@code job} 
implements {@link GridMetadataAware}
-     * interface and {@code copyMeta} is {@code true} - the metadata 
information will be
-     * copied from given {@code job} to this wrapper.
+     * Creates a wrapper with given grid {@code job}.
      *
      * @param job Job to wrap.
-     * @param cpMeta Whether or not to copy metadata in case when {@code job}
-     *      implements {@link GridMetadataAware} interface.
      */
-    public GridComputeJobWrapper(ComputeJob job, boolean cpMeta) {
+    public GridComputeJobWrapper(ComputeJob job) {
         A.notNull(job, "job");
 
         this.job = job;
-
-        if (cpMeta && job instanceof GridMetadataAware)
-            copyMeta((GridMetadataAware)job);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bbd19c9/modules/core/src/main/java/org/gridgain/grid/util/lang/GridFunc.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/util/lang/GridFunc.java 
b/modules/core/src/main/java/org/gridgain/grid/util/lang/GridFunc.java
index 3b31ecf..fe80998 100644
--- a/modules/core/src/main/java/org/gridgain/grid/util/lang/GridFunc.java
+++ b/modules/core/src/main/java/org/gridgain/grid/util/lang/GridFunc.java
@@ -1616,29 +1616,6 @@ public class GridFunc {
     }
 
     /**
-     * Convenient utility method that returns collections of metadata values 
for a given
-     * collection of metadata aware objects.
-     * <p>
-     * Note that this method doesn't create a new collection but simply 
iterates over the input one.
-     *
-     * @param objs Collection of metadata aware object.
-     * @param name Name of the metadata.
-     * @param <T> Type of the metadata.
-     * @return Collections of metadata value for a given collection of 
metadata aware objects.
-     */
-    public static <T> Collection<T> meta(Collection<? extends 
GridMetadataAware> objs, String name) {
-        A.notNull(objs, "objs", name, "attach");
-
-        Collection<T> c = new ArrayList<>(objs.size());
-
-        for (GridMetadataAware n : objs) {
-            c.add(n.<T>meta(name));
-        }
-
-        return c;
-    }
-
-    /**
      * Gets closure that calls {@code System.out.println()} on its bound 
variable.
      *
      * @param <T> Type of the bound variable.
@@ -5672,129 +5649,6 @@ public class GridFunc {
     }
 
     /**
-     * Creates predicate that accepts subclass of {@link GridMetadataAware}
-     * interface and evaluates to {@code true} if it contains all provided 
metadata.
-     *
-     * @param meta Collection of metadata.
-     * @param <T> Type of returned predicate.
-     * @return Predicate that accepts subclass of {@link GridMetadataAware} 
interface and
-     *      evaluates to {@code true} if it contains all provided metadata.
-     * @see #meta(String...)
-     * @see #meta(Iterable)
-     * @see #meta(String, Object)
-     */
-    public static <T extends GridMetadataAware> IgnitePredicate<T> 
metaEntry(@Nullable Map.Entry<String, ?>... meta) {
-        return metaEntry(isEmpty(meta) ? Collections.<Map.Entry<String, 
?>>emptyList() : asList(meta));
-    }
-
-    /**
-     * Creates predicate that accepts subclass of {@link GridMetadataAware} 
interface
-     * and evaluates to {@code true} if it contains all provided metadata.
-     *
-     * @param meta Collection of metadata.
-     * @param <T> Type of returned predicate.
-     * @return Predicate that accepts subclass of {@link GridMetadataAware} 
interface and
-     *      evaluates to {@code true} if it contains all provided metadata.
-     * @see #meta(String...)
-     * @see #meta(Iterable)
-     * @see #meta(String, Object)
-     */
-    public static <T extends GridMetadataAware> IgnitePredicate<T> metaEntry(
-        @Nullable final Collection<? extends Map.Entry<String, ?>> meta) {
-        return isEmpty(meta) ? GridFunc.<T>alwaysFalse() : new P1<T>() {
-            @Override public boolean apply(T e) {
-                assert meta != null;
-
-                for (Map.Entry<String, ?> t : meta) {
-                    if (!F.eq(e.meta(t.getKey()), t.getValue()))
-                        return false;
-                }
-
-                return true;
-            }
-        };
-    }
-
-    /**
-     * Creates predicate that accepts subclass of {@link GridMetadataAware} 
interface
-     * and evaluates to {@code true} if it contains all provided metadata.
-     *
-     * @param meta Collection of metadata as a map.
-     * @param <T> Type of returned predicate.
-     * @return Predicate that accepts subclass of {@link GridMetadataAware}
-     *      interface and evaluates to {@code true} if it contains all 
provided metadata.
-     * @see #meta(String...)
-     * @see #meta(Iterable)
-     * @see #meta(String, Object)
-     * @see #metaEntry(Entry[])
-     * @see #metaEntry(Collection)
-     */
-    public static <T extends GridMetadataAware> IgnitePredicate<T> 
meta(@Nullable Map<String, ?> meta) {
-        if (isEmpty(meta))
-            return metaEntry(Collections.<Entry<String, ?>>emptySet());
-        else {
-            assert meta != null;
-
-            return metaEntry(meta.entrySet());
-        }
-    }
-
-    /**
-     * Creates predicate that accepts subclass of {@link GridMetadataAware} 
interface
-     * and evaluates to {@code true} if it contains given metadata.
-     *
-     * @param name Metadata name.
-     * @param val Metadata value.
-     * @param <T> Type of returned predicate.
-     * @return Predicate that accepts subclass of {@link GridMetadataAware} 
interface
-     *      and evaluates to {@code true} if it contains given metadata.
-     * @see #metaEntry(Entry[])
-     * @see #meta(String...)
-     * @see #meta(Iterable)
-     */
-    public static <T extends GridMetadataAware> IgnitePredicate<T> meta(String 
name, Object val) {
-        A.notNull(name, "name", val, "val");
-
-        return metaEntry(F.t(name, val));
-    }
-
-    /**
-     * Creates predicate that accepts subclass of {@link GridMetadataAware} 
interface
-     * and evaluates to {@code true} if it contains given metadata names 
(values are ignored).
-     *
-     * @param names Metadata names to evaluate by.
-     * @param <T> Type of returned predicate.
-     * @return Predicate that accepts subclass of {@link GridMetadataAware} 
interface and
-     *      evaluates to {@code true} if it contains given metadata names 
(values are ignored).
-     */
-    public static <T extends GridMetadataAware> IgnitePredicate<T> 
meta(@Nullable String... names) {
-        return meta(isEmpty(names) ? Collections.<String>emptyList() : 
asList(names));
-    }
-
-    /**
-     * Creates predicate that accepts subclass of {@link GridMetadataAware} 
interface and
-     * evaluates to {@code true} if it contains given metadata names (values 
are ignored).
-     *
-     * @param names Metadata names to evaluate by.
-     * @param <T> Type of returned predicate.
-     * @return Predicate that accepts subclass of {@link GridMetadataAware} 
interface and
-     *      evaluates to {@code true} if it contains given metadata names 
(values are ignored).
-     */
-    public static <T extends GridMetadataAware> IgnitePredicate<T> 
meta(@Nullable final Iterable<String> names) {
-        return isEmpty(names) ? GridFunc.<T>alwaysFalse() : new P1<T>() {
-            @Override public boolean apply(T e) {
-                assert names != null;
-
-                for (String name : names)
-                    if (!e.hasMeta(name))
-                        return false;
-
-                return true;
-            }
-        };
-    }
-
-    /**
      * Adds (copies) to given collection all elements in <tt>'from'</tt> array.
      *
      * @param to Collection to copy to.

Reply via email to