You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/02/15 08:52:07 UTC

[23/50] [abbrv] ignite git commit: Merge branch 'ignite-1.5' of https://git-wip-us.apache.org/repos/asf/ignite into ignite-split2

Merge branch 'ignite-1.5' of https://git-wip-us.apache.org/repos/asf/ignite into ignite-split2

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java
#	modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
#	modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
#	modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
#	modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteBinaryCacheQueryTestSuite.java


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

Branch: refs/heads/ignite-1232
Commit: dddb817bb77ca263f76291517466541bc1238c0c
Parents: 16242b7 a3a8138
Author: S.Vladykin <sv...@gridgain.com>
Authored: Mon Dec 14 21:12:05 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Mon Dec 14 21:12:05 2015 +0300

----------------------------------------------------------------------
 .gitignore                                      |    1 +
 assembly/docfiles/ignite_logo.png               |  Bin 0 -> 24315 bytes
 assembly/release-fabric-base.xml                |   31 +-
 bin/ignite.bat                                  |    7 +-
 bin/include/parseargs.bat                       |    4 +-
 examples/pom.xml                                |    2 +-
 examples/schema-import/README.txt               |    2 +-
 examples/schema-import/pom.xml                  |    2 +-
 .../java/org/apache/ignite/schema/Demo.java     |    6 +-
 ...ComputeClientBinaryTaskExecutionExample.java |    4 +-
 .../CacheClientBinaryPutGetExample.java         |    8 +-
 .../datagrid/CacheClientBinaryQueryExample.java |   15 +-
 .../store/auto/CacheBinaryAutoStoreExample.java |   38 +-
 .../examples/datagrid/CacheQueryExample.java    |    6 +
 .../datagrid/CacheTransactionExample.java       |    4 +-
 .../starschema/CacheStarSchemaExample.java      |    9 +-
 .../store/auto/CacheAutoStoreExample.java       |   81 +-
 .../messaging/MessagingPingPongExample.java     |    4 -
 .../ignite/examples/model/Organization.java     |   16 +-
 .../apache/ignite/examples/model/Person.java    |   40 +-
 .../ignite/examples/util/DbH2ServerStartup.java |   31 +-
 .../examples/CacheClientBinaryExampleTest.java  |   46 +
 .../CacheClientPortableExampleTest.java         |   46 -
 .../ComputeClientBinaryExampleTest.java         |   37 +
 .../ComputeClientPortableExampleTest.java       |   37 -
 .../testsuites/IgniteExamplesSelfTestSuite.java |   15 +-
 .../examples/MessagingExamplesSelfTest.java     |    2 -
 modules/aop/pom.xml                             |    2 +-
 .../apache/ignite/gridify/AbstractAopTest.java  |   32 +-
 modules/apache-license-gen/pom.xml              |    2 +-
 modules/aws/pom.xml                             |    2 +-
 modules/camel/pom.xml                           |    2 +-
 modules/clients/pom.xml                         |   62 +-
 .../client/impl/ClientCacheFlagsCodecTest.java  |    8 +-
 .../src/test/resources/spring-server-node.xml   |    8 +-
 .../test/resources/spring-server-ssl-node.xml   |    8 +-
 modules/cloud/pom.xml                           |    2 +-
 modules/codegen/pom.xml                         |    2 +-
 .../ignite/codegen/MessageCodeGenerator.java    |    1 +
 modules/core/pom.xml                            |   10 +-
 .../java/org/apache/ignite/IgniteBinary.java    |  124 +-
 .../java/org/apache/ignite/IgniteCache.java     |    8 +-
 .../main/java/org/apache/ignite/Ignition.java   |   18 +-
 .../ignite/binary/BinaryCollectionFactory.java  |   33 +
 .../apache/ignite/binary/BinaryMapFactory.java  |   33 +
 .../apache/ignite/binary/BinaryRawReader.java   |    8 +-
 .../org/apache/ignite/binary/BinaryReader.java  |   13 +-
 .../org/apache/ignite/cache/QueryEntity.java    |    3 +-
 .../affinity/AffinityNodeHashResolver.java      |    6 +-
 .../store/jdbc/CacheAbstractJdbcStore.java      |    5 +-
 .../cache/store/jdbc/CacheJdbcPojoStore.java    |    2 +-
 .../configuration/BinaryConfiguration.java      |    4 +-
 .../configuration/CacheConfiguration.java       |    5 +-
 .../configuration/IgniteConfiguration.java      |    4 +-
 .../configuration/TransactionConfiguration.java |   47 +-
 .../apache/ignite/internal/GridComponent.java   |    3 +-
 .../ignite/internal/GridKernalContextImpl.java  |    2 +-
 .../ignite/internal/GridPluginComponent.java    |    4 +-
 .../apache/ignite/internal/IgniteKernal.java    |   52 +-
 .../ignite/internal/IgniteNodeAttributes.java   |    4 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |   65 +-
 .../ignite/internal/MarshallerContextImpl.java  |   23 +-
 .../binary/BinaryCachingMetadataHandler.java    |   70 +
 .../internal/binary/BinaryClassDescriptor.java  |  813 ++++
 .../ignite/internal/binary/BinaryContext.java   | 1102 +++++
 .../ignite/internal/binary/BinaryEnumCache.java |   69 +
 .../internal/binary/BinaryEnumObjectImpl.java   |  311 ++
 .../internal/binary/BinaryFieldAccessor.java    |  856 ++++
 .../ignite/internal/binary/BinaryFieldImpl.java |  116 +
 .../internal/binary/BinaryInternalIdMapper.java |  161 +
 .../internal/binary/BinaryMarshaller.java       |  142 +
 .../ignite/internal/binary/BinaryMetadata.java  |  263 ++
 .../binary/BinaryMetadataCollector.java         |  277 ++
 .../internal/binary/BinaryMetadataHandler.java  |   44 +
 .../binary/BinaryNoopMetadataHandler.java       |   53 +
 .../ignite/internal/binary/BinaryObjectEx.java  |   30 +
 .../internal/binary/BinaryObjectExImpl.java     |  251 ++
 .../internal/binary/BinaryObjectImpl.java       |  569 +++
 .../binary/BinaryObjectOffheapImpl.java         |  417 ++
 .../internal/binary/BinaryPositionReadable.java |   47 +
 .../internal/binary/BinaryPrimitives.java       |  382 ++
 .../internal/binary/BinaryRawReaderEx.java      |   33 +
 .../internal/binary/BinaryRawWriterEx.java      |   60 +
 .../internal/binary/BinaryReaderExImpl.java     | 2028 +++++++++
 .../internal/binary/BinaryReaderHandles.java    |  108 +
 .../binary/BinaryReaderHandlesHolder.java       |   46 +
 .../binary/BinaryReaderHandlesHolderImpl.java   |   44 +
 .../ignite/internal/binary/BinarySchema.java    |  494 +++
 .../internal/binary/BinarySchemaRegistry.java   |  172 +
 .../binary/BinaryThreadLocalContext.java        |   69 +
 .../ignite/internal/binary/BinaryTypeImpl.java  |   93 +
 .../ignite/internal/binary/BinaryUtils.java     | 1864 ++++++++
 .../ignite/internal/binary/BinaryWriteMode.java |  178 +
 .../internal/binary/BinaryWriterExImpl.java     | 1768 ++++++++
 .../internal/binary/BinaryWriterHandles.java    |  101 +
 .../binary/BinaryWriterSchemaHolder.java        |  148 +
 .../internal/binary/GridBinaryMarshaller.java   |  286 ++
 .../binary/builder/BinaryAbstractLazyValue.java |   57 +
 .../binary/builder/BinaryBuilderEnum.java       |  115 +
 .../binary/builder/BinaryBuilderReader.java     |  846 ++++
 .../BinaryBuilderSerializationAware.java        |   31 +
 .../binary/builder/BinaryBuilderSerializer.java |  217 +
 .../builder/BinaryEnumArrayLazyValue.java       |  113 +
 .../binary/builder/BinaryLazyArrayList.java     |  167 +
 .../binary/builder/BinaryLazyLinkedList.java    |  218 +
 .../internal/binary/builder/BinaryLazyMap.java  |  221 +
 .../internal/binary/builder/BinaryLazySet.java  |   92 +
 .../binary/builder/BinaryLazyValue.java         |   28 +
 .../builder/BinaryModifiableLazyValue.java      |   52 +
 .../builder/BinaryObjectArrayLazyValue.java     |   90 +
 .../binary/builder/BinaryObjectBuilderImpl.java |  572 +++
 .../binary/builder/BinaryPlainBinaryObject.java |   53 +
 .../binary/builder/BinaryPlainLazyValue.java    |   49 +
 .../binary/builder/BinaryValueWithType.java     |   76 +
 .../internal/binary/builder/package-info.java   |   22 +
 .../ignite/internal/binary/package-info.java    |   22 +
 .../streams/BinaryAbstractInputStream.java      |  379 ++
 .../streams/BinaryAbstractOutputStream.java     |  347 ++
 .../binary/streams/BinaryAbstractStream.java    |   80 +
 .../binary/streams/BinaryHeapInputStream.java   |  166 +
 .../binary/streams/BinaryHeapOutputStream.java  |  176 +
 .../binary/streams/BinaryInputStream.java       |  162 +
 .../binary/streams/BinaryMemoryAllocator.java   |   57 +
 .../streams/BinaryMemoryAllocatorChunk.java     |  117 +
 .../streams/BinaryOffheapInputStream.java       |  144 +
 .../streams/BinaryOffheapOutputStream.java      |  222 +
 .../binary/streams/BinaryOutputStream.java      |  259 ++
 .../internal/binary/streams/BinaryStream.java   |   53 +
 .../internal/binary/streams/package-info.java   |   22 +
 .../internal/client/GridClientCacheFlag.java    |   10 +-
 .../internal/client/GridClientCompute.java      |    4 +-
 .../client/GridClientConfiguration.java         |    4 +-
 .../client/impl/GridClientComputeImpl.java      |   20 +-
 .../impl/connection/GridClientConnection.java   |    6 +-
 .../GridClientConnectionManagerAdapter.java     |    6 +-
 .../connection/GridClientNioTcpConnection.java  |   34 +-
 .../internal/direct/DirectMessageWriter.java    |  108 +-
 .../internal/managers/GridManagerAdapter.java   |    5 +-
 .../managers/communication/GridIoManager.java   |    3 +-
 .../communication/GridIoMessageFactory.java     |   12 +-
 .../deployment/GridDeploymentManager.java       |    5 +-
 .../portable/BinaryCachingMetadataHandler.java  |   70 -
 .../internal/portable/BinaryEnumCache.java      |   69 -
 .../internal/portable/BinaryEnumObjectImpl.java |  311 --
 .../internal/portable/BinaryFieldAccessor.java  |  866 ----
 .../internal/portable/BinaryFieldImpl.java      |  116 -
 .../portable/BinaryInternalIdMapper.java        |  161 -
 .../internal/portable/BinaryMarshaller.java     |  142 -
 .../internal/portable/BinaryMetadata.java       |  180 -
 .../portable/BinaryMetadataCollector.java       |  277 --
 .../portable/BinaryMetadataHandler.java         |   44 -
 .../portable/BinaryNoopMetadataHandler.java     |   53 -
 .../internal/portable/BinaryObjectEx.java       |   30 -
 .../internal/portable/BinaryObjectExImpl.java   |  251 --
 .../internal/portable/BinaryObjectImpl.java     |  580 ---
 .../portable/BinaryObjectOffheapImpl.java       |  429 --
 .../internal/portable/BinaryRawReaderEx.java    |   33 -
 .../internal/portable/BinaryRawWriterEx.java    |   60 -
 .../internal/portable/BinaryReaderExImpl.java   | 2020 ---------
 .../internal/portable/BinaryReaderHandles.java  |  108 -
 .../portable/BinaryReaderHandlesHolder.java     |   46 -
 .../portable/BinaryReaderHandlesHolderImpl.java |   44 -
 .../portable/BinaryThreadLocalContext.java      |   69 -
 .../internal/portable/BinaryTypeImpl.java       |   93 -
 .../internal/portable/BinaryWriteMode.java      |  181 -
 .../internal/portable/BinaryWriterExImpl.java   | 1833 --------
 .../internal/portable/BinaryWriterHandles.java  |  101 -
 .../portable/BinaryWriterSchemaHolder.java      |  148 -
 .../portable/GridPortableMarshaller.java        |  307 --
 .../portable/PortableClassDescriptor.java       |  814 ----
 .../internal/portable/PortableContext.java      | 1112 -----
 .../portable/PortablePositionReadable.java      |   47 -
 .../internal/portable/PortablePrimitives.java   |  382 --
 .../internal/portable/PortableSchema.java       |  466 --
 .../portable/PortableSchemaRegistry.java        |  172 -
 .../ignite/internal/portable/PortableUtils.java | 1979 ---------
 .../builder/BinaryObjectBuilderImpl.java        |  580 ---
 .../builder/PortableAbstractLazyValue.java      |   57 -
 .../portable/builder/PortableBuilderEnum.java   |  116 -
 .../portable/builder/PortableBuilderReader.java |  859 ----
 .../PortableBuilderSerializationAware.java      |   31 -
 .../builder/PortableBuilderSerializer.java      |  222 -
 .../builder/PortableEnumArrayLazyValue.java     |  114 -
 .../portable/builder/PortableLazyArrayList.java |  166 -
 .../builder/PortableLazyLinkedList.java         |  217 -
 .../portable/builder/PortableLazyMap.java       |  220 -
 .../portable/builder/PortableLazyMapEntry.java  |   68 -
 .../portable/builder/PortableLazySet.java       |   92 -
 .../portable/builder/PortableLazyValue.java     |   28 -
 .../builder/PortableModifiableLazyValue.java    |   52 -
 .../builder/PortableObjectArrayLazyValue.java   |   91 -
 .../builder/PortablePlainLazyValue.java         |   49 -
 .../builder/PortablePlainPortableObject.java    |   53 -
 .../portable/builder/PortableValueWithType.java |   76 -
 .../internal/portable/builder/package-info.java |   22 -
 .../ignite/internal/portable/package-info.java  |   22 -
 .../streams/PortableAbstractInputStream.java    |  379 --
 .../streams/PortableAbstractOutputStream.java   |  347 --
 .../streams/PortableAbstractStream.java         |   80 -
 .../streams/PortableHeapInputStream.java        |  166 -
 .../streams/PortableHeapOutputStream.java       |  176 -
 .../portable/streams/PortableInputStream.java   |  162 -
 .../streams/PortableMemoryAllocator.java        |   57 -
 .../streams/PortableMemoryAllocatorChunk.java   |  117 -
 .../streams/PortableOffheapInputStream.java     |  144 -
 .../streams/PortableOffheapOutputStream.java    |  222 -
 .../portable/streams/PortableOutputStream.java  |  259 --
 .../portable/streams/PortableStream.java        |   53 -
 .../internal/portable/streams/package-info.java |   22 -
 .../processors/GridProcessorAdapter.java        |    5 +-
 .../CacheDefaultBinaryAffinityKeyMapper.java    |   10 +-
 .../processors/cache/CacheInvokeEntry.java      |   10 +-
 .../processors/cache/CacheLazyEntry.java        |   34 +-
 .../processors/cache/CacheObjectContext.java    |   74 +-
 .../processors/cache/CacheOperationContext.java |   12 +-
 .../processors/cache/GridCacheAdapter.java      |  168 +-
 .../cache/GridCacheConcurrentMap.java           |  736 +---
 .../processors/cache/GridCacheContext.java      |   44 +-
 .../processors/cache/GridCacheEntryEx.java      |    8 +-
 .../processors/cache/GridCacheEventManager.java |   24 +-
 .../processors/cache/GridCacheIoManager.java    |    5 +-
 .../processors/cache/GridCacheMapEntry.java     |   98 +-
 .../cache/GridCacheMapEntryFactory.java         |   13 +-
 .../cache/GridCacheOffheapSwapEntry.java        |    4 +-
 .../processors/cache/GridCacheProcessor.java    |   45 +-
 .../processors/cache/GridCacheProxyImpl.java    |    2 +-
 .../processors/cache/GridCacheReturn.java       |   10 +-
 .../processors/cache/IgniteCacheProxy.java      |   36 +-
 .../processors/cache/IgniteInternalCache.java   |   48 +-
 .../cache/binary/BinaryMetadataKey.java         |   82 +
 .../CacheDefaultBinaryAffinityKeyMapper.java    |   51 +
 .../cache/binary/CacheObjectBinaryContext.java  |   56 +
 .../binary/CacheObjectBinaryProcessor.java      |  106 +
 .../binary/CacheObjectBinaryProcessorImpl.java  |  911 ++++
 .../cache/binary/IgniteBinaryImpl.java          |  178 +
 .../processors/cache/binary/package-info.java   |   22 +
 .../CacheDataStructuresManager.java             |   11 +-
 .../distributed/GridDistributedCacheEntry.java  |   14 +-
 .../distributed/GridDistributedLockRequest.java |    2 +-
 .../dht/CacheDistributedGetFutureAdapter.java   |   10 +-
 .../dht/GridDhtAffinityAssignmentResponse.java  |    2 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |   21 +-
 .../distributed/dht/GridDhtCacheEntry.java      |   14 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |    4 +-
 .../dht/GridDhtOffHeapCacheEntry.java           |   15 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |    2 +-
 .../distributed/dht/GridNoStorageCacheMap.java  |    4 +-
 .../dht/GridPartitionedGetFuture.java           |   14 +-
 .../dht/GridPartitionedSingleGetFuture.java     |   26 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   49 +-
 .../dht/atomic/GridDhtAtomicCacheEntry.java     |   16 +-
 .../atomic/GridDhtAtomicOffHeapCacheEntry.java  |   15 +-
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |    4 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |    4 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |    4 +-
 .../dht/colocated/GridDhtColocatedCache.java    |   49 +-
 .../colocated/GridDhtColocatedCacheEntry.java   |   14 +-
 .../GridDhtColocatedOffHeapCacheEntry.java      |   15 +-
 .../colocated/GridDhtDetachedCacheEntry.java    |    4 +-
 .../GridDhtPartitionsExchangeFuture.java        |    4 +-
 .../preloader/GridDhtPartitionsFullMessage.java |    8 +-
 .../distributed/near/GridNearAtomicCache.java   |   10 +-
 .../distributed/near/GridNearCacheAdapter.java  |   18 +-
 .../distributed/near/GridNearCacheEntry.java    |   22 +-
 .../distributed/near/GridNearGetFuture.java     |   22 +-
 .../near/GridNearOffHeapCacheEntry.java         |   15 +-
 .../near/GridNearTransactionalCache.java        |   12 +-
 .../cache/distributed/near/GridNearTxLocal.java |    6 +-
 .../cache/jta/CacheJtaManagerAdapter.java       |    4 +-
 .../processors/cache/local/GridLocalCache.java  |    8 +-
 .../cache/local/GridLocalCacheEntry.java        |   15 +-
 .../local/atomic/GridLocalAtomicCache.java      |   82 +-
 .../CacheDefaultPortableAffinityKeyMapper.java  |   51 -
 .../portable/CacheObjectBinaryProcessor.java    |  106 -
 .../CacheObjectBinaryProcessorImpl.java         |  904 ----
 .../portable/CacheObjectPortableContext.java    |   56 -
 .../cache/portable/IgniteBinaryImpl.java        |  178 -
 .../cache/portable/PortableMetadataKey.java     |   82 -
 .../processors/cache/portable/package-info.java |   22 -
 .../query/GridCacheDistributedQueryManager.java |    8 +-
 .../cache/query/GridCacheQueryAdapter.java      |   32 +-
 .../query/GridCacheQueryFutureAdapter.java      |    4 +-
 .../cache/query/GridCacheQueryManager.java      |   64 +-
 .../cache/query/GridCacheQueryRequest.java      |   22 +-
 .../continuous/CacheContinuousQueryEvent.java   |    8 +-
 .../cache/store/CacheOsStoreManager.java        |   12 +-
 .../cache/store/CacheStoreManager.java          |   10 +-
 .../store/GridCacheStoreManagerAdapter.java     |   18 +-
 .../transactions/IgniteTxLocalAdapter.java      |   44 +-
 .../cache/transactions/IgniteTxLocalEx.java     |    6 +-
 .../cacheobject/IgniteCacheObjectProcessor.java |   16 +-
 .../IgniteCacheObjectProcessorImpl.java         |    6 +-
 .../processors/cacheobject/NoOpBinary.java      |    2 +-
 .../datastreamer/DataStreamerEntry.java         |    6 +-
 .../datastructures/DataStructuresProcessor.java |  165 +-
 .../GridTransactionalCacheQueueImpl.java        |   32 +-
 .../jobmetrics/GridJobMetricsProcessor.java     |    8 +-
 .../platform/PlatformAbstractPredicate.java     |    6 +-
 .../platform/PlatformAbstractTarget.java        |   20 +-
 .../processors/platform/PlatformContext.java    |   10 +-
 .../platform/PlatformContextImpl.java           |   27 +-
 .../platform/PlatformExtendedException.java     |    4 +-
 .../platform/PlatformNoopProcessor.java         |    4 +-
 .../processors/platform/PlatformProcessor.java  |    8 +-
 .../platform/PlatformProcessorImpl.java         |   38 +-
 .../platform/cache/PlatformCache.java           |   34 +-
 .../cache/PlatformCacheEntryFilterImpl.java     |    6 +-
 .../cache/PlatformCacheEntryProcessorImpl.java  |   16 +-
 .../platform/cache/PlatformCacheIterator.java   |    4 +-
 .../PlatformCachePartialUpdateException.java    |   16 +-
 .../cache/affinity/PlatformAffinity.java        |    6 +-
 .../query/PlatformAbstractQueryCursor.java      |    4 +-
 .../PlatformContinuousQueryRemoteFilter.java    |    4 +-
 .../cache/query/PlatformFieldsQueryCursor.java  |    4 +-
 .../cache/query/PlatformQueryCursor.java        |    4 +-
 .../cache/store/PlatformCacheStoreCallback.java |    4 +-
 .../callback/PlatformCallbackGateway.java       |    8 +-
 .../callback/PlatformCallbackUtils.java         |    6 +-
 .../platform/cluster/PlatformClusterGroup.java  |    6 +-
 .../cluster/PlatformClusterNodeFilterImpl.java  |    6 +-
 .../platform/compute/PlatformAbstractJob.java   |    4 +-
 .../platform/compute/PlatformAbstractTask.java  |    4 +-
 .../platform/compute/PlatformClosureJob.java    |    4 +-
 .../platform/compute/PlatformCompute.java       |   20 +-
 .../platform/compute/PlatformFullJob.java       |    4 +-
 .../platform/compute/PlatformFullTask.java      |    6 +-
 .../cpp/PlatformCppConfigurationClosure.java    |    4 +-
 .../datastreamer/PlatformDataStreamer.java      |   15 +-
 .../PlatformStreamReceiverImpl.java             |   20 +-
 .../dotnet/PlatformDotNetCacheStore.java        |   18 +-
 .../PlatformDotNetConfigurationClosure.java     |   20 +-
 .../dotnet/PlatformDotNetServiceImpl.java       |    8 +-
 .../events/PlatformEventFilterListenerImpl.java |    6 +-
 .../platform/events/PlatformEvents.java         |    4 +-
 .../platform/memory/PlatformInputStream.java    |    6 +-
 .../platform/memory/PlatformOutputStream.java   |    6 +-
 .../messaging/PlatformMessageFilterImpl.java    |    6 +-
 .../messaging/PlatformMessageLocalFilter.java   |    2 +-
 .../platform/messaging/PlatformMessaging.java   |    6 +-
 .../services/PlatformAbstractService.java       |   32 +-
 .../platform/services/PlatformService.java      |    6 +-
 .../platform/services/PlatformServices.java     |   32 +-
 .../transactions/PlatformTransactions.java      |    4 +-
 .../platform/utils/PlatformFutureUtils.java     |    4 +-
 .../platform/utils/PlatformReaderBiClosure.java |    4 +-
 .../platform/utils/PlatformReaderClosure.java   |    4 +-
 .../platform/utils/PlatformUtils.java           |    6 +-
 .../platform/utils/PlatformWriterBiClosure.java |    4 +-
 .../platform/utils/PlatformWriterClosure.java   |    4 +-
 .../query/GridQueryCacheObjectsIterator.java    |   14 +-
 .../processors/query/GridQueryProcessor.java    |   91 +-
 .../message/GridClientBinaryMetaData.java       |   71 +
 .../message/GridClientPortableMetaData.java     |   71 -
 .../client/message/GridClientTaskRequest.java   |   14 +-
 .../internal/util/GridMessageCollection.java    |  160 +
 .../ignite/internal/util/IgniteUtils.java       |   18 +-
 .../internal/util/UUIDCollectionMessage.java    |   42 +-
 .../util/nio/GridNioBackPressureControl.java    |   14 +-
 .../ignite/internal/util/nio/GridNioServer.java |   11 +-
 .../ignite/internal/visor/cache/VisorCache.java |   13 +
 .../internal/visor/query/VisorQueryJob.java     |   76 +-
 .../internal/visor/query/VisorQueryUtils.java   |    5 +-
 .../internal/visor/util/VisorMimeTypes.java     |   10 +-
 .../marshaller/optimized/package-info.java      |    2 +-
 .../marshaller/portable/package-info.java       |   22 -
 .../PlatformDotNetBinaryConfiguration.java      |    6 +-
 .../dotnet/PlatformDotNetConfiguration.java     |    8 +-
 .../org/apache/ignite/spi/IgniteSpiThread.java  |   10 +-
 .../sharedfs/SharedFsCheckpointSpi.java         |    4 +-
 .../communication/tcp/TcpCommunicationSpi.java  |    6 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   17 +-
 .../TcpDiscoveryMulticastIpFinder.java          |  106 +-
 .../org/apache/ignite/thread/IgniteThread.java  |   45 +-
 .../ignite/thread/IgniteThreadPoolExecutor.java |   37 +-
 .../java/org/jsr166/ConcurrentHashMap8.java     |    2 +-
 .../resources/META-INF/classnames.properties    |   68 +-
 .../core/src/main/resources/ignite.properties   |    2 +-
 .../ignite/binary/test1/1.1/test1-1.1.jar       |  Bin 0 -> 2548 bytes
 .../ignite/binary/test1/1.1/test1-1.1.pom       |    9 +
 .../binary/test1/maven-metadata-local.xml       |   12 +
 .../ignite/binary/test2/1.1/test2-1.1.jar       |  Bin 0 -> 1361 bytes
 .../ignite/binary/test2/1.1/test2-1.1.pom       |    9 +
 .../binary/test2/maven-metadata-local.xml       |   12 +
 ...heJdbcPojoStoreBinaryMarshallerSelfTest.java |    2 +-
 ...eJdbcStoreAbstractMultithreadedSelfTest.java |    5 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |    2 +-
 .../GridEventStorageCheckAllEventsSelfTest.java |   22 +-
 .../IgniteClientReconnectAbstractTest.java      |   96 +-
 .../IgniteClientReconnectAtomicsTest.java       |   57 +
 .../IgniteClientReconnectCacheTest.java         |   15 +-
 .../IgniteClientReconnectCollectionsTest.java   |   51 +
 .../internal/binary/BinaryEnumsSelfTest.java    |  446 ++
 .../binary/BinaryFieldsAbstractSelfTest.java    |  718 +++
 .../binary/BinaryFieldsHeapSelfTest.java        |   30 +
 .../binary/BinaryFieldsOffheapSelfTest.java     |   60 +
 .../BinaryFooterOffsetsAbstractSelfTest.java    |  205 +
 .../binary/BinaryFooterOffsetsHeapSelfTest.java |   30 +
 .../BinaryFooterOffsetsOffheapSelfTest.java     |   60 +
 .../binary/BinaryMarshallerSelfTest.java        | 4167 ++++++++++++++++++
 .../BinaryObjectBuilderAdditionalSelfTest.java  | 1264 ++++++
 .../binary/BinaryObjectBuilderSelfTest.java     | 1108 +++++
 .../binary/GridBinaryAffinityKeySelfTest.java   |  234 +
 ...GridBinaryMarshallerCtxDisabledSelfTest.java |  247 ++
 .../binary/GridBinaryMetaDataSelfTest.java      |  371 ++
 .../binary/GridBinaryWildcardsSelfTest.java     |  464 ++
 .../binary/TestCachingMetadataHandler.java      |   45 +
 .../GridBinaryMarshalerAwareTestClass.java      |   67 +
 .../mutabletest/GridBinaryTestClasses.java      |  484 ++
 .../binary/mutabletest/package-info.java        |   22 +
 .../BinaryFieldsHeapNonCompactSelfTest.java     |   30 +
 .../BinaryFieldsOffheapNonCompactSelfTest.java  |   30 +
 ...naryFooterOffsetsHeapNonCompactSelfTest.java |   30 +
 ...yFooterOffsetsOffheapNonCompactSelfTest.java |   30 +
 .../BinaryMarshallerNonCompactSelfTest.java     |   30 +
 ...jectBuilderAdditionalNonCompactSelfTest.java |   30 +
 .../BinaryObjectBuilderNonCompactSelfTest.java  |   30 +
 .../ignite/internal/binary/package-info.java    |   22 +
 .../binary/test/GridBinaryTestClass1.java       |   28 +
 .../binary/test/GridBinaryTestClass2.java       |   24 +
 .../internal/binary/test/package-info.java      |   22 +
 .../test/subpackage/GridBinaryTestClass3.java   |   24 +
 .../binary/test/subpackage/package-info.java    |   22 +
 .../internal/portable/BinaryEnumsSelfTest.java  |  446 --
 .../portable/BinaryFieldsAbstractSelfTest.java  |  718 ---
 .../portable/BinaryFieldsHeapSelfTest.java      |   30 -
 .../portable/BinaryFieldsOffheapSelfTest.java   |   60 -
 .../BinaryFooterOffsetsAbstractSelfTest.java    |  205 -
 .../BinaryFooterOffsetsHeapSelfTest.java        |   30 -
 .../BinaryFooterOffsetsOffheapSelfTest.java     |   60 -
 .../portable/BinaryMarshallerSelfTest.java      | 3877 ----------------
 .../BinaryObjectBuilderAdditionalSelfTest.java  | 1291 ------
 .../portable/BinaryObjectBuilderSelfTest.java   | 1103 -----
 .../GridPortableAffinityKeySelfTest.java        |  234 -
 ...idPortableMarshallerCtxDisabledSelfTest.java |  247 --
 .../portable/GridPortableMetaDataSelfTest.java  |  371 --
 .../portable/GridPortableWildcardsSelfTest.java |  464 --
 .../portable/TestCachingMetadataHandler.java    |   45 -
 .../GridBinaryMarshalerAwareTestClass.java      |   67 -
 .../mutabletest/GridPortableTestClasses.java    |  443 --
 .../portable/mutabletest/package-info.java      |   22 -
 .../BinaryFieldsHeapNonCompactSelfTest.java     |   30 -
 .../BinaryFieldsOffheapNonCompactSelfTest.java  |   30 -
 ...naryFooterOffsetsHeapNonCompactSelfTest.java |   30 -
 ...yFooterOffsetsOffheapNonCompactSelfTest.java |   30 -
 .../BinaryMarshallerNonCompactSelfTest.java     |   30 -
 ...jectBuilderAdditionalNonCompactSelfTest.java |   30 -
 .../BinaryObjectBuilderNonCompactSelfTest.java  |   30 -
 .../ignite/internal/portable/package-info.java  |   22 -
 .../portable/test/GridPortableTestClass1.java   |   28 -
 .../portable/test/GridPortableTestClass2.java   |   24 -
 .../internal/portable/test/package-info.java    |   22 -
 .../test/subpackage/GridPortableTestClass3.java |   24 -
 .../portable/test/subpackage/package-info.java  |   22 -
 ...cheAbstractFullApiMultithreadedSelfTest.java |    2 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |   29 +-
 .../cache/GridCacheAlwaysEvictionPolicy.java    |    2 +-
 ...eAtomicEntryProcessorDeploymentSelfTest.java |   69 +-
 .../cache/GridCacheConcurrentMapSelfTest.java   |   11 -
 .../GridCacheConditionalDeploymentSelfTest.java |   20 +-
 .../cache/GridCacheDeploymentSelfTest.java      |   22 +-
 .../GridCacheOffHeapTieredAbstractSelfTest.java |    8 +-
 .../GridCacheOnCopyFlagAbstractSelfTest.java    |    6 +-
 .../processors/cache/GridCacheTestEntryEx.java  |    8 +-
 .../IgniteCacheEntryListenerAbstractTest.java   |    8 +-
 .../IgniteCacheStoreValueAbstractTest.java      |    6 +-
 .../IgniteStartCacheInTransactionSelfTest.java  |    8 +
 ...gniteTopologyValidatorAbstractCacheTest.java |   18 +-
 ...iteTopologyValidatorAbstractTxCacheTest.java |    1 -
 .../IgniteTxExceptionAbstractSelfTest.java      |   59 +-
 .../GridBinaryCacheEntryMemorySizeSelfTest.java |   48 +
 ...ryDuplicateIndexObjectsAbstractSelfTest.java |  161 +
 ...yAtomicEntryProcessorDeploymentSelfTest.java |  129 +
 ...naryObjectsAbstractDataStreamerSelfTest.java |  192 +
 ...aryObjectsAbstractMultiThreadedSelfTest.java |  241 +
 .../GridCacheBinaryObjectsAbstractSelfTest.java |  981 +++++
 .../GridCacheBinaryStoreAbstractSelfTest.java   |  300 ++
 .../GridCacheBinaryStoreBinariesSelfTest.java   |   66 +
 .../GridCacheBinaryStoreObjectsSelfTest.java    |   55 +
 ...ctionalEntryProcessorDeploymentSelfTest.java |   31 +
 ...ntNodeBinaryObjectMetadataMultinodeTest.java |  295 ++
 ...CacheClientNodeBinaryObjectMetadataTest.java |  221 +
 .../DataStreamProcessorBinarySelfTest.java      |   71 +
 .../GridDataStreamerImplSelfTest.java           |  345 ++
 .../GridCacheAffinityRoutingBinarySelfTest.java |   54 +
 ...OnlyBinaryDataStreamerMultiNodeSelfTest.java |   29 +
 ...BinaryDataStreamerMultithreadedSelfTest.java |   47 +
 ...cPartitionedOnlyBinaryMultiNodeSelfTest.java |   28 +
 ...titionedOnlyBinaryMultithreadedSelfTest.java |   47 +
 ...sNearPartitionedByteArrayValuesSelfTest.java |   41 +
 ...sPartitionedOnlyByteArrayValuesSelfTest.java |   42 +
 ...ateIndexObjectPartitionedAtomicSelfTest.java |   38 +
 ...xObjectPartitionedTransactionalSelfTest.java |   41 +
 ...AtomicNearDisabledOffheapTieredSelfTest.java |   29 +
 ...BinaryObjectsAtomicNearDisabledSelfTest.java |   51 +
 ...inaryObjectsAtomicOffheapTieredSelfTest.java |   29 +
 .../GridCacheBinaryObjectsAtomicSelfTest.java   |   51 +
 ...tionedNearDisabledOffheapTieredSelfTest.java |   30 +
 ...yObjectsPartitionedNearDisabledSelfTest.java |   51 +
 ...ObjectsPartitionedOffheapTieredSelfTest.java |   30 +
 ...idCacheBinaryObjectsPartitionedSelfTest.java |   51 +
 .../dht/GridCacheMemoryModeBinarySelfTest.java  |   36 +
 ...dCacheOffHeapTieredAtomicBinarySelfTest.java |   48 +
 .../GridCacheOffHeapTieredBinarySelfTest.java   |   48 +
 ...fHeapTieredEvictionAtomicBinarySelfTest.java |   96 +
 ...acheOffHeapTieredEvictionBinarySelfTest.java |   96 +
 ...ridCacheBinaryObjectsReplicatedSelfTest.java |   51 +
 ...idCacheBinaryObjectsAtomicLocalSelfTest.java |   32 +
 ...BinaryObjectsLocalOffheapTieredSelfTest.java |   29 +
 .../GridCacheBinaryObjectsLocalSelfTest.java    |   51 +
 ...IgniteCacheAbstractExecutionContextTest.java |    7 +-
 ...eAbstractDataStructuresFailoverSelfTest.java |  140 +-
 .../CacheTryLockMultithreadedTest.java          |  116 +
 .../GridCacheAbstractNodeRestartSelfTest.java   |   25 +-
 ...niteCacheClientNodeChangingTopologyTest.java |  125 +-
 .../near/GridCacheNearTxExceptionSelfTest.java  |   20 -
 .../near/NearCachePutAllMultinodeTest.java      |  167 +
 ...eRebalancingUnmarshallingFailedSelfTest.java |    2 +-
 ...idCacheReplicatedUnswapAdvancedSelfTest.java |   44 +-
 .../GridCacheReplicatedPreloadSelfTest.java     |   44 +-
 .../BinaryAtomicCacheLocalEntriesSelfTest.java  |   30 +
 .../BinaryTxCacheLocalEntriesSelfTest.java      |   84 +
 ...naryObjectsAbstractDataStreamerSelfTest.java |  192 -
 ...aryObjectsAbstractMultiThreadedSelfTest.java |  241 -
 .../GridCacheBinaryObjectsAbstractSelfTest.java |  981 -----
 ...ntNodeBinaryObjectMetadataMultinodeTest.java |  295 --
 ...CacheClientNodeBinaryObjectMetadataTest.java |  221 -
 .../GridCachePortableStoreAbstractSelfTest.java |  300 --
 .../GridCachePortableStoreObjectsSelfTest.java  |   55 -
 ...GridCachePortableStorePortablesSelfTest.java |   66 -
 ...ridPortableCacheEntryMemorySizeSelfTest.java |   48 -
 ...leDuplicateIndexObjectsAbstractSelfTest.java |  161 -
 .../DataStreamProcessorPortableSelfTest.java    |   71 -
 .../GridDataStreamerImplSelfTest.java           |  345 --
 ...ridCacheAffinityRoutingPortableSelfTest.java |   54 -
 ...lyPortableDataStreamerMultiNodeSelfTest.java |   29 -
 ...rtableDataStreamerMultithreadedSelfTest.java |   47 -
 ...artitionedOnlyPortableMultiNodeSelfTest.java |   28 -
 ...tionedOnlyPortableMultithreadedSelfTest.java |   47 -
 ...AtomicNearDisabledOffheapTieredSelfTest.java |   29 -
 ...BinaryObjectsAtomicNearDisabledSelfTest.java |   51 -
 ...inaryObjectsAtomicOffheapTieredSelfTest.java |   29 -
 .../GridCacheBinaryObjectsAtomicSelfTest.java   |   51 -
 ...tionedNearDisabledOffheapTieredSelfTest.java |   30 -
 ...yObjectsPartitionedNearDisabledSelfTest.java |   51 -
 ...ObjectsPartitionedOffheapTieredSelfTest.java |   30 -
 ...idCacheBinaryObjectsPartitionedSelfTest.java |   51 -
 .../GridCacheMemoryModePortableSelfTest.java    |   36 -
 ...acheOffHeapTieredAtomicPortableSelfTest.java |   48 -
 ...eapTieredEvictionAtomicPortableSelfTest.java |   96 -
 ...heOffHeapTieredEvictionPortableSelfTest.java |   96 -
 .../GridCacheOffHeapTieredPortableSelfTest.java |   48 -
 ...ateIndexObjectPartitionedAtomicSelfTest.java |   38 -
 ...xObjectPartitionedTransactionalSelfTest.java |   41 -
 ...sNearPartitionedByteArrayValuesSelfTest.java |   41 -
 ...sPartitionedOnlyByteArrayValuesSelfTest.java |   42 -
 ...ridCacheBinaryObjectsReplicatedSelfTest.java |   51 -
 ...idCacheBinaryObjectsAtomicLocalSelfTest.java |   32 -
 ...BinaryObjectsLocalOffheapTieredSelfTest.java |   29 -
 .../GridCacheBinaryObjectsLocalSelfTest.java    |   51 -
 ...ContinuousQueryFailoverAbstractSelfTest.java |  186 +-
 .../DataStreamProcessorSelfTest.java            |   25 +-
 .../loadtests/hashmap/GridHashMapLoadTest.java  |    4 +-
 .../marshaller/GridMarshallerAbstractTest.java  |   32 +-
 .../PlatformComputeBinarizableArgTask.java      |    4 +-
 .../platform/PlatformComputeEchoTask.java       |   20 +-
 .../platform/PlatformEventsWriteEventTask.java  |    4 +-
 .../GridSessionCheckpointAbstractSelfTest.java  |   32 +-
 .../session/GridSessionCheckpointSelfTest.java  |   12 +-
 ...lientDiscoverySpiFailureTimeoutSelfTest.java |    5 +-
 .../tcp/TcpClientDiscoverySpiMulticastTest.java |   97 +-
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |  130 +-
 .../TcpDiscoveryIpFinderAbstractSelfTest.java   |    2 +-
 .../TcpDiscoveryMulticastIpFinderSelfTest.java  |   16 +-
 .../testframework/junits/GridAbstractTest.java  |   11 +-
 .../ignite/testframework/junits/IgniteMock.java |   10 +-
 .../junits/IgniteTestResources.java             |   14 +-
 .../IgniteBinaryCacheFullApiTestSuite.java      |   37 +
 .../testsuites/IgniteBinaryCacheTestSuite.java  |  101 +
 ...ObjectsCacheDataStructuresSelfTestSuite.java |    2 +-
 ...BinaryObjectsCacheExpiryPolicyTestSuite.java |    2 +-
 ...gniteBinaryObjectsCacheRestartTestSuite.java |    2 +-
 .../IgniteBinaryObjectsCacheTestSuite2.java     |    2 +-
 .../IgniteBinaryObjectsCacheTestSuite3.java     |   13 +-
 .../IgniteBinaryObjectsCacheTestSuite4.java     |    2 +-
 ...IgniteBinaryObjectsComputeGridTestSuite.java |    2 +-
 .../IgniteBinaryObjectsTestSuite.java           |  119 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |    4 +-
 .../IgnitePortableCacheFullApiTestSuite.java    |   37 -
 .../IgnitePortableCacheTestSuite.java           |  102 -
 .../IgnitePortableObjectsTestSuite.java         |  114 -
 .../testsuites/IgniteUtilSelfTestSuite.java     |    2 +
 .../ignite/util/GridMessageCollectionTest.java  |  127 +
 .../ignite/portable/test1/1.1/test1-1.1.jar     |  Bin 2548 -> 0 bytes
 .../ignite/portable/test1/1.1/test1-1.1.pom     |    9 -
 .../portable/test1/maven-metadata-local.xml     |   12 -
 .../ignite/portable/test2/1.1/test2-1.1.jar     |  Bin 1361 -> 0 bytes
 .../ignite/portable/test2/1.1/test2-1.1.pom     |    9 -
 .../portable/test2/maven-metadata-local.xml     |   12 -
 modules/docker/1.0.0/Dockerfile                 |   40 +
 modules/docker/1.0.0/run.sh                     |   50 +
 modules/docker/1.1.0/Dockerfile                 |   40 +
 modules/docker/1.1.0/run.sh                     |   50 +
 modules/docker/1.2.0/Dockerfile                 |   40 +
 modules/docker/1.2.0/run.sh                     |   50 +
 modules/docker/1.3.0/Dockerfile                 |   40 +
 modules/docker/1.3.0/run.sh                     |   50 +
 modules/docker/1.4.0/Dockerfile                 |   40 +
 modules/docker/1.4.0/run.sh                     |   50 +
 modules/docker/Dockerfile                       |   41 +-
 modules/docker/build_users_libs.sh              |   39 -
 modules/docker/download_ignite.sh               |   49 -
 modules/docker/execute.sh                       |   62 -
 modules/docker/run.sh                           |   36 +-
 modules/extdata/p2p/pom.xml                     |    2 +-
 .../CacheDeploymentBinaryEntryProcessor.java    |   35 +
 ...cheDeploymentBinaryObjectEntryProcessor.java |   36 +
 .../CacheDeploymentPortableEntryProcessor.java  |   35 -
 .../tests/p2p/CacheDeploymentTestValue3.java    |   41 +
 .../apache/ignite/tests/p2p/cache/Person.java   |   77 +
 .../ignite/tests/p2p/cache/PersonKey.java       |   74 +
 .../extdata/uri/modules/uri-dependency/pom.xml  |    2 +-
 modules/extdata/uri/pom.xml                     |    2 +-
 modules/flume/pom.xml                           |    2 +-
 modules/gce/pom.xml                             |    2 +-
 modules/geospatial/pom.xml                      |    2 +-
 modules/hadoop/pom.xml                          |    2 +-
 modules/hibernate/pom.xml                       |    2 +-
 .../HibernateTransactionalDataRegion.java       |   18 +-
 .../HibernateL2CacheTransactionalSelfTest.java  |   23 +-
 modules/indexing/pom.xml                        |    2 +-
 .../processors/query/h2/IgniteH2Indexing.java   |   13 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |    2 +-
 .../IgniteBinaryObjectFieldsQuerySelfTest.java  |  246 ++
 ...niteCacheP2pUnmarshallingQueryErrorTest.java |   15 +-
 .../query/IgniteSqlSplitterSelfTest.java        |    4 +-
 .../IgniteBinaryCacheQueryTestSuite.java        |  116 +
 .../IgnitePortableCacheQueryTestSuite.java      |  114 -
 modules/jcl/pom.xml                             |    2 +-
 modules/jms11/pom.xml                           |    2 +-
 modules/jta/pom.xml                             |   11 +-
 .../cache/jta/jndi/CacheJndiTmFactory.java      |  132 +
 .../processors/cache/jta/CacheJtaManager.java   |   41 +-
 .../cache/AbstarctCacheJtaSelfTest.java         |  183 +
 .../cache/CacheJndiTmFactorySelfTest.java       |  166 +
 ...CacheJtaConfigurationValidationSelfTest.java |    4 +-
 ...CacheJtaFactoryConfigValidationSelfTest.java |  142 +
 .../processors/cache/GridCacheJtaSelfTest.java  |  221 -
 .../cache/GridCacheReplicatedJtaSelfTest.java   |   32 -
 .../cache/GridJtaLifecycleAwareSelfTest.java    |  191 +
 .../GridPartitionedCacheJtaFactorySelfTest.java |   41 +
 ...titionedCacheJtaLookupClassNameSelfTest.java |   83 +
 .../GridReplicatedCacheJtaFactorySelfTest.java  |   32 +
 ...plicatedCacheJtaLookupClassNameSelfTest.java |   32 +
 .../GridTmLookupLifecycleAwareSelfTest.java     |  122 -
 .../ignite/testsuites/IgniteJtaTestSuite.java   |   26 +-
 modules/kafka/pom.xml                           |    2 +-
 modules/log4j/pom.xml                           |    2 +-
 modules/log4j2/pom.xml                          |    2 +-
 modules/mesos/pom.xml                           |    2 +-
 modules/mqtt/pom.xml                            |    2 +-
 modules/osgi-karaf/pom.xml                      |    5 +-
 .../osgi-karaf/src/main/resources/features.xml  |   11 +-
 modules/osgi-paxlogging/pom.xml                 |    6 +-
 modules/osgi/pom.xml                            |    5 +-
 .../ignite/osgi/classloaders/package-info.java  |   21 +
 .../org/apache/ignite/osgi/package-info.java    |   21 +
 .../ignite/osgi/AbstractIgniteKarafTest.java    |    2 -
 .../IgniteKarafFeaturesInstallationTest.java    |    2 +-
 .../ignite/osgi/IgniteOsgiServiceTest.java      |    2 +-
 modules/platforms/cpp/common/configure.ac       |    2 +-
 modules/platforms/cpp/common/src/java.cpp       |    8 +-
 modules/platforms/cpp/core-test/configure.ac    |    2 +-
 .../src/binary_reader_writer_raw_test.cpp       |   10 +-
 .../core-test/src/binary_reader_writer_test.cpp |   10 +-
 modules/platforms/cpp/core/configure.ac         |    2 +-
 .../core/include/ignite/binary/binary_consts.h  |   29 +-
 .../cpp/core/include/ignite/ignition.h          |   41 +-
 modules/platforms/cpp/cpp.dxg                   | 1722 ++++++++
 modules/platforms/cpp/examples/configure.ac     |    2 +-
 modules/platforms/cpp/ignite/configure.ac       |    2 +-
 .../Properties/AssemblyInfo.cs                  |    4 +-
 .../Properties/AssemblyInfo.cs                  |    4 +-
 .../Binary/BinarySelfTest.cs                    |   67 +
 .../Config/marshaller-explicit.xml              |    2 +-
 .../Properties/AssemblyInfo.cs                  |    4 +-
 .../Apache.Ignite.Core.csproj                   |    5 +
 .../Cache/Query/IQueryCursor.cs                 |    2 +-
 .../Apache.Ignite.Core/Cache/Query/QueryBase.cs |    2 +-
 .../Store/CacheParallelLoadStoreAdapter.cs      |    4 +-
 .../Cache/Store/CacheStoreAdapter.cs            |   12 +-
 .../Cache/Store/ICacheStore.cs                  |   36 +-
 .../Apache.Ignite.Core/Cluster/ICluster.cs      |    2 +-
 .../Cluster/IClusterMetrics.cs                  |    6 +-
 .../Apache.Ignite.Core/Cluster/IClusterNode.cs  |    6 +-
 .../Apache.Ignite.Core/Compute/IComputeTask.cs  |    2 +-
 .../Datastream/IDataStreamer.cs                 |   12 +-
 .../Apache.Ignite.Core/Events/CacheEvent.cs     |    4 +-
 .../Apache.Ignite.Core/Events/TaskEvent.cs      |    2 +-
 .../dotnet/Apache.Ignite.Core/IIgnite.cs        |    6 +-
 .../dotnet/Apache.Ignite.Core/Ignition.cs       |   24 +-
 .../Impl/Binary/BinaryObjectBuilder.cs          |    8 +-
 .../Impl/Binary/BinaryObjectHeader.cs           |   10 +-
 .../Impl/Binary/BinaryReflectiveActions.cs      |    4 +-
 .../Impl/Binary/BinarySystemHandlers.cs         |   34 +-
 .../Impl/Binary/BinaryUtils.cs                  |   94 +-
 .../Impl/Binary/Metadata/BinaryTypeHolder.cs    |    1 +
 .../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs  |    2 -
 .../Impl/Common/DelegateConverter.cs            |   15 +-
 .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs    |    8 +
 .../Apache.Ignite.Core/Impl/NativeMethods.cs    |   10 -
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs    |  358 ++
 .../Impl/Unmanaged/UnmanagedUtils.cs            |  788 +---
 .../Properties/AssemblyInfo.cs                  |    4 +-
 .../Transactions/ITransaction.cs                |    2 +-
 modules/platforms/dotnet/Apache.Ignite.FxCop    |  322 +-
 modules/platforms/dotnet/Apache.Ignite.dxg      | 2387 ++++++++++
 modules/platforms/dotnet/Apache.Ignite.sln      |    1 +
 modules/platforms/dotnet/Apache.Ignite.slnrel   |   43 -
 .../Apache.Ignite/Properties/AssemblyInfo.cs    |    4 +-
 .../platforms/dotnet/Apache.Ignite_x86.slnrel   |   43 -
 modules/platforms/dotnet/README.txt             |   36 +-
 modules/platforms/dotnet/build.bat              |   94 +
 modules/platforms/dotnet/dotnet.dxg             | 1795 ++++++++
 .../Apache.Ignite.Examples.csproj               |    4 +-
 .../Properties/AssemblyInfo.cs                  |    4 +-
 .../Apache.Ignite.ExamplesDll.csproj            |    4 +-
 .../Properties/AssemblyInfo.cs                  |    4 +-
 modules/platforms/dotnet/examples/README.txt    |    8 -
 modules/platforms/dotnet/header.html            |   27 +
 modules/rest-http/pom.xml                       |    2 +-
 modules/scalar-2.10/pom.xml                     |    2 +-
 modules/scalar/pom.xml                          |    2 +-
 modules/schedule/pom.xml                        |    2 +-
 modules/schema-import/pom.xml                   |    2 +-
 .../ignite/schema/generator/CodeGenerator.java  |   30 +-
 modules/slf4j/pom.xml                           |    2 +-
 modules/spark-2.10/pom.xml                      |    2 +-
 modules/spark/pom.xml                           |    2 +-
 modules/spring/pom.xml                          |    2 +-
 .../ignite/internal/GridFactorySelfTest.java    |   45 +
 .../GridSpringBeanSerializationSelfTest.java    |    2 +
 modules/ssh/pom.xml                             |    2 +-
 modules/tools/pom.xml                           |    2 +-
 modules/twitter/pom.xml                         |    2 +-
 modules/urideploy/pom.xml                       |    2 +-
 modules/visor-console-2.10/pom.xml              |    2 +-
 modules/visor-console/pom.xml                   |    2 +-
 modules/visor-plugins/pom.xml                   |    2 +-
 modules/web/pom.xml                             |    2 +-
 .../config/benchmark-failover.properties        |    2 +-
 .../ignite-int-max-values-offheap-config.xml    |    2 +-
 .../ignite-int-max-values-onheap-config.xml     |    2 +-
 .../ignite-int-max-values-swap-config.xml       |    2 +-
 modules/yardstick/pom.xml                       |    2 +-
 ...IgniteTransactionalWriteInvokeBenchmark.java |   42 +-
 modules/yarn/pom.xml                            |    2 +-
 modules/zookeeper/pom.xml                       |    2 +-
 parent/pom.xml                                  |   15 +-
 pom.xml                                         |    6 +-
 759 files changed, 48990 insertions(+), 39597 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index e387c0a,3c7f378..769f043
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@@ -720,9 -721,14 +721,14 @@@ public class GridIoMessageFactory imple
  
                  break;
  
-             // [-3..119] - this
+             case 124:
+                 msg = new GridMessageCollection<>();
+ 
+                 break;
+ 
+             // [-3..119] [124] - this
              // [120..123] - DR
 -            // [-4..-22] - SQL
 +            // [-4..-28] - SQL
              default:
                  if (ext != null) {
                      for (MessageFactory factory : ext) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
index 0000000,e77b85a..15dd088
mode 000000,100644..100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
@@@ -1,0 -1,903 +1,911 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one or more
+  * contributor license agreements.  See the NOTICE file distributed with
+  * this work for additional information regarding copyright ownership.
+  * The ASF licenses this file to You under the Apache License, Version 2.0
+  * (the "License"); you may not use this file except in compliance with
+  * the License.  You may obtain a copy of the License at
+  *
+  *      http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ 
+ package org.apache.ignite.internal.processors.cache.binary;
+ 
+ import java.io.Externalizable;
+ import java.io.IOException;
+ import java.io.ObjectInput;
+ import java.io.ObjectOutput;
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.UUID;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.CountDownLatch;
+ import javax.cache.Cache;
+ import javax.cache.CacheException;
+ import javax.cache.event.CacheEntryEvent;
+ import javax.cache.event.CacheEntryListenerException;
+ import javax.cache.event.CacheEntryUpdatedListener;
+ import javax.cache.event.EventType;
+ import javax.cache.processor.EntryProcessor;
+ import javax.cache.processor.MutableEntry;
+ import org.apache.ignite.IgniteBinary;
+ import org.apache.ignite.IgniteCheckedException;
+ import org.apache.ignite.IgniteException;
+ import org.apache.ignite.binary.BinaryObject;
+ import org.apache.ignite.binary.BinaryObjectBuilder;
+ import org.apache.ignite.binary.BinaryObjectException;
+ import org.apache.ignite.binary.BinaryType;
+ import org.apache.ignite.cache.CacheEntryEventSerializableFilter;
+ import org.apache.ignite.cluster.ClusterNode;
+ import org.apache.ignite.cluster.ClusterTopologyException;
+ import org.apache.ignite.configuration.CacheConfiguration;
+ import org.apache.ignite.internal.GridKernalContext;
+ import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
+ import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
+ import org.apache.ignite.internal.binary.BinaryMarshaller;
+ import org.apache.ignite.internal.binary.BinaryMetadata;
+ import org.apache.ignite.internal.binary.BinaryMetadataHandler;
+ import org.apache.ignite.internal.binary.BinaryObjectEx;
+ import org.apache.ignite.internal.binary.BinaryObjectImpl;
+ import org.apache.ignite.internal.binary.BinaryObjectOffheapImpl;
+ import org.apache.ignite.internal.binary.BinaryTypeImpl;
+ import org.apache.ignite.internal.binary.GridBinaryMarshaller;
+ import org.apache.ignite.internal.binary.BinaryContext;
+ import org.apache.ignite.internal.binary.BinaryUtils;
+ import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
+ import org.apache.ignite.internal.binary.streams.BinaryInputStream;
+ import org.apache.ignite.internal.binary.streams.BinaryOffheapInputStream;
+ import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+ import org.apache.ignite.internal.processors.cache.CacheEntryPredicate;
+ import org.apache.ignite.internal.processors.cache.CacheEntryPredicateAdapter;
+ import org.apache.ignite.internal.processors.cache.CacheObject;
+ import org.apache.ignite.internal.processors.cache.CacheObjectContext;
+ import org.apache.ignite.internal.processors.cache.CacheObjectImpl;
+ import org.apache.ignite.internal.processors.cache.GridCacheContext;
+ import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
+ import org.apache.ignite.internal.processors.cache.GridCacheUtils;
+ import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
+ import org.apache.ignite.internal.processors.cache.KeyCacheObject;
+ import org.apache.ignite.internal.processors.cache.query.CacheQuery;
+ import org.apache.ignite.internal.processors.cache.query.CacheQueryFuture;
+ import org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager;
+ import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessorImpl;
+ import org.apache.ignite.internal.util.GridUnsafe;
+ import org.apache.ignite.internal.util.IgniteUtils;
+ import org.apache.ignite.internal.util.lang.GridMapEntry;
+ import org.apache.ignite.internal.util.tostring.GridToStringExclude;
+ import org.apache.ignite.internal.util.typedef.C1;
+ import org.apache.ignite.internal.util.typedef.F;
+ import org.apache.ignite.internal.util.typedef.T2;
+ import org.apache.ignite.internal.util.typedef.X;
+ import org.apache.ignite.internal.util.typedef.internal.CU;
+ import org.apache.ignite.internal.util.typedef.internal.S;
+ import org.apache.ignite.internal.util.typedef.internal.U;
+ import org.apache.ignite.lang.IgniteBiPredicate;
+ import org.apache.ignite.lang.IgniteBiTuple;
+ import org.apache.ignite.lang.IgniteClosure;
+ import org.apache.ignite.marshaller.Marshaller;
+ import org.jetbrains.annotations.Nullable;
+ import org.jsr166.ConcurrentHashMap8;
+ import sun.misc.Unsafe;
+ 
+ /**
+  * Binary processor implementation.
+  */
+ public class CacheObjectBinaryProcessorImpl extends IgniteCacheObjectProcessorImpl implements
+     CacheObjectBinaryProcessor {
+     /** */
+     private static final Unsafe UNSAFE = GridUnsafe.unsafe();
+ 
+     /** */
+     private final CountDownLatch startLatch = new CountDownLatch(1);
+ 
+     /** */
+     private final boolean clientNode;
+ 
+     /** */
+     private volatile IgniteCacheProxy<BinaryMetadataKey, BinaryMetadata> metaDataCache;
+ 
+     /** */
+     private final ConcurrentHashMap8<Integer, BinaryTypeImpl> clientMetaDataCache;
+ 
+     /** Predicate to filter binary meta data in utility cache. */
+     private final CacheEntryPredicate metaPred = new CacheEntryPredicateAdapter() {
+         private static final long serialVersionUID = 0L;
+ 
+         @Override public boolean apply(GridCacheEntryEx e) {
+             return e.key().value(e.context().cacheObjectContext(), false) instanceof BinaryMetadataKey;
+         }
+     };
+ 
+     /** */
+     private BinaryContext binaryCtx;
+ 
+     /** */
+     private Marshaller marsh;
+ 
+     /** */
+     private GridBinaryMarshaller binaryMarsh;
+ 
+     /** */
+     @GridToStringExclude
+     private IgniteBinary binaries;
+ 
+     /** Metadata updates collected before metadata cache is initialized. */
+     private final Map<Integer, BinaryMetadata> metaBuf = new ConcurrentHashMap<>();
+ 
+     /** */
+     private UUID metaCacheQryId;
+ 
+     /**
+      * @param ctx Kernal context.
+      */
+     public CacheObjectBinaryProcessorImpl(GridKernalContext ctx) {
+         super(ctx);
+ 
+         marsh = ctx.grid().configuration().getMarshaller();
+ 
+         clientNode = this.ctx.clientNode();
+ 
+         clientMetaDataCache = clientNode ? new ConcurrentHashMap8<Integer, BinaryTypeImpl>() : null;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void start() throws IgniteCheckedException {
+         if (marsh instanceof BinaryMarshaller) {
+             BinaryMetadataHandler metaHnd = new BinaryMetadataHandler() {
+                 @Override public void addMeta(int typeId, BinaryType newMeta) throws BinaryObjectException {
+                     assert newMeta != null;
+                     assert newMeta instanceof BinaryTypeImpl;
+ 
+                     BinaryMetadata newMeta0 = ((BinaryTypeImpl)newMeta).metadata();
+ 
+                     if (metaDataCache == null) {
+                         BinaryMetadata oldMeta = metaBuf.get(typeId);
+                         BinaryMetadata mergedMeta = BinaryUtils.mergeMetadata(oldMeta, newMeta0);
+ 
+                         if (oldMeta != mergedMeta) {
+                             synchronized (this) {
+                                 mergedMeta = BinaryUtils.mergeMetadata(oldMeta, newMeta0);
+ 
+                                 if (oldMeta != mergedMeta)
+                                     metaBuf.put(typeId, mergedMeta);
+                                 else
+                                     return;
+                             }
+ 
+                             if (metaDataCache == null)
+                                 return;
+                             else
+                                 metaBuf.remove(typeId);
+                         }
+                         else
+                             return;
+                     }
+ 
+                     assert metaDataCache != null;
+ 
+                     CacheObjectBinaryProcessorImpl.this.addMeta(typeId, newMeta0.wrap(binaryCtx));
+                 }
+ 
+                 @Override public BinaryType metadata(int typeId) throws BinaryObjectException {
+                     if (metaDataCache == null)
+                         U.awaitQuiet(startLatch);
+ 
+                     return CacheObjectBinaryProcessorImpl.this.metadata(typeId);
+                 }
+             };
+ 
+             BinaryMarshaller pMarh0 = (BinaryMarshaller)marsh;
+ 
+             binaryCtx = new BinaryContext(metaHnd, ctx.config());
+ 
+             IgniteUtils.invoke(BinaryMarshaller.class, pMarh0, "setBinaryContext", binaryCtx,
+                 ctx.config());
+ 
+             binaryMarsh = new GridBinaryMarshaller(binaryCtx);
+ 
+             binaries = new IgniteBinaryImpl(ctx, this);
+         }
+     }
+ 
+     /** {@inheritDoc} */
+     @SuppressWarnings("unchecked")
+     @Override public void onUtilityCacheStarted() throws IgniteCheckedException {
+         IgniteCacheProxy<Object, Object> proxy = ctx.cache().jcache(CU.UTILITY_CACHE_NAME);
+ 
+         boolean old = proxy.context().deploy().ignoreOwnership(true);
+ 
+         try {
+             metaDataCache = (IgniteCacheProxy)proxy.withNoRetries();
+         }
+         finally {
+             proxy.context().deploy().ignoreOwnership(old);
+         }
+ 
+         if (clientNode) {
+             assert !metaDataCache.context().affinityNode();
+ 
+             metaCacheQryId = metaDataCache.context().continuousQueries().executeInternalQuery(
+                 new MetaDataEntryListener(),
+                 new MetaDataEntryFilter(),
+                 false,
+                 true);
+ 
+             while (true) {
+                 ClusterNode oldestSrvNode =
+                     CU.oldestAliveCacheServerNode(ctx.cache().context(), AffinityTopologyVersion.NONE);
+ 
+                 if (oldestSrvNode == null)
+                     break;
+ 
+                 GridCacheQueryManager qryMgr = metaDataCache.context().queries();
+ 
+                 CacheQuery<Map.Entry<BinaryMetadataKey, BinaryMetadata>> qry =
+                     qryMgr.createScanQuery(new MetaDataPredicate(), null, false);
+ 
+                 qry.keepAll(false);
+ 
+                 qry.projection(ctx.cluster().get().forNode(oldestSrvNode));
+ 
+                 try {
+                     CacheQueryFuture<Map.Entry<BinaryMetadataKey, BinaryMetadata>> fut = qry.execute();
+ 
+                     Map.Entry<BinaryMetadataKey, BinaryMetadata> next;
+ 
+                     while ((next = fut.next()) != null) {
+                         assert next.getKey() != null : next;
+                         assert next.getValue() != null : next;
+ 
+                         addClientCacheMetaData(next.getKey(), next.getValue());
+                     }
+                 }
+                 catch (IgniteCheckedException e) {
+                     if (!ctx.discovery().alive(oldestSrvNode) || !ctx.discovery().pingNode(oldestSrvNode.id()))
+                         continue;
+                     else
+                         throw e;
+                 }
+                 catch (CacheException e) {
+                     if (X.hasCause(e, ClusterTopologyCheckedException.class, ClusterTopologyException.class))
+                         continue;
+                     else
+                         throw e;
+                 }
+ 
+                 break;
+             }
+         }
+ 
+         for (Map.Entry<Integer, BinaryMetadata> e : metaBuf.entrySet())
+             addMeta(e.getKey(), e.getValue().wrap(binaryCtx));
+ 
+         metaBuf.clear();
+ 
+         startLatch.countDown();
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void onKernalStop(boolean cancel) {
+         super.onKernalStop(cancel);
+ 
+         if (metaCacheQryId != null)
+             metaDataCache.context().continuousQueries().cancelInternalQuery(metaCacheQryId);
+     }
+ 
+     /**
+      * @param key Metadata key.
+      * @param newMeta Metadata.
+      */
+     private void addClientCacheMetaData(BinaryMetadataKey key, final BinaryMetadata newMeta) {
+         int key0 = key.typeId();
+ 
+         clientMetaDataCache.compute(key0, new ConcurrentHashMap8.BiFun<Integer, BinaryTypeImpl, BinaryTypeImpl>() {
+             @Override public BinaryTypeImpl apply(Integer key, BinaryTypeImpl oldMeta) {
+                 BinaryMetadata res;
+ 
+                 BinaryMetadata oldMeta0 = oldMeta != null ? oldMeta.metadata() : null;
+ 
+                 try {
+                     res = BinaryUtils.mergeMetadata(oldMeta0, newMeta);
+                 }
+                 catch (BinaryObjectException e) {
+                     res = oldMeta0;
+                 }
+ 
+                 return res != null ? res.wrap(binaryCtx) : null;
+             }
+         });
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public int typeId(String typeName) {
+         if (binaryCtx == null)
+             return super.typeId(typeName);
+ 
+         return binaryCtx.typeId(typeName);
+     }
+ 
+     /**
+      * @param obj Object.
+      * @return Bytes.
+      * @throws org.apache.ignite.binary.BinaryObjectException If failed.
+      */
+     public byte[] marshal(@Nullable Object obj) throws BinaryObjectException {
+         byte[] arr = binaryMarsh.marshal(obj);
+ 
+         assert arr.length > 0;
+ 
+         return arr;
+     }
+ 
+     /**
+      * @param ptr Off-heap pointer.
+      * @param forceHeap If {@code true} creates heap-based object.
+      * @return Object.
+      * @throws org.apache.ignite.binary.BinaryObjectException If failed.
+      */
+     public Object unmarshal(long ptr, boolean forceHeap) throws BinaryObjectException {
+         assert ptr > 0 : ptr;
+ 
+         int size = UNSAFE.getInt(ptr);
+ 
+         ptr += 4;
+ 
+         byte type = UNSAFE.getByte(ptr++);
+ 
+         if (type != CacheObject.TYPE_BYTE_ARR) {
+             assert size > 0 : size;
+ 
+             BinaryInputStream in = new BinaryOffheapInputStream(ptr, size, forceHeap);
+ 
+             return binaryMarsh.unmarshal(in);
+         }
+         else
+             return U.copyMemory(ptr, size);
+     }
+ 
+     /** {@inheritDoc} */
+     @SuppressWarnings("unchecked")
+     @Override public Object marshalToBinary(@Nullable Object obj) throws BinaryObjectException {
+         if (obj == null)
+             return null;
+ 
+         if (BinaryUtils.isBinaryType(obj.getClass()))
+             return obj;
+ 
+         if (obj instanceof Object[]) {
+             Object[] arr = (Object[])obj;
+ 
+             Object[] pArr = new Object[arr.length];
+ 
+             for (int i = 0; i < arr.length; i++)
+                 pArr[i] = marshalToBinary(arr[i]);
+ 
+             return pArr;
+         }
+ 
+         if (obj instanceof IgniteBiTuple) {
+             IgniteBiTuple tup = (IgniteBiTuple)obj;
+ 
+             if (obj instanceof T2)
+                 return new T2<>(marshalToBinary(tup.get1()), marshalToBinary(tup.get2()));
+ 
+             return new IgniteBiTuple<>(marshalToBinary(tup.get1()), marshalToBinary(tup.get2()));
+         }
+ 
+         if (obj instanceof Collection) {
+             Collection<Object> col = (Collection<Object>)obj;
+ 
+             Collection<Object> pCol;
+ 
+             if (col instanceof Set)
+                 pCol = (Collection<Object>)BinaryUtils.newSet((Set<?>)col);
+             else
+                 pCol = new ArrayList<>(col.size());
+ 
+             for (Object item : col)
+                 pCol.add(marshalToBinary(item));
+ 
+             return pCol;
+         }
+ 
+         if (obj instanceof Map) {
+             Map<?, ?> map = (Map<?, ?>)obj;
+ 
+             Map<Object, Object> pMap = BinaryUtils.newMap((Map<Object, Object>)obj);
+ 
+             for (Map.Entry<?, ?> e : map.entrySet())
+                 pMap.put(marshalToBinary(e.getKey()), marshalToBinary(e.getValue()));
+ 
+             return pMap;
+         }
+ 
+         if (obj instanceof Map.Entry) {
+             Map.Entry<?, ?> e = (Map.Entry<?, ?>)obj;
+ 
+             return new GridMapEntry<>(marshalToBinary(e.getKey()), marshalToBinary(e.getValue()));
+         }
+ 
+         byte[] arr = binaryMarsh.marshal(obj);
+ 
+         assert arr.length > 0;
+ 
+         Object obj0 = binaryMarsh.unmarshal(arr, null);
+ 
+         // Possible if a class has writeObject method.
+         if (obj0 instanceof BinaryObject)
+             ((BinaryObjectImpl)obj0).detachAllowed(true);
+ 
+         return obj0;
+     }
+ 
+     /**
+      * @return Marshaller.
+      */
+     public GridBinaryMarshaller marshaller() {
+         return binaryMarsh;
+     }
+ 
+     /** {@inheritDoc} */
++    @Override public String affinityField(String keyType) {
++        if (portableCtx == null)
++            return null;
++
++        return portableCtx.affinityKeyFieldName(typeId(keyType));
++    }
++
++    /** {@inheritDoc} */
+     @Override public BinaryObjectBuilder builder(String clsName) {
+         return new BinaryObjectBuilderImpl(binaryCtx, clsName);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public BinaryObjectBuilder builder(BinaryObject binaryObj) {
+         return BinaryObjectBuilderImpl.wrap(binaryObj);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void updateMetadata(int typeId, String typeName, @Nullable String affKeyFieldName,
+         Map<String, Integer> fieldTypeIds, boolean isEnum) throws BinaryObjectException {
+         BinaryMetadata meta = new BinaryMetadata(typeId, typeName, fieldTypeIds, affKeyFieldName, null, isEnum);
+ 
+         binaryCtx.updateMetadata(typeId, meta);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public void addMeta(final int typeId, final BinaryType newMeta) throws BinaryObjectException {
+         assert newMeta != null;
+         assert newMeta instanceof BinaryTypeImpl;
+ 
+         BinaryMetadata newMeta0 = ((BinaryTypeImpl)newMeta).metadata();
+ 
+         final BinaryMetadataKey key = new BinaryMetadataKey(typeId);
+ 
+         try {
+             BinaryMetadata oldMeta = metaDataCache.localPeek(key);
+             BinaryMetadata mergedMeta = BinaryUtils.mergeMetadata(oldMeta, newMeta0);
+ 
+             BinaryObjectException err = metaDataCache.invoke(key, new MetadataProcessor(mergedMeta));
+ 
+             if (err != null)
+                 throw err;
+         }
+         catch (CacheException e) {
+             throw new BinaryObjectException("Failed to update meta data for type: " + newMeta.typeName(), e);
+         }
+     }
+ 
+     /** {@inheritDoc} */
+     @Nullable @Override public BinaryType metadata(final int typeId) throws BinaryObjectException {
+         try {
+             if (clientNode) {
+                 BinaryType typeMeta = clientMetaDataCache.get(typeId);
+ 
+                 if (typeMeta != null)
+                     return typeMeta;
+ 
+                 BinaryMetadata meta = metaDataCache.getTopologySafe(new BinaryMetadataKey(typeId));
+ 
+                 return meta != null ? meta.wrap(binaryCtx) : null;
+             }
+             else {
+                 BinaryMetadataKey key = new BinaryMetadataKey(typeId);
+ 
+                 BinaryMetadata meta = metaDataCache.localPeek(key);
+ 
+                 if (meta == null && !metaDataCache.context().preloader().syncFuture().isDone())
+                     meta = metaDataCache.getTopologySafe(key);
+ 
+                 return meta != null ? meta.wrap(binaryCtx) : null;
+             }
+         }
+         catch (CacheException e) {
+             throw new BinaryObjectException(e);
+         }
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public Map<Integer, BinaryType> metadata(Collection<Integer> typeIds)
+         throws BinaryObjectException {
+         try {
+             Collection<BinaryMetadataKey> keys = new ArrayList<>(typeIds.size());
+ 
+             for (Integer typeId : typeIds)
+                 keys.add(new BinaryMetadataKey(typeId));
+ 
+             Map<BinaryMetadataKey, BinaryMetadata> meta = metaDataCache.getAll(keys);
+ 
+             Map<Integer, BinaryType> res = U.newHashMap(meta.size());
+ 
+             for (Map.Entry<BinaryMetadataKey, BinaryMetadata> e : meta.entrySet())
+                 res.put(e.getKey().typeId(), e.getValue().wrap(binaryCtx));
+ 
+             return res;
+         }
+         catch (CacheException e) {
+             throw new BinaryObjectException(e);
+         }
+     }
+ 
+     /** {@inheritDoc} */
+     @SuppressWarnings("unchecked")
+     @Override public Collection<BinaryType> metadata() throws BinaryObjectException {
+         if (clientNode)
+             return F.viewReadOnly(clientMetaDataCache.values(), new IgniteClosure<BinaryTypeImpl, BinaryType>() {
+                 @Override public BinaryType apply(BinaryTypeImpl meta) {
+                     return meta;
+                 }
+             });
+         else {
+             return F.viewReadOnly(metaDataCache.entrySetx(metaPred),
+                 new C1<Cache.Entry<BinaryMetadataKey, BinaryMetadata>, BinaryType>() {
+                     private static final long serialVersionUID = 0L;
+ 
+                     @Override public BinaryType apply(Cache.Entry<BinaryMetadataKey, BinaryMetadata> e) {
+                         return e.getValue().wrap(binaryCtx);
+                     }
+                 });
+         }
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public BinaryObject buildEnum(String typeName, int ord) throws IgniteException {
+         typeName = BinaryContext.typeName(typeName);
+ 
+         int typeId = binaryCtx.typeId(typeName);
+ 
+         updateMetadata(typeId, typeName, null, null, true);
+ 
+         return new BinaryEnumObjectImpl(binaryCtx, typeId, null, ord);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public IgniteBinary binary() throws IgniteException {
+         return binaries;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean isBinaryObject(Object obj) {
+         return obj instanceof BinaryObject;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean isBinaryEnabled(CacheConfiguration<?, ?> ccfg) {
+         return marsh instanceof BinaryMarshaller;
+     }
+ 
+     /**
+      * @param po Binary object.
+      * @return Affinity key.
+      */
+     public Object affinityKey(BinaryObject po) {
+         try {
+             BinaryType meta = po.type();
+ 
+             if (meta != null) {
+                 String affKeyFieldName = meta.affinityKeyFieldName();
+ 
+                 if (affKeyFieldName != null)
+                     return po.field(affKeyFieldName);
+             }
+             else if (po instanceof BinaryObjectEx) {
+                 int id = ((BinaryObjectEx)po).typeId();
+ 
+                 String affKeyFieldName = binaryCtx.affinityKeyFieldName(id);
+ 
+                 if (affKeyFieldName != null)
+                     return po.field(affKeyFieldName);
+             }
+         }
+         catch (BinaryObjectException e) {
+             U.error(log, "Failed to get affinity field from binary object: " + po, e);
+         }
+ 
+         return po;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public int typeId(Object obj) {
+         if (obj == null)
+             return 0;
+ 
+         return isBinaryObject(obj) ? ((BinaryObjectEx)obj).typeId() : typeId(obj.getClass().getSimpleName());
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public Object field(Object obj, String fieldName) {
+         if (obj == null)
+             return null;
+ 
+         return isBinaryObject(obj) ? ((BinaryObject)obj).field(fieldName) : super.field(obj, fieldName);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public boolean hasField(Object obj, String fieldName) {
+         return obj != null && ((BinaryObject)obj).hasField(fieldName);
+     }
+ 
+     /**
+      * @return Binary context.
+      */
+     public BinaryContext binaryContext() {
+         return binaryCtx;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public CacheObjectContext contextForCache(CacheConfiguration cfg) throws IgniteCheckedException {
+         assert cfg != null;
+ 
+         boolean binaryEnabled = marsh instanceof BinaryMarshaller && !GridCacheUtils.isSystemCache(cfg.getName()) &&
+             !GridCacheUtils.isIgfsCache(ctx.config(), cfg.getName());
+ 
+         CacheObjectContext ctx0 = super.contextForCache(cfg);
+ 
+         CacheObjectContext res = new CacheObjectBinaryContext(ctx,
+             ctx0.copyOnGet(),
+             ctx0.storeValue(),
+             binaryEnabled,
+             ctx0.addDeploymentInfo());
+ 
+         ctx.resource().injectGeneric(res.defaultAffMapper());
+ 
+         return res;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public byte[] marshal(CacheObjectContext ctx, Object val) throws IgniteCheckedException {
+         if (!((CacheObjectBinaryContext)ctx).binaryEnabled() || binaryMarsh == null)
+             return super.marshal(ctx, val);
+ 
+         byte[] arr = binaryMarsh.marshal(val);
+ 
+         assert arr.length > 0;
+ 
+         return arr;
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public Object unmarshal(CacheObjectContext ctx, byte[] bytes, ClassLoader clsLdr)
+         throws IgniteCheckedException {
+         if (!((CacheObjectBinaryContext)ctx).binaryEnabled() || binaryMarsh == null)
+             return super.unmarshal(ctx, bytes, clsLdr);
+ 
+         return binaryMarsh.unmarshal(bytes, clsLdr);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public KeyCacheObject toCacheKeyObject(CacheObjectContext ctx, Object obj, boolean userObj) {
+         if (!((CacheObjectBinaryContext)ctx).binaryEnabled())
+             return super.toCacheKeyObject(ctx, obj, userObj);
+ 
+         if (obj instanceof KeyCacheObject)
+             return (KeyCacheObject)obj;
+ 
+         if (((CacheObjectBinaryContext)ctx).binaryEnabled()) {
+             obj = toBinary(obj);
+ 
+             if (obj instanceof BinaryObject)
+                 return (BinaryObjectImpl)obj;
+         }
+ 
+         return toCacheKeyObject0(obj, userObj);
+     }
+ 
+     /** {@inheritDoc} */
+     @Nullable @Override public CacheObject toCacheObject(CacheObjectContext ctx, @Nullable Object obj,
+         boolean userObj) {
+         if (!((CacheObjectBinaryContext)ctx).binaryEnabled())
+             return super.toCacheObject(ctx, obj, userObj);
+ 
+         if (obj == null || obj instanceof CacheObject)
+             return (CacheObject)obj;
+ 
+         obj = toBinary(obj);
+ 
+         if (obj instanceof BinaryObject)
+             return (BinaryObjectImpl)obj;
+ 
+         return toCacheObject0(obj, userObj);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public CacheObject toCacheObject(CacheObjectContext ctx, byte type, byte[] bytes) {
+         if (type == BinaryObjectImpl.TYPE_BINARY)
+             return new BinaryObjectImpl(binaryContext(), bytes, 0);
+ 
+         return super.toCacheObject(ctx, type, bytes);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public CacheObject toCacheObject(GridCacheContext ctx, long valPtr, boolean tmp)
+         throws IgniteCheckedException {
+         if (!((CacheObjectBinaryContext)ctx.cacheObjectContext()).binaryEnabled())
+             return super.toCacheObject(ctx, valPtr, tmp);
+ 
+         Object val = unmarshal(valPtr, !tmp);
+ 
+         if (val instanceof BinaryObjectOffheapImpl)
+             return (BinaryObjectOffheapImpl)val;
+ 
+         return new CacheObjectImpl(val, null);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override public Object unwrapTemporary(GridCacheContext ctx, Object obj) throws BinaryObjectException {
+         if (!((CacheObjectBinaryContext)ctx.cacheObjectContext()).binaryEnabled())
+             return obj;
+ 
+         if (obj instanceof BinaryObjectOffheapImpl)
+             return ((BinaryObjectOffheapImpl)obj).heapCopy();
+ 
+         return obj;
+     }
+ 
+     /**
+      * @param obj Object.
+      * @return Binary object.
+      * @throws IgniteException In case of error.
+      */
+     @Nullable public Object toBinary(@Nullable Object obj) throws IgniteException {
+         if (obj == null)
+             return null;
+ 
+         if (isBinaryObject(obj))
+             return obj;
+ 
+         return marshalToBinary(obj);
+     }
+ 
+     /**
+      * Processor responsible for metadata update.
+      */
+     private static class MetadataProcessor
+         implements EntryProcessor<BinaryMetadataKey, BinaryMetadata, BinaryObjectException>, Externalizable {
+         /** */
+         private static final long serialVersionUID = 0L;
+ 
+         /** */
+         private BinaryMetadata newMeta;
+ 
+         /**
+          * For {@link Externalizable}.
+          */
+         public MetadataProcessor() {
+             // No-op.
+         }
+ 
+         /**
+          * @param newMeta New metadata.
+          */
+         private MetadataProcessor(BinaryMetadata newMeta) {
+             assert newMeta != null;
+ 
+             this.newMeta = newMeta;
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public BinaryObjectException process(MutableEntry<BinaryMetadataKey, BinaryMetadata> entry,
+             Object... args) {
+             try {
+                 BinaryMetadata oldMeta = entry.getValue();
+ 
+                 BinaryMetadata mergedMeta = BinaryUtils.mergeMetadata(oldMeta, newMeta);
+ 
+                 if (mergedMeta != oldMeta)
+                     entry.setValue(mergedMeta);
+ 
+                 return null;
+             }
+             catch (BinaryObjectException e) {
+                 return e;
+             }
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public void writeExternal(ObjectOutput out) throws IOException {
+             out.writeObject(newMeta);
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+             newMeta = (BinaryMetadata)in.readObject();
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public String toString() {
+             return S.toString(MetadataProcessor.class, this);
+         }
+     }
+ 
+     /**
+      *
+      */
+     class MetaDataEntryListener implements CacheEntryUpdatedListener<BinaryMetadataKey, BinaryMetadata> {
+         /** {@inheritDoc} */
+         @Override public void onUpdated(
+             Iterable<CacheEntryEvent<? extends BinaryMetadataKey, ? extends BinaryMetadata>> evts)
+             throws CacheEntryListenerException {
+             for (CacheEntryEvent<? extends BinaryMetadataKey, ? extends BinaryMetadata> evt : evts) {
+                 assert evt.getEventType() == EventType.CREATED || evt.getEventType() == EventType.UPDATED : evt;
+ 
+                 BinaryMetadataKey key = evt.getKey();
+ 
+                 final BinaryMetadata newMeta = evt.getValue();
+ 
+                 assert newMeta != null : evt;
+ 
+                 addClientCacheMetaData(key, newMeta);
+             }
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public String toString() {
+             return S.toString(MetaDataEntryListener.class, this);
+         }
+     }
+ 
+     /**
+      *
+      */
+     static class MetaDataEntryFilter implements CacheEntryEventSerializableFilter<Object, Object> {
+         /** */
+         private static final long serialVersionUID = 0L;
+ 
+         /** {@inheritDoc} */
+         @Override public boolean evaluate(CacheEntryEvent<?, ?> evt) throws CacheEntryListenerException {
+             return evt.getKey() instanceof BinaryMetadataKey;
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public String toString() {
+             return S.toString(MetaDataEntryFilter.class, this);
+         }
+     }
+ 
+     /**
+      *
+      */
+     static class MetaDataPredicate implements IgniteBiPredicate<Object, Object> {
+         /** */
+         private static final long serialVersionUID = 0L;
+ 
+         /** {@inheritDoc} */
+         @Override public boolean apply(Object key, Object val) {
+             return key instanceof BinaryMetadataKey;
+         }
+ 
+         /** {@inheritDoc} */
+         @Override public String toString() {
+             return S.toString(MetaDataPredicate.class, this);
+         }
+     }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java
index e552411,cadf1a9..27d93ad
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessor.java
@@@ -170,10 -170,4 +170,10 @@@ public interface IgniteCacheObjectProce
       * @return Ignite binary interface.
       */
      public IgniteBinary binary();
 +
 +    /**
 +     * @param keyType Key type name.
 +     * @return Affinity filed name or {@code null}.
 +     */
 +    public String affinityField(String keyType);
- }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 89bf44c,8625be9..7b696ff
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@@ -1113,8 -1045,7 +1116,8 @@@ public class IgniteH2Indexing implement
  
          twoStepQry.pageSize(qry.getPageSize());
  
 -        QueryCursorImpl<List<?>> cursor = new QueryCursorImpl<>(queryTwoStep(cctx, twoStepQry, cctx.keepBinary()));
 +        QueryCursorImpl<List<?>> cursor = new QueryCursorImpl<>(
-             runQueryTwoStep(cctx, twoStepQry, cctx.keepPortable(), enforceJoinOrder));
++            runQueryTwoStep(cctx, twoStepQry, cctx.keepBinary(), enforceJoinOrder));
  
          cursor.fieldsMeta(meta);
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index 6e9bf21,828d9bd..00d2f27
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@@ -1350,24 -1240,4 +1350,24 @@@ public class GridReduceQueryExecutor 
              return res;
          }
      }
 +
 +    /**
 +     *
 +     */
 +    private class ExplicitPartitionsSpecializer implements IgniteBiClosure<ClusterNode,Message,Message> {
 +        /** */
 +        private final Map<ClusterNode,IntArray> partsMap;
 +
 +        /**
 +         * @param partsMap Partitions map.
 +         */
 +        private ExplicitPartitionsSpecializer(Map<ClusterNode,IntArray> partsMap) {
 +            this.partsMap = partsMap;
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public Message apply(ClusterNode n, Message msg) {
 +            return copy(msg, n, partsMap);
 +        }
 +    }
- }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/dddb817b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
----------------------------------------------------------------------