You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/11/05 04:28:57 UTC
[65/66] [abbrv] ignite git commit: IGNITE-1753 Merged with
ignite-950-new.
IGNITE-1753 Merged with ignite-950-new.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5fd4df59
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5fd4df59
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5fd4df59
Branch: refs/heads/ignite-1753-1282
Commit: 5fd4df5933539a790c3eadf90de2cb70b7b0914b
Parents: 3e5e4c0 c61f12e
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Nov 5 10:03:14 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Nov 5 10:06:57 2015 +0700
----------------------------------------------------------------------
.../config/binary/example-ignite-binary.xml | 44 +
.../config/portable/example-ignite-portable.xml | 44 -
.../apache/ignite/examples/binary/Address.java | 72 +
.../apache/ignite/examples/binary/Employee.java | 93 +
.../ignite/examples/binary/EmployeeKey.java | 90 +
.../binary/ExampleBinaryNodeStartup.java | 36 +
.../ignite/examples/binary/Organization.java | 93 +
.../examples/binary/OrganizationType.java | 32 +
...ComputeClientBinaryTaskExecutionExample.java | 153 +
.../binary/computegrid/ComputeClientTask.java | 116 +
.../binary/computegrid/package-info.java | 21 +
.../CacheClientBinaryPutGetExample.java | 230 ++
.../datagrid/CacheClientBinaryQueryExample.java | 330 +++
.../examples/binary/datagrid/package-info.java | 21 +
.../ignite/examples/binary/package-info.java | 21 +
.../ignite/examples/portable/Address.java | 72 -
.../ignite/examples/portable/Employee.java | 93 -
.../ignite/examples/portable/EmployeeKey.java | 90 -
.../portable/ExamplePortableNodeStartup.java | 36 -
.../ignite/examples/portable/Organization.java | 93 -
.../examples/portable/OrganizationType.java | 32 -
...mputeClientPortableTaskExecutionExample.java | 154 -
.../portable/computegrid/ComputeClientTask.java | 116 -
.../portable/computegrid/package-info.java | 21 -
.../CacheClientPortablePutGetExample.java | 230 --
.../CacheClientPortableQueryExample.java | 325 --
.../portable/datagrid/package-info.java | 21 -
.../ignite/examples/portable/package-info.java | 21 -
.../CacheClientPortableExampleTest.java | 8 +-
.../ComputeClientPortableExampleTest.java | 4 +-
.../ignite/codegen/MessageCodeGenerator.java | 5 +-
.../src/main/java/org/apache/ignite/Ignite.java | 6 +-
.../java/org/apache/ignite/IgniteBinary.java | 366 +++
.../java/org/apache/ignite/IgniteCache.java | 14 +-
.../org/apache/ignite/IgniteDataStreamer.java | 16 +
.../java/org/apache/ignite/IgnitePortables.java | 370 ---
.../org/apache/ignite/binary/BinaryField.java | 46 +
.../binary/BinaryInvalidTypeException.java | 58 +
.../org/apache/ignite/binary/BinaryObject.java | 163 +
.../ignite/binary/BinaryObjectBuilder.java | 136 +
.../ignite/binary/BinaryObjectException.java | 57 +
.../apache/ignite/binary/BinaryRawReader.java | 240 ++
.../apache/ignite/binary/BinaryRawWriter.java | 225 ++
.../org/apache/ignite/binary/BinaryReader.java | 290 ++
.../apache/ignite/binary/BinarySerializer.java | 49 +
.../org/apache/ignite/binary/BinaryType.java | 59 +
.../ignite/binary/BinaryTypeConfiguration.java | 156 +
.../ignite/binary/BinaryTypeIdMapper.java | 56 +
.../org/apache/ignite/binary/BinaryWriter.java | 273 ++
.../org/apache/ignite/binary/Binarylizable.java | 48 +
.../org/apache/ignite/binary/package-info.java | 22 +
.../ignite/cache/CacheKeyConfiguration.java | 92 +
.../apache/ignite/cache/CacheTypeMetadata.java | 67 +-
.../org/apache/ignite/cache/IgniteObject.java | 60 -
.../org/apache/ignite/cache/QueryEntity.java | 217 ++
.../org/apache/ignite/cache/QueryIndex.java | 192 ++
.../org/apache/ignite/cache/QueryIndexType.java | 38 +
.../store/jdbc/CacheAbstractJdbcStore.java | 14 +-
.../cache/store/jdbc/CacheJdbcPojoStore.java | 67 +-
.../cache/store/jdbc/JdbcTypeDefaultHasher.java | 2 -
.../ignite/cache/store/jdbc/JdbcTypeHasher.java | 2 +-
.../configuration/CacheConfiguration.java | 662 ++++-
.../configuration/IgniteConfiguration.java | 24 +
.../apache/ignite/internal/IgniteKernal.java | 7 +-
.../internal/client/GridClientCompute.java | 2 +-
.../impl/connection/GridClientConnection.java | 2 +-
.../GridClientConnectionManagerAdapter.java | 2 +-
.../connection/GridClientNioTcpConnection.java | 6 +-
.../communication/GridIoMessageFactory.java | 4 +-
.../swapspace/GridSwapSpaceManager.java | 34 -
.../internal/portable/BinaryFieldImpl.java | 104 +
.../portable/BinaryMetaDataCollector.java | 263 ++
.../internal/portable/BinaryMetaDataImpl.java | 150 +
.../internal/portable/BinaryObjectEx.java | 245 ++
.../internal/portable/BinaryObjectImpl.java | 606 ++++
.../portable/BinaryObjectOffheapImpl.java | 470 +++
.../internal/portable/BinaryRawReaderEx.java | 33 +
.../internal/portable/BinaryRawWriterEx.java | 60 +
.../internal/portable/BinaryReaderExImpl.java | 2774 +++++++++++++++++
.../internal/portable/BinaryWriterExImpl.java | 1915 ++++++++++++
.../portable/GridPortableMarshaller.java | 32 +-
.../portable/PortableClassDescriptor.java | 146 +-
.../internal/portable/PortableContext.java | 182 +-
.../internal/portable/PortableFieldImpl.java | 104 -
.../portable/PortableMetaDataCollector.java | 263 --
.../portable/PortableMetaDataHandler.java | 12 +-
.../internal/portable/PortableMetaDataImpl.java | 150 -
.../internal/portable/PortableObjectEx.java | 245 --
.../internal/portable/PortableObjectImpl.java | 586 ----
.../portable/PortableObjectOffheapImpl.java | 458 ---
.../internal/portable/PortableRawReaderEx.java | 33 -
.../internal/portable/PortableRawWriterEx.java | 60 -
.../portable/PortableReaderContext.java | 8 +-
.../internal/portable/PortableReaderExImpl.java | 2775 ------------------
.../ignite/internal/portable/PortableUtils.java | 14 +-
.../internal/portable/PortableWriterExImpl.java | 1915 ------------
.../builder/BinaryObjectBuilderImpl.java | 569 ++++
.../portable/builder/PortableBuilderEnum.java | 8 +-
.../portable/builder/PortableBuilderImpl.java | 570 ----
.../portable/builder/PortableBuilderReader.java | 56 +-
.../PortableBuilderSerializationAware.java | 2 +-
.../builder/PortableBuilderSerializer.java | 30 +-
.../builder/PortableEnumArrayLazyValue.java | 12 +-
.../portable/builder/PortableLazyArrayList.java | 2 +-
.../builder/PortableLazyLinkedList.java | 2 +-
.../portable/builder/PortableLazyMap.java | 2 +-
.../portable/builder/PortableLazyMapEntry.java | 2 +-
.../portable/builder/PortableLazySet.java | 4 +-
.../builder/PortableModifiableLazyValue.java | 2 +-
.../builder/PortableObjectArrayLazyValue.java | 8 +-
.../builder/PortablePlainLazyValue.java | 2 +-
.../builder/PortablePlainPortableObject.java | 22 +-
.../portable/builder/PortableValueWithType.java | 4 +-
.../streams/PortableAbstractInputStream.java | 6 +-
.../affinity/GridAffinityAssignmentCache.java | 3 +-
.../affinity/GridAffinityProcessor.java | 5 +-
.../processors/cache/CacheInvokeEntry.java | 11 +-
.../processors/cache/CacheLazyEntry.java | 23 +-
.../internal/processors/cache/CacheObject.java | 11 +-
.../processors/cache/CacheObjectAdapter.java | 2 +-
.../cache/CacheObjectByteArrayImpl.java | 7 +-
.../processors/cache/CacheObjectContext.java | 128 +-
.../processors/cache/CacheObjectImpl.java | 5 +
.../processors/cache/CacheOperationContext.java | 22 +-
.../processors/cache/GridCacheAdapter.java | 98 +-
.../cache/GridCacheConcurrentMap.java | 10 +-
.../processors/cache/GridCacheContext.java | 14 +-
.../processors/cache/GridCacheEntryEx.java | 15 +-
.../processors/cache/GridCacheEventManager.java | 31 +-
.../cache/GridCacheEvictionManager.java | 5 +-
.../processors/cache/GridCacheMapEntry.java | 153 +-
.../processors/cache/GridCacheProxyImpl.java | 4 +-
.../processors/cache/GridCacheReturn.java | 27 +-
.../processors/cache/GridCacheSwapManager.java | 37 +-
.../processors/cache/GridCacheUtils.java | 3 +
.../processors/cache/IgniteCacheProxy.java | 8 +-
.../processors/cache/IgniteInternalCache.java | 6 +-
.../processors/cache/KeyCacheObjectImpl.java | 5 +
.../CacheDataStructuresManager.java | 4 +-
.../GridDistributedCacheAdapter.java | 40 +-
.../distributed/GridDistributedCacheEntry.java | 9 +-
.../distributed/GridDistributedLockRequest.java | 17 +
.../GridDistributedTxRemoteAdapter.java | 3 +
.../distributed/dht/GridDhtCacheEntry.java | 5 +-
.../distributed/dht/GridDhtLocalPartition.java | 3 +-
.../distributed/dht/GridDhtLockFuture.java | 10 +-
.../distributed/dht/GridDhtLockRequest.java | 3 +
.../dht/GridDhtTransactionalCacheAdapter.java | 23 +-
.../distributed/dht/GridDhtTxLocalAdapter.java | 17 +-
.../distributed/dht/GridDhtTxPrepareFuture.java | 15 +-
.../cache/distributed/dht/GridDhtTxRemote.java | 12 +-
.../dht/GridPartitionedGetFuture.java | 6 +-
.../dht/atomic/GridDhtAtomicCache.java | 75 +-
.../dht/atomic/GridDhtAtomicUpdateFuture.java | 6 +-
.../dht/atomic/GridDhtAtomicUpdateRequest.java | 82 +-
.../dht/atomic/GridNearAtomicUpdateFuture.java | 15 +-
.../dht/atomic/GridNearAtomicUpdateRequest.java | 68 +-
.../atomic/GridNearAtomicUpdateResponse.java | 5 +-
.../dht/colocated/GridDhtColocatedCache.java | 29 +-
.../colocated/GridDhtColocatedLockFuture.java | 14 +-
.../dht/preloader/GridDhtForceKeysFuture.java | 2 +-
.../preloader/GridDhtPartitionDemandPool.java | 2 +-
.../distributed/near/GridNearAtomicCache.java | 4 +
.../distributed/near/GridNearCacheEntry.java | 17 +-
.../distributed/near/GridNearGetFuture.java | 47 +-
.../distributed/near/GridNearLockFuture.java | 14 +-
.../distributed/near/GridNearLockRequest.java | 2 +
.../near/GridNearTransactionalCache.java | 8 +-
.../cache/distributed/near/GridNearTxLocal.java | 9 +-
.../distributed/near/GridNearTxRemote.java | 12 +-
.../cache/local/GridLocalCacheEntry.java | 16 +-
.../cache/local/GridLocalLockFuture.java | 3 +-
.../local/atomic/GridLocalAtomicCache.java | 108 +-
.../CacheDefaultPortableAffinityKeyMapper.java | 6 +-
.../portable/CacheObjectPortableContext.java | 133 -
.../portable/CacheObjectPortableProcessor.java | 26 +-
.../CacheObjectPortableProcessorImpl.java | 205 +-
.../cache/portable/IgniteBinaryImpl.java | 177 ++
.../cache/portable/IgnitePortablesImpl.java | 177 --
.../cache/query/GridCacheQueryManager.java | 13 +-
.../cache/query/GridCacheQueryRequest.java | 4 +-
.../continuous/CacheContinuousQueryEvent.java | 7 +-
.../store/GridCacheStoreManagerAdapter.java | 47 +-
.../transactions/IgniteTransactionsImpl.java | 10 +-
.../cache/transactions/IgniteTxAdapter.java | 5 +-
.../cache/transactions/IgniteTxEntry.java | 54 +-
.../transactions/IgniteTxLocalAdapter.java | 109 +-
.../cache/transactions/IgniteTxLocalEx.java | 1 +
.../cache/transactions/IgniteTxManager.java | 2 +-
.../datastreamer/DataStreamProcessor.java | 1 +
.../datastreamer/DataStreamerEntry.java | 6 +-
.../datastreamer/DataStreamerImpl.java | 16 +-
.../datastreamer/DataStreamerRequest.java | 58 +-
.../datastreamer/DataStreamerUpdateJob.java | 10 +-
.../platform/PlatformAbstractTarget.java | 30 +-
.../processors/platform/PlatformContext.java | 26 +-
.../platform/PlatformContextImpl.java | 47 +-
.../platform/PlatformExtendedException.java | 4 +-
.../platform/PlatformProcessorImpl.java | 6 +-
.../platform/cache/PlatformCache.java | 45 +-
.../cache/PlatformCacheEntryFilterImpl.java | 6 +-
.../cache/PlatformCacheEntryProcessorImpl.java | 12 +-
.../platform/cache/PlatformCacheIterator.java | 4 +-
.../PlatformCachePartialUpdateException.java | 4 +-
.../cache/affinity/PlatformAffinity.java | 8 +-
.../query/PlatformAbstractQueryCursor.java | 10 +-
.../PlatformContinuousQueryRemoteFilter.java | 4 +-
.../cache/query/PlatformFieldsQueryCursor.java | 4 +-
.../cache/query/PlatformQueryCursor.java | 4 +-
.../cache/store/PlatformCacheStoreCallback.java | 6 +-
.../platform/cluster/PlatformClusterGroup.java | 12 +-
.../cluster/PlatformClusterNodeFilterImpl.java | 4 +-
.../platform/compute/PlatformAbstractJob.java | 4 +-
.../platform/compute/PlatformAbstractTask.java | 6 +-
.../platform/compute/PlatformClosureJob.java | 4 +-
.../platform/compute/PlatformCompute.java | 26 +-
.../platform/compute/PlatformFullJob.java | 6 +-
.../platform/compute/PlatformFullTask.java | 12 +-
.../datastreamer/PlatformDataStreamer.java | 5 +-
.../PlatformStreamReceiverImpl.java | 4 +-
.../dotnet/PlatformDotNetCacheStore.java | 50 +-
.../PlatformDotNetConfigurationClosure.java | 16 +-
.../events/PlatformEventFilterListenerImpl.java | 6 +-
.../platform/events/PlatformEvents.java | 18 +-
.../messaging/PlatformMessageFilterImpl.java | 6 +-
.../messaging/PlatformMessageLocalFilter.java | 4 +-
.../platform/messaging/PlatformMessaging.java | 8 +-
.../services/PlatformAbstractService.java | 16 +-
.../platform/services/PlatformServices.java | 20 +-
.../transactions/PlatformTransactions.java | 5 +-
.../platform/utils/PlatformFutureUtils.java | 10 +-
.../platform/utils/PlatformReaderBiClosure.java | 4 +-
.../platform/utils/PlatformReaderClosure.java | 4 +-
.../platform/utils/PlatformUtils.java | 60 +-
.../platform/utils/PlatformWriterBiClosure.java | 4 +-
.../platform/utils/PlatformWriterClosure.java | 4 +-
.../processors/query/GridQueryIndexing.java | 18 +-
.../processors/query/GridQueryProcessor.java | 618 ++--
.../client/message/GridClientTaskRequest.java | 6 +-
.../ignite/internal/util/IgniteUtils.java | 9 +-
.../marshaller/portable/PortableMarshaller.java | 42 +-
.../apache/ignite/portable/PortableBuilder.java | 137 -
.../ignite/portable/PortableException.java | 57 -
.../apache/ignite/portable/PortableField.java | 46 -
.../ignite/portable/PortableIdMapper.java | 56 -
.../portable/PortableInvalidClassException.java | 58 -
.../ignite/portable/PortableMarshalAware.java | 48 -
.../ignite/portable/PortableMetadata.java | 61 -
.../apache/ignite/portable/PortableObject.java | 163 -
.../ignite/portable/PortableRawReader.java | 240 --
.../ignite/portable/PortableRawWriter.java | 225 --
.../apache/ignite/portable/PortableReader.java | 291 --
.../ignite/portable/PortableSerializer.java | 49 -
.../portable/PortableTypeConfiguration.java | 177 --
.../apache/ignite/portable/PortableWriter.java | 273 --
.../apache/ignite/portable/package-info.java | 22 -
.../spi/discovery/tcp/TcpDiscoverySpi.java | 2 +
.../apache/ignite/spi/swapspace/SwapKey.java | 9 +-
.../org/apache/ignite/stream/StreamAdapter.java | 3 +-
.../portable/BinaryFieldsAbstractSelfTest.java | 730 +++++
.../portable/BinaryFieldsHeapSelfTest.java | 32 +
.../portable/BinaryFieldsOffheapSelfTest.java | 61 +
...idBinaryObjectBuilderAdditionalSelfTest.java | 1289 ++++++++
.../GridBinaryObjectBuilderSelfTest.java | 1069 +++++++
...tBuilderStringAsCharsAdditionalSelfTest.java | 28 +
...inaryObjectBuilderStringAsCharsSelfTest.java | 28 +
.../GridPortableAffinityKeySelfTest.java | 10 +-
.../GridPortableBuilderAdditionalSelfTest.java | 1289 --------
.../portable/GridPortableBuilderSelfTest.java | 1069 -------
...eBuilderStringAsCharsAdditionalSelfTest.java | 28 -
...ridPortableBuilderStringAsCharsSelfTest.java | 28 -
...idPortableMarshallerCtxDisabledSelfTest.java | 27 +-
.../GridPortableMarshallerSelfTest.java | 478 +--
.../GridPortableMetaDataDisabledSelfTest.java | 64 +-
.../portable/GridPortableMetaDataSelfTest.java | 52 +-
.../portable/GridPortableWildcardsSelfTest.java | 73 +-
.../PortableCompactOffsetsAbstractSelfTest.java | 26 +-
.../PortableCompactOffsetsHeapSelfTest.java | 4 +-
.../PortableCompactOffsetsOffheapSelfTest.java | 4 +-
.../PortableFieldsAbstractSelfTest.java | 729 -----
.../portable/PortableFieldsHeapSelfTest.java | 32 -
.../portable/PortableFieldsOffheapSelfTest.java | 61 -
.../GridBinaryMarshalerAwareTestClass.java | 67 +
.../GridPortableMarshalerAwareTestClass.java | 67 -
.../mutabletest/GridPortableTestClasses.java | 6 +-
.../cache/CacheNearReaderUpdateTest.java | 60 +-
.../cache/GridCacheAbstractSelfTest.java | 9 +-
...heOffHeapTieredEvictionAbstractSelfTest.java | 2 +-
.../processors/cache/GridCacheTestEntryEx.java | 13 +-
.../cache/IgniteCachePeekModesAbstractTest.java | 30 +-
...IgniteCacheAbstractExecutionContextTest.java | 5 +
.../IgniteCacheTxExecutionContextTest.java | 2 +
...tractDistributedByteArrayValuesSelfTest.java | 4 +
...naryObjectsAbstractDataStreamerSelfTest.java | 190 ++
...aryObjectsAbstractMultiThreadedSelfTest.java | 231 ++
.../GridCacheBinaryObjectsAbstractSelfTest.java | 981 +++++++
...ntNodeBinaryObjectMetadataMultinodeTest.java | 295 ++
...CacheClientNodeBinaryObjectMetadataTest.java | 290 ++
...ClientNodePortableMetadataMultinodeTest.java | 295 --
...GridCacheClientNodePortableMetadataTest.java | 286 --
...ableObjectsAbstractDataStreamerSelfTest.java | 190 --
...bleObjectsAbstractMultiThreadedSelfTest.java | 231 --
...ridCachePortableObjectsAbstractSelfTest.java | 978 ------
.../GridCachePortableStoreAbstractSelfTest.java | 4 +-
.../GridCachePortableStoreObjectsSelfTest.java | 2 +-
...GridCachePortableStorePortablesSelfTest.java | 12 +-
...ridPortableCacheEntryMemorySizeSelfTest.java | 11 +-
...leDuplicateIndexObjectsAbstractSelfTest.java | 8 +-
.../DataStreamProcessorPortableSelfTest.java | 11 +-
.../GridDataStreamerImplSelfTest.java | 28 +-
...ridCacheAffinityRoutingPortableSelfTest.java | 10 +-
...rtableDataStreamerMultithreadedSelfTest.java | 4 +-
...tionedOnlyPortableMultithreadedSelfTest.java | 4 +-
...AtomicNearDisabledOffheapTieredSelfTest.java | 29 +
...BinaryObjectsAtomicNearDisabledSelfTest.java | 51 +
...inaryObjectsAtomicOffheapTieredSelfTest.java | 29 +
.../GridCacheBinaryObjectsAtomicSelfTest.java | 51 +
...tionedNearDisabledOffheapTieredSelfTest.java | 30 +
...yObjectsPartitionedNearDisabledSelfTest.java | 51 +
...ObjectsPartitionedOffheapTieredSelfTest.java | 30 +
...idCacheBinaryObjectsPartitionedSelfTest.java | 51 +
...acheOffHeapTieredAtomicPortableSelfTest.java | 2 +-
...eapTieredEvictionAtomicPortableSelfTest.java | 8 +-
...heOffHeapTieredEvictionPortableSelfTest.java | 8 +-
.../GridCacheOffHeapTieredPortableSelfTest.java | 2 +-
...AtomicNearDisabledOffheapTieredSelfTest.java | 29 -
...rtableObjectsAtomicNearDisabledSelfTest.java | 51 -
...tableObjectsAtomicOffheapTieredSelfTest.java | 29 -
.../GridCachePortableObjectsAtomicSelfTest.java | 51 -
...tionedNearDisabledOffheapTieredSelfTest.java | 30 -
...eObjectsPartitionedNearDisabledSelfTest.java | 51 -
...ObjectsPartitionedOffheapTieredSelfTest.java | 30 -
...CachePortableObjectsPartitionedSelfTest.java | 51 -
...ridCacheBinaryObjectsReplicatedSelfTest.java | 51 +
...dCachePortableObjectsReplicatedSelfTest.java | 51 -
...idCacheBinaryObjectsAtomicLocalSelfTest.java | 32 +
...BinaryObjectsLocalOffheapTieredSelfTest.java | 29 +
.../GridCacheBinaryObjectsLocalSelfTest.java | 51 +
...CachePortableObjectsAtomicLocalSelfTest.java | 32 -
...rtableObjectsLocalOffheapTieredSelfTest.java | 29 -
.../GridCachePortableObjectsLocalSelfTest.java | 51 -
.../DataStreamProcessorSelfTest.java | 8 +
.../loadtests/hashmap/GridHashMapLoadTest.java | 3 +-
.../PlatformComputePortableArgTask.java | 8 +-
.../platform/PlatformEventsWriteEventTask.java | 6 +-
.../file/GridFileSwapSpaceSpiSelfTest.java | 11 +-
.../ignite/testframework/junits/IgniteMock.java | 4 +-
.../multijvm/IgniteCacheProcessProxy.java | 4 +-
.../junits/multijvm/IgniteProcessProxy.java | 4 +-
.../IgnitePortableObjectsTestSuite.java | 80 +-
.../processors/query/h2/IgniteH2Indexing.java | 25 +-
.../query/h2/opt/GridH2ValueCacheObject.java | 8 +-
.../query/h2/opt/GridLuceneIndex.java | 4 +-
.../IgniteCacheAbstractFieldsQuerySelfTest.java | 3 +-
...CacheOffheapTieredMultithreadedSelfTest.java | 25 +-
...niteCacheP2pUnmarshallingQueryErrorTest.java | 19 +-
...hePartitionedQueryMultiThreadedSelfTest.java | 22 +-
.../h2/GridIndexingSpiAbstractSelfTest.java | 7 +-
.../Cache/CacheAbstractTest.cs | 2 +-
.../Config/Compute/compute-grid1.xml | 6 +-
.../org/apache/ignite/IgniteSpringBean.java | 4 +-
.../yardstick/cache/model/Organization.java | 16 +-
.../ignite/yardstick/cache/model/Person.java | 16 +-
.../ignite/yardstick/cache/model/SampleKey.java | 16 +-
.../yardstick/cache/model/SampleValue.java | 16 +-
parent/pom.xml | 7 +-
366 files changed, 20991 insertions(+), 19180 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fd4df59/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
index 49cd284,6e27b9a..e9c2b9e
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
@@@ -166,15 -148,9 +166,15 @@@ public abstract class CacheAbstractJdbc
/** Data source. */
protected DataSource dataSrc;
- /** Cache with entry mapping description. (cache name, (key id, mapping description)). */
+ /** Cache with entry mapping description. (cache name, (keyID, mapping description)). */
protected volatile Map<String, Map<Object, EntryMapping>> cacheMappings = Collections.emptyMap();
- /** Map for quick check whether type is Built in, POJO or Portable. */
++ /** Map for quick check whether type is Built in, POJO or Binary. */
+ private volatile Map<String, Map<String, TypeKind>> typeKinds = new HashMap<>();
+
+ /** Maximum batch size for writeAll and deleteAll operations. */
+ private int batchSz = DFLT_BATCH_SIZE;
+
/** Database dialect. */
protected JdbcDialect dialect;
@@@ -224,23 -193,22 +224,23 @@@
throws CacheLoaderException;
/**
- * Extract key type id from key object.
+ * Calculate type ID for object.
*
- * @param key Key object.
- * @return Key type id.
- * @throws CacheException If failed to get type key id from object.
+ * @param obj Object to calculate type ID for.
+ * @return Type ID.
+ * @throws CacheException If failed to calculate type ID for given object.
*/
- protected abstract Object keyTypeId(Object key) throws CacheException;
+ protected abstract Object typeIdForObject(Object obj) throws CacheException;
/**
- * Extract key type id from key class name.
+ * Calculate type ID for given type name.
*
- * @param kind If {@code true} then calculate type ID for POJO otherwise for portable object .
- * @param type String description of key type.
- * @return Key type id.
- * @throws CacheException If failed to get type key id from object.
++ * @param kind If {@code true} then calculate type ID for POJO otherwise for binary object .
+ * @param typeName String description of type name.
+ * @return Type ID.
+ * @throws CacheException If failed to get type ID for given type name.
*/
- protected abstract Object keyTypeId(String type) throws CacheException;
+ protected abstract Object typeIdForTypeName(TypeKind kind, String typeName) throws CacheException;
/**
* Prepare internal store specific builders for provided types metadata.
@@@ -591,69 -574,7 +591,69 @@@
}
}
catch (ClassNotFoundException e) {
- throw new CacheException("Failed to find class: " + clsName, e);
+ throw new CacheException("Failed to find class: " + typeName, e);
+ }
+ }
+
+ /**
+ * For backward compatibility translate old field type descriptors to new format.
+ *
+ * @param oldFields Fields in old format.
+ * @return Fields in new format.
+ */
+ @Deprecated
+ private JdbcTypeField[] translateFields(Collection<CacheTypeFieldMetadata> oldFields) {
+ JdbcTypeField[] newFields = new JdbcTypeField[oldFields.size()];
+
+ int idx = 0;
+
+ for (CacheTypeFieldMetadata oldField : oldFields) {
+ newFields[idx] = new JdbcTypeField(oldField.getDatabaseType(), oldField.getDatabaseName(),
+ oldField.getJavaType(), oldField.getJavaName());
+
+ idx++;
+ }
+
+ return newFields;
+ }
+
+ /**
- * Checks for Built in/POJO/Portable type kind.
++ * Checks for Built in/POJO/Binary type kind.
+ *
+ * @param cacheName Cache name to get types settings.
- * @param typeName Type name to check for POJO/portable format.
- * @return {@code true} If portable format configured.
++ * @param typeName Type name to check for Builtin/POJO/binary format.
++ * @return {@code true} Type kind.
+ * @throws CacheException In case of error.
+ */
+ protected TypeKind typeKind(String cacheName, String typeName) {
+ Map<String, TypeKind> cacheTypes = typeKinds.get(cacheName);
+
+ if (cacheTypes == null)
+ throw new CacheException("Failed to find types metadata for cache: " + U.maskName(cacheName));
+
+ TypeKind kind = cacheTypes.get(typeName);
+
+ if (kind == null)
+ throw new CacheException("Failed to find type metadata for type: " + typeName);
+
+ return kind;
+ }
+
+ /**
+ * @param type Type name to check.
+ * @return {@code True} if class not found.
+ */
+ private TypeKind kindForName(String type) {
+ if (BUILT_IN_TYPES.contains(type))
+ return TypeKind.BUILT_IN;
+
+ try {
+ Class.forName(type);
+
+ return TypeKind.POJO;
+ }
+ catch(ClassNotFoundException ignored) {
- return TypeKind.PORTABLE;
++ return TypeKind.BINARY;
}
}
@@@ -1646,18 -1460,6 +1646,18 @@@
}
/**
+ * Type kind.
+ */
+ protected enum TypeKind {
+ /** Type is known as Java built in type, like {@link String} */
+ BUILT_IN,
+ /** Class for this type is available. */
+ POJO,
+ /** Class for this type is not available. */
- PORTABLE
++ BINARY
+ }
+
+ /**
* Entry mapping description.
*/
protected static class EntryMapping {
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fd4df59/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java
index ce22bdc,d78ea48..607b229
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcPojoStore.java
@@@ -28,13 -27,12 +28,12 @@@ import java.util.HashMap
import java.util.Map;
import javax.cache.CacheException;
import javax.cache.integration.CacheLoaderException;
- import org.apache.ignite.IgnitePortables;
- import org.apache.ignite.cache.IgniteObject;
-import org.apache.ignite.cache.CacheTypeFieldMetadata;
-import org.apache.ignite.cache.CacheTypeMetadata;
++import org.apache.ignite.IgniteBinary;
++import org.apache.ignite.binary.BinaryObject;
++import org.apache.ignite.binary.BinaryObjectBuilder;
import org.apache.ignite.cache.store.CacheStore;
import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.U;
- import org.apache.ignite.portable.PortableBuilder;
- import org.apache.ignite.portable.PortableObject;
import org.jetbrains.annotations.Nullable;
/**
@@@ -44,155 -43,136 +43,155 @@@
* Use {@link CacheJdbcPojoStoreFactory} factory to pass {@link CacheJdbcPojoStore} to {@link CacheConfiguration}.
*/
public class CacheJdbcPojoStore<K, V> extends CacheAbstractJdbcStore<K, V> {
- /**
- * POJO methods cache.
- */
- protected static class PojoMethodsCache {
- /** POJO class. */
- protected final Class<?> cls;
-
- /** Constructor for POJO object. */
- private Constructor ctor;
+ /** POJO methods cache. */
+ private volatile Map<String, Map<String, PojoMethodsCache>> pojosMethods = Collections.emptyMap();
- /** Portables builders cache. */
- private volatile Map<String, Map<String, Integer>> portablesTypeIds = Collections.emptyMap();
- /** {@code true} if object is a simple type. */
- private final boolean simple;
++ /** Binary types cache. */
++ private volatile Map<String, Map<String, Integer>> binariesTypeIds = Collections.emptyMap();
- /** Cached setters for POJO object. */
- private Map<String, Method> getters;
-
- /** Cached getters for POJO object. */
- private Map<String, Method> setters;
+ /**
+ * Get field value from object for use as query parameter.
+ *
+ * @param cacheName Cache name.
+ * @param typeName Type name.
+ * @param fieldName Field name.
+ * @param obj Cache object.
+ * @return Field value from object.
+ * @throws CacheException in case of error.
+ */
+ @Override @Nullable protected Object extractParameter(@Nullable String cacheName, String typeName, String fieldName,
+ Object obj) throws CacheException {
+ switch (typeKind(cacheName, typeName)) {
+ case BUILT_IN:
+ return obj;
+ case POJO:
+ return extractPojoParameter(cacheName, typeName, fieldName, obj);
+ default:
- return extractPortableParameter(fieldName, obj);
++ return extractBinaryParameter(fieldName, obj);
+ }
+ }
- /**
- * POJO methods cache.
- *
- * @param clsName Class name.
- * @param fields Fields.
- *
- * @throws CacheException If failed to construct type cache.
- */
- public PojoMethodsCache(String clsName, Collection<CacheTypeFieldMetadata> fields) throws CacheException {
- try {
- cls = Class.forName(clsName);
+ /**
+ * Get field value from POJO for use as query parameter.
+ *
+ * @param cacheName Cache name.
+ * @param typeName Type name.
+ * @param fieldName Field name.
+ * @param obj Cache object.
+ * @return Field value from object.
+ * @throws CacheException in case of error.
+ */
+ @Nullable private Object extractPojoParameter(@Nullable String cacheName, String typeName, String fieldName,
+ Object obj) throws CacheException {
+ try {
+ Map<String, PojoMethodsCache> cacheMethods = pojosMethods.get(cacheName);
- if (simple = simpleType(cls))
- return;
+ if (cacheMethods == null)
+ throw new CacheException("Failed to find POJO type metadata for cache: " + U.maskName(cacheName));
- ctor = cls.getDeclaredConstructor();
+ PojoMethodsCache mc = cacheMethods.get(typeName);
- if (!ctor.isAccessible())
- ctor.setAccessible(true);
- }
- catch (ClassNotFoundException e) {
- throw new CacheException("Failed to find class: " + clsName, e);
- }
- catch (NoSuchMethodException e) {
- throw new CacheException("Failed to find default constructor for class: " + clsName, e);
- }
+ if (mc == null)
+ throw new CacheException("Failed to find POJO type metadata for type: " + typeName);
- setters = U.newHashMap(fields.size());
+ Method getter = mc.getters.get(fieldName);
- getters = U.newHashMap(fields.size());
+ if (getter == null)
+ throw new CacheLoaderException("Failed to find getter in POJO class [class=" + typeName +
+ ", prop=" + fieldName + "]");
- for (CacheTypeFieldMetadata field : fields) {
- String prop = capitalFirst(field.getJavaName());
+ return getter.invoke(obj);
+ }
+ catch (Exception e) {
+ throw new CacheException("Failed to read object of class: " + typeName, e);
+ }
+ }
- try {
- getters.put(field.getJavaName(), cls.getMethod("get" + prop));
- }
- catch (NoSuchMethodException ignored) {
- try {
- getters.put(field.getJavaName(), cls.getMethod("is" + prop));
- }
- catch (NoSuchMethodException e) {
- throw new CacheException("Failed to find getter in POJO class [clsName=" + clsName +
- ", prop=" + field.getJavaName() + "]", e);
- }
- }
+ /**
- * Get field value from Portable for use as query parameter.
++ * Get field value from Binary object for use as query parameter.
+ *
+ * @param fieldName Field name to extract query parameter for.
+ * @param obj Object to process.
+ * @return Field value from object.
+ * @throws CacheException in case of error.
+ */
- private Object extractPortableParameter(String fieldName, Object obj) throws CacheException {
- if (obj instanceof PortableObject) {
- PortableObject pobj = (PortableObject)obj;
++ private Object extractBinaryParameter(String fieldName, Object obj) throws CacheException {
++ if (obj instanceof BinaryObject) {
++ BinaryObject pobj = (BinaryObject)obj;
- try {
- setters.put(field.getJavaName(), cls.getMethod("set" + prop, field.getJavaType()));
- }
- catch (NoSuchMethodException e) {
- throw new CacheException("Failed to find setter in POJO class [clsName=" + clsName +
- ", prop=" + field.getJavaName() + "]", e);
- }
- }
+ return pobj.field(fieldName);
}
- throw new CacheException("Failed to read property value from non portable object [class=" +
- /**
- * Capitalizes the first character of the given string.
- *
- * @param str String.
- * @return String with capitalized first character.
- */
- @Nullable private String capitalFirst(@Nullable String str) {
- return str == null ? null :
- str.isEmpty() ? "" : Character.toUpperCase(str.charAt(0)) + str.substring(1);
- }
++ throw new CacheException("Failed to read property value from non binary object [class=" +
+ obj.getClass() + ", property=" + fieldName + "]");
}
- /** Methods cache. */
- protected volatile Map<String, Map<String, PojoMethodsCache>> mtdsCache = Collections.emptyMap();
-
/** {@inheritDoc} */
- @Override protected void prepareBuilders(@Nullable String cacheName, Collection<CacheTypeMetadata> types)
- throws CacheException {
- Map<String, PojoMethodsCache> typeMethods = U.newHashMap(types.size() * 2);
+ @Override protected <R> R buildObject(@Nullable String cacheName, String typeName,
+ JdbcTypeField[] fields, Collection<String> hashFields, Map<String, Integer> loadColIdxs, ResultSet rs)
+ throws CacheLoaderException {
+ switch (typeKind(cacheName, typeName)) {
+ case BUILT_IN:
+ return (R)buildSimpleObject(typeName, fields, loadColIdxs, rs);
+ case POJO:
+ return (R)buildPojoObject(cacheName, typeName, fields, loadColIdxs, rs);
+ default:
- return (R)buildPortableObject(cacheName, typeName, fields, hashFields, loadColIdxs, rs);
++ return (R)buildBinaryObject(cacheName, typeName, fields, hashFields, loadColIdxs, rs);
+ }
+ }
- for (CacheTypeMetadata type : types) {
- String keyType = type.getKeyType();
- typeMethods.put(keyType, new PojoMethodsCache(keyType, type.getKeyFields()));
+ /**
+ * Construct Java built in object from query result.
+ *
+ * @param typeName Type name.
+ * @param fields Fields descriptors.
+ * @param loadColIdxs Select query columns indexes.
+ * @param rs ResultSet to take data from.
+ * @return Constructed object.
+ * @throws CacheLoaderException If failed to construct POJO.
+ */
+ private Object buildSimpleObject(String typeName, JdbcTypeField[] fields, Map<String, Integer> loadColIdxs,
+ ResultSet rs) throws CacheLoaderException {
+ try {
+ JdbcTypeField field = fields[0];
- String valType = type.getValueType();
- typeMethods.put(valType, new PojoMethodsCache(valType, type.getValueFields()));
+ return getColumnValue(rs, loadColIdxs.get(field.getDatabaseFieldName()), field.getJavaFieldType());
+ }
+ catch (SQLException e) {
+ throw new CacheLoaderException("Failed to read object of class: " + typeName, e);
}
+ }
- Map<String, Map<String, PojoMethodsCache>> newMtdsCache = new HashMap<>(mtdsCache);
+ /**
+ * Construct POJO from query result.
+ *
+ * @param cacheName Cache name.
+ * @param typeName Type name.
+ * @param fields Fields descriptors.
+ * @param loadColIdxs Select query columns index.
+ * @param rs ResultSet.
+ * @return Constructed POJO.
+ * @throws CacheLoaderException If failed to construct POJO.
+ */
+ private Object buildPojoObject(@Nullable String cacheName, String typeName,
+ JdbcTypeField[] fields, Map<String, Integer> loadColIdxs, ResultSet rs)
+ throws CacheLoaderException {
- newMtdsCache.put(cacheName, typeMethods);
+ Map<String, PojoMethodsCache> cacheMethods = pojosMethods.get(cacheName);
- mtdsCache = newMtdsCache;
- }
+ if (cacheMethods == null)
+ throw new CacheLoaderException("Failed to find POJO types metadata for cache: " + U.maskName(cacheName));
- /** {@inheritDoc} */
- @Override protected <R> R buildObject(String cacheName, String typeName, Collection<CacheTypeFieldMetadata> fields,
- Map<String, Integer> loadColIdxs, ResultSet rs) throws CacheLoaderException {
- PojoMethodsCache mc = mtdsCache.get(cacheName).get(typeName);
+ PojoMethodsCache mc = cacheMethods.get(typeName);
if (mc == null)
- throw new CacheLoaderException("Failed to find cache type metadata for type: " + typeName);
+ throw new CacheLoaderException("Failed to find POJO type metadata for type: " + typeName);
try {
- if (mc.simple) {
- CacheTypeFieldMetadata field = F.first(fields);
-
- return (R)getColumnValue(rs, loadColIdxs.get(field.getDatabaseName()), mc.cls);
- }
-
Object obj = mc.ctor.newInstance();
- for (CacheTypeFieldMetadata field : fields) {
- String fldJavaName = field.getJavaName();
+ for (JdbcTypeField field : fields) {
+ String fldJavaName = field.getJavaFieldName();
Method setter = mc.setters.get(fldJavaName);
@@@ -228,219 -203,44 +227,219 @@@
}
}
- /** {@inheritDoc} */
- @Nullable @Override protected Object extractParameter(String cacheName, String typeName, String fieldName,
- Object obj)
- throws CacheException {
+ /**
- * Construct portable object from query result.
++ * Construct binary object from query result.
+ *
+ * @param cacheName Cache name.
+ * @param typeName Type name.
+ * @param fields Fields descriptors.
+ * @param hashFields Collection of fields to build hash for.
+ * @param loadColIdxs Select query columns index.
+ * @param rs ResultSet.
- * @return Constructed portable object.
- * @throws CacheLoaderException If failed to construct portable object.
++ * @return Constructed binary object.
++ * @throws CacheLoaderException If failed to construct binary object.
+ */
- protected Object buildPortableObject(String cacheName, String typeName, JdbcTypeField[] fields,
++ protected Object buildBinaryObject(String cacheName, String typeName, JdbcTypeField[] fields,
+ Collection<String> hashFields, Map<String, Integer> loadColIdxs, ResultSet rs) throws CacheLoaderException {
- Map<String, Integer> cacheTypeIds = portablesTypeIds.get(cacheName);
++ Map<String, Integer> cacheTypeIds = binariesTypeIds.get(cacheName);
+
+ if (cacheTypeIds == null)
- throw new CacheLoaderException("Failed to find portable types IDs for cache: " + U.maskName(cacheName));
++ throw new CacheLoaderException("Failed to find binary types IDs for cache: " + U.maskName(cacheName));
+
+ Integer typeId = cacheTypeIds.get(typeName);
+
+ if (typeId == null)
- throw new CacheLoaderException("Failed to find portable type ID for type: " + typeName);
++ throw new CacheLoaderException("Failed to find binary type ID for type: " + typeName);
+
try {
- PortableBuilder builder = ignite.portables().builder(typeId);
- PojoMethodsCache mc = mtdsCache.get(cacheName).get(typeName);
++ BinaryObjectBuilder builder = ignite.binary().builder(typeId);
- if (mc == null)
- throw new CacheException("Failed to find cache type metadata for type: " + typeName);
+ boolean calcHash = hashFields != null;
- if (mc.simple)
- return obj;
+ Collection<Object> hashValues = calcHash ? new ArrayList<>(hashFields.size()) : null;
- Method getter = mc.getters.get(fieldName);
+ for (JdbcTypeField field : fields) {
+ Integer colIdx = loadColIdxs.get(field.getDatabaseFieldName());
- if (getter == null)
- throw new CacheLoaderException("Failed to find getter in POJO class [clsName=" + typeName +
- ", prop=" + fieldName + "]");
+ Object colVal = getColumnValue(rs, colIdx, field.getJavaFieldType());
- return getter.invoke(obj);
+ builder.setField(field.getJavaFieldName(), colVal);
+
+ if (calcHash)
+ hashValues.add(colVal);
+ }
+
+ if (calcHash)
+ builder.hashCode(hasher.hashCode(hashValues));
+
+ return builder.build();
}
- catch (Exception e) {
- throw new CacheException("Failed to read object of class: " + typeName, e);
+ catch (SQLException e) {
- throw new CacheException("Failed to read portable object", e);
++ throw new CacheException("Failed to read binary object", e);
}
}
- /** {@inheritDoc} */
- @Override protected Object keyTypeId(Object key) throws CacheException {
- return key.getClass();
+ /**
+ * Calculate type ID for object.
+ *
+ * @param obj Object to calculate type ID for.
+ * @return Type ID.
+ * @throws CacheException If failed to calculate type ID for given object.
+ */
+ @Override protected Object typeIdForObject(Object obj) throws CacheException {
- if (obj instanceof IgniteObject)
- return ((IgniteObject)obj).typeId();
++ if (obj instanceof BinaryObject)
++ return ((BinaryObject)obj).typeId();
+
+ return obj.getClass();
}
/** {@inheritDoc} */
- @Override protected Object keyTypeId(String type) throws CacheException {
+ @Override protected Object typeIdForTypeName(TypeKind kind, String typeName) throws CacheException {
- if (kind == TypeKind.PORTABLE)
- return ignite.portables().typeId(typeName);
++ if (kind == TypeKind.BINARY)
++ return ignite.binary().typeId(typeName);
+
try {
- return Class.forName(type);
+ return Class.forName(typeName);
}
catch (ClassNotFoundException e) {
- throw new CacheException("Failed to find class: " + type, e);
+ throw new CacheException("Failed to find class: " + typeName, e);
+ }
+ }
+
+ /**
+ * Prepare internal store specific builders for provided types metadata.
+ *
+ * @param cacheName Cache name to prepare builders for.
+ * @param types Collection of types.
+ * @throws CacheException If failed to prepare internal builders for types.
+ */
+ @Override protected void prepareBuilders(@Nullable String cacheName, Collection<JdbcType> types)
+ throws CacheException {
+ Map<String, PojoMethodsCache> pojoMethods = U.newHashMap(types.size() * 2);
+ Map<String, Integer> typeIds = U.newHashMap(types.size() * 2);
+
- IgnitePortables portables = ignite.portables();
++ IgniteBinary binary = ignite.binary();
+
+ for (JdbcType type : types) {
+ String keyTypeName = type.getKeyType();
+
+ TypeKind keyKind = typeKind(cacheName, keyTypeName);
+
+ if (keyKind == TypeKind.POJO) {
+ if (pojoMethods.containsKey(keyTypeName))
+ throw new CacheException("Found duplicate key type [cache=" + U.maskName(cacheName) +
+ ", keyType=" + keyTypeName + "]");
+
+ pojoMethods.put(keyTypeName, new PojoMethodsCache(keyTypeName, type.getKeyFields()));
+ }
- else if (keyKind == TypeKind.PORTABLE)
- typeIds.put(keyTypeName, portables.typeId(keyTypeName));
++ else if (keyKind == TypeKind.BINARY)
++ typeIds.put(keyTypeName, binary.typeId(keyTypeName));
+
+ String valTypeName = type.getValueType();
+
+ TypeKind valKind = typeKind(cacheName, valTypeName);
+
+ if (valKind == TypeKind.POJO)
+ pojoMethods.put(valTypeName, new PojoMethodsCache(valTypeName, type.getValueFields()));
- else if (valKind == TypeKind.PORTABLE)
- typeIds.put(valTypeName, portables.typeId(valTypeName));
++ else if (valKind == TypeKind.BINARY)
++ typeIds.put(valTypeName, binary.typeId(valTypeName));
+ }
+
+ if (!pojoMethods.isEmpty()) {
+ Map<String, Map<String, PojoMethodsCache>> newPojosMethods = new HashMap<>(pojosMethods);
+
+ newPojosMethods.put(cacheName, pojoMethods);
+
+ pojosMethods = newPojosMethods;
+ }
+
+ if (!typeIds.isEmpty()) {
- Map<String, Map<String, Integer>> newPortablesTypeIds = new HashMap<>(portablesTypeIds);
++ Map<String, Map<String, Integer>> newBinariesTypeIds = new HashMap<>(binariesTypeIds);
+
- newPortablesTypeIds.put(cacheName, typeIds);
++ newBinariesTypeIds.put(cacheName, typeIds);
+
- portablesTypeIds = newPortablesTypeIds;
++ binariesTypeIds = newBinariesTypeIds;
+ }
+ }
+
+ /**
+ * POJO methods cache.
+ */
+ private static class PojoMethodsCache {
+ /** POJO class. */
+ private final Class<?> cls;
+
+ /** Constructor for POJO object. */
+ private Constructor ctor;
+
+ /** Cached setters for POJO object. */
+ private Map<String, Method> getters;
+
+ /** Cached getters for POJO object. */
+ private Map<String, Method> setters;
+
+ /**
+ * POJO methods cache.
+ *
+ * @param clsName Class name.
+ * @param fields Fields.
+ * @throws CacheException If failed to construct type cache.
+ */
+ private PojoMethodsCache(String clsName, JdbcTypeField[] fields) throws CacheException {
+ try {
+ cls = Class.forName(clsName);
+
+ ctor = cls.getDeclaredConstructor();
+
+ if (!ctor.isAccessible())
+ ctor.setAccessible(true);
+ }
+ catch (ClassNotFoundException e) {
+ throw new CacheException("Failed to find class: " + clsName, e);
+ }
+ catch (NoSuchMethodException e) {
+ throw new CacheException("Failed to find default constructor for class: " + clsName, e);
+ }
+
+ setters = U.newHashMap(fields.length);
+
+ getters = U.newHashMap(fields.length);
+
+ for (JdbcTypeField field : fields) {
+ String prop = capitalFirst(field.getJavaFieldName());
+
+ try {
+ getters.put(field.getJavaFieldName(), cls.getMethod("get" + prop));
+ }
+ catch (NoSuchMethodException ignored) {
+ try {
+ getters.put(field.getJavaFieldName(), cls.getMethod("is" + prop));
+ }
+ catch (NoSuchMethodException e) {
+ throw new CacheException("Failed to find getter in POJO class [class=" + clsName +
+ ", prop=" + field.getJavaFieldName() + "]", e);
+ }
+ }
+
+ try {
+ setters.put(field.getJavaFieldName(), cls.getMethod("set" + prop, field.getJavaFieldType()));
+ }
+ catch (NoSuchMethodException e) {
+ throw new CacheException("Failed to find setter in POJO class [class=" + clsName +
+ ", prop=" + field.getJavaFieldName() + "]", e);
+ }
+ }
+ }
+
+ /**
+ * Capitalizes the first character of the given string.
+ *
+ * @param str String.
+ * @return String with capitalized first character.
+ */
+ @Nullable private String capitalFirst(@Nullable String str) {
+ return str == null ? null :
+ str.isEmpty() ? "" : Character.toUpperCase(str.charAt(0)) + str.substring(1);
}
}
-}
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fd4df59/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeDefaultHasher.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeDefaultHasher.java
index e7de753,0000000..3baad3b
mode 100644,000000..100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeDefaultHasher.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeDefaultHasher.java
@@@ -1,45 -1,0 +1,43 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.cache.store.jdbc;
+
- import org.apache.ignite.cache.IgniteObject;
-
+import java.util.Collection;
+
+/**
+ * Default implementation of {@link JdbcTypeHasher}.
+ *
+ * This implementation ignores type and field names.
+ */
+public class JdbcTypeDefaultHasher implements JdbcTypeHasher {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** Singleton instance to use. */
+ public static final JdbcTypeHasher INSTANCE = new JdbcTypeDefaultHasher();
+
+ /** {@inheritDoc} */
+ @Override public int hashCode(Collection<?> values) {
+ int hash = 0;
+
+ for (Object val : values)
+ hash = 31 * hash + (val != null ? val.hashCode() : 0);
+
+ return hash;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fd4df59/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeHasher.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeHasher.java
index ed35899,0000000..9d1fcea
mode 100644,000000..100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeHasher.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcTypeHasher.java
@@@ -1,34 -1,0 +1,34 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.cache.store.jdbc;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+/**
- * API for implementing custom hashing logic for portable objects on server side.
++ * API for implementing custom hashing logic for binary objects on server side.
+ */
+public interface JdbcTypeHasher extends Serializable {
+ /**
+ * Calculate hash code for specified object and fields.
+ *
+ * @param values Collection of values that should participate in hash code calculation.
+ * @return Hash code.
+ */
+ public int hashCode(Collection<?> values);
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fd4df59/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/Organization.java
----------------------------------------------------------------------
diff --cc modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/Organization.java
index efb71d6,f457e7e..8185e84
--- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/Organization.java
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/Organization.java
@@@ -124,4 -124,4 +124,4 @@@ public class Organization implements Ex
return "Organization [id=" + id +
", name=" + name + ']';
}
--}
++}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fd4df59/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/Person.java
----------------------------------------------------------------------
diff --cc modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/Person.java
index e826d65,e59ba19..1656f1f
--- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/Person.java
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/Person.java
@@@ -212,4 -212,4 +212,4 @@@ public class Person implements External
", salary=" + salary +
']';
}
--}
++}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fd4df59/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/SampleKey.java
----------------------------------------------------------------------
diff --cc modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/SampleKey.java
index 5fa9dea,e089696..7f37c0f
--- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/SampleKey.java
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/SampleKey.java
@@@ -102,4 -102,4 +102,4 @@@ public class SampleKey implements Exter
@Override public String toString() {
return "Key [id=" + id + ']';
}
--}
++}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5fd4df59/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/SampleValue.java
----------------------------------------------------------------------
diff --cc modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/SampleValue.java
index f15d671,b28862c..71069b9
--- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/SampleValue.java
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/SampleValue.java
@@@ -83,4 -83,4 +83,4 @@@ public class SampleValue implements Ext
@Override public String toString() {
return "Value [id=" + id + ']';
}
--}
++}