You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2021/08/31 11:33:32 UTC
[ignite-3] branch ignite-15212 updated (0a5c47b -> 21cfef4)
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a change to branch ignite-15212
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.
from 0a5c47b Split session to sync/async/reactive.
new b8639fa minor
add f1cffa2 IGNITE-15202 Muted ITNodeTest.readCommittedUserLog.
add ce83394 IGNITE-15148 Implemented top level node stop logic. Fixes #230
add bf51a6c IGNITE-15210 Fixed access modifiers of setUp/tearDown (@BeforeEach, @AfterEach). Fixes #249
add e1d490b IGNITE-15213 Fix distributed configuration restart (#250)
add 5e37640 IGNITE-15162 Thin 3.0: Add buffer pooling (#252)
add dbe4035 IGNITE-15218 Add async methods to IgniteTables (#253)
add 5353c4d IGNITE-15215 Unmuted DynamicTableCreationTest. - Fixes #251.
add 7a09d67 IGNITE-14841 Use shared distruptor pool for multiple raft group nodes. Fixes #207
add fe2334b IGNITE-15237 Thin 3.0: Fix ClientHandlerIntegrationTest flakiness (#255)
add d3dc66f IGNITE-15166 Implemented "rename" API for named lists configuration. (#244)
add e30ee0d IGNITE-15262 Removed duplicated TestConfigurationStorage classes. (#261)
add ab4a585 IGNITE-15224 Thin 3.0: Implement Table API operations (#263)
add 68d80ef IGNITE-14790 Persistent partition storage based on RocksDB. (#254)
add 356c766 IGNITE-15264 Fixed wrong applied revision handling in DistributedConfigurationStorage (#262)
add 93afd72 IGNITE-15275 Fix handshake operation (#265)
add 3556078 IGNITE-15174 Fix javadocs in Network module (#270)
add e7fa690 IGNITE-15193 Fixed broken notifications in configuration framework. (#259)
add 7b8d9fa IGNITE-13668 Number native type support (#243)
add b1551e5 IGNITE-15286 Fixed imports order & checkstyle/codestyle rules added. (#271)
add 4bd3d27 IGNITE-14956 Implemented and checked scenarios for startup configuration. Fixes #256
add e1507d1 IGNITE-15211 Improve logging formatting (#266)
add 0507f4a IGNITE-15196 Fail invoke futures on network stop (#269)
add 8195c26 IGNITE-14579 Start REST API module. Fixes #264
add 9d04a4b IGNITE-15219 Fixed hanging tests by enriching TableEventParameters with non-null table reference. Fixes #260
add 85678b7 Revert "IGNITE-15219 Fixed hanging tests by enriching TableEventParameters with non-null table reference. Fixes #260"
add cd6d863 IGNITE-15025 Add Maven check scripts to VCS (#247)
add 8ee8bb1 IGNITE-15269 Get rid of com.google.gson for configuration (#267)
add b187176 IGNITE-15303 Maven Sanity Check is broken in main branch (#277)
add cb77daa IGNITE-15182 Fix PMD plugin configuration (#241)
add 9840566 IGNITE-15304 Validate POM files for duplicate dependencies (#279)
add 737cf67 IGNITE-15296 Generated node classes throw NPE now if null passed. (#274)
add 78a4e11 IGNITE-15309 Fix nodes hanging on stop (#280)
add ff694ff IGNITE-15310 fix bug in JavaLoggerFormatter (#281)
add 2d05b82 IGNITE-15297 Removed spin-wait loop in ConfigurationChanger (#275)
add 3e18a6c IGNITE-15305 Fixed flaky ITDistributedConfigurationStorageTest#testRestartWithPds. (#276)
add e584604 IGNITE-15272 Async raft group service startup (#272)
add b82c1cb IGNITE-15285 Properly splitting ConfigurationManager instances (node and cluster) (#273)
add 6a9740a IGNITE-15298 Muted ITMetaStorageServicePersistenceTest.testSnapshot
add da4d47f IGNITE-15312 Muted ITNodeTest.testPreVote
add 4a7f0a8 IGNITE-14016 - RPM package for Ignite 3 (#29)
add afe2cce IGNITE-15236 Thin 3.0: Start client-handler module (#283)
add 2ac66e7 IGNITE-15331 Remove slf4j-simple (#289)
add e64a30a IGNITE-15335 Introduce thread utils for Ignite 3.0 (#292)
add 0983c2a IGNITE-14943 Fixed race in ThreadId.setError method - Fixes #287.
add 5e1a00c IGNITE-15164 Improve thin client configuration (#298)
add bcc267e IGNITE-14735 Fix CheckStyle report not being generated in case of violation (#131)
add 3da7311 IGNITE-15278 Node start/stop refactoring. Fixes #293
add ca85b47 IGNITE-15366 Create CONTRIBUTING.md (#299)
add e73d124 IGNITE-15298 RAFT snapshots implementation for persistent partitions storage - Fixes #285.
add 436462f IGNITE-13669: Support temporal types. (#216)
add 42a5d78 IGNITE-15313 shutdown Executors correctly in JRaft codebase. Fixes #288
add e7d7ea6 IGNITE-15253 Tuple API improvement (#282)
add fbf55e2 IGNITE-15163 Support BitSet, Number, Decimal and Temporal types (#296)
new 21cfef4 Merge branch 'main' into ignite-15212
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
CONTRIBUTING.md | 70 +++
DEVNOTES.md | 12 +
check-rules/checkstyle-disabled-modules.xml | 2 -
check-rules/checkstyle-rules.xml | 19 +
.../CheckDependencyAndPluginVersionsNotInParent.sh | 30 ++
.../CheckDuplicateDependencies.sh | 30 ++
.../CheckModulesInRootPomAreSorted.sh | 25 +
.../CheckPropertiesNotInParent.sh | 25 +
.../CheckUnusedDependenciesAndPluginsInParent.sh | 44 ++
.../maven-check-scripts/CheckUnusedProperties.sh | 34 ++
check-rules/maven-check-scripts/run.sh | 43 ++
config/java.util.logging.properties | 57 +++
deliveries/rpm/.gitignore | 2 +
deliveries/rpm/Dockerfile | 42 ++
deliveries/rpm/README.md | 48 ++
deliveries/rpm/apache-ignite.spec | 236 +++++++++
deliveries/rpm/build.sh | 38 ++
.../example/table/KeyValueBinaryViewExample.java | 10 +-
.../apache/ignite/example/table/TableExample.java | 7 +-
idea/ignite_codeStyle.xml | 119 +++++
modules/affinity/pom.xml | 7 +
.../ignite/internal/affinity/AffinityManager.java | 11 +-
.../internal/affinity/AffinityManagerTest.java | 59 ++-
.../affinity/TestConfigurationStorage.java | 74 ---
.../main/java/org/apache/ignite/app/Ignite.java | 7 +
.../main/java/org/apache/ignite/app/Ignition.java | 29 +-
.../org/apache/ignite/app/IgnitionManager.java | 92 +++-
.../ClientConnectorConfigurationSchema.java | 7 +-
.../schemas/rest/RestConfigurationSchema.java | 2 +-
.../org/apache/ignite/query/sql/SqlSession.java | 15 +-
.../java/org/apache/ignite/schema/ColumnType.java | 314 +++++++++++-
.../apache/ignite/table/KeyValueBinaryView.java | 7 -
.../main/java/org/apache/ignite/table/Table.java | 7 -
.../main/java/org/apache/ignite/table/Tuple.java | 160 +++++-
.../java/org/apache/ignite/table/TupleImpl.java | 317 ++++++++++++
.../apache/ignite/table/manager/IgniteTables.java | 56 +-
.../ignite/internal/baseline/BaselineManager.java | 13 +-
modules/calcite/pom.xml | 6 +
.../query/calcite/SqlQueryProcessor.java | 34 +-
.../query/calcite/exec/QueryTaskExecutorImpl.java | 3 +-
.../rule/FilterSpoolMergeToHashIndexSpoolRule.java | 4 +-
.../calcite/exec/rel/AbstractExecutionTest.java | 7 +-
modules/cli/ignite.sh | 2 +-
modules/cli/pom.xml | 12 +
.../org/apache/ignite/cli/ConfigCommandTest.java | 179 +++++++
.../cli/builtins/config/ConfigurationClient.java | 21 +-
.../ignite/cli/builtins/module/ModuleRegistry.java | 8 +-
.../apache/ignite/cli/spec/ConfigCommandSpec.java | 31 +-
.../ignite/cli/spec/InitIgniteCommandSpec.java | 2 +-
.../apache/ignite/cli/IgniteCliInterfaceTest.java | 41 +-
.../cli/builtins/init/InitIgniteCommandTest.java | 4 +-
.../cli/builtins/module/ModuleMangerTest.java | 4 +-
.../org/apache/ignite/cli/ui/ProgressBarTest.java | 4 +-
.../apache/ignite/client/proto/ClientDataType.java | 15 +
.../ignite/client/proto/ClientMessageCommon.java} | 24 +-
.../ignite/client/proto/ClientMessageDecoder.java | 98 +---
.../ignite/client/proto/ClientMessageEncoder.java | 47 --
.../ignite/client/proto/ClientMessagePacker.java | 496 ++++++++++++++++--
.../ignite/client/proto/ClientMessageUnpacker.java | 505 +++++++++++++++++-
.../ignite/client/proto/ClientMsgPackType.java | 6 +
.../org/apache/ignite/client/proto/ClientOp.java | 60 +++
.../client/proto/ClientMessageDecoderTest.java | 68 +--
.../client/proto/ClientMessageEncoderTest.java | 53 --
.../proto/ClientMessagePackerUnpackerTest.java | 232 ++++++++-
modules/client-handler/pom.xml | 9 +-
.../ignite/client/handler/ClientHandlerModule.java | 94 ++--
.../handler/ClientInboundMessageHandler.java | 486 ++++++------------
.../requests/table/ClientSchemasGetRequest.java | 74 +++
.../handler/requests/table/ClientTableCommon.java | 474 +++++++++++++++++
.../requests/table/ClientTableDropRequest.java} | 26 +-
.../requests/table/ClientTableGetRequest.java} | 52 +-
.../requests/table/ClientTablesGetRequest.java} | 63 +--
.../table/ClientTupleDeleteAllExactRequest.java | 51 ++
.../table/ClientTupleDeleteAllRequest.java | 51 ++
.../table/ClientTupleDeleteExactRequest.java} | 48 +-
.../requests/table/ClientTupleDeleteRequest.java} | 48 +-
.../requests/table/ClientTupleGetAllRequest.java | 51 ++
.../table/ClientTupleGetAndDeleteRequest.java | 51 ++
.../table/ClientTupleGetAndReplaceRequest.java | 51 ++
.../ClientTupleGetAndReplaceSchemalessRequest.java | 51 ++
.../table/ClientTupleGetAndUpsertRequest.java | 51 ++
.../ClientTupleGetAndUpsertSchemalessRequest.java | 51 ++
.../requests/table/ClientTupleGetRequest.java | 51 ++
.../table/ClientTupleInsertAllRequest.java | 51 ++
.../ClientTupleInsertAllSchemalessRequest.java | 51 ++
.../requests/table/ClientTupleInsertRequest.java} | 48 +-
.../table/ClientTupleInsertSchemalessRequest.java} | 48 +-
.../table/ClientTupleReplaceExactRequest.java | 54 ++
.../ClientTupleReplaceExactSchemalessRequest.java | 52 ++
.../requests/table/ClientTupleReplaceRequest.java} | 48 +-
.../ClientTupleReplaceSchemalessRequest.java} | 48 +-
.../table/ClientTupleUpsertAllRequest.java} | 46 +-
.../ClientTupleUpsertAllSchemalessRequest.java} | 46 +-
.../requests/table/ClientTupleUpsertRequest.java} | 46 +-
.../table/ClientTupleUpsertSchemalessRequest.java} | 46 +-
.../handler/requests/table/package-info.java} | 13 +-
.../handler/ClientHandlerIntegrationTest.java | 61 ++-
.../client/handler/TestConfigurationStorage.java | 75 ---
modules/client/pom.xml | 7 +
.../org/apache/ignite/client/IgniteClient.java | 168 ++++--
.../ignite/client/IgniteClientConfiguration.java | 46 +-
.../client/ClientChannelConfiguration.java | 72 +--
.../client/IgniteClientConfigurationImpl.java | 97 ++++
.../internal/client/PayloadInputChannel.java | 7 +-
.../internal/client/PayloadOutputChannel.java | 9 +-
.../ignite/internal/client/ReliableChannel.java | 31 +-
.../ignite/internal/client/TcpClientChannel.java | 84 ++-
.../ignite/internal/client/TcpIgniteClient.java | 57 ++-
.../internal/client/io/ClientConnection.java | 12 +-
.../client/io/ClientConnectionMultiplexer.java | 7 +-
.../internal/client/io/ClientMessageHandler.java | 4 +-
.../client/io/netty/NettyClientConnection.java | 12 +-
.../io/netty/NettyClientConnectionMultiplexer.java | 14 +-
.../client/io/netty/NettyClientMessageHandler.java | 7 +-
.../ignite/internal/client/table/ClientTable.java | 341 ++++++++++---
.../ignite/internal/client/table/ClientTables.java | 37 +-
.../{ClientTupleBuilder.java => ClientTuple.java} | 81 ++-
.../apache/ignite/client/AbstractClientTest.java | 89 ++--
.../org/apache/ignite/client/ClientTableTest.java | 310 ++++++++++-
...tTupleBuilderTest.java => ClientTupleTest.java} | 59 ++-
.../apache/ignite/client/ConfigurationTest.java | 125 +++++
.../org/apache/ignite/client/ConnectionTest.java | 8 +-
.../java/org/apache/ignite/client/CustomTuple.java | 223 ++++++++
.../org/apache/ignite/client/ReconnectTest.java | 108 ++++
.../ignite/client/TestConfigurationStorage.java | 75 ---
.../org/apache/ignite/client/fakes/FakeIgnite.java | 5 +
.../ignite/client/fakes/FakeIgniteTables.java | 70 ++-
.../ignite/client/fakes/FakeInternalTable.java | 121 ++++-
.../ignite/client/fakes/FakeSchemaRegistry.java | 97 ++++
modules/configuration-annotation-processor/pom.xml | 7 +
.../configuration/ConfigurationChangerTest.java | 146 +++---
.../configuration/TestConfigurationChanger.java | 33 +-
.../configuration/hocon/HoconConverterTest.java | 16 +-
.../configuration/json/JsonConverterTest.java | 541 --------------------
.../notifications/ConfigurationListenerTest.java | 466 +++++++++++++++--
.../internal/configuration/sample/UsageTest.java | 23 +-
.../configuration/tree/NamedListNodeTest.java | 312 ++++++++++++
.../configuration/tree/NamedListOrderTest.java | 239 ---------
.../tree/TraversableTreeNodeTest.java | 6 +
.../configuration/util/ConfigurationUtilTest.java | 175 ++++---
.../validation/ValidationUtilTest.java | 2 +-
.../ignite/configuration/ConfigurationTree.java | 12 +-
.../ignite/configuration/ConfigurationValue.java | 4 +-
.../configuration/NamedConfigurationTree.java | 2 +-
.../ignite/configuration/NamedListChange.java | 22 +-
.../org/apache/ignite/configuration/RootKey.java | 18 +-
.../notifications/ConfigurationListener.java | 4 +-
.../ConfigurationNamedListListener.java | 24 +-
modules/configuration/pom.xml | 22 +-
.../configuration/ConfigurationChanger.java | 353 +++++--------
.../configuration/ConfigurationManager.java | 59 +--
.../configuration/ConfigurationRegistry.java | 117 +++--
.../configuration/DynamicConfiguration.java | 40 +-
.../internal/configuration/DynamicProperty.java | 6 +-
.../configuration/NamedListConfiguration.java | 26 +-
.../asm/ConfigurationAsmGenerator.java | 17 +-
.../json/JsonConfigurationVisitor.java | 127 -----
.../internal/configuration/json/JsonConverter.java | 43 --
.../json/JsonObjectConfigurationSource.java | 105 ----
.../json/JsonPrimitiveConfigurationSource.java | 202 --------
.../storage/ConfigurationStorage.java | 7 -
.../storage/ConfigurationStorageListener.java | 6 +-
.../internal/configuration/tree/NamedListNode.java | 230 +++++++--
.../configuration/util/ConfigurationFlattener.java | 25 +-
.../ConfigurationNotificationEventImpl.java | 6 +-
.../util/ConfigurationNotificationsUtil.java | 171 +++++--
.../configuration/util/ConfigurationUtil.java | 292 ++++-------
.../storage/TestConfigurationStorage.java | 20 +-
.../ignite/internal/manager/IgniteComponent.java | 46 ++
.../internal/thread}/NamedThreadFactory.java | 59 ++-
.../thread}/StripedThreadPoolExecutor.java | 15 +-
.../apache/ignite/internal/util/IgniteUtils.java | 43 ++
.../apache/ignite/lang/JavaLoggerFormatter.java | 146 ++++++
.../apache/ignite/lang/NodeStoppingException.java | 75 +++
.../internal/testframework/IgniteAbstractTest.java | 47 ++
.../internal/testframework/IgniteTestUtils.java | 75 ++-
.../tostring/IgniteToStringBuilderSelfTest.java | 6 +-
modules/metastorage-client/pom.xml | 7 +
.../ITMetaStorageServicePersistenceTest.java | 384 ++------------
.../client/ITMetaStorageServiceTest.java | 55 +-
.../internal/metastorage/client/CursorImpl.java | 7 +
.../metastorage/client/MetaStorageService.java | 2 +-
.../metastorage/client/MetaStorageServiceImpl.java | 3 +-
.../metastorage/common/command/OperationInfo.java | 3 +-
modules/metastorage-server/pom.xml | 4 +-
.../internal/metastorage/server/Condition.java | 3 +-
.../server/persistence/RocksDBKeyValueStorage.java | 55 +-
.../server/persistence/RocksStorageUtils.java | 86 ----
.../server/persistence/WatchCursor.java | 5 +-
.../internal/metastorage/MetaStorageManager.java | 66 +--
.../metastorage/watch/WatchAggregator.java | 4 +-
.../internal/metastorage/WatchAggregatorTest.java | 6 +-
.../processor/TransferableObjectProcessor.java | 2 +-
.../messages/MessageBuilderGenerator.java | 2 +-
.../messages/MessageFactoryGenerator.java | 2 +-
.../serialization/BaseMethodNameResolver.java | 4 +-
.../MessageCollectionItemTypeConverter.java | 4 +-
.../serialization/MessageSerializerGenerator.java | 4 +-
modules/network-api/pom.xml | 5 +
.../ignite/network/AbstractClusterService.java | 2 +-
.../ignite/network/AbstractMessagingService.java | 19 +-
.../ignite/network/AbstractTopologyService.java | 8 +-
.../ignite/network/ClusterLocalConfiguration.java | 34 +-
.../org/apache/ignite/network/ClusterNode.java | 10 +-
.../org/apache/ignite/network/ClusterService.java | 32 +-
.../ignite/network/ClusterServiceFactory.java | 11 +-
.../org/apache/ignite/network/NetworkAddress.java | 7 +
.../network/NetworkConfigurationException.java | 2 +
.../ignite/network/NetworkMessageHandler.java | 10 +-
.../org/apache/ignite/network/TopologyService.java | 7 +-
.../ignite/network/annotations/Transferable.java | 4 +-
.../ignite/network/annotations/package-info.java} | 13 +-
.../org/apache/ignite/network/package-info.java} | 13 +-
.../network/serialization/MessageDeserializer.java | 12 +
.../serialization/MessageMappingException.java | 2 +
.../serialization/MessageSerializationFactory.java | 2 +
.../network/serialization/MessageSerializer.java | 2 +
.../network/serialization/MessageWriter.java | 4 +-
.../network/serialization/package-info.java} | 13 +-
modules/network/pom.xml | 14 +
.../network/netty/ConnectionManagerTest.java | 22 +
.../network/recovery/RecoveryHandshakeTest.java | 74 ++-
.../network/scalecube/ITNodeRestartsTest.java | 44 +-
.../scalecube/ITScaleCubeNetworkMessagingTest.java | 111 +++-
.../TestScaleCubeClusterServiceFactory.java | 21 +-
.../ignite/network/scalecube/package-info.java} | 13 +-
.../ignite/utils/ClusterServiceTestUtils.java | 103 ++++
.../internal/network/NetworkMessageTypes.java | 4 +-
.../network/direct/DirectMessageReader.java | 4 +-
.../network/direct/DirectMessageWriter.java | 4 +-
.../internal/network/message/ScaleCubeMessage.java | 2 +-
.../internal/network/netty/ConnectionManager.java | 44 +-
.../internal/network/netty/HandshakeHandler.java | 4 +-
.../internal/network/netty/InboundDecoder.java | 2 +-
.../internal/network/netty/MessageHandler.java | 9 +-
.../ignite/internal/network/netty/NettyClient.java | 2 +-
.../ignite/internal/network/netty/NettySender.java | 2 +-
.../ignite/internal/network/netty/NettyServer.java | 18 +-
.../ignite/internal/network/netty/NettyUtils.java | 4 +-
.../internal/network/netty/OutboundEncoder.java | 2 +-
.../network/MessageSerializationRegistryImpl.java | 4 +-
.../apache/ignite/network/StaticNodeFinder.java | 5 +-
.../org/apache/ignite/network/package-info.java} | 13 +-
.../scalecube/DelegatingTransportFactory.java | 4 +-
.../scalecube/ScaleCubeClusterServiceFactory.java | 93 ++--
.../ScaleCubeDirectMarshallerTransport.java | 12 +-
.../scalecube/ScaleCubeMessagingService.java | 25 +-
.../scalecube/ScaleCubeTopologyService.java | 3 +
.../ignite/network/scalecube/package-info.java} | 13 +-
.../internal/network/netty/NettyClientTest.java | 4 +-
.../internal/network/netty/NettyServerTest.java | 8 +-
.../src/test/resources/simplelogger.properties | 52 --
.../raft/client/service/RaftGroupListener.java | 2 +-
.../client/service/impl/RaftGroupServiceImpl.java | 54 +-
.../raft/client/service/RaftGroupServiceTest.java | 26 +-
modules/raft/pom.xml | 24 +-
.../service/ITAbstractListenerSnapshotTest.java | 392 ++++++++++++++
.../ignite/raft/jraft/core/ITCliServiceTest.java | 25 +-
.../apache/ignite/raft/jraft/core/ITNodeTest.java | 110 +++-
.../apache/ignite/raft/server/CounterListener.java | 10 +-
.../raft/server/ITJRaftCounterServerTest.java | 128 +++--
.../raft/server/ITSimpleCounterServerTest.java | 44 +-
.../ignite/raft/server/RaftServerAbstractTest.java | 24 +-
.../java/org/apache/ignite/internal/raft/Loza.java | 26 +-
.../ignite/internal/raft/server/RaftServer.java | 10 +-
.../internal/raft/server/impl/JRaftServerImpl.java | 127 ++++-
.../org/apache/ignite/raft/jraft/JRaftUtils.java | 73 ++-
.../ignite/raft/jraft/core/FSMCallerImpl.java | 69 +--
.../apache/ignite/raft/jraft/core/NodeImpl.java | 75 ++-
.../raft/jraft/core/ReadOnlyServiceImpl.java | 61 ++-
.../ignite/raft/jraft/core/TimerManager.java | 2 +-
.../{util => disruptor}/DisruptorBuilder.java | 11 +-
.../ignite/raft/jraft/disruptor/GroupAware.java} | 15 +-
.../raft/jraft/disruptor/StripedDisruptor.java | 281 ++++++++++
.../ignite/raft/jraft/option/FSMCallerOptions.java | 26 +-
.../raft/jraft/option/LogManagerOptions.java | 31 +-
.../ignite/raft/jraft/option/NodeOptions.java | 24 +
.../raft/jraft/option/ReadOnlyServiceOptions.java | 21 +
.../ignite/raft/jraft/option/RpcOptions.java | 51 +-
.../raft/jraft/rpc/impl/IgniteRpcServer.java | 11 +-
.../rpc/impl/client/GetLeaderRequestProcessor.java | 7 +-
.../raft/jraft/storage/impl/LogManagerImpl.java | 67 ++-
.../raft/jraft/storage/impl/RocksDBLogStorage.java | 6 +-
.../raft/jraft/util/LogExceptionHandler.java | 64 ---
.../ignite/raft/jraft/util/RepeatedTimer.java | 1 +
.../apache/ignite/raft/jraft/util/ThreadId.java | 27 +-
.../org/apache/ignite/raft/jraft/util/Utils.java | 4 +-
.../DefaultFixedThreadsExecutorGroupFactory.java | 2 +-
.../concurrent/DefaultSingleThreadExecutor.java | 2 +-
.../jraft/util/timer/DefaultRaftTimerFactory.java | 2 +-
.../ignite/raft/jraft/util/timer/DefaultTimer.java | 2 +-
.../internal/raft/server/impl/RaftServerImpl.java | 44 +-
.../jraft/closure/SynchronizedClosureTest.java | 40 +-
.../ignite/raft/jraft/core/BallotBoxTest.java | 7 +-
.../ignite/raft/jraft/core/FSMCallerTest.java | 21 +-
.../ignite/raft/jraft/core/IteratorImplTest.java | 13 +-
.../raft/jraft/core/ReadOnlyServiceTest.java | 31 +-
.../ignite/raft/jraft/core/ReplicatorTest.java | 7 +-
.../apache/ignite/raft/jraft/core/TestCluster.java | 112 +++-
.../jraft/entity/codec/LogEntryCodecPerfTest.java | 9 +-
.../raft/jraft/rpc/AbstractClientServiceTest.java | 12 +-
.../ignite/raft/jraft/rpc/IgniteRpcTest.java | 60 ++-
.../ignite/raft/jraft/rpc/TestIgniteRpcServer.java | 27 +-
.../ignite/raft/jraft/rpc/impl/FutureTest.java | 75 +--
.../core/AppendEntriesRequestProcessorTest.java | 3 +-
.../impl/core/BaseNodeRequestProcessorTest.java | 19 +-
.../raft/jraft/storage/SnapshotExecutorTest.java | 16 +-
.../raft/jraft/storage/impl/LogManagerTest.java | 21 +-
.../storage/snapshot/remote/CopySessionTest.java | 54 +-
.../raft/jraft/util/ByteBufferCollectorTest.java | 7 +-
.../ignite/raft/jraft/util/CountDownEventTest.java | 14 +-
.../jraft/util/RecyclableByteBufferListTest.java | 7 +-
.../ignite/raft/jraft/util/RecyclersTest.java | 21 +-
.../ignite/raft/jraft/util/ThreadIdTest.java | 70 +--
.../apache/ignite/raft/jraft/util/UtilsTest.java | 16 +-
.../LongHeldDetectingReadWriteLockTest.java | 146 ++++--
.../concurrent/MpscSingleThreadExecutorTest.java | 2 +-
.../concurrent/SingleThreadExecutorBenchmark.java | 4 +-
modules/rest/pom.xml | 14 +
.../java/org/apache/ignite/rest/ErrorResult.java | 6 +-
.../java/org/apache/ignite/rest/RestModule.java | 254 +++++----
.../ignite/rest/netty/RestApiHttpRequest.java | 2 +-
.../ignite/rest/netty/RestApiHttpResponse.java | 2 +-
.../presentation/ConfigurationPresentation.java | 21 +-
.../rest/presentation/hocon/HoconPresentation.java | 86 ++++
.../rest/presentation/json/JsonPresentation.java | 68 ---
.../java/org/apache/ignite/rest/routes/Route.java | 8 +-
.../java/org/apache/ignite/rest/routes/Router.java | 6 +-
.../ignite/rest/netty/RestApiHttpResponseTest.java | 54 ++
.../ConfigurationPresentationTest.java | 195 +++++++
.../{storage-rocksdb => rocksdb-common}/pom.xml | 31 +-
.../ignite/internal/rocksdb}/ColumnFamily.java | 55 +-
.../ignite/internal/rocksdb/RocksBiConsumer.java} | 18 +-
.../ignite/internal/rocksdb/RocksBiPredicate.java} | 22 +-
.../apache/ignite/internal/rocksdb/RocksUtils.java | 119 +++++
modules/runner/README.md | 41 +-
modules/runner/pom.xml | 33 +-
.../runner/app/AbstractSchemaChangeTest.java | 3 +-
.../runner/app/DynamicTableCreationTest.java | 44 +-
.../runner/app/ITIgniteNodeRestartTest.java | 195 +++++++
.../runner/app/ITThinClientConnectionTest.java | 134 +++++
.../ignite/internal/runner/app/IgnitionTest.java | 9 +-
.../runner/app/LiveSchemaChangeKVViewTest.java | 45 +-
.../runner/app/LiveSchemaChangeTableTest.java | 57 +--
.../runner/app/SchemaChangeKVViewTest.java | 124 ++---
.../runner/app/SchemaChangeTableViewTest.java | 105 ++--
.../internal/runner/app/TableCreationTest.java | 20 +-
.../ITDistributedConfigurationStorageTest.java | 191 +++++++
.../org/apache/ignite/internal/app/IgniteImpl.java | 446 +++++++++++++++-
.../apache/ignite/internal/app/IgnitionImpl.java | 186 ++-----
.../storage/DistributedConfigurationStorage.java | 198 +++----
.../storage/LocalConfigurationStorage.java | 41 +-
.../src/main/resources/simplelogger.properties | 19 -
modules/schema/pom.xml | 14 +
.../apache/ignite/internal/schema/BinaryRow.java | 5 +
.../ignite/internal/schema/ByteBufferRow.java | 5 +
...mericNativeType.java => DecimalNativeType.java} | 17 +-
.../ignite/internal/schema/NativeTypeSpec.java | 74 ++-
.../apache/ignite/internal/schema/NativeTypes.java | 119 ++++-
...umericNativeType.java => NumberNativeType.java} | 65 ++-
.../apache/ignite/internal/schema/SchemaAware.java | 6 +-
.../ignite/internal/schema/SchemaDescriptor.java | 11 +-
.../ignite/internal/schema/SchemaManager.java | 11 +-
.../ignite/internal/schema/TemporalNativeType.java | 98 ++++
.../SchemaConfigurationConverter.java | 64 ++-
.../configuration/SchemaDescriptorConverter.java | 59 ++-
.../schema/marshaller/AbstractSerializer.java | 2 +-
.../internal/schema/marshaller/BinaryMode.java | 8 +-
.../internal/schema/marshaller/MarshallerUtil.java | 13 +
.../marshaller/asm/AsmSerializerGenerator.java | 14 +-
.../marshaller/asm/ColumnAccessCodeGenerator.java | 6 +
.../asm/IdentityMarshallerCodeGenerator.java | 2 +-
.../asm/ObjectMarshallerCodeGenerator.java | 12 +-
.../marshaller/reflection/FieldAccessor.java | 30 +-
.../marshaller/reflection/JavaSerializer.java | 4 +-
.../schema/marshaller/reflection/Marshaller.java | 4 +-
.../schema/registry/SchemaRegistryImpl.java | 2 +-
.../schema/registry/UpgradingRowAdapter.java | 195 +++----
.../org/apache/ignite/internal/schema/row/Row.java | 177 ++++++-
.../ignite/internal/schema/row/RowAssembler.java | 263 +++++++++-
.../internal/schema/row/TemporalTypesHelper.java | 296 +++++++++++
.../apache/ignite/internal/schema/ColumnTest.java | 11 +-
.../apache/ignite/internal/schema/ColumnsTest.java | 6 +-
.../ignite/internal/schema/NativeTypeTest.java | 131 ++++-
.../schema/RowAssemblerAdvancedSchemaTest.java | 4 +-
.../schema/RowAssemblerSimpleSchemaTest.java | 4 +-
.../org/apache/ignite/internal/schema/RowTest.java | 148 +++++-
.../ignite/internal/schema/TemporalTypesTest.java | 84 +++
.../apache/ignite/internal/schema/TestUtils.java | 88 ++--
.../schema/builder/HashIndexBuilderTest.java | 3 +-
.../SchemaConfigurationConverterTest.java | 24 +-
.../SchemaDescriptorConverterTest.java | 14 +-
.../configuration/TestConfigurationStorage.java | 64 ---
.../schema/marshaller/JavaSerializerTest.java | 53 +-
.../marshaller/reflection/FieldAccessorTest.java | 41 +-
modules/sql/src/test/java/SqlTest.java | 5 +-
modules/sql/src/test/java/TestRow.java | 52 +-
.../apache/ignite/internal/storage/DataRow.java | 5 +
.../ignite/internal/storage/InvokeClosure.java | 27 +-
.../apache/ignite/internal/storage/SearchRow.java | 6 +-
.../apache/ignite/internal/storage/Storage.java | 82 ++-
.../storage/basic/ConcurrentHashMapStorage.java | 124 +++--
...eClosure.java => DeleteExactInvokeClosure.java} | 50 +-
...Closure.java => GetAndRemoveInvokeClosure.java} | 46 +-
.../storage/basic/GetAndReplaceInvokeClosure.java | 86 ++++
...InvokeClosure.java => InsertInvokeClosure.java} | 36 +-
...Closure.java => ReplaceExactInvokeClosure.java} | 44 +-
.../internal/storage/basic/SimpleDataRow.java | 25 +-
.../storage/basic/SimpleReadInvokeClosure.java | 7 +-
.../storage/basic/SimpleRemoveInvokeClosure.java | 5 +-
.../storage/basic/SimpleWriteInvokeClosure.java | 5 +-
.../internal/storage/AbstractStorageTest.java | 567 +++++++++++++++++++--
modules/storage-rocksdb/pom.xml | 5 +-
.../internal/storage/rocksdb/RocksDbStorage.java | 331 ++++++++++--
modules/table/pom.xml | 31 ++
.../ignite/distributed/ITDistributedTableTest.java | 178 +++----
.../ignite/distributed/ITTablePersistenceTest.java | 156 ++++++
.../schema/marshaller/TupleMarshaller.java | 19 +-
.../internal/table/AbstractRowTupleAdapter.java | 343 +++++++++++++
.../ignite/internal/table/KVBinaryViewImpl.java | 76 +--
.../apache/ignite/internal/table/KVViewImpl.java | 4 +-
.../internal/table/LiveSchemaTupleBuilderImpl.java | 145 ------
.../internal/table/MutableRowTupleAdapter.java | 237 +++++++++
.../ignite/internal/table/RecordViewImpl.java | 4 +-
.../ignite/internal/table/RowChunkAdapter.java | 244 ---------
.../apache/ignite/internal/table/TableImpl.java | 36 +-
.../org/apache/ignite/internal/table/TableRow.java | 155 +++---
.../ignite/internal/table/TupleBuilderImpl.java | 271 ----------
.../ignite/internal/table/TupleMarshallerImpl.java | 365 ++++++++++---
.../internal/table/distributed/TableManager.java | 252 ++++++---
.../table/distributed/command/ReplaceCommand.java | 2 +
.../table/distributed/raft/PartitionListener.java | 294 +++++------
.../TupleMarshallerFixlenOnlyBenchmark.java | 10 +-
.../TupleMarshallerVarlenOnlyBenchmark.java | 10 +-
.../org/apache/ignite/internal/table/Example.java | 8 +-
...nsTest.java => KVBinaryViewOperationsTest.java} | 99 ++--
.../internal/table/MutableRowTupleAdapterTest.java | 416 +++++++++++++++
.../internal/table/StrictSchemaOperationsTest.java | 64 ++-
.../table/TableBinaryViewOperationsTest.java | 146 +++---
.../ignite/internal/table/TableManagerTest.java | 170 +++---
.../internal/table/TestConfigurationStorage.java | 74 ---
.../internal/table/TupleBuilderImplTest.java | 133 -----
.../org/apache/ignite/internal/table/TxTest.java | 34 +-
.../raft/PartitionCommandListenerTest.java | 31 +-
.../internal/table/impl/TestTupleBuilder.java | 54 +-
.../table/type/NumericTypesSerializerTest.java | 318 ++++++++++++
.../org/apache/ignite/table/TupleImplTest.java | 181 +++++++
.../ignite/internal/tx/impl/HeapLockManager.java | 2 +-
.../internal/tx/AbstractLockManagerTest.java | 26 +-
.../PersistencePropertiesVaultServiceTest.java | 28 +-
.../apache/ignite/internal/vault/VaultManager.java | 25 +-
.../apache/ignite/internal/vault/VaultService.java | 3 +-
.../vault/inmemory/InMemoryVaultService.java | 20 +-
.../vault/persistence/PersistentVaultService.java | 35 +-
.../ignite/internal/vault/VaultManagerTest.java | 2 +-
.../ignite/internal/vault/VaultServiceTest.java | 6 +-
parent/pom.xml | 88 +++-
pom.xml | 1 +
458 files changed, 20572 insertions(+), 8712 deletions(-)
create mode 100644 CONTRIBUTING.md
create mode 100644 check-rules/maven-check-scripts/CheckDependencyAndPluginVersionsNotInParent.sh
create mode 100644 check-rules/maven-check-scripts/CheckDuplicateDependencies.sh
create mode 100644 check-rules/maven-check-scripts/CheckModulesInRootPomAreSorted.sh
create mode 100644 check-rules/maven-check-scripts/CheckPropertiesNotInParent.sh
create mode 100644 check-rules/maven-check-scripts/CheckUnusedDependenciesAndPluginsInParent.sh
create mode 100644 check-rules/maven-check-scripts/CheckUnusedProperties.sh
create mode 100644 check-rules/maven-check-scripts/run.sh
create mode 100644 config/java.util.logging.properties
create mode 100644 deliveries/rpm/.gitignore
create mode 100644 deliveries/rpm/Dockerfile
create mode 100644 deliveries/rpm/README.md
create mode 100644 deliveries/rpm/apache-ignite.spec
create mode 100644 deliveries/rpm/build.sh
create mode 100644 idea/ignite_codeStyle.xml
delete mode 100644 modules/affinity/src/test/java/org/apache/ignite/internal/affinity/TestConfigurationStorage.java
create mode 100644 modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
create mode 100644 modules/cli/src/integrationTest/java/org/apache/ignite/cli/ConfigCommandTest.java
rename modules/{api/src/main/java/org/apache/ignite/table/TupleBuilder.java => client-common/src/main/java/org/apache/ignite/client/proto/ClientMessageCommon.java} (67%)
delete mode 100644 modules/client-common/src/main/java/org/apache/ignite/client/proto/ClientMessageEncoder.java
delete mode 100644 modules/client-common/src/test/java/org/apache/ignite/client/proto/ClientMessageEncoderTest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientSchemasGetRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTableCommon.java
copy modules/{configuration-api/src/main/java/org/apache/ignite/configuration/notifications/ConfigurationListener.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTableDropRequest.java} (61%)
copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTableGetRequest.java} (51%)
copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadOutputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTablesGetRequest.java} (51%)
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleDeleteAllExactRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleDeleteAllRequest.java
copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleDeleteExactRequest.java} (50%)
copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleDeleteRequest.java} (51%)
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAllRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndDeleteRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndReplaceRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndReplaceSchemalessRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndUpsertRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetAndUpsertSchemalessRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleGetRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleInsertAllRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleInsertAllSchemalessRequest.java
copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleInsertRequest.java} (51%)
copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleInsertSchemalessRequest.java} (50%)
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleReplaceExactRequest.java
create mode 100644 modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleReplaceExactSchemalessRequest.java
copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleReplaceRequest.java} (50%)
copy modules/{client-common/src/test/java/org/apache/ignite/client/proto/ClientMessagePackerUnpackerTest.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleReplaceSchemalessRequest.java} (50%)
copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadInputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleUpsertAllRequest.java} (55%)
copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadInputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleUpsertAllSchemalessRequest.java} (54%)
copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadInputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleUpsertRequest.java} (56%)
copy modules/{client/src/main/java/org/apache/ignite/internal/client/PayloadInputChannel.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/ClientTupleUpsertSchemalessRequest.java} (54%)
copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => client-handler/src/main/java/org/apache/ignite/client/handler/requests/table/package-info.java} (78%)
delete mode 100644 modules/client-handler/src/test/java/org/apache/ignite/client/handler/TestConfigurationStorage.java
create mode 100644 modules/client/src/main/java/org/apache/ignite/internal/client/IgniteClientConfigurationImpl.java
rename modules/client/src/main/java/org/apache/ignite/internal/client/table/{ClientTupleBuilder.java => ClientTuple.java} (78%)
rename modules/client/src/test/java/org/apache/ignite/client/{ClientTupleBuilderTest.java => ClientTupleTest.java} (75%)
create mode 100644 modules/client/src/test/java/org/apache/ignite/client/ConfigurationTest.java
create mode 100644 modules/client/src/test/java/org/apache/ignite/client/CustomTuple.java
create mode 100644 modules/client/src/test/java/org/apache/ignite/client/ReconnectTest.java
delete mode 100644 modules/client/src/test/java/org/apache/ignite/client/TestConfigurationStorage.java
create mode 100644 modules/client/src/test/java/org/apache/ignite/client/fakes/FakeSchemaRegistry.java
delete mode 100644 modules/configuration-annotation-processor/src/test/java/org/apache/ignite/internal/configuration/json/JsonConverterTest.java
create mode 100644 modules/configuration-annotation-processor/src/test/java/org/apache/ignite/internal/configuration/tree/NamedListNodeTest.java
delete mode 100644 modules/configuration-annotation-processor/src/test/java/org/apache/ignite/internal/configuration/tree/NamedListOrderTest.java
delete mode 100644 modules/configuration/src/main/java/org/apache/ignite/internal/configuration/json/JsonConfigurationVisitor.java
delete mode 100644 modules/configuration/src/main/java/org/apache/ignite/internal/configuration/json/JsonConverter.java
delete mode 100644 modules/configuration/src/main/java/org/apache/ignite/internal/configuration/json/JsonObjectConfigurationSource.java
delete mode 100644 modules/configuration/src/main/java/org/apache/ignite/internal/configuration/json/JsonPrimitiveConfigurationSource.java
rename modules/configuration/src/main/java/org/apache/ignite/internal/configuration/{notifications => util}/ConfigurationNotificationEventImpl.java (84%)
rename modules/{configuration-annotation-processor => configuration}/src/test/java/org/apache/ignite/internal/configuration/storage/TestConfigurationStorage.java (89%)
create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/manager/IgniteComponent.java
rename modules/{raft/src/main/java/org/apache/ignite/raft/jraft/util => core/src/main/java/org/apache/ignite/internal/thread}/NamedThreadFactory.java (53%)
rename modules/{calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util => core/src/main/java/org/apache/ignite/internal/thread}/StripedThreadPoolExecutor.java (92%)
create mode 100644 modules/core/src/main/java/org/apache/ignite/lang/JavaLoggerFormatter.java
create mode 100644 modules/core/src/main/java/org/apache/ignite/lang/NodeStoppingException.java
copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network-api/src/main/java/org/apache/ignite/network/annotations/package-info.java} (78%)
copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network-api/src/main/java/org/apache/ignite/network/package-info.java} (78%)
copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network-api/src/main/java/org/apache/ignite/network/serialization/package-info.java} (78%)
copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network/src/integrationTest/java/org/apache/ignite/network/scalecube/package-info.java} (78%)
create mode 100644 modules/network/src/integrationTest/java/org/apache/ignite/utils/ClusterServiceTestUtils.java
copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network/src/main/java/org/apache/ignite/network/package-info.java} (78%)
copy modules/{schema/src/main/java/org/apache/ignite/internal/schema/SchemaAware.java => network/src/main/java/org/apache/ignite/network/scalecube/package-info.java} (78%)
delete mode 100644 modules/network/src/test/resources/simplelogger.properties
create mode 100644 modules/raft/src/integrationTest/java/org/apache/ignite/raft/client/service/ITAbstractListenerSnapshotTest.java
rename modules/raft/src/main/java/org/apache/ignite/raft/jraft/{util => disruptor}/DisruptorBuilder.java (91%)
rename modules/{table/src/main/java/org/apache/ignite/internal/table/ColumnNotFoundException.java => raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/GroupAware.java} (69%)
create mode 100644 modules/raft/src/main/java/org/apache/ignite/raft/jraft/disruptor/StripedDisruptor.java
delete mode 100644 modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/LogExceptionHandler.java
create mode 100644 modules/rest/src/main/java/org/apache/ignite/rest/presentation/hocon/HoconPresentation.java
delete mode 100644 modules/rest/src/main/java/org/apache/ignite/rest/presentation/json/JsonPresentation.java
create mode 100644 modules/rest/src/test/java/org/apache/ignite/rest/netty/RestApiHttpResponseTest.java
create mode 100644 modules/rest/src/test/java/org/apache/ignite/rest/presentation/ConfigurationPresentationTest.java
copy modules/{storage-rocksdb => rocksdb-common}/pom.xml (66%)
rename modules/{metastorage-server/src/main/java/org/apache/ignite/internal/metastorage/server/persistence => rocksdb-common/src/main/java/org/apache/ignite/internal/rocksdb}/ColumnFamily.java (73%)
copy modules/{configuration/src/main/java/org/apache/ignite/internal/configuration/storage/ConfigurationStorageListener.java => rocksdb-common/src/main/java/org/apache/ignite/internal/rocksdb/RocksBiConsumer.java} (66%)
copy modules/{configuration-api/src/main/java/org/apache/ignite/configuration/notifications/ConfigurationListener.java => rocksdb-common/src/main/java/org/apache/ignite/internal/rocksdb/RocksBiPredicate.java} (61%)
create mode 100644 modules/rocksdb-common/src/main/java/org/apache/ignite/internal/rocksdb/RocksUtils.java
create mode 100644 modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITIgniteNodeRestartTest.java
create mode 100644 modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITThinClientConnectionTest.java
create mode 100644 modules/runner/src/integrationTest/java/org/apache/ignite/internal/storage/ITDistributedConfigurationStorageTest.java
delete mode 100644 modules/runner/src/main/resources/simplelogger.properties
copy modules/schema/src/main/java/org/apache/ignite/internal/schema/{NumericNativeType.java => DecimalNativeType.java} (80%)
rename modules/schema/src/main/java/org/apache/ignite/internal/schema/{NumericNativeType.java => NumberNativeType.java} (60%)
create mode 100644 modules/schema/src/main/java/org/apache/ignite/internal/schema/TemporalNativeType.java
create mode 100644 modules/schema/src/main/java/org/apache/ignite/internal/schema/row/TemporalTypesHelper.java
create mode 100644 modules/schema/src/test/java/org/apache/ignite/internal/schema/TemporalTypesTest.java
delete mode 100644 modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/TestConfigurationStorage.java
copy modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/{SimpleReadInvokeClosure.java => DeleteExactInvokeClosure.java} (55%)
copy modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/{SimpleReadInvokeClosure.java => GetAndRemoveInvokeClosure.java} (56%)
create mode 100644 modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/GetAndReplaceInvokeClosure.java
copy modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/{SimpleWriteInvokeClosure.java => InsertInvokeClosure.java} (61%)
copy modules/storage-api/src/main/java/org/apache/ignite/internal/storage/basic/{SimpleWriteInvokeClosure.java => ReplaceExactInvokeClosure.java} (51%)
create mode 100644 modules/table/src/integrationTest/java/org/apache/ignite/distributed/ITTablePersistenceTest.java
create mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/AbstractRowTupleAdapter.java
delete mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/LiveSchemaTupleBuilderImpl.java
create mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/MutableRowTupleAdapter.java
delete mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/RowChunkAdapter.java
delete mode 100644 modules/table/src/main/java/org/apache/ignite/internal/table/TupleBuilderImpl.java
rename modules/table/src/test/java/org/apache/ignite/internal/table/{KVViewOperationsTest.java => KVBinaryViewOperationsTest.java} (74%)
create mode 100644 modules/table/src/test/java/org/apache/ignite/internal/table/MutableRowTupleAdapterTest.java
delete mode 100644 modules/table/src/test/java/org/apache/ignite/internal/table/TestConfigurationStorage.java
delete mode 100644 modules/table/src/test/java/org/apache/ignite/internal/table/TupleBuilderImplTest.java
create mode 100644 modules/table/src/test/java/org/apache/ignite/internal/table/type/NumericTypesSerializerTest.java
create mode 100644 modules/table/src/test/java/org/apache/ignite/table/TupleImplTest.java
[ignite-3] 02/02: Merge branch 'main' into ignite-15212
Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch ignite-15212
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 21cfef486a72fbbfc47923b411be2be8fe27a519
Merge: b8639fa fbf55e2
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Tue Aug 31 13:14:49 2021 +0300
Merge branch 'main' into ignite-15212
# Conflicts:
# modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
CONTRIBUTING.md | 70 +++
DEVNOTES.md | 12 +
check-rules/checkstyle-disabled-modules.xml | 2 -
check-rules/checkstyle-rules.xml | 19 +
.../CheckDependencyAndPluginVersionsNotInParent.sh | 30 ++
.../CheckDuplicateDependencies.sh | 30 ++
.../CheckModulesInRootPomAreSorted.sh | 25 +
.../CheckPropertiesNotInParent.sh | 25 +
.../CheckUnusedDependenciesAndPluginsInParent.sh | 44 ++
.../maven-check-scripts/CheckUnusedProperties.sh | 34 ++
check-rules/maven-check-scripts/run.sh | 43 ++
config/java.util.logging.properties | 57 +++
deliveries/rpm/.gitignore | 2 +
deliveries/rpm/Dockerfile | 42 ++
deliveries/rpm/README.md | 48 ++
deliveries/rpm/apache-ignite.spec | 236 +++++++++
deliveries/rpm/build.sh | 38 ++
.../example/table/KeyValueBinaryViewExample.java | 10 +-
.../apache/ignite/example/table/TableExample.java | 7 +-
idea/ignite_codeStyle.xml | 119 +++++
modules/affinity/pom.xml | 7 +
.../ignite/internal/affinity/AffinityManager.java | 11 +-
.../internal/affinity/AffinityManagerTest.java | 59 ++-
.../affinity/TestConfigurationStorage.java | 74 ---
.../main/java/org/apache/ignite/app/Ignite.java | 7 +
.../main/java/org/apache/ignite/app/Ignition.java | 29 +-
.../org/apache/ignite/app/IgnitionManager.java | 92 +++-
.../ClientConnectorConfigurationSchema.java | 7 +-
.../schemas/rest/RestConfigurationSchema.java | 2 +-
.../java/org/apache/ignite/schema/ColumnType.java | 314 +++++++++++-
.../apache/ignite/table/KeyValueBinaryView.java | 7 -
.../main/java/org/apache/ignite/table/Table.java | 7 -
.../main/java/org/apache/ignite/table/Tuple.java | 160 +++++-
.../java/org/apache/ignite/table/TupleImpl.java | 317 ++++++++++++
.../apache/ignite/table/manager/IgniteTables.java | 56 +-
.../ignite/internal/baseline/BaselineManager.java | 13 +-
modules/calcite/pom.xml | 6 +
.../query/calcite/SqlQueryProcessor.java | 34 +-
.../query/calcite/exec/QueryTaskExecutorImpl.java | 3 +-
.../rule/FilterSpoolMergeToHashIndexSpoolRule.java | 4 +-
.../calcite/exec/rel/AbstractExecutionTest.java | 7 +-
modules/cli/ignite.sh | 2 +-
modules/cli/pom.xml | 12 +
.../org/apache/ignite/cli/ConfigCommandTest.java | 179 +++++++
.../cli/builtins/config/ConfigurationClient.java | 21 +-
.../ignite/cli/builtins/module/ModuleRegistry.java | 8 +-
.../apache/ignite/cli/spec/ConfigCommandSpec.java | 31 +-
.../ignite/cli/spec/InitIgniteCommandSpec.java | 2 +-
.../apache/ignite/cli/IgniteCliInterfaceTest.java | 41 +-
.../cli/builtins/init/InitIgniteCommandTest.java | 4 +-
.../cli/builtins/module/ModuleMangerTest.java | 4 +-
.../org/apache/ignite/cli/ui/ProgressBarTest.java | 4 +-
.../apache/ignite/client/proto/ClientDataType.java | 15 +
.../ignite/client/proto/ClientMessageCommon.java} | 24 +-
.../ignite/client/proto/ClientMessageDecoder.java | 98 +---
.../ignite/client/proto/ClientMessageEncoder.java | 47 --
.../ignite/client/proto/ClientMessagePacker.java | 496 ++++++++++++++++--
.../ignite/client/proto/ClientMessageUnpacker.java | 505 +++++++++++++++++-
.../ignite/client/proto/ClientMsgPackType.java | 6 +
.../org/apache/ignite/client/proto/ClientOp.java | 60 +++
.../client/proto/ClientMessageDecoderTest.java | 68 +--
.../client/proto/ClientMessageEncoderTest.java | 53 --
.../proto/ClientMessagePackerUnpackerTest.java | 232 ++++++++-
modules/client-handler/pom.xml | 9 +-
.../ignite/client/handler/ClientHandlerModule.java | 94 ++--
.../handler/ClientInboundMessageHandler.java | 486 ++++++------------
.../requests/table/ClientSchemasGetRequest.java | 74 +++
.../handler/requests/table/ClientTableCommon.java | 474 +++++++++++++++++
.../requests/table/ClientTableDropRequest.java} | 26 +-
.../requests/table/ClientTableGetRequest.java} | 52 +-
.../requests/table/ClientTablesGetRequest.java} | 63 +--
.../table/ClientTupleDeleteAllExactRequest.java | 51 ++
.../table/ClientTupleDeleteAllRequest.java | 51 ++
.../table/ClientTupleDeleteExactRequest.java} | 48 +-
.../requests/table/ClientTupleDeleteRequest.java} | 48 +-
.../requests/table/ClientTupleGetAllRequest.java | 51 ++
.../table/ClientTupleGetAndDeleteRequest.java | 51 ++
.../table/ClientTupleGetAndReplaceRequest.java | 51 ++
.../ClientTupleGetAndReplaceSchemalessRequest.java | 51 ++
.../table/ClientTupleGetAndUpsertRequest.java | 51 ++
.../ClientTupleGetAndUpsertSchemalessRequest.java | 51 ++
.../requests/table/ClientTupleGetRequest.java | 51 ++
.../table/ClientTupleInsertAllRequest.java | 51 ++
.../ClientTupleInsertAllSchemalessRequest.java | 51 ++
.../requests/table/ClientTupleInsertRequest.java} | 48 +-
.../table/ClientTupleInsertSchemalessRequest.java} | 48 +-
.../table/ClientTupleReplaceExactRequest.java | 54 ++
.../ClientTupleReplaceExactSchemalessRequest.java | 52 ++
.../requests/table/ClientTupleReplaceRequest.java} | 48 +-
.../ClientTupleReplaceSchemalessRequest.java} | 48 +-
.../table/ClientTupleUpsertAllRequest.java} | 46 +-
.../ClientTupleUpsertAllSchemalessRequest.java} | 46 +-
.../requests/table/ClientTupleUpsertRequest.java} | 46 +-
.../table/ClientTupleUpsertSchemalessRequest.java} | 46 +-
.../handler/requests/table/package-info.java} | 13 +-
.../handler/ClientHandlerIntegrationTest.java | 61 ++-
.../client/handler/TestConfigurationStorage.java | 75 ---
modules/client/pom.xml | 7 +
.../org/apache/ignite/client/IgniteClient.java | 168 ++++--
.../ignite/client/IgniteClientConfiguration.java | 46 +-
.../client/ClientChannelConfiguration.java | 72 +--
.../client/IgniteClientConfigurationImpl.java | 97 ++++
.../internal/client/PayloadInputChannel.java | 7 +-
.../internal/client/PayloadOutputChannel.java | 9 +-
.../ignite/internal/client/ReliableChannel.java | 31 +-
.../ignite/internal/client/TcpClientChannel.java | 84 ++-
.../ignite/internal/client/TcpIgniteClient.java | 57 ++-
.../internal/client/io/ClientConnection.java | 12 +-
.../client/io/ClientConnectionMultiplexer.java | 7 +-
.../internal/client/io/ClientMessageHandler.java | 4 +-
.../client/io/netty/NettyClientConnection.java | 12 +-
.../io/netty/NettyClientConnectionMultiplexer.java | 14 +-
.../client/io/netty/NettyClientMessageHandler.java | 7 +-
.../ignite/internal/client/table/ClientTable.java | 341 ++++++++++---
.../ignite/internal/client/table/ClientTables.java | 37 +-
.../{ClientTupleBuilder.java => ClientTuple.java} | 81 ++-
.../apache/ignite/client/AbstractClientTest.java | 89 ++--
.../org/apache/ignite/client/ClientTableTest.java | 310 ++++++++++-
...tTupleBuilderTest.java => ClientTupleTest.java} | 59 ++-
.../apache/ignite/client/ConfigurationTest.java | 125 +++++
.../org/apache/ignite/client/ConnectionTest.java | 8 +-
.../java/org/apache/ignite/client/CustomTuple.java | 223 ++++++++
.../org/apache/ignite/client/ReconnectTest.java | 108 ++++
.../ignite/client/TestConfigurationStorage.java | 75 ---
.../org/apache/ignite/client/fakes/FakeIgnite.java | 5 +
.../ignite/client/fakes/FakeIgniteTables.java | 70 ++-
.../ignite/client/fakes/FakeInternalTable.java | 121 ++++-
.../ignite/client/fakes/FakeSchemaRegistry.java | 97 ++++
modules/configuration-annotation-processor/pom.xml | 7 +
.../configuration/ConfigurationChangerTest.java | 146 +++---
.../configuration/TestConfigurationChanger.java | 33 +-
.../configuration/hocon/HoconConverterTest.java | 16 +-
.../configuration/json/JsonConverterTest.java | 541 --------------------
.../notifications/ConfigurationListenerTest.java | 466 +++++++++++++++--
.../internal/configuration/sample/UsageTest.java | 23 +-
.../configuration/tree/NamedListNodeTest.java | 312 ++++++++++++
.../configuration/tree/NamedListOrderTest.java | 239 ---------
.../tree/TraversableTreeNodeTest.java | 6 +
.../configuration/util/ConfigurationUtilTest.java | 175 ++++---
.../validation/ValidationUtilTest.java | 2 +-
.../ignite/configuration/ConfigurationTree.java | 12 +-
.../ignite/configuration/ConfigurationValue.java | 4 +-
.../configuration/NamedConfigurationTree.java | 2 +-
.../ignite/configuration/NamedListChange.java | 22 +-
.../org/apache/ignite/configuration/RootKey.java | 18 +-
.../notifications/ConfigurationListener.java | 4 +-
.../ConfigurationNamedListListener.java | 24 +-
modules/configuration/pom.xml | 22 +-
.../configuration/ConfigurationChanger.java | 353 +++++--------
.../configuration/ConfigurationManager.java | 59 +--
.../configuration/ConfigurationRegistry.java | 117 +++--
.../configuration/DynamicConfiguration.java | 40 +-
.../internal/configuration/DynamicProperty.java | 6 +-
.../configuration/NamedListConfiguration.java | 26 +-
.../asm/ConfigurationAsmGenerator.java | 17 +-
.../json/JsonConfigurationVisitor.java | 127 -----
.../internal/configuration/json/JsonConverter.java | 43 --
.../json/JsonObjectConfigurationSource.java | 105 ----
.../json/JsonPrimitiveConfigurationSource.java | 202 --------
.../storage/ConfigurationStorage.java | 7 -
.../storage/ConfigurationStorageListener.java | 6 +-
.../internal/configuration/tree/NamedListNode.java | 230 +++++++--
.../configuration/util/ConfigurationFlattener.java | 25 +-
.../ConfigurationNotificationEventImpl.java | 6 +-
.../util/ConfigurationNotificationsUtil.java | 171 +++++--
.../configuration/util/ConfigurationUtil.java | 292 ++++-------
.../storage/TestConfigurationStorage.java | 20 +-
.../ignite/internal/manager/IgniteComponent.java | 46 ++
.../internal/thread}/NamedThreadFactory.java | 59 ++-
.../thread}/StripedThreadPoolExecutor.java | 15 +-
.../apache/ignite/internal/util/IgniteUtils.java | 43 ++
.../apache/ignite/lang/JavaLoggerFormatter.java | 146 ++++++
.../apache/ignite/lang/NodeStoppingException.java | 75 +++
.../internal/testframework/IgniteAbstractTest.java | 47 ++
.../internal/testframework/IgniteTestUtils.java | 75 ++-
.../tostring/IgniteToStringBuilderSelfTest.java | 6 +-
modules/metastorage-client/pom.xml | 7 +
.../ITMetaStorageServicePersistenceTest.java | 384 ++------------
.../client/ITMetaStorageServiceTest.java | 55 +-
.../internal/metastorage/client/CursorImpl.java | 7 +
.../metastorage/client/MetaStorageService.java | 2 +-
.../metastorage/client/MetaStorageServiceImpl.java | 3 +-
.../metastorage/common/command/OperationInfo.java | 3 +-
modules/metastorage-server/pom.xml | 4 +-
.../internal/metastorage/server/Condition.java | 3 +-
.../server/persistence/RocksDBKeyValueStorage.java | 55 +-
.../server/persistence/RocksStorageUtils.java | 86 ----
.../server/persistence/WatchCursor.java | 5 +-
.../internal/metastorage/MetaStorageManager.java | 66 +--
.../metastorage/watch/WatchAggregator.java | 4 +-
.../internal/metastorage/WatchAggregatorTest.java | 6 +-
.../processor/TransferableObjectProcessor.java | 2 +-
.../messages/MessageBuilderGenerator.java | 2 +-
.../messages/MessageFactoryGenerator.java | 2 +-
.../serialization/BaseMethodNameResolver.java | 4 +-
.../MessageCollectionItemTypeConverter.java | 4 +-
.../serialization/MessageSerializerGenerator.java | 4 +-
modules/network-api/pom.xml | 5 +
.../ignite/network/AbstractClusterService.java | 2 +-
.../ignite/network/AbstractMessagingService.java | 19 +-
.../ignite/network/AbstractTopologyService.java | 8 +-
.../ignite/network/ClusterLocalConfiguration.java | 34 +-
.../org/apache/ignite/network/ClusterNode.java | 10 +-
.../org/apache/ignite/network/ClusterService.java | 32 +-
.../ignite/network/ClusterServiceFactory.java | 11 +-
.../org/apache/ignite/network/NetworkAddress.java | 7 +
.../network/NetworkConfigurationException.java | 2 +
.../ignite/network/NetworkMessageHandler.java | 10 +-
.../org/apache/ignite/network/TopologyService.java | 7 +-
.../ignite/network/annotations/Transferable.java | 4 +-
.../ignite/network/annotations/package-info.java} | 13 +-
.../org/apache/ignite/network/package-info.java} | 13 +-
.../network/serialization/MessageDeserializer.java | 12 +
.../serialization/MessageMappingException.java | 2 +
.../serialization/MessageSerializationFactory.java | 2 +
.../network/serialization/MessageSerializer.java | 2 +
.../network/serialization/MessageWriter.java | 4 +-
.../network/serialization/package-info.java} | 13 +-
modules/network/pom.xml | 14 +
.../network/netty/ConnectionManagerTest.java | 22 +
.../network/recovery/RecoveryHandshakeTest.java | 74 ++-
.../network/scalecube/ITNodeRestartsTest.java | 44 +-
.../scalecube/ITScaleCubeNetworkMessagingTest.java | 111 +++-
.../TestScaleCubeClusterServiceFactory.java | 21 +-
.../ignite/network/scalecube/package-info.java} | 13 +-
.../ignite/utils/ClusterServiceTestUtils.java | 103 ++++
.../internal/network/NetworkMessageTypes.java | 4 +-
.../network/direct/DirectMessageReader.java | 4 +-
.../network/direct/DirectMessageWriter.java | 4 +-
.../internal/network/message/ScaleCubeMessage.java | 2 +-
.../internal/network/netty/ConnectionManager.java | 44 +-
.../internal/network/netty/HandshakeHandler.java | 4 +-
.../internal/network/netty/InboundDecoder.java | 2 +-
.../internal/network/netty/MessageHandler.java | 9 +-
.../ignite/internal/network/netty/NettyClient.java | 2 +-
.../ignite/internal/network/netty/NettySender.java | 2 +-
.../ignite/internal/network/netty/NettyServer.java | 18 +-
.../ignite/internal/network/netty/NettyUtils.java | 4 +-
.../internal/network/netty/OutboundEncoder.java | 2 +-
.../network/MessageSerializationRegistryImpl.java | 4 +-
.../apache/ignite/network/StaticNodeFinder.java | 5 +-
.../org/apache/ignite/network/package-info.java} | 13 +-
.../scalecube/DelegatingTransportFactory.java | 4 +-
.../scalecube/ScaleCubeClusterServiceFactory.java | 93 ++--
.../ScaleCubeDirectMarshallerTransport.java | 12 +-
.../scalecube/ScaleCubeMessagingService.java | 25 +-
.../scalecube/ScaleCubeTopologyService.java | 3 +
.../ignite/network/scalecube/package-info.java} | 13 +-
.../internal/network/netty/NettyClientTest.java | 4 +-
.../internal/network/netty/NettyServerTest.java | 8 +-
.../src/test/resources/simplelogger.properties | 52 --
.../raft/client/service/RaftGroupListener.java | 2 +-
.../client/service/impl/RaftGroupServiceImpl.java | 54 +-
.../raft/client/service/RaftGroupServiceTest.java | 26 +-
modules/raft/pom.xml | 24 +-
.../service/ITAbstractListenerSnapshotTest.java | 392 ++++++++++++++
.../ignite/raft/jraft/core/ITCliServiceTest.java | 25 +-
.../apache/ignite/raft/jraft/core/ITNodeTest.java | 110 +++-
.../apache/ignite/raft/server/CounterListener.java | 10 +-
.../raft/server/ITJRaftCounterServerTest.java | 128 +++--
.../raft/server/ITSimpleCounterServerTest.java | 44 +-
.../ignite/raft/server/RaftServerAbstractTest.java | 24 +-
.../java/org/apache/ignite/internal/raft/Loza.java | 26 +-
.../ignite/internal/raft/server/RaftServer.java | 10 +-
.../internal/raft/server/impl/JRaftServerImpl.java | 127 ++++-
.../org/apache/ignite/raft/jraft/JRaftUtils.java | 73 ++-
.../ignite/raft/jraft/core/FSMCallerImpl.java | 69 +--
.../apache/ignite/raft/jraft/core/NodeImpl.java | 75 ++-
.../raft/jraft/core/ReadOnlyServiceImpl.java | 61 ++-
.../ignite/raft/jraft/core/TimerManager.java | 2 +-
.../{util => disruptor}/DisruptorBuilder.java | 11 +-
.../ignite/raft/jraft/disruptor/GroupAware.java} | 15 +-
.../raft/jraft/disruptor/StripedDisruptor.java | 281 ++++++++++
.../ignite/raft/jraft/option/FSMCallerOptions.java | 26 +-
.../raft/jraft/option/LogManagerOptions.java | 31 +-
.../ignite/raft/jraft/option/NodeOptions.java | 24 +
.../raft/jraft/option/ReadOnlyServiceOptions.java | 21 +
.../ignite/raft/jraft/option/RpcOptions.java | 51 +-
.../raft/jraft/rpc/impl/IgniteRpcServer.java | 11 +-
.../rpc/impl/client/GetLeaderRequestProcessor.java | 7 +-
.../raft/jraft/storage/impl/LogManagerImpl.java | 67 ++-
.../raft/jraft/storage/impl/RocksDBLogStorage.java | 6 +-
.../raft/jraft/util/LogExceptionHandler.java | 64 ---
.../ignite/raft/jraft/util/RepeatedTimer.java | 1 +
.../apache/ignite/raft/jraft/util/ThreadId.java | 27 +-
.../org/apache/ignite/raft/jraft/util/Utils.java | 4 +-
.../DefaultFixedThreadsExecutorGroupFactory.java | 2 +-
.../concurrent/DefaultSingleThreadExecutor.java | 2 +-
.../jraft/util/timer/DefaultRaftTimerFactory.java | 2 +-
.../ignite/raft/jraft/util/timer/DefaultTimer.java | 2 +-
.../internal/raft/server/impl/RaftServerImpl.java | 44 +-
.../jraft/closure/SynchronizedClosureTest.java | 40 +-
.../ignite/raft/jraft/core/BallotBoxTest.java | 7 +-
.../ignite/raft/jraft/core/FSMCallerTest.java | 21 +-
.../ignite/raft/jraft/core/IteratorImplTest.java | 13 +-
.../raft/jraft/core/ReadOnlyServiceTest.java | 31 +-
.../ignite/raft/jraft/core/ReplicatorTest.java | 7 +-
.../apache/ignite/raft/jraft/core/TestCluster.java | 112 +++-
.../jraft/entity/codec/LogEntryCodecPerfTest.java | 9 +-
.../raft/jraft/rpc/AbstractClientServiceTest.java | 12 +-
.../ignite/raft/jraft/rpc/IgniteRpcTest.java | 60 ++-
.../ignite/raft/jraft/rpc/TestIgniteRpcServer.java | 27 +-
.../ignite/raft/jraft/rpc/impl/FutureTest.java | 75 +--
.../core/AppendEntriesRequestProcessorTest.java | 3 +-
.../impl/core/BaseNodeRequestProcessorTest.java | 19 +-
.../raft/jraft/storage/SnapshotExecutorTest.java | 16 +-
.../raft/jraft/storage/impl/LogManagerTest.java | 21 +-
.../storage/snapshot/remote/CopySessionTest.java | 54 +-
.../raft/jraft/util/ByteBufferCollectorTest.java | 7 +-
.../ignite/raft/jraft/util/CountDownEventTest.java | 14 +-
.../jraft/util/RecyclableByteBufferListTest.java | 7 +-
.../ignite/raft/jraft/util/RecyclersTest.java | 21 +-
.../ignite/raft/jraft/util/ThreadIdTest.java | 70 +--
.../apache/ignite/raft/jraft/util/UtilsTest.java | 16 +-
.../LongHeldDetectingReadWriteLockTest.java | 146 ++++--
.../concurrent/MpscSingleThreadExecutorTest.java | 2 +-
.../concurrent/SingleThreadExecutorBenchmark.java | 4 +-
modules/rest/pom.xml | 14 +
.../java/org/apache/ignite/rest/ErrorResult.java | 6 +-
.../java/org/apache/ignite/rest/RestModule.java | 254 +++++----
.../ignite/rest/netty/RestApiHttpRequest.java | 2 +-
.../ignite/rest/netty/RestApiHttpResponse.java | 2 +-
.../presentation/ConfigurationPresentation.java | 21 +-
.../rest/presentation/hocon/HoconPresentation.java | 86 ++++
.../rest/presentation/json/JsonPresentation.java | 68 ---
.../java/org/apache/ignite/rest/routes/Route.java | 8 +-
.../java/org/apache/ignite/rest/routes/Router.java | 6 +-
.../ignite/rest/netty/RestApiHttpResponseTest.java | 54 ++
.../ConfigurationPresentationTest.java | 195 +++++++
.../{storage-rocksdb => rocksdb-common}/pom.xml | 31 +-
.../ignite/internal/rocksdb}/ColumnFamily.java | 55 +-
.../ignite/internal/rocksdb/RocksBiConsumer.java} | 18 +-
.../ignite/internal/rocksdb/RocksBiPredicate.java} | 22 +-
.../apache/ignite/internal/rocksdb/RocksUtils.java | 119 +++++
modules/runner/README.md | 41 +-
modules/runner/pom.xml | 33 +-
.../runner/app/AbstractSchemaChangeTest.java | 3 +-
.../runner/app/DynamicTableCreationTest.java | 44 +-
.../runner/app/ITIgniteNodeRestartTest.java | 195 +++++++
.../runner/app/ITThinClientConnectionTest.java | 134 +++++
.../ignite/internal/runner/app/IgnitionTest.java | 9 +-
.../runner/app/LiveSchemaChangeKVViewTest.java | 45 +-
.../runner/app/LiveSchemaChangeTableTest.java | 57 +--
.../runner/app/SchemaChangeKVViewTest.java | 124 ++---
.../runner/app/SchemaChangeTableViewTest.java | 105 ++--
.../internal/runner/app/TableCreationTest.java | 20 +-
.../ITDistributedConfigurationStorageTest.java | 191 +++++++
.../org/apache/ignite/internal/app/IgniteImpl.java | 446 +++++++++++++++-
.../apache/ignite/internal/app/IgnitionImpl.java | 186 ++-----
.../storage/DistributedConfigurationStorage.java | 198 +++----
.../storage/LocalConfigurationStorage.java | 41 +-
.../src/main/resources/simplelogger.properties | 19 -
modules/schema/pom.xml | 14 +
.../apache/ignite/internal/schema/BinaryRow.java | 5 +
.../ignite/internal/schema/ByteBufferRow.java | 5 +
...mericNativeType.java => DecimalNativeType.java} | 17 +-
.../ignite/internal/schema/NativeTypeSpec.java | 74 ++-
.../apache/ignite/internal/schema/NativeTypes.java | 119 ++++-
...umericNativeType.java => NumberNativeType.java} | 65 ++-
.../apache/ignite/internal/schema/SchemaAware.java | 6 +-
.../ignite/internal/schema/SchemaDescriptor.java | 11 +-
.../ignite/internal/schema/SchemaManager.java | 11 +-
.../ignite/internal/schema/TemporalNativeType.java | 98 ++++
.../SchemaConfigurationConverter.java | 64 ++-
.../configuration/SchemaDescriptorConverter.java | 59 ++-
.../schema/marshaller/AbstractSerializer.java | 2 +-
.../internal/schema/marshaller/BinaryMode.java | 8 +-
.../internal/schema/marshaller/MarshallerUtil.java | 13 +
.../marshaller/asm/AsmSerializerGenerator.java | 14 +-
.../marshaller/asm/ColumnAccessCodeGenerator.java | 6 +
.../asm/IdentityMarshallerCodeGenerator.java | 2 +-
.../asm/ObjectMarshallerCodeGenerator.java | 12 +-
.../marshaller/reflection/FieldAccessor.java | 30 +-
.../marshaller/reflection/JavaSerializer.java | 4 +-
.../schema/marshaller/reflection/Marshaller.java | 4 +-
.../schema/registry/SchemaRegistryImpl.java | 2 +-
.../schema/registry/UpgradingRowAdapter.java | 195 +++----
.../org/apache/ignite/internal/schema/row/Row.java | 177 ++++++-
.../ignite/internal/schema/row/RowAssembler.java | 263 +++++++++-
.../internal/schema/row/TemporalTypesHelper.java | 296 +++++++++++
.../apache/ignite/internal/schema/ColumnTest.java | 11 +-
.../apache/ignite/internal/schema/ColumnsTest.java | 6 +-
.../ignite/internal/schema/NativeTypeTest.java | 131 ++++-
.../schema/RowAssemblerAdvancedSchemaTest.java | 4 +-
.../schema/RowAssemblerSimpleSchemaTest.java | 4 +-
.../org/apache/ignite/internal/schema/RowTest.java | 148 +++++-
.../ignite/internal/schema/TemporalTypesTest.java | 84 +++
.../apache/ignite/internal/schema/TestUtils.java | 88 ++--
.../schema/builder/HashIndexBuilderTest.java | 3 +-
.../SchemaConfigurationConverterTest.java | 24 +-
.../SchemaDescriptorConverterTest.java | 14 +-
.../configuration/TestConfigurationStorage.java | 64 ---
.../schema/marshaller/JavaSerializerTest.java | 53 +-
.../marshaller/reflection/FieldAccessorTest.java | 41 +-
modules/sql/src/test/java/SqlTest.java | 1 -
modules/sql/src/test/java/TestRow.java | 52 +-
.../apache/ignite/internal/storage/DataRow.java | 5 +
.../ignite/internal/storage/InvokeClosure.java | 27 +-
.../apache/ignite/internal/storage/SearchRow.java | 6 +-
.../apache/ignite/internal/storage/Storage.java | 82 ++-
.../storage/basic/ConcurrentHashMapStorage.java | 124 +++--
...eClosure.java => DeleteExactInvokeClosure.java} | 50 +-
...Closure.java => GetAndRemoveInvokeClosure.java} | 46 +-
.../storage/basic/GetAndReplaceInvokeClosure.java | 86 ++++
...InvokeClosure.java => InsertInvokeClosure.java} | 36 +-
...Closure.java => ReplaceExactInvokeClosure.java} | 44 +-
.../internal/storage/basic/SimpleDataRow.java | 25 +-
.../storage/basic/SimpleReadInvokeClosure.java | 7 +-
.../storage/basic/SimpleRemoveInvokeClosure.java | 5 +-
.../storage/basic/SimpleWriteInvokeClosure.java | 5 +-
.../internal/storage/AbstractStorageTest.java | 567 +++++++++++++++++++--
modules/storage-rocksdb/pom.xml | 5 +-
.../internal/storage/rocksdb/RocksDbStorage.java | 331 ++++++++++--
modules/table/pom.xml | 31 ++
.../ignite/distributed/ITDistributedTableTest.java | 178 +++----
.../ignite/distributed/ITTablePersistenceTest.java | 156 ++++++
.../schema/marshaller/TupleMarshaller.java | 19 +-
.../internal/table/AbstractRowTupleAdapter.java | 343 +++++++++++++
.../ignite/internal/table/KVBinaryViewImpl.java | 76 +--
.../apache/ignite/internal/table/KVViewImpl.java | 4 +-
.../internal/table/LiveSchemaTupleBuilderImpl.java | 145 ------
.../internal/table/MutableRowTupleAdapter.java | 237 +++++++++
.../ignite/internal/table/RecordViewImpl.java | 4 +-
.../ignite/internal/table/RowChunkAdapter.java | 244 ---------
.../apache/ignite/internal/table/TableImpl.java | 36 +-
.../org/apache/ignite/internal/table/TableRow.java | 155 +++---
.../ignite/internal/table/TupleBuilderImpl.java | 271 ----------
.../ignite/internal/table/TupleMarshallerImpl.java | 365 ++++++++++---
.../internal/table/distributed/TableManager.java | 252 ++++++---
.../table/distributed/command/ReplaceCommand.java | 2 +
.../table/distributed/raft/PartitionListener.java | 294 +++++------
.../TupleMarshallerFixlenOnlyBenchmark.java | 10 +-
.../TupleMarshallerVarlenOnlyBenchmark.java | 10 +-
.../org/apache/ignite/internal/table/Example.java | 8 +-
...nsTest.java => KVBinaryViewOperationsTest.java} | 99 ++--
.../internal/table/MutableRowTupleAdapterTest.java | 416 +++++++++++++++
.../internal/table/StrictSchemaOperationsTest.java | 64 ++-
.../table/TableBinaryViewOperationsTest.java | 146 +++---
.../ignite/internal/table/TableManagerTest.java | 170 +++---
.../internal/table/TestConfigurationStorage.java | 74 ---
.../internal/table/TupleBuilderImplTest.java | 133 -----
.../org/apache/ignite/internal/table/TxTest.java | 34 +-
.../raft/PartitionCommandListenerTest.java | 31 +-
.../internal/table/impl/TestTupleBuilder.java | 54 +-
.../table/type/NumericTypesSerializerTest.java | 318 ++++++++++++
.../org/apache/ignite/table/TupleImplTest.java | 181 +++++++
.../ignite/internal/tx/impl/HeapLockManager.java | 2 +-
.../internal/tx/AbstractLockManagerTest.java | 26 +-
.../PersistencePropertiesVaultServiceTest.java | 28 +-
.../apache/ignite/internal/vault/VaultManager.java | 25 +-
.../apache/ignite/internal/vault/VaultService.java | 3 +-
.../vault/inmemory/InMemoryVaultService.java | 20 +-
.../vault/persistence/PersistentVaultService.java | 35 +-
.../ignite/internal/vault/VaultManagerTest.java | 2 +-
.../ignite/internal/vault/VaultServiceTest.java | 6 +-
parent/pom.xml | 88 +++-
pom.xml | 1 +
457 files changed, 20556 insertions(+), 8709 deletions(-)
diff --cc modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index db88368,9c2755f..fa49bf1
--- a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@@ -17,12 -17,54 +17,55 @@@
package org.apache.ignite.internal.app;
+ import java.io.IOException;
+ import java.nio.file.Files;
+ import java.nio.file.Path;
+ import java.nio.file.Paths;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.List;
+ import java.util.ListIterator;
+ import java.util.Map;
+ import java.util.concurrent.atomic.AtomicBoolean;
+ import java.util.concurrent.atomic.AtomicReference;
import org.apache.ignite.app.Ignite;
- import org.apache.ignite.internal.vault.VaultManager;
+ import org.apache.ignite.app.IgnitionManager;
+ import org.apache.ignite.client.handler.ClientHandlerModule;
+ import org.apache.ignite.configuration.schemas.clientconnector.ClientConnectorConfiguration;
+ import org.apache.ignite.configuration.schemas.network.NetworkConfiguration;
+ import org.apache.ignite.configuration.schemas.rest.RestConfiguration;
+ import org.apache.ignite.configuration.schemas.runner.ClusterConfiguration;
+ import org.apache.ignite.configuration.schemas.runner.NodeConfiguration;
+ import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
+ import org.apache.ignite.internal.affinity.AffinityManager;
+ import org.apache.ignite.internal.baseline.BaselineManager;
+ import org.apache.ignite.internal.configuration.ConfigurationManager;
+ import org.apache.ignite.internal.configuration.ConfigurationRegistry;
+ import org.apache.ignite.internal.manager.IgniteComponent;
+ import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.processors.query.calcite.SqlQueryProcessor;
+ import org.apache.ignite.internal.raft.Loza;
+ import org.apache.ignite.internal.schema.SchemaManager;
+ import org.apache.ignite.internal.storage.DistributedConfigurationStorage;
+ import org.apache.ignite.internal.storage.LocalConfigurationStorage;
+ import org.apache.ignite.internal.table.distributed.TableManager;
+ import org.apache.ignite.internal.vault.VaultManager;
+ import org.apache.ignite.internal.vault.persistence.PersistentVaultService;
+ import org.apache.ignite.lang.IgniteException;
+ import org.apache.ignite.lang.IgniteInternalException;
+ import org.apache.ignite.lang.IgniteLogger;
+ import org.apache.ignite.lang.NodeStoppingException;
+ import org.apache.ignite.network.ClusterLocalConfiguration;
+ import org.apache.ignite.network.ClusterService;
+ import org.apache.ignite.network.MessageSerializationRegistryImpl;
+ import org.apache.ignite.network.StaticNodeFinder;
+ import org.apache.ignite.network.scalecube.ScaleCubeClusterServiceFactory;
+ import org.apache.ignite.rest.RestModule;
+import org.apache.ignite.query.sql.IgniteSql;
import org.apache.ignite.table.manager.IgniteTables;
import org.apache.ignite.tx.IgniteTransactions;
+ import org.jetbrains.annotations.NotNull;
+ import org.jetbrains.annotations.Nullable;
/**
* Ignite internal implementation.
@@@ -52,10 -327,9 +328,10 @@@ public class IgniteImpl implements Igni
/** {@inheritDoc} */
@Override public IgniteTables tables() {
- return distributedTableManager;
+ return distributedTblMgr;
}
+ // TODO: To be replaced with IgniteImpl#sql().
public SqlQueryProcessor queryEngine() {
return qryEngine;
}
@@@ -66,12 -340,145 +342,150 @@@
}
/** {@inheritDoc} */
+ @Override public IgniteSql sql() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
- @Override public void close() throws Exception {
- vaultManager.close();
+ @Override public void close() {
+ IgnitionManager.stop(name);
+ }
+
+ /** {@inheritDoc} */
+ @Override public String name() {
+ return name;
+ }
+
+ /**
+ * @return Node configuration.
+ */
+ public ConfigurationRegistry nodeConfiguration() {
+ return nodeCfgMgr.configurationRegistry();
+ }
+
+ /**
+ * @return Cluster configuration.
+ */
+ public ConfigurationRegistry clusterConfiguration() {
+ return clusterCfgMgr.configurationRegistry();
+ }
+
+ /**
+ * @return Client handler module.
+ */
+ public ClientHandlerModule clientHandlerModule() {
+ return clientHandlerModule;
+ }
+
+ /**
+ * Checks node status. If it's {@link Status#STOPPING} then prevents further starting and throws NodeStoppingException that will
+ * lead to stopping already started components later on, otherwise starts component and add it to started components
+ * list.
+ *
+ * @param nodeName Node name.
+ * @param startedComponents List of already started components for given node.
+ * @param component Ignite component to start.
+ * @param <T> Ignite component type.
+ * @throws NodeStoppingException If node stopping intention was detected.
+ */
+ private <T extends IgniteComponent> void doStartComponent(
+ @NotNull String nodeName,
+ @NotNull List<IgniteComponent> startedComponents,
+ @NotNull T component
+ ) throws NodeStoppingException {
+ if (status.get() == Status.STOPPING)
+ throw new NodeStoppingException("Node=[" + nodeName + "] was stopped.");
+ else {
+ startedComponents.add(component);
+
+ component.start();
+ }
+ }
+
+ /**
+ * Calls {@link IgniteComponent#beforeNodeStop()} and then {@link IgniteComponent#stop()} for all components in
+ * start-reverse-order. Cleanups node started components map and node status map.
+ *
+ * @param startedComponents List of already started components for given node.
+ */
+ private void doStopNode(@NotNull List<IgniteComponent> startedComponents) {
+ ListIterator<IgniteComponent> beforeStopIter =
+ startedComponents.listIterator(startedComponents.size() - 1);
+
+ while (beforeStopIter.hasPrevious()) {
+ IgniteComponent componentToExecBeforeNodeStop = beforeStopIter.previous();
+
+ try {
+ componentToExecBeforeNodeStop.beforeNodeStop();
+ }
+ catch (Exception e) {
+ LOG.error("Unable to execute before node stop on the component=[" +
+ componentToExecBeforeNodeStop + "] within node=[" + name + ']', e);
+ }
+ }
+
+ ListIterator<IgniteComponent> stopIter =
+ startedComponents.listIterator(startedComponents.size() - 1);
+
+ while (stopIter.hasPrevious()) {
+ IgniteComponent componentToStop = stopIter.previous();
+
+ try {
+ componentToStop.stop();
+ }
+ catch (Exception e) {
+ LOG.error("Unable to stop component=[" + componentToStop + "] within node=[" + name + ']', e);
+ }
+ }
+ }
+
+ /**
+ * Starts the Vault component.
+ */
+ private static VaultManager createVault(Path workDir) {
+ Path vaultPath = workDir.resolve(VAULT_DB_PATH);
+
+ try {
+ Files.createDirectories(vaultPath);
+ }
+ catch (IOException e) {
+ throw new IgniteInternalException(e);
+ }
+
+ return new VaultManager(new PersistentVaultService(vaultPath));
+ }
+
+ /**
+ * Returns a path to the partitions store directory. Creates a directory if it doesn't exist.
+ *
+ * @param workDir Ignite work directory.
+ * @return Partitions store path.
+ */
+ @NotNull
+ private static Path getPartitionsStorePath(Path workDir) {
+ Path partitionsStore = workDir.resolve(PARTITIONS_STORE_PATH);
+
+ try {
+ Files.createDirectories(partitionsStore);
+ }
+ catch (IOException e) {
+ throw new IgniteInternalException("Failed to create directory for partitions storage: " + e.getMessage(), e);
+ }
+
+ return partitionsStore;
+ }
+
+ /**
+ * Node state.
+ */
+ private enum Status {
+ /** */
+ STARTING,
+
+ /** */
+ STARTED,
+
+ /** */
+ STOPPING
}
}
diff --cc modules/sql/src/test/java/SqlTest.java
index be4958c,0000000..e6f0156
mode 100644,000000..100644
--- a/modules/sql/src/test/java/SqlTest.java
+++ b/modules/sql/src/test/java/SqlTest.java
@@@ -1,242 -1,0 +1,241 @@@
+/*
+ * 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.
+ */
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Flow;
+import java.util.function.Consumer;
+import org.apache.ignite.query.sql.IgniteSql;
+import org.apache.ignite.query.sql.SqlResultSet;
+import org.apache.ignite.query.sql.SqlResultSetMeta;
+import org.apache.ignite.query.sql.SqlRow;
+import org.apache.ignite.query.sql.SqlSession;
+import org.apache.ignite.query.sql.reactive.ReactiveSqlResultSet;
+import org.apache.ignite.schema.ColumnType;
+import org.apache.ignite.tx.IgniteTransactions;
+import org.apache.ignite.tx.Transaction;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
- @Disabled // TODO: create a ticket to fix this.
+@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
+public class SqlTest {
+ @Mock
+ IgniteSql queryMgr;
+
+ @Mock
+ private IgniteTransactions igniteTx;
+
+ @Mock
+ private Transaction tx;
+
+ @BeforeEach
+ void setUp() {
+ initMock();
+ }
+
+ @Test
+ public void testSynchronousSql() {
+ igniteTx.runInTransaction(tx -> {
+ SqlSession sess = queryMgr.session();
+
+// sess.setParameter("forceJoinOrder", true);
+// sess.setParameter("useIndexHint", "idx1"); TODO: Where to move query hints?
+
+ SqlResultSet rs = sess.executeQuery("SELECT id, val FROM table WHERE id < {} AND val LIKE {};", tx, 10, "str%");
+
+ for (SqlRow r : rs) {
+ assertTrue(10 > r.longValue("id"));
+ assertTrue((r.stringValue("val")).startsWith("str"));
+ }
+
+ tx.commit();
+ });
+
+ Mockito.verify(tx).commit();
+ }
+
+ @Test
+ public void testAsyncSql() {
+ igniteTx.beginAsync().thenCompose(tx -> {
+ SqlSession sess = queryMgr.session();
+
+ return sess.executeQueryAsync("SELECT id, val FROM table WHERE id == {};", tx, 10)
+ .thenCompose(rs -> {
+ String str = rs.iterator().next().stringValue("val");
+
+ return sess.executeQueryAsync("SELECT val FROM table where val LIKE {};", tx, str);
+ })
+ .thenApply(ignore -> tx);
+ }).thenAccept(Transaction::commitAsync);
+
+ Mockito.verify(tx).commitAsync();
+ }
+
+ @Test
+ public void testReactiveSql() {
+ SqlRowSubscriber subscriber = new SqlRowSubscriber(row -> {
+ assertTrue(10 > row.longValue("id"));
+ assertTrue(row.stringValue("val").startsWith("str"));
+ });
+
+ igniteTx.beginAsync().thenApply(tx -> queryMgr.session())
+ .thenCompose(session -> {
+ session.executeQueryReactive("SELECT id, val FROM table WHERE id < {} AND val LIKE {};", tx, 10, "str%")
+ .subscribe(subscriber);
+
+ return subscriber.exceptionally(th -> {
+ return tx.rollbackAsync();
+ }).thenApply(ignore -> tx.commitAsync());
+ });
+
+ Mockito.verify(tx).commitAsync();
+ }
+
+ @Disabled
+ @Test
+ public void testMetadata() {
+ SqlResultSet rs = queryMgr.session().executeQuery("SELECT id, val FROM table WHERE id < {} AND val LIKE {}; ", null, 10, "str%");
+
+ SqlRow row = rs.iterator().next();
+
+ SqlResultSetMeta meta = rs.metadata();
+
+ assertEquals(rs.metadata().columnsCount(), row.columnCount());
+
+ assertEquals(0, meta.indexOf("id"));
+ assertEquals(1, meta.indexOf("val"));
+
+ assertEquals("id", meta.column(0).name());
+ assertEquals("val", meta.column(1).name());
+
+ assertEquals(ColumnType.INT64, meta.column(0).columnType());
+ assertEquals(ColumnType.string(), meta.column(1).columnType());
+
+ assertFalse(meta.column(0).nullable());
+ assertTrue(meta.column(1).nullable());
+ }
+
+ private void initMock() {
+ SqlSession session = Mockito.mock(SqlSession.class);
+
+ Mockito.when(queryMgr.session()).thenReturn(session);
+
+ Mockito.when(session.executeQuery(Mockito.eq("SELECT id, val FROM table WHERE id < {} AND val LIKE {};"), Mockito.any(), Mockito.any())).
+ thenAnswer(ans -> Mockito.when(Mockito.mock(SqlResultSet.class).iterator())
+ .thenReturn(List.of(
+ new TestRow().set("id", 1L).set("val", "string 1").build(),
+ new TestRow().set("id", 2L).set("val", "string 2").build(),
+ new TestRow().set("id", 5L).set("val", "string 3").build()
+ ).iterator()).getMock());
+
+ Mockito.when(session.executeQueryAsync(Mockito.eq("SELECT id, val FROM table WHERE id == {};"), Mockito.any(), Mockito.any()))
+ .thenAnswer(ans -> {
+ Object mock = Mockito.when(Mockito.mock(SqlResultSet.class).iterator())
+ .thenReturn(List.of(new TestRow().set("id", 1L).set("val", "string 1").build()).iterator())
+ .getMock();
+
+ return CompletableFuture.completedFuture(mock);
+ });
+
+ Mockito.when(session.executeQueryAsync(Mockito.eq("SELECT val FROM table where val LIKE {};"), Mockito.any(), Mockito.any()))
+ .thenAnswer(ans -> {
+ Object mock = Mockito.when(Mockito.mock(SqlResultSet.class).iterator())
+ .thenReturn(List.of(new TestRow().set("id", 10L).set("val", "string 10").build()).iterator())
+ .getMock();
+
+ return CompletableFuture.completedFuture(mock);
+ });
+
+ Mockito.when(session.executeQueryReactive(Mockito.startsWith("SELECT id, val FROM table WHERE id < {} AND val LIKE {};"), Mockito.any(), Mockito.any()))
+ .thenAnswer(invocation -> {
+ ReactiveSqlResultSet mock = Mockito.mock(ReactiveSqlResultSet.class);
+
+ Mockito.doAnswer(ans -> {
+ Flow.Subscriber subscrber = ans.getArgument(0);
+
+ subscrber.onSubscribe(Mockito.mock(Flow.Subscription.class));
+
+ List.of(
+ new TestRow().set("id", 1L).set("val", "string 1").build(),
+ new TestRow().set("id", 2L).set("val", "string 2").build(),
+ new TestRow().set("id", 5L).set("val", "string 3").build()
+ ).forEach(i -> subscrber.onNext(i));
+
+ subscrber.onComplete();
+
+ return ans;
+ }).when(mock).subscribe(Mockito.any(Flow.Subscriber.class));
+
+ return mock;
+ });
+
+ Mockito.doAnswer(invocation -> {
+ Consumer<Transaction> argument = invocation.getArgument(0);
+
+ argument.accept(tx);
+
+ return null;
+ }).when(igniteTx).runInTransaction(Mockito.any());
+
+ Mockito.when(igniteTx.beginAsync()).thenReturn(CompletableFuture.completedFuture(tx));
+ }
+
+ /**
+ * Dummy subsctiber for test purposes.
+ */
+ static class SqlRowSubscriber extends CompletableFuture implements Flow.Subscriber<SqlRow> {
+ private Consumer<SqlRow> rowConsumer;
+
+ SqlRowSubscriber(Consumer<SqlRow> rowConsumer) {
+ this.rowConsumer = rowConsumer;
+ }
+
+ @Override public void onSubscribe(Flow.Subscription subscription) {
+ whenCompleteAsync((res, th) -> {
+ if (th != null)
+ subscription.cancel();
+ });
+
+ subscription.request(Long.MAX_VALUE); // Unbounded.
+ }
+
+ @Override public void onNext(SqlRow row) {
+ rowConsumer.accept(row);
+ }
+
+ @Override public void onError(Throwable throwable) {
+ completeExceptionally(throwable);
+ }
+
+ @Override public void onComplete() {
+ complete(null);
+ }
+ }
+}
diff --cc modules/sql/src/test/java/TestRow.java
index 2105be9,0000000..306510e
mode 100644,000000..100644
--- a/modules/sql/src/test/java/TestRow.java
+++ b/modules/sql/src/test/java/TestRow.java
@@@ -1,181 -1,0 +1,223 @@@
+/*
+ * 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.
+ */
+
++import java.time.Instant;
++import java.time.LocalDate;
++import java.time.LocalDateTime;
++import java.time.LocalTime;
+import java.util.BitSet;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.UUID;
+import org.apache.ignite.binary.BinaryObject;
+import org.apache.ignite.binary.BinaryObjects;
+import org.apache.ignite.query.sql.SqlRow;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Dummy table storage implementation.
+ */
+public class TestRow implements SqlRow {
+ /** Columns values. */
+ private final Map<String, Object> map = new HashMap<>();
+
- public TestRow set(String columnName, Object value) {
++ /** {@inheritDoc} */
++ @Override public TestRow set(String columnName, Object value) {
+ map.put(columnName, value);
+
+ return this;
+ }
+
+ public SqlRow build() {
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override public <T> T valueOrDefault(String columnName, T def) {
+ return (T)map.getOrDefault(columnName, def);
+ }
+
+ /** {@inheritDoc} */
+ @Override public <T> T value(String columnName) {
+ return (T)map.get(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public <T> T value(int columnIndex) {
+ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
+ @Override public int columnCount() {
+ return map.size();
+ }
+
+ /** {@inheritDoc} */
+ @Override public String columnName(int columnIndex) {
+ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
- @Override public Integer columnIndex(String columnName) {
++ @Override public int columnIndex(String columnName) {
+ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
+ @Override public BinaryObject binaryObjectValue(String columnName) {
- byte[] data = value(columnName);
-
- return BinaryObjects.wrap(data);
++ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
+ @Override public BinaryObject binaryObjectValue(int columnIndex) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public byte byteValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public byte byteValue(int columnIndex) {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public short shortValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public short shortValue(int columnIndex) {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public int intValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public int intValue(int columnIndex) {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public long longValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public long longValue(int columnIndex) {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public float floatValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public float floatValue(int columnIndex) {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public double doubleValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public double doubleValue(int columnIndex) {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String stringValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public String stringValue(int columnIndex) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public UUID uuidValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public UUID uuidValue(int columnIndex) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public BitSet bitmaskValue(String columnName) {
+ return value(columnName);
+ }
+
+ /** {@inheritDoc} */
+ @Override public BitSet bitmaskValue(int columnIndex) {
+ return null;
+ }
+
++ @Override public LocalDate dateValue(String columnName) {
++ return null;
++ }
++
++ /** {@inheritDoc} */
++ @Override public LocalDate dateValue(int columnIndex) {
++ return null;
++ }
++
++ /** {@inheritDoc} */
++ @Override public LocalTime timeValue(String columnName) {
++ return null;
++ }
++
++ /** {@inheritDoc} */
++ @Override public LocalTime timeValue(int columnIndex) {
++ return null;
++ }
++
++ /** {@inheritDoc} */
++ @Override public LocalDateTime datetimeValue(String columnName) {
++ return null;
++ }
++
++ /** {@inheritDoc} */
++ @Override public LocalDateTime datetimeValue(int columnIndex) {
++ return null;
++ }
++
++ /** {@inheritDoc} */
++ @Override public Instant timestampValue(String columnName) {
++ return null;
++ }
++
++ /** {@inheritDoc} */
++ @Override public Instant timestampValue(int columnIndex) {
++ return null;
++ }
++
+ /** {@inheritDoc} */
+ @NotNull @Override public Iterator<Object> iterator() {
+ throw new UnsupportedOperationException();
+ }
+}
diff --cc pom.xml
index c2b073a,aa83c61..54093e5
--- a/pom.xml
+++ b/pom.xml
@@@ -59,9 -59,9 +59,10 @@@
<module>modules/raft</module>
<module>modules/raft-client</module>
<module>modules/rest</module>
+ <module>modules/rocksdb-common</module>
<module>modules/runner</module>
<module>modules/schema</module>
+ <module>modules/sql</module>
<module>modules/storage-api</module>
<module>modules/storage-rocksdb</module>
<module>modules/table</module>
[ignite-3] 01/02: minor
Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch ignite-15212
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit b8639facabd825a0767924ff10c6b40fd14f5162
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Tue Aug 3 22:31:11 2021 +0300
minor
---
.../main/java/org/apache/ignite/query/sql/SqlSession.java | 15 ++++++++++++---
modules/sql/src/test/java/SqlTest.java | 4 ++++
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/modules/api/src/main/java/org/apache/ignite/query/sql/SqlSession.java b/modules/api/src/main/java/org/apache/ignite/query/sql/SqlSession.java
index 229b0e6..8f10010 100644
--- a/modules/api/src/main/java/org/apache/ignite/query/sql/SqlSession.java
+++ b/modules/api/src/main/java/org/apache/ignite/query/sql/SqlSession.java
@@ -25,11 +25,11 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
- * SQL session.
+ * SQL Session provides methods for query execution.
*/
public interface SqlSession extends AsyncSqlSession, ReactiveSqlSession {
/**
- * Executes SQL query synchronously.
+ * Executes SQL query.
*
* @param sql SQL query template.
* @param tx Transaction (optional).
@@ -40,7 +40,7 @@ public interface SqlSession extends AsyncSqlSession, ReactiveSqlSession {
SqlResultSet executeQuery(@NotNull String sql, @Nullable Transaction tx, Object... args);
/**
- * Executes a non-query statement.
+ * Executes DML query.
*
* @param sql SQL statement template.
* @param tx Transaction (optional).
@@ -52,6 +52,15 @@ public interface SqlSession extends AsyncSqlSession, ReactiveSqlSession {
//TODO: in contrary, execute() method may return inserted rows IDs that looks useful if AutoIncrement ID column is used.
/**
+ * Executes DDL query.
+ *
+ * @param sql SQL statement template.
+ * @param tx Transaction (optional).
+ * @param args Agruments for template (optional).
+ */
+ void execute(@NotNull String sql, @Nullable Transaction tx, Object... args);
+
+ /**
* Creates prepared statement.
*
* @param sql SQL query template.
diff --git a/modules/sql/src/test/java/SqlTest.java b/modules/sql/src/test/java/SqlTest.java
index bd693fc..be4958c 100644
--- a/modules/sql/src/test/java/SqlTest.java
+++ b/modules/sql/src/test/java/SqlTest.java
@@ -15,6 +15,7 @@
* limitations under the License.
*/
+import java.math.BigDecimal;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Flow;
@@ -65,6 +66,9 @@ public class SqlTest {
igniteTx.runInTransaction(tx -> {
SqlSession sess = queryMgr.session();
+// sess.setParameter("forceJoinOrder", true);
+// sess.setParameter("useIndexHint", "idx1"); TODO: Where to move query hints?
+
SqlResultSet rs = sess.executeQuery("SELECT id, val FROM table WHERE id < {} AND val LIKE {};", tx, 10, "str%");
for (SqlRow r : rs) {