# ignite-103

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

Branch: refs/heads/sprint-1
Commit: 5ce635b6decb7184d8e646580ca65f0cb1fadd89
Parents: 603374c
Author: sboikov <sboi...@gridgain.com>
Authored: Wed Feb 4 15:44:48 2015 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Wed Feb 4 16:51:13 2015 +0300

----------------------------------------------------------------------
 .../ClientTcpUnreachableMultiNodeSelfTest.java  |  12 --
 .../apache/ignite/cache/CacheConfiguration.java |  63 ----------
 .../cache/query/CacheContinuousQuery.java       |  61 +---------
 .../cache/query/CacheQueryGroupIndex.java       |   9 --
 .../ignite/cache/query/CacheQuerySqlField.java  |  10 --
 .../query/annotations/QueryGroupIndex.java      |   9 --
 .../cache/query/annotations/QuerySqlField.java  |  10 --
 .../apache/ignite/client/GridClientNode.java    |  24 ----
 .../ignite/client/GridClientProtocol.java       |   4 -
 .../ignite/client/impl/GridClientNodeImpl.java  |  15 ---
 .../apache/ignite/events/IgniteEventType.java   | 120 -------------------
 .../apache/ignite/internal/GridComponent.java   |  19 +++
 .../ignite/internal/GridJobExecuteRequest.java  |  95 ++++++---------
 .../ignite/internal/GridNodeAttributes.java     |   4 -
 .../ignite/internal/GridPluginComponent.java    |   9 +-
 .../internal/managers/GridManagerAdapter.java   |   5 +
 .../managers/GridNoopManagerAdapter.java        |   5 +
 .../discovery/GridDiscoveryManager.java         |  68 +++--------
 .../processors/GridProcessorAdapter.java        |   5 +
 .../processors/cache/CacheInvokeEntry.java      |  12 +-
 .../processors/cache/GridCacheAttributes.java   |  31 +++--
 .../processors/cache/GridCacheMapEntry.java     |   4 +-
 .../processors/cache/GridCacheProcessor.java    |  14 +--
 .../GridCacheDataStructuresManager.java         |   9 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   2 +-
 .../local/atomic/GridLocalAtomicCache.java      |   2 +-
 .../query/GridCacheDistributedQueryManager.java |   2 -
 .../GridCacheContinuousQueryAdapter.java        |  80 -------------
 .../cache/transactions/IgniteTxAdapter.java     |   2 +-
 .../cache/transactions/IgniteTxEntry.java       |   2 +-
 .../transactions/IgniteTxLocalAdapter.java      |   2 +-
 .../continuous/GridContinuousProcessor.java     |   5 +
 .../dataload/IgniteDataLoaderImpl.java          |   6 +-
 .../processors/fs/GridGgfsAttributes.java       |   8 +-
 .../internal/processors/fs/GridGgfsPaths.java   |   8 +-
 .../plugin/IgnitePluginProcessor.java           |  40 +++++++
 .../processors/query/GridQueryProcessor.java    |   2 +-
 .../client/message/GridClientCacheRequest.java  |   4 +-
 .../ignite/internal/util/IgniteUtils.java       |  37 +-----
 .../apache/ignite/internal/util/typedef/X.java  |  19 ---
 .../apache/ignite/portables/PortableObject.java |  14 ---
 .../spi/discovery/DiscoverySpiDataExchange.java |   4 +-
 .../discovery/tcp/TcpClientDiscoverySpi.java    |   6 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |  31 +----
 .../TcpDiscoveryJoinRequestMessage.java         |  10 +-
 .../messages/TcpDiscoveryNodeAddedMessage.java  |  24 ++--
 .../GridCacheConcurrentTxMultiNodeTest.java     |   8 +-
 .../processors/cache/GridCacheTestValue.java    |   2 +-
 ...dCacheContinuousQueryReplicatedSelfTest.java |   4 +-
 .../GridContinuousOperationsLoadTest.java       |   9 +-
 .../ignite/loadtests/mapper/TestObject.java     |   2 +-
 .../GridAbstractDiscoverySelfTest.java          |   6 +-
 .../GridTcpDiscoverySpiStartStopSelfTest.java   |   4 +-
 .../junits/spi/GridSpiAbstractTest.java         |   6 +-
 .../hadoop/jobtracker/GridHadoopJobTracker.java |  41 +++----
 .../cache/GridCacheQueryTestValue.java          |   2 +-
 56 files changed, 276 insertions(+), 735 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/clients/src/test/java/org/apache/ignite/client/integration/ClientTcpUnreachableMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/clients/src/test/java/org/apache/ignite/client/integration/ClientTcpUnreachableMultiNodeSelfTest.java
 
b/modules/clients/src/test/java/org/apache/ignite/client/integration/ClientTcpUnreachableMultiNodeSelfTest.java
index 1b54692..847836f 100644
--- 
a/modules/clients/src/test/java/org/apache/ignite/client/integration/ClientTcpUnreachableMultiNodeSelfTest.java
+++ 
b/modules/clients/src/test/java/org/apache/ignite/client/integration/ClientTcpUnreachableMultiNodeSelfTest.java
@@ -89,18 +89,6 @@ public class ClientTcpUnreachableMultiNodeSelfTest extends 
ClientTcpMultiNodeSel
                     return node.replicaCount();
                 }
 
-                @Override public List<String> jettyAddresses() {
-                    return node.jettyAddresses();
-                }
-
-                @Override public List<String> jettyHostNames() {
-                    return node.jettyHostNames();
-                }
-
-                @Override public int httpPort() {
-                    return node.httpPort();
-                }
-
                 @Override public List<String> tcpAddresses() {
                     return node.tcpAddresses();
                 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java 
b/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
index a194ba5..efc6ae1 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
@@ -159,19 +159,9 @@ public class CacheConfiguration extends 
MutableConfiguration {
     /** Default value for load previous value flag. */
     public static final boolean DFLT_LOAD_PREV_VAL = false;
 
-    /** Default continuous query buffers queue size. */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int DFLT_CONT_QUERY_QUEUE_SIZE = 1024 * 1024;
-
     /** Default memory mode. */
     public static final CacheMemoryMode DFLT_MEMORY_MODE = 
CacheMemoryMode.ONHEAP_TIERED;
 
-    /** Default continuous query max buffer size. */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int DFLT_CONT_QUERY_MAX_BUF_SIZE = 1024;
-
     /** Default value for 'readFromBackup' flag. */
     public static final boolean DFLT_READ_FROM_BACKUP = true;
 
@@ -1602,32 +1592,6 @@ public class CacheConfiguration extends 
MutableConfiguration {
     }
 
     /**
-     * Gets maximum number of entries that can be accumulated before 
back-pressure
-     * is enabled to postpone cache updates until query listeners are notified.
-     * If your system is configured properly, then this number should never be 
reached.
-     * <p>
-     * Default value is {@link #DFLT_CONT_QUERY_QUEUE_SIZE}.
-     *
-     * @return Continuous query queue size.
-     * @deprecated Ignored in current version.
-     */
-    @Deprecated
-    public int getContinuousQueryQueueSize() {
-        return 0;
-    }
-
-    /**
-     * Sets continuous query queue size.
-     *
-     * @param contQryQueueSize Continuous query queue size.
-     * @deprecated Ignored in current version.
-     */
-    @Deprecated
-    public void setContinuousQueryQueueSize(int contQryQueueSize) {
-        // No-op.
-    }
-
-    /**
      * Gets memory mode for cache. Memory mode helps control whether value is 
stored in on-heap memory,
      * off-heap memory, or swap space. Refer to {@link CacheMemoryMode} for 
more info.
      * <p>
@@ -1649,33 +1613,6 @@ public class CacheConfiguration extends 
MutableConfiguration {
     }
 
     /**
-     * Gets the maximum buffer size for continuous queries. When the current
-     * number of entries in buffer exceeds the maximum buffer size, the buffer
-     * is flushed to the notification queue. Greater buffer size may improve 
throughput,
-     * but also may increase latency.
-     * <p>
-     * Default value is either {@link #DFLT_CONT_QUERY_MAX_BUF_SIZE}.
-     *
-     * @return Maximum buffer size for continuous queries.
-     * @deprecated Ignored in current version.
-     */
-    @Deprecated
-    public int getContinuousQueryMaximumBufferSize() {
-        return 0;
-    }
-
-    /**
-     * Sets maximum buffer size for continuous queries.
-     *
-     * @param contQryMaxBufSize Maximum buffer size for continuous queries.
-     * @deprecated Ignored in current version.
-     */
-    @Deprecated
-    public void setContinuousQueryMaximumBufferSize(int contQryMaxBufSize) {
-        // No-op.
-    }
-
-    /**
      * Gets cache interceptor.
      *
      * @return Cache interceptor.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/cache/query/CacheContinuousQuery.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheContinuousQuery.java
 
b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheContinuousQuery.java
index eb5d265..bddb7a4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheContinuousQuery.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheContinuousQuery.java
@@ -142,69 +142,12 @@ public interface CacheContinuousQuery<K, V> extends 
AutoCloseable {
      * blocking the thread that called the callback. Otherwise, you
      * can get deadlocks.
      *
-     * @param cb Local callback.
-     * @deprecated Deprecated in favor of {@link 
#localCallback(IgniteBiPredicate)} method.
-     */
-    @Deprecated
-    public void callback(@Nullable IgniteBiPredicate<UUID, 
Collection<Map.Entry<K, V>>> cb);
-
-    /**
-     * Gets local callback. See {@link #callback(IgniteBiPredicate)} for more 
information.
-     *
-     * @return Local callback.
-     * @deprecated Deprecated in favor of {@link #localCallback()} method.
-     */
-    @Deprecated
-    public IgniteBiPredicate<UUID, Collection<Map.Entry<K, V>>> callback();
-
-    /**
-     * Sets optional key-value filter. This filter is called before
-     * entry is sent to the master node.
-     * <p>
-     * <b>WARNING:</b> all operations that involve any kind of JVM-local
-     * or distributed locking (e.g., synchronization or transactional
-     * cache operations), should be executed asynchronously without
-     * blocking the thread that called the filter. Otherwise, you
-     * can get deadlocks.
-     *
-     * @param filter Key-value filter.
-     * @deprecated Deprecated in favor of {@link 
#remoteFilter(org.apache.ignite.lang.IgnitePredicate)} method.
-     */
-    @Deprecated
-    public void filter(@Nullable IgniteBiPredicate<K, V> filter);
-
-    /**
-     * Gets key-value filter. See {@link #filter(IgniteBiPredicate)} for more 
information.
-     *
-     * @return Key-value filter.
-     * @deprecated Deprecated in favor of {@link #remoteFilter()} method.
-     */
-    @Deprecated
-    @Nullable public IgniteBiPredicate<K, V> filter();
-
-    /**
-     * Sets local callback. This callback is called only
-     * in local node when new updates are received.
-     * <p>
-     * The callback predicate accepts ID of the node from where updates
-     * are received and collection of received entries. Note that
-     * for removed entries value will be {@code null}.
-     * <p>
-     * If the predicate returns {@code false}, query execution will
-     * be cancelled.
-     * <p>
-     * <b>WARNING:</b> all operations that involve any kind of JVM-local
-     * or distributed locking (e.g., synchronization or transactional
-     * cache operations), should be executed asynchronously without
-     * blocking the thread that called the callback. Otherwise, you
-     * can get deadlocks.
-     *
      * @param locCb Local callback.
      */
     public void localCallback(IgniteBiPredicate<UUID, 
Collection<CacheContinuousQueryEntry<K, V>>> locCb);
 
     /**
-     * Gets local callback. See {@link #callback(IgniteBiPredicate)} for more 
information.
+     * Gets local callback. See {@link #localCallback(IgniteBiPredicate)} for 
more information.
      *
      * @return Local callback.
      */
@@ -225,7 +168,7 @@ public interface CacheContinuousQuery<K, V> extends 
AutoCloseable {
     public void remoteFilter(@Nullable 
IgnitePredicate<CacheContinuousQueryEntry<K, V>> filter);
 
     /**
-     * Gets key-value filter. See {@link #filter(IgniteBiPredicate)} for more 
information.
+     * Gets key-value filter. See {@link #remoteFilter(IgnitePredicate)} for 
more information.
      *
      * @return Key-value filter.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryGroupIndex.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryGroupIndex.java
 
b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryGroupIndex.java
index e6eaa3c..5c15baf 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryGroupIndex.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryGroupIndex.java
@@ -33,15 +33,6 @@ public @interface CacheQueryGroupIndex {
     String name();
 
     /**
-     * If this index is unique.
-     *
-     * @return True if this index is unique, false otherwise.
-     * @deprecated No longer supported, will be ignored.
-     */
-    @Deprecated
-    boolean unique() default false;
-
-    /**
      * List of group indexes for type.
      */
     @SuppressWarnings("PublicInnerClass")

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQuerySqlField.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQuerySqlField.java
 
b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQuerySqlField.java
index c5560a5..2cdaf54 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQuerySqlField.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQuerySqlField.java
@@ -42,16 +42,6 @@ public @interface CacheQuerySqlField {
     boolean index() default false;
 
     /**
-     * Specifies whether index should be unique or not. This property only
-     * makes sense if {@link #index()} property is set to {@code true}.
-     *
-     * @return {@code True} if field index should be unique.
-     * @deprecated No longer supported, will be ignored.
-     */
-    @Deprecated
-    boolean unique() default false;
-
-    /**
      * Specifies whether index should be in descending order or not. This 
property only
      * makes sense if {@link #index()} property is set to {@code true}.
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QueryGroupIndex.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QueryGroupIndex.java
 
b/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QueryGroupIndex.java
index a4a8dfc..9c756c4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QueryGroupIndex.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QueryGroupIndex.java
@@ -33,15 +33,6 @@ public @interface QueryGroupIndex {
     String name();
 
     /**
-     * If this index is unique.
-     *
-     * @return True if this index is unique, false otherwise.
-     * @deprecated No longer supported, will be ignored.
-     */
-    @Deprecated
-    boolean unique() default false;
-
-    /**
      * List of group indexes for type.
      */
     @SuppressWarnings("PublicInnerClass")

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QuerySqlField.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QuerySqlField.java
 
b/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QuerySqlField.java
index c5f858b..bf69f04 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QuerySqlField.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/query/annotations/QuerySqlField.java
@@ -42,16 +42,6 @@ public @interface QuerySqlField {
     boolean index() default false;
 
     /**
-     * Specifies whether index should be unique or not. This property only
-     * makes sense if {@link #index()} property is set to {@code true}.
-     *
-     * @return {@code True} if field index should be unique.
-     * @deprecated No longer supported, will be ignored.
-     */
-    @Deprecated
-    boolean unique() default false;
-
-    /**
      * Specifies whether index should be in descending order or not. This 
property only
      * makes sense if {@link #index()} property is set to {@code true}.
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/client/GridClientNode.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/client/GridClientNode.java 
b/modules/core/src/main/java/org/apache/ignite/client/GridClientNode.java
index 7408543..c337ee1 100644
--- a/modules/core/src/main/java/org/apache/ignite/client/GridClientNode.java
+++ b/modules/core/src/main/java/org/apache/ignite/client/GridClientNode.java
@@ -57,22 +57,6 @@ public interface GridClientNode {
     public List<String> tcpHostNames();
 
     /**
-     * Gets list of REST HTTP server addresses of remote node.
-     *
-     * @return REST HTTP server addresses.
-     */
-    @Deprecated
-    public List<String> jettyAddresses();
-
-    /**
-     * Gets list of REST HTTP server host names of remote node.
-     *
-     * @return REST HTTP server host names.
-     */
-    @Deprecated
-    public List<String> jettyHostNames();
-
-    /**
      * Gets client TCP port of remote node.
      *
      * @return Remote tcp port.
@@ -80,14 +64,6 @@ public interface GridClientNode {
     public int tcpPort();
 
     /**
-     * Gets client HTTP port of remote node.
-     *
-     * @return Remote http port.
-     */
-    @Deprecated
-    public int httpPort();
-
-    /**
      * Gets all attributes of remote node. Note that all system and
      * environment properties are automatically includes in node
      * attributes. User can also attach custom attributes and then

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/client/GridClientProtocol.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/client/GridClientProtocol.java 
b/modules/core/src/main/java/org/apache/ignite/client/GridClientProtocol.java
index feade92..d753e8c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/client/GridClientProtocol.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/client/GridClientProtocol.java
@@ -21,10 +21,6 @@ package org.apache.ignite.client;
  * Protocol that will be used when client connections are created.
  */
 public enum GridClientProtocol {
-    /** Communication via HTTP protocol. */
-    @Deprecated
-    HTTP,
-
     /** Communication via tcp binary protocol. */
     TCP
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/client/impl/GridClientNodeImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/client/impl/GridClientNodeImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/client/impl/GridClientNodeImpl.java
index 93c36d6..7307b66 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/client/impl/GridClientNodeImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/client/impl/GridClientNodeImpl.java
@@ -128,26 +128,11 @@ public class GridClientNodeImpl implements GridClientNode 
{
     }
 
     /** {@inheritDoc} */
-    @Override public List<String> jettyAddresses() {
-        throw new UnsupportedOperationException();
-    }
-
-    /** {@inheritDoc} */
-    @Override public List<String> jettyHostNames() {
-        throw new UnsupportedOperationException();
-    }
-
-    /** {@inheritDoc} */
     @Override public int tcpPort() {
         return tcpPort;
     }
 
     /** {@inheritDoc} */
-    @Override public int httpPort() {
-        throw new UnsupportedOperationException();
-    }
-
-    /** {@inheritDoc} */
     @Override public Map<String, Object> attributes() {
         return Collections.unmodifiableMap(attrs);
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/events/IgniteEventType.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/events/IgniteEventType.java 
b/modules/core/src/main/java/org/apache/ignite/events/IgniteEventType.java
index 52fe4ce..b9d7aa3 100644
--- a/modules/core/src/main/java/org/apache/ignite/events/IgniteEventType.java
+++ b/modules/core/src/main/java/org/apache/ignite/events/IgniteEventType.java
@@ -605,126 +605,6 @@ public interface IgniteEventType {
     public static final int EVT_CACHE_PRELOAD_OBJECT_UNLOADED = 85;
 
     /**
-     * Built-in event type: {@code SQL} query executed.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_EXECUTED}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_SQL_QUERY_EXECUTED = 86;
-
-    /**
-     * Built-in event type: {@code SQL fields} query executed.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_EXECUTED}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_SQL_FIELDS_QUERY_EXECUTED = 87;
-
-    /**
-     * Built-in event type: {@code full text} query executed.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_EXECUTED}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_FULL_TEXT_QUERY_EXECUTED = 88;
-
-    /**
-     * Built-in event type: {@code scan} query executed.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_EXECUTED}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_SCAN_QUERY_EXECUTED = 89;
-
-    /**
-     * Built-in event type: {@code continuous} query executed.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_EXECUTED}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_CONTINUOUS_QUERY_EXECUTED = 90;
-
-    /**
-     * Built-in event type: {@code SQL} query entry read.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_OBJECT_READ}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_SQL_QUERY_OBJECT_READ = 91;
-
-    /**
-     * Built-in event type: {@code SQL fields} query result set row read.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_OBJECT_READ}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_SQL_FIELDS_QUERY_OBJECT_READ = 92;
-
-    /**
-     * Built-in event type: {@code full text} query entry read.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_OBJECT_READ}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_FULL_TEXT_QUERY_OBJECT_READ = 93;
-
-    /**
-     * Built-in event type: {@code scan} query entry read.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_OBJECT_READ}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_SCAN_QUERY_OBJECT_READ = 94;
-
-    /**
-     * Built-in event type: {@code continuous} query entry read.
-     * <p>
-     * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for
-     * internal GridGain events and should not be used by user-defined events.
-     *
-     * @deprecated Not used in current version of GridGain (replaced with 
{@link #EVT_CACHE_QUERY_OBJECT_READ}).
-     */
-    @SuppressWarnings("UnusedDeclaration")
-    @Deprecated
-    public static final int EVT_CACHE_CONTINUOUS_QUERY_OBJECT_READ = 95;
-
-    /**
      * Built-in event type: query executed.
      * <p>
      * NOTE: all types in range <b>from 1 to 1000 are reserved</b> for

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java 
b/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java
index f4e50f0..da1c63d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridComponent.java
@@ -29,6 +29,17 @@ import java.util.*;
  */
 public interface GridComponent {
     /**
+     * Unique component type for discovery data exchange.
+     */
+    enum DiscoveryDataType {
+        /** */
+        CONTINUOUS_PROC,
+
+        /** */
+        PLUGIN
+    }
+
+    /**
      * Starts grid component.
      *
      * @throws IgniteCheckedException Throws in case of any errors.
@@ -93,4 +104,12 @@ public interface GridComponent {
      * @return Validation result or {@code null} in case of success.
      */
     @Nullable public IgniteSpiNodeValidationResult validateNode(ClusterNode 
node);
+
+    /**
+     * Gets unique component type to distinguish components providing 
discovery data. Must return non-null value
+     * if component implements method {@link #collectDiscoveryData(UUID)}.
+     *
+     * @return Unique component type for discovery data exchange.
+     */
+    @Nullable public DiscoveryDataType discoveryDataType();
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java
index 409c42b..16fb117 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java
@@ -104,11 +104,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
     /** Transient since needs to hold local creation time. */
     @GridDirectTransient
-    private long createTime0 = U.currentTimeMillis();
-
-    /** @deprecated need to remove and use only {@link #createTime0}. */
-    @Deprecated
-    private long createTime = createTime0;
+    private long createTime = U.currentTimeMillis();
 
     /** */
     private IgniteUuid clsLdrId;
@@ -299,7 +295,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
      * @return This instance creation time.
      */
     public long getCreateTime() {
-        return createTime0;
+        return createTime;
     }
 
     /**
@@ -447,7 +443,6 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
         _clone.cpSpi = cpSpi;
         _clone.siblings = siblings;
         _clone.siblingsBytes = siblingsBytes;
-        _clone.createTime0 = createTime0;
         _clone.createTime = createTime;
         _clone.clsLdrId = clsLdrId;
         _clone.depMode = depMode;
@@ -484,54 +479,48 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
                 commState.idx++;
 
             case 2:
-                if (!commState.putLong(createTime))
-                    return false;
-
-                commState.idx++;
-
-            case 3:
                 if (!commState.putEnum(depMode))
                     return false;
 
                 commState.idx++;
 
-            case 4:
+            case 3:
                 if (!commState.putBoolean(dynamicSiblings))
                     return false;
 
                 commState.idx++;
 
-            case 5:
+            case 4:
                 if (!commState.putBoolean(forceLocDep))
                     return false;
 
                 commState.idx++;
 
-            case 6:
+            case 5:
                 if (!commState.putBoolean(internal))
                     return false;
 
                 commState.idx++;
 
-            case 7:
+            case 6:
                 if (!commState.putByteArray(jobAttrsBytes))
                     return false;
 
                 commState.idx++;
 
-            case 8:
+            case 7:
                 if (!commState.putByteArray(jobBytes))
                     return false;
 
                 commState.idx++;
 
-            case 9:
+            case 8:
                 if (!commState.putGridUuid(jobId))
                     return false;
 
                 commState.idx++;
 
-            case 10:
+            case 9:
                 if (ldrParticipants != null) {
                     if (commState.it == null) {
                         if (!commState.putInt(ldrParticipants.size()))
@@ -569,61 +558,61 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 11:
+            case 10:
                 if (!commState.putByteArray(sesAttrsBytes))
                     return false;
 
                 commState.idx++;
 
-            case 12:
+            case 11:
                 if (!commState.putBoolean(sesFullSup))
                     return false;
 
                 commState.idx++;
 
-            case 13:
+            case 12:
                 if (!commState.putGridUuid(sesId))
                     return false;
 
                 commState.idx++;
 
-            case 14:
+            case 13:
                 if (!commState.putByteArray(siblingsBytes))
                     return false;
 
                 commState.idx++;
 
-            case 15:
+            case 14:
                 if (!commState.putLong(startTaskTime))
                     return false;
 
                 commState.idx++;
 
-            case 16:
+            case 15:
                 if (!commState.putUuid(subjId))
                     return false;
 
                 commState.idx++;
 
-            case 17:
+            case 16:
                 if (!commState.putString(taskClsName))
                     return false;
 
                 commState.idx++;
 
-            case 18:
+            case 17:
                 if (!commState.putString(taskName))
                     return false;
 
                 commState.idx++;
 
-            case 19:
+            case 18:
                 if (!commState.putLong(timeout))
                     return false;
 
                 commState.idx++;
 
-            case 20:
+            case 19:
                 if (top != null) {
                     if (commState.it == null) {
                         if (!commState.putInt(top.size()))
@@ -650,7 +639,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 21:
+            case 20:
                 if (!commState.putString(userVer))
                     return false;
 
@@ -688,14 +677,6 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
                 commState.idx++;
 
             case 2:
-                if (buf.remaining() < 8)
-                    return false;
-
-                createTime = commState.getLong();
-
-                commState.idx++;
-
-            case 3:
                 if (buf.remaining() < 1)
                     return false;
 
@@ -705,7 +686,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 4:
+            case 3:
                 if (buf.remaining() < 1)
                     return false;
 
@@ -713,7 +694,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 5:
+            case 4:
                 if (buf.remaining() < 1)
                     return false;
 
@@ -721,7 +702,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 6:
+            case 5:
                 if (buf.remaining() < 1)
                     return false;
 
@@ -729,7 +710,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 7:
+            case 6:
                 byte[] jobAttrsBytes0 = commState.getByteArray();
 
                 if (jobAttrsBytes0 == BYTE_ARR_NOT_READ)
@@ -739,7 +720,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 8:
+            case 7:
                 byte[] jobBytes0 = commState.getByteArray();
 
                 if (jobBytes0 == BYTE_ARR_NOT_READ)
@@ -749,7 +730,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 9:
+            case 8:
                 IgniteUuid jobId0 = commState.getGridUuid();
 
                 if (jobId0 == GRID_UUID_NOT_READ)
@@ -759,7 +740,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 10:
+            case 9:
                 if (commState.readSize == -1) {
                     if (buf.remaining() < 4)
                         return false;
@@ -801,7 +782,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 11:
+            case 10:
                 byte[] sesAttrsBytes0 = commState.getByteArray();
 
                 if (sesAttrsBytes0 == BYTE_ARR_NOT_READ)
@@ -811,7 +792,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 12:
+            case 11:
                 if (buf.remaining() < 1)
                     return false;
 
@@ -819,7 +800,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 13:
+            case 12:
                 IgniteUuid sesId0 = commState.getGridUuid();
 
                 if (sesId0 == GRID_UUID_NOT_READ)
@@ -829,7 +810,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 14:
+            case 13:
                 byte[] siblingsBytes0 = commState.getByteArray();
 
                 if (siblingsBytes0 == BYTE_ARR_NOT_READ)
@@ -839,7 +820,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 15:
+            case 14:
                 if (buf.remaining() < 8)
                     return false;
 
@@ -847,7 +828,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 16:
+            case 15:
                 UUID subjId0 = commState.getUuid();
 
                 if (subjId0 == UUID_NOT_READ)
@@ -857,7 +838,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 17:
+            case 16:
                 String taskClsName0 = commState.getString();
 
                 if (taskClsName0 == STR_NOT_READ)
@@ -867,7 +848,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 18:
+            case 17:
                 String taskName0 = commState.getString();
 
                 if (taskName0 == STR_NOT_READ)
@@ -877,7 +858,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 19:
+            case 18:
                 if (buf.remaining() < 8)
                     return false;
 
@@ -885,7 +866,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 20:
+            case 19:
                 if (commState.readSize == -1) {
                     if (buf.remaining() < 4)
                         return false;
@@ -914,7 +895,7 @@ public class GridJobExecuteRequest extends 
GridTcpCommunicationMessageAdapter im
 
                 commState.idx++;
 
-            case 21:
+            case 20:
                 String userVer0 = commState.getString();
 
                 if (userVer0 == STR_NOT_READ)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/GridNodeAttributes.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/GridNodeAttributes.java 
b/modules/core/src/main/java/org/apache/ignite/internal/GridNodeAttributes.java
index da96b45..e5ed254 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/GridNodeAttributes.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/GridNodeAttributes.java
@@ -64,10 +64,6 @@ public final class GridNodeAttributes {
     public static final String ATTR_TX_CONFIG = ATTR_PREFIX + ".tx";
 
     /** Internal attribute name constant. */
-    @Deprecated
-    public static final String ATTR_CACHE_PORTABLE = ATTR_PREFIX + 
".cache.portable";
-
-    /** Internal attribute name constant. */
     public static final String ATTR_GGFS = ATTR_PREFIX + ".ggfs";
 
     /** Internal attribute name constant. */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java
index 7981fb1..d3c02d1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/GridPluginComponent.java
@@ -68,13 +68,18 @@ public class GridPluginComponent implements GridComponent {
     }
 
     /** {@inheritDoc} */
+    @Nullable @Override public DiscoveryDataType discoveryDataType() {
+        return null;
+    }
+
+    /** {@inheritDoc} */
     @Nullable @Override public Object collectDiscoveryData(UUID nodeId) {
-        return plugin.provideDiscoveryData(nodeId);
+        return null;
     }
 
     /** {@inheritDoc} */
     @Override public void onDiscoveryDataReceived(Object data) {
-        plugin.receiveDiscoveryData(data);
+        // No-op.
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
index 32baa8c..f0123da 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
@@ -581,6 +581,11 @@ public abstract class GridManagerAdapter<T extends 
IgniteSpi> implements GridMan
     }
 
     /** {@inheritDoc} */
+    @Nullable @Override public DiscoveryDataType discoveryDataType() {
+        return null;
+    }
+
+    /** {@inheritDoc} */
     @Override @Nullable public Object collectDiscoveryData(UUID nodeId) {
         return null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/managers/GridNoopManagerAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridNoopManagerAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridNoopManagerAdapter.java
index eb838ca..79f74e6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridNoopManagerAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridNoopManagerAdapter.java
@@ -67,6 +67,11 @@ public class GridNoopManagerAdapter implements GridManager {
     }
 
     /** {@inheritDoc} */
+    @Nullable @Override public DiscoveryDataType discoveryDataType() {
+        return null;
+    }
+
+    /** {@inheritDoc} */
     @Nullable @Override public Object collectDiscoveryData(UUID nodeId) {
         return null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 7b4f4be..217a2aa 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -315,71 +315,41 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<DiscoverySpi> {
         });
 
         getSpi().setDataExchange(new DiscoverySpiDataExchange() {
-            @Override public List<Object> collect(UUID nodeId) {
+            @Override public Map<Integer, Object> collect(UUID nodeId) {
                 assert nodeId != null;
 
-                List<Object> data = new ArrayList<>();
-
-                Object newCompData = null;
+                Map<Integer, Object> data = new HashMap<>();
 
                 for (GridComponent comp : ctx.components()) {
-                    if (appendLast(comp)) {
-                        assert newCompData == null;
+                    Object compData = comp.collectDiscoveryData(nodeId);
+
+                    if (compData != null) {
+                        assert comp.discoveryDataType() != null;
 
-                        newCompData = comp.collectDiscoveryData(nodeId);
+                        data.put(comp.discoveryDataType().ordinal(), compData);
                     }
-                    else
-                        data.add(comp.collectDiscoveryData(nodeId));
                 }
 
-                // Process new grid component last for preserving backward 
compatibility.
-                if (newCompData != null)
-                    data.add(newCompData);
-
                 return data;
             }
 
-            @Override public void onExchange(List<Object> data) {
-                assert data != null;
-
-                Iterator<Object> it = data.iterator();
-
-                GridComponent newComp = null;
-                Object newCompData = null;
-
-                for (GridComponent comp : ctx.components()) {
-                    if (!it.hasNext())
-                        break;
+            @Override public void onExchange(Map<Integer, Object> data) {
+                for (Map.Entry<Integer, Object> e : data.entrySet()) {
+                    GridComponent comp = null;
 
-                    if (appendLast(comp)) {
-                        assert newComp == null;
-                        assert newCompData == null;
+                    for (GridComponent c : ctx.components()) {
+                        if (c.discoveryDataType() != null && 
c.discoveryDataType().ordinal() == e.getKey()) {
+                            comp = c;
 
-                        newComp = comp;
-                        newCompData = it.next();
+                            break;
+                        }
                     }
+
+                    if (comp != null)
+                        comp.onDiscoveryDataReceived(e.getValue());
                     else
-                        comp.onDiscoveryDataReceived(it.next());
+                        U.warn(log, "Received discovery data for unknown 
component: " + e.getKey());
                 }
-
-                // Process new grid component last for preserving backward 
compatibility.
-                if (newComp != null)
-                    newComp.onDiscoveryDataReceived(newCompData);
-            }
-
-            /**
-             * @param comp Grid component.
-             * @return {@code True} if specified component should collect data 
after all other components,
-             *      {@code false} otherwise.
-             * @deprecated We shouldn't rely on exact order and size of
-             *      {@link 
org.apache.ignite.spi.discovery.DiscoverySpiDataExchange#collect(UUID)} output 
because it may easily break backward
-             *      compatibility (for example, if we will add new grid 
component in the middle of components startup
-             *      routine). This method should be changed to return map 
(component id -> collected data)
-             *      in the next major release.
-             */
-            @Deprecated
-            private boolean appendLast(GridComponent comp) {
-                return comp instanceof GridServiceProcessor;
             }
         });
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
index c49bcda..ebc7e0b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
@@ -61,6 +61,11 @@ public abstract class GridProcessorAdapter implements 
GridProcessor {
     }
 
     /** {@inheritDoc} */
+    @Nullable @Override public DiscoveryDataType discoveryDataType() {
+        return null;
+    }
+
+    /** {@inheritDoc} */
     @Override @Nullable public Object collectDiscoveryData(UUID nodeId) {
         return null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java
index ba19dda..f1781bb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.processors.cache;
 
+import org.apache.ignite.*;
 import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
@@ -28,6 +29,9 @@ import javax.cache.processor.*;
  */
 public class CacheInvokeEntry<K, V> implements MutableEntry<K, V> {
     /** */
+    private final GridCacheContext cctx;
+
+    /** */
     @GridToStringInclude
     private final K key;
 
@@ -42,9 +46,11 @@ public class CacheInvokeEntry<K, V> implements 
MutableEntry<K, V> {
      * @param key Key.
      * @param val Value.
      */
-    public CacheInvokeEntry(K key, @Nullable V val) {
+    public CacheInvokeEntry(GridCacheContext cctx, K key, @Nullable V val) {
+        assert cctx != null;
         assert key != null;
 
+        this.cctx = cctx;
         this.key = key;
         this.val = val;
     }
@@ -82,7 +88,11 @@ public class CacheInvokeEntry<K, V> implements 
MutableEntry<K, V> {
     }
 
     /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
     @Override public <T> T unwrap(Class<T> clazz) {
+        if (clazz.equals(Ignite.class))
+            return (T)cctx.kernalContext().grid();
+
         throw new IllegalArgumentException();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
index 267c61f..80d36a6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
@@ -159,6 +159,9 @@ public class GridCacheAttributes implements Externalizable {
     /** Store load previous value flag. */
     private boolean loadPrevVal;
 
+    /** Portable enabled flag. */
+    private boolean portableEnabled;
+
     /**
      * @param cfg Cache configuration.
      * @param store Cache store.
@@ -175,6 +178,7 @@ public class GridCacheAttributes implements Externalizable {
         loadPrevVal = cfg.isLoadPreviousValue();
         name = cfg.getName();
         partDistro = GridCacheUtils.distributionMode(cfg);
+        portableEnabled = cfg.isPortableEnabled();
         preloadBatchSize = cfg.getPreloadBatchSize();
         preloadMode = cfg.getPreloadMode();
         qryIdxEnabled = cfg.isQueryIndexEnabled();
@@ -527,10 +531,17 @@ public class GridCacheAttributes implements 
Externalizable {
         return indexingSpiName;
     }
 
+    /**
+     * @return Portable enabled flag.
+     */
+    public boolean portableEnabled() {
+        return portableEnabled;
+    }
+
     /** {@inheritDoc} */
     @Override public void writeExternal(ObjectOutput out) throws IOException {
-        U.writeEnum0(out, atomicityMode);
-        U.writeEnum0(out, cacheMode);
+        U.writeEnum(out, atomicityMode);
+        U.writeEnum(out, cacheMode);
         out.writeLong(dfltLockTimeout);
         out.writeLong(dfltQryTimeout);
         out.writeFloat(evictMaxOverflowRatio);
@@ -539,9 +550,9 @@ public class GridCacheAttributes implements Externalizable {
         U.writeString(out, indexingSpiName);
         out.writeBoolean(loadPrevVal);
         U.writeString(out, name);
-        U.writeEnum0(out, partDistro);
+        U.writeEnum(out, partDistro);
         out.writeInt(preloadBatchSize);
-        U.writeEnum0(out, preloadMode);
+        U.writeEnum(out, preloadMode);
         out.writeBoolean(qryIdxEnabled);
         out.writeBoolean(readThrough);
         out.writeInt(seqReserveSize);
@@ -553,7 +564,7 @@ public class GridCacheAttributes implements Externalizable {
         out.writeLong(writeBehindFlushFreq);
         out.writeInt(writeBehindFlushSize);
         out.writeInt(writeBehindFlushThreadCnt);
-        U.writeEnum0(out, writeSyncMode);
+        U.writeEnum(out, writeSyncMode);
         out.writeBoolean(writeThrough);
 
         U.writeString(out, affClsName);
@@ -575,8 +586,8 @@ public class GridCacheAttributes implements Externalizable {
 
     /** {@inheritDoc} */
     @Override public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
-        atomicityMode = CacheAtomicityMode.fromOrdinal(U.readEnumOrdinal0(in));
-        cacheMode = CacheMode.fromOrdinal(U.readEnumOrdinal0(in));
+        atomicityMode = CacheAtomicityMode.fromOrdinal(in.readByte());
+        cacheMode = CacheMode.fromOrdinal(in.readByte());
         dfltLockTimeout = in.readLong();
         dfltQryTimeout = in.readLong();
         evictMaxOverflowRatio = in.readFloat();
@@ -585,9 +596,9 @@ public class GridCacheAttributes implements Externalizable {
         indexingSpiName = U.readString(in);
         loadPrevVal = in.readBoolean();
         name = U.readString(in);
-        partDistro = CacheDistributionMode.fromOrdinal(U.readEnumOrdinal0(in));
+        partDistro = CacheDistributionMode.fromOrdinal(in.readByte());
         preloadBatchSize = in.readInt();
-        preloadMode = CachePreloadMode.fromOrdinal(U.readEnumOrdinal0(in));
+        preloadMode = CachePreloadMode.fromOrdinal(in.readByte());
         qryIdxEnabled = in.readBoolean();
         readThrough = in.readBoolean();
         seqReserveSize = in.readInt();
@@ -599,7 +610,7 @@ public class GridCacheAttributes implements Externalizable {
         writeBehindFlushFreq = in.readLong();
         writeBehindFlushSize = in.readInt();
         writeBehindFlushThreadCnt = in.readInt();
-        writeSyncMode = 
CacheWriteSynchronizationMode.fromOrdinal(U.readEnumOrdinal0(in));
+        writeSyncMode = 
CacheWriteSynchronizationMode.fromOrdinal(in.readByte());
         writeThrough = in.readBoolean();
 
         affClsName = U.readString(in);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/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 8fa46f2..4c372aa 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
@@ -1476,7 +1476,7 @@ public abstract class GridCacheMapEntry<K, V> implements 
GridCacheEntryEx<K, V>
 
                 assert entryProcessor != null;
 
-                CacheInvokeEntry<K, V> entry = new CacheInvokeEntry<>(key, 
old);
+                CacheInvokeEntry<K, V> entry = new CacheInvokeEntry<>(cctx, 
key, old);
 
                 try {
                     Object computed = entryProcessor.process(entry, 
invokeArgs);
@@ -1894,7 +1894,7 @@ public abstract class GridCacheMapEntry<K, V> implements 
GridCacheEntryEx<K, V>
 
                 EntryProcessor<K, V, ?> entryProcessor = (EntryProcessor<K, V, 
?>)writeObj;
 
-                CacheInvokeEntry<K, V> entry = new CacheInvokeEntry<>(key, 
old);
+                CacheInvokeEntry<K, V> entry = new CacheInvokeEntry<>(cctx, 
key, old);
 
                 try {
                     Object computed = entryProcessor.process(entry, 
invokeArgs);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index b1abc8e..110ab71 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -930,8 +930,6 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
 
         GridCacheAttributes[] attrVals = new 
GridCacheAttributes[ctx.config().getCacheConfiguration().length];
 
-        Map<String, Boolean> attrPortable = new HashMap<>();
-
         Map<String, String> interceptors = new HashMap<>();
 
         int i = 0;
@@ -943,16 +941,12 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
 
             attrVals[i++] = new GridCacheAttributes(cfg, 
ctx.store().configuredStore());
 
-            attrPortable.put(CU.mask(cfg.getName()), cfg.isPortableEnabled());
-
             if (cfg.getInterceptor() != null)
                 interceptors.put(cfg.getName(), 
cfg.getInterceptor().getClass().getName());
         }
 
         attrs.put(ATTR_CACHE, attrVals);
 
-        attrs.put(ATTR_CACHE_PORTABLE, attrPortable);
-
         attrs.put(ATTR_TX_CONFIG, ctx.config().getTransactionsConfiguration());
 
         if (!interceptors.isEmpty())
@@ -1184,12 +1178,8 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
                         CU.checkAttributeMismatch(log, rmtAttr.cacheName(), 
rmt, "queryIndexEnabled",
                             "Query index enabled", 
locAttr.queryIndexEnabled(), rmtAttr.queryIndexEnabled(), true);
 
-                        Boolean locPortableEnabled = 
U.portableEnabled(ctx.discovery().localNode(), locAttr.cacheName());
-                        Boolean rmtPortableEnabled = U.portableEnabled(rmt, 
locAttr.cacheName());
-
-                        if (locPortableEnabled != null && rmtPortableEnabled 
!= null)
-                            CU.checkAttributeMismatch(log, 
rmtAttr.cacheName(), rmt, "portableEnabled",
-                                "Portables enabled", locPortableEnabled, 
rmtPortableEnabled, true);
+                        CU.checkAttributeMismatch(log, rmtAttr.cacheName(), 
rmt, "portableEnabled",
+                            "Portables enabled", locAttr.portableEnabled(), 
rmtAttr.portableEnabled(), true);
 
                         if (locAttr.cacheMode() == PARTITIONED) {
                             CU.checkAttributeMismatch(log, 
rmtAttr.cacheName(), rmt, "evictSynchronized",

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheDataStructuresManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheDataStructuresManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheDataStructuresManager.java
index b9afac4..e99d88d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheDataStructuresManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheDataStructuresManager.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.datastructures;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.cache.datastructures.*;
+import org.apache.ignite.cache.query.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.cluster.*;
@@ -648,7 +649,7 @@ public final class GridCacheDataStructuresManager<K, V> 
extends GridCacheManager
         if (queueQryGuard.compareAndSet(false, true)) {
             queueQry = 
(GridCacheContinuousQueryAdapter)cctx.cache().queries().createContinuousQuery();
 
-            queueQry.filter(new QueueHeaderPredicate());
+            queueQry.remoteFilter(new QueueHeaderPredicate());
 
             queueQry.localCallback(new IgniteBiPredicate<UUID, 
Collection<GridCacheContinuousQueryEntry>>() {
                @Override public boolean apply(UUID id, 
Collection<GridCacheContinuousQueryEntry> entries) {
@@ -1430,7 +1431,7 @@ public final class GridCacheDataStructuresManager<K, V> 
extends GridCacheManager
     /**
      * Predicate for queue continuous query.
      */
-    private static class QueueHeaderPredicate implements IgniteBiPredicate, 
Externalizable {
+    private static class QueueHeaderPredicate implements 
IgnitePredicate<CacheContinuousQueryEntry>, Externalizable {
         /** */
         private static final long serialVersionUID = 0L;
 
@@ -1442,8 +1443,8 @@ public final class GridCacheDataStructuresManager<K, V> 
extends GridCacheManager
         }
 
         /** {@inheritDoc} */
-        @Override public boolean apply(Object key, Object val) {
-            return key instanceof GridCacheQueueHeaderKey;
+        @Override public boolean apply(CacheContinuousQueryEntry e) {
+            return e.getKey() instanceof GridCacheQueueHeaderKey;
         }
 
         /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index 414d64b..813b0a5 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -1331,7 +1331,7 @@ public class GridDhtAtomicCache<K, V> extends 
GridDhtCacheAdapter<K, V> {
                         CU.<K, V>empty(),
                         null);
 
-                    CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(entry.key(), old);
+                    CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(ctx, entry.key(), old);
 
                     V updated;
                     CacheInvokeResult invokeRes = null;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
index 2d05185..7048b71 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
@@ -1127,7 +1127,7 @@ public class GridLocalAtomicCache<K, V> extends 
GridCacheAdapter<K, V> {
                             CU.<K, V>empty(),
                             null);
 
-                        CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(entry.key(), old);
+                        CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(ctx, entry.key(), old);
 
                         V updated;
                         CacheInvokeResult invokeRes = null;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheDistributedQueryManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheDistributedQueryManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheDistributedQueryManager.java
index 105f2d1..b294f9e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheDistributedQueryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheDistributedQueryManager.java
@@ -654,9 +654,7 @@ public class GridCacheDistributedQueryManager<K, V> extends 
GridCacheQueryManage
      * @param req Request.
      * @param nodes Nodes.
      * @throws IgniteCheckedException In case of error.
-     * @deprecated Need to remove nodes filtration after breaking 
compatibility.
      */
-    @Deprecated
     @SuppressWarnings("unchecked")
     private void sendRequest(
         final GridCacheDistributedQueryFuture<?, ?, ?> fut,

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java
index cf3da57..ba34d6b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java
@@ -107,38 +107,6 @@ public class GridCacheContinuousQueryAdapter<K, V> 
implements CacheContinuousQue
     }
 
     /** {@inheritDoc} */
-    @Override public void callback(final IgniteBiPredicate<UUID, 
Collection<Map.Entry<K, V>>> cb) {
-        if (cb != null) {
-            this.cb = cb;
-
-            localCallback(new CallbackWrapper<>(cb));
-        }
-        else
-            localCallback(null);
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public IgniteBiPredicate<UUID, Collection<Map.Entry<K, 
V>>> callback() {
-        return cb;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void filter(final IgniteBiPredicate<K, V> filter) {
-        if (filter != null) {
-            this.filter = filter;
-
-            remoteFilter(new FilterWrapper<>(filter));
-        }
-        else
-            remoteFilter(null);
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public IgniteBiPredicate<K, V> filter() {
-        return filter;
-    }
-
-    /** {@inheritDoc} */
     @Override public void localCallback(IgniteBiPredicate<UUID, 
Collection<CacheContinuousQueryEntry<K, V>>> locCb) {
         if (!guard.enterBusy())
             throw new IllegalStateException("Continuous query can't be changed 
after it was executed.");
@@ -334,52 +302,4 @@ public class GridCacheContinuousQueryAdapter<K, V> 
implements CacheContinuousQue
     @Override public String toString() {
         return S.toString(GridCacheContinuousQueryAdapter.class, this);
     }
-
-    /**
-     * Deprecated callback wrapper.
-     */
-    static class CallbackWrapper<K, V> implements IgniteBiPredicate<UUID, 
Collection<CacheContinuousQueryEntry<K, V>>> {
-        /** Serialization ID. */
-        private static final long serialVersionUID = 0L;
-
-        /** */
-        private final IgniteBiPredicate<UUID, Collection<Map.Entry<K, V>>> cb;
-
-        /**
-         * @param cb Deprecated callback.
-         */
-        private CallbackWrapper(IgniteBiPredicate<UUID, 
Collection<Map.Entry<K, V>>> cb) {
-            this.cb = cb;
-        }
-
-        /** {@inheritDoc} */
-        @SuppressWarnings("unchecked")
-        @Override public boolean apply(UUID nodeId, 
Collection<CacheContinuousQueryEntry<K, V>> entries) {
-            return cb.apply(nodeId, 
(Collection<Map.Entry<K,V>>)(Collection)entries);
-        }
-    }
-
-    /**
-     * Deprecated filter wrapper.
-     */
-    static class FilterWrapper<K, V> implements 
IgnitePredicate<CacheContinuousQueryEntry<K, V>> {
-        /** Serialization ID. */
-        private static final long serialVersionUID = 0L;
-
-        /** */
-        private final IgniteBiPredicate<K, V> filter;
-
-        /**
-         * @param filter Deprecated callback.
-         */
-        FilterWrapper(IgniteBiPredicate<K, V> filter) {
-            this.filter = filter;
-        }
-
-        /** {@inheritDoc} */
-        @SuppressWarnings("unchecked")
-        @Override public boolean apply(CacheContinuousQueryEntry<K, V> entry) {
-            return filter.apply(entry.getKey(), entry.getValue());
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index 7007d61..fb8d51e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@ -1204,7 +1204,7 @@ public abstract class IgniteTxAdapter<K, V> extends 
GridMetadataAwareAdapter
                 boolean modified = false;
 
                 for (T2<EntryProcessor<K, V, ?>, Object[]> t : 
txEntry.entryProcessors()) {
-                    CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(txEntry.key(), val);
+                    CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(txEntry.context(), txEntry.key(), val);
 
                     try {
                         EntryProcessor processor = t.get1();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
index f2513f2..a6e39ce 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
@@ -647,7 +647,7 @@ public class IgniteTxEntry<K, V> implements 
GridPeerDeployAware, Externalizable,
     public V applyEntryProcessors(V val) {
         for (T2<EntryProcessor<K, V, ?>, Object[]> t : entryProcessors()) {
             try {
-                CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(key, val);
+                CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(ctx, key, val);
 
                 EntryProcessor processor = t.get1();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index b4944f0..7cbdc9e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -2445,7 +2445,7 @@ public abstract class IgniteTxLocalAdapter<K, V> extends 
IgniteTxAdapter<K, V>
             Object res = null;
 
             for (T2<EntryProcessor<K, V, ?>, Object[]> t : 
txEntry.entryProcessors()) {
-                CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(txEntry.key(), val);
+                CacheInvokeEntry<K, V> invokeEntry = new 
CacheInvokeEntry<>(txEntry.context(), txEntry.key(), val);
 
                 EntryProcessor<K, V, ?> entryProcessor = t.get1();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
index cc6c5e8..662ce11 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
@@ -311,6 +311,11 @@ public class GridContinuousProcessor extends 
GridProcessorAdapter {
     }
 
     /** {@inheritDoc} */
+    @Nullable @Override public DiscoveryDataType discoveryDataType() {
+        return DiscoveryDataType.CONTINUOUS_PROC;
+    }
+
+    /** {@inheritDoc} */
     @Override @Nullable public Object collectDiscoveryData(UUID nodeId) {
         if (!nodeId.equals(ctx.localNodeId())) {
             pendingLock.lock();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/dataload/IgniteDataLoaderImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/dataload/IgniteDataLoaderImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/dataload/IgniteDataLoaderImpl.java
index 462cf8e..6253f2c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/dataload/IgniteDataLoaderImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/dataload/IgniteDataLoaderImpl.java
@@ -181,11 +181,11 @@ public class IgniteDataLoaderImpl<K, V> implements 
IgniteDataLoader<K, V>, Delay
         if (node == null)
             throw new IllegalStateException("Cache doesn't exist: " + 
cacheName);
 
-        Map<String, Boolean> attrPortable = 
node.attribute(ATTR_CACHE_PORTABLE);
+        GridCacheAttributes attrs = U.cacheAttributes(node, cacheName);
 
-        Boolean portableEnabled0 = attrPortable == null ? null : 
attrPortable.get(CU.mask(cacheName));
+        assert attrs != null : cacheName;
 
-        portableEnabled = portableEnabled0 == null ? false : portableEnabled0;
+        portableEnabled = attrs.portableEnabled();
 
         discoLsnr = new GridLocalEventListener() {
             @Override public void onEvent(IgniteEvent evt) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsAttributes.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsAttributes.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsAttributes.java
index ba3dc09..74b52c6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsAttributes.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsAttributes.java
@@ -147,7 +147,7 @@ public class GridGgfsAttributes implements Externalizable {
         out.writeInt(grpSize);
         U.writeString(out, metaCacheName);
         U.writeString(out, dataCacheName);
-        U.writeEnum0(out, dfltMode);
+        U.writeEnum(out, dfltMode);
         out.writeBoolean(fragmentizerEnabled);
 
         if (pathModes != null) {
@@ -157,7 +157,7 @@ public class GridGgfsAttributes implements Externalizable {
 
             for (Map.Entry<String, IgniteFsMode> pathMode : 
pathModes.entrySet()) {
                 U.writeString(out, pathMode.getKey());
-                U.writeEnum0(out, pathMode.getValue());
+                U.writeEnum(out, pathMode.getValue());
             }
         }
         else
@@ -171,7 +171,7 @@ public class GridGgfsAttributes implements Externalizable {
         grpSize = in.readInt();
         metaCacheName = U.readString(in);
         dataCacheName = U.readString(in);
-        dfltMode = IgniteFsMode.fromOrdinal(U.readEnumOrdinal0(in));
+        dfltMode = IgniteFsMode.fromOrdinal(in.readByte());
         fragmentizerEnabled = in.readBoolean();
 
         if (in.readBoolean()) {
@@ -180,7 +180,7 @@ public class GridGgfsAttributes implements Externalizable {
             pathModes = new HashMap<>(size, 1.0f);
 
             for (int i = 0; i < size; i++)
-                pathModes.put(U.readString(in), 
IgniteFsMode.fromOrdinal(U.readEnumOrdinal0(in)));
+                pathModes.put(U.readString(in), 
IgniteFsMode.fromOrdinal(in.readByte()));
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsPaths.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsPaths.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsPaths.java
index 99181cd..21aceb6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsPaths.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsPaths.java
@@ -86,7 +86,7 @@ public class GridGgfsPaths implements Externalizable {
     /** {@inheritDoc} */
     @Override public void writeExternal(ObjectOutput out) throws IOException {
         U.writeStringMap(out, props);
-        U.writeEnum0(out, dfltMode);
+        U.writeEnum(out, dfltMode);
 
         if (pathModes != null) {
             out.writeBoolean(true);
@@ -94,7 +94,7 @@ public class GridGgfsPaths implements Externalizable {
 
             for (T2<IgniteFsPath, IgniteFsMode> pathMode : pathModes) {
                 pathMode.getKey().writeExternal(out);
-                U.writeEnum0(out, pathMode.getValue());
+                U.writeEnum(out, pathMode.getValue());
             }
         }
         else
@@ -104,7 +104,7 @@ public class GridGgfsPaths implements Externalizable {
     /** {@inheritDoc} */
     @Override public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
         props = U.readStringMap(in);
-        dfltMode = IgniteFsMode.fromOrdinal(U.readEnumOrdinal0(in));
+        dfltMode = IgniteFsMode.fromOrdinal(in.readByte());
 
         if (in.readBoolean()) {
             int size = in.readInt();
@@ -115,7 +115,7 @@ public class GridGgfsPaths implements Externalizable {
                 IgniteFsPath path = new IgniteFsPath();
                 path.readExternal(in);
 
-                T2<IgniteFsPath, IgniteFsMode> entry = new T2<>(path, 
IgniteFsMode.fromOrdinal(U.readEnumOrdinal0(in)));
+                T2<IgniteFsPath, IgniteFsMode> entry = new T2<>(path, 
IgniteFsMode.fromOrdinal(in.readByte()));
 
                 pathModes.add(entry);
             }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
index e546daa..bcd5bed 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
@@ -22,6 +22,7 @@ import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.*;
 import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.plugin.*;
 import org.jetbrains.annotations.*;
 
@@ -169,6 +170,45 @@ public class IgnitePluginProcessor extends 
GridProcessorAdapter {
         return null;
     }
 
+    /** {@inheritDoc} */
+    @Nullable @Override public DiscoveryDataType discoveryDataType() {
+        return DiscoveryDataType.PLUGIN;
+    }
+
+    /** {@inheritDoc} */
+    @Nullable @Override public Object collectDiscoveryData(UUID nodeId) {
+        Map<String, Object> discData = null;
+
+        for (Map.Entry<String, PluginProvider> e : plugins.entrySet()) {
+            Object data = e.getValue().provideDiscoveryData(nodeId);
+
+            if (data != null) {
+                if (discData == null)
+                    discData = new HashMap<>();
+
+                discData.put(e.getKey(), data);
+            }
+        }
+
+        return discData;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void onDiscoveryDataReceived(Object data) {
+        Map<String, Object> discData = (Map<String, Object>)data;
+
+        if (discData != null) {
+            for (Map.Entry<String, Object> e : discData.entrySet()) {
+                PluginProvider provider = plugins.get(e.getKey());
+
+                if (provider != null)
+                    provider.receiveDiscoveryData(e.getValue());
+                else
+                    U.warn(log, "Received discovery data for unknown plugin: " 
+ e.getKey());
+            }
+        }
+    }
+
     /**
      *
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index da89e49..4d66566 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -816,7 +816,7 @@ public class GridQueryProcessor extends 
GridProcessorAdapter {
             if (!sqlAnn.name().isEmpty())
                 prop.name(sqlAnn.name());
 
-            if (sqlAnn.index() || sqlAnn.unique()) {
+            if (sqlAnn.index()) {
                 String idxName = prop.name() + "_idx";
 
                 desc.addIndex(idxName, isGeometryClass(prop.type()) ? 
GEO_SPATIAL : SORTED);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/client/message/GridClientCacheRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/client/message/GridClientCacheRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/client/message/GridClientCacheRequest.java
index 3abf76d..0bfe08a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/client/message/GridClientCacheRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/client/message/GridClientCacheRequest.java
@@ -280,7 +280,7 @@ public class GridClientCacheRequest extends 
GridClientAbstractMessage {
     @Override public void writeExternal(ObjectOutput out) throws IOException {
         super.writeExternal(out);
 
-        U.writeEnum0(out, op);
+        U.writeEnum(out, op);
 
         U.writeString(out, cacheName);
 
@@ -298,7 +298,7 @@ public class GridClientCacheRequest extends 
GridClientAbstractMessage {
     @Override public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
         super.readExternal(in);
 
-        op = GridCacheOperation.fromOrdinal(U.readEnumOrdinal0(in));
+        op = GridCacheOperation.fromOrdinal(in.readByte());
 
         cacheName = U.readString(in);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5ce635b6/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java 
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 7538f12..73fedea 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -5071,39 +5071,6 @@ public abstract class IgniteUtils {
     }
 
     /**
-     * Writes enum to output stream accounting for {@code null} values.
-     *
-     * @param out Output stream to write to.
-     * @param e Enum value to write, possibly {@code null}.
-     * @throws IOException If write failed.
-     *
-     * @deprecated Need to remove when release will not be to support
-     * backward compatible. Use {@code U.writeEnum(DataOutput, Enum)}.
-     */
-    @Deprecated
-    public static <E extends Enum> void writeEnum0(DataOutput out, E e) throws 
IOException {
-        out.writeBoolean(e == null);
-
-        if (e != null)
-            out.writeInt(e.ordinal());
-    }
-
-    /**
-     * Reads enum ordinal from input stream accounting for {@code null} values.
-     *
-     * @param in Stream to read from.
-     * @return Read enum ordinal, possibly {@code -1} means {@code null}.
-     * @throws IOException If read failed.
-     *
-     * @deprecated Need to remove when release will not be to support
-     * backward compatible. Use {@code Enum.fromOrdinal(int)}.
-     */
-    @Deprecated
-    public static int readEnumOrdinal0(DataInput in) throws IOException {
-        return !in.readBoolean() ? in.readInt() : -1;
-    }
-
-    /**
      * Gets collection value by index.
      *
      * @param vals Collection of values.
@@ -7260,9 +7227,9 @@ public abstract class IgniteUtils {
      * @return Portable enabled flag.
      */
     @Nullable public static Boolean portableEnabled(ClusterNode n, @Nullable 
String cacheName) {
-        Map<String, Boolean> map = n.attribute(ATTR_CACHE_PORTABLE);
+        GridCacheAttributes attrs = cacheAttributes(n, cacheName);
 
-        return map == null ? null : map.get(cacheName);
+        return attrs == null ? false : attrs.portableEnabled();
     }
 
     /**

Reply via email to