You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sk...@apache.org on 2021/11/03 11:22:49 UTC

[ignite-3] branch main updated: IGNITE-15371 Switch to Google code style. Fixes #377

This is an automated email from the ASF dual-hosted git repository.

sk0x50 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 2b400c0  IGNITE-15371 Switch to Google code style. Fixes #377
2b400c0 is described below

commit 2b400c0c733b444ac79f99623c0ec59929ae3829
Author: Kirill Tkalenko <tk...@yandex.ru>
AuthorDate: Wed Nov 3 14:22:20 2021 +0300

    IGNITE-15371 Switch to Google code style. Fixes #377
    
    Signed-off-by: Slava Koptilin <sl...@gmail.com>
---
 check-rules/checkstyle-rules.xml                   |  453 +++-
 .../ignite/example/rebalance/RebalanceExample.java |  106 +-
 .../ignite/example/sql/jdbc/SqlJdbcExample.java    |   84 +-
 .../ignite/example/table/KeyValueViewExample.java  |   52 +-
 .../ignite/example/table/RecordViewExample.java    |   52 +-
 .../apache/ignite/example/ExampleTestUtils.java    |   21 +-
 .../ignite/example/sql/jdbc/SqlExamplesTest.java   |   33 +-
 .../ignite/example/table/TableExamplesTest.java    |   25 +-
 idea/intellij-java-google-style.xml                |  617 +++++
 .../ignite/internal/affinity/AffinityUtils.java    |   18 +-
 .../affinity/RendezvousAffinityFunction.java       |  128 +-
 .../internal/affinity/AffinityServiceTest.java     |   42 +-
 .../affinity/RendezvousAffinityFunctionTest.java   |   86 +-
 .../src/main/java/org/apache/ignite/Ignite.java    |   24 +-
 .../src/main/java/org/apache/ignite/Ignition.java  |   19 +-
 .../java/org/apache/ignite/IgnitionManager.java    |   54 +-
 .../org/apache/ignite/binary/package-info.java     |    1 +
 .../schemas/clientconnector/package-info.java      |    1 +
 .../network/ScaleCubeConfigurationSchema.java      |    7 +-
 .../schemas/network/package-info.java              |    1 +
 .../configuration/schemas/rest/package-info.java   |    1 +
 .../configuration/schemas/runner/package-info.java |    1 +
 .../schemas/table/ColumnTypeValidator.java         |   10 +-
 .../schemas/table/TableConfigurationSchema.java    |    4 +-
 .../schemas/table/TableValidator.java              |   10 +-
 .../configuration/schemas/table/package-info.java  |    1 +
 .../org/apache/ignite/lang/IgniteException.java    |    8 +-
 .../ignite/lang/TableAlreadyExistsException.java   |    3 +-
 .../java/org/apache/ignite/lang/package-info.java  |    1 +
 .../main/java/org/apache/ignite/package-info.java  |    1 +
 .../ignite/schema/definition/ColumnType.java       |  158 +-
 .../schema/definition/SchemaManagementMode.java    |   12 +-
 .../ignite/schema/definition/TableDefinition.java  |    3 +-
 .../builder/ColumnDefinitionBuilder.java           |    6 +-
 .../builder/HashIndexDefinitionBuilder.java        |    6 +-
 .../builder/PartialIndexDefinitionBuilder.java     |   21 +-
 .../builder/PrimaryKeyDefinitionBuilder.java       |    3 +-
 .../builder/SortedIndexDefinitionBuilder.java      |    6 +-
 .../definition/index/HashIndexDefinition.java      |    3 +-
 .../schema/definition/index/IndexDefinition.java   |    9 +-
 .../definition/index/PartialIndexDefinition.java   |    3 +-
 .../definition/index/SortedIndexDefinition.java    |    9 +-
 .../schema/definition/index/package-info.java      |    1 +
 .../ignite/schema/definition/package-info.java     |    1 +
 .../schema/modification/AlterColumnBuilder.java    |    9 +-
 .../modification/TableModificationBuilder.java     |    8 +-
 .../ignite/schema/modification/package-info.java   |    1 +
 .../org/apache/ignite/table/InvocationContext.java |   30 +-
 .../org/apache/ignite/table/InvokeProcessor.java   |   18 +-
 .../java/org/apache/ignite/table/KeyValueView.java |  159 +-
 .../java/org/apache/ignite/table/RecordView.java   |  151 +-
 .../main/java/org/apache/ignite/table/Table.java   |   38 +-
 .../main/java/org/apache/ignite/table/Tuple.java   |   94 +-
 .../java/org/apache/ignite/table/TupleImpl.java    |  154 +-
 .../apache/ignite/table/manager/IgniteTables.java  |  139 +-
 .../apache/ignite/table/manager/package-info.java  |    1 +
 .../apache/ignite/table/mapper/package-info.java   |    1 +
 .../java/org/apache/ignite/table/package-info.java |    1 +
 .../org/apache/ignite/tx/IgniteTransactions.java   |    4 +-
 .../java/org/apache/ignite/tx/Transaction.java     |   12 +-
 .../java/org/apache/ignite/tx/package-info.java    |    1 +
 .../ignite/internal/baseline/BaselineManager.java  |   25 +-
 .../apache/calcite/plan/volcano/package-info.java  |    1 +
 .../query/calcite/ResultFieldMetadata.java         |   17 +-
 .../query/calcite/SqlQueryProcessor.java           |  157 +-
 .../internal/processors/query/calcite/Stubs.java   |    5 +-
 .../query/calcite/exec/AbstractIndexScan.java      |   85 +-
 .../query/calcite/exec/ArrayRowHandler.java        |   39 +-
 .../calcite/exec/ClosableIteratorsHolder.java      |  105 +-
 .../query/calcite/exec/ExchangeService.java        |   39 +-
 .../query/calcite/exec/ExchangeServiceImpl.java    |  234 +-
 .../calcite/exec/ExecutionCancelledException.java  |    4 +-
 .../query/calcite/exec/ExecutionContext.java       |  136 +-
 .../query/calcite/exec/ExecutionService.java       |    3 +-
 .../query/calcite/exec/ExecutionServiceImpl.java   |  995 ++++----
 .../query/calcite/exec/LogicalRelImplementor.java  |  459 ++--
 .../query/calcite/exec/MailboxRegistry.java        |   23 +-
 .../query/calcite/exec/MailboxRegistryImpl.java    |  121 +-
 .../query/calcite/exec/PlannerHelper.java          |   99 +-
 .../query/calcite/exec/QueryTaskExecutor.java      |   11 +-
 .../query/calcite/exec/QueryTaskExecutorImpl.java  |   97 +-
 .../processors/query/calcite/exec/RowHandler.java  |   87 +-
 .../query/calcite/exec/RuntimeHashIndex.java       |   66 +-
 .../query/calcite/exec/RuntimeIndex.java           |    8 +-
 .../query/calcite/exec/RuntimeTreeIndex.java       |  132 +-
 .../query/calcite/exec/TableFunctionScan.java      |   29 +-
 .../processors/query/calcite/exec/TreeIndex.java   |    1 +
 .../query/calcite/exec/exp/CallImplementor.java    |   11 +-
 .../query/calcite/exec/exp/ConverterUtils.java     |  369 +--
 .../query/calcite/exec/exp/ExpressionFactory.java  |   48 +-
 .../calcite/exec/exp/ExpressionFactoryImpl.java    |  431 ++--
 .../calcite/exec/exp/IgniteBuiltInMethod.java      |   18 +-
 .../query/calcite/exec/exp/IgniteSqlFunctions.java |   70 +-
 .../calcite/exec/exp/ImplementableFunction.java    |    1 +
 .../query/calcite/exec/exp/NotNullImplementor.java |   12 +-
 .../exec/exp/ReflectiveCallNotNullImplementor.java |   35 +-
 .../query/calcite/exec/exp/RexImpTable.java        | 1596 +++++++-----
 .../query/calcite/exec/exp/RexToLixTranslator.java |  904 ++++---
 .../processors/query/calcite/exec/exp/Scalar.java  |    8 +-
 .../query/calcite/exec/exp/agg/Accumulator.java    |   25 +-
 .../calcite/exec/exp/agg/AccumulatorWrapper.java   |   24 +-
 .../query/calcite/exec/exp/agg/Accumulators.java   |  824 ++++--
 .../calcite/exec/exp/agg/AccumulatorsFactory.java  |  247 +-
 .../query/calcite/exec/exp/agg/GroupKey.java       |   70 +-
 .../query/calcite/exec/rel/AbstractNode.java       |  160 +-
 .../query/calcite/exec/rel/AbstractSetOpNode.java  |  234 +-
 .../exec/rel/CorrelatedNestedLoopJoinNode.java     |  235 +-
 .../query/calcite/exec/rel/Downstream.java         |    4 +-
 .../query/calcite/exec/rel/FilterNode.java         |   73 +-
 .../query/calcite/exec/rel/HashAggregateNode.java  |  241 +-
 .../processors/query/calcite/exec/rel/Inbox.java   |  364 ++-
 .../query/calcite/exec/rel/IndexSpoolNode.java     |  148 +-
 .../query/calcite/exec/rel/IntersectNode.java      |   60 +-
 .../query/calcite/exec/rel/LimitNode.java          |   50 +-
 .../processors/query/calcite/exec/rel/Mailbox.java |    4 +-
 .../query/calcite/exec/rel/MergeJoinNode.java      |  608 +++--
 .../query/calcite/exec/rel/MinusNode.java          |   52 +-
 .../query/calcite/exec/rel/ModifyNode.java         |  132 +-
 .../query/calcite/exec/rel/NestedLoopJoinNode.java |  492 ++--
 .../processors/query/calcite/exec/rel/Node.java    |   13 +-
 .../processors/query/calcite/exec/rel/Outbox.java  |  226 +-
 .../query/calcite/exec/rel/ProjectNode.java        |   33 +-
 .../query/calcite/exec/rel/RootNode.java           |  169 +-
 .../query/calcite/exec/rel/ScanNode.java           |   56 +-
 .../query/calcite/exec/rel/SingleNode.java         |   19 +-
 .../query/calcite/exec/rel/SortAggregateNode.java  |  227 +-
 .../query/calcite/exec/rel/SortNode.java           |   57 +-
 .../query/calcite/exec/rel/TableScanNode.java      |  160 +-
 .../query/calcite/exec/rel/TableSpoolNode.java     |   67 +-
 .../query/calcite/exec/rel/UnionAllNode.java       |   41 +-
 .../query/calcite/externalize/RelInputEx.java      |    5 +-
 .../query/calcite/externalize/RelJson.java         | 1060 ++++----
 .../query/calcite/externalize/RelJsonReader.java   |  280 +-
 .../query/calcite/externalize/RelJsonWriter.java   |   90 +-
 .../query/calcite/message/ErrorMessage.java        |    1 -
 .../message/ExecutionContextAwareMessage.java      |    1 -
 .../query/calcite/message/InboxCloseMessage.java   |    1 -
 .../query/calcite/message/MessageListener.java     |    2 +-
 .../query/calcite/message/MessageService.java      |    4 +-
 .../query/calcite/message/MessageServiceImpl.java  |   92 +-
 .../query/calcite/message/OutboxCloseMessage.java  |    1 -
 .../query/calcite/message/QueryBatchMessage.java   |    1 -
 .../query/calcite/message/QueryStartResponse.java  |    1 -
 .../calcite/message/SqlQueryMessageGroup.java      |    4 +-
 .../query/calcite/metadata/ColocationGroup.java    |  121 +-
 .../calcite/metadata/FragmentDescription.java      |   50 +-
 .../query/calcite/metadata/FragmentMapping.java    |  103 +-
 .../calcite/metadata/FragmentMappingException.java |   13 +-
 .../query/calcite/metadata/IgniteMdCollation.java  |  322 +--
 .../calcite/metadata/IgniteMdCumulativeCost.java   |   57 +-
 .../calcite/metadata/IgniteMdDistinctRowCount.java |   22 +-
 .../calcite/metadata/IgniteMdDistribution.java     |   17 +-
 .../calcite/metadata/IgniteMdFragmentMapping.java  |   90 +-
 .../metadata/IgniteMdNonCumulativeCost.java        |   21 +-
 .../metadata/IgniteMdPercentageOriginalRows.java   |   35 +-
 .../query/calcite/metadata/IgniteMdPredicates.java |   15 +-
 .../query/calcite/metadata/IgniteMdRowCount.java   |  101 +-
 .../calcite/metadata/IgniteMdSelectivity.java      |   80 +-
 .../query/calcite/metadata/IgniteMetadata.java     |   43 +-
 .../query/calcite/metadata/MappingService.java     |    9 +-
 .../query/calcite/metadata/MappingServiceImpl.java |   23 +-
 .../calcite/metadata/NodeMappingException.java     |    9 +-
 .../query/calcite/metadata/RelMetadataQueryEx.java |   38 +-
 .../query/calcite/metadata/RemoteException.java    |   18 +-
 .../query/calcite/metadata/cost/IgniteCost.java    |  168 +-
 .../calcite/metadata/cost/IgniteCostFactory.java   |   34 +-
 .../calcite/prepare/AbstractMultiStepPlan.java     |  102 +-
 .../processors/query/calcite/prepare/CacheKey.java |   38 +-
 .../processors/query/calcite/prepare/Cloner.java   |  127 +-
 .../processors/query/calcite/prepare/DdlPlan.java  |   22 +-
 .../query/calcite/prepare/FieldsMetadata.java      |    1 -
 .../query/calcite/prepare/FieldsMetadataImpl.java  |   23 +-
 .../processors/query/calcite/prepare/Fragment.java |  120 +-
 .../query/calcite/prepare/FragmentPlan.java        |   22 +-
 .../query/calcite/prepare/FragmentSplitter.java    |   61 +-
 .../query/calcite/prepare/IdGenerator.java         |   19 +-
 .../query/calcite/prepare/IgnitePlanner.java       |  205 +-
 .../query/calcite/prepare/IgnitePrograms.java      |   23 +-
 .../query/calcite/prepare/IgniteRelShuttle.java    |   95 +-
 .../query/calcite/prepare/IgniteSqlValidator.java  |  182 +-
 .../query/calcite/prepare/MultiStepPlan.java       |    9 +-
 .../query/calcite/prepare/PlannerHelper.java       |  106 +-
 .../query/calcite/prepare/PlannerPhase.java        |  240 +-
 .../query/calcite/prepare/PlanningContext.java     |  163 +-
 .../query/calcite/prepare/QueryPlan.java           |    4 +-
 .../query/calcite/prepare/QueryPlanCache.java      |    5 +-
 .../query/calcite/prepare/QueryPlanCacheImpl.java  |   25 +-
 .../query/calcite/prepare/QueryTemplate.java       |   73 +-
 .../calcite/prepare/ResultFieldMetadataImpl.java   |   46 +-
 .../calcite/prepare/ResultSetMetadataImpl.java     |   43 +-
 .../processors/query/calcite/prepare/Splitter.java |   56 +-
 .../query/calcite/prepare/ValidationResult.java    |   18 +-
 .../calcite/prepare/ddl/ColumnDefinition.java      |   14 +-
 .../calcite/prepare/ddl/CreateTableCommand.java    |   75 +-
 .../query/calcite/prepare/ddl/DdlCommand.java      |    1 +
 .../prepare/ddl/DdlSqlToCommandConverter.java      |  249 +-
 .../query/calcite/rel/AbstractIgniteJoin.java      |  135 +-
 .../query/calcite/rel/AbstractIgniteSpool.java     |   21 +-
 .../query/calcite/rel/AbstractIndexScan.java       |   44 +-
 .../query/calcite/rel/IgniteAggregate.java         |   64 +-
 .../query/calcite/rel/IgniteConvention.java        |   14 +-
 .../rel/IgniteCorrelatedNestedLoopJoin.java        |  167 +-
 .../query/calcite/rel/IgniteExchange.java          |   43 +-
 .../processors/query/calcite/rel/IgniteFilter.java |  111 +-
 .../query/calcite/rel/IgniteHashIndexSpool.java    |   73 +-
 .../query/calcite/rel/IgniteIndexScan.java         |  132 +-
 .../processors/query/calcite/rel/IgniteLimit.java  |  125 +-
 .../query/calcite/rel/IgniteMergeJoin.java         |  271 +-
 .../query/calcite/rel/IgniteNestedLoopJoin.java    |   91 +-
 .../query/calcite/rel/IgniteProject.java           |  183 +-
 .../query/calcite/rel/IgniteReceiver.java          |  106 +-
 .../processors/query/calcite/rel/IgniteRel.java    |   11 +-
 .../query/calcite/rel/IgniteRelVisitor.java        |    1 +
 .../processors/query/calcite/rel/IgniteSender.java |   94 +-
 .../processors/query/calcite/rel/IgniteSort.java   |   95 +-
 .../query/calcite/rel/IgniteSortedIndexSpool.java  |   85 +-
 .../query/calcite/rel/IgniteTableFunctionScan.java |   43 +-
 .../query/calcite/rel/IgniteTableModify.java       |   79 +-
 .../query/calcite/rel/IgniteTableScan.java         |  120 +-
 .../query/calcite/rel/IgniteTableSpool.java        |   42 +-
 .../query/calcite/rel/IgniteTrimExchange.java      |   65 +-
 .../query/calcite/rel/IgniteUnionAll.java          |  120 +-
 .../processors/query/calcite/rel/IgniteValues.java |   25 +-
 .../rel/ProjectableFilterableTableScan.java        |   95 +-
 .../query/calcite/rel/SourceAwareIgniteRel.java    |    8 +-
 .../calcite/rel/agg/IgniteHashAggregateBase.java   |   11 +-
 .../calcite/rel/agg/IgniteMapAggregateBase.java    |   49 +-
 .../calcite/rel/agg/IgniteMapHashAggregate.java    |   47 +-
 .../calcite/rel/agg/IgniteMapSortAggregate.java    |   73 +-
 .../calcite/rel/agg/IgniteReduceAggregateBase.java |  125 +-
 .../calcite/rel/agg/IgniteReduceHashAggregate.java |   67 +-
 .../calcite/rel/agg/IgniteReduceSortAggregate.java |   80 +-
 .../calcite/rel/agg/IgniteSingleAggregateBase.java |   47 +-
 .../calcite/rel/agg/IgniteSingleHashAggregate.java |   21 +-
 .../calcite/rel/agg/IgniteSingleSortAggregate.java |   37 +-
 .../calcite/rel/agg/IgniteSortAggregateBase.java   |   24 +-
 .../rel/logical/IgniteLogicalIndexScan.java        |   89 +-
 .../rel/logical/IgniteLogicalTableScan.java        |   42 +-
 .../query/calcite/rel/set/IgniteIntersect.java     |   17 +-
 .../query/calcite/rel/set/IgniteMapIntersect.java  |   32 +-
 .../query/calcite/rel/set/IgniteMapMinus.java      |   32 +-
 .../query/calcite/rel/set/IgniteMapSetOp.java      |   79 +-
 .../query/calcite/rel/set/IgniteMinus.java         |   17 +-
 .../query/calcite/rel/set/IgniteMinusBase.java     |   59 +-
 .../calcite/rel/set/IgniteReduceIntersect.java     |   62 +-
 .../query/calcite/rel/set/IgniteReduceMinus.java   |   62 +-
 .../query/calcite/rel/set/IgniteReduceSetOp.java   |   49 +-
 .../query/calcite/rel/set/IgniteSetOp.java         |   38 +-
 .../calcite/rel/set/IgniteSingleIntersect.java     |   26 +-
 .../query/calcite/rel/set/IgniteSingleMinus.java   |   26 +-
 .../query/calcite/rel/set/IgniteSingleSetOp.java   |   77 +-
 .../calcite/rule/AbstractIgniteConverterRule.java  |   21 +-
 .../calcite/rule/CorrelateToNestedLoopRule.java    |   77 +-
 .../calcite/rule/CorrelatedNestedLoopJoinRule.java |   99 +-
 .../query/calcite/rule/FilterConverterRule.java    |   14 +-
 .../rule/FilterSpoolMergeToHashIndexSpoolRule.java |   73 +-
 .../FilterSpoolMergeToSortedIndexSpoolRule.java    |   96 +-
 .../calcite/rule/HashAggregateConverterRule.java   |   82 +-
 .../calcite/rule/LogicalScanConverterRule.java     |   79 +-
 .../query/calcite/rule/MergeJoinConverterRule.java |   20 +-
 .../query/calcite/rule/MinusConverterRule.java     |   44 +-
 .../calcite/rule/NestedLoopJoinConverterRule.java  |    7 +-
 .../query/calcite/rule/ProjectConverterRule.java   |   11 +-
 .../query/calcite/rule/SetOpConverterRule.java     |  119 +-
 .../calcite/rule/SortAggregateConverterRule.java   |  106 +-
 .../query/calcite/rule/SortConverterRule.java      |   23 +-
 .../rule/TableFunctionScanConverterRule.java       |   22 +-
 .../calcite/rule/TableModifyConverterRule.java     |   13 +-
 .../query/calcite/rule/UnionConverterRule.java     |   31 +-
 .../query/calcite/rule/ValuesConverterRule.java    |   15 +-
 .../calcite/rule/logical/ExposeIndexRule.java      |   28 +-
 .../calcite/rule/logical/FilterScanMergeRule.java  |  112 +-
 .../calcite/rule/logical/LogicalOrToUnionRule.java |   79 +-
 .../calcite/rule/logical/ProjectScanMergeRule.java |  161 +-
 .../query/calcite/schema/ColumnDescriptor.java     |   33 +-
 .../query/calcite/schema/ColumnDescriptorImpl.java |   53 +-
 .../query/calcite/schema/IgniteIndex.java          |   32 +-
 .../query/calcite/schema/IgniteSchema.java         |   12 +-
 .../query/calcite/schema/IgniteTable.java          |   16 +-
 .../query/calcite/schema/IgniteTableImpl.java      |  138 +-
 .../query/calcite/schema/SchemaHolderImpl.java     |   90 +-
 .../query/calcite/schema/TableDescriptor.java      |   43 +-
 .../query/calcite/schema/TableDescriptorImpl.java  |  147 +-
 .../query/calcite/sql/IgniteSqlConformance.java    |    4 +-
 .../query/calcite/sql/IgniteSqlCreateTable.java    |   31 +-
 .../calcite/sql/IgniteSqlCreateTableOption.java    |   69 +-
 .../sql/IgniteSqlCreateTableOptionEnum.java        |    1 +
 .../calcite/sql/fun/IgniteSqlOperatorTable.java    |   15 +-
 .../calcite/sql/fun/SqlSystemRangeFunction.java    |   25 +-
 .../query/calcite/trait/AffinityAdapter.java       |   33 +-
 .../processors/query/calcite/trait/AllNodes.java   |   20 +-
 .../query/calcite/trait/CorrelationTrait.java      |  113 +-
 .../query/calcite/trait/CorrelationTraitDef.java   |   23 +-
 .../query/calcite/trait/Destination.java           |    4 +-
 .../query/calcite/trait/DistributionFunction.java  |  220 +-
 .../query/calcite/trait/DistributionTrait.java     |  176 +-
 .../query/calcite/trait/DistributionTraitDef.java  |   19 +-
 .../query/calcite/trait/IgniteDistribution.java    |   14 +-
 .../query/calcite/trait/IgniteDistributions.java   |   31 +-
 .../query/calcite/trait/Partitioned.java           |   32 +-
 .../processors/query/calcite/trait/RandomNode.java |   24 +-
 .../processors/query/calcite/trait/RelFactory.java |    7 +-
 .../query/calcite/trait/RewindabilityTrait.java    |   67 +-
 .../query/calcite/trait/RewindabilityTraitDef.java |   23 +-
 .../processors/query/calcite/trait/TraitUtils.java |  586 +++--
 .../query/calcite/trait/TraitsAwareIgniteRel.java  |   40 +-
 .../query/calcite/type/IgniteTypeFactory.java      |   40 +-
 .../query/calcite/type/IgniteTypeSystem.java       |   11 +-
 .../processors/query/calcite/util/Commons.java     |  512 ++--
 .../query/calcite/util/FilteringIterator.java      |   27 +-
 .../processors/query/calcite/util/HintUtils.java   |   48 +-
 .../query/calcite/util/IgniteMethod.java           |   17 +-
 .../query/calcite/util/IgniteResource.java         |   23 +-
 .../query/calcite/util/IndexConditions.java        |   72 +-
 .../query/calcite/util/NodeLeaveHandler.java       |    8 +-
 .../processors/query/calcite/util/Primitives.java  |  156 +-
 .../processors/query/calcite/util/RexUtils.java    |  595 +++--
 .../query/calcite/util/TransformingIterator.java   |   17 +-
 .../processors/query/calcite/util/TypeUtils.java   |  286 ++-
 .../query/calcite/StopCalciteModuleTest.java       |  134 +-
 .../query/calcite/exec/RuntimeTreeIndexTest.java   |  117 +-
 .../calcite/exec/rel/AbstractExecutionTest.java    |  226 +-
 .../exec/rel/AbstractSetOpExecutionTest.java       |   76 +-
 .../query/calcite/exec/rel/BaseAggregateTest.java  |  636 ++---
 .../query/calcite/exec/rel/ExecutionTest.java      |  623 ++---
 .../exec/rel/HashAggregateExecutionTest.java       |  127 +-
 .../rel/HashAggregateSingleGroupExecutionTest.java |  527 ++--
 .../exec/rel/HashIndexSpoolExecutionTest.java      |   99 +-
 .../calcite/exec/rel/IntersectExecutionTest.java   |   56 +-
 .../calcite/exec/rel/MergeJoinExecutionTest.java   |  421 +--
 .../query/calcite/exec/rel/MinusExecutionTest.java |   56 +-
 .../exec/rel/NestedLoopJoinExecutionTest.java      |  410 +--
 .../exec/rel/SortAggregateExecutionTest.java       |  141 +-
 .../calcite/exec/rel/TableSpoolExecutionTest.java  |   44 +-
 .../exec/rel/TreeIndexSpoolExecutionTest.java      |  157 +-
 .../planner/AbstractAggregatePlannerTest.java      |   40 +-
 .../query/calcite/planner/AbstractPlannerTest.java |  877 ++++---
 .../planner/AggregateDistinctPlannerTest.java      |   78 +-
 .../calcite/planner/AggregatePlannerTest.java      |  187 +-
 .../CorrelatedNestedLoopJoinPlannerTest.java       |  158 +-
 .../calcite/planner/HashAggregatePlannerTest.java  |   55 +-
 .../calcite/planner/HashIndexSpoolPlannerTest.java |  212 +-
 .../calcite/planner/JoinColocationPlannerTest.java |  110 +-
 .../query/calcite/planner/PlannerTest.java         | 2167 ++++++++--------
 .../query/calcite/planner/SetOpPlannerTest.java    |  331 +--
 .../calcite/planner/SortAggregatePlannerTest.java  |   90 +-
 .../planner/SortedIndexSpoolPlannerTest.java       |  193 +-
 .../query/calcite/planner/TableDmlPlannerTest.java |   24 +-
 .../calcite/planner/TableFunctionPlannerTest.java  |   30 +-
 .../calcite/planner/TableSpoolPlannerTest.java     |   86 +-
 .../query/calcite/sql/SqlDdlParserTest.java        |  246 +-
 .../apache/ignite/cli/common/IgniteCommand.java    |    8 +-
 .../org/apache/ignite/cli/common/package-info.java |    4 +-
 ...igCommandTest.java => ItConfigCommandTest.java} |   84 +-
 .../apache/ignite/cli/CliPathsConfigLoader.java    |   51 +-
 .../java/org/apache/ignite/cli/CliVersionInfo.java |    6 +-
 .../java/org/apache/ignite/cli/CommandFactory.java |    5 +-
 .../java/org/apache/ignite/cli/ErrorHandler.java   |   31 +-
 .../org/apache/ignite/cli/HelpFactoryImpl.java     |   64 +-
 .../java/org/apache/ignite/cli/IgniteCliApp.java   |   19 +-
 ...teCLIException.java => IgniteCliException.java} |    8 +-
 .../java/org/apache/ignite/cli/IgnitePaths.java    |   49 +-
 .../org/apache/ignite/cli/InteractiveWrapper.java  |   19 +-
 .../src/main/java/org/apache/ignite/cli/Table.java |   63 +-
 .../org/apache/ignite/cli/VersionProvider.java     |    7 +-
 .../ignite/cli/builtins/SystemPathResolver.java    |   18 +-
 .../cli/builtins/config/ConfigurationClient.java   |   92 +-
 .../cli/builtins/config/HttpClientFactory.java     |    8 +-
 .../ignite/cli/builtins/config/package-info.java   |    1 +
 .../cli/builtins/init/InitIgniteCommand.java       |   83 +-
 .../ignite/cli/builtins/init/package-info.java     |    1 +
 .../cli/builtins/module/MavenArtifactResolver.java |  124 +-
 .../cli/builtins/module/MavenCoordinates.java      |   18 +-
 .../ignite/cli/builtins/module/ModuleManager.java  |  181 +-
 .../ignite/cli/builtins/module/ModuleRegistry.java |   68 +-
 .../builtins/module/StandardModuleDefinition.java  |   14 +-
 .../ignite/cli/builtins/module/package-info.java   |    1 +
 .../ignite/cli/builtins/node/NodeManager.java      |  187 +-
 .../ignite/cli/builtins/node/package-info.java     |    1 +
 .../apache/ignite/cli/builtins/package-info.java   |    1 +
 .../java/org/apache/ignite/cli/package-info.java   |    1 +
 .../org/apache/ignite/cli/spec/CategorySpec.java   |    7 +-
 .../apache/ignite/cli/spec/ConfigCommandSpec.java  |   74 +-
 .../org/apache/ignite/cli/spec/IgniteCliSpec.java  |   88 +-
 .../ignite/cli/spec/InitIgniteCommandSpec.java     |    7 +-
 .../apache/ignite/cli/spec/ModuleCommandSpec.java  |   95 +-
 .../apache/ignite/cli/spec/NodeCommandSpec.java    |   69 +-
 .../org/apache/ignite/cli/spec/SpecAdapter.java    |   34 +-
 .../org/apache/ignite/cli/spec/package-info.java   |    1 +
 .../java/org/apache/ignite/cli/ui/ProgressBar.java |   20 +-
 .../java/org/apache/ignite/cli/ui/Spinner.java     |    8 +-
 .../org/apache/ignite/cli/ui/TerminalFactory.java  |    7 +-
 .../org/apache/ignite/cli/AbstractCliTest.java     |    4 +-
 .../apache/ignite/cli/IgniteCliInterfaceTest.java  |  472 ++--
 .../cli/builtins/init/InitIgniteCommandTest.java   |   65 +-
 .../ignite/cli/builtins/init/package-info.java     |    1 +
 .../cli/builtins/module/ModuleMangerTest.java      |  105 +-
 .../ignite/cli/builtins/module/package-info.java   |    1 +
 .../java/org/apache/ignite/cli/package-info.java   |    1 +
 .../org/apache/ignite/cli/ui/ProgressBarTest.java  |   48 +-
 .../java/org/apache/ignite/cli/ui/SpinnerTest.java |   12 +-
 .../org/apache/ignite/cli/ui/package-info.java     |    1 +
 .../client/proto/query/IgniteQueryErrorCode.java   |    4 +-
 .../proto/query/event/BatchExecuteRequest.java     |   14 +-
 .../proto/query/event/BatchExecuteResult.java      |   17 +-
 .../proto/query/event/ClientMessageUtils.java      |   10 +-
 .../client/proto/query/event/JdbcColumnMeta.java   |  239 +-
 .../proto/query/event/JdbcMetaColumnsRequest.java  |   13 +-
 .../proto/query/event/JdbcMetaColumnsResult.java   |   21 +-
 .../query/event/JdbcMetaPrimaryKeysRequest.java    |   11 +-
 .../query/event/JdbcMetaPrimaryKeysResult.java     |   15 +-
 .../proto/query/event/JdbcMetaSchemasRequest.java  |    9 +-
 .../proto/query/event/JdbcMetaSchemasResult.java   |   21 +-
 .../proto/query/event/JdbcMetaTablesRequest.java   |   22 +-
 .../proto/query/event/JdbcMetaTablesResult.java    |   18 +-
 .../proto/query/event/JdbcPrimaryKeyMeta.java      |   41 +-
 .../query/event/JdbcQueryMetadataRequest.java      |    9 +-
 .../client/proto/query/event/JdbcTableMeta.java    |   38 +-
 .../ignite/client/proto/query/event/Query.java     |   11 +-
 .../proto/query/event/QueryCloseRequest.java       |    9 +-
 .../client/proto/query/event/QueryCloseResult.java |    5 +-
 .../proto/query/event/QueryExecuteRequest.java     |   17 +-
 .../proto/query/event/QueryExecuteResult.java      |   20 +-
 .../proto/query/event/QueryFetchRequest.java       |    9 +-
 .../client/proto/query/event/QueryFetchResult.java |   25 +-
 .../proto/query/event/QuerySingleResult.java       |   29 +-
 .../ignite/client/proto/query/event/Response.java  |   19 +-
 .../client/proto/ClientMessageDecoder.java         |   35 +-
 .../internal/client/proto/ClientMessagePacker.java |  299 ++-
 .../client/proto/ClientMessageUnpacker.java        |  187 +-
 .../internal/client/proto/ProtocolVersion.java     |   30 +-
 .../ignite/internal/client/proto/package-info.java |    1 +
 .../client/proto/ClientMessageDecoderTest.java     |   15 +-
 .../proto/ClientMessagePackerUnpackerTest.java     |  192 +-
 ...ntHandlerTest.java => ItClientHandlerTest.java} |  116 +-
 .../ignite/client/handler/ClientContext.java       |    8 +-
 .../ignite/client/handler/ClientHandlerModule.java |   56 +-
 .../handler/ClientInboundMessageHandler.java       |   53 +-
 .../client/handler/JdbcQueryEventHandlerImpl.java  |  241 +-
 .../apache/ignite/client/handler/package-info.java |    1 +
 .../requests/sql/ClientSqlCloseRequest.java        |   10 +-
 .../sql/ClientSqlColumnMetadataRequest.java        |   10 +-
 .../requests/sql/ClientSqlExecuteBatchRequest.java |   10 +-
 .../requests/sql/ClientSqlExecuteRequest.java      |    4 +-
 .../requests/sql/ClientSqlFetchRequest.java        |   10 +-
 .../sql/ClientSqlPrimaryKeyMetadataRequest.java    |   10 +-
 .../sql/ClientSqlQueryMetadataRequest.java         |   10 +-
 .../sql/ClientSqlSchemasMetadataRequest.java       |   10 +-
 .../sql/ClientSqlTableMetadataRequest.java         |   10 +-
 .../handler/requests/sql/JdbcMetadataCatalog.java  |  231 +-
 .../client/handler/requests/sql/package-info.java  |    1 +
 .../requests/table/ClientSchemasGetRequest.java    |   16 +-
 .../handler/requests/table/ClientTableCommon.java  |  359 +--
 .../requests/table/ClientTableDropRequest.java     |    2 +-
 .../requests/table/ClientTableGetRequest.java      |    9 +-
 .../requests/table/ClientTablesGetRequest.java     |    2 +-
 .../table/ClientTupleContainsKeyRequest.java       |   10 +-
 .../table/ClientTupleDeleteAllExactRequest.java    |   12 +-
 .../table/ClientTupleDeleteAllRequest.java         |   12 +-
 .../table/ClientTupleDeleteExactRequest.java       |   10 +-
 .../requests/table/ClientTupleDeleteRequest.java   |   10 +-
 .../requests/table/ClientTupleGetAllRequest.java   |   12 +-
 .../table/ClientTupleGetAndDeleteRequest.java      |   12 +-
 .../table/ClientTupleGetAndReplaceRequest.java     |   12 +-
 .../ClientTupleGetAndReplaceSchemalessRequest.java |   12 +-
 .../table/ClientTupleGetAndUpsertRequest.java      |   12 +-
 .../ClientTupleGetAndUpsertSchemalessRequest.java  |   12 +-
 .../requests/table/ClientTupleGetRequest.java      |   12 +-
 .../table/ClientTupleInsertAllRequest.java         |   12 +-
 .../ClientTupleInsertAllSchemalessRequest.java     |   12 +-
 .../requests/table/ClientTupleInsertRequest.java   |   10 +-
 .../table/ClientTupleInsertSchemalessRequest.java  |   10 +-
 .../table/ClientTupleReplaceExactRequest.java      |   12 +-
 .../ClientTupleReplaceExactSchemalessRequest.java  |   10 +-
 .../requests/table/ClientTupleReplaceRequest.java  |   10 +-
 .../table/ClientTupleReplaceSchemalessRequest.java |   10 +-
 .../table/ClientTupleUpsertAllRequest.java         |    8 +-
 .../ClientTupleUpsertAllSchemalessRequest.java     |    8 +-
 .../requests/table/ClientTupleUpsertRequest.java   |    8 +-
 .../table/ClientTupleUpsertSchemalessRequest.java  |    8 +-
 .../handler/requests/table/package-info.java       |    1 +
 .../org/apache/ignite/client/IgniteClient.java     |   40 +-
 .../ignite/client/IgniteClientAddressFinder.java   |   10 +-
 .../IgniteClientAuthenticationException.java       |    2 +-
 .../client/IgniteClientAuthorizationException.java |    2 +-
 .../ignite/client/IgniteClientConfiguration.java   |    6 +-
 .../client/IgniteClientConnectionException.java    |    2 +-
 .../ignite/client/IgniteClientException.java       |    8 +-
 ...ClientFeatureNotSupportedByServerException.java |    2 +-
 .../org/apache/ignite/client/package-info.java     |    1 +
 .../ignite/internal/client/ClientChannel.java      |    9 +-
 .../client/ClientChannelConfiguration.java         |    2 +-
 .../ignite/internal/client/HostAndPortRange.java   |   84 +-
 .../client/IgniteClientConfigurationImpl.java      |   27 +-
 .../internal/client/PayloadInputChannel.java       |    3 +-
 .../internal/client/PayloadOutputChannel.java      |    5 +-
 .../internal/client/ProtocolBitmaskFeature.java    |   13 +-
 .../ignite/internal/client/ProtocolContext.java    |    6 +-
 .../ignite/internal/client/ReliableChannel.java    |  186 +-
 .../ignite/internal/client/TcpClientChannel.java   |   93 +-
 .../ignite/internal/client/TcpIgniteClient.java    |   22 +-
 .../internal/client/io/ClientConnection.java       |    3 +-
 .../client/io/ClientConnectionMultiplexer.java     |    7 +-
 .../internal/client/io/ClientMessageHandler.java   |    2 +-
 .../client/io/netty/NettyClientConnection.java     |   16 +-
 .../io/netty/NettyClientConnectionMultiplexer.java |   26 +-
 .../client/io/netty/NettyClientMessageHandler.java |   12 +-
 .../client/query/JdbcClientQueryEventHandler.java  |   29 +-
 .../ignite/internal/client/table/ClientColumn.java |    9 +-
 .../client/table/ClientKeyValueBinaryView.java     |  132 +-
 .../client/table/ClientRecordBinaryView.java       |  222 +-
 .../ignite/internal/client/table/ClientSchema.java |    9 +-
 .../ignite/internal/client/table/ClientTable.java  |  303 ++-
 .../ignite/internal/client/table/ClientTables.java |   43 +-
 .../ignite/internal/client/table/ClientTuple.java  |  147 +-
 .../ignite/internal/jdbc/ConnectionProperties.java |    4 +-
 .../internal/jdbc/ConnectionPropertiesImpl.java    |  356 +--
 .../ignite/internal/jdbc/JdbcConnection.java       |  375 +--
 .../ignite/internal/jdbc/JdbcDatabaseMetadata.java | 1767 +++++++------
 .../internal/jdbc/JdbcPreparedStatement.java       |  390 +--
 .../apache/ignite/internal/jdbc/JdbcResultSet.java | 1327 ++++++----
 .../internal/jdbc/JdbcResultSetMetadata.java       |  129 +-
 .../apache/ignite/internal/jdbc/JdbcStatement.java |  468 ++--
 .../apache/ignite/internal/jdbc/package-info.java  |    1 +
 .../org/apache/ignite/jdbc/IgniteJdbcDriver.java   |   39 +-
 .../java/org/apache/ignite/jdbc/package-info.java  |    1 +
 .../apache/ignite/client/AbstractClientTest.java   |   80 +-
 .../client/ClientKeyValueBinaryViewTest.java       |   14 +-
 .../org/apache/ignite/client/ClientTableTest.java  |   20 +-
 .../org/apache/ignite/client/ClientTablesTest.java |    9 +-
 .../org/apache/ignite/client/ClientTupleTest.java  |  142 +-
 .../apache/ignite/client/ConfigurationTest.java    |   14 +-
 .../org/apache/ignite/client/ConnectionTest.java   |    8 +-
 .../java/org/apache/ignite/client/CustomTuple.java |  155 +-
 .../org/apache/ignite/client/ReconnectTest.java    |    9 +-
 .../org/apache/ignite/client/fakes/FakeCursor.java |   39 +-
 .../org/apache/ignite/client/fakes/FakeIgnite.java |   16 +-
 .../client/fakes/FakeIgniteQueryProcessor.java     |    9 +-
 .../ignite/client/fakes/FakeIgniteTables.java      |  147 +-
 .../ignite/client/fakes/FakeInternalTable.java     |  209 +-
 .../ignite/client/fakes/FakeSchemaRegistry.java    |   21 +-
 .../internal/client/HostAndPortRangeTest.java      |   20 +-
 .../processor/AbstractProcessorTest.java           |   46 +-
 .../configuration/processor/ConfigSet.java         |   12 +-
 .../configuration/processor/HasFieldMatcher.java   |   39 +-
 .../configuration/processor/HasMethodMatcher.java  |   38 +-
 .../{ITProcessorTest.java => ItProcessorTest.java} |  244 +-
 .../configuration/processor/ParsedClass.java       |   29 +-
 .../ErrorInternal1ConfigurationSchema.java         |    3 +-
 .../ErrorInternal2ConfigurationSchema.java         |    3 +-
 .../configuration/processor/Processor.java         |  785 +++---
 .../processor/ProcessorException.java              |    1 +
 .../internal/configuration/processor/Utils.java    |   31 +-
 .../configuration/processor/UtilsTest.java         |   15 +-
 .../ConfigurationChangeException.java              |    3 +-
 .../configuration/ConfigurationProperty.java       |   10 +-
 .../ignite/configuration/ConfigurationTree.java    |    8 +-
 .../ignite/configuration/ConfigurationValue.java   |   10 +-
 .../configuration/DirectConfigurationProperty.java |   28 +-
 .../configuration/NamedConfigurationTree.java      |   23 +-
 .../ignite/configuration/NamedListChange.java      |   18 +-
 .../apache/ignite/configuration/NamedListView.java |    8 +-
 .../org/apache/ignite/configuration/RootKey.java   |    9 +-
 .../ignite/configuration/annotation/Config.java    |   12 +-
 .../configuration/annotation/ConfigValue.java      |    8 +-
 .../annotation/ConfigurationRoot.java              |   10 +-
 .../configuration/annotation/DirectAccess.java     |   20 +-
 .../annotation/InternalConfiguration.java          |   19 +-
 .../configuration/annotation/NamedConfigValue.java |   13 +-
 .../annotation/PolymorphicConfig.java              |   10 +-
 .../annotation/PolymorphicConfigInstance.java      |   10 +-
 .../configuration/annotation/PolymorphicId.java    |   10 +-
 .../ignite/configuration/annotation/Value.java     |   19 +-
 .../configuration/annotation/package-info.java     |    1 +
 .../notifications/ConfigurationListener.java       |    6 +-
 .../ConfigurationNamedListListener.java            |   36 +-
 .../ConfigurationNotificationEvent.java            |   27 +-
 .../configuration/notifications/package-info.java  |    1 +
 .../apache/ignite/configuration/package-info.java  |    1 +
 .../configuration/validation/ExceptKeys.java       |    8 +-
 .../ignite/configuration/validation/Immutable.java |    6 +-
 .../ignite/configuration/validation/Max.java       |    6 +-
 .../ignite/configuration/validation/Min.java       |    6 +-
 .../ignite/configuration/validation/OneOf.java     |   12 +-
 .../validation/ValidationContext.java              |   14 +-
 .../configuration/validation/ValidationIssue.java  |    4 +-
 .../ignite/configuration/validation/Validator.java |   12 +-
 .../configuration/validation/package-info.java     |    1 +
 .../configuration/ConfigurationChanger.java        |  375 +--
 .../configuration/ConfigurationManager.java        |   67 +-
 .../internal/configuration/ConfigurationNode.java  |   82 +-
 .../configuration/ConfigurationRegistry.java       |  282 ++-
 .../configuration/ConfigurationTreeWrapper.java    |   18 +-
 .../DirectConfigurationTreeWrapper.java            |   19 +-
 .../configuration/DirectDynamicConfiguration.java  |   30 +-
 .../configuration/DirectDynamicProperty.java       |   36 +-
 .../DirectNamedListConfiguration.java              |   38 +-
 .../configuration/DynamicConfiguration.java        |  162 +-
 .../configuration/DynamicConfigurationChanger.java |    8 +-
 .../internal/configuration/DynamicProperty.java    |   86 +-
 .../configuration/NamedListConfiguration.java      |  126 +-
 .../internal/configuration/RootInnerNode.java      |    2 +-
 .../ignite/internal/configuration/SuperRoot.java   |   58 +-
 .../ignite/internal/configuration/TypeUtils.java   |   44 +-
 .../asm/ConfigurationAsmGenerator.java             | 2670 ++++++++++----------
 .../configuration/asm/SchemaClassesInfo.java       |    4 +-
 .../configuration/asm/StringSwitchBuilder.java     |   93 +-
 .../configuration/hocon/HoconConverter.java        |   13 +-
 .../hocon/HoconListConfigurationSource.java        |   59 +-
 .../hocon/HoconObjectConfigurationSource.java      |   88 +-
 .../hocon/HoconPrimitiveConfigurationSource.java   |   94 +-
 .../storage/ConfigurationStorage.java              |   15 +-
 .../storage/ConfigurationStorageListener.java      |    1 +
 .../internal/configuration/storage/Data.java       |    6 +-
 .../configuration/storage/StorageException.java    |    1 +
 .../configuration/tree/ConfigurationSource.java    |   22 +-
 .../configuration/tree/ConfigurationVisitor.java   |    4 +-
 .../configuration/tree/ConverterToMapVisitor.java  |   31 +-
 .../internal/configuration/tree/InnerNode.java     |   70 +-
 .../internal/configuration/tree/NamedListNode.java |  348 +--
 .../internal/configuration/tree/OrderedMap.java    |   48 +-
 .../configuration/tree/TraversableTreeNode.java    |    8 +-
 .../util/AnyNodeConfigurationVisitor.java          |   11 +-
 .../configuration/util/ConfigurationContainer.java |   15 +-
 .../configuration/util/ConfigurationFlattener.java |  152 +-
 .../util/ConfigurationNotificationEventImpl.java   |   41 +-
 .../util/ConfigurationNotificationsUtil.java       |  727 +++---
 .../configuration/util/ConfigurationUtil.java      |  600 ++---
 .../configuration/util/KeyNotFoundException.java   |    4 +-
 .../util/KeysTrackingConfigurationVisitor.java     |   92 +-
 .../validation/ExceptKeysValidator.java            |    6 +-
 .../validation/ImmutableValidator.java             |    7 +-
 .../configuration/validation/MaxValidator.java     |    5 +-
 .../configuration/validation/MemberKey.java        |   20 +-
 .../configuration/validation/MinValidator.java     |    5 +-
 .../configuration/validation/OneOfValidator.java   |   10 +-
 .../validation/ValidationContextImpl.java          |   72 +-
 .../configuration/validation/ValidationUtil.java   |  103 +-
 .../configuration/ConfigurationChangerTest.java    |  476 ++--
 .../configuration/ConfigurationRegistryTest.java   |  134 +-
 .../configuration/DirectPropertiesTest.java        |  187 +-
 .../configuration/TestConfigurationChanger.java    |   56 +-
 .../asm/ConfigurationAsmGeneratorTest.java         |  512 ++--
 .../configuration/hocon/HoconConverterTest.java    |  606 +++--
 .../ConfigurationAnyListenerTest.java              |  728 +++---
 .../notifications/ConfigurationListenerTest.java   |  751 +++---
 .../ConfigurationListenerTestUtils.java            |   85 +-
 .../internal/configuration/sample/UsageTest.java   |  132 +-
 .../storage/TestConfigurationStorage.java          |   46 +-
 .../testframework/BasicConfigurationSchema.java    |    4 +-
 .../testframework/ConfigurationExtension.java      |  188 +-
 .../testframework/ConfigurationExtensionTest.java  |   74 +-
 .../testframework/ExtendedConfigurationSchema.java |    4 +-
 .../testframework/InjectConfiguration.java         |   12 +-
 .../configuration/tree/ConfigurationArrayTest.java |  142 +-
 .../tree/ConstructableTreeNodeTest.java            |   94 +-
 .../configuration/tree/NamedListNodeTest.java      |  399 +--
 .../configuration/tree/OrderedMapTest.java         |    6 +-
 .../tree/TraversableTreeNodeTest.java              |  163 +-
 .../configuration/util/ConfigurationUtilTest.java  |  925 +++----
 .../validation/OneOfValidatorTest.java             |   34 +-
 .../validation/ValidationUtilTest.java             |   73 +-
 .../org/apache/ignite/internal/manager/Event.java  |    1 +
 .../ignite/internal/manager/EventListener.java     |   12 +-
 .../ignite/internal/manager/EventParameters.java   |    4 +-
 .../ignite/internal/manager/IgniteComponent.java   |   13 +-
 .../internal/manager/ListenerRemovedException.java |    2 +
 .../apache/ignite/internal/manager/Producer.java   |   46 +-
 .../ignite/internal/thread/IgniteThread.java       |   23 +-
 .../ignite/internal/thread/NamedThreadFactory.java |   26 +-
 .../internal/thread/StripedThreadPoolExecutor.java |  161 +-
 .../internal/tostring/CircularStringBuilder.java   |   71 +-
 .../ignite/internal/tostring/ClassDescriptor.java  |   15 +-
 .../ignite/internal/tostring/FieldDescriptor.java  |   87 +-
 .../internal/tostring/IgniteToStringBuilder.java   | 2079 +++++++--------
 .../internal/tostring/IgniteToStringExclude.java   |    5 +-
 .../internal/tostring/IgniteToStringInclude.java   |   12 +-
 .../internal/tostring/IgniteToStringOrder.java     |    7 +-
 .../org/apache/ignite/internal/tostring/S.java     |    4 +-
 .../tostring/SensitiveDataLoggingPolicy.java       |    2 +-
 ...Length.java => StringBuilderLimitedLength.java} |  110 +-
 .../apache/ignite/internal/util/ArrayFactory.java  |    4 +-
 .../apache/ignite/internal/util/ArrayUtils.java    |  188 +-
 .../org/apache/ignite/internal/util/ByteUtils.java |   27 +-
 .../apache/ignite/internal/util/Cancellable.java   |    7 +-
 .../ignite/internal/util/CollectionUtils.java      |  179 +-
 .../ignite/internal/util/FeatureChecker.java       |   28 +-
 .../apache/ignite/internal/util/GridUnsafe.java    | 1506 +++++------
 .../ignite/internal/util/IgniteIntIterator.java    |    8 +-
 .../apache/ignite/internal/util/IgniteIntList.java |  231 +-
 .../ignite/internal/util/IgniteSpinBusyLock.java   |   27 +-
 .../internal/util/IgniteSpinReadWriteLock.java     |  144 +-
 .../apache/ignite/internal/util/IgniteUtils.java   |  387 +--
 .../java/org/apache/ignite/lang/ByteArray.java     |   30 +-
 .../java/org/apache/ignite/lang/IgniteBiTuple.java |  117 +-
 .../lang/IgniteInternalCheckedException.java       |   12 +-
 .../ignite/lang/IgniteInternalException.java       |    8 +-
 .../java/org/apache/ignite/lang/IgniteLogger.java  |  101 +-
 .../apache/ignite/lang/IgniteStringBuilder.java    |  127 +-
 .../apache/ignite/lang/IgniteSystemProperties.java |  144 +-
 .../java/org/apache/ignite/lang/IgniteUuid.java    |   45 +-
 .../apache/ignite/lang/JavaLoggerFormatter.java    |   39 +-
 .../apache/ignite/lang/LoggerMessageHelper.java    |  187 +-
 .../apache/ignite/lang/NodeStoppingException.java  |    9 +-
 .../java/org/apache/ignite/lang/package-info.java  |    1 +
 .../extensions/communication/package-info.java     |    1 +
 .../internal/testframework/IgniteAbstractTest.java |   30 +-
 .../internal/testframework/IgniteTestUtils.java    |  113 +-
 .../testframework/SystemPropertiesExtension.java   |   45 +-
 .../testframework/SystemPropertiesList.java        |    4 +-
 .../internal/testframework/WithSystemProperty.java |   18 +-
 .../internal/testframework/WorkDirectory.java      |    4 +-
 .../testframework/WorkDirectoryExtension.java      |  102 +-
 .../testframework/WorkDirectoryExtensionTest.java  |  146 +-
 .../matchers/CompletableFutureMatcher.java         |   23 +-
 .../tostring/CircularStringBuilderSelfTest.java    |   43 +-
 .../tostring/IgniteToStringBuilderSelfTest.java    |  452 ++--
 .../tostring/SensitiveDataToStringTest.java        |   80 +-
 .../ignite/internal/util/CollectionUtilsTest.java  |   67 +-
 .../internal/util/IgniteIntListSelfTest.java       |   61 +-
 .../internal/util/IgniteSpinReadWriteLockTest.java |  212 +-
 .../ignite/internal/util/IgniteUtilsTest.java      |   14 +-
 .../org/apache/ignite/lang/LoggerHelperTest.java   |  105 +-
 ...va => ItMetaStorageServicePersistenceTest.java} |   87 +-
 ...viceTest.java => ItMetaStorageServiceTest.java} |  403 +--
 .../metastorage/client/CompactedException.java     |    6 +-
 .../internal/metastorage/client/Condition.java     |   70 +-
 .../internal/metastorage/client/Conditions.java    |    4 +-
 .../internal/metastorage/client/CursorImpl.java    |   63 +-
 .../internal/metastorage/client/EntryEvent.java    |   23 +-
 .../internal/metastorage/client/EntryImpl.java     |   54 +-
 .../metastorage/client/MetaStorageService.java     |  112 +-
 .../metastorage/client/MetaStorageServiceImpl.java |  269 +-
 .../internal/metastorage/client/Operation.java     |   23 +-
 .../client/OperationTimeoutException.java          |    5 +-
 .../internal/metastorage/client/Operations.java    |    6 +-
 .../internal/metastorage/client/WatchEvent.java    |    4 +-
 .../internal/metastorage/client/WatchListener.java |    7 +-
 .../internal/metastorage/client/package-info.java  |    1 +
 .../metastorage/common/command/ConditionInfo.java  |    6 +-
 .../metastorage/common/command/GetAllCommand.java  |   15 +-
 .../common/command/GetAndPutAllCommand.java        |   10 +-
 .../common/command/GetAndPutCommand.java           |   10 +-
 .../common/command/GetAndRemoveAllCommand.java     |    9 +-
 .../common/command/GetAndRemoveCommand.java        |    7 +-
 .../metastorage/common/command/GetCommand.java     |    8 +-
 .../metastorage/common/command/InvokeCommand.java  |    2 +-
 .../metastorage/common/command/OperationInfo.java  |    4 +-
 .../metastorage/common/command/PutAllCommand.java  |    3 +-
 .../metastorage/common/command/PutCommand.java     |   10 +-
 .../metastorage/common/command/RangeCommand.java   |   54 +-
 .../common/command/RemoveAllCommand.java           |    6 +-
 .../metastorage/common/command/RemoveCommand.java  |    3 +-
 .../common/command/SingleEntryResponse.java        |   12 +-
 .../common/command/WatchExactKeysCommand.java      |   29 +-
 .../common/command/WatchRangeKeysCommand.java      |   44 +-
 .../common/command/cursor/CursorCloseCommand.java  |    3 +-
 .../command/cursor/CursorHasNextCommand.java       |    3 +-
 .../common/command/cursor/CursorNextCommand.java   |    3 +-
 .../common/command/cursor/CursorsCloseCommand.java |    7 +-
 .../internal/metastorage/common/package-info.java  |    1 +
 .../metastorage/server/AbstractCondition.java      |    3 +-
 .../metastorage/server/CompactedException.java     |    6 +-
 .../internal/metastorage/server/Condition.java     |    4 +-
 .../ignite/internal/metastorage/server/Entry.java  |   64 +-
 .../metastorage/server/ExistenceCondition.java     |   14 +-
 .../metastorage/server/KeyValueStorage.java        |   39 +-
 .../internal/metastorage/server/Operation.java     |   27 +-
 .../metastorage/server/RevisionCondition.java      |   25 +-
 .../metastorage/server/TombstoneCondition.java     |    6 +-
 .../ignite/internal/metastorage/server/Value.java  |    2 +-
 .../metastorage/server/ValueCondition.java         |   13 +-
 .../internal/metastorage/server/WatchEvent.java    |    4 +-
 .../server/persistence/RangeCursor.java            |   52 +-
 ...lueStorage.java => RocksDbKeyValueStorage.java} |  824 +++---
 .../server/persistence/RocksStorageUtils.java      |   34 +-
 .../server/persistence/WatchCursor.java            |   80 +-
 .../server/raft/MetaStorageListener.java           |  203 +-
 .../server/AbstractKeyValueStorageTest.java        |  661 ++---
 .../metastorage/server/ExistenceConditionTest.java |    8 +-
 .../metastorage/server/RevisionConditionTest.java  |    8 +-
 .../server/RocksDbKeyValueStorageTest.java         |   11 +-
 .../server/SimpleInMemoryKeyValueStorage.java      |  315 ++-
 .../server/SimpleInMemoryKeyValueStorageTest.java  |    3 +-
 .../metastorage/server/TombstoneConditionTest.java |    8 +-
 .../metastorage/server/ValueConditionTest.java     |   10 +-
 .../internal/metastorage/MetaStorageManager.java   |  547 ++--
 .../metastorage/watch/AggregatedWatch.java         |    7 +-
 .../internal/metastorage/watch/KeyCriterion.java   |  152 +-
 .../metastorage/watch/WatchAggregator.java         |   61 +-
 .../internal/metastorage/WatchAggregatorTest.java  |   80 +-
 ...java => ItTransferableObjectProcessorTest.java} |   64 +-
 .../network/processor/InheritedMessageClash.java   |    1 -
 .../internal/network/processor/MessageClass.java   |   51 +-
 .../network/processor/MessageGroupWrapper.java     |    5 +-
 .../network/processor/ProcessingException.java     |    8 +-
 .../processor/TransferableObjectProcessor.java     |   76 +-
 .../internal/network/processor/TypeUtils.java      |   30 +-
 .../messages/MessageBuilderGenerator.java          |   70 +-
 .../messages/MessageFactoryGenerator.java          |   32 +-
 .../processor/messages/MessageImplGenerator.java   |  238 +-
 .../serialization/BaseMethodNameResolver.java      |   43 +-
 .../MessageCollectionItemTypeConverter.java        |   23 +-
 .../MessageDeserializerGenerator.java              |  128 +-
 .../serialization/MessageReaderMethodResolver.java |   67 +-
 .../serialization/MessageSerializerGenerator.java  |   88 +-
 .../serialization/MessageWriterMethodResolver.java |   77 +-
 .../RegistryInitializerGenerator.java              |   42 +-
 .../SerializationFactoryGenerator.java             |   84 +-
 .../ignite/network/AbstractClusterService.java     |   24 +-
 .../ignite/network/AbstractMessagingService.java   |   16 +-
 .../ignite/network/AbstractTopologyService.java    |    3 +-
 .../ignite/network/ClusterLocalConfiguration.java  |    5 +-
 .../org/apache/ignite/network/ClusterNode.java     |   22 +-
 .../org/apache/ignite/network/ClusterService.java  |    7 +-
 .../ignite/network/ClusterServiceFactory.java      |    7 +-
 .../apache/ignite/network/MessagingService.java    |   40 +-
 .../org/apache/ignite/network/NetworkAddress.java  |   20 +-
 .../network/NetworkConfigurationException.java     |    2 +-
 .../org/apache/ignite/network/NetworkMessage.java  |   15 +-
 .../ignite/network/NetworkMessageHandler.java      |    6 +-
 .../ignite/network/TopologyEventHandler.java       |    5 +-
 .../org/apache/ignite/network/TopologyService.java |    3 +-
 .../ignite/network/annotations/MessageGroup.java   |   31 +-
 .../ignite/network/annotations/Transferable.java   |   16 +-
 .../ignite/network/annotations/package-info.java   |    1 +
 .../org/apache/ignite/network/package-info.java    |    1 +
 .../serialization/MessageMappingException.java     |    2 +-
 .../network/serialization/MessageReader.java       |   23 +-
 .../serialization/MessageSerializationFactory.java |    3 +-
 .../MessageSerializationRegistry.java              |   28 +-
 .../network/serialization/MessageSerializer.java   |    2 +-
 .../network/serialization/MessageWriter.java       |   78 +-
 .../ignite/network/serialization/package-info.java |    1 +
 .../apache/ignite/network/NetworkAddressTest.java  |    6 +-
 ...nagerTest.java => ItConnectionManagerTest.java} |   56 +-
 ...shakeTest.java => ItRecoveryHandshakeTest.java} |  158 +-
 ...deRestartsTest.java => ItNodeRestartsTest.java} |   42 +-
 ...t.java => ItScaleCubeNetworkMessagingTest.java} |  168 +-
 .../TestScaleCubeClusterServiceFactory.java        |   16 +-
 .../ignite/network/scalecube/package-info.java     |    1 +
 .../ignite/utils/ClusterServiceTestUtils.java      |  114 +-
 .../network/direct/DirectMarshallingUtils.java     |    5 +-
 .../network/direct/DirectMessageReader.java        |  123 +-
 .../network/direct/DirectMessageWriter.java        |  129 +-
 .../network/direct/state/DirectMessageState.java   |   10 +-
 .../direct/stream/DirectByteBufferStream.java      |   44 +-
 .../stream/DirectByteBufferStreamImplV1.java       |  917 ++++---
 .../network/handshake/HandshakeException.java      |    2 +-
 .../network/handshake/HandshakeManager.java        |    2 +-
 .../internal/network/message/ScaleCubeMessage.java |    6 +-
 .../internal/network/netty/ConnectionManager.java  |  194 +-
 .../internal/network/netty/HandshakeHandler.java   |   22 +-
 .../internal/network/netty/InboundDecoder.java     |   32 +-
 .../netty/IoExceptionSuppressingHandler.java       |    7 +-
 .../internal/network/netty/MessageHandler.java     |    9 +-
 .../network/netty/NamedNioEventLoopGroup.java      |   11 +-
 .../ignite/internal/network/netty/NettyClient.java |  101 +-
 .../ignite/internal/network/netty/NettySender.java |    6 +-
 .../ignite/internal/network/netty/NettyServer.java |  361 +--
 .../ignite/internal/network/netty/NettyUtils.java  |   31 +-
 .../internal/network/netty/OutboundEncoder.java    |   35 +-
 .../recovery/RecoveryClientHandshakeManager.java   |   41 +-
 .../recovery/RecoveryServerHandshakeManager.java   |   35 +-
 .../network/MessageSerializationRegistryImpl.java  |   20 +-
 .../apache/ignite/network/NodeFinderFactory.java   |   13 +-
 .../org/apache/ignite/network/package-info.java    |    1 +
 .../scalecube/DelegatingTransportFactory.java      |   44 +-
 .../scalecube/ScaleCubeClusterServiceFactory.java  |  107 +-
 .../ScaleCubeDirectMarshallerTransport.java        |   93 +-
 .../scalecube/ScaleCubeMessagingService.java       |  110 +-
 .../scalecube/ScaleCubeTopologyService.java        |   35 +-
 .../ignite/network/scalecube/package-info.java     |    1 +
 .../ignite/internal/network/AllTypesMessage.java   |   48 +-
 .../internal/network/AllTypesMessageGenerator.java |  117 +-
 .../internal/network/AllTypesMessageTest.java      |   10 +-
 .../internal/network/netty/InboundDecoderTest.java |   64 +-
 .../netty/IoExceptionSuppressingHandlerTest.java   |   16 +-
 .../internal/network/netty/NettyClientTest.java    |   67 +-
 .../internal/network/netty/NettyServerTest.java    |  219 +-
 .../internal/network/processor/EmptyMessage.java   |    4 +-
 .../network/processor/EmptyMessageTest.java        |   14 +-
 .../network/processor/InheritedMessage.java        |   24 +-
 .../network/processor/InheritedMessageTest.java    |   43 +-
 .../network/processor/NetworkMessage1.java}        |   16 +-
 .../network/processor/NetworkMessage2.java}        |   14 +-
 .../processor/SerializationOrderMessage.java       |   24 +-
 .../network/processor/SerializationOrderTest.java  |   55 +-
 .../network/AbstractMessagingServiceTest.java      |   31 +-
 .../MessageSerializationRegistryImplTest.java      |   59 +-
 .../apache/ignite/network/TestMessageTypes.java    |   12 +-
 .../java/org/apache/ignite/raft/client/Peer.java   |   22 +-
 .../ignite/raft/client/service/CommandClosure.java |    3 +-
 .../raft/client/service/RaftGroupListener.java     |   23 +-
 .../raft/client/service/RaftGroupService.java      |  131 +-
 .../raft/{ITLozaTest.java => ItLozaTest.java}      |   75 +-
 ...st.java => ItAbstractListenerSnapshotTest.java} |  120 +-
 ...ITCliServiceTest.java => ItCliServiceTest.java} |    4 +-
 .../core/{ITNodeTest.java => ItNodeTest.java}      |    6 +-
 .../apache/ignite/raft/server/CounterListener.java |   21 +-
 .../ignite/raft/server/CounterSnapshotFile.java    |    5 +-
 ...rverTest.java => ItJraftCounterServerTest.java} |  144 +-
 ...verTest.java => ItSimpleCounterServerTest.java} |   32 +-
 .../ignite/raft/server/RaftServerAbstractTest.java |   27 +-
 .../java/org/apache/ignite/internal/raft/Loza.java |  124 +-
 .../ignite/internal/raft/server/RaftServer.java    |   13 +-
 .../{JRaftServerImpl.java => JraftServerImpl.java} |  180 +-
 .../jraft/rpc/impl/ActionRequestProcessor.java     |   10 +-
 .../ignite/disruptor/StripedDisruptorTest.java     |   87 +-
 .../internal/raft/server/impl/RaftServerImpl.java  |  234 +-
 .../java/org/apache/ignite/rest/ErrorResult.java   |    2 +-
 .../java/org/apache/ignite/rest/RestModule.java    |  170 +-
 .../apache/ignite/rest/netty/RestApiHandler.java   |   46 +-
 .../ignite/rest/netty/RestApiHttpRequest.java      |    6 +-
 .../ignite/rest/netty/RestApiHttpResponse.java     |   22 +-
 .../ignite/rest/netty/RestApiInitializer.java      |    3 +-
 .../org/apache/ignite/rest/netty/package-info.java |    1 +
 .../java/org/apache/ignite/rest/package-info.java  |    1 +
 .../presentation/ConfigurationPresentation.java    |    6 +-
 .../rest/presentation/hocon/HoconPresentation.java |   42 +-
 .../rest/presentation/hocon/package-info.java      |    1 +
 .../ignite/rest/presentation/package-info.java     |    1 +
 .../java/org/apache/ignite/rest/routes/Route.java  |   50 +-
 .../java/org/apache/ignite/rest/routes/Router.java |   30 +-
 .../apache/ignite/rest/routes/package-info.java    |    1 +
 .../ignite/rest/netty/RestApiHttpResponseTest.java |   20 +-
 .../ConfigurationPresentationTest.java             |  134 +-
 .../org/apache/ignite/rest/routes/RouteTest.java   |   32 +-
 .../ignite/internal/rocksdb/ColumnFamily.java      |   29 +-
 .../apache/ignite/internal/rocksdb/RocksUtils.java |   38 +-
 .../ignite/internal/{ITUtils.java => ItUtils.java} |    4 +-
 .../calcite/AbstractBasicIntegrationTest.java      |  203 +-
 .../internal/calcite/ITOrToUnionRuleTest.java      |  233 --
 .../calcite/ITProjectScanMergeRuleTest.java        |  159 --
 .../internal/calcite/ITSecondaryIndexTest.java     |  833 ------
 ...ITAggregatesTest.java => ItAggregatesTest.java} |  163 +-
 .../{ITDataTypesTest.java => ItDataTypesTest.java} |   46 +-
 .../{ITFunctionsTest.java => ItFunctionsTest.java} |  234 +-
 ...ITIndexSpoolTest.java => ItIndexSpoolTest.java} |   74 +-
 .../{ITMetadataTest.java => ItMetadataTest.java}   |   94 +-
 ...xedQueriesTest.java => ItMixedQueriesTest.java} |  325 +--
 .../internal/calcite/ItOrToUnionRuleTest.java      |  238 ++
 .../calcite/ItProjectScanMergeRuleTest.java        |  161 ++
 .../internal/calcite/ItSecondaryIndexTest.java     |  929 +++++++
 .../calcite/{ITSetOpTest.java => ItSetOpTest.java} |  178 +-
 ...AggregateTest.java => ItSortAggregateTest.java} |   81 +-
 .../ignite/internal/calcite/util/Commons.java      |    2 +-
 .../ignite/internal/calcite/util/QueryChecker.java |  379 +--
 ... ItDistributedConfigurationPropertiesTest.java} |  279 +-
 ... => ItDistributedConfigurationStorageTest.java} |  163 +-
 .../runner/app/AbstractSchemaChangeTest.java       |  285 ++-
 .../ignite/internal/runner/app/ITIgnitionTest.java |  213 --
 .../runner/app/ITSchemaChangeKVViewTest.java       |  306 ---
 .../runner/app/ITSchemaChangeTableViewTest.java    |  332 ---
 .../internal/runner/app/ITTableCreationTest.java   |  264 --
 ...ChangesTest.java => ItBaselineChangesTest.java} |   83 +-
 ...onTest.java => ItDynamicTableCreationTest.java} |  341 +--
 ...startTest.java => ItIgniteNodeRestartTest.java} |   97 +-
 .../ignite/internal/runner/app/ItIgnitionTest.java |  217 ++
 ...Test.java => ItLiveSchemaChangeKvViewTest.java} |  144 +-
 ...eTest.java => ItLiveSchemaChangeTableTest.java} |  245 +-
 ...readsLeftTest.java => ItNoThreadsLeftTest.java} |   82 +-
 .../runner/app/ItSchemaChangeKvViewTest.java       |  281 ++
 .../runner/app/ItSchemaChangeTableViewTest.java    |  305 +++
 .../internal/runner/app/ItTableCreationTest.java   |  274 ++
 .../{ITTablesApiTest.java => ItTablesApiTest.java} |  167 +-
 ...onTest.java => ItThinClientConnectionTest.java} |   85 +-
 .../runner/app/PlatformTestNodeRunner.java         |   50 +-
 .../runner/app/jdbc/AbstractJdbcSelfTest.java      |    9 +-
 ...st.java => ItJdbcConnectionPropertiesTest.java} |    8 +-
 ...SelfTest.java => ItJdbcConnectionSelfTest.java} |  382 ++-
 ...taSelfTest.java => ItJdbcMetadataSelfTest.java} |   82 +-
 ...tSelfTest.java => ItJdbcResultSetSelfTest.java} |  174 +-
 ...tSelfTest.java => ItJdbcStatementSelfTest.java} |  150 +-
 .../org/apache/ignite/app/IgniteCliRunner.java     |   55 +-
 .../org/apache/ignite/internal/app/IgniteImpl.java |  394 +--
 .../apache/ignite/internal/app/IgnitionImpl.java   |   93 +-
 .../storage/DistributedConfigurationStorage.java   |  223 +-
 .../storage/LocalConfigurationStorage.java         |   38 +-
 .../org/apache/ignite/utils/IgniteProperties.java  |   17 +-
 .../storage/ConfigurationStorageTest.java          |   18 +-
 .../DistributedConfigurationStorageTest.java       |  107 +-
 .../storage/LocalConfigurationStorageTest.java     |   15 +-
 .../ignite/internal/schema/AssemblyException.java  |    6 +-
 .../apache/ignite/internal/schema/BinaryRow.java   |   17 +-
 .../ignite/internal/schema/BitmaskNativeType.java  |   34 +-
 .../ignite/internal/schema/ByteBufferRow.java      |   54 +-
 .../org/apache/ignite/internal/schema/Column.java  |  104 +-
 .../org/apache/ignite/internal/schema/Columns.java |  102 +-
 .../ignite/internal/schema/DecimalNativeType.java  |   25 +-
 .../apache/ignite/internal/schema/NativeType.java  |   59 +-
 .../ignite/internal/schema/NativeTypeSpec.java     |  125 +-
 .../apache/ignite/internal/schema/NativeTypes.java |  163 +-
 .../ignite/internal/schema/NumberNativeType.java   |   35 +-
 .../ignite/internal/schema/SchemaDescriptor.java   |   29 +-
 .../ignite/internal/schema/SchemaException.java    |    2 +-
 .../schema/SchemaModificationException.java        |    2 +-
 .../ignite/internal/schema/SchemaRegistry.java     |   29 +-
 .../apache/ignite/internal/schema/SchemaUtils.java |   86 +-
 .../ignite/internal/schema/TemporalNativeType.java |   13 +-
 .../ignite/internal/schema/VarlenNativeType.java   |   10 +-
 .../configuration/ColumnTypeValidatorImpl.java     |   29 +-
 .../SchemaConfigurationConverter.java              |  118 +-
 .../configuration/SchemaDescriptorConverter.java   |  114 +-
 .../schema/configuration/TableValidatorImpl.java   |   80 +-
 .../schema/definition/AbstractSchemaObject.java    |   10 +-
 .../schema/definition/ColumnDefinitionImpl.java    |   21 +-
 .../schema/definition/TableDefinitionImpl.java     |   39 +-
 .../definition/builder/AbstractIndexBuilder.java   |    5 +-
 .../builder/ColumnDefinitionBuilderImpl.java       |   16 +-
 .../builder/HashIndexDefinitionBuilderImpl.java    |    9 +-
 .../builder/PartialIndexDefinitionBuilderImpl.java |   34 +-
 .../builder/PrimaryKeyDefinitionBuilderImpl.java   |   22 +-
 .../builder/SortedIndexDefinitionBuilderImpl.java  |   39 +-
 .../builder/TableDefinitionBuilderImpl.java        |   95 +-
 .../definition/index/HashIndexDefinitionImpl.java  |   12 +-
 .../index/IndexColumnDefinitionImpl.java           |    3 +-
 .../index/PartialIndexDefinitionImpl.java          |   20 +-
 .../definition/index/PrimaryKeyDefinitionImpl.java |   17 +-
 .../index/SortedIndexColumnDefinitionImpl.java     |   11 +-
 .../index/SortedIndexDefinitionImpl.java           |   20 +-
 .../internal/schema/mapping/ColumnMapper.java      |    6 +-
 .../internal/schema/mapping/ColumnMapperImpl.java  |   19 +-
 .../internal/schema/mapping/ColumnMapping.java     |   23 +-
 .../internal/schema/marshaller/BinaryMode.java     |    2 +-
 .../internal/schema/marshaller/MarshallerUtil.java |   64 +-
 .../schema/marshaller/SerializationException.java  |    2 +-
 .../schema/marshaller/SerializerFactory.java       |    2 +-
 .../marshaller/asm/AsmSerializerGenerator.java     |  390 +--
 .../marshaller/asm/ColumnAccessCodeGenerator.java  |   20 +-
 .../asm/IdentityMarshallerCodeGenerator.java       |   35 +-
 .../marshaller/asm/MarshallerCodeGenerator.java    |   18 +-
 .../asm/ObjectMarshallerCodeGenerator.java         |  131 +-
 .../marshaller/reflection/FieldAccessor.java       |  168 +-
 .../marshaller/reflection/JavaSerializer.java      |   98 +-
 .../reflection/JavaSerializerFactory.java          |    3 +-
 .../schema/marshaller/reflection/Marshaller.java   |   78 +-
 .../schema/AbstractSchemaSerializer.java           |    7 +-
 .../schema/marshaller/schema/SchemaSerializer.java |    2 +-
 .../marshaller/schema/SchemaSerializerImpl.java    |  179 +-
 .../modification/AlterColumnBuilderImpl.java       |   18 +-
 .../modification/TableModificationBuilderImpl.java |   36 +-
 .../ignite/internal/schema/package-info.java       |    6 +-
 .../SchemaRegistrationConflictException.java       |    3 +-
 .../schema/registry/SchemaRegistryException.java   |    2 +-
 .../schema/registry/SchemaRegistryImpl.java        |   59 +-
 .../schema/registry/UpgradingRowAdapter.java       |  189 +-
 .../internal/schema/registry/package-info.java     |    1 +
 .../internal/schema/row/ExpandableByteBuf.java     |   64 +-
 .../org/apache/ignite/internal/schema/row/Row.java |  253 +-
 .../ignite/internal/schema/row/RowAssembler.java   |  686 ++---
 .../internal/schema/row/TemporalTypesHelper.java   |   87 +-
 .../ignite/internal/schema/row/VarTableFormat.java |  157 +-
 .../apache/ignite/internal/util/ObjectFactory.java |   17 +-
 .../java/org/apache/ignite/internal/util/Pair.java |    2 +-
 .../org/apache/ignite/schema/SchemaBuilders.java   |    6 +-
 .../org/apache/ignite/schema/package-info.java     |    1 +
 .../benchmarks/SerializerBenchmarkTest.java        |  122 +-
 .../internal/schema/ColumnDefinitionTest.java      |   18 +-
 .../apache/ignite/internal/schema/ColumnsTest.java |  299 +--
 .../internal/schema/ExpandableByteBufTest.java     |   26 +-
 .../ignite/internal/schema/NativeTypeTest.java     |   52 +-
 .../schema/RowAssemblerAdvancedSchemaTest.java     |  399 +--
 .../schema/RowAssemblerSimpleSchemaTest.java       |  637 ++---
 .../org/apache/ignite/internal/schema/RowTest.java |  364 +--
 .../internal/schema/SchemaConfigurationTest.java   |  140 +-
 .../internal/schema/SchemaDescriptorTest.java      |   43 +-
 .../ignite/internal/schema/TemporalTypesTest.java  |   12 +-
 .../apache/ignite/internal/schema/TestUtils.java   |   24 +-
 .../builder/ColumnDefinitionBuilderTest.java       |    6 +-
 .../builder/HashIndexDefinitionBuilderTest.java    |   10 +-
 .../builder/PartialIndexDefinitionBuilderTest.java |    4 +-
 .../PrimaryKeyDefinitionDefinitionBuilderTest.java |   14 +-
 .../builder/SortedIndexDefinitionBuilderTest.java  |    6 +-
 .../schema/builder/TableDefinitionBuilderTest.java |   18 +-
 .../SchemaConfigurationConverterTest.java          |  160 +-
 .../SchemaDescriptorConverterTest.java             |  155 +-
 .../configuration/TableValidatorImplTest.java      |   52 +-
 .../schema/marshaller/JavaSerializerTest.java      |  649 ++---
 .../marshaller/reflection/FieldAccessorTest.java   |  223 +-
 .../schema/registry/SchemaRegistryImplTest.java    |  240 +-
 .../schema/registry/UpgradingRowAdapterTest.java   |  192 +-
 .../schema/serializer/AbstractSerializerTest.java  |  100 +-
 .../ignite/internal/storage/InvokeClosure.java     |   10 +-
 .../ignite/internal/storage/PartitionStorage.java  |    9 +-
 .../ignite/internal/storage/StorageException.java  |    2 +-
 .../storage/basic/DeleteExactInvokeClosure.java    |   12 +-
 .../storage/basic/GetAndRemoveInvokeClosure.java   |   12 +-
 .../storage/basic/GetAndReplaceInvokeClosure.java  |   14 +-
 .../storage/basic/InsertInvokeClosure.java         |   12 +-
 .../storage/basic/ReplaceExactInvokeClosure.java   |   14 +-
 .../internal/storage/basic/SimpleDataRow.java      |   28 +-
 .../storage/basic/SimpleReadInvokeClosure.java     |    9 +-
 .../storage/basic/SimpleRemoveInvokeClosure.java   |    9 +-
 .../storage/basic/SimpleWriteInvokeClosure.java    |    9 +-
 .../internal/storage/engine/StorageEngine.java     |   14 +-
 .../storage/AbstractPartitionStorageTest.java      |  503 ++--
 .../basic/ConcurrentHashMapPartitionStorage.java   |  112 +-
 .../storage/rocksdb/RocksDbDataRegion.java         |   14 +-
 .../storage/rocksdb/RocksDbPartitionStorage.java   |  389 +--
 .../storage/rocksdb/RocksDbStorageEngine.java      |   22 +-
 .../storage/rocksdb/RocksDbTableStorage.java       |  173 +-
 .../storage/rocksdb/RocksDbStorageTest.java        |   36 +-
 ...dTableTest.java => ItDistributedTableTest.java} |  208 +-
 ...eScanTest.java => ItInternalTableScanTest.java} |  260 +-
 ...stenceTest.java => ItTablePersistenceTest.java} |  111 +-
 .../org/apache/ignite/binary/BinaryObjects.java    |    4 +-
 .../org/apache/ignite/binary/package-info.java     |    1 +
 .../schema/ExtendedTableConfigurationSchema.java   |    4 +-
 .../{KVMarshaller.java => KvMarshaller.java}       |    2 +-
 .../schema/marshaller/TupleMarshaller.java         |   18 +-
 .../marshaller/TupleMarshallerException.java       |    2 +-
 .../schema/marshaller/TupleMarshallerImpl.java     |  282 ++-
 .../internal/table/AbstractRowTupleAdapter.java    |  141 +-
 .../ignite/internal/table/AbstractTableView.java   |   28 +-
 .../ignite/internal/table/InternalTable.java       |   50 +-
 .../internal/table/KeyValueBinaryViewImpl.java     |  303 ++-
 .../ignite/internal/table/KeyValueViewImpl.java    |  333 +--
 .../internal/table/MutableRowTupleAdapter.java     |  154 +-
 .../internal/table/RecordBinaryViewImpl.java       |  318 ++-
 .../ignite/internal/table/RecordViewImpl.java      |  135 +-
 .../org/apache/ignite/internal/table/TableRow.java |   40 +-
 .../internal/table/distributed/TableManager.java   | 1548 ++++++------
 .../table/distributed/command/CommandUtils.java    |   31 +-
 .../distributed/command/DeleteAllCommand.java      |    4 +-
 .../table/distributed/command/DeleteCommand.java   |    6 +-
 .../distributed/command/DeleteExactAllCommand.java |    4 +-
 .../distributed/command/DeleteExactCommand.java    |    6 +-
 .../table/distributed/command/GetAllCommand.java   |    3 +-
 .../distributed/command/GetAndDeleteCommand.java   |    7 +-
 .../distributed/command/GetAndReplaceCommand.java  |    7 +-
 .../distributed/command/GetAndUpsertCommand.java   |    6 +-
 .../table/distributed/command/GetCommand.java      |    6 +-
 .../distributed/command/InsertAllCommand.java      |    3 +-
 .../table/distributed/command/InsertCommand.java   |    6 +-
 .../table/distributed/command/ReplaceCommand.java  |   11 +-
 .../distributed/command/ReplaceIfExistCommand.java |    9 +-
 .../distributed/command/UpsertAllCommand.java      |    3 +-
 .../table/distributed/command/UpsertCommand.java   |    6 +-
 .../command/response/MultiRowsResponse.java        |    1 +
 .../command/response/SingleRowResponse.java        |    7 +-
 .../distributed/command/scan/ScanCloseCommand.java |    3 +-
 .../distributed/command/scan/ScanInitCommand.java  |   15 +-
 .../command/scan/ScanRetrieveBatchCommand.java     |   16 +-
 .../table/distributed/raft/PartitionListener.java  |  141 +-
 .../distributed/storage/InternalTableImpl.java     |  241 +-
 .../internal/table/event/TableEventParameters.java |    6 +-
 .../apache/ignite/internal/table/package-info.java |    1 +
 .../TupleMarshallerFixlenOnlyBenchmark.java        |   31 +-
 .../TupleMarshallerVarlenOnlyBenchmark.java        |   47 +-
 .../org/apache/ignite/internal/table/Example.java  |  114 +-
 .../table/KeyValueBinaryViewOperationsTest.java    |  185 +-
 .../internal/table/KeyValueOperationsTest.java     |  147 +-
 .../internal/table/MutableRowTupleAdapterTest.java |  532 ++--
 .../table/RecordBinaryViewOperationsTest.java      |  306 +--
 .../internal/table/StrictSchemaOperationsTest.java |  131 +-
 .../ignite/internal/table/TableManagerTest.java    |  209 +-
 .../org/apache/ignite/internal/table/TxTest.java   |   78 +-
 .../raft/PartitionCommandListenerTest.java         |  105 +-
 .../table/impl/DummyInternalTableImpl.java         |  124 +-
 .../table/impl/DummySchemaManagerImpl.java         |   12 +-
 .../internal/table/impl/TestTupleBuilder.java      |  127 +-
 .../table/type/NumericTypesSerializerTest.java     |  254 +-
 .../org/apache/ignite/table/TupleImplTest.java     |  142 +-
 .../org/apache/ignite/internal/tx/LockManager.java |   13 +-
 .../org/apache/ignite/internal/tx/Timestamp.java   |   34 +-
 .../ignite/internal/tx/impl/HeapLockManager.java   |   91 +-
 .../internal/tx/AbstractLockManagerTest.java       |  118 +-
 .../ignite/internal/tx/HeapLockManagerTest.java    |    7 +-
 ...> ItPersistencePropertiesVaultServiceTest.java} |   36 +-
 ...Test.java => ItPersistentVaultServiceTest.java} |    9 +-
 .../apache/ignite/internal/vault/VaultEntry.java   |   14 +-
 .../apache/ignite/internal/vault/VaultManager.java |   32 +-
 .../apache/ignite/internal/vault/VaultService.java |   13 +-
 .../vault/inmemory/InMemoryVaultService.java       |   56 +-
 .../vault/persistence/PersistentVaultService.java  |   77 +-
 .../vault/persistence/RocksIteratorAdapter.java    |   25 +-
 .../ignite/internal/vault/VaultManagerTest.java    |   26 +-
 .../ignite/internal/vault/VaultServiceTest.java    |   43 +-
 .../vault/inmemory/InMemoryVaultServiceTest.java   |    3 +-
 parent/pom.xml                                     |    7 +-
 1181 files changed, 61467 insertions(+), 50204 deletions(-)

diff --git a/check-rules/checkstyle-rules.xml b/check-rules/checkstyle-rules.xml
index d1bded2..67540c8 100644
--- a/check-rules/checkstyle-rules.xml
+++ b/check-rules/checkstyle-rules.xml
@@ -18,118 +18,363 @@
 -->
 
 <!DOCTYPE module PUBLIC
-    "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
-    "http://checkstyle.org/dtds/configuration_1_3.dtd">
-<module name="Checker">
-    <property name="charset" value="UTF-8"/>
+          "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
+          "https://checkstyle.org/dtds/configuration_1_3.dtd">
 
-    <property name="fileExtensions" value="java, properties, xml"/>
-
-    <!-- Whitespaces Checks. See: http://checkstyle.sourceforge.net/config_whitespace.html -->
-    <module name="FileTabCharacter">
-        <property name="eachLine" value="true"/>
-    </module>
-
-    <!-- SuppressWarning Filter. https://checkstyle.sourceforge.io/config_filters.html#SuppressWarningsFilter -->
-    <module name="SuppressWarningsFilter" />
-
-    <module name="TreeWalker">
-        <!-- Handler for SuppressWarning Filter. https://checkstyle.sourceforge.io/config_filters.html#SuppressWarningsFilter -->
-        <module name="SuppressWarningsHolder" />
-
-        <!-- Coding Checks. See: https://checkstyle.sourceforge.io/config_coding.html -->
-        <module name="SimplifyBooleanExpression"/>
-
-        <!-- Import Checks. See: http://checkstyle.sourceforge.net/config_imports.html -->
-        <module name="UnusedImports"/>
-
-        <!-- Whitespaces: See: https://checkstyle.sourceforge.io/config_whitespace.html -->
-        <module name="WhitespaceAround">
-            <property name="allowEmptyConstructors" value="true"/>
-            <property name="allowEmptyMethods" value="true"/>
-            <property name="allowEmptyTypes" value="true"/>
-            <property name="allowEmptyLoops" value="true"/>
-            <property name="allowEmptyLambdas" value="true"/>
-            <property name="allowEmptyCatches" value="true"/>
-        </module>
-
-        <!--Modifiers Checks. See: http://checkstyle.sourceforge.net/config_modifier.html-->
-        <module name="ModifierOrder"/>
-
-        <!--Annotation checks. See: http://checkstyle.sourceforge.net/config_annotation.html-->
-        <module name="MissingOverride"/>
-
-        <!-- Empty line checks. See: http://checkstyle.sourceforge.net/config_whitespace.html#EmptyLineSeparator -->
-        <module name="EmptyLineSeparator">
-            <!-- PACKAGE_DEF excluded according to Ignite code style. -->
-            <property name="tokens" value="IMPORT, STATIC_IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF, STATIC_INIT,
-                INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF" />
-
-            <property name="allowMultipleEmptyLines" value="false" />
-            <property name="allowMultipleEmptyLinesInsideClassMembers" value="false" />
-        </module>
-
-        <!-- @Override annotations on the same line with a method declaration check. -->
-        <!--module name="org.apache.ignite.tools.checkstyle.OverrideAnnotationOnTheSameLineCheck"/-->
+<!--
+    Checkstyle configuration that checks the Google coding conventions from Google Java Style
+    that can be found at https://google.github.io/styleguide/javaguide.html
 
-        <!--
-            Checks the padding between the identifier of a method definition, constructor definition, method call, or
-            constructor invocation; and the left parenthesis of the parameter list.
-            See: https://checkstyle.sourceforge.io/config_whitespace.html#MethodParamPad
-        -->
-        <module name="MethodParamPad"/>
+    Checkstyle is very configurable. Be sure to read the documentation at
+    http://checkstyle.org (or in your downloaded distribution).
 
-        <!--
-            Checks that there is no whitespace after a token.
-            See: https://checkstyle.sourceforge.io/config_whitespace.html#NoWhitespaceAfter
-        -->
-        <module name="NoWhitespaceAfter">
-            <property name="tokens" value="AT, INC, DEC, UNARY_MINUS, UNARY_PLUS, BNOT, LNOT, DOT, ARRAY_DECLARATOR,
-                INDEX_OP, METHOD_REF"/>
-        </module>
+    To completely disable a check, just comment it out or delete it from the file.
+    To suppress certain violations please review suppression filters.
 
-        <!--
-            Checks that there is no whitespace before a token.
-            See: https://checkstyle.sourceforge.io/config_whitespace.html#NoWhitespaceBefore
-        -->
-        <module name="NoWhitespaceBefore">
-            <property name="tokens" value="COMMA, SEMI, POST_INC, POST_DEC, ELLIPSIS, METHOD_REF, GENERIC_END"/>
-        </module>
+    Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
+ -->
 
-        <module name="NoWhitespaceBefore">
-            <property name="allowLineBreaks" value="true"/>
-            <property name="tokens" value="DOT"/>
-        </module>
+<module name = "Checker">
+  <property name="charset" value="UTF-8"/>
 
-        <!--
-            Checks that the whitespace around the Generic tokens are correct.
-            See: https://checkstyle.sourceforge.io/config_whitespace.html#GenericWhitespace
-        -->
-        <module name="GenericWhitespace"/>
+  <property name="fileExtensions" value="java, properties, xml"/>
+  <!-- Excludes all 'module-info.java' files              -->
+  <!-- See https://checkstyle.org/config_filefilters.html -->
+  <module name="BeforeExecutionExclusionFileFilter">
+    <property name="fileNamePattern" value="module\-info\.java$"/>
+  </module>
+  <!-- https://checkstyle.org/config_filters.html#SuppressionFilter -->
+  <module name="SuppressionFilter">
+    <property name="file" value="${org.checkstyle.google.suppressionfilter.config}"
+           default="checkstyle-suppressions.xml" />
+    <property name="optional" value="true"/>
+  </module>
 
-        <!--
-            Checks that non-whitespace characters are separated by no more than one whitespace.
-            See: https://checkstyle.sourceforge.io/config_whitespace.html#SingleSpaceSeparator
-        -->
-        <module name="SingleSpaceSeparator"/>
+  <!-- Checks for whitespace                               -->
+  <!-- See http://checkstyle.org/config_whitespace.html -->
+  <module name="FileTabCharacter">
+    <property name="eachLine" value="true"/>
+  </module>
 
-        <!--
-            Checks that no wildcard imports used.
-            See: https://checkstyle.sourceforge.io/config_imports.html#AvoidStarImport
-        -->
-        <module name="AvoidStarImport"/>
+  <module name="LineLength">
+    <property name="fileExtensions" value="java"/>
+    <property name="max" value="140"/>
+    <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
+  </module>
 
-        <!--
-            Checks imports order.
-            See: https://checkstyle.sourceforge.io/config_imports.html#CustomImportOrder
-        -->
-        <module name="CustomImportOrder">
-            <property name="customImportOrderRules"
-                      value="STANDARD_JAVA_PACKAGE###SPECIAL_IMPORTS###THIRD_PARTY_PACKAGE###STATIC"/>
-            <property name="standardPackageRegExp" value="^java\."/>
-            <property name="specialImportsRegExp" value="^javax\."/>
-            <property name="sortImportsInGroupAlphabetically" value="true"/>
-            <property name="separateLineBetweenGroups" value="false"/>
-        </module>
+  <module name="TreeWalker">
+    <module name="OuterTypeFilename"/>
+    <module name="IllegalTokenText">
+      <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
+      <property name="format"
+               value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
+      <property name="message"
+               value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
+    </module>
+    <module name="AvoidEscapedUnicodeCharacters">
+      <property name="allowEscapesForControlCharacters" value="true"/>
+      <property name="allowByTailComment" value="true"/>
+      <property name="allowNonPrintableEscapes" value="true"/>
+    </module>
+    <module name="AvoidStarImport"/>
+    <module name="OneTopLevelClass"/>
+    <module name="NoLineWrap">
+      <property name="tokens" value="PACKAGE_DEF, IMPORT, STATIC_IMPORT"/>
+    </module>
+    <module name="EmptyBlock">
+      <property name="option" value="TEXT"/>
+      <property name="tokens"
+               value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
+    </module>
+    <module name="NeedBraces">
+      <property name="tokens"
+               value="LITERAL_DO, LITERAL_ELSE, LITERAL_FOR, LITERAL_IF, LITERAL_WHILE"/>
+    </module>
+    <module name="LeftCurly">
+      <property name="tokens"
+               value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF,
+                    INTERFACE_DEF, LAMBDA, LITERAL_CASE, LITERAL_CATCH, LITERAL_DEFAULT,
+                    LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF,
+                    LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF,
+                    OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF"/>
+    </module>
+    <module name="RightCurly">
+      <property name="id" value="RightCurlySame"/>
+      <property name="tokens"
+               value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
+                    LITERAL_DO"/>
+    </module>
+    <module name="RightCurly">
+      <property name="id" value="RightCurlyAlone"/>
+      <property name="option" value="alone"/>
+      <property name="tokens"
+               value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
+                    INSTANCE_INIT, ANNOTATION_DEF, ENUM_DEF, INTERFACE_DEF, RECORD_DEF,
+                    COMPACT_CTOR_DEF"/>
+    </module>
+    <module name="SuppressionXpathSingleFilter">
+      <!-- suppresion is required till https://github.com/checkstyle/checkstyle/issues/7541 -->
+      <property name="id" value="RightCurlyAlone"/>
+      <property name="query" value="//RCURLY[parent::SLIST[count(./*)=1]
+                                     or preceding-sibling::*[last()][self::LCURLY]]"/>
+    </module>
+    <module name="WhitespaceAfter">
+      <property name="tokens"
+               value="COMMA, SEMI, TYPECAST, LITERAL_IF, LITERAL_ELSE,
+                    LITERAL_WHILE, LITERAL_DO, LITERAL_FOR, DO_WHILE"/>
+    </module>
+    <module name="WhitespaceAround">
+      <property name="allowEmptyConstructors" value="true"/>
+      <property name="allowEmptyLambdas" value="true"/>
+      <property name="allowEmptyMethods" value="true"/>
+      <property name="allowEmptyTypes" value="true"/>
+      <property name="allowEmptyLoops" value="true"/>
+      <property name="ignoreEnhancedForColon" value="false"/>
+      <property name="tokens"
+               value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR,
+                    BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAMBDA, LAND,
+                    LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY,
+                    LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SWITCH, LITERAL_SYNCHRONIZED,
+                    LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN,
+                    NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR,
+                    SR_ASSIGN, STAR, STAR_ASSIGN, LITERAL_ASSERT, TYPE_EXTENSION_AND"/>
+      <message key="ws.notFollowed"
+              value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
+      <message key="ws.notPreceded"
+              value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
+    </module>
+    <module name="OneStatementPerLine"/>
+    <module name="MultipleVariableDeclarations"/>
+    <module name="ArrayTypeStyle"/>
+    <module name="MissingSwitchDefault"/>
+    <module name="FallThrough"/>
+    <module name="UpperEll"/>
+    <module name="ModifierOrder"/>
+    <module name="EmptyLineSeparator">
+      <property name="tokens"
+               value="PACKAGE_DEF, IMPORT, STATIC_IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
+                    STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF, RECORD_DEF,
+                    COMPACT_CTOR_DEF"/>
+      <property name="allowNoEmptyLineBetweenFields" value="true"/>
+    </module>
+    <module name="SeparatorWrap">
+      <property name="id" value="SeparatorWrapDot"/>
+      <property name="tokens" value="DOT"/>
+      <property name="option" value="nl"/>
+    </module>
+    <module name="SeparatorWrap">
+      <property name="id" value="SeparatorWrapComma"/>
+      <property name="tokens" value="COMMA"/>
+      <property name="option" value="EOL"/>
+    </module>
+    <module name="SeparatorWrap">
+      <!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/259 -->
+      <property name="id" value="SeparatorWrapEllipsis"/>
+      <property name="tokens" value="ELLIPSIS"/>
+      <property name="option" value="EOL"/>
+    </module>
+    <module name="SeparatorWrap">
+      <!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/258 -->
+      <property name="id" value="SeparatorWrapArrayDeclarator"/>
+      <property name="tokens" value="ARRAY_DECLARATOR"/>
+      <property name="option" value="EOL"/>
+    </module>
+    <module name="SeparatorWrap">
+      <property name="id" value="SeparatorWrapMethodRef"/>
+      <property name="tokens" value="METHOD_REF"/>
+      <property name="option" value="nl"/>
+    </module>
+    <module name="PackageName">
+      <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
+      <message key="name.invalidPattern"
+             value="Package name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="TypeName">
+      <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
+                    ANNOTATION_DEF, RECORD_DEF"/>
+      <message key="name.invalidPattern"
+             value="Type name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="MemberName">
+      <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
+      <message key="name.invalidPattern"
+             value="Member name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="ParameterName">
+      <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
+      <message key="name.invalidPattern"
+             value="Parameter name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="LambdaParameterName">
+      <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
+      <message key="name.invalidPattern"
+             value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="CatchParameterName">
+      <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
+      <message key="name.invalidPattern"
+             value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="LocalVariableName">
+      <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
+      <message key="name.invalidPattern"
+             value="Local variable name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="PatternVariableName">
+      <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
+      <message key="name.invalidPattern"
+             value="Pattern variable name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="ClassTypeParameterName">
+      <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
+      <message key="name.invalidPattern"
+             value="Class type name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="RecordComponentName">
+      <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
+      <message key="name.invalidPattern"
+               value="Record component name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="RecordTypeParameterName">
+      <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
+      <message key="name.invalidPattern"
+               value="Record type name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="MethodTypeParameterName">
+      <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
+      <message key="name.invalidPattern"
+             value="Method type name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="InterfaceTypeParameterName">
+      <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
+      <message key="name.invalidPattern"
+             value="Interface type name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="MethodName">
+      <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
+      <message key="name.invalidPattern"
+             value="Method name ''{0}'' must match pattern ''{1}''."/>
+    </module>
+    <module name="NoFinalizer"/>
+    <module name="GenericWhitespace">
+      <message key="ws.followed"
+             value="GenericWhitespace ''{0}'' is followed by whitespace."/>
+      <message key="ws.preceded"
+             value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
+      <message key="ws.illegalFollow"
+             value="GenericWhitespace ''{0}'' should followed by whitespace."/>
+      <message key="ws.notPreceded"
+             value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
+    </module>
+    <module name="Indentation">
+      <property name="basicOffset" value="4"/>
+      <property name="braceAdjustment" value="4"/>
+      <property name="caseIndent" value="4"/>
+      <property name="throwsIndent" value="8"/>
+      <property name="lineWrappingIndentation" value="8"/>
+      <property name="arrayInitIndent" value="4"/>
+    </module>
+    <module name="AbbreviationAsWordInName">
+      <property name="ignoreFinal" value="false"/>
+      <property name="allowedAbbreviationLength" value="0"/>
+      <property name="tokens"
+               value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF, ANNOTATION_FIELD_DEF,
+                    PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF, PATTERN_VARIABLE_DEF, RECORD_DEF,
+                    RECORD_COMPONENT_DEF"/>
+    </module>
+    <module name="NoWhitespaceBeforeCaseDefaultColon"/>
+    <module name="OverloadMethodsDeclarationOrder"/>
+    <module name="VariableDeclarationUsageDistance"/>
+    <module name="CustomImportOrder">
+      <property name="sortImportsInGroupAlphabetically" value="true"/>
+      <property name="separateLineBetweenGroups" value="true"/>
+      <property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
+      <property name="tokens" value="IMPORT, STATIC_IMPORT, PACKAGE_DEF"/>
+    </module>
+    <module name="MethodParamPad">
+      <property name="tokens"
+               value="CTOR_DEF, LITERAL_NEW, METHOD_CALL, METHOD_DEF,
+                    SUPER_CTOR_CALL, ENUM_CONSTANT_DEF, RECORD_DEF"/>
+    </module>
+    <module name="NoWhitespaceBefore">
+      <property name="tokens"
+               value="COMMA, SEMI, POST_INC, POST_DEC, DOT,
+                    LABELED_STAT, METHOD_REF"/>
+      <property name="allowLineBreaks" value="true"/>
+    </module>
+    <module name="ParenPad">
+      <property name="tokens"
+               value="ANNOTATION, ANNOTATION_FIELD_DEF, CTOR_CALL, CTOR_DEF, DOT, ENUM_CONSTANT_DEF,
+                    EXPR, LITERAL_CATCH, LITERAL_DO, LITERAL_FOR, LITERAL_IF, LITERAL_NEW,
+                    LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_WHILE, METHOD_CALL,
+                    METHOD_DEF, QUESTION, RESOURCE_SPECIFICATION, SUPER_CTOR_CALL, LAMBDA,
+                    RECORD_DEF"/>
+    </module>
+    <module name="OperatorWrap">
+      <property name="option" value="NL"/>
+      <property name="tokens"
+               value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,
+                    LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF,
+                    TYPE_EXTENSION_AND "/>
+    </module>
+    <module name="AnnotationLocation">
+      <property name="id" value="AnnotationLocationMostCases"/>
+      <property name="tokens"
+               value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF,
+                      RECORD_DEF, COMPACT_CTOR_DEF"/>
+    </module>
+    <module name="AnnotationLocation">
+      <property name="id" value="AnnotationLocationVariables"/>
+      <property name="tokens" value="VARIABLE_DEF"/>
+      <property name="allowSamelineMultipleAnnotations" value="true"/>
+    </module>
+    <module name="NonEmptyAtclauseDescription"/>
+    <module name="InvalidJavadocPosition"/>
+    <module name="JavadocTagContinuationIndentation"/>
+<!--    <module name="SummaryJavadoc">-->
+<!--      <property name="forbiddenSummaryFragments"-->
+<!--               value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>-->
+<!--    </module>-->
+    <module name="JavadocParagraph"/>
+    <module name="RequireEmptyLineBeforeBlockTagGroup"/>
+    <module name="AtclauseOrder">
+      <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
+      <property name="target"
+               value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
+    </module>
+    <module name="JavadocMethod">
+      <property name="accessModifiers" value="public"/>
+      <property name="allowMissingParamTags" value="true"/>
+      <property name="allowMissingReturnTag" value="true"/>
+      <property name="allowedAnnotations" value="Override, Test"/>
+      <property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF"/>
+    </module>
+<!--    <module name="MissingJavadocMethod">-->
+<!--      <property name="scope" value="public"/>-->
+<!--      <property name="minLineCount" value="2"/>-->
+<!--      <property name="allowedAnnotations" value="Override, Test"/>-->
+<!--      <property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF,-->
+<!--                                   COMPACT_CTOR_DEF"/>-->
+<!--    </module>-->
+<!--    <module name="MissingJavadocType">-->
+<!--      <property name="scope" value="protected"/>-->
+<!--      <property name="tokens"-->
+<!--                value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF,-->
+<!--                      RECORD_DEF, ANNOTATION_DEF"/>-->
+<!--      <property name="excludeScope" value="nothing"/>-->
+<!--    </module>-->
+    <module name="SingleLineJavadoc"/>
+    <module name="EmptyCatchBlock">
+      <property name="exceptionVariableName" value="expected"/>
+    </module>
+    <module name="CommentsIndentation">
+      <property name="tokens" value="SINGLE_LINE_COMMENT, BLOCK_COMMENT_BEGIN"/>
+    </module>
+    <!-- https://checkstyle.org/config_filters.html#SuppressionXpathFilter -->
+    <module name="SuppressionXpathFilter">
+      <property name="file" value="${org.checkstyle.google.suppressionxpathfilter.config}"
+             default="checkstyle-xpath-suppressions.xml" />
+      <property name="optional" value="true"/>
     </module>
+  </module>
 </module>
diff --git a/examples/src/main/java/org/apache/ignite/example/rebalance/RebalanceExample.java b/examples/src/main/java/org/apache/ignite/example/rebalance/RebalanceExample.java
index b590371..5bdf982 100644
--- a/examples/src/main/java/org/apache/ignite/example/rebalance/RebalanceExample.java
+++ b/examples/src/main/java/org/apache/ignite/example/rebalance/RebalanceExample.java
@@ -32,12 +32,12 @@ import org.apache.ignite.table.Tuple;
 
 /**
  * This example demonstrates the data rebalance process.
- * <p>
- * The example emulates the basic scenario when one starts a three-node topology,
- * inserts some data, and then scales out by adding two more nodes. After the
- * topology is changed, the data is rebalanced and verified for correctness.
- * <p>
- * To run the example, do the following:
+ *
+ * <p>The example emulates the basic scenario when one starts a three-node topology,
+ * inserts some data, and then scales out by adding two more nodes. After the topology is changed, the data is rebalanced and verified for
+ * correctness.
+ *
+ * <p>To run the example, do the following:
  * <ol>
  *     <li>Import the examples project into you IDE.</li>
  *     <li>
@@ -65,15 +65,15 @@ public class RebalanceExample {
         //       eliminating the need to start an embedded server node in this example.
         //
         //--------------------------------------------------------------------------------------
-
+        
         System.out.println("Starting a server node... Logging to file: example-node.log");
-
+        
         System.setProperty("java.util.logging.config.file", "config/java.util.logging.properties");
-
+        
         try (Ignite server = IgnitionManager.start(
-            "example-node",
-            Files.readString(Path.of("config", "ignite-config.json")),
-            Path.of("work")
+                "example-node",
+                Files.readString(Path.of("config", "ignite-config.json")),
+                Path.of("work")
         )) {
             //--------------------------------------------------------------------------------------
             //
@@ -85,80 +85,80 @@ public class RebalanceExample {
             //     )
             //
             //--------------------------------------------------------------------------------------
-
+            
             System.out.println("\nCreating a table...");
-
+            
             TableDefinition tableDef = SchemaBuilders.tableBuilder("PUBLIC", "rebalance")
-                .columns(
-                    SchemaBuilders.column("key", ColumnType.INT32).asNonNull().build(),
-                    SchemaBuilders.column("value", ColumnType.string()).asNullable().build()
-                )
-                .withPrimaryKey("key")
-                .build();
-
+                    .columns(
+                            SchemaBuilders.column("key", ColumnType.INT32).asNonNull().build(),
+                            SchemaBuilders.column("value", ColumnType.string()).asNullable().build()
+                    )
+                    .withPrimaryKey("key")
+                    .build();
+            
             server.tables().createTable(tableDef.canonicalName(), tableChange ->
-                SchemaConfigurationConverter.convert(tableDef, tableChange)
-                    .changeReplicas(5)
-                    .changePartitions(1)
+                    SchemaConfigurationConverter.convert(tableDef, tableChange)
+                            .changeReplicas(5)
+                            .changePartitions(1)
             );
-
+            
             //--------------------------------------------------------------------------------------
             //
             // Creating a client to connect to the cluster.
             //
             //--------------------------------------------------------------------------------------
-
+            
             System.out.println("\nConnecting to server...");
-
+            
             try (IgniteClient client = IgniteClient.builder()
-                .addresses("127.0.0.1:10800")
-                .build()
+                    .addresses("127.0.0.1:10800")
+                    .build()
             ) {
                 KeyValueView<Tuple, Tuple> kvView = client.tables().table("PUBLIC.rebalance").keyValueView();
-
+                
                 //--------------------------------------------------------------------------------------
                 //
                 // Inserting several key-value pairs into the table.
                 //
                 //--------------------------------------------------------------------------------------
-
+                
                 System.out.println("\nInserting key-value pairs...");
-
+                
                 for (int i = 0; i < 10; i++) {
                     Tuple key = Tuple.create().set("key", i);
                     Tuple value = Tuple.create().set("value", "test_" + i);
-
+                    
                     kvView.put(key, value);
                 }
-
+                
                 //--------------------------------------------------------------------------------------
                 //
                 // Retrieving the newly inserted data.
                 //
                 //--------------------------------------------------------------------------------------
-
+                
                 System.out.println("\nRetrieved key-value pairs:");
-
+                
                 for (int i = 0; i < 10; i++) {
                     Tuple key = Tuple.create().set("key", i);
                     Tuple value = kvView.get(key);
-
+                    
                     System.out.println("    " + i + " -> " + value.stringValue("value"));
                 }
-
+                
                 //--------------------------------------------------------------------------------------
                 //
                 // Scaling out by adding two more nodes into the topology.
                 //
                 //--------------------------------------------------------------------------------------
-
-                System.out.println("\n" +
-                        "Run the following commands using the CLI tool to start two more nodes, and then press 'Enter' to continue...\n" +
-                        "    ignite node start --config=examples/config/ignite-config.json my-first-additional-node\n" +
-                        "    ignite node start --config=examples/config/ignite-config.json my-second-additional-node");
-
+                
+                System.out.println("\n"
+                        + "Run the following commands using the CLI tool to start two more nodes, and then press 'Enter' to continue...\n"
+                        + "    ignite node start --config=examples/config/ignite-config.json my-first-additional-node\n"
+                        + "    ignite node start --config=examples/config/ignite-config.json my-second-additional-node");
+                
                 System.in.read();
-
+                
                 //--------------------------------------------------------------------------------------
                 //
                 // Updating baseline to initiate the data rebalancing process.
@@ -175,9 +175,9 @@ public class RebalanceExample {
                 //       the need for this manual step.
                 //
                 //--------------------------------------------------------------------------------------
-
+                
                 System.out.println("\nUpdating the baseline and rebalancing the data...");
-
+                
                 server.setBaseline(Set.of(
                         "my-first-node",
                         "my-second-node",
@@ -185,25 +185,25 @@ public class RebalanceExample {
                         "my-first-additional-node",
                         "my-second-additional-node"
                 ));
-
+                
                 //--------------------------------------------------------------------------------------
                 //
                 // Retrieving data again to validate correctness.
                 //
                 //--------------------------------------------------------------------------------------
-
+                
                 System.out.println("\nKey-value pairs retrieved after the topology change:");
-
+                
                 for (int i = 0; i < 10; i++) {
                     Tuple key = Tuple.create().set("key", i);
                     Tuple value = kvView.get(key);
-
+                    
                     System.out.println("    " + i + " -> " + value.stringValue("value"));
                 }
             }
-
+            
             System.out.println("\nDropping the table and stopping the server...");
-
+            
             server.tables().dropTable(tableDef.canonicalName());
         }
     }
diff --git a/examples/src/main/java/org/apache/ignite/example/sql/jdbc/SqlJdbcExample.java b/examples/src/main/java/org/apache/ignite/example/sql/jdbc/SqlJdbcExample.java
index cab1079..73f228d 100644
--- a/examples/src/main/java/org/apache/ignite/example/sql/jdbc/SqlJdbcExample.java
+++ b/examples/src/main/java/org/apache/ignite/example/sql/jdbc/SqlJdbcExample.java
@@ -33,8 +33,8 @@ import org.apache.ignite.schema.definition.TableDefinition;
 
 /**
  * This example demonstrates the usage of the Apache Ignite JDBC driver.
- * <p>
- * To run the example, do the following:
+ *
+ * <p>To run the example, do the following:
  * <ol>
  *     <li>Import the examples project into you IDE.</li>
  *     <li>
@@ -61,9 +61,9 @@ public class SqlJdbcExample {
         System.setProperty("java.util.logging.config.file", "config/java.util.logging.properties");
 
         try (Ignite ignite = IgnitionManager.start(
-            "example-node",
-            Files.readString(Path.of("config", "ignite-config.json")),
-            Path.of("work")
+                "example-node",
+                Files.readString(Path.of("config", "ignite-config.json")),
+                Path.of("work")
         )) {
             //--------------------------------------------------------------------------------------
             //
@@ -79,17 +79,17 @@ public class SqlJdbcExample {
             System.out.println("\nCreating 'CITIES' table...");
 
             TableDefinition citiesTableDef = SchemaBuilders.tableBuilder("PUBLIC", "CITIES")
-                .columns(
-                    SchemaBuilders.column("ID", ColumnType.INT32).asNonNull().build(),
-                    SchemaBuilders.column("NAME", ColumnType.string()).asNullable().build()
-                )
-                .withPrimaryKey("ID")
-                .build();
+                    .columns(
+                            SchemaBuilders.column("ID", ColumnType.INT32).asNonNull().build(),
+                            SchemaBuilders.column("NAME", ColumnType.string()).asNullable().build()
+                    )
+                    .withPrimaryKey("ID")
+                    .build();
 
             ignite.tables().createTable(citiesTableDef.canonicalName(), tableChange ->
-                SchemaConfigurationConverter.convert(citiesTableDef, tableChange)
-                    .changeReplicas(1)
-                    .changePartitions(10)
+                    SchemaConfigurationConverter.convert(citiesTableDef, tableChange)
+                            .changeReplicas(1)
+                            .changePartitions(10)
             );
 
             //--------------------------------------------------------------------------------------
@@ -109,20 +109,20 @@ public class SqlJdbcExample {
             System.out.println("\nCreating 'ACCOUNTS' table...");
 
             TableDefinition accountsTableDef = SchemaBuilders.tableBuilder("PUBLIC", "ACCOUNTS")
-                .columns(
-                    SchemaBuilders.column("ACCOUNT_ID", ColumnType.INT32).asNonNull().build(),
-                    SchemaBuilders.column("CITY_ID", ColumnType.INT32).asNonNull().build(),
-                    SchemaBuilders.column("FIRST_NAME", ColumnType.string()).asNullable().build(),
-                    SchemaBuilders.column("LAST_NAME", ColumnType.string()).asNullable().build(),
-                    SchemaBuilders.column("BALANCE", ColumnType.DOUBLE).asNullable().build()
-                )
-                .withPrimaryKey("ACCOUNT_ID")
-                .build();
+                    .columns(
+                            SchemaBuilders.column("ACCOUNT_ID", ColumnType.INT32).asNonNull().build(),
+                            SchemaBuilders.column("CITY_ID", ColumnType.INT32).asNonNull().build(),
+                            SchemaBuilders.column("FIRST_NAME", ColumnType.string()).asNullable().build(),
+                            SchemaBuilders.column("LAST_NAME", ColumnType.string()).asNullable().build(),
+                            SchemaBuilders.column("BALANCE", ColumnType.DOUBLE).asNullable().build()
+                    )
+                    .withPrimaryKey("ACCOUNT_ID")
+                    .build();
 
             ignite.tables().createTable(accountsTableDef.canonicalName(), tableChange ->
-                SchemaConfigurationConverter.convert(accountsTableDef, tableChange)
-                    .changeReplicas(1)
-                    .changePartitions(10)
+                    SchemaConfigurationConverter.convert(accountsTableDef, tableChange)
+                            .changeReplicas(1)
+                            .changePartitions(10)
             );
 
             //--------------------------------------------------------------------------------------
@@ -206,13 +206,13 @@ public class SqlJdbcExample {
 
                 try (Statement stmt = conn.createStatement()) {
                     try (ResultSet rs = stmt.executeQuery(
-                            "SELECT a.FIRST_NAME, a.LAST_NAME, c.NAME FROM ACCOUNTS a " +
-                            "INNER JOIN CITIES c on c.ID = a.CITY_ID")) {
+                            "SELECT a.FIRST_NAME, a.LAST_NAME, c.NAME FROM ACCOUNTS a "
+                                    + "INNER JOIN CITIES c on c.ID = a.CITY_ID")) {
                         while (rs.next()) {
-                            System.out.println("    " +
-                                rs.getString(1) + ", " +
-                                rs.getString(2) + ", " +
-                                rs.getString(3));
+                            System.out.println("    "
+                                    + rs.getString(1) + ", "
+                                    + rs.getString(2) + ", "
+                                    + rs.getString(3));
                         }
                     }
                 }
@@ -229,10 +229,10 @@ public class SqlJdbcExample {
                     try (ResultSet rs = stmt.executeQuery(
                             "SELECT a.FIRST_NAME, a.LAST_NAME, a.BALANCE FROM ACCOUNTS a WHERE a.BALANCE < 1500.0")) {
                         while (rs.next()) {
-                            System.out.println("    " +
-                                rs.getString(1) + ", " +
-                                rs.getString(2) + ", " +
-                                rs.getDouble(3));
+                            System.out.println("    "
+                                    + rs.getString(1) + ", "
+                                    + rs.getString(2) + ", "
+                                    + rs.getDouble(3));
                         }
                     }
                 }
@@ -261,13 +261,13 @@ public class SqlJdbcExample {
 
                 try (Statement stmt = conn.createStatement()) {
                     try (ResultSet rs = stmt.executeQuery(
-                            "SELECT a.FIRST_NAME, a.LAST_NAME, c.NAME FROM ACCOUNTS a " +
-                            "INNER JOIN CITIES c on c.ID = a.CITY_ID")) {
+                            "SELECT a.FIRST_NAME, a.LAST_NAME, c.NAME FROM ACCOUNTS a "
+                                    + "INNER JOIN CITIES c on c.ID = a.CITY_ID")) {
                         while (rs.next()) {
-                            System.out.println("    " +
-                                rs.getString(1) + ", " +
-                                rs.getString(2) + ", " +
-                                rs.getString(3));
+                            System.out.println("    "
+                                    + rs.getString(1) + ", "
+                                    + rs.getString(2) + ", "
+                                    + rs.getString(3));
                         }
                     }
                 }
diff --git a/examples/src/main/java/org/apache/ignite/example/table/KeyValueViewExample.java b/examples/src/main/java/org/apache/ignite/example/table/KeyValueViewExample.java
index 960361c..4902451 100644
--- a/examples/src/main/java/org/apache/ignite/example/table/KeyValueViewExample.java
+++ b/examples/src/main/java/org/apache/ignite/example/table/KeyValueViewExample.java
@@ -31,8 +31,8 @@ import org.apache.ignite.table.Tuple;
 
 /**
  * This example demonstrates the usage of the {@link KeyValueView} API.
- * <p>
- * To run the example, do the following:
+ *
+ * <p>To run the example, do the following:
  * <ol>
  *     <li>Import the examples project into you IDE.</li>
  *     <li>
@@ -59,9 +59,9 @@ public class KeyValueViewExample {
         System.setProperty("java.util.logging.config.file", "config/java.util.logging.properties");
 
         try (Ignite server = IgnitionManager.start(
-            "example-node",
-            Files.readString(Path.of("config", "ignite-config.json")),
-            Path.of("work")
+                "example-node",
+                Files.readString(Path.of("config", "ignite-config.json")),
+                Path.of("work")
         )) {
             //--------------------------------------------------------------------------------------
             //
@@ -79,19 +79,19 @@ public class KeyValueViewExample {
             System.out.println("\nCreating 'accounts' table...");
 
             TableDefinition accountsTableDef = SchemaBuilders.tableBuilder("PUBLIC", "accounts")
-                .columns(
-                    SchemaBuilders.column("accountNumber", ColumnType.INT32).asNonNull().build(),
-                    SchemaBuilders.column("firstName", ColumnType.string()).asNullable().build(),
-                    SchemaBuilders.column("lastName", ColumnType.string()).asNullable().build(),
-                    SchemaBuilders.column("balance", ColumnType.DOUBLE).asNullable().build()
-                )
-                .withPrimaryKey("accountNumber")
-                .build();
+                    .columns(
+                            SchemaBuilders.column("accountNumber", ColumnType.INT32).asNonNull().build(),
+                            SchemaBuilders.column("firstName", ColumnType.string()).asNullable().build(),
+                            SchemaBuilders.column("lastName", ColumnType.string()).asNullable().build(),
+                            SchemaBuilders.column("balance", ColumnType.DOUBLE).asNullable().build()
+                    )
+                    .withPrimaryKey("accountNumber")
+                    .build();
 
             server.tables().createTable(accountsTableDef.canonicalName(), tableChange ->
-                SchemaConfigurationConverter.convert(accountsTableDef, tableChange)
-                    .changeReplicas(1)
-                    .changePartitions(10)
+                    SchemaConfigurationConverter.convert(accountsTableDef, tableChange)
+                            .changeReplicas(1)
+                            .changePartitions(10)
             );
 
             //--------------------------------------------------------------------------------------
@@ -103,8 +103,8 @@ public class KeyValueViewExample {
             System.out.println("\nConnecting to server...");
 
             try (IgniteClient client = IgniteClient.builder()
-                .addresses("127.0.0.1:10800")
-                .build()
+                    .addresses("127.0.0.1:10800")
+                    .build()
             ) {
                 //--------------------------------------------------------------------------------------
                 //
@@ -123,12 +123,12 @@ public class KeyValueViewExample {
                 System.out.println("\nInserting a key-value pair into the 'accounts' table...");
 
                 Tuple key = Tuple.create()
-                    .set("accountNumber", 123456);
+                        .set("accountNumber", 123456);
 
                 Tuple value = Tuple.create()
-                    .set("firstName", "Val")
-                    .set("lastName", "Kulichenko")
-                    .set("balance", 100.00d);
+                        .set("firstName", "Val")
+                        .set("lastName", "Kulichenko")
+                        .set("balance", 100.00d);
 
                 kvView.put(key, value);
 
@@ -143,10 +143,10 @@ public class KeyValueViewExample {
                 value = kvView.get(key);
 
                 System.out.println(
-                    "\nRetrieved value:\n" +
-                    "    Account Number: " + key.intValue("accountNumber") + '\n' +
-                    "    Owner: " + value.stringValue("firstName") + " " + value.stringValue("lastName") + '\n' +
-                    "    Balance: $" + value.doubleValue("balance"));
+                        "\nRetrieved value:\n"
+                                + "    Account Number: " + key.intValue("accountNumber") + '\n'
+                                + "    Owner: " + value.stringValue("firstName") + " " + value.stringValue("lastName") + '\n'
+                                + "    Balance: $" + value.doubleValue("balance"));
             }
 
             System.out.println("\nDropping the table and stopping the server...");
diff --git a/examples/src/main/java/org/apache/ignite/example/table/RecordViewExample.java b/examples/src/main/java/org/apache/ignite/example/table/RecordViewExample.java
index 3598d4e..4d6584a 100644
--- a/examples/src/main/java/org/apache/ignite/example/table/RecordViewExample.java
+++ b/examples/src/main/java/org/apache/ignite/example/table/RecordViewExample.java
@@ -31,8 +31,8 @@ import org.apache.ignite.table.Tuple;
 
 /**
  * This example demonstrates the usage of the {@link RecordView} API.
- * <p>
- * To run the example, do the following:
+ *
+ * <p>To run the example, do the following:
  * <ol>
  *     <li>Import the examples project into you IDE.</li>
  *     <li>
@@ -59,9 +59,9 @@ public class RecordViewExample {
         System.setProperty("java.util.logging.config.file", "config/java.util.logging.properties");
 
         try (Ignite server = IgnitionManager.start(
-            "example-node",
-            Files.readString(Path.of("config", "ignite-config.json")),
-            Path.of("work")
+                "example-node",
+                Files.readString(Path.of("config", "ignite-config.json")),
+                Path.of("work")
         )) {
             //--------------------------------------------------------------------------------------
             //
@@ -79,19 +79,19 @@ public class RecordViewExample {
             System.out.println("\nCreating 'accounts' table...");
 
             TableDefinition accountsTableDef = SchemaBuilders.tableBuilder("PUBLIC", "accounts")
-                .columns(
-                    SchemaBuilders.column("accountNumber", ColumnType.INT32).asNonNull().build(),
-                    SchemaBuilders.column("firstName", ColumnType.string()).asNullable().build(),
-                    SchemaBuilders.column("lastName", ColumnType.string()).asNullable().build(),
-                    SchemaBuilders.column("balance", ColumnType.DOUBLE).asNullable().build()
-                )
-                .withPrimaryKey("accountNumber")
-                .build();
+                    .columns(
+                            SchemaBuilders.column("accountNumber", ColumnType.INT32).asNonNull().build(),
+                            SchemaBuilders.column("firstName", ColumnType.string()).asNullable().build(),
+                            SchemaBuilders.column("lastName", ColumnType.string()).asNullable().build(),
+                            SchemaBuilders.column("balance", ColumnType.DOUBLE).asNullable().build()
+                    )
+                    .withPrimaryKey("accountNumber")
+                    .build();
 
             server.tables().createTable(accountsTableDef.canonicalName(), tableChange ->
-                SchemaConfigurationConverter.convert(accountsTableDef, tableChange)
-                    .changeReplicas(1)
-                    .changePartitions(10)
+                    SchemaConfigurationConverter.convert(accountsTableDef, tableChange)
+                            .changeReplicas(1)
+                            .changePartitions(10)
             );
 
             //--------------------------------------------------------------------------------------
@@ -103,8 +103,8 @@ public class RecordViewExample {
             System.out.println("\nConnecting to server...");
 
             try (IgniteClient client = IgniteClient.builder()
-                .addresses("127.0.0.1:10800")
-                .build()
+                    .addresses("127.0.0.1:10800")
+                    .build()
             ) {
                 //--------------------------------------------------------------------------------------
                 //
@@ -123,10 +123,10 @@ public class RecordViewExample {
                 System.out.println("\nInserting a record into the 'accounts' table...");
 
                 Tuple newAccountTuple = Tuple.create()
-                    .set("accountNumber", 123456)
-                    .set("firstName", "Val")
-                    .set("lastName", "Kulichenko")
-                    .set("balance", 100.00d);
+                        .set("accountNumber", 123456)
+                        .set("firstName", "Val")
+                        .set("lastName", "Kulichenko")
+                        .set("balance", 100.00d);
 
                 accounts.insert(newAccountTuple);
 
@@ -143,10 +143,10 @@ public class RecordViewExample {
                 Tuple accountTuple = accounts.get(accountNumberTuple);
 
                 System.out.println(
-                    "\nRetrieved record:\n" +
-                    "    Account Number: " + accountTuple.intValue("accountNumber") + '\n' +
-                    "    Owner: " + accountTuple.stringValue("firstName") + " " + accountTuple.stringValue("lastName") + '\n' +
-                    "    Balance: $" + accountTuple.doubleValue("balance"));
+                        "\nRetrieved record:\n"
+                                + "    Account Number: " + accountTuple.intValue("accountNumber") + '\n'
+                                + "    Owner: " + accountTuple.stringValue("firstName") + " " + accountTuple.stringValue("lastName") + '\n'
+                                + "    Balance: $" + accountTuple.doubleValue("balance"));
             }
 
             System.out.println("\nDropping the table and stopping the server...");
diff --git a/examples/src/test/java/org/apache/ignite/example/ExampleTestUtils.java b/examples/src/test/java/org/apache/ignite/example/ExampleTestUtils.java
index e098463..5431a8e 100644
--- a/examples/src/test/java/org/apache/ignite/example/ExampleTestUtils.java
+++ b/examples/src/test/java/org/apache/ignite/example/ExampleTestUtils.java
@@ -17,12 +17,12 @@
 
 package org.apache.ignite.example;
 
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
 /**
  * Example test utilities.
  */
@@ -37,8 +37,9 @@ public class ExampleTestUtils {
 
     /**
      * Capture console output of the example.
+     *
      * @param consumer Method which output should be captured. Ordinary main of the example.
-     * @param args Arguments.
+     * @param args     Arguments.
      * @return Captured output as a string.
      */
     public static String captureConsole(ExampleConsumer consumer, String[] args) throws Exception {
@@ -53,8 +54,7 @@ public class ExampleTestUtils {
             consumer.accept(args);
 
             System.out.flush();
-        }
-        finally {
+        } finally {
             System.setOut(old);
         }
 
@@ -63,8 +63,9 @@ public class ExampleTestUtils {
 
     /**
      * Assert that console output of the example equals expected.
+     *
      * @param consumer Method which output should be captured. Ordinary main of the example.
-     * @param args Arguments.
+     * @param args     Arguments.
      * @param expected Expected console output.
      */
     public static void assertConsoleOutput(ExampleConsumer consumer, String[] args, String expected) throws Exception {
@@ -77,8 +78,9 @@ public class ExampleTestUtils {
 
     /**
      * Assert that console output of the example equals expected.
+     *
      * @param consumer Method which output should be captured. Ordinary main of the example.
-     * @param args Arguments.
+     * @param args     Arguments.
      * @param expected Expected console output.
      */
     public static void assertConsoleOutputContains(ExampleConsumer consumer, String[] args,
@@ -87,7 +89,8 @@ public class ExampleTestUtils {
 
         captured = captured.replaceAll("\r", "");
 
-        for (String single : expected)
+        for (String single : expected) {
             assertTrue(captured.contains(single));
+        }
     }
 }
diff --git a/examples/src/test/java/org/apache/ignite/example/sql/jdbc/SqlExamplesTest.java b/examples/src/test/java/org/apache/ignite/example/sql/jdbc/SqlExamplesTest.java
index 51173ea..e958b37 100644
--- a/examples/src/test/java/org/apache/ignite/example/sql/jdbc/SqlExamplesTest.java
+++ b/examples/src/test/java/org/apache/ignite/example/sql/jdbc/SqlExamplesTest.java
@@ -46,29 +46,29 @@ public class SqlExamplesTest {
     @Test
     public void testSqlJdbcExample() throws Exception {
         ExampleTestUtils.assertConsoleOutputContains(SqlJdbcExample::main, EMPTY_ARGS,
-            "\nAll accounts:\n" +
-            "    John, Doe, Forest Hill\n" +
-            "    Jane, Roe, Forest Hill\n" +
-            "    Mary, Major, Denver\n" +
-            "    Richard, Miles, St. Petersburg\n",
+                "\nAll accounts:\n"
+                        + "    John, Doe, Forest Hill\n"
+                        + "    Jane, Roe, Forest Hill\n"
+                        + "    Mary, Major, Denver\n"
+                        + "    Richard, Miles, St. Petersburg\n",
 
-            "\nAccounts with balance lower than 1,500:\n" +
-            "    John, Doe, 1000.0\n" +
-            "    Richard, Miles, 1450.0\n",
+                "\nAccounts with balance lower than 1,500:\n"
+                        + "    John, Doe, 1000.0\n"
+                        + "    Richard, Miles, 1450.0\n",
 
-            "\nAll accounts:\n" +
-            "    Jane, Roe, Forest Hill\n" +
-            "    Mary, Major, Denver\n" +
-            "    Richard, Miles, St. Petersburg\n"
+                "\nAll accounts:\n"
+                        + "    Jane, Roe, Forest Hill\n"
+                        + "    Mary, Major, Denver\n"
+                        + "    Richard, Miles, St. Petersburg\n"
         );
     }
 
     @BeforeEach
     public void startNode(@WorkDirectory Path workDir) throws IOException {
         IgnitionManager.start(
-            "my-first-node",
-            Files.readString(Path.of("config", "ignite-config.json")),
-            workDir
+                "my-first-node",
+                Files.readString(Path.of("config", "ignite-config.json")),
+                workDir
         );
     }
 
@@ -85,7 +85,8 @@ public class SqlExamplesTest {
     public void removeWorkDir() {
         Path workDir = Path.of("work");
 
-        if (Files.exists(workDir))
+        if (Files.exists(workDir)) {
             IgniteUtils.deleteIfExists(workDir);
+        }
     }
 }
diff --git a/examples/src/test/java/org/apache/ignite/example/table/TableExamplesTest.java b/examples/src/test/java/org/apache/ignite/example/table/TableExamplesTest.java
index 52a2155..7d15538 100644
--- a/examples/src/test/java/org/apache/ignite/example/table/TableExamplesTest.java
+++ b/examples/src/test/java/org/apache/ignite/example/table/TableExamplesTest.java
@@ -46,10 +46,10 @@ public class TableExamplesTest {
     @Test
     public void testRecordViewExample() throws Exception {
         ExampleTestUtils.assertConsoleOutputContains(RecordViewExample::main, EMPTY_ARGS,
-            "\nRetrieved record:\n" +
-            "    Account Number: 123456\n" +
-            "    Owner: Val Kulichenko\n" +
-            "    Balance: $100.0\n");
+                "\nRetrieved record:\n"
+                        + "    Account Number: 123456\n"
+                        + "    Owner: Val Kulichenko\n"
+                        + "    Balance: $100.0\n");
     }
 
     /**
@@ -60,18 +60,18 @@ public class TableExamplesTest {
     @Test
     public void testKeyValueViewExample() throws Exception {
         ExampleTestUtils.assertConsoleOutputContains(KeyValueViewExample::main, EMPTY_ARGS,
-            "\nRetrieved value:\n" +
-            "    Account Number: 123456\n" +
-            "    Owner: Val Kulichenko\n" +
-            "    Balance: $100.0\n");
+                "\nRetrieved value:\n"
+                        + "    Account Number: 123456\n"
+                        + "    Owner: Val Kulichenko\n"
+                        + "    Balance: $100.0\n");
     }
 
     @BeforeEach
     public void startNode(@WorkDirectory Path workDir) throws IOException {
         IgnitionManager.start(
-            "my-first-node",
-            Files.readString(Path.of("config", "ignite-config.json")),
-            workDir
+                "my-first-node",
+                Files.readString(Path.of("config", "ignite-config.json")),
+                workDir
         );
     }
 
@@ -88,7 +88,8 @@ public class TableExamplesTest {
     public void removeWorkDir() {
         Path workDir = Path.of("work");
 
-        if (Files.exists(workDir))
+        if (Files.exists(workDir)) {
             IgniteUtils.deleteIfExists(workDir);
+        }
     }
 }
diff --git a/idea/intellij-java-google-style.xml b/idea/intellij-java-google-style.xml
new file mode 100644
index 0000000..02891e6
--- /dev/null
+++ b/idea/intellij-java-google-style.xml
@@ -0,0 +1,617 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  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.
+-->
+
+<code_scheme name="GoogleStyle">
+  <option name="OTHER_INDENT_OPTIONS">
+    <value>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="CONTINUATION_INDENT_SIZE" value="4"/>
+      <option name="TAB_SIZE" value="2"/>
+      <option name="USE_TAB_CHARACTER" value="false"/>
+      <option name="SMART_TABS" value="false"/>
+      <option name="LABEL_INDENT_SIZE" value="0"/>
+      <option name="LABEL_INDENT_ABSOLUTE" value="false"/>
+      <option name="USE_RELATIVE_INDENTS" value="false"/>
+    </value>
+  </option>
+  <option name="INSERT_INNER_CLASS_IMPORTS" value="true"/>
+  <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999"/>
+  <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999"/>
+  <option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
+    <value/>
+  </option>
+  <option name="IMPORT_LAYOUT_TABLE">
+    <value>
+      <package name="" withSubpackages="true" static="true"/>
+      <emptyLine/>
+      <package name="" withSubpackages="true" static="false"/>
+    </value>
+  </option>
+  <option name="RIGHT_MARGIN" value="100"/>
+  <option name="JD_ALIGN_PARAM_COMMENTS" value="false"/>
+  <option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false"/>
+  <option name="JD_P_AT_EMPTY_LINES" value="false"/>
+  <option name="JD_KEEP_EMPTY_PARAMETER" value="false"/>
+  <option name="JD_KEEP_EMPTY_EXCEPTION" value="false"/>
+  <option name="JD_KEEP_EMPTY_RETURN" value="false"/>
+  <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false"/>
+  <option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="0"/>
+  <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/>
+  <option name="BLANK_LINES_AFTER_CLASS_HEADER" value="0"/>
+  <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
+  <option name="ALIGN_MULTILINE_FOR" value="false"/>
+  <option name="CALL_PARAMETERS_WRAP" value="1"/>
+  <option name="METHOD_PARAMETERS_WRAP" value="1"/>
+  <option name="EXTENDS_LIST_WRAP" value="1"/>
+  <option name="THROWS_KEYWORD_WRAP" value="1"/>
+  <option name="METHOD_CALL_CHAIN_WRAP" value="1"/>
+  <option name="BINARY_OPERATION_WRAP" value="1"/>
+  <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true"/>
+  <option name="TERNARY_OPERATION_WRAP" value="1"/>
+  <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true"/>
+  <option name="FOR_STATEMENT_WRAP" value="1"/>
+  <option name="ARRAY_INITIALIZER_WRAP" value="1"/>
+  <option name="WRAP_COMMENTS" value="true"/>
+  <option name="IF_BRACE_FORCE" value="3"/>
+  <option name="DOWHILE_BRACE_FORCE" value="3"/>
+  <option name="WHILE_BRACE_FORCE" value="3"/>
+  <option name="FOR_BRACE_FORCE" value="3"/>
+  <option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true"/>
+  <AndroidXmlCodeStyleSettings>
+    <option name="USE_CUSTOM_SETTINGS" value="true"/>
+    <option name="LAYOUT_SETTINGS">
+      <value>
+        <option name="INSERT_BLANK_LINE_BEFORE_TAG" value="false"/>
+      </value>
+    </option>
+  </AndroidXmlCodeStyleSettings>
+  <JSCodeStyleSettings>
+    <option name="INDENT_CHAINED_CALLS" value="false"/>
+  </JSCodeStyleSettings>
+  <Python>
+    <option name="USE_CONTINUATION_INDENT_FOR_ARGUMENTS" value="true"/>
+  </Python>
+  <TypeScriptCodeStyleSettings>
+    <option name="INDENT_CHAINED_CALLS" value="false"/>
+  </TypeScriptCodeStyleSettings>
+  <XML>
+    <option name="XML_ALIGN_ATTRIBUTES" value="false"/>
+    <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true"/>
+  </XML>
+  <codeStyleSettings language="CSS">
+    <indentOptions>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="CONTINUATION_INDENT_SIZE" value="4"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="ECMA Script Level 4">
+    <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/>
+    <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
+    <option name="ALIGN_MULTILINE_FOR" value="false"/>
+    <option name="CALL_PARAMETERS_WRAP" value="1"/>
+    <option name="METHOD_PARAMETERS_WRAP" value="1"/>
+    <option name="EXTENDS_LIST_WRAP" value="1"/>
+    <option name="BINARY_OPERATION_WRAP" value="1"/>
+    <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true"/>
+    <option name="TERNARY_OPERATION_WRAP" value="1"/>
+    <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true"/>
+    <option name="FOR_STATEMENT_WRAP" value="1"/>
+    <option name="ARRAY_INITIALIZER_WRAP" value="1"/>
+    <option name="IF_BRACE_FORCE" value="3"/>
+    <option name="DOWHILE_BRACE_FORCE" value="3"/>
+    <option name="WHILE_BRACE_FORCE" value="3"/>
+    <option name="FOR_BRACE_FORCE" value="3"/>
+    <option name="PARENT_SETTINGS_INSTALLED" value="true"/>
+  </codeStyleSettings>
+  <codeStyleSettings language="HTML">
+    <indentOptions>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="CONTINUATION_INDENT_SIZE" value="4"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="JAVA">
+    <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false"/>
+    <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/>
+    <option name="KEEP_BLANK_LINES_BETWEEN_PACKAGE_DECLARATION_AND_HEADER" value="1"/>
+    <option name="BLANK_LINES_BEFORE_PACKAGE" value="1"/>
+    <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
+    <option name="ALIGN_MULTILINE_RESOURCES" value="false"/>
+    <option name="ALIGN_MULTILINE_FOR" value="false"/>
+    <option name="CALL_PARAMETERS_WRAP" value="1"/>
+    <option name="METHOD_PARAMETERS_WRAP" value="1"/>
+    <option name="EXTENDS_LIST_WRAP" value="1"/>
+    <option name="THROWS_KEYWORD_WRAP" value="1"/>
+    <option name="METHOD_CALL_CHAIN_WRAP" value="1"/>
+    <option name="BINARY_OPERATION_WRAP" value="1"/>
+    <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true"/>
+    <option name="TERNARY_OPERATION_WRAP" value="1"/>
+    <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true"/>
+    <option name="FOR_STATEMENT_WRAP" value="1"/>
+    <option name="ARRAY_INITIALIZER_WRAP" value="1"/>
+    <option name="WRAP_COMMENTS" value="true"/>
+    <option name="IF_BRACE_FORCE" value="3"/>
+    <option name="DOWHILE_BRACE_FORCE" value="3"/>
+    <option name="WHILE_BRACE_FORCE" value="3"/>
+    <option name="FOR_BRACE_FORCE" value="3"/>
+    <indentOptions>
+      <option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true"/>
+      <option name="INDENT_SIZE" value="4"/>
+      <option name="CONTINUATION_INDENT_SIZE" value="8"/>
+      <option name="TAB_SIZE" value="4"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="JSON">
+    <indentOptions>
+      <option name="CONTINUATION_INDENT_SIZE" value="4"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="JavaScript">
+    <option name="RIGHT_MARGIN" value="80"/>
+    <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/>
+    <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
+    <option name="ALIGN_MULTILINE_FOR" value="false"/>
+    <option name="CALL_PARAMETERS_WRAP" value="1"/>
+    <option name="METHOD_PARAMETERS_WRAP" value="1"/>
+    <option name="BINARY_OPERATION_WRAP" value="1"/>
+    <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true"/>
+    <option name="TERNARY_OPERATION_WRAP" value="1"/>
+    <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true"/>
+    <option name="FOR_STATEMENT_WRAP" value="1"/>
+    <option name="ARRAY_INITIALIZER_WRAP" value="1"/>
+    <option name="IF_BRACE_FORCE" value="3"/>
+    <option name="DOWHILE_BRACE_FORCE" value="3"/>
+    <option name="WHILE_BRACE_FORCE" value="3"/>
+    <option name="FOR_BRACE_FORCE" value="3"/>
+    <option name="PARENT_SETTINGS_INSTALLED" value="true"/>
+    <indentOptions>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="PROTO">
+    <option name="RIGHT_MARGIN" value="80"/>
+    <indentOptions>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="CONTINUATION_INDENT_SIZE" value="2"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="protobuf">
+    <option name="RIGHT_MARGIN" value="80"/>
+    <indentOptions>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="CONTINUATION_INDENT_SIZE" value="2"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="Python">
+    <option name="KEEP_BLANK_LINES_IN_CODE" value="1"/>
+    <option name="RIGHT_MARGIN" value="80"/>
+    <option name="ALIGN_MULTILINE_PARAMETERS" value="false"/>
+    <option name="PARENT_SETTINGS_INSTALLED" value="true"/>
+    <indentOptions>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="CONTINUATION_INDENT_SIZE" value="4"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="SASS">
+    <indentOptions>
+      <option name="CONTINUATION_INDENT_SIZE" value="4"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="SCSS">
+    <indentOptions>
+      <option name="CONTINUATION_INDENT_SIZE" value="4"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="TypeScript">
+    <indentOptions>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+  </codeStyleSettings>
+  <codeStyleSettings language="XML">
+    <indentOptions>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="CONTINUATION_INDENT_SIZE" value="2"/>
+      <option name="TAB_SIZE" value="2"/>
+    </indentOptions>
+    <arrangement>
+      <rules>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>xmlns:android</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>^$</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>xmlns:.*</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>^$</XML_NAMESPACE>
+              </AND>
+            </match>
+            <order>BY_NAME</order>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:id</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>style</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>^$</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>^$</XML_NAMESPACE>
+              </AND>
+            </match>
+            <order>BY_NAME</order>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:.*Style</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+            <order>BY_NAME</order>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_width</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_height</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_weight</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_margin</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_marginTop</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_marginBottom</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_marginStart</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_marginEnd</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_marginLeft</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_marginRight</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:layout_.*</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+            <order>BY_NAME</order>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:padding</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:paddingTop</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:paddingBottom</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:paddingStart</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:paddingEnd</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:paddingLeft</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*:paddingRight</NAME>
+                <XML_ATTRIBUTE/>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*</NAME>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+              </AND>
+            </match>
+            <order>BY_NAME</order>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*</NAME>
+                <XML_NAMESPACE>http://schemas.android.com/apk/res-auto</XML_NAMESPACE>
+              </AND>
+            </match>
+            <order>BY_NAME</order>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*</NAME>
+                <XML_NAMESPACE>http://schemas.android.com/tools</XML_NAMESPACE>
+              </AND>
+            </match>
+            <order>BY_NAME</order>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <AND>
+                <NAME>.*</NAME>
+                <XML_NAMESPACE>.*</XML_NAMESPACE>
+              </AND>
+            </match>
+            <order>BY_NAME</order>
+          </rule>
+        </section>
+      </rules>
+    </arrangement>
+  </codeStyleSettings>
+  <Objective-C>
+    <option name="INDENT_NAMESPACE_MEMBERS" value="0"/>
+    <option name="INDENT_C_STRUCT_MEMBERS" value="2"/>
+    <option name="INDENT_CLASS_MEMBERS" value="2"/>
+    <option name="INDENT_VISIBILITY_KEYWORDS" value="1"/>
+    <option name="INDENT_INSIDE_CODE_BLOCK" value="2"/>
+    <option name="KEEP_STRUCTURES_IN_ONE_LINE" value="true"/>
+    <option name="FUNCTION_PARAMETERS_WRAP" value="5"/>
+    <option name="FUNCTION_CALL_ARGUMENTS_WRAP" value="5"/>
+    <option name="TEMPLATE_CALL_ARGUMENTS_WRAP" value="5"/>
+    <option name="TEMPLATE_CALL_ARGUMENTS_ALIGN_MULTILINE" value="true"/>
+    <option name="ALIGN_INIT_LIST_IN_COLUMNS" value="false"/>
+    <option name="SPACE_BEFORE_SUPERCLASS_COLON" value="false"/>
+  </Objective-C>
+  <Objective-C-extensions>
+    <option name="GENERATE_INSTANCE_VARIABLES_FOR_PROPERTIES" value="ASK"/>
+    <option name="RELEASE_STYLE" value="IVAR"/>
+    <option name="TYPE_QUALIFIERS_PLACEMENT" value="BEFORE"/>
+    <file>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function"/>
+    </file>
+    <class>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod"/>
+      <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod"/>
+    </class>
+    <extensions>
+      <pair source="cc" header="h"/>
+      <pair source="c" header="h"/>
+    </extensions>
+  </Objective-C-extensions>
+  <codeStyleSettings language="ObjectiveC">
+    <option name="RIGHT_MARGIN" value="80"/>
+    <option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1"/>
+    <option name="BLANK_LINES_BEFORE_IMPORTS" value="0"/>
+    <option name="BLANK_LINES_AFTER_IMPORTS" value="0"/>
+    <option name="BLANK_LINES_AROUND_CLASS" value="0"/>
+    <option name="BLANK_LINES_AROUND_METHOD" value="0"/>
+    <option name="BLANK_LINES_AROUND_METHOD_IN_INTERFACE" value="0"/>
+    <option name="ALIGN_MULTILINE_BINARY_OPERATION" value="false"/>
+    <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true"/>
+    <option name="FOR_STATEMENT_WRAP" value="1"/>
+    <option name="ASSIGNMENT_WRAP" value="1"/>
+    <indentOptions>
+      <option name="INDENT_SIZE" value="2"/>
+      <option name="CONTINUATION_INDENT_SIZE" value="4"/>
+    </indentOptions>
+  </codeStyleSettings>
+</code_scheme>
diff --git a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/AffinityUtils.java b/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/AffinityUtils.java
index dd03a39..557d512 100644
--- a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/AffinityUtils.java
+++ b/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/AffinityUtils.java
@@ -30,20 +30,20 @@ public class AffinityUtils {
      * Calculates affinity assignments.
      *
      * @param partitions Partitions count.
-     * @param replicas Replicas count.
+     * @param replicas   Replicas count.
      * @return List nodes by partition.
      */
     public static List<List<ClusterNode>> calculateAssignments(
-        @NotNull Collection<ClusterNode> baselineNodes,
-        int partitions,
-        int replicas
+            @NotNull Collection<ClusterNode> baselineNodes,
+            int partitions,
+            int replicas
     ) {
         return RendezvousAffinityFunction.assignPartitions(
-            baselineNodes,
-            partitions,
-            replicas,
-            false,
-            null
+                baselineNodes,
+                partitions,
+                replicas,
+                false,
+                null
         );
     }
 }
diff --git a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunction.java b/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunction.java
index 1468665..f80c635 100644
--- a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunction.java
+++ b/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunction.java
@@ -34,8 +34,7 @@ import org.apache.ignite.lang.IgniteLogger;
 import org.apache.ignite.network.ClusterNode;
 
 /**
- * Affinity function for partitioned table based on Highest Random Weight algorithm. This function supports the
- * following configuration:
+ * Affinity function for partitioned table based on Highest Random Weight algorithm. This function supports the following configuration:
  * <ul>
  * <li>
  *      {@code partitions} - Number of partitions to spread across nodes.
@@ -79,27 +78,28 @@ public class RendezvousAffinityFunction {
     /**
      * Returns collection of nodes for specified partition.
      *
-     * @param part Partition.
-     * @param nodes Nodes.
-     * @param replicas Number partition replicas.
+     * @param part              Partition.
+     * @param nodes             Nodes.
+     * @param replicas          Number partition replicas.
      * @param neighborhoodCache Neighborhood.
-     * @param exclNeighbors If true neighbors are excluded, false otherwise.
-     * @param nodeFilter Filter for nodes.
+     * @param exclNeighbors     If true neighbors are excluded, false otherwise.
+     * @param nodeFilter        Filter for nodes.
      * @return Assignment.
      */
     public static List<ClusterNode> assignPartition(
-        int part,
-        List<ClusterNode> nodes,
-        int replicas,
-        Map<String, Collection<ClusterNode>> neighborhoodCache,
-        boolean exclNeighbors,
-        BiPredicate<ClusterNode, List<ClusterNode>> nodeFilter
+            int part,
+            List<ClusterNode> nodes,
+            int replicas,
+            Map<String, Collection<ClusterNode>> neighborhoodCache,
+            boolean exclNeighbors,
+            BiPredicate<ClusterNode, List<ClusterNode>> nodeFilter
     ) {
-        if (nodes.size() <= 1)
+        if (nodes.size() <= 1) {
             return nodes;
+        }
 
         IgniteBiTuple<Long, ClusterNode>[] hashArr =
-            (IgniteBiTuple<Long, ClusterNode>[])new IgniteBiTuple[nodes.size()];
+                (IgniteBiTuple<Long, ClusterNode>[]) new IgniteBiTuple[nodes.size()];
 
         for (int i = 0; i < nodes.size(); i++) {
             ClusterNode node = nodes.get(i);
@@ -116,8 +116,9 @@ public class RendezvousAffinityFunction {
         Iterable<ClusterNode> sortedNodes = new LazyLinearSortedContainer(hashArr, effectiveReplicas);
 
         // REPLICATED cache case
-        if (replicas == Integer.MAX_VALUE)
+        if (replicas == Integer.MAX_VALUE) {
             return replicatedAssign(nodes, sortedNodes);
+        }
 
         Iterator<ClusterNode> it = sortedNodes.iterator();
 
@@ -129,8 +130,9 @@ public class RendezvousAffinityFunction {
 
         res.add(first);
 
-        if (exclNeighbors)
+        if (exclNeighbors) {
             allNeighbors.addAll(neighborhoodCache.get(first.id()));
+        }
 
         // Select another replicas.
         if (replicas > 1) {
@@ -143,12 +145,12 @@ public class RendezvousAffinityFunction {
 
                         allNeighbors.addAll(neighborhoodCache.get(node.id()));
                     }
-                }
-                else if (nodeFilter == null || nodeFilter.test(node, res)) {
+                } else if (nodeFilter == null || nodeFilter.test(node, res)) {
                     res.add(node);
 
-                    if (exclNeighbors)
+                    if (exclNeighbors) {
                         allNeighbors.addAll(neighborhoodCache.get(node.id()));
+                    }
                 }
             }
         }
@@ -162,13 +164,14 @@ public class RendezvousAffinityFunction {
             while (it.hasNext() && res.size() < effectiveReplicas) {
                 ClusterNode node = it.next();
 
-                if (!res.contains(node))
+                if (!res.contains(node)) {
                     res.add(node);
+                }
             }
 
             if (!exclNeighborsWarn) {
-                LOG.warn("Affinity function excludeNeighbors property is ignored " +
-                    "because topology has no enough nodes to assign all replicas.");
+                LOG.warn("Affinity function excludeNeighbors property is ignored "
+                        + "because topology has no enough nodes to assign all replicas.");
 
                 exclNeighborsWarn = true;
             }
@@ -182,21 +185,23 @@ public class RendezvousAffinityFunction {
     /**
      * Creates assignment for REPLICATED table
      *
-     * @param nodes Topology.
+     * @param nodes       Topology.
      * @param sortedNodes Sorted for specified partitions nodes.
      * @return Assignment.
      */
     private static List<ClusterNode> replicatedAssign(List<ClusterNode> nodes,
-        Iterable<ClusterNode> sortedNodes) {
+            Iterable<ClusterNode> sortedNodes) {
         ClusterNode first = sortedNodes.iterator().next();
 
         List<ClusterNode> res = new ArrayList<>(nodes.size());
 
         res.add(first);
 
-        for (ClusterNode n : nodes)
-            if (!n.equals(first))
+        for (ClusterNode n : nodes) {
+            if (!n.equals(first)) {
                 res.add(n);
+            }
+        }
 
         assert res.size() == nodes.size() : "Not enough replicas: " + res.size();
 
@@ -204,8 +209,7 @@ public class RendezvousAffinityFunction {
     }
 
     /**
-     * The pack partition number and nodeHash.hashCode to long and mix it by hash function based on the Wang/Jenkins
-     * hash.
+     * The pack partition number and nodeHash.hashCode to long and mix it by hash function based on the Wang/Jenkins hash.
      *
      * @param key0 Hash key.
      * @param key1 Hash key.
@@ -214,7 +218,7 @@ public class RendezvousAffinityFunction {
      */
     private static long hash(int key0, int key1) {
         long key = (key0 & 0xFFFFFFFFL)
-            | ((key1 & 0xFFFFFFFFL) << 32);
+                | ((key1 & 0xFFFFFFFFL) << 32);
 
         key = (~key) + (key << 21); // key = (key << 21) - key - 1;
         key ^= (key >>> 24);
@@ -231,18 +235,18 @@ public class RendezvousAffinityFunction {
      * Generates an assignment by the given parameters.
      *
      * @param currentTopologySnapshot List of topology nodes.
-     * @param partitions Number of table partitions.
-     * @param replicas Number partition replicas.
-     * @param exclNeighbors If true neighbors are excluded fro the one partition assignment, false otherwise.
-     * @param nodeFilter Filter for nodes.
+     * @param partitions              Number of table partitions.
+     * @param replicas                Number partition replicas.
+     * @param exclNeighbors           If true neighbors are excluded fro the one partition assignment, false otherwise.
+     * @param nodeFilter              Filter for nodes.
      * @return List nodes by partition.
      */
     public static List<List<ClusterNode>> assignPartitions(
-        Collection<ClusterNode> currentTopologySnapshot,
-        int partitions,
-        int replicas,
-        boolean exclNeighbors,
-        BiPredicate<ClusterNode, List<ClusterNode>> nodeFilter
+            Collection<ClusterNode> currentTopologySnapshot,
+            int partitions,
+            int replicas,
+            boolean exclNeighbors,
+            BiPredicate<ClusterNode, List<ClusterNode>> nodeFilter
     ) {
         assert partitions <= MAX_PARTITIONS_COUNT : "partitions <= " + MAX_PARTITIONS_COUNT;
         assert partitions > 0 : "parts > 0";
@@ -250,8 +254,7 @@ public class RendezvousAffinityFunction {
 
         List<List<ClusterNode>> assignments = new ArrayList<>(partitions);
 
-        Map<String, Collection<ClusterNode>> neighborhoodCache = exclNeighbors ?
-            neighbors(currentTopologySnapshot) : null;
+        Map<String, Collection<ClusterNode>> neighborhoodCache = exclNeighbors ? neighbors(currentTopologySnapshot) : null;
 
         List<ClusterNode> nodes = new ArrayList<>(currentTopologySnapshot);
 
@@ -280,17 +283,20 @@ public class RendezvousAffinityFunction {
 
             Collection<ClusterNode> nodes = macMap.get(macs);
 
-            if (nodes == null)
+            if (nodes == null) {
                 macMap.put(macs, nodes = new HashSet<>());
+            }
 
             nodes.add(node);
         }
 
         Map<String, Collection<ClusterNode>> neighbors = new HashMap<>(topSnapshot.size(), 1.0f);
 
-        for (Collection<ClusterNode> group : macMap.values())
-            for (ClusterNode node : group)
+        for (Collection<ClusterNode> group : macMap.values()) {
+            for (ClusterNode node : group) {
                 neighbors.put(node.id(), group);
+            }
+        }
 
         return neighbors;
     }
@@ -299,15 +305,14 @@ public class RendezvousAffinityFunction {
      *
      */
     private static class HashComparator implements Comparator<IgniteBiTuple<Long, ClusterNode>>, Serializable {
-        /**
-         *
-         */
+        /** Serial version uid. */
         private static final long serialVersionUID = 0L;
 
         /** {@inheritDoc} */
-        @Override public int compare(IgniteBiTuple<Long, ClusterNode> o1, IgniteBiTuple<Long, ClusterNode> o2) {
+        @Override
+        public int compare(IgniteBiTuple<Long, ClusterNode> o1, IgniteBiTuple<Long, ClusterNode> o2) {
             return o1.get1() < o2.get1() ? -1 : o1.get1() > o2.get1() ? 1 :
-                o1.get2().name().compareTo(o2.get2().name());
+                    o1.get2().name().compareTo(o2.get2().name());
         }
     }
 
@@ -322,13 +327,13 @@ public class RendezvousAffinityFunction {
         private int sorted;
 
         /**
-         * @param arr Node / partition hash list.
+         * @param arr                Node / partition hash list.
          * @param needFirstSortedCnt Estimate count of elements to return by iterator.
          */
         LazyLinearSortedContainer(IgniteBiTuple<Long, ClusterNode>[] arr, int needFirstSortedCnt) {
             this.arr = arr;
 
-            if (needFirstSortedCnt > (int)Math.log(arr.length)) {
+            if (needFirstSortedCnt > (int) Math.log(arr.length)) {
                 Arrays.sort(arr, COMPARATOR);
 
                 sorted = arr.length;
@@ -336,7 +341,8 @@ public class RendezvousAffinityFunction {
         }
 
         /** {@inheritDoc} */
-        @Override public Iterator<ClusterNode> iterator() {
+        @Override
+        public Iterator<ClusterNode> iterator() {
             return new SortIterator();
         }
 
@@ -348,17 +354,21 @@ public class RendezvousAffinityFunction {
             private int cur;
 
             /** {@inheritDoc} */
-            @Override public boolean hasNext() {
+            @Override
+            public boolean hasNext() {
                 return cur < arr.length;
             }
 
             /** {@inheritDoc} */
-            @Override public ClusterNode next() {
-                if (!hasNext())
+            @Override
+            public ClusterNode next() {
+                if (!hasNext()) {
                     throw new NoSuchElementException();
+                }
 
-                if (cur < sorted)
+                if (cur < sorted) {
                     return arr[cur++].get2();
+                }
 
                 IgniteBiTuple<Long, ClusterNode> min = arr[cur];
 
@@ -384,14 +394,16 @@ public class RendezvousAffinityFunction {
             }
 
             /** {@inheritDoc} */
-            @Override public void remove() {
+            @Override
+            public void remove() {
                 throw new UnsupportedOperationException("Remove doesn't supported");
             }
         }
     }
 
     /** {@inheritDoc} */
-    @Override public String toString() {
+    @Override
+    public String toString() {
         return "U.toString(RendezvousAffinityFunction.class, this)";
     }
 
diff --git a/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/AffinityServiceTest.java b/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/AffinityServiceTest.java
index 627f677..e8627f1 100644
--- a/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/AffinityServiceTest.java
+++ b/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/AffinityServiceTest.java
@@ -17,6 +17,8 @@
 
 package org.apache.ignite.internal.affinity;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -25,11 +27,9 @@ import org.apache.ignite.network.ClusterNode;
 import org.apache.ignite.network.NetworkAddress;
 import org.junit.jupiter.api.Test;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 /**
- * Tests scenarios for an affinity service. Please pay attention that given test doesn't check Rendezvous or any other
- * affinity function it just checks {@link AffinityUtils} logic.
+ * Tests scenarios for an affinity service. Please pay attention that given test doesn't check Rendezvous or any other affinity function it
+ * just checks {@link AffinityUtils} logic.
  */
 public class AffinityServiceTest {
     /**
@@ -38,24 +38,25 @@ public class AffinityServiceTest {
     @Test
     public void testCalculatedAssignmentHappyPath() {
         List<List<ClusterNode>> assignments = AffinityUtils.calculateAssignments(
-            Arrays.asList(
-                new ClusterNode(
-                    UUID.randomUUID().toString(), "node0",
-                    new NetworkAddress("localhost", 8080)
+                Arrays.asList(
+                        new ClusterNode(
+                                UUID.randomUUID().toString(), "node0",
+                                new NetworkAddress("localhost", 8080)
+                        ),
+                        new ClusterNode(
+                                UUID.randomUUID().toString(), "node1",
+                                new NetworkAddress("localhost", 8081)
+                        )
                 ),
-                new ClusterNode(
-                    UUID.randomUUID().toString(), "node1",
-                    new NetworkAddress("localhost", 8081)
-                )
-            ),
-            10,
-            3
+                10,
+                3
         );
 
         assertEquals(10, assignments.size());
 
-        for (List<ClusterNode> partitionAssignment : assignments)
+        for (List<ClusterNode> partitionAssignment : assignments) {
             assertEquals(2, partitionAssignment.size());
+        }
     }
 
     /**
@@ -64,14 +65,15 @@ public class AffinityServiceTest {
     @Test
     public void testEmptyBaselineAssignmentsCalculation() {
         List<List<ClusterNode>> assignments = AffinityUtils.calculateAssignments(
-            Collections.emptyList(),
-            10,
-            3
+                Collections.emptyList(),
+                10,
+                3
         );
 
         assertEquals(10, assignments.size());
 
-        for (List<ClusterNode> partitionAssignment : assignments)
+        for (List<ClusterNode> partitionAssignment : assignments) {
             assertEquals(0, partitionAssignment.size());
+        }
     }
 }
diff --git a/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunctionTest.java b/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunctionTest.java
index 206c09f..5c7590d 100644
--- a/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunctionTest.java
+++ b/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunctionTest.java
@@ -17,6 +17,11 @@
 
 package org.apache.ignite.internal.affinity;
 
+import static java.util.Objects.nonNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -33,11 +38,6 @@ import org.apache.ignite.network.NetworkAddress;
 import org.jetbrains.annotations.NotNull;
 import org.junit.jupiter.api.Test;
 
-import static java.util.Objects.nonNull;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
 /**
  * Test for affinity function.
  */
@@ -63,11 +63,11 @@ public class RendezvousAffinityFunctionTest {
         int ideal = (parts * replicas) / nodes;
 
         List<List<ClusterNode>> assignment = RendezvousAffinityFunction.assignPartitions(
-            clusterNodes,
-            parts,
-            replicas,
-            false,
-            null
+                clusterNodes,
+                parts,
+                replicas,
+                false,
+                null
         );
 
         HashMap<ClusterNode, ArrayList<Integer>> assignmentByNode = new HashMap<>(nodes);
@@ -78,8 +78,9 @@ public class RendezvousAffinityFunctionTest {
             for (ClusterNode node : partNodes) {
                 ArrayList<Integer> nodeParts = assignmentByNode.get(node);
 
-                if (nodeParts == null)
+                if (nodeParts == null) {
                     assignmentByNode.put(node, nodeParts = new ArrayList<>());
+                }
 
                 nodeParts.add(part);
             }
@@ -93,21 +94,22 @@ public class RendezvousAffinityFunctionTest {
             assertNotNull(nodeParts);
 
             assertTrue(nodeParts.size() > ideal * (1 - AFFINITY_DEVIATION_RATIO)
-                    && nodeParts.size() < ideal * (1 + AFFINITY_DEVIATION_RATIO),
-                "Partition distribution is too far from ideal [node=" + node
-                    + ", size=" + nodeParts.size()
-                    + ", idealSize=" + ideal
-                    + ", parts=" + compact(nodeParts) + ']');
+                            && nodeParts.size() < ideal * (1 + AFFINITY_DEVIATION_RATIO),
+                    "Partition distribution is too far from ideal [node=" + node
+                            + ", size=" + nodeParts.size()
+                            + ", idealSize=" + ideal
+                            + ", parts=" + compact(nodeParts) + ']');
         }
     }
 
-    @NotNull private List<ClusterNode> prepareNetworkTopology(int nodes) {
+    @NotNull
+    private List<ClusterNode> prepareNetworkTopology(int nodes) {
         var addr = new NetworkAddress("127.0.0.1", 121212);
 
         return IntStream.range(0, nodes)
-            .mapToObj(i -> "Node " + i)
-            .map(name -> new ClusterNode(UUID.randomUUID().toString(), name, addr))
-            .collect(Collectors.toUnmodifiableList());
+                .mapToObj(i -> "Node " + i)
+                .map(name -> new ClusterNode(UUID.randomUUID().toString(), name, addr))
+                .collect(Collectors.toUnmodifiableList());
     }
 
     @Test
@@ -123,11 +125,11 @@ public class RendezvousAffinityFunctionTest {
         assertTrue(parts > nodes, "Partitions should be more that nodes");
 
         List<List<ClusterNode>> assignment = RendezvousAffinityFunction.assignPartitions(
-            clusterNodes,
-            parts,
-            replicas,
-            false,
-            null
+                clusterNodes,
+                parts,
+                replicas,
+                false,
+                null
         );
 
         byte[] assignmentBytes = ByteUtils.toBytes(assignment);
@@ -136,7 +138,7 @@ public class RendezvousAffinityFunctionTest {
 
         LOG.info("Assignment is serialized successfully [bytes={}]", assignmentBytes.length);
 
-        List<List<ClusterNode>> deserializedAssignment = (List<List<ClusterNode>>)ByteUtils.fromBytes(assignmentBytes);
+        List<List<ClusterNode>> deserializedAssignment = (List<List<ClusterNode>>) ByteUtils.fromBytes(assignmentBytes);
 
         assertNotNull(deserializedAssignment);
 
@@ -144,9 +146,8 @@ public class RendezvousAffinityFunctionTest {
     }
 
     /**
-     * Returns sorted and compacted string representation of given {@code col}. Two nearby numbers with difference at
-     * most 1 are compacted to one continuous segment. E.g. collection of [1, 2, 3, 5, 6, 7, 10] will be compacted to
-     * [1-3, 5-7, 10].
+     * Returns sorted and compacted string representation of given {@code col}. Two nearby numbers with difference at most 1 are compacted
+     * to one continuous segment. E.g. collection of [1, 2, 3, 5, 6, 7, 10] will be compacted to [1-3, 5-7, 10].
      *
      * @param col Collection of integers.
      * @return Compacted string representation of given collections.
@@ -156,23 +157,23 @@ public class RendezvousAffinityFunctionTest {
     }
 
     /**
-     * Returns sorted and compacted string representation of given {@code col}. Two nearby numbers are compacted to one
-     * continuous segment. E.g. collection of [1, 2, 3, 5, 6, 7, 10] with {@code nextValFun = i -> i + 1} will be
-     * compacted to [1-3, 5-7, 10].
+     * Returns sorted and compacted string representation of given {@code col}. Two nearby numbers are compacted to one continuous segment.
+     * E.g. collection of [1, 2, 3, 5, 6, 7, 10] with {@code nextValFun = i -> i + 1} will be compacted to [1-3, 5-7, 10].
      *
-     * @param col Collection of numbers.
+     * @param col        Collection of numbers.
      * @param nextValFun Function to get nearby number.
      * @return Compacted string representation of given collections.
      */
     public static <T extends Number & Comparable<? super T>> String compact(
-        Collection<T> col,
-        Function<T, T> nextValFun
+            Collection<T> col,
+            Function<T, T> nextValFun
     ) {
         assert nonNull(col);
         assert nonNull(nextValFun);
 
-        if (col.isEmpty())
+        if (col.isEmpty()) {
             return "[]";
+        }
 
         StringBuffer sb = new StringBuffer();
         sb.append('[');
@@ -180,7 +181,8 @@ public class RendezvousAffinityFunctionTest {
         List<T> l = new ArrayList<>(col);
         Collections.sort(l);
 
-        T left = l.get(0), right = left;
+        T left = l.get(0);
+        T right = left;
         for (int i = 1; i < l.size(); i++) {
             T val = l.get(i);
 
@@ -189,20 +191,22 @@ public class RendezvousAffinityFunctionTest {
                 continue;
             }
 
-            if (left.compareTo(right) == 0)
+            if (left.compareTo(right) == 0) {
                 sb.append(left);
-            else
+            } else {
                 sb.append(left).append('-').append(right);
+            }
 
             sb.append(',').append(' ');
 
             left = right = val;
         }
 
-        if (left.compareTo(right) == 0)
+        if (left.compareTo(right) == 0) {
             sb.append(left);
-        else
+        } else {
             sb.append(left).append('-').append(right);
+        }
 
         sb.append(']');
 
diff --git a/modules/api/src/main/java/org/apache/ignite/Ignite.java b/modules/api/src/main/java/org/apache/ignite/Ignite.java
index b3a91ca..8f1e090 100644
--- a/modules/api/src/main/java/org/apache/ignite/Ignite.java
+++ b/modules/api/src/main/java/org/apache/ignite/Ignite.java
@@ -51,24 +51,20 @@ public interface Ignite extends AutoCloseable {
     /**
      * Set new baseline nodes for table assignments.
      *
-     * Current implementation has significant restrictions:
-     * - Only alive nodes can be a part of new baseline.
-     * If any passed nodes are not alive, {@link IgniteException} with appropriate message will be thrown.
-     * - Potentially it can be a long operation and current
-     * synchronous changePeers-based implementation can't handle this issue well.
-     * - No recovery logic supported, if setBaseline fails - it can produce random state of cluster.
-     *
+     * <p>Current implementation has significant restrictions: - Only alive nodes can be a part of new baseline. If any passed nodes are not
+     * alive, {@link IgniteException} with appropriate message will be thrown. - Potentially it can be a long operation and current
+     * synchronous changePeers-based implementation can't handle this issue well. - No recovery logic supported, if setBaseline fails - it
+     * can produce random state of cluster.
      * TODO: IGNITE-14209 issues above must be fixed.
      * TODO: IGNITE-15815 add a test for stopping node and asynchronous implementation.
      *
      * @param baselineNodes Names of baseline nodes.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping,</li>
-     *     <li>{@code baselineNodes} argument is empty or null,</li>
-     *     <li>any node from {@code baselineNodes} is not alive.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping,</li>
+     *                             <li>{@code baselineNodes} argument is empty or null,</li>
+     *                             <li>any node from {@code baselineNodes} is not alive.</li>
+     *                         </ul>
      */
     @Experimental
     void setBaseline(Set<String> baselineNodes);
diff --git a/modules/api/src/main/java/org/apache/ignite/Ignition.java b/modules/api/src/main/java/org/apache/ignite/Ignition.java
index 6fda144..692de25 100644
--- a/modules/api/src/main/java/org/apache/ignite/Ignition.java
+++ b/modules/api/src/main/java/org/apache/ignite/Ignition.java
@@ -19,7 +19,6 @@ package org.apache.ignite;
 
 import java.io.InputStream;
 import java.nio.file.Path;
-import org.apache.ignite.Ignite;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -31,9 +30,9 @@ public interface Ignition {
     /**
      * Starts an Ignite node with an optional bootstrap configuration from a HOCON file.
      *
-     * @param name Name of the node. Must not be {@code null}.
+     * @param name       Name of the node. Must not be {@code null}.
      * @param configPath Path to the node configuration in the HOCON format. Can be {@code null}.
-     * @param workDir Work directory for the started node. Must not be {@code null}.
+     * @param workDir    Work directory for the started node. Must not be {@code null}.
      * @return Started Ignite node.
      */
     public Ignite start(@NotNull String name, @Nullable Path configPath, @NotNull Path workDir);
@@ -42,10 +41,9 @@ public interface Ignition {
      * Starts an Ignite node with an optional bootstrap configuration from an input stream with HOCON configs.
      *
      * @param name    Name of the node. Must not be {@code null}.
-     * @param config  Optional node configuration based on
-     *                {@link org.apache.ignite.configuration.schemas.runner.NodeConfigurationSchema} and
-     *                {@link org.apache.ignite.configuration.schemas.network.NetworkConfigurationSchema}.
-     *                Following rules are used for applying the configuration properties:
+     * @param config  Optional node configuration based on {@link org.apache.ignite.configuration.schemas.runner.NodeConfigurationSchema}
+     *                and {@link org.apache.ignite.configuration.schemas.network.NetworkConfigurationSchema}. Following rules are used for
+     *                applying the configuration properties:
      *                <ol>
      *                  <li>Specified property overrides existing one or just applies itself if it wasn't
      *                      previously specified.</li>
@@ -66,16 +64,15 @@ public interface Ignition {
     /**
      * Starts an Ignite node with the default configuration.
      *
-     * @param name Name of the node. Must not be {@code null}.
+     * @param name    Name of the node. Must not be {@code null}.
      * @param workDir Work directory for the started node. Must not be {@code null}.
      * @return Started Ignite node.
      */
     public Ignite start(@NotNull String name, @NotNull Path workDir);
 
     /**
-     * Stops the node with given {@code name}.
-     * It's possible to stop both already started node or node that is currently starting.
-     * Has no effect if node with specified name doesn't exist.
+     * Stops the node with given {@code name}. It's possible to stop both already started node or node that is currently starting. Has no
+     * effect if node with specified name doesn't exist.
      *
      * @param name Node name to stop.
      * @throws IllegalArgumentException if null is specified instead of node name.
diff --git a/modules/api/src/main/java/org/apache/ignite/IgnitionManager.java b/modules/api/src/main/java/org/apache/ignite/IgnitionManager.java
index f98e847..400442b 100644
--- a/modules/api/src/main/java/org/apache/ignite/IgnitionManager.java
+++ b/modules/api/src/main/java/org/apache/ignite/IgnitionManager.java
@@ -39,10 +39,9 @@ public class IgnitionManager {
      * Starts an Ignite node with an optional bootstrap configuration from a HOCON file.
      *
      * @param nodeName  Name of the node. Must not be {@code null}.
-     * @param configStr Optional node configuration based on
-     *                  {@link org.apache.ignite.configuration.schemas.runner.NodeConfigurationSchema} and
-     *                  {@link org.apache.ignite.configuration.schemas.network.NetworkConfigurationSchema}.
-     *                  Following rules are used for applying the configuration properties:
+     * @param configStr Optional node configuration based on {@link org.apache.ignite.configuration.schemas.runner.NodeConfigurationSchema}
+     *                  and {@link org.apache.ignite.configuration.schemas.network.NetworkConfigurationSchema}. Following rules are used for
+     *                  applying the configuration properties:
      *                  <ol>
      *                      <li>Specified property overrides existing one or just applies itself if it wasn't
      *                          previously specified.</li>
@@ -61,9 +60,9 @@ public class IgnitionManager {
      */
     // TODO IGNITE-14580 Add exception handling logic to IgnitionProcessor.
     public static Ignite start(
-        @NotNull String nodeName,
-        @Nullable String configStr,
-        @NotNull Path workDir
+            @NotNull String nodeName,
+            @Nullable String configStr,
+            @NotNull Path workDir
     ) {
         synchronized (IgnitionManager.class) {
             if (ignition == null) {
@@ -72,13 +71,12 @@ public class IgnitionManager {
             }
         }
 
-        if (configStr == null)
+        if (configStr == null) {
             return ignition.start(nodeName, workDir);
-        else {
+        } else {
             try (InputStream inputStream = new ByteArrayInputStream(configStr.getBytes(StandardCharsets.UTF_8))) {
                 return ignition.start(nodeName, inputStream, workDir);
-            }
-            catch (IOException e) {
+            } catch (IOException e) {
                 throw new IgniteException("Couldn't close the stream with node config.", e);
             }
         }
@@ -88,19 +86,18 @@ public class IgnitionManager {
      * Starts an Ignite node with an optional bootstrap configuration from a HOCON file.
      *
      * @param nodeName Name of the node. Must not be {@code null}.
-     * @param cfgPath Path to the node configuration in the HOCON format. Can be {@code null}.
-     * @param workDir Work directory for the started node. Must not be {@code null}.
-     * @param clsLdr The class loader to be used to load provider-configuration files
-     *               and provider classes, or {@code null} if the system class loader
-     *               (or, failing that, the bootstrap class loader) is to be used
+     * @param cfgPath  Path to the node configuration in the HOCON format. Can be {@code null}.
+     * @param workDir  Work directory for the started node. Must not be {@code null}.
+     * @param clsLdr   The class loader to be used to load provider-configuration files and provider classes, or {@code null} if the system
+     *                 class loader (or, failing that, the bootstrap class loader) is to be used
      * @return Started Ignite node.
      */
     // TODO IGNITE-14580 Add exception handling logic to IgnitionProcessor.
     public static Ignite start(
-        @NotNull String nodeName,
-        @Nullable Path cfgPath,
-        @NotNull Path workDir,
-        @Nullable ClassLoader clsLdr
+            @NotNull String nodeName,
+            @Nullable Path cfgPath,
+            @NotNull Path workDir,
+            @Nullable ClassLoader clsLdr
     ) {
         synchronized (IgnitionManager.class) {
             if (ignition == null) {
@@ -113,9 +110,8 @@ public class IgnitionManager {
     }
 
     /**
-     * Stops the node with given {@code name}.
-     * It's possible to stop both already started node or node that is currently starting.
-     * Has no effect if node with specified name doesn't exist.
+     * Stops the node with given {@code name}. It's possible to stop both already started node or node that is currently starting. Has no
+     * effect if node with specified name doesn't exist.
      *
      * @param name Node name to stop.
      * @throws IllegalArgumentException if null is specified instead of node name.
@@ -132,14 +128,12 @@ public class IgnitionManager {
     }
 
     /**
-     * Stops the node with given {@code name}.
-     * It's possible to stop both already started node or node that is currently starting.
-     * Has no effect if node with specified name doesn't exist.
+     * Stops the node with given {@code name}. It's possible to stop both already started node or node that is currently starting. Has no
+     * effect if node with specified name doesn't exist.
      *
-     * @param name Node name to stop.
-     * @param clsLdr The class loader to be used to load provider-configuration files
-     *               and provider classes, or {@code null} if the system class loader
-     *               (or, failing that, the bootstrap class loader) is to be used
+     * @param name   Node name to stop.
+     * @param clsLdr The class loader to be used to load provider-configuration files and provider classes, or {@code null} if the system
+     *               class loader (or, failing that, the bootstrap class loader) is to be used
      * @throws IllegalArgumentException if null is specified instead of node name.
      */
     public static void stop(@NotNull String name, @Nullable ClassLoader clsLdr) {
diff --git a/modules/api/src/main/java/org/apache/ignite/binary/package-info.java b/modules/api/src/main/java/org/apache/ignite/binary/package-info.java
index 95e12e1..c3375cc 100644
--- a/modules/api/src/main/java/org/apache/ignite/binary/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/binary/package-info.java
@@ -18,4 +18,5 @@
 /**
  * User binary objects API.
  */
+
 package org.apache.ignite.binary;
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/clientconnector/package-info.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/clientconnector/package-info.java
index 1fa2d80..c845912 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/clientconnector/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/clientconnector/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Configuration schemas for thin client components.
  */
+
 package org.apache.ignite.configuration.schemas.clientconnector;
\ No newline at end of file
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/network/ScaleCubeConfigurationSchema.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/network/ScaleCubeConfigurationSchema.java
index bcf6fab..8b23c21 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/network/ScaleCubeConfigurationSchema.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/network/ScaleCubeConfigurationSchema.java
@@ -26,8 +26,8 @@ import org.apache.ignite.configuration.annotation.Value;
 @Config
 public class ScaleCubeConfigurationSchema {
     /**
-     * This multiplier is used to calculate the timeout after which the node is considered dead.
-     * For more information see io.scalecube.cluster.ClusterMath#suspicionTimeout.
+     * This multiplier is used to calculate the timeout after which the node is considered dead. For more information see
+     * io.scalecube.cluster.ClusterMath#suspicionTimeout.
      */
     @Value(hasDefault = true)
     public final int membershipSuspicionMultiplier = 1;
@@ -40,7 +40,8 @@ public class ScaleCubeConfigurationSchema {
 
     /**
      * Gossip spreading interval.
-     * @see <a href="https://en.wikipedia.org/wiki/Gossip_protocol">Gossip Protocol</a>.
+     *
+     * @see <a href="https://en.wikipedia.org/wiki/Gossip_protocol">Gossip Protocol</a>
      */
     @Value(hasDefault = true)
     public final int gossipInterval = 10;
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/network/package-info.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/network/package-info.java
index 3708170..5e482fa 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/network/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/network/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Configuration schemas for Network components.
  */
+
 package org.apache.ignite.configuration.schemas.network;
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/rest/package-info.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/rest/package-info.java
index d2abda0..c294a49 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/rest/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/rest/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Configuration schemas for Rest component.
  */
+
 package org.apache.ignite.configuration.schemas.rest;
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/runner/package-info.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/runner/package-info.java
index 0d3d0f6..2fdef3d 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/runner/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/runner/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Configuration schemas for Cluster node.
  */
+
 package org.apache.ignite.configuration.schemas.runner;
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnTypeValidator.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnTypeValidator.java
index c479274..0893e07 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnTypeValidator.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnTypeValidator.java
@@ -17,19 +17,19 @@
 
 package org.apache.ignite.configuration.schemas.table;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
 /**
  * Annotation to validate whole table configuration.
  *
- * Activate SchemaTableValidatorImpl in configuration engine for {@link TablesConfigurationSchema#tables}.
+ * <p>Activate SchemaTableValidatorImpl in configuration engine for {@link TablesConfigurationSchema#tables}.
  */
-@Target({ FIELD, PARAMETER })
+@Target({FIELD, PARAMETER})
 @Retention(RUNTIME)
 public @interface ColumnTypeValidator {
 
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
index b58f145..ce7b0f9 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
@@ -17,6 +17,8 @@
 
 package org.apache.ignite.configuration.schemas.table;
 
+import static org.apache.ignite.configuration.schemas.store.DataStorageConfigurationSchema.DEFAULT_DATA_REGION_NAME;
+
 import org.apache.ignite.configuration.annotation.Config;
 import org.apache.ignite.configuration.annotation.ConfigValue;
 import org.apache.ignite.configuration.annotation.DirectAccess;
@@ -26,8 +28,6 @@ import org.apache.ignite.configuration.validation.Immutable;
 import org.apache.ignite.configuration.validation.Max;
 import org.apache.ignite.configuration.validation.Min;
 
-import static org.apache.ignite.configuration.schemas.store.DataStorageConfigurationSchema.DEFAULT_DATA_REGION_NAME;
-
 /**
  * Table configuration schema class.
  */
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableValidator.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableValidator.java
index fee009b..dea0db1 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableValidator.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableValidator.java
@@ -17,19 +17,19 @@
 
 package org.apache.ignite.configuration.schemas.table;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
 /**
  * Annotation to validate whole table configuration.
  *
- * Activate TableValidatorImpl in configuration engine for {@link TablesConfigurationSchema#tables}.
+ * <p>Activate TableValidatorImpl in configuration engine for {@link TablesConfigurationSchema#tables}.
  */
-@Target({ FIELD, PARAMETER })
+@Target({FIELD, PARAMETER})
 @Retention(RUNTIME)
 public @interface TableValidator {
 
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/package-info.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/package-info.java
index a62ef19..4c1335c 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Configuration schemas for Table and Schema components.
  */
+
 package org.apache.ignite.configuration.schemas.table;
diff --git a/modules/api/src/main/java/org/apache/ignite/lang/IgniteException.java b/modules/api/src/main/java/org/apache/ignite/lang/IgniteException.java
index d5d5739..727c10a 100644
--- a/modules/api/src/main/java/org/apache/ignite/lang/IgniteException.java
+++ b/modules/api/src/main/java/org/apache/ignite/lang/IgniteException.java
@@ -43,8 +43,7 @@ public class IgniteException extends RuntimeException {
     }
 
     /**
-     * Creates a new grid exception with the given throwable as a cause and
-     * source of error message.
+     * Creates a new grid exception with the given throwable as a cause and source of error message.
      *
      * @param cause Non-null throwable cause.
      */
@@ -55,7 +54,7 @@ public class IgniteException extends RuntimeException {
     /**
      * Creates a new exception with the given error message and optional nested exception.
      *
-     * @param msg Error message.
+     * @param msg   Error message.
      * @param cause Optional nested exception (can be {@code null}).
      */
     public IgniteException(String msg, @Nullable Throwable cause) {
@@ -63,7 +62,8 @@ public class IgniteException extends RuntimeException {
     }
 
     /** {@inheritDoc} */
-    @Override public String toString() {
+    @Override
+    public String toString() {
         return getClass() + ": " + getMessage();
     }
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/lang/TableAlreadyExistsException.java b/modules/api/src/main/java/org/apache/ignite/lang/TableAlreadyExistsException.java
index 8e48946..a82cb91 100644
--- a/modules/api/src/main/java/org/apache/ignite/lang/TableAlreadyExistsException.java
+++ b/modules/api/src/main/java/org/apache/ignite/lang/TableAlreadyExistsException.java
@@ -18,8 +18,7 @@
 package org.apache.ignite.lang;
 
 /**
- * This exception is thrown when a new table failed to be created,
- * because a table with same name already exists.
+ * This exception is thrown when a new table failed to be created, because a table with same name already exists.
  */
 public class TableAlreadyExistsException extends IgniteException {
     /**
diff --git a/modules/api/src/main/java/org/apache/ignite/lang/package-info.java b/modules/api/src/main/java/org/apache/ignite/lang/package-info.java
index 24dcea1..fa1e94b 100644
--- a/modules/api/src/main/java/org/apache/ignite/lang/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/lang/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Ignite general purpose classes and interfaces.
  */
+
 package org.apache.ignite.lang;
diff --git a/modules/api/src/main/java/org/apache/ignite/package-info.java b/modules/api/src/main/java/org/apache/ignite/package-info.java
index ad494ae..70dac2f 100644
--- a/modules/api/src/main/java/org/apache/ignite/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Contains Ignite node API and classes for node lifecycle management.
  */
+
 package org.apache.ignite;
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/ColumnType.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/ColumnType.java
index 853dee1..47b7747 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/ColumnType.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/ColumnType.java
@@ -117,8 +117,9 @@ public class ColumnType {
      * @throws IllegalArgumentException If precision value was invalid.
      */
     public static NumberColumnType numberOf(int precision) {
-        if (precision <= 0)
+        if (precision <= 0) {
             throw new IllegalArgumentException("Precision [" + precision + "] must be positive integer value.");
+        }
 
         return new NumberColumnType(ColumnTypeSpec.NUMBER, precision);
     }
@@ -137,20 +138,23 @@ public class ColumnType {
      * Returns decimal type with given precision and scale.
      *
      * @param precision Precision.
-     * @param scale Scale.
+     * @param scale     Scale.
      * @return Decimal type.
      * @throws IllegalArgumentException If precision and/or scale values were invalid.
      */
     public static DecimalColumnType decimalOf(int precision, int scale) {
-        if (precision <= 0)
+        if (precision <= 0) {
             throw new IllegalArgumentException("Precision [" + precision + "] must be positive integer value.");
+        }
 
-        if (scale < 0)
+        if (scale < 0) {
             throw new IllegalArgumentException("Scale [" + scale + "] must be non-negative integer value.");
+        }
 
-        if (precision < scale)
-            throw new IllegalArgumentException("Precision [" + precision + "] must be" +
-                                                   " not lower than scale [ " + scale + " ].");
+        if (precision < scale) {
+            throw new IllegalArgumentException("Precision [" + precision + "] must be"
+                    + " not lower than scale [ " + scale + " ].");
+        }
 
         return new DecimalColumnType(ColumnTypeSpec.DECIMAL, precision, scale);
     }
@@ -163,15 +167,15 @@ public class ColumnType {
      */
     public static DecimalColumnType decimalOf() {
         return new DecimalColumnType(
-            ColumnTypeSpec.DECIMAL,
-            DecimalColumnType.DEFAULT_PRECISION,
-            DecimalColumnType.DEFAULT_SCALE
+                ColumnTypeSpec.DECIMAL,
+                DecimalColumnType.DEFAULT_PRECISION,
+                DecimalColumnType.DEFAULT_SCALE
         );
     }
 
     /**
-     * Returns timezone-free type representing a time of day in hours, minutes, seconds, and fractional seconds
-     * with the default precision of 6 (microseconds).
+     * Returns timezone-free type representing a time of day in hours, minutes, seconds, and fractional seconds with the default precision
+     * of 6 (microseconds).
      *
      * @return Native type.
      * @see TemporalColumnType#DEFAULT_PRECISION
@@ -183,17 +187,17 @@ public class ColumnType {
 
     /**
      * Returns timezone-free type representing a time of day in hours, minutes, seconds, and fractional seconds.
-     * <p>
-     * Precision is a number of digits in fractional seconds part,
-     * from 0 - whole seconds precision up to 9 - nanoseconds precision.
+     *
+     * <p>Precision is a number of digits in fractional seconds part, from 0 - whole seconds precision up to 9 - nanoseconds precision.
      *
      * @param precision The number of digits in fractional seconds part. Accepted values are in range [0-9].
      * @return Native type.
      * @throws IllegalArgumentException If precision value was invalid.
      */
     public static TemporalColumnType time(int precision) {
-        if (precision < 0 || precision > 9)
+        if (precision < 0 || precision > 9) {
             throw new IllegalArgumentException("Unsupported fractional seconds precision: " + precision);
+        }
 
         return new TemporalColumnType(ColumnTypeSpec.TIME, precision);
     }
@@ -211,24 +215,25 @@ public class ColumnType {
 
     /**
      * Returns timezone-free datetime encoded as (date, time).
-     * <p>
-     * Precision is a number of digits in fractional seconds part of time,
-     * from 0 - whole seconds precision up to 9 - nanoseconds precision.
+     *
+     * <p>Precision is a number of digits in fractional seconds part of time, from 0 - whole seconds precision up to 9 - nanoseconds
+     * precision.
      *
      * @param precision The number of digits in fractional seconds part. Accepted values are in range [0-9].
      * @return Native type.
      * @throws IllegalArgumentException If precision value was invalid.
      */
     public static TemporalColumnType datetime(int precision) {
-        if (precision < 0 || precision > 9)
+        if (precision < 0 || precision > 9) {
             throw new IllegalArgumentException("Unsupported fractional seconds precision: " + precision);
+        }
 
         return new TemporalColumnType(ColumnTypeSpec.DATETIME, precision);
     }
 
     /**
-     * Returns point in time as number of ticks since Jan 1, 1970 00:00:00.000 (with no timezone)
-     * with the default precision of 6 (microseconds).
+     * Returns point in time as number of ticks since Jan 1, 1970 00:00:00.000 (with no timezone) with the default precision of 6
+     * (microseconds).
      *
      * @return Native type.
      * @see TemporalColumnType#DEFAULT_PRECISION
@@ -239,19 +244,20 @@ public class ColumnType {
     }
 
     /**
-     * Returns point in time as number of ticks since Jan 1, 1970 00:00:00.000 (with no timezone).
-     * Ticks that are stored can be precised to second, millisecond, microsecond or nanosecond.
-     * <p>
-     * Precision is a number of digits in fractional seconds part of time,
-     * from 0 - whole seconds precision up to 9 - nanoseconds precision.
+     * Returns point in time as number of ticks since Jan 1, 1970 00:00:00.000 (with no timezone). Ticks that are stored can be precised to
+     * second, millisecond, microsecond or nanosecond.
+     *
+     * <p>Precision is a number of digits in fractional seconds part of time, from 0 - whole seconds precision up to 9 - nanoseconds
+     * precision.
      *
      * @param precision The number of digits in fractional seconds part. Accepted values are in range [0-9].
      * @return Native type.
      * @throws IllegalArgumentException If precision value was invalid.
      */
     public static TemporalColumnType timestamp(int precision) {
-        if (precision < 0 || precision > 9)
+        if (precision < 0 || precision > 9) {
             throw new IllegalArgumentException("Unsupported fractional seconds precision: " + precision);
+        }
 
         return new TemporalColumnType(ColumnTypeSpec.TIMESTAMP, precision);
     }
@@ -273,7 +279,7 @@ public class ColumnType {
          * Creates variable-length column type.
          *
          * @param typeSpec Type spec.
-         * @param length Type max length.
+         * @param length   Type max length.
          */
         private VarLenColumnType(ColumnTypeSpec typeSpec, int length) {
             super(typeSpec);
@@ -291,23 +297,28 @@ public class ColumnType {
         }
 
         /** {@inheritDoc} */
-        @Override public boolean equals(Object o) {
-            if (this == o)
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
                 return true;
+            }
 
-            if (o == null || getClass() != o.getClass())
+            if (o == null || getClass() != o.getClass()) {
                 return false;
+            }
 
-            if (!super.equals(o))
+            if (!super.equals(o)) {
                 return false;
+            }
 
-            VarLenColumnType type = (VarLenColumnType)o;
+            VarLenColumnType type = (VarLenColumnType) o;
 
             return length == type.length;
         }
 
         /** {@inheritDoc} */
-        @Override public int hashCode() {
+        @Override
+        public int hashCode() {
             return Objects.hash(super.hashCode(), length);
         }
     }
@@ -331,9 +342,9 @@ public class ColumnType {
         /**
          * Creates numeric column type.
          *
-         * @param typeSpec Type spec.
+         * @param typeSpec  Type spec.
          * @param precision Precision.
-         * @param scale Scale.
+         * @param scale     Scale.
          */
         private DecimalColumnType(ColumnTypeSpec typeSpec, int precision, int scale) {
             super(typeSpec);
@@ -361,23 +372,28 @@ public class ColumnType {
         }
 
         /** {@inheritDoc} */
-        @Override public boolean equals(Object o) {
-            if (this == o)
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
                 return true;
+            }
 
-            if (o == null || getClass() != o.getClass())
+            if (o == null || getClass() != o.getClass()) {
                 return false;
+            }
 
-            if (!super.equals(o))
+            if (!super.equals(o)) {
                 return false;
+            }
 
-            DecimalColumnType type = (DecimalColumnType)o;
+            DecimalColumnType type = (DecimalColumnType) o;
 
             return precision == type.precision && scale == type.scale;
         }
 
         /** {@inheritDoc} */
-        @Override public int hashCode() {
+        @Override
+        public int hashCode() {
             return Objects.hash(super.hashCode(), precision, scale);
         }
     }
@@ -395,7 +411,7 @@ public class ColumnType {
         /**
          * Constructor.
          *
-         * @param typeSpec Type specification.
+         * @param typeSpec  Type specification.
          * @param precision Precision.
          */
         private NumberColumnType(ColumnTypeSpec typeSpec, int precision) {
@@ -414,23 +430,28 @@ public class ColumnType {
         }
 
         /** {@inheritDoc} */
-        @Override public boolean equals(Object o) {
-            if (this == o)
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
                 return true;
+            }
 
-            if (o == null || getClass() != o.getClass())
+            if (o == null || getClass() != o.getClass()) {
                 return false;
+            }
 
-            if (!super.equals(o))
+            if (!super.equals(o)) {
                 return false;
+            }
 
-            NumberColumnType type = (NumberColumnType)o;
+            NumberColumnType type = (NumberColumnType) o;
 
             return precision == type.precision;
         }
 
         /** {@inheritDoc} */
-        @Override public int hashCode() {
+        @Override
+        public int hashCode() {
             return Objects.hash(super.hashCode(), precision);
         }
     }
@@ -448,9 +469,9 @@ public class ColumnType {
         /**
          * Creates temporal type.
          *
-         * @param typeSpec Type spec.
-         * @param precision Fractional seconds meaningful digits. Allowed values are 0-9,
-         * where {@code 0} means second precision, {@code 9} means 1-ns precision.
+         * @param typeSpec  Type spec.
+         * @param precision Fractional seconds meaningful digits. Allowed values are 0-9, where {@code 0} means second precision, {@code 9}
+         *                  means 1-ns precision.
          */
         private TemporalColumnType(ColumnTypeSpec typeSpec, int precision) {
             super(typeSpec);
@@ -470,23 +491,28 @@ public class ColumnType {
         }
 
         /** {@inheritDoc} */
-        @Override public boolean equals(Object o) {
-            if (this == o)
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
                 return true;
+            }
 
-            if (o == null || getClass() != o.getClass())
+            if (o == null || getClass() != o.getClass()) {
                 return false;
+            }
 
-            if (!super.equals(o))
+            if (!super.equals(o)) {
                 return false;
+            }
 
-            TemporalColumnType type = (TemporalColumnType)o;
+            TemporalColumnType type = (TemporalColumnType) o;
 
             return precision == type.precision;
         }
 
         /** {@inheritDoc} */
-        @Override public int hashCode() {
+        @Override
+        public int hashCode() {
             return Objects.hash(super.hashCode(), precision);
         }
     }
@@ -578,20 +604,24 @@ public class ColumnType {
     }
 
     /** {@inheritDoc} */
-    @Override public boolean equals(Object o) {
-        if (this == o)
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
             return true;
+        }
 
-        if (o == null || getClass() != o.getClass())
+        if (o == null || getClass() != o.getClass()) {
             return false;
+        }
 
-        ColumnType type = (ColumnType)o;
+        ColumnType type = (ColumnType) o;
 
         return typeSpec == type.typeSpec;
     }
 
     /** {@inheritDoc} */
-    @Override public int hashCode() {
+    @Override
+    public int hashCode() {
         return Objects.hash(typeSpec);
     }
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/SchemaManagementMode.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/SchemaManagementMode.java
index 893dbcd..40049cd 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/SchemaManagementMode.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/SchemaManagementMode.java
@@ -19,21 +19,19 @@ package org.apache.ignite.schema.definition;
 
 /**
  * Schema mode.
- * <p>
- * Defines the way inserting data will be validated against the schema and schema evolution capabilities.
+ *
+ * <p>Defines the way inserting data will be validated against the schema and schema evolution capabilities.
  */
 //TODO: rename to MANUAL and AUTO?
 public enum SchemaManagementMode {
     /**
-     * Normal mode offers strong validation for the inserting data.
-     * Explicit schema changes only are allowed.
+     * Normal mode offers strong validation for the inserting data. Explicit schema changes only are allowed.
      */
     STRICT,
 
     /**
-     * Extended mode that allows the schema to be fit the inserting data automatically.
-     * Only safe implicit schema changes are allowed, e.g. adding extra columns and widening column type.
-     * Changes like column removal or narrowing column type won't be applied implicitly.
+     * Extended mode that allows the schema to be fit the inserting data automatically. Only safe implicit schema changes are allowed, e.g.
+     * adding extra columns and widening column type. Changes like column removal or narrowing column type won't be applied implicitly.
      */
     LIVE
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/TableDefinition.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/TableDefinition.java
index 9c7a6b4..7cf0e95 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/TableDefinition.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/TableDefinition.java
@@ -33,7 +33,8 @@ public interface TableDefinition extends SchemaObject {
      *
      * @return Table name.
      */
-    @Override String name();
+    @Override
+    String name();
 
     /**
      * Returns key columns.
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/ColumnDefinitionBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/ColumnDefinitionBuilder.java
index 4fd540a..045cd4a 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/ColumnDefinitionBuilder.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/ColumnDefinitionBuilder.java
@@ -47,13 +47,15 @@ public interface ColumnDefinitionBuilder extends SchemaObjectBuilder {
     ColumnDefinitionBuilder withDefaultValueExpression(Object defValExpr);
 
     /** {@inheritDoc} */
-    @Override ColumnDefinitionBuilder withHints(Map<String, String> hints);
+    @Override
+    ColumnDefinitionBuilder withHints(Map<String, String> hints);
 
     /**
      * Builds column.
      *
      * @return Built column.
      */
-    @Override ColumnDefinition build();
+    @Override
+    ColumnDefinition build();
 }
 
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/HashIndexDefinitionBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/HashIndexDefinitionBuilder.java
index 4718374..7b66666 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/HashIndexDefinitionBuilder.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/HashIndexDefinitionBuilder.java
@@ -33,12 +33,14 @@ public interface HashIndexDefinitionBuilder extends SchemaObjectBuilder {
     HashIndexDefinitionBuilder withColumns(String... columns);
 
     /** {@inheritDoc} */
-    @Override HashIndexDefinitionBuilder withHints(Map<String, String> hints);
+    @Override
+    HashIndexDefinitionBuilder withHints(Map<String, String> hints);
 
     /**
      * Builds hash index.
      *
      * @return Hash index.
      */
-    @Override HashIndexDefinition build();
+    @Override
+    HashIndexDefinition build();
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PartialIndexDefinitionBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PartialIndexDefinitionBuilder.java
index dcdf98a..2dd10ec 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PartialIndexDefinitionBuilder.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PartialIndexDefinitionBuilder.java
@@ -33,17 +33,20 @@ public interface PartialIndexDefinitionBuilder extends SortedIndexDefinitionBuil
     PartialIndexDefinitionBuilder withExpression(String expr);
 
     /** {@inheritDoc} */
-    @Override PartialIndexColumnBuilder addIndexColumn(String name);
+    @Override
+    PartialIndexColumnBuilder addIndexColumn(String name);
 
     /** {@inheritDoc} */
-    @Override PartialIndexDefinitionBuilder withHints(Map<String, String> hints);
+    @Override
+    PartialIndexDefinitionBuilder withHints(Map<String, String> hints);
 
     /**
      * Builds partial index.
      *
      * @return Partial index.
      */
-    @Override PartialIndexDefinition build();
+    @Override
+    PartialIndexDefinition build();
 
     /**
      * Index column builder.
@@ -51,15 +54,19 @@ public interface PartialIndexDefinitionBuilder extends SortedIndexDefinitionBuil
     @SuppressWarnings("PublicInnerClass")
     interface PartialIndexColumnBuilder extends SortedIndexColumnBuilder {
         /** {@inheritDoc} */
-        @Override PartialIndexColumnBuilder desc();
+        @Override
+        PartialIndexColumnBuilder desc();
 
         /** {@inheritDoc} */
-        @Override PartialIndexColumnBuilder asc();
+        @Override
+        PartialIndexColumnBuilder asc();
 
         /** {@inheritDoc} */
-        @Override PartialIndexColumnBuilder withName(String name);
+        @Override
+        PartialIndexColumnBuilder withName(String name);
 
         /** {@inheritDoc} */
-        @Override PartialIndexDefinitionBuilder done();
+        @Override
+        PartialIndexDefinitionBuilder done();
     }
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PrimaryKeyDefinitionBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PrimaryKeyDefinitionBuilder.java
index 0fd70e7..15818f1 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PrimaryKeyDefinitionBuilder.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/PrimaryKeyDefinitionBuilder.java
@@ -44,5 +44,6 @@ public interface PrimaryKeyDefinitionBuilder extends SchemaObjectBuilder {
      *
      * @return Primary key.
      */
-    @Override PrimaryKeyDefinition build();
+    @Override
+    PrimaryKeyDefinition build();
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SortedIndexDefinitionBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SortedIndexDefinitionBuilder.java
index 7fb74a2..7ec4f15 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SortedIndexDefinitionBuilder.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/builder/SortedIndexDefinitionBuilder.java
@@ -33,7 +33,8 @@ public interface SortedIndexDefinitionBuilder extends SchemaObjectBuilder {
     SortedIndexColumnBuilder addIndexColumn(String name);
 
     /** {@inheritDoc} */
-    @Override SortedIndexDefinitionBuilder withHints(Map<String, String> hints);
+    @Override
+    SortedIndexDefinitionBuilder withHints(Map<String, String> hints);
 
     /**
      * Unique index flag.
@@ -47,7 +48,8 @@ public interface SortedIndexDefinitionBuilder extends SchemaObjectBuilder {
      *
      * @return Sorted index.
      */
-    @Override SortedIndexDefinition build();
+    @Override
+    SortedIndexDefinition build();
 
     /**
      * Index column builder.
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/HashIndexDefinition.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/HashIndexDefinition.java
index 8da1925..aac94aa 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/HashIndexDefinition.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/HashIndexDefinition.java
@@ -22,7 +22,8 @@ package org.apache.ignite.schema.definition.index;
  */
 public interface HashIndexDefinition extends ColumnarIndexDefinition {
     /** {@inheritDoc} */
-    @Override default String type() {
+    @Override
+    default String type() {
         return "HASH";
     }
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/IndexDefinition.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/IndexDefinition.java
index 9ca4da9..fd69267 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/IndexDefinition.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/IndexDefinition.java
@@ -28,13 +28,14 @@ public interface IndexDefinition extends SchemaObject {
      *
      * @return Index name.
      */
-    @Override String name();
+    @Override
+    String name();
 
     /**
      * Unique index flag.
-     * <p>
-     * Limitation: Index MUST have all affinity columns declared explicitly.
-     * This requirement allows omitting cluster wide constraint checks.
+     *
+     * <p>Limitation: Index MUST have all affinity columns declared explicitly. This requirement allows omitting cluster wide constraint
+     * checks.
      *
      * @return Unique flag.
      */
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/PartialIndexDefinition.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/PartialIndexDefinition.java
index 1f8754f..aff8e3b 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/PartialIndexDefinition.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/PartialIndexDefinition.java
@@ -29,7 +29,8 @@ public interface PartialIndexDefinition extends SortedIndexDefinition {
     String expr();
 
     /** {@inheritDoc} */
-    @Override default String type() {
+    @Override
+    default String type() {
         return "PARTIAL";
     }
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/SortedIndexDefinition.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/SortedIndexDefinition.java
index 7e4d5d0..4ab099e 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/SortedIndexDefinition.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/SortedIndexDefinition.java
@@ -24,13 +24,16 @@ import java.util.List;
  */
 public interface SortedIndexDefinition extends ColumnarIndexDefinition {
     /** {@inheritDoc} */
-    @Override List<SortedIndexColumnDefinition> columns();
+    @Override
+    List<SortedIndexColumnDefinition> columns();
 
     /** {@inheritDoc} */
-    @Override List<SortedIndexColumnDefinition> indexedColumns();
+    @Override
+    List<SortedIndexColumnDefinition> indexedColumns();
 
     /** {@inheritDoc} */
-    @Override default String type() {
+    @Override
+    default String type() {
         return "SORTED";
     }
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/package-info.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/package-info.java
index 885e305..fde4f7e 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Contains index definition interfaces.
  */
+
 package org.apache.ignite.schema.definition.index;
\ No newline at end of file
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/definition/package-info.java b/modules/api/src/main/java/org/apache/ignite/schema/definition/package-info.java
index 4dacdbd..3a4c042 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/definition/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/definition/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Contains table schema definition interfaces and classes.
  */
+
 package org.apache.ignite.schema.definition;
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java
index 9e0d234..b3abeb3 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java
@@ -22,7 +22,7 @@ import org.apache.ignite.schema.definition.ColumnType;
 /**
  * Alter column builder.
  *
- * NOTE: Only safe actions that can be applied automatically on-fly are allowed.
+ * <p>NOTE: Only safe actions that can be applied automatically on-fly are allowed.
  */
 public interface AlterColumnBuilder {
     /**
@@ -35,8 +35,8 @@ public interface AlterColumnBuilder {
 
     /**
      * Convert column to a new type.
-     * <p>
-     * Note: New type must be compatible with old.
+     *
+     * <p>Note: New type must be compatible with old.
      *
      * @param newType New column type.
      * @return {@code this} for chaining.
@@ -61,8 +61,7 @@ public interface AlterColumnBuilder {
     /**
      * Mark column as non-nullable.
      *
-     * Note: Replacement param is mandatory, all previously stored 'nulls'
-     * will be treated as replacement value on read.
+     * <p>Note: Replacement param is mandatory, all previously stored 'nulls' will be treated as replacement value on read.
      *
      * @param replacement Non-null value, that 'null' will be converted to.
      * @return {@code this} for chaining.
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java
index 2a07e5d..af45085 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java
@@ -50,8 +50,8 @@ public interface TableModificationBuilder {
 
     /**
      * Drops value column.
-     * <p>
-     * Note: Key column drop is not allowed.
+     *
+     * <p>Note: Key column drop is not allowed.
      *
      * @param columnName Column.
      * @return {@code this} for chaining.
@@ -68,8 +68,8 @@ public interface TableModificationBuilder {
 
     /**
      * Drops table index.
-     * <p>
-     * Note: PK can't be dropped.
+     *
+     * <p>Note: PK can't be dropped.
      *
      * @param indexName Index name.
      * @return {@code this} for chaining.
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java b/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java
index 7caac85..1b154ca 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Table schema manipulation API.
  */
+
 package org.apache.ignite.schema.modification;
diff --git a/modules/api/src/main/java/org/apache/ignite/table/InvocationContext.java b/modules/api/src/main/java/org/apache/ignite/table/InvocationContext.java
index ba79b0e..9ecd60c 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/InvocationContext.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/InvocationContext.java
@@ -18,14 +18,12 @@
 package org.apache.ignite.table;
 
 /**
- * Invocation context provides access to invoke operation call parameters,
- * a method to set a new value for the key.
- * <p>
- * InvokeProcessor executes atomically under lock which makes impossible
- * to trigger 'live-schema' upgrade within the invoke operation.
+ * Invocation context provides access to invoke operation call parameters, a method to set a new value for the key.
+ *
+ * <p>InvokeProcessor executes atomically under lock which makes impossible to trigger 'live-schema' upgrade within the invoke operation.
  * Any try to update the row leading to schema change will end up with {@link InvokeProcessorException}.
- * <p>
- * New value MUST BE compliant with the current schema version.
+ *
+ * <p>New value MUST BE compliant with the current schema version.
  *
  * @param <K> Target object type.
  * @param <V> Value object type.
@@ -41,9 +39,9 @@ public interface InvocationContext<K, V> {
 
     /**
      * Returns an object the user provide to invoke call for running invoke processor against the associated row.
-     * <p>
-     * Depending on Table view the invoke operation is called on, the returning value is either value object or
-     * record object or tuple with value fields set.
+     *
+     * <p>Depending on Table view the invoke operation is called on, the returning value is either value object or record object or tuple
+     * with value fields set.
      *
      * @return Object which target row is associated with.
      */
@@ -51,9 +49,9 @@ public interface InvocationContext<K, V> {
 
     /**
      * Returns current value object for the target row.
-     * <p>
-     * Depending on Table view the invoke operation is called on, the returning value is either value object or
-     * record object or tuple with value fields set or {@code null} for non-existed row.
+     *
+     * <p>Depending on Table view the invoke operation is called on, the returning value is either value object or record object or tuple
+     * with value fields set or {@code null} for non-existed row.
      *
      * @return Current value of target row or {@code null} if value associated with the key is not exists.
      */
@@ -61,9 +59,9 @@ public interface InvocationContext<K, V> {
 
     /**
      * Sets a new value object for the target row.
-     * <p>
-     * Depending on Table view the invoke operation is called on, a new value can be either value object or
-     * record object or tuple with value fields set or {@code null} for removal.
+     *
+     * <p>Depending on Table view the invoke operation is called on, a new value can be either value object or record object or tuple with
+     * value fields set or {@code null} for removal.
      *
      * @param val Value object to set.
      * @throws InvokeProcessorException if new value is not compliant with the current schema.
diff --git a/modules/api/src/main/java/org/apache/ignite/table/InvokeProcessor.java b/modules/api/src/main/java/org/apache/ignite/table/InvokeProcessor.java
index 689b3cf..3f4e75d 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/InvokeProcessor.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/InvokeProcessor.java
@@ -20,20 +20,18 @@ package org.apache.ignite.table;
 import java.io.Serializable;
 
 /**
- * Invoke processor interface provides API to run code on server side against a table record
- * associated with provided key.
- * <p>
- * For non-binary projections row will be deserialized to user object(s) before the invocation
- * and serialized back if a new value was set via {@linkplain InvocationContext#value(Object)}.
- * <p>
- * Invoke operation arguments along with invoke operation result classes MUST be serializable
- * as they can be transferred over network.
+ * Invoke processor interface provides API to run code on server side against a table record associated with provided key.
+ *
+ * <p>For non-binary projections row will be deserialized to user object(s) before the invocation and serialized back if a new value was set
+ * via {@linkplain InvocationContext#value(Object)}.
+ *
+ * <p>Invoke operation arguments along with invoke operation result classes MUST be serializable as they can be transferred over network.
  *
  * @param <K> Key object type.
  * @param <V> Value type.
  * @param <R> Processor result type.
- * @apiNote Distributed deployment MUST be used for processor code load instead of load form the classpath
- * to guarantee same code revision in the grid.
+ * @apiNote Distributed deployment MUST be used for processor code load instead of load form the classpath to guarantee same code revision
+ *      in the grid.
  */
 public interface InvokeProcessor<K, V, R extends Serializable> extends Serializable {
     /**
diff --git a/modules/api/src/main/java/org/apache/ignite/table/KeyValueView.java b/modules/api/src/main/java/org/apache/ignite/table/KeyValueView.java
index 8275474..cbe80a0 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/KeyValueView.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/KeyValueView.java
@@ -38,8 +38,7 @@ public interface KeyValueView<K, V> {
     /**
      * Gets a value associated with the given key.
      *
-     * @param key A key which associated the value is to be returned.
-     * The key cannot be {@code null}.
+     * @param key A key which associated the value is to be returned. The key cannot be {@code null}.
      * @return Value or {@code null}, if it does not exist.
      */
     V get(@NotNull K key);
@@ -47,8 +46,7 @@ public interface KeyValueView<K, V> {
     /**
      * Asynchronously gets a value associated with the given key.
      *
-     * @param key A key which associated the value is to be returned.
-     * The key cannot be {@code null}.
+     * @param key A key which associated the value is to be returned. The key cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<V> getAsync(@NotNull K key);
@@ -56,8 +54,7 @@ public interface KeyValueView<K, V> {
     /**
      * Get values associated with given keys.
      *
-     * @param keys Keys which associated values are to be returned.
-     * The keys cannot be {@code null}.
+     * @param keys Keys which associated values are to be returned. The keys cannot be {@code null}.
      * @return Values associated with given keys.
      */
     Map<K, V> getAll(@NotNull Collection<K> keys);
@@ -65,8 +62,7 @@ public interface KeyValueView<K, V> {
     /**
      * Get values associated with given keys.
      *
-     * @param keys Keys whose associated values are to be returned.
-     * The keys cannot be {@code null}.
+     * @param keys Keys whose associated values are to be returned. The keys cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Map<K, V>> getAllAsync(@NotNull Collection<K> keys);
@@ -74,8 +70,7 @@ public interface KeyValueView<K, V> {
     /**
      * Determines if the table contains an entry for the specified key.
      *
-     * @param key A key which presence is to be tested.
-     * The key cannot be {@code null}.
+     * @param key A key which presence is to be tested. The key cannot be {@code null}.
      * @return {@code True} if a value exists for the specified key, {@code false} otherwise.
      */
     boolean contains(@NotNull K key);
@@ -83,8 +78,7 @@ public interface KeyValueView<K, V> {
     /**
      * Determines if the table contains an entry for the specified key.
      *
-     * @param key A key which presence is to be tested.
-     * The key cannot be {@code null}.
+     * @param key A key which presence is to be tested. The key cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     CompletableFuture<Boolean> containsAsync(@NotNull K key);
@@ -92,8 +86,7 @@ public interface KeyValueView<K, V> {
     /**
      * Puts value associated with given key into the table.
      *
-     * @param key A key with which the specified value is to be associated.
-     * The key cannot be {@code null}.
+     * @param key A key with which the specified value is to be associated. The key cannot be {@code null}.
      * @param val Value to be associated with the specified key.
      */
     void put(@NotNull K key, V val);
@@ -101,8 +94,7 @@ public interface KeyValueView<K, V> {
     /**
      * Asynchronously puts value associated with given key into the table.
      *
-     * @param key A key with which the specified value is to be associated.
-     * The key cannot be {@code null}.
+     * @param key A key with which the specified value is to be associated. The key cannot be {@code null}.
      * @param val Value to be associated with the specified key.
      * @return Future representing pending completion of the operation.
      */
@@ -111,16 +103,14 @@ public interface KeyValueView<K, V> {
     /**
      * Put associated key-value pairs.
      *
-     * @param pairs Key-value pairs.
-     * The pairs cannot be {@code null}.
+     * @param pairs Key-value pairs. The pairs cannot be {@code null}.
      */
     void putAll(@NotNull Map<K, V> pairs);
 
     /**
      * Asynchronously put associated key-value pairs.
      *
-     * @param pairs Key-value pairs.
-     * The pairs cannot be {@code null}.
+     * @param pairs Key-value pairs. The pairs cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Void> putAllAsync(@NotNull Map<K, V> pairs);
@@ -128,8 +118,7 @@ public interface KeyValueView<K, V> {
     /**
      * Puts new or replaces existed value associated with given key into the table.
      *
-     * @param key A key with which the specified value is to be associated.
-     * The key cannot be {@code null}.
+     * @param key A key with which the specified value is to be associated. The key cannot be {@code null}.
      * @param val Value to be associated with the specified key.
      * @return Replaced value or {@code null}, if not existed.
      */
@@ -138,8 +127,7 @@ public interface KeyValueView<K, V> {
     /**
      * Asynchronously puts new or replaces existed value associated with given key into the table.
      *
-     * @param key A key with which the specified value is to be associated.
-     * The key cannot be {@code null}.
+     * @param key A key with which the specified value is to be associated. The key cannot be {@code null}.
      * @param val Value to be associated with the specified key.
      * @return Future representing pending completion of the operation.
      */
@@ -148,8 +136,7 @@ public interface KeyValueView<K, V> {
     /**
      * Puts value associated with given key into the table if not exists.
      *
-     * @param key A key with which the specified value is to be associated.
-     * The key cannot be {@code null}.
+     * @param key A key with which the specified value is to be associated. The key cannot be {@code null}.
      * @param val Value to be associated with the specified key.
      * @return {@code True} if successful, {@code false} otherwise.
      */
@@ -158,8 +145,7 @@ public interface KeyValueView<K, V> {
     /**
      * Asynchronously puts value associated with given key into the table if not exists.
      *
-     * @param key Key with which the specified value is to be associated.
-     * The key cannot be {@code null}.
+     * @param key Key with which the specified value is to be associated. The key cannot be {@code null}.
      * @param val Value to be associated with the specified key.
      * @return Future representing pending completion of the operation.
      */
@@ -168,36 +154,32 @@ public interface KeyValueView<K, V> {
     /**
      * Removes value associated with given key from the table.
      *
-     * @param key A key which mapping is to be removed from the table.
-     * The key cannot be {@code null}.
+     * @param key A key which mapping is to be removed from the table. The key cannot be {@code null}.
      * @return {@code True} if a value associated with the specified key was successfully removed, {@code false} otherwise.
      */
     boolean remove(@NotNull K key);
 
     /**
-     * Asynchronously removes value associated with given key from the table.
-     *
-     * @param key A key which mapping is to be removed from the table.
-     * The key cannot be {@code null}.
-     * @return Future representing pending completion of the operation.
-     */
-    @NotNull CompletableFuture<Boolean> removeAsync(@NotNull K key);
-
-    /**
      * Removes an expected value associated with the given key from the table.
      *
-     * @param key A key which associated value is to be removed from the table.
-     * The key cannot be {@code null}.
+     * @param key A key which associated value is to be removed from the table. The key cannot be {@code null}.
      * @param val Expected value. The value cannot be {@code null}.
      * @return {@code True} if the expected value for the specified key was successfully removed, {@code false} otherwise.
      */
     boolean remove(@NotNull K key, @NotNull V val);
 
     /**
+     * Asynchronously removes value associated with given key from the table.
+     *
+     * @param key A key which mapping is to be removed from the table. The key cannot be {@code null}.
+     * @return Future representing pending completion of the operation.
+     */
+    @NotNull CompletableFuture<Boolean> removeAsync(@NotNull K key);
+
+    /**
      * Asynchronously removes expected value associated with given key from the table.
      *
-     * @param key A key which associated the value is to be removed from the table.
-     * The key cannot be {@code null}.
+     * @param key A key which associated the value is to be removed from the table. The key cannot be {@code null}.
      * @param val Expected value. The value cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
@@ -206,8 +188,7 @@ public interface KeyValueView<K, V> {
     /**
      * Remove values associated with given keys from the table.
      *
-     * @param keys Keys which mapping is to be removed from the table.
-     * The keys cannot be {@code null}.
+     * @param keys Keys which mapping is to be removed from the table. The keys cannot be {@code null}.
      * @return Keys which did not exist.
      */
     Collection<K> removeAll(@NotNull Collection<K> keys);
@@ -215,8 +196,7 @@ public interface KeyValueView<K, V> {
     /**
      * Asynchronously remove values associated with given keys from the table.
      *
-     * @param keys Keys which mapping is to be removed from the table.
-     * The keys cannot be {@code null}.
+     * @param keys Keys which mapping is to be removed from the table. The keys cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Collection<K>> removeAllAsync(@NotNull Collection<K> keys);
@@ -224,8 +204,7 @@ public interface KeyValueView<K, V> {
     /**
      * Gets then removes value associated with given key from the table.
      *
-     * @param key A key which associated value is to be removed from the table.
-     * The key cannot be {@code null}.
+     * @param key A key which associated value is to be removed from the table. The key cannot be {@code null}.
      * @return Removed value or {@code null}, if not existed.
      */
     V getAndRemove(@NotNull K key);
@@ -233,8 +212,7 @@ public interface KeyValueView<K, V> {
     /**
      * Asynchronously gets then removes value associated with given key from the table.
      *
-     * @param key A Key which mapping is to be removed from the table.
-     * The key cannot be {@code null}.
+     * @param key A Key which mapping is to be removed from the table. The key cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<V> getAndRemoveAsync(@NotNull K key);
@@ -250,25 +228,13 @@ public interface KeyValueView<K, V> {
      * }</code></pre>
      * except that the action is performed atomically.
      *
-     * @param key A key with which the specified value is associated.
-     * The key cannot be {@code null}.
+     * @param key A key with which the specified value is associated. The key cannot be {@code null}.
      * @param val Value to be associated with the specified key.
      * @return {@code True} if an old value was replaced, {@code false} otherwise.
      */
     boolean replace(@NotNull K key, V val);
 
     /**
-     * Asynchronously replaces the value for a key only if exists.
-     * See {@link #replace(Object, Object)}.
-     *
-     * @param key A key with which the specified value is associated.
-     * The key cannot be {@code null}.
-     * @param val Value to be associated with the specified key.
-     * @return Future representing pending completion of the operation.
-     */
-    @NotNull CompletableFuture<Boolean> replaceAsync(@NotNull K key, V val);
-
-    /**
      * Replaces the expected value for a key. This is equivalent to
      * <pre><code>
      * if (cache.get(key) == oldVal) {
@@ -279,8 +245,7 @@ public interface KeyValueView<K, V> {
      * }</code></pre>
      * except that the action is performed atomically.
      *
-     * @param key A key with which the specified value is associated.
-     * The key cannot be {@code null}.
+     * @param key    A key with which the specified value is associated. The key cannot be {@code null}.
      * @param oldVal Expected value associated with the specified key.
      * @param newVal Value to be associated with the specified key.
      * @return {@code True} if an old value was replaced, {@code false} otherwise.
@@ -288,11 +253,18 @@ public interface KeyValueView<K, V> {
     boolean replace(@NotNull K key, V oldVal, V newVal);
 
     /**
-     * Asynchronously replaces the expected value for a key.
-     * See {@link #replace(Object, Object, Object)}
+     * Asynchronously replaces the value for a key only if exists. See {@link #replace(Object, Object)}.
+     *
+     * @param key A key with which the specified value is associated. The key cannot be {@code null}.
+     * @param val Value to be associated with the specified key.
+     * @return Future representing pending completion of the operation.
+     */
+    @NotNull CompletableFuture<Boolean> replaceAsync(@NotNull K key, V val);
+
+    /**
+     * Asynchronously replaces the expected value for a key. See {@link #replace(Object, Object, Object)}
      *
-     * @param key A key with which the specified value is associated.
-     * The key cannot be {@code null}.
+     * @param key    A key with which the specified value is associated. The key cannot be {@code null}.
      * @param oldVal Expected value associated with the specified key.
      * @param newVal Value to be associated with the specified key.
      * @return Future representing pending completion of the operation.
@@ -312,19 +284,16 @@ public interface KeyValueView<K, V> {
      * </code></pre>
      * except that the action is performed atomically.
      *
-     * @param key A key with which the specified value is associated.
-     * The key cannot be {@code null}.
+     * @param key A key with which the specified value is associated. The key cannot be {@code null}.
      * @param val Value to be associated with the specified key.
      * @return Replaced value, or {@code null} if not existed.
      */
     V getAndReplace(@NotNull K key, V val);
 
     /**
-     * Asynchronously replaces the value for a given key only if exists.
-     * See {@link #getAndReplace(Object, Object)}
+     * Asynchronously replaces the value for a given key only if exists. See {@link #getAndReplace(Object, Object)}
      *
-     * @param key A key with which the specified value is associated.
-     * The key cannot be {@code null}.
+     * @param key A key with which the specified value is associated. The key cannot be {@code null}.
      * @param val Value to be associated with the specified key.
      * @return Future representing pending completion of the operation.
      */
@@ -333,11 +302,10 @@ public interface KeyValueView<K, V> {
     /**
      * Executes invoke processor code against the value associated with the provided key.
      *
-     * @param key A key associated with the value that invoke processor will be applied to.
-     * The key cannot be {@code null}.
+     * @param key  A key associated with the value that invoke processor will be applied to. The key cannot be {@code null}.
      * @param proc Invoke processor.
      * @param args Optional invoke processor arguments.
-     * @param <R> Invoke processor result type.
+     * @param <R>  Invoke processor result type.
      * @return Result of the processing.
      * @see InvokeProcessor
      */
@@ -346,50 +314,47 @@ public interface KeyValueView<K, V> {
     /**
      * Asynchronously executes invoke processor code against the value associated with the provided key.
      *
-     * @param key A key associated with the value that invoke processor will be applied to.
-     * The key cannot be {@code null}.
+     * @param key  A key associated with the value that invoke processor will be applied to. The key cannot be {@code null}.
      * @param proc Invoke processor.
      * @param args Optional invoke processor arguments.
-     * @param <R> Invoke processor result type.
+     * @param <R>  Invoke processor result type.
      * @return Future representing pending completion of the operation.
      * @see InvokeProcessor
      */
     @NotNull <R extends Serializable> CompletableFuture<R> invokeAsync(
-        @NotNull K key,
-        InvokeProcessor<K, V, R> proc,
-        Serializable... args);
+            @NotNull K key,
+            InvokeProcessor<K, V, R> proc,
+            Serializable... args);
 
     /**
      * Executes invoke processor code against values associated with the provided keys.
      *
-     * @param <R> Invoke processor result type.
-     * @param keys Ordered collection of keys which values associated with should be processed.
-     * The keys cannot be {@code null}.
+     * @param <R>  Invoke processor result type.
+     * @param keys Ordered collection of keys which values associated with should be processed. The keys cannot be {@code null}.
      * @param proc Invoke processor.
      * @param args Optional invoke processor arguments.
      * @return Results of the processing.
      * @see InvokeProcessor
      */
     <R extends Serializable> Map<K, R> invokeAll(
-        @NotNull Collection<K> keys,
-        InvokeProcessor<K, V, R> proc,
-        Serializable... args);
+            @NotNull Collection<K> keys,
+            InvokeProcessor<K, V, R> proc,
+            Serializable... args);
 
     /**
      * Asynchronously executes invoke processor code against values associated with the provided keys.
      *
-     * @param <R> Invoke processor result type.
-     * @param keys Ordered collection of keys which values associated with should be processed.
-     * The keys cannot be {@code null}.
+     * @param <R>  Invoke processor result type.
+     * @param keys Ordered collection of keys which values associated with should be processed. The keys cannot be {@code null}.
      * @param proc Invoke processor.
      * @param args Optional invoke processor arguments.
      * @return Future representing pending completion of the operation.
      * @see InvokeProcessor
      */
     @NotNull <R extends Serializable> CompletableFuture<Map<K, R>> invokeAllAsync(
-        @NotNull Collection<K> keys,
-        InvokeProcessor<K, V, R> proc,
-        Serializable... args);
+            @NotNull Collection<K> keys,
+            InvokeProcessor<K, V, R> proc,
+            Serializable... args);
 
     /**
      * Returns current transaction.
diff --git a/modules/api/src/main/java/org/apache/ignite/table/RecordView.java b/modules/api/src/main/java/org/apache/ignite/table/RecordView.java
index 1352515..01a17d9 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/RecordView.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/RecordView.java
@@ -34,8 +34,7 @@ public interface RecordView<R> {
     /**
      * Gets a record with same key columns values as given one from the table.
      *
-     * @param keyRec A record with key columns set.
-     * The record cannot be {@code null}.
+     * @param keyRec A record with key columns set. The record cannot be {@code null}.
      * @return A record with all columns filled from the table.
      */
     R get(@NotNull R keyRec);
@@ -43,8 +42,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously gets a record with same key columns values as given one from the table.
      *
-     * @param keyRec A record with key columns set.
-     * The record cannot be {@code null}.
+     * @param keyRec A record with key columns set. The record cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<R> getAsync(@NotNull R keyRec);
@@ -52,8 +50,7 @@ public interface RecordView<R> {
     /**
      * Get records from the table.
      *
-     * @param keyRecs Records with key columns set.
-     * The records cannot be {@code null}.
+     * @param keyRecs Records with key columns set. The records cannot be {@code null}.
      * @return Records with all columns filled from the table.
      */
     Collection<R> getAll(@NotNull Collection<R> keyRecs);
@@ -61,8 +58,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously get records from the table.
      *
-     * @param keyRecs Records with key columns set.
-     * The records cannot be {@code null}.
+     * @param keyRecs Records with key columns set. The records cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Collection<R>> getAllAsync(@NotNull Collection<R> keyRecs);
@@ -70,16 +66,14 @@ public interface RecordView<R> {
     /**
      * Inserts a record into the table if does not exist or replaces the existed one.
      *
-     * @param rec A record to insert into the table.
-     * The record cannot be {@code null}.
+     * @param rec A record to insert into the table. The record cannot be {@code null}.
      */
     void upsert(@NotNull R rec);
 
     /**
      * Asynchronously inserts a record into the table if does not exist or replaces the existed one.
      *
-     * @param rec A record to insert into the table.
-     * The record cannot be {@code null}.
+     * @param rec A record to insert into the table. The record cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Void> upsertAsync(@NotNull R rec);
@@ -87,16 +81,14 @@ public interface RecordView<R> {
     /**
      * Insert records into the table if does not exist or replaces the existed one.
      *
-     * @param recs Records to insert into the table.
-     * The records cannot be {@code null}.
+     * @param recs Records to insert into the table. The records cannot be {@code null}.
      */
     void upsertAll(@NotNull Collection<R> recs);
 
     /**
      * Asynchronously inserts a record into the table if does not exist or replaces the existed one.
      *
-     * @param recs Records to insert into the table.
-     * The records cannot be {@code null}.
+     * @param recs Records to insert into the table. The records cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Void> upsertAllAsync(@NotNull Collection<R> recs);
@@ -104,8 +96,7 @@ public interface RecordView<R> {
     /**
      * Inserts a record into the table or replaces if exists and return replaced previous record.
      *
-     * @param rec A record to insert into the table.
-     * The record cannot be {@code null}.
+     * @param rec A record to insert into the table. The record cannot be {@code null}.
      * @return Replaced record or {@code null} if not existed.
      */
     R getAndUpsert(@NotNull R rec);
@@ -113,8 +104,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously inserts a record into the table or replaces if exists and return replaced previous record.
      *
-     * @param rec A record to insert into the table.
-     * The record cannot be {@code null}.
+     * @param rec A record to insert into the table. The record cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<R> getAndUpsertAsync(@NotNull R rec);
@@ -122,8 +112,7 @@ public interface RecordView<R> {
     /**
      * Inserts a record into the table if not exists.
      *
-     * @param rec A record to insert into the table.
-     * The record cannot be {@code null}.
+     * @param rec A record to insert into the table. The record cannot be {@code null}.
      * @return {@code True} if successful, {@code false} otherwise.
      */
     boolean insert(@NotNull R rec);
@@ -131,8 +120,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously inserts a record into the table if not exists.
      *
-     * @param rec A record to insert into the table.
-     * The record cannot be {@code null}.
+     * @param rec A record to insert into the table. The record cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Boolean> insertAsync(@NotNull R rec);
@@ -140,8 +128,7 @@ public interface RecordView<R> {
     /**
      * Insert records into the table which do not exist, skipping existed ones.
      *
-     * @param recs Records to insert into the table.
-     * The records cannot be {@code null}.
+     * @param recs Records to insert into the table. The records cannot be {@code null}.
      * @return Skipped records.
      */
     Collection<R> insertAll(@NotNull Collection<R> recs);
@@ -149,8 +136,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously insert records into the table which do not exist, skipping existed ones.
      *
-     * @param recs Records to insert into the table.
-     * The records cannot be {@code null}.
+     * @param recs Records to insert into the table. The records cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Collection<R>> insertAllAsync(@NotNull Collection<R> recs);
@@ -158,59 +144,50 @@ public interface RecordView<R> {
     /**
      * Replaces an existed record associated with the same key columns values as the given one has.
      *
-     * @param rec A record to replace with.
-     * The record cannot be {@code null}.
+     * @param rec A record to replace with. The record cannot be {@code null}.
      * @return {@code True} if old record was found and replaced successfully, {@code false} otherwise.
      */
     boolean replace(@NotNull R rec);
 
     /**
-     * Asynchronously replaces an existed record associated with the same key columns values as the given one has.
+     * Replaces an expected record in the table with the given new one.
      *
-     * @param rec A record to replace with.
-     * The record cannot be {@code null}.
-     * @return Future representing pending completion of the operation.
+     * @param oldRec A record to replace. The record cannot be {@code null}.
+     * @param newRec A record to replace with. The record cannot be {@code null}.
+     * @return {@code True} if the old record replaced successfully, {@code false} otherwise.
      */
-    @NotNull CompletableFuture<Boolean> replaceAsync(@NotNull R rec);
+    boolean replace(@NotNull R oldRec, @NotNull R newRec);
 
     /**
-     * Replaces an expected record in the table with the given new one.
+     * Asynchronously replaces an existed record associated with the same key columns values as the given one has.
      *
-     * @param oldRec A record to replace.
-     * The record cannot be {@code null}.
-     * @param newRec A record to replace with.
-     * The record cannot be {@code null}.
-     * @return {@code True} if the old record replaced successfully, {@code false} otherwise.
+     * @param rec A record to replace with. The record cannot be {@code null}.
+     * @return Future representing pending completion of the operation.
      */
-    boolean replace(@NotNull R oldRec, @NotNull R newRec);
+    @NotNull CompletableFuture<Boolean> replaceAsync(@NotNull R rec);
 
     /**
      * Asynchronously replaces an expected record in the table with the given new one.
      *
-     * @param oldRec A record to replace.
-     * The record cannot be {@code null}.
-     * @param newRec A record to replace with.
-     * The record cannot be {@code null}.
+     * @param oldRec A record to replace. The record cannot be {@code null}.
+     * @param newRec A record to replace with. The record cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Boolean> replaceAsync(@NotNull R oldRec, @NotNull R newRec);
 
     /**
-     * Gets an existed record associated with the same key columns values as the given one has,
-     * then replaces with the given one.
+     * Gets an existed record associated with the same key columns values as the given one has, then replaces with the given one.
      *
-     * @param rec A record to replace with.
-     * The record cannot be {@code null}.
+     * @param rec A record to replace with. The record cannot be {@code null}.
      * @return Replaced record or {@code null} if not existed.
      */
     R getAndReplace(@NotNull R rec);
 
     /**
-     * Asynchronously gets an existed record associated with the same key columns values as the given one has,
-     * then replaces with the given one.
+     * Asynchronously gets an existed record associated with the same key columns values as the given one has, then replaces with the given
+     * one.
      *
-     * @param rec A record to replace with.
-     * The record cannot be {@code null}.
+     * @param rec A record to replace with. The record cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<R> getAndReplaceAsync(@NotNull R rec);
@@ -218,8 +195,7 @@ public interface RecordView<R> {
     /**
      * Deletes a record with the same key columns values as the given one from the table.
      *
-     * @param keyRec A record with key columns set.
-     * The record cannot be {@code null}.
+     * @param keyRec A record with key columns set. The record cannot be {@code null}.
      * @return {@code True} if removed successfully, {@code false} otherwise.
      */
     boolean delete(@NotNull R keyRec);
@@ -227,8 +203,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously deletes a record with the same key columns values as the given one from the table.
      *
-     * @param keyRec A record with key columns set.
-     * The record cannot be {@code null}.
+     * @param keyRec A record with key columns set. The record cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Boolean> deleteAsync(@NotNull R keyRec);
@@ -236,8 +211,7 @@ public interface RecordView<R> {
     /**
      * Deletes the given record from the table.
      *
-     * @param rec A record to delete.
-     * The record cannot be {@code null}.
+     * @param rec A record to delete. The record cannot be {@code null}.
      * @return {@code True} if removed successfully, {@code false} otherwise.
      */
     boolean deleteExact(@NotNull R rec);
@@ -245,8 +219,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously deletes given record from the table.
      *
-     * @param rec A record to delete.
-     * The record cannot be {@code null}.
+     * @param rec A record to delete. The record cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Boolean> deleteExactAsync(@NotNull R rec);
@@ -254,8 +227,7 @@ public interface RecordView<R> {
     /**
      * Gets then deletes a record with the same key columns values from the table.
      *
-     * @param rec A record with key columns set.
-     * The record cannot be {@code null}.
+     * @param rec A record with key columns set. The record cannot be {@code null}.
      * @return Removed record or {@code null} if not existed.
      */
     R getAndDelete(@NotNull R rec);
@@ -263,8 +235,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously gets then deletes a record with the same key columns values from the table.
      *
-     * @param rec A record with key columns set.
-     * The record cannot be {@code null}.
+     * @param rec A record with key columns set. The record cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<R> getAndDeleteAsync(@NotNull R rec);
@@ -272,8 +243,7 @@ public interface RecordView<R> {
     /**
      * Remove records with the same key columns values as the given one has from the table.
      *
-     * @param recs Records with key columns set.
-     * The records cannot be {@code null}.
+     * @param recs Records with key columns set. The records cannot be {@code null}.
      * @return Records with key columns set that did not exist.
      */
     Collection<R> deleteAll(@NotNull Collection<R> recs);
@@ -281,8 +251,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously remove records with the same key columns values as the given one has from the table.
      *
-     * @param recs Records with key columns set.
-     * The records cannot be {@code null}.
+     * @param recs Records with key columns set. The records cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Collection<R>> deleteAllAsync(@NotNull Collection<R> recs);
@@ -290,8 +259,7 @@ public interface RecordView<R> {
     /**
      * Remove given records from the table.
      *
-     * @param recs Records to delete.
-     * The records cannot be {@code null}.
+     * @param recs Records to delete. The records cannot be {@code null}.
      * @return Records that were not deleted.
      */
     Collection<R> deleteAllExact(@NotNull Collection<R> recs);
@@ -299,8 +267,7 @@ public interface RecordView<R> {
     /**
      * Asynchronously remove given records from the table.
      *
-     * @param recs Records to delete.
-     * The records cannot be {@code null}.
+     * @param recs Records to delete. The records cannot be {@code null}.
      * @return Future representing pending completion of the operation.
      */
     @NotNull CompletableFuture<Collection<R>> deleteAllExactAsync(@NotNull Collection<R> recs);
@@ -308,22 +275,19 @@ public interface RecordView<R> {
     /**
      * Executes an InvokeProcessor code against a record with the same key columns values as the given one has.
      *
-     * @param keyRec A record with key columns set.
-     * The record cannot be {@code null}.
-     * @param proc Invoke processor.
-     * @param <T> InvokeProcessor result type.
+     * @param keyRec A record with key columns set. The record cannot be {@code null}.
+     * @param proc   Invoke processor.
+     * @param <T>    InvokeProcessor result type.
      * @return Results of the processing.
      */
     <T extends Serializable> T invoke(@NotNull R keyRec, InvokeProcessor<R, R, T> proc);
 
     /**
-     * Asynchronously executes an InvokeProcessor code against a record
-     * with the same key columns values as the given one has.
+     * Asynchronously executes an InvokeProcessor code against a record with the same key columns values as the given one has.
      *
-     * @param keyRec A record with key columns set.
-     * The record cannot be {@code null}.
-     * @param proc Invoke processor.
-     * @param <T> InvokeProcessor result type.
+     * @param keyRec A record with key columns set. The record cannot be {@code null}.
+     * @param proc   Invoke processor.
+     * @param <T>    InvokeProcessor result type.
      * @return Future representing pending completion of the operation.
      */
     @NotNull <T extends Serializable> CompletableFuture<T> invokeAsync(@NotNull R keyRec, InvokeProcessor<R, R, T> proc);
@@ -331,26 +295,23 @@ public interface RecordView<R> {
     /**
      * Executes an InvokeProcessor code against records with the same key columns values as the given ones has.
      *
-     * @param keyRecs Records with key columns set.
-     * The records cannot be {@code null}.
-     * @param proc Invoke processor.
-     * @param <T> InvokeProcessor result type.
+     * @param keyRecs Records with key columns set. The records cannot be {@code null}.
+     * @param proc    Invoke processor.
+     * @param <T>     InvokeProcessor result type.
      * @return Results of the processing.
      */
     <T extends Serializable> Map<R, T> invokeAll(@NotNull Collection<R> keyRecs, InvokeProcessor<R, R, T> proc);
 
     /**
-     * Asynchronously executes an InvokeProcessor against records with the same key columns values as the given ones
-     * has.
+     * Asynchronously executes an InvokeProcessor against records with the same key columns values as the given ones has.
      *
-     * @param keyRecs Records with key columns set.
-     * The records cannot be {@code null}.
-     * @param proc Invoke processor.
-     * @param <T> InvokeProcessor result type.
+     * @param keyRecs Records with key columns set. The records cannot be {@code null}.
+     * @param proc    Invoke processor.
+     * @param <T>     InvokeProcessor result type.
      * @return Results of the processing.
      */
     @NotNull <T extends Serializable> CompletableFuture<Map<R, T>> invokeAllAsync(@NotNull Collection<R> keyRecs,
-        InvokeProcessor<R, R, T> proc);
+            InvokeProcessor<R, R, T> proc);
 
     /**
      * Returns current transaction.
diff --git a/modules/api/src/main/java/org/apache/ignite/table/Table.java b/modules/api/src/main/java/org/apache/ignite/table/Table.java
index 14e6f75..979bac5 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/Table.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/Table.java
@@ -23,9 +23,9 @@ import org.jetbrains.annotations.NotNull;
 
 /**
  * Table provides different views (key-value vs record) and approaches (mapped-object vs binary) to reach the data.
- * <p>
- * Binary table views might be useful in cases (but not limited) when user key-value classes are not in classpath
- * and/or when deserialization of whole table record is unwanted due to performance reasons.
+ *
+ * <p>Binary table views might be useful in cases (but not limited) when user key-value classes are not in classpath and/or when
+ * deserialization of whole table record is unwanted due to performance reasons.
  *
  * @see RecordView
  * @see KeyValueView
@@ -42,7 +42,7 @@ public interface Table {
      * Creates record view of table for record class mapper provided.
      *
      * @param recMapper Record class mapper.
-     * @param <R> Record type.
+     * @param <R>       Record type.
      * @return Table record view.
      */
     <R> RecordView<R> recordView(Mapper<R> recMapper);
@@ -55,12 +55,23 @@ public interface Table {
     RecordView<Tuple> recordView();
 
     /**
+     * Creates record view of table for record class provided.
+     *
+     * @param recCls Record class.
+     * @param <R>    Record type.
+     * @return Table record view.
+     */
+    default <R> RecordView<R> recordView(Class<R> recCls) {
+        return recordView(Mappers.ofRecordClass(recCls));
+    }
+
+    /**
      * Creates key-value view of table for key-value class mappers provided.
      *
      * @param keyMapper Key class mapper.
      * @param valMapper Value class mapper.
-     * @param <K> Key type.
-     * @param <V> Value type.
+     * @param <K>       Key type.
+     * @param <V>       Value type.
      * @return Table key-value view.
      */
     <K, V> KeyValueView<K, V> keyValueView(Mapper<K> keyMapper, Mapper<V> valMapper);
@@ -73,23 +84,12 @@ public interface Table {
     KeyValueView<Tuple, Tuple> keyValueView();
 
     /**
-     * Creates record view of table for record class provided.
-     *
-     * @param recCls Record class.
-     * @param <R> Record type.
-     * @return Table record view.
-     */
-    default <R> RecordView<R> recordView(Class<R> recCls) {
-        return recordView(Mappers.ofRecordClass(recCls));
-    }
-
-    /**
      * Creates key-value view of table for key and value classes provided.
      *
      * @param keyCls Key class.
      * @param valCls Value class.
-     * @param <K> Key type.
-     * @param <V> Value type.
+     * @param <K>    Key type.
+     * @param <V>    Value type.
      * @return Table key-value view.
      */
     default <K, V> KeyValueView<K, V> keyValueView(Class<K> keyCls, Class<V> valCls) {
diff --git a/modules/api/src/main/java/org/apache/ignite/table/Tuple.java b/modules/api/src/main/java/org/apache/ignite/table/Tuple.java
index f6c7bb9..3166ec0 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/Tuple.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/Tuple.java
@@ -30,8 +30,8 @@ import org.jetbrains.annotations.NotNull;
 
 /**
  * Tuple represents arbitrary set of columns whose values is accessible by column name.
- * <p>
- * Provides specialized method for some value-types to avoid boxing/unboxing.
+ *
+ * <p>Provides specialized method for some value-types to avoid boxing/unboxing.
  */
 public interface Tuple extends Iterable<Object> {
     /**
@@ -62,8 +62,9 @@ public interface Tuple extends Iterable<Object> {
     static Tuple create(Map<String, Object> map) {
         TupleImpl tuple = new TupleImpl(map.size());
 
-        for (Map.Entry<String, Object> entry : map.entrySet())
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
             tuple.set(entry.getKey(), entry.getValue());
+        }
 
         return tuple;
     }
@@ -80,12 +81,12 @@ public interface Tuple extends Iterable<Object> {
 
     /**
      * Returns the hash code value for the tuple.
-     * <p>
-     * The hash code of a tuple is defined to be the sum of the hash codes of each pair of column name and column value.
-     * This ensures that {@code m1.equals(m2)} implies that {@code m1.hashCode()==m2.hashCode()} for any tuples
-     * {@code m1} and {@code m2}, as required by the general contract of {@link Object#hashCode}.
-     * <p>
-     * The hash code of a pair of column name and column value {@code i} is defined to be:
+     *
+     * <p>The hash code of a tuple is defined to be the sum of the hash codes of each pair of column name and column value. This ensures
+     * that {@code m1.equals(m2)} implies that {@code m1.hashCode()==m2.hashCode()} for any tuples {@code m1} and {@code m2}, as required
+     * by the general contract of {@link Object#hashCode}.
+     *
+     * <p>The hash code of a pair of column name and column value {@code i} is defined to be:
      * <pre>(columnName(i).hashCode()) ^ (value(i)==null ? 0 : value(i).hashCode())</pre>
      *
      * @param tuple Tuple.
@@ -105,42 +106,63 @@ public interface Tuple extends Iterable<Object> {
     }
 
     /**
+     * Returns the hash code value for this tuple.
+     *
+     * @return the hash code value for this tuple.
+     * @see #hashCode(Tuple)
+     * @see Object#hashCode()
+     */
+    int hashCode();
+
+    /**
      * Compares tuples for equality.
-     * <p>
-     * Returns {@code true} if both tuples represent the same column name to column value mappings.
-     * <p>
-     * This implementation first checks if both tuples is of same size; if not, it returns {@code false};
-     * If so, it iterates over columns of first tuple and checks that the second tuple contains each mapping
-     * that the first one contains.  If the second tuple fails to contain such a mapping, {@code false} is returned;
-     * If the iteration completes, {@code true} is returned.
-     *
-     * @param firstTuple First tuple to compare.
+     *
+     * <p>Returns {@code true} if both tuples represent the same column name to column value mappings.
+     *
+     * <p>This implementation first checks if both tuples is of same size; if not, it returns {@code false}; If so, it iterates over
+     * columns of first tuple and checks that the second tuple contains each mapping that the first one contains.  If the second tuple
+     * fails to contain such a mapping, {@code false} is returned; If the iteration completes, {@code true} is returned.
+     *
+     * @param firstTuple  First tuple to compare.
      * @param secondTuple Second tuple to compare.
      * @return {@code true} if the first tuple is equal to the second tuple.
      */
     static boolean equals(Tuple firstTuple, Tuple secondTuple) {
-        if (firstTuple == secondTuple)
+        if (firstTuple == secondTuple) {
             return true;
+        }
 
         int columns = firstTuple.columnCount();
 
-        if (columns != secondTuple.columnCount())
+        if (columns != secondTuple.columnCount()) {
             return false;
+        }
 
         for (int idx = 0; idx < columns; idx++) {
             int idx2 = secondTuple.columnIndex(firstTuple.columnName(idx));
 
-            if (idx2 < 0)
+            if (idx2 < 0) {
                 return false;
+            }
 
-            if (!Objects.deepEquals(firstTuple.value(idx), secondTuple.value(idx2)))
+            if (!Objects.deepEquals(firstTuple.value(idx), secondTuple.value(idx2))) {
                 return false;
+            }
         }
 
         return true;
     }
 
     /**
+     * Indicates whether some other object is "equal to" this one.
+     *
+     * @return {@code true} if this object is the same as the obj argument; {@code false} otherwise.
+     * @see Tuple#equals(Tuple, Tuple)
+     * @see Object#equals(Object)
+     */
+    boolean equals(Object obj);
+
+    /**
      * Gets the number of columns in this tuple.
      *
      * @return Number of columns.
@@ -167,9 +189,9 @@ public interface Tuple extends Iterable<Object> {
     /**
      * Gets column value when a column with specified name is present in this tuple; returns default value otherwise.
      *
-     * @param columnName Column name.
+     * @param columnName   Column name.
      * @param defaultValue Default value.
-     * @param <T> Column default value type.
+     * @param <T>          Column default value type.
      * @return Column value if this tuple contains a column with the specified name. Otherwise returns {@code defaultValue}.
      */
     <T> T valueOrDefault(@NotNull String columnName, T defaultValue);
@@ -178,7 +200,7 @@ public interface Tuple extends Iterable<Object> {
      * Sets column value.
      *
      * @param columnName Column name.
-     * @param value Value to set.
+     * @param value      Value to set.
      * @return {@code this} for chaining.
      */
     Tuple set(@NotNull String columnName, Object value);
@@ -187,7 +209,7 @@ public interface Tuple extends Iterable<Object> {
      * Gets column value for given column name.
      *
      * @param columnName Column name.
-     * @param <T> Value type.
+     * @param <T>        Value type.
      * @return Column value.
      * @throws IllegalArgumentException If column with given name doesn't exists.
      */
@@ -197,7 +219,7 @@ public interface Tuple extends Iterable<Object> {
      * Gets column value for given column index.
      *
      * @param columnIndex Column index.
-     * @param <T> Value type.
+     * @param <T>         Value type.
      * @return Column value.
      * @throws IndexOutOfBoundsException If column with given index doesn't exists.
      */
@@ -454,22 +476,4 @@ public interface Tuple extends Iterable<Object> {
      * @throws IndexOutOfBoundsException If column with given index doesn't exists.
      */
     Instant timestampValue(int columnIndex);
-
-    /**
-     * Returns the hash code value for this tuple.
-     *
-     * @return the hash code value for this tuple.
-     * @see #hashCode(Tuple)
-     * @see Object#hashCode()
-     */
-    int hashCode();
-
-    /**
-     * Indicates whether some other object is "equal to" this one.
-     *
-     * @return {@code true} if this object is the same as the obj argument; {@code false} otherwise.
-     * @see Tuple#equals(Tuple, Tuple)
-     * @see Object#equals(Object)
-     */
-    boolean equals(Object obj);
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java b/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
index d26fa1d..6d7955f 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
@@ -38,13 +38,13 @@ import org.jetbrains.annotations.NotNull;
  * Simple tuple implementation.
  */
 class TupleImpl implements Tuple, Serializable {
-    /** Version UID. */
+    /** Serial version uid. */
     private static final long serialVersionUID = 0L;
 
     /**
      * Column name -&gt; index mapping.
-     * <p>
-     * Note: Transient because it's recoverable from {@link #colNames}.
+     *
+     * <p>Note: Transient because it's recoverable from {@link #colNames}.
      */
     private transient Map<String, Integer> colMapping;
 
@@ -78,16 +78,17 @@ class TupleImpl implements Tuple, Serializable {
     TupleImpl(@NotNull Tuple tuple) {
         this(tuple.columnCount());
 
-        for (int i = 0, len = tuple.columnCount(); i < len; i++)
+        for (int i = 0, len = tuple.columnCount(); i < len; i++) {
             set(tuple.columnName(i), tuple.value(i));
+        }
     }
 
     /**
      * A private constructor.
      *
      * @param columnMapping Column name-to-idx mapping.
-     * @param columnNames List of columns names.
-     * @param columnValues List of columns values.
+     * @param columnNames   List of columns names.
+     * @param columnValues  List of columns values.
      */
     private TupleImpl(Map<String, Integer> columnMapping, List<String> columnNames, List<Object> columnValues) {
         this.colMapping = columnMapping;
@@ -96,7 +97,8 @@ class TupleImpl implements Tuple, Serializable {
     }
 
     /** {@inheritDoc} */
-    @Override public Tuple set(@NotNull String columnName, Object val) {
+    @Override
+    public Tuple set(@NotNull String columnName, Object val) {
         int idx = colMapping.computeIfAbsent(Objects.requireNonNull(columnName), name -> colMapping.size());
 
         if (idx == colNames.size()) {
@@ -111,14 +113,16 @@ class TupleImpl implements Tuple, Serializable {
     }
 
     /** {@inheritDoc} */
-    @Override public String columnName(int columnIndex) {
+    @Override
+    public String columnName(int columnIndex) {
         Objects.checkIndex(columnIndex, colValues.size());
 
         return colNames.get(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public int columnIndex(@NotNull String columnName) {
+    @Override
+    public int columnIndex(@NotNull String columnName) {
         Objects.requireNonNull(columnName);
 
         Integer idx = colMapping.get(columnName);
@@ -127,204 +131,245 @@ class TupleImpl implements Tuple, Serializable {
     }
 
     /** {@inheritDoc} */
-    @Override public int columnCount() {
+    @Override
+    public int columnCount() {
         return colNames.size();
     }
 
     /** {@inheritDoc} */
-    @Override public <T> T valueOrDefault(@NotNull String columnName, T def) {
+    @Override
+    public <T> T valueOrDefault(@NotNull String columnName, T def) {
         int idx = columnIndex(columnName);
 
-        return (idx == -1) ? def : (T)colValues.get(idx);
+        return (idx == -1) ? def : (T) colValues.get(idx);
     }
 
     /** {@inheritDoc} */
-    @Override public <T> T value(@NotNull String columnName) {
+    @Override
+    public <T> T value(@NotNull String columnName) {
         int idx = columnIndex(columnName);
 
-        if (idx == -1)
+        if (idx == -1) {
             throw new IllegalArgumentException("Column not found: columnName=" + columnName);
+        }
 
-        return (T)colValues.get(idx);
+        return (T) colValues.get(idx);
     }
 
     /** {@inheritDoc} */
-    @Override public <T> T value(int columnIndex) {
+    @Override
+    public <T> T value(int columnIndex) {
         Objects.checkIndex(columnIndex, colValues.size());
 
-        return (T)colValues.get(columnIndex);
+        return (T) colValues.get(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public BinaryObject binaryObjectValue(@NotNull String columnName) {
+    @Override
+    public BinaryObject binaryObjectValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public BinaryObject binaryObjectValue(int columnIndex) {
+    @Override
+    public BinaryObject binaryObjectValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public byte byteValue(@NotNull String columnName) {
+    @Override
+    public byte byteValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public byte byteValue(int columnIndex) {
+    @Override
+    public byte byteValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public short shortValue(@NotNull String columnName) {
+    @Override
+    public short shortValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public short shortValue(int columnIndex) {
+    @Override
+    public short shortValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public int intValue(@NotNull String columnName) {
+    @Override
+    public int intValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public int intValue(int columnIndex) {
+    @Override
+    public int intValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public long longValue(@NotNull String columnName) {
+    @Override
+    public long longValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public long longValue(int columnIndex) {
+    @Override
+    public long longValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public float floatValue(@NotNull String columnName) {
+    @Override
+    public float floatValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public float floatValue(int columnIndex) {
+    @Override
+    public float floatValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public double doubleValue(@NotNull String columnName) {
+    @Override
+    public double doubleValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public double doubleValue(int columnIndex) {
+    @Override
+    public double doubleValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public String stringValue(@NotNull String columnName) {
+    @Override
+    public String stringValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public String stringValue(int columnIndex) {
+    @Override
+    public String stringValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public UUID uuidValue(@NotNull String columnName) {
+    @Override
+    public UUID uuidValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public UUID uuidValue(int columnIndex) {
+    @Override
+    public UUID uuidValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public BitSet bitmaskValue(@NotNull String columnName) {
+    @Override
+    public BitSet bitmaskValue(@NotNull String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public BitSet bitmaskValue(int columnIndex) {
+    @Override
+    public BitSet bitmaskValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public LocalDate dateValue(String columnName) {
+    @Override
+    public LocalDate dateValue(String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public LocalDate dateValue(int columnIndex) {
+    @Override
+    public LocalDate dateValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public LocalTime timeValue(String columnName) {
+    @Override
+    public LocalTime timeValue(String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public LocalTime timeValue(int columnIndex) {
+    @Override
+    public LocalTime timeValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public LocalDateTime datetimeValue(String columnName) {
+    @Override
+    public LocalDateTime datetimeValue(String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public LocalDateTime datetimeValue(int columnIndex) {
+    @Override
+    public LocalDateTime datetimeValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @Override public Instant timestampValue(String columnName) {
+    @Override
+    public Instant timestampValue(String columnName) {
         return value(columnName);
     }
 
     /** {@inheritDoc} */
-    @Override public Instant timestampValue(int columnIndex) {
+    @Override
+    public Instant timestampValue(int columnIndex) {
         return value(columnIndex);
     }
 
     /** {@inheritDoc} */
-    @NotNull @Override public Iterator<Object> iterator() {
+    @NotNull
+    @Override
+    public Iterator<Object> iterator() {
         return new Iterator<>() {
             /** Current column index. */
             private int cur = 0;
 
             /** {@inheritDoc} */
-            @Override public boolean hasNext() {
+            @Override
+            public boolean hasNext() {
                 return cur < colValues.size();
             }
 
             /** {@inheritDoc} */
-            @Override public Object next() {
+            @Override
+            public Object next() {
                 return hasNext() ? colValues.get(cur++) : null;
             }
         };
     }
 
     /** {@inheritDoc} */
-    @Override public int hashCode() {
+    @Override
+    public int hashCode() {
         return Tuple.hashCode(this);
     }
 
     /** {@inheritDoc} */
-    @Override public boolean equals(Object obj) {
-        if (this == obj)
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
             return true;
+        }
 
-        if (obj instanceof Tuple)
-            return Tuple.equals(this, (Tuple)obj);
+        if (obj instanceof Tuple) {
+            return Tuple.equals(this, (Tuple) obj);
+        }
 
         return false;
     }
@@ -342,7 +387,8 @@ class TupleImpl implements Tuple, Serializable {
         // Recover column name->index mapping.
         colMapping = new HashMap<>(colNames.size());
 
-        for (int i = 0; i < colNames.size(); i++)
+        for (int i = 0; i < colNames.size(); i++) {
             colMapping.put(colNames.get(i), i);
+        }
     }
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/table/manager/IgniteTables.java b/modules/api/src/main/java/org/apache/ignite/table/manager/IgniteTables.java
index ff9e0b9..36f98c0 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/manager/IgniteTables.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/manager/IgniteTables.java
@@ -30,33 +30,30 @@ import org.apache.ignite.table.Table;
  */
 public interface IgniteTables {
     /**
-     * Creates a new table with the given {@code name}.
-     * If a table with the same name already exists, an exception will be thrown.
+     * Creates a new table with the given {@code name}. If a table with the same name already exists, an exception will be thrown.
      *
-     * @param name Table name.
+     * @param name            Table name.
      * @param tableInitChange Table changer.
      * @return Newly created table.
      * @throws TableAlreadyExistsException If table with given name already exists.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException             If an unspecified platform exception has happened internally. Is thrown when:
+     *                                     <ul>
+     *                                         <li>the node is stopping.</li>
+     *                                     </ul>
      */
     Table createTable(String name, Consumer<TableChange> tableInitChange);
 
     /**
-     * Creates a new table with the given {@code name} asynchronously.
-     * If a table with the same name already exists, a future will be completed with exception.
+     * Creates a new table with the given {@code name} asynchronously. If a table with the same name already exists, a future will be
+     * completed with exception.
      *
-     * @param name Table name.
+     * @param name            Table name.
      * @param tableInitChange Table changer.
      * @return Future representing pending completion of the operation.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      * @see TableAlreadyExistsException
      */
     CompletableFuture<Table> createTableAsync(String name, Consumer<TableChange> tableInitChange);
@@ -64,86 +61,80 @@ public interface IgniteTables {
     /**
      * Creates a new table with the given {@code name} or returns an existing one with the same {@code name}.
      *
-     * Note: the configuration of the existed table will NOT be validated against the given {@code tableInitChange}.
+     * <p>Note: the configuration of the existed table will NOT be validated against the given {@code tableInitChange}.
      *
-     * @param name Table name.
+     * @param name            Table name.
      * @param tableInitChange Table changer.
      * @return Existing or newly created table.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     Table createTableIfNotExists(String name, Consumer<TableChange> tableInitChange);
 
     /**
      * Creates a new table with the given {@code name} or returns an existing one with the same {@code name}.
      *
-     * Note: the configuration of the existed table will NOT be validated against the given {@code tableInitChange}.
+     * <p>Note: the configuration of the existed table will NOT be validated against the given {@code tableInitChange}.
      *
-     * @param name Table name.
+     * @param name            Table name.
      * @param tableInitChange Table changer.
      * @return Future representing pending completion of the operation.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     CompletableFuture<Table> createTableIfNotExistsAsync(String name, Consumer<TableChange> tableInitChange);
 
     /**
      * Alter a cluster table.
      *
-     * @param name Table name.
+     * @param name        Table name.
      * @param tableChange Table changer.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     void alterTable(String name, Consumer<TableChange> tableChange);
 
     /**
      * Alter a cluster table.
      *
-     * @param name Table name.
+     * @param name        Table name.
      * @param tableChange Table changer.
      * @return Future representing pending completion of the operation.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     CompletableFuture<Void> alterTableAsync(String name, Consumer<TableChange> tableChange);
 
     /**
-     * Drops a table with the name specified.
-     * If a table with the specified name does not exist in the cluster, the operation has no effect.
+     * Drops a table with the name specified. If a table with the specified name does not exist in the cluster, the operation has no
+     * effect.
      *
      * @param name Table name.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     void dropTable(String name);
 
     /**
-     * Drops a table with the name specified.
-     * If a table with the specified name does not exist in the cluster, the operation has no effect.
+     * Drops a table with the name specified. If a table with the specified name does not exist in the cluster, the operation has no
+     * effect.
      *
      * @param name Table name.
      * @return Future representing pending completion of the operation.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     CompletableFuture<Void> dropTableAsync(String name);
 
@@ -151,11 +142,10 @@ public interface IgniteTables {
      * Gets a list of all started tables.
      *
      * @return List of tables.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     List<Table> tables();
 
@@ -163,11 +153,10 @@ public interface IgniteTables {
      * Gets a list of all started tables.
      *
      * @return Future representing pending completion of the operation.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     CompletableFuture<List<Table>> tablesAsync();
 
@@ -176,11 +165,10 @@ public interface IgniteTables {
      *
      * @param name Name of the table.
      * @return Tables with corresponding name or {@code null} if table isn't created.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     Table table(String name);
 
@@ -189,11 +177,10 @@ public interface IgniteTables {
      *
      * @param name Name of the table.
      * @return Future representing pending completion of the operation.
-     * @throws IgniteException If an unspecified platform exception has happened internally.
-     * Is thrown when:
-     * <ul>
-     *     <li>the node is stopping.</li>
-     * </ul>
+     * @throws IgniteException If an unspecified platform exception has happened internally. Is thrown when:
+     *                         <ul>
+     *                             <li>the node is stopping.</li>
+     *                         </ul>
      */
     CompletableFuture<Table> tableAsync(String name);
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/table/manager/package-info.java b/modules/api/src/main/java/org/apache/ignite/table/manager/package-info.java
index e05bd57..bfaf4e4 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/manager/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/manager/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Contains API classes for table management.
  */
+
 package org.apache.ignite.table.manager;
diff --git a/modules/api/src/main/java/org/apache/ignite/table/mapper/package-info.java b/modules/api/src/main/java/org/apache/ignite/table/mapper/package-info.java
index 0d776c2..efee97a 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/mapper/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/mapper/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Contains user classes mapping API classes and mapper builders.
  */
+
 package org.apache.ignite.table.mapper;
diff --git a/modules/api/src/main/java/org/apache/ignite/table/package-info.java b/modules/api/src/main/java/org/apache/ignite/table/package-info.java
index bea6437..2c5dff1 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Table access API.
  */
+
 package org.apache.ignite.table;
diff --git a/modules/api/src/main/java/org/apache/ignite/tx/IgniteTransactions.java b/modules/api/src/main/java/org/apache/ignite/tx/IgniteTransactions.java
index e659133..13ccdd2 100644
--- a/modules/api/src/main/java/org/apache/ignite/tx/IgniteTransactions.java
+++ b/modules/api/src/main/java/org/apache/ignite/tx/IgniteTransactions.java
@@ -33,8 +33,8 @@ public interface IgniteTransactions {
 
     /**
      * Synchronously executes a closure within a transaction.
-     * <p>
-     * If the closure is executed normally (no exceptions), the transaction is automatically committed.
+     *
+     * <p>If the closure is executed normally (no exceptions), the transaction is automatically committed.
      *
      * @param clo The closure.
      */
diff --git a/modules/api/src/main/java/org/apache/ignite/tx/Transaction.java b/modules/api/src/main/java/org/apache/ignite/tx/Transaction.java
index 30a2e28..1825409 100644
--- a/modules/api/src/main/java/org/apache/ignite/tx/Transaction.java
+++ b/modules/api/src/main/java/org/apache/ignite/tx/Transaction.java
@@ -24,28 +24,24 @@ import java.util.concurrent.CompletableFuture;
  */
 public interface Transaction {
     /**
-     * Synchronously commits a transaction.
-     * Does nothing if it's already finished by commiting or rolling back.
+     * Synchronously commits a transaction. Does nothing if it's already finished by commiting or rolling back.
      */
     void commit();
 
     /**
-     * Asynchronously commits a transaction.
-     * Does nothing if it's already finished by commiting or rolling back.
+     * Asynchronously commits a transaction. Does nothing if it's already finished by commiting or rolling back.
      *
      * @return The future.
      */
     CompletableFuture<Void> commitAsync();
 
     /**
-     * Synchronously rolls back a transaction.
-     * Does nothing if it's already finished by commiting or rolling back.
+     * Synchronously rolls back a transaction. Does nothing if it's already finished by commiting or rolling back.
      */
     void rollback();
 
     /**
-     * Asynchronously rolls back a transaction.
-     * Does nothing if it's already finished by commiting or rolling back.
+     * Asynchronously rolls back a transaction. Does nothing if it's already finished by commiting or rolling back.
      *
      * @return The future.
      */
diff --git a/modules/api/src/main/java/org/apache/ignite/tx/package-info.java b/modules/api/src/main/java/org/apache/ignite/tx/package-info.java
index a7c139b..133fceb 100644
--- a/modules/api/src/main/java/org/apache/ignite/tx/package-info.java
+++ b/modules/api/src/main/java/org/apache/ignite/tx/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Contains Transaction API classes and interfaces.
  */
+
 package org.apache.ignite.tx;
diff --git a/modules/baseline/src/main/java/org/apache/ignite/internal/baseline/BaselineManager.java b/modules/baseline/src/main/java/org/apache/ignite/internal/baseline/BaselineManager.java
index b844fb1..a4d9520 100644
--- a/modules/baseline/src/main/java/org/apache/ignite/internal/baseline/BaselineManager.java
+++ b/modules/baseline/src/main/java/org/apache/ignite/internal/baseline/BaselineManager.java
@@ -29,13 +29,14 @@ import org.apache.ignite.network.ClusterService;
  */
 // TODO: IGNITE-14586 Remove @SuppressWarnings when implementation provided.
 // TODO: https://issues.apache.org/jira/browse/IGNITE-14716 Adapt concept of baseline topology IEP-4.
-@SuppressWarnings({"FieldCanBeLocal", "unused"}) public class BaselineManager implements IgniteComponent {
-    /** Configuration manager in order to handle and listen baseline specific configuration.*/
+@SuppressWarnings({"FieldCanBeLocal", "unused"})
+public class BaselineManager implements IgniteComponent {
+    /** Configuration manager in order to handle and listen baseline specific configuration. */
     private final ConfigurationManager configurationMgr;
 
     /**
-     * MetaStorage manager in order to watch private distributed baseline specific configuration,
-     * cause ConfigurationManger handles only public configuration.
+     * MetaStorage manager in order to watch private distributed baseline specific configuration, cause ConfigurationManger handles only
+     * public configuration.
      */
     private final MetaStorageManager metastorageMgr;
 
@@ -46,13 +47,13 @@ import org.apache.ignite.network.ClusterService;
      * The constructor.
      *
      * @param configurationMgr Configuration manager.
-     * @param metastorageMgr MetaStorage manager.
-     * @param clusterSvc Cluster network service.
+     * @param metastorageMgr   MetaStorage manager.
+     * @param clusterSvc       Cluster network service.
      */
     public BaselineManager(
-        ConfigurationManager configurationMgr,
-        MetaStorageManager metastorageMgr,
-        ClusterService clusterSvc
+            ConfigurationManager configurationMgr,
+            MetaStorageManager metastorageMgr,
+            ClusterService clusterSvc
     ) {
         this.configurationMgr = configurationMgr;
         this.metastorageMgr = metastorageMgr;
@@ -60,12 +61,14 @@ import org.apache.ignite.network.ClusterService;
     }
 
     /** {@inheritDoc} */
-    @Override public void start() {
+    @Override
+    public void start() {
         // No-op.
     }
 
     /** {@inheritDoc} */
-    @Override public void stop() {
+    @Override
+    public void stop() {
         // TODO: IGNITE-15161 Implement component's stop.
     }
 
diff --git a/modules/calcite/src/main/java/org/apache/calcite/plan/volcano/package-info.java b/modules/calcite/src/main/java/org/apache/calcite/plan/volcano/package-info.java
index 9566cd9..b9538a9 100644
--- a/modules/calcite/src/main/java/org/apache/calcite/plan/volcano/package-info.java
+++ b/modules/calcite/src/main/java/org/apache/calcite/plan/volcano/package-info.java
@@ -18,4 +18,5 @@
 /**
  * Contains utils for access to package-private Calcite Volcano classes.
  */
+
 package org.apache.calcite.plan.volcano;
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/ResultFieldMetadata.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/ResultFieldMetadata.java
index f9cfeb3..cde083b 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/ResultFieldMetadata.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/ResultFieldMetadata.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.processors.query.calcite;
 
 import java.util.List;
-
 import org.apache.ignite.internal.schema.NativeType;
 
 /**
@@ -29,30 +28,26 @@ public interface ResultFieldMetadata {
      * @return name of the result's field.
      */
     String name();
-
+    
     /**
      * @return index (order) of the result's field (starts from 0).
      */
     int order();
-
+    
     /**
      * @return type of the result's field.
      */
     NativeType type();
-
+    
     /**
      * @return nullable flag of the result's field.
      */
     boolean isNullable();
-
+    
     /**
-     * Example:
-     * SELECT SUM(price), category, subcategory FROM Goods WHERE [condition] GROUP_BY category, subcategory;
+     * Example: SELECT SUM(price), category, subcategory FROM Goods WHERE [condition] GROUP_BY category, subcategory;
      *
-     * Field - Origin
-     * SUM(price) - null;
-     * category - {"PUBLIC", "Goods", "category"};
-     * subcategory - {"PUBLIC", "Goods", "subcategory"};
+     * <p>Field - Origin SUM(price) - null; category - {"PUBLIC", "Goods", "category"}; subcategory - {"PUBLIC", "Goods", "subcategory"};
      *
      * @return field's origin (or where a field value comes from).
      */
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/SqlQueryProcessor.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/SqlQueryProcessor.java
index 769ce75..a0b79d8 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/SqlQueryProcessor.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/SqlQueryProcessor.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.internal.processors.query.calcite;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
-
 import org.apache.calcite.util.Pair;
 import org.apache.ignite.internal.manager.EventListener;
 import org.apache.ignite.internal.processors.query.calcite.exec.ArrayRowHandler;
@@ -47,169 +47,178 @@ import org.jetbrains.annotations.Nullable;
 public class SqlQueryProcessor implements QueryProcessor {
     /** Size of the cache for query plans. */
     public static final int PLAN_CACHE_SIZE = 1024;
-
+    
     private volatile ExecutionService executionSrvc;
-
+    
     private volatile MessageService msgSrvc;
-
+    
     private volatile QueryTaskExecutor taskExecutor;
-
+    
     private final ClusterService clusterSrvc;
-
+    
     private final TableManager tableManager;
-
+    
     /** Busy lock for stop synchronisation. */
     private final IgniteSpinBusyLock busyLock = new IgniteSpinBusyLock();
-
+    
     /** Keeps queries plans to avoid expensive planning of the same queries. */
     private final QueryPlanCache planCache = new QueryPlanCacheImpl(PLAN_CACHE_SIZE);
-
+    
     /** Event listeners to close. */
     private final List<Pair<TableEvent, EventListener>> evtLsnrs = new ArrayList<>();
-
+    
     public SqlQueryProcessor(
-        ClusterService clusterSrvc,
-        TableManager tableManager
+            ClusterService clusterSrvc,
+            TableManager tableManager
     ) {
         this.clusterSrvc = clusterSrvc;
         this.tableManager = tableManager;
     }
-
+    
     /** {@inheritDoc} */
-    @Override public void start() {
+    @Override
+    public void start() {
         taskExecutor = new QueryTaskExecutorImpl(clusterSrvc.localConfiguration().getName());
-
+        
         msgSrvc = new MessageServiceImpl(
-            clusterSrvc.topologyService(),
-            clusterSrvc.messagingService(),
-            taskExecutor
+                clusterSrvc.topologyService(),
+                clusterSrvc.messagingService(),
+                taskExecutor
         );
-
+        
         SchemaHolderImpl schemaHolder = new SchemaHolderImpl(planCache::clear);
-
+        
         executionSrvc = new ExecutionServiceImpl<>(
-            clusterSrvc.topologyService(),
-            msgSrvc,
-            planCache,
-            schemaHolder,
-            taskExecutor,
-            ArrayRowHandler.INSTANCE
+                clusterSrvc.topologyService(),
+                msgSrvc,
+                planCache,
+                schemaHolder,
+                taskExecutor,
+                ArrayRowHandler.INSTANCE
         );
-
+        
         registerTableListener(TableEvent.CREATE, new TableCreatedListener(schemaHolder));
         registerTableListener(TableEvent.ALTER, new TableUpdatedListener(schemaHolder));
         registerTableListener(TableEvent.DROP, new TableDroppedListener(schemaHolder));
-
+        
         taskExecutor.start();
         msgSrvc.start();
         executionSrvc.start();
         planCache.start();
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private void registerTableListener(TableEvent evt, AbstractTableEventListener lsnr) {
         evtLsnrs.add(Pair.of(evt, lsnr));
-
+        
         tableManager.listen(evt, lsnr);
     }
-
+    
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
-    @Override public void stop() throws Exception {
+    @Override
+    public void stop() throws Exception {
         busyLock.block();
-
+        
         List<AutoCloseable> toClose = new ArrayList<>(Arrays.asList(
-            executionSrvc::stop,
-            msgSrvc::stop,
-            taskExecutor::stop,
-            planCache::stop
+                executionSrvc::stop,
+                msgSrvc::stop,
+                taskExecutor::stop,
+                planCache::stop
         ));
-
+        
         toClose.addAll(evtLsnrs.stream()
-            .map((p) -> (AutoCloseable)() -> tableManager.removeListener(p.left, p.right))
-            .collect(Collectors.toList()));
-
+                .map((p) -> (AutoCloseable) () -> tableManager.removeListener(p.left, p.right))
+                .collect(Collectors.toList()));
+        
         IgniteUtils.closeAll(toClose);
     }
-
+    
     /** {@inheritDoc} */
-    @Override public List<SqlCursor<List<?>>> query(String schemaName, String qry, Object... params) {
-        if (!busyLock.enterBusy())
+    @Override
+    public List<SqlCursor<List<?>>> query(String schemaName, String qry, Object... params) {
+        if (!busyLock.enterBusy()) {
             throw new IgniteException(new NodeStoppingException());
-
+        }
+        
         try {
             return executionSrvc.executeQuery(schemaName, qry, params);
-        }
-        finally {
+        } finally {
             busyLock.leaveBusy();
         }
     }
-
+    
     private abstract static class AbstractTableEventListener implements EventListener<TableEventParameters> {
         protected final SchemaHolderImpl schemaHolder;
-
+        
         private AbstractTableEventListener(
-            SchemaHolderImpl schemaHolder
+                SchemaHolderImpl schemaHolder
         ) {
             this.schemaHolder = schemaHolder;
         }
-
+        
         /** {@inheritDoc} */
-        @Override public void remove(@NotNull Throwable exception) {
+        @Override
+        public void remove(@NotNull Throwable exception) {
             // No-op.
         }
     }
-
+    
     private static class TableCreatedListener extends AbstractTableEventListener {
         private TableCreatedListener(
-            SchemaHolderImpl schemaHolder
+                SchemaHolderImpl schemaHolder
         ) {
             super(schemaHolder);
         }
-
+        
         /** {@inheritDoc} */
-        @Override public boolean notify(@NotNull TableEventParameters parameters, @Nullable Throwable exception) {
+        @Override
+        public boolean notify(@NotNull TableEventParameters parameters, @Nullable Throwable exception) {
             schemaHolder.onSqlTypeCreated(
-                "PUBLIC",
-                parameters.table()
+                    "PUBLIC",
+                    parameters.table()
             );
-
+            
             return false;
         }
     }
-
+    
     private static class TableUpdatedListener extends AbstractTableEventListener {
         private TableUpdatedListener(
-            SchemaHolderImpl schemaHolder
+                SchemaHolderImpl schemaHolder
         ) {
             super(schemaHolder);
         }
-
+        
         /** {@inheritDoc} */
-        @Override public boolean notify(@NotNull TableEventParameters parameters, @Nullable Throwable exception) {
+        @Override
+        public boolean notify(@NotNull TableEventParameters parameters, @Nullable Throwable exception) {
             schemaHolder.onSqlTypeUpdated(
-                "PUBLIC",
-                parameters.table()
+                    "PUBLIC",
+                    parameters.table()
             );
-
+            
             return false;
         }
     }
-
+    
     private static class TableDroppedListener extends AbstractTableEventListener {
         private TableDroppedListener(
-            SchemaHolderImpl schemaHolder
+                SchemaHolderImpl schemaHolder
         ) {
             super(schemaHolder);
         }
-
+        
         /** {@inheritDoc} */
-        @Override public boolean notify(@NotNull TableEventParameters parameters, @Nullable Throwable exception) {
+        @Override
+        public boolean notify(@NotNull TableEventParameters parameters, @Nullable Throwable exception) {
             schemaHolder.onSqlTypeDropped(
-                "PUBLIC",
-                parameters.tableName()
+                    "PUBLIC",
+                    parameters.tableName()
             );
-
+            
             return false;
         }
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/Stubs.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/Stubs.java
index eb210d0..d76bda6 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/Stubs.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/Stubs.java
@@ -14,11 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.internal.processors.query.calcite;
 
 /** Stubs */
 public class Stubs {
-    /** */
+    /**
+     *
+     */
     public static int intFoo(Object... args) {
         return args == null ? 0 : args.length;
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/AbstractIndexScan.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/AbstractIndexScan.java
index fd61d52..1fdb246 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/AbstractIndexScan.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/AbstractIndexScan.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.ignite.internal.processors.query.calcite.exec;
 
 import java.util.Iterator;
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.function.Supplier;
-
 import org.apache.calcite.rel.type.RelDataType;
 import org.apache.ignite.internal.processors.query.calcite.util.FilteringIterator;
 import org.apache.ignite.internal.processors.query.calcite.util.TransformingIterator;
@@ -29,43 +29,51 @@ import org.apache.ignite.lang.IgniteInternalException;
 /**
  * Abstract index scan.
  */
-public abstract class AbstractIndexScan<Row, IdxRow> implements Iterable<Row>, AutoCloseable {
-    /** */
-    private final TreeIndex<IdxRow> idx;
+public abstract class AbstractIndexScan<RowT, IdxRowT> implements Iterable<RowT>, AutoCloseable {
+    /**
+     *
+     */
+    private final TreeIndex<IdxRowT> idx;
 
     /** Additional filters. */
-    private final Predicate<Row> filters;
+    private final Predicate<RowT> filters;
 
     /** Lower index scan bound. */
-    private final Supplier<Row> lowerBound;
+    private final Supplier<RowT> lowerBound;
 
     /** Upper index scan bound. */
-    private final Supplier<Row> upperBound;
+    private final Supplier<RowT> upperBound;
 
-    /** */
-    private final Function<Row, Row> rowTransformer;
+    /**
+     *
+     */
+    private final Function<RowT, RowT> rowTransformer;
 
-    /** */
-    protected final ExecutionContext<Row> ectx;
+    /**
+     *
+     */
+    protected final ExecutionContext<RowT> ectx;
 
-    /** */
+    /**
+     *
+     */
     protected final RelDataType rowType;
 
     /**
-     * @param ectx Execution context.
-     * @param idx Physical index.
-     * @param filters Additional filters.
+     * @param ectx       Execution context.
+     * @param idx        Physical index.
+     * @param filters    Additional filters.
      * @param lowerBound Lower index scan bound.
      * @param upperBound Upper index scan bound.
      */
     protected AbstractIndexScan(
-        ExecutionContext<Row> ectx,
-        RelDataType rowType,
-        TreeIndex<IdxRow> idx,
-        Predicate<Row> filters,
-        Supplier<Row> lowerBound,
-        Supplier<Row> upperBound,
-        Function<Row, Row> rowTransformer
+            ExecutionContext<RowT> ectx,
+            RelDataType rowType,
+            TreeIndex<IdxRowT> idx,
+            Predicate<RowT> filters,
+            Supplier<RowT> lowerBound,
+            Supplier<RowT> upperBound,
+            Function<RowT, RowT> rowTransformer
     ) {
         this.ectx = ectx;
         this.rowType = rowType;
@@ -77,31 +85,38 @@ public abstract class AbstractIndexScan<Row, IdxRow> implements Iterable<Row>, A
     }
 
     /** {@inheritDoc} */
-    @Override public synchronized Iterator<Row> iterator() {
-        IdxRow lower = lowerBound == null ? null : row2indexRow(lowerBound.get());
-        IdxRow upper = upperBound == null ? null : row2indexRow(upperBound.get());
-
-        Iterator<Row> it = new TransformingIterator<>(
-            idx.find(lower, upper),
-            this::indexRow2Row
+    @Override
+    public synchronized Iterator<RowT> iterator() {
+        IdxRowT lower = lowerBound == null ? null : row2indexRow(lowerBound.get());
+        IdxRowT upper = upperBound == null ? null : row2indexRow(upperBound.get());
+
+        Iterator<RowT> it = new TransformingIterator<>(
+                idx.find(lower, upper),
+                this::indexRow2Row
         );
 
         it = new FilteringIterator<>(it, filters);
 
-        if (rowTransformer != null)
+        if (rowTransformer != null) {
             it = new TransformingIterator<>(it, rowTransformer);
+        }
 
         return it;
     }
 
-    /** */
-    protected abstract IdxRow row2indexRow(Row bound);
+    /**
+     *
+     */
+    protected abstract IdxRowT row2indexRow(RowT bound);
 
-    /** */
-    protected abstract Row indexRow2Row(IdxRow idxRow) throws IgniteInternalException;
+    /**
+     *
+     */
+    protected abstract RowT indexRow2Row(IdxRowT idxRow) throws IgniteInternalException;
 
     /** {@inheritDoc} */
-    @Override public void close() {
+    @Override
+    public void close() {
         // No-op.
     }
 }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ArrayRowHandler.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ArrayRowHandler.java
index 7b53335..44e8489 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ArrayRowHandler.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ArrayRowHandler.java
@@ -19,61 +19,74 @@ package org.apache.ignite.internal.processors.query.calcite.exec;
 
 import java.lang.reflect.Type;
 import java.util.Arrays;
-
 import org.apache.ignite.internal.util.ArrayUtils;
 
 /**
  * Handler for rows that implemented as a simple objects array.
  */
 public class ArrayRowHandler implements RowHandler<Object[]> {
-    /** */
+    /**
+     *
+     */
     public static final RowHandler<Object[]> INSTANCE = new ArrayRowHandler();
 
-    /** */
-    private ArrayRowHandler() {}
+    /**
+     *
+     */
+    private ArrayRowHandler() {
+    }
 
     /** {@inheritDoc} */
-    @Override public Object get(int field, Object[] row) {
+    @Override
+    public Object get(int field, Object[] row) {
         return row[field];
     }
 
     /** {@inheritDoc} */
-    @Override public void set(int field, Object[] row, Object val) {
+    @Override
+    public void set(int field, Object[] row, Object val) {
         row[field] = val;
     }
 
     /** {@inheritDoc} */
-    @Override public Object[] concat(Object[] left, Object[] right) {
+    @Override
+    public Object[] concat(Object[] left, Object[] right) {
         return ArrayUtils.concat(left, right);
     }
 
     /** {@inheritDoc} */
-    @Override public int columnCount(Object[] row) {
+    @Override
+    public int columnCount(Object[] row) {
         return row.length;
     }
 
     /** {@inheritDoc} */
-    @Override public String toString(Object[] objects) {
+    @Override
+    public String toString(Object[] objects) {
         return "Row" + Arrays.toString(objects);
     }
 
     /** {@inheritDoc} */
-    @Override public RowFactory<Object[]> factory(Type... types) {
+    @Override
+    public RowFactory<Object[]> factory(Type... types) {
         int rowLen = types.length;
 
         return new RowFactory<>() {
             /** {@inheritDoc} */
-            @Override public RowHandler<Object[]> handler() {
+            @Override
+            public RowHandler<Object[]> handler() {
                 return ArrayRowHandler.this;
             }
 
             /** {@inheritDoc} */
-            @Override public Object[] create() {
+            @Override
+            public Object[] create() {
                 return new Object[rowLen];
             }
 
             /** {@inheritDoc} */
-            @Override public Object[] create(Object... fields) {
+            @Override
+            public Object[] create(Object... fields) {
                 assert fields.length == rowLen;
 
                 return fields;
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ClosableIteratorsHolder.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ClosableIteratorsHolder.java
index fb0d9f2..b55d4ff 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ClosableIteratorsHolder.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ClosableIteratorsHolder.java
@@ -24,34 +24,48 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Consumer;
-
 import org.apache.ignite.internal.processors.query.calcite.util.Commons;
 import org.apache.ignite.internal.thread.IgniteThread;
 import org.apache.ignite.lang.IgniteLogger;
 
 /**
+ *
  */
 @SuppressWarnings({"rawtypes", "unchecked"})
 public class ClosableIteratorsHolder implements LifecycleAware {
-    /** */
+    /**
+     *
+     */
     private final String nodeName;
 
-    /** */
+    /**
+     *
+     */
     private final ReferenceQueue refQueue;
 
-    /** */
+    /**
+     *
+     */
     private final Map<Reference, Object> refMap;
 
-    /** */
+    /**
+     *
+     */
     private final IgniteLogger log;
 
-    /** */
+    /**
+     *
+     */
     private volatile boolean stopped;
 
-    /** */
+    /**
+     *
+     */
     private volatile IgniteThread cleanWorker;
 
-    /** */
+    /**
+     *
+     */
     public ClosableIteratorsHolder(String nodeName, IgniteLogger log) {
         this.nodeName = nodeName;
         this.log = log;
@@ -61,7 +75,8 @@ public class ClosableIteratorsHolder implements LifecycleAware {
     }
 
     /** {@inheritDoc} */
-    @Override public void start() {
+    @Override
+    public void start() {
         cleanWorker = new IgniteThread(nodeName, "calciteIteratorsCleanWorker", () -> cleanUp(true));
         cleanWorker.setDaemon(true);
         cleanWorker.start();
@@ -77,32 +92,40 @@ public class ClosableIteratorsHolder implements LifecycleAware {
         return new DelegatingIterator<>(src);
     }
 
-    /** */
+    /**
+     *
+     */
     private void cleanUp(boolean blocking) {
-        for (Reference<?> ref = nextRef(blocking); !stopped && ref != null; ref = nextRef(blocking))
+        for (Reference<?> ref = nextRef(blocking); !stopped && ref != null; ref = nextRef(blocking)) {
             Commons.close(refMap.remove(ref), log);
+        }
     }
 
-    /** */
+    /**
+     *
+     */
     private Reference nextRef(boolean blocking) {
         try {
             return !blocking ? refQueue.poll() : refQueue.remove();
-        }
-        catch (InterruptedException ignored) {
+        } catch (InterruptedException ignored) {
             return null;
         }
     }
 
-    /** */
+    /**
+     *
+     */
     private AutoCloseable closeable(Object referent, Object resource) {
-        if (!(resource instanceof AutoCloseable))
+        if (!(resource instanceof AutoCloseable)) {
             return null;
+        }
 
         return new CloseableReference(referent, resource);
     }
 
     /** {@inheritDoc} */
-    @Override public void stop() {
+    @Override
+    public void stop() {
         stopped = true;
 
         refMap.values().forEach(o -> Commons.close(o, log));
@@ -111,52 +134,70 @@ public class ClosableIteratorsHolder implements LifecycleAware {
 
         IgniteThread t = cleanWorker;
 
-        if (t != null)
+        if (t != null) {
             t.interrupt();
+        }
     }
 
-    /** */
+    /**
+     *
+     */
     private final class DelegatingIterator<T> implements Iterator<T>, AutoCloseable {
-        /** */
+        /**
+         *
+         */
         private final Iterator<T> delegate;
 
-        /** */
+        /**
+         *
+         */
         private final AutoCloseable closeable;
 
-        /** */
+        /**
+         *
+         */
         private DelegatingIterator(Iterator<T> delegate) {
             closeable = closeable(this, this.delegate = delegate);
         }
 
         /** {@inheritDoc} */
-        @Override public boolean hasNext() {
+        @Override
+        public boolean hasNext() {
             return delegate.hasNext();
         }
 
         /** {@inheritDoc} */
-        @Override public T next() {
+        @Override
+        public T next() {
             return delegate.next();
         }
 
         /** {@inheritDoc} */
-        @Override public void remove() {
+        @Override
+        public void remove() {
             delegate.remove();
         }
 
         /** {@inheritDoc} */
-        @Override public void forEachRemaining(Consumer<? super T> action) {
+        @Override
+        public void forEachRemaining(Consumer<? super T> action) {
             delegate.forEachRemaining(action);
         }
 
         /** {@inheritDoc} */
-        @Override public void close() throws Exception {
+        @Override
+        public void close() throws Exception {
             Commons.close(closeable);
         }
     }
 
-    /** */
+    /**
+     *
+     */
     private final class CloseableReference extends WeakReference implements AutoCloseable {
-        /** */
+        /**
+         *
+         */
         private CloseableReference(Object referent, Object resource) {
             super(referent, refQueue);
 
@@ -164,11 +205,11 @@ public class ClosableIteratorsHolder implements LifecycleAware {
         }
 
         /** {@inheritDoc} */
-        @Override public void close() throws Exception {
+        @Override
+        public void close() throws Exception {
             try {
                 Commons.close(refMap.remove(this));
-            }
-            finally {
+            } finally {
                 clear();
             }
         }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeService.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeService.java
index ed99a1d..fe72141 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeService.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeService.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.query.calcite.exec;
 
 import java.util.List;
 import java.util.UUID;
-
 import org.apache.ignite.lang.IgniteInternalCheckedException;
 
 /**
@@ -28,31 +27,34 @@ import org.apache.ignite.lang.IgniteInternalCheckedException;
 public interface ExchangeService extends LifecycleAware {
     /**
      * Sends a batch of data to remote node.
-     * @param nodeId Target node ID.
-     * @param qryId Query ID.
+     *
+     * @param nodeId     Target node ID.
+     * @param qryId      Query ID.
      * @param fragmentId Target fragment ID.
      * @param exchangeId Exchange ID.
-     * @param batchId Batch ID.
-     * @param last Last batch flag.
-     * @param rows Data rows.
+     * @param batchId    Batch ID.
+     * @param last       Last batch flag.
+     * @param rows       Data rows.
      */
-    <Row> void sendBatch(String nodeId, UUID qryId, long fragmentId, long exchangeId, int batchId, boolean last,
-        List<Row> rows) throws IgniteInternalCheckedException;
+    <RowT> void sendBatch(String nodeId, UUID qryId, long fragmentId, long exchangeId, int batchId, boolean last,
+            List<RowT> rows) throws IgniteInternalCheckedException;
 
     /**
      * Acknowledges a batch with given ID is processed.
-     * @param nodeId Node ID to notify.
-     * @param qryId Query ID.
+     *
+     * @param nodeId     Node ID to notify.
+     * @param qryId      Query ID.
      * @param fragmentId Target fragment ID.
      * @param exchangeId Exchange ID.
-     * @param batchId Batch ID.
+     * @param batchId    Batch ID.
      */
     void acknowledge(String nodeId, UUID qryId, long fragmentId, long exchangeId, int batchId) throws IgniteInternalCheckedException;
 
     /**
      * Sends cancel request.
-     * @param nodeId Target node ID.
-     * @param qryId Query ID.
+     *
+     * @param nodeId     Target node ID.
+     * @param qryId      Query ID.
      * @param fragmentId Target fragment ID.
      * @param exchangeId Exchange ID.
      */
@@ -60,18 +62,19 @@ public interface ExchangeService extends LifecycleAware {
 
     /**
      * Sends cancel request.
-     * @param nodeId Target node ID.
-     * @param qryId Query ID.
+     *
+     * @param nodeId     Target node ID.
+     * @param qryId      Query ID.
      * @param fragmentId Target fragment ID.
      * @param exchangeId Exchange ID.
      */
     void closeOutbox(String nodeId, UUID qryId, long fragmentId, long exchangeId) throws IgniteInternalCheckedException;
 
     /**
-     * @param nodeId Target node ID.
-     * @param qryId Query ID.
+     * @param nodeId     Target node ID.
+     * @param qryId      Query ID.
      * @param fragmentId Source fragment ID.
-     * @param err Exception to send.
+     * @param err        Exception to send.
      * @throws IgniteInternalCheckedException On error marshaling or send ErrorMessage.
      */
     void sendError(String nodeId, UUID qryId, long fragmentId, Throwable err) throws IgniteInternalCheckedException;
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java
index 15cf232..7ea0989 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java
@@ -17,11 +17,12 @@
 
 package org.apache.ignite.internal.processors.query.calcite.exec;
 
+import static org.apache.ignite.internal.util.CollectionUtils.nullOrEmpty;
+
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
-
 import org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox;
 import org.apache.ignite.internal.processors.query.calcite.exec.rel.Outbox;
 import org.apache.ignite.internal.processors.query.calcite.message.InboxCloseMessage;
@@ -38,8 +39,6 @@ import org.apache.ignite.lang.IgniteInternalCheckedException;
 import org.apache.ignite.lang.IgniteInternalException;
 import org.apache.ignite.lang.IgniteLogger;
 
-import static org.apache.ignite.internal.util.CollectionUtils.nullOrEmpty;
-
 /**
  *
  */
@@ -48,20 +47,28 @@ public class ExchangeServiceImpl implements ExchangeService {
 
     private static final SqlQueryMessagesFactory FACTORY = new SqlQueryMessagesFactory();
 
-    /** */
+    /**
+     *
+     */
     private final QueryTaskExecutor taskExecutor;
 
-    /** */
+    /**
+     *
+     */
     private final MailboxRegistry mailboxRegistry;
 
-    /** */
+    /**
+     *
+     */
     private final MessageService msgSrvc;
 
-    /** */
+    /**
+     *
+     */
     public ExchangeServiceImpl(
-        QueryTaskExecutor taskExecutor,
-        MailboxRegistry mailboxRegistry,
-        MessageService msgSrvc
+            QueryTaskExecutor taskExecutor,
+            MailboxRegistry mailboxRegistry,
+            MessageService msgSrvc
     ) {
         this.taskExecutor = taskExecutor;
         this.mailboxRegistry = mailboxRegistry;
@@ -69,7 +76,8 @@ public class ExchangeServiceImpl implements ExchangeService {
     }
 
     /** {@inheritDoc} */
-    @Override public void start() {
+    @Override
+    public void start() {
         msgSrvc.register((n, m) -> onMessage(n, (InboxCloseMessage) m), SqlQueryMessageGroup.INBOX_CLOSE_MESSAGE);
         msgSrvc.register((n, m) -> onMessage(n, (OutboxCloseMessage) m), SqlQueryMessageGroup.OUTBOX_CLOSE_MESSAGE);
         msgSrvc.register((n, m) -> onMessage(n, (QueryBatchAcknowledgeMessage) m), SqlQueryMessageGroup.QUERY_BATCH_ACK);
@@ -77,138 +85,151 @@ public class ExchangeServiceImpl implements ExchangeService {
     }
 
     /** {@inheritDoc} */
-    @Override public <Row> void sendBatch(String nodeId, UUID qryId, long fragmentId, long exchangeId, int batchId,
-        boolean last, List<Row> rows) throws IgniteInternalCheckedException {
+    @Override
+    public <RowT> void sendBatch(String nodeId, UUID qryId, long fragmentId, long exchangeId, int batchId,
+            boolean last, List<RowT> rows) throws IgniteInternalCheckedException {
         msgSrvc.send(
-            nodeId,
-            FACTORY.queryBatchMessage()
-                .queryId(qryId)
-                .fragmentId(fragmentId)
-                .exchangeId(exchangeId)
-                .batchId(batchId)
-                .last(last)
-                .rows(Commons.cast(rows))
-                .build()
+                nodeId,
+                FACTORY.queryBatchMessage()
+                        .queryId(qryId)
+                        .fragmentId(fragmentId)
+                        .exchangeId(exchangeId)
+                        .batchId(batchId)
+                        .last(last)
+                        .rows(Commons.cast(rows))
+                        .build()
         );
     }
 
     /** {@inheritDoc} */
-    @Override public void acknowledge(String nodeId, UUID qryId, long fragmentId, long exchangeId, int batchId)
-        throws IgniteInternalCheckedException {
+    @Override
+    public void acknowledge(String nodeId, UUID qryId, long fragmentId, long exchangeId, int batchId)
+            throws IgniteInternalCheckedException {
         msgSrvc.send(
-            nodeId,
-            FACTORY.queryBatchAcknowledgeMessage()
-                .queryId(qryId)
-                .fragmentId(fragmentId)
-                .exchangeId(exchangeId)
-                .batchId(batchId)
-                .build()
+                nodeId,
+                FACTORY.queryBatchAcknowledgeMessage()
+                        .queryId(qryId)
+                        .fragmentId(fragmentId)
+                        .exchangeId(exchangeId)
+                        .batchId(batchId)
+                        .build()
         );
     }
 
     /** {@inheritDoc} */
-    @Override public void closeOutbox(String nodeId, UUID qryId, long fragmentId, long exchangeId) throws IgniteInternalCheckedException {
+    @Override
+    public void closeOutbox(String nodeId, UUID qryId, long fragmentId, long exchangeId) throws IgniteInternalCheckedException {
         msgSrvc.send(
-            nodeId,
-            FACTORY.outboxCloseMessage()
-                .queryId(qryId)
-                .fragmentId(fragmentId)
-                .exchangeId(exchangeId)
-                .build()
+                nodeId,
+                FACTORY.outboxCloseMessage()
+                        .queryId(qryId)
+                        .fragmentId(fragmentId)
+                        .exchangeId(exchangeId)
+                        .build()
         );
     }
 
     /** {@inheritDoc} */
-    @Override public void closeInbox(String nodeId, UUID qryId, long fragmentId, long exchangeId) throws IgniteInternalCheckedException {
+    @Override
+    public void closeInbox(String nodeId, UUID qryId, long fragmentId, long exchangeId) throws IgniteInternalCheckedException {
         msgSrvc.send(
-            nodeId,
-            FACTORY.inboxCloseMessage()
-                .queryId(qryId)
-                .fragmentId(fragmentId)
-                .exchangeId(exchangeId)
-                .build()
+                nodeId,
+                FACTORY.inboxCloseMessage()
+                        .queryId(qryId)
+                        .fragmentId(fragmentId)
+                        .exchangeId(exchangeId)
+                        .build()
         );
     }
 
     /** {@inheritDoc} */
-    @Override public void sendError(String nodeId, UUID qryId, long fragmentId, Throwable err) throws IgniteInternalCheckedException {
+    @Override
+    public void sendError(String nodeId, UUID qryId, long fragmentId, Throwable err) throws IgniteInternalCheckedException {
         msgSrvc.send(
-            nodeId,
-            FACTORY.errorMessage()
-                .queryId(qryId)
-                .fragmentId(fragmentId)
-                .error(err)
-                .build()
+                nodeId,
+                FACTORY.errorMessage()
+                        .queryId(qryId)
+                        .fragmentId(fragmentId)
+                        .error(err)
+                        .build()
         );
     }
 
     /** {@inheritDoc} */
-    @Override public boolean alive(String nodeId) {
+    @Override
+    public boolean alive(String nodeId) {
         return msgSrvc.alive(nodeId);
     }
 
-    /** */
+    /**
+     *
+     */
     protected void onMessage(String nodeId, InboxCloseMessage msg) {
         Collection<Inbox<?>> inboxes = mailboxRegistry.inboxes(msg.queryId(), msg.fragmentId(), msg.exchangeId());
 
         if (!nullOrEmpty(inboxes)) {
-            for (Inbox<?> inbox : inboxes)
+            for (Inbox<?> inbox : inboxes) {
                 inbox.context().execute(inbox::close, inbox::onError);
-        }
-        else if (LOG.isDebugEnabled()) {
-            LOG.debug("Stale inbox cancel message received: [" +
-                "nodeId=" + nodeId +
-                ", queryId=" + msg.queryId() +
-                ", fragmentId=" + msg.fragmentId() +
-                ", exchangeId=" + msg.exchangeId() + "]");
+            }
+        } else if (LOG.isDebugEnabled()) {
+            LOG.debug("Stale inbox cancel message received: ["
+                    + "nodeId=" + nodeId
+                    + ", queryId=" + msg.queryId()
+                    + ", fragmentId=" + msg.fragmentId()
+                    + ", exchangeId=" + msg.exchangeId() + "]");
         }
     }
 
-    /** */
+    /**
+     *
+     */
     protected void onMessage(String nodeId, OutboxCloseMessage msg) {
         Collection<Outbox<?>> outboxes = mailboxRegistry.outboxes(msg.queryId(), msg.fragmentId(), msg.exchangeId());
 
         if (!nullOrEmpty(outboxes)) {
-            for (Outbox<?> outbox : outboxes)
+            for (Outbox<?> outbox : outboxes) {
                 outbox.context().execute(outbox::close, outbox::onError);
+            }
 
-            for (Outbox<?> outbox : outboxes)
+            for (Outbox<?> outbox : outboxes) {
                 outbox.context().execute(outbox.context()::cancel, outbox::onError);
-        }
-        else if (LOG.isDebugEnabled()) {
-            LOG.debug("Stale outbox cancel message received: [" +
-                "nodeId=" + nodeId +
-                ", queryId=" + msg.queryId() +
-                ", fragmentId=" + msg.fragmentId() +
-                ", exchangeId=" + msg.exchangeId() + "]");
+            }
+        } else if (LOG.isDebugEnabled()) {
+            LOG.debug("Stale outbox cancel message received: ["
+                    + "nodeId=" + nodeId
+                    + ", queryId=" + msg.queryId()
+                    + ", fragmentId=" + msg.fragmentId()
+                    + ", exchangeId=" + msg.exchangeId() + "]");
         }
     }
 
-    /** */
+    /**
+     *
+     */
     protected void onMessage(String nodeId, QueryBatchAcknowledgeMessage msg) {
         Outbox<?> outbox = mailboxRegistry.outbox(msg.queryId(), msg.exchangeId());
 
         if (outbox != null) {
             try {
                 outbox.onAcknowledge(nodeId, msg.batchId());
-            }
-            catch (Throwable e) {
+            } catch (Throwable e) {
                 outbox.onError(e);
 
                 throw new IgniteInternalException("Unexpected exception", e);
             }
-        }
-        else if (LOG.isDebugEnabled()) {
-            LOG.debug("Stale acknowledge message received: [" +
-                "nodeId=" + nodeId + ", " +
-                "queryId=" + msg.queryId() + ", " +
-                "fragmentId=" + msg.fragmentId() + ", " +
-                "exchangeId=" + msg.exchangeId() + ", " +
-                "batchId=" + msg.batchId() + "]");
+        } else if (LOG.isDebugEnabled()) {
+            LOG.debug("Stale acknowledge message received: ["
+                    + "nodeId=" + nodeId + ", "
+                    + "queryId=" + msg.queryId() + ", "
+                    + "fragmentId=" + msg.fragmentId() + ", "
+                    + "exchangeId=" + msg.exchangeId() + ", "
+                    + "batchId=" + msg.batchId() + "]");
         }
     }
 
-    /** */
+    /**
+     *
+     */
     protected void onMessage(String nodeId, QueryBatchMessage msg) {
         Inbox<?> inbox = mailboxRegistry.inbox(msg.queryId(), msg.exchangeId());
 
@@ -216,7 +237,7 @@ public class ExchangeServiceImpl implements ExchangeService {
             // first message sent before a fragment is built
             // note that an inbox source fragment id is also used as an exchange id
             Inbox<?> newInbox = new Inbox<>(baseInboxContext(nodeId, msg.queryId(), msg.fragmentId()),
-                this, mailboxRegistry, msg.exchangeId(), msg.exchangeId());
+                    this, mailboxRegistry, msg.exchangeId(), msg.exchangeId());
 
             inbox = mailboxRegistry.register(newInbox);
         }
@@ -224,20 +245,18 @@ public class ExchangeServiceImpl implements ExchangeService {
         if (inbox != null) {
             try {
                 inbox.onBatchReceived(nodeId, msg.batchId(), msg.last(), Commons.cast(msg.rows()));
-            }
-            catch (Throwable e) {
+            } catch (Throwable e) {
                 inbox.onError(e);
 
                 throw new IgniteInternalException("Unexpected exception", e);
             }
-        }
-        else if (LOG.isDebugEnabled()) {
-            LOG.debug("Stale batch message received: [" +
-                "nodeId=" + nodeId + ", " +
-                "queryId=" + msg.queryId() + ", " +
-                "fragmentId=" + msg.fragmentId() + ", " +
-                "exchangeId=" + msg.exchangeId() + ", " +
-                "batchId=" + msg.batchId() + "]");
+        } else if (LOG.isDebugEnabled()) {
+            LOG.debug("Stale batch message received: ["
+                    + "nodeId=" + nodeId + ", "
+                    + "queryId=" + msg.queryId() + ", "
+                    + "fragmentId=" + msg.fragmentId() + ", "
+                    + "exchangeId=" + msg.exchangeId() + ", "
+                    + "batchId=" + msg.batchId() + "]");
         }
     }
 
@@ -246,22 +265,23 @@ public class ExchangeServiceImpl implements ExchangeService {
      */
     private ExecutionContext<?> baseInboxContext(String nodeId, UUID qryId, long fragmentId) {
         return new ExecutionContext<>(
-            taskExecutor,
-            PlanningContext.builder()
-                .originatingNodeId(nodeId)
-                .build(),
-            qryId,
-            new FragmentDescription(
-                fragmentId,
-                null,
+                taskExecutor,
+                PlanningContext.builder()
+                        .originatingNodeId(nodeId)
+                        .build(),
+                qryId,
+                new FragmentDescription(
+                        fragmentId,
+                        null,
+                        null,
+                        null),
                 null,
-                null),
-            null,
-            Map.of());
+                Map.of());
     }
 
     /** {@inheritDoc} */
-    @Override public void stop() {
+    @Override
+    public void stop() {
         // No-op.
     }
 }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionCancelledException.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionCancelledException.java
index ce2e4c7..937279a 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionCancelledException.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionCancelledException.java
@@ -19,6 +19,8 @@ package org.apache.ignite.internal.processors.query.calcite.exec;
 
 import org.apache.ignite.lang.IgniteInternalCheckedException;
 
-/** */
+/**
+ *
+ */
 public class ExecutionCancelledException extends IgniteInternalCheckedException {
 }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext.java
index e4c2203..94e82de 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext.java
@@ -17,6 +17,8 @@
 
 package org.apache.ignite.internal.processors.query.calcite.exec;
 
+import static org.apache.ignite.internal.processors.query.calcite.util.Commons.checkRange;
+
 import java.util.List;
 import java.util.Map;
 import java.util.TimeZone;
@@ -24,7 +26,6 @@ import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Consumer;
-
 import org.apache.calcite.DataContext;
 import org.apache.calcite.linq4j.QueryProvider;
 import org.apache.calcite.schema.SchemaPlus;
@@ -39,64 +40,82 @@ import org.apache.ignite.internal.processors.query.calcite.util.TypeUtils;
 import org.apache.ignite.lang.IgniteInternalException;
 import org.jetbrains.annotations.NotNull;
 
-import static org.apache.ignite.internal.processors.query.calcite.util.Commons.checkRange;
-
 /**
  * Runtime context allowing access to the tables in a database.
  */
-public class ExecutionContext<Row> implements DataContext {
-    /** */
+public class ExecutionContext<RowT> implements DataContext {
+    /**
+     *
+     */
     private static final TimeZone TIME_ZONE = TimeZone.getDefault(); // TODO DistributedSqlConfiguration#timeZone
 
-    /** */
+    /**
+     *
+     */
     private final UUID qryId;
 
-    /** */
+    /**
+     *
+     */
     private final PlanningContext ctx;
 
-    /** */
+    /**
+     *
+     */
     private final FragmentDescription fragmentDesc;
 
-    /** */
+    /**
+     *
+     */
     private final Map<String, Object> params;
 
-    /** */
+    /**
+     *
+     */
     private final QueryTaskExecutor executor;
 
-    /** */
-    private final RowHandler<Row> handler;
+    /**
+     *
+     */
+    private final RowHandler<RowT> handler;
 
-    /** */
-    private final ExpressionFactory<Row> expressionFactory;
+    /**
+     *
+     */
+    private final ExpressionFactory<RowT> expressionFactory;
 
-    /** */
+    /**
+     *
+     */
     private final AtomicBoolean cancelFlag = new AtomicBoolean();
 
     /**
-     * Need to store timestamp, since SQL standard says that functions such as CURRENT_TIMESTAMP return the same value
-     * throughout the query.
+     * Need to store timestamp, since SQL standard says that functions such as CURRENT_TIMESTAMP return the same value throughout the
+     * query.
      */
     private final long startTs;
 
-    /** */
+    /**
+     *
+     */
     private Object[] correlations = new Object[16];
 
     /**
-     * @param executor Task executor.
-     * @param ctx Parent context.
-     * @param qryId Query ID.
+     * @param executor     Task executor.
+     * @param ctx          Parent context.
+     * @param qryId        Query ID.
      * @param fragmentDesc Partitions information.
-     * @param handler Row handler.
-     * @param params Parameters.
+     * @param handler      Row handler.
+     * @param params       Parameters.
      */
     @SuppressWarnings("AssignmentOrReturnOfFieldWithMutableType")
     public ExecutionContext(
-        QueryTaskExecutor executor,
-        PlanningContext ctx,
-        UUID qryId,
-        FragmentDescription fragmentDesc,
-        RowHandler<Row> handler,
-        Map<String, Object> params
+            QueryTaskExecutor executor,
+            PlanningContext ctx,
+            UUID qryId,
+            FragmentDescription fragmentDesc,
+            RowHandler<RowT> handler,
+            Map<String, Object> params
     ) {
         this.executor = executor;
         this.ctx = ctx;
@@ -165,14 +184,14 @@ public class ExecutionContext<Row> implements DataContext {
     /**
      * @return Handler to access row fields.
      */
-    public RowHandler<Row> rowHandler() {
+    public RowHandler<RowT> rowHandler() {
         return handler;
     }
 
     /**
      * @return Expression factory.
      */
-    public ExpressionFactory<Row> expressionFactory() {
+    public ExpressionFactory<RowT> expressionFactory() {
         return expressionFactory;
     }
 
@@ -184,32 +203,41 @@ public class ExecutionContext<Row> implements DataContext {
     }
 
     /** {@inheritDoc} */
-    @Override public SchemaPlus getRootSchema() {
+    @Override
+    public SchemaPlus getRootSchema() {
         return ctx.schema();
     }
 
     /** {@inheritDoc} */
-    @Override public IgniteTypeFactory getTypeFactory() {
+    @Override
+    public IgniteTypeFactory getTypeFactory() {
         return ctx.typeFactory();
     }
 
     /** {@inheritDoc} */
-    @Override public QueryProvider getQueryProvider() {
+    @Override
+    public QueryProvider getQueryProvider() {
         return null; // TODO
     }
 
     /** {@inheritDoc} */
-    @Override public Object get(String name) {
-        if (Variable.CANCEL_FLAG.camelName.equals(name))
+    @Override
+    public Object get(String name) {
+        if (Variable.CANCEL_FLAG.camelName.equals(name)) {
             return cancelFlag;
-        if (Variable.TIME_ZONE.camelName.equals(name))
+        }
+        if (Variable.TIME_ZONE.camelName.equals(name)) {
             return TIME_ZONE; // TODO DistributedSqlConfiguration#timeZone
-        if (Variable.CURRENT_TIMESTAMP.camelName.equals(name))
+        }
+        if (Variable.CURRENT_TIMESTAMP.camelName.equals(name)) {
             return startTs;
-        if (Variable.LOCAL_TIMESTAMP.camelName.equals(name))
+        }
+        if (Variable.LOCAL_TIMESTAMP.camelName.equals(name)) {
             return startTs;
-        if (name.startsWith("?"))
+        }
+        if (name.startsWith("?")) {
             return TypeUtils.toInternal(this, params.get(name));
+        }
 
         return params.get(name);
     }
@@ -229,7 +257,7 @@ public class ExecutionContext<Row> implements DataContext {
     /**
      * Sets correlated value.
      *
-     * @param id Correlation ID.
+     * @param id    Correlation ID.
      * @param value Correlated value.
      */
     public void setCorrelated(@NotNull Object value, int id) {
@@ -244,14 +272,14 @@ public class ExecutionContext<Row> implements DataContext {
      * @param task Query task.
      */
     public void execute(RunnableX task, Consumer<Throwable> onError) {
-        if (isCancelled())
+        if (isCancelled()) {
             return;
+        }
 
         executor.execute(qryId, fragmentId(), () -> {
             try {
                 task.run();
-            }
-            catch (Throwable e) {
+            } catch (Throwable e) {
                 onError.accept(e);
 
                 throw new IgniteInternalException("Unexpected exception", e);
@@ -260,9 +288,8 @@ public class ExecutionContext<Row> implements DataContext {
     }
 
     /**
-     * Submits a Runnable task for execution and returns a Future
-     * representing that task. The Future's {@code get} method will
-     * return {@code null} upon <em>successful</em> completion.
+     * Submits a Runnable task for execution and returns a Future representing that task. The Future's {@code get} method will return {@code
+     * null} upon <em>successful</em> completion.
      *
      * @param task the task to submit.
      * @return a {@link CompletableFuture} representing pending task
@@ -273,8 +300,7 @@ public class ExecutionContext<Row> implements DataContext {
         return executor.submit(qryId, fragmentId(), () -> {
             try {
                 task.run();
-            }
-            catch (Throwable e) {
+            } catch (Throwable e) {
                 onError.accept(e);
 
                 throw new IgniteInternalException("Unexpected exception", e);
@@ -282,10 +308,14 @@ public class ExecutionContext<Row> implements DataContext {
         });
     }
 
-    /** */
+    /**
+     *
+     */
     @FunctionalInterface
     public interface RunnableX {
-        /** */
+        /**
+         *
+         */
         void run() throws Throwable;
     }
 
@@ -298,7 +328,9 @@ public class ExecutionContext<Row> implements DataContext {
         return !cancelFlag.get() && cancelFlag.compareAndSet(false, true);
     }
 
-    /** */
+    /**
+     *
+     */
     public boolean isCancelled() {
         return cancelFlag.get();
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionService.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionService.java
index a1a7ed0..5ec5583 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionService.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionService.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.query.calcite.exec;
 
 import java.util.List;
 import java.util.UUID;
-
 import org.apache.ignite.internal.processors.query.calcite.SqlCursor;
 
 /**
@@ -30,7 +29,7 @@ public interface ExecutionService extends LifecycleAware {
      * Executes a query.
      *
      * @param schema Schema name.
-     * @param query Query.
+     * @param query  Query.
      * @param params Query parameters.
      * @return Query cursor.
      */
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java
index e423f47..e08b975 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java
@@ -17,6 +17,14 @@
 
 package org.apache.ignite.internal.processors.query.calcite.exec;
 
+import static java.util.Collections.singletonList;
+import static org.apache.calcite.rel.type.RelDataType.PRECISION_NOT_SPECIFIED;
+import static org.apache.ignite.internal.processors.query.calcite.exec.PlannerHelper.optimize;
+import static org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.fromJson;
+import static org.apache.ignite.internal.processors.query.calcite.util.Commons.FRAMEWORK_CONFIG;
+import static org.apache.ignite.internal.util.CollectionUtils.first;
+import static org.apache.ignite.internal.util.CollectionUtils.nullOrEmpty;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -27,7 +35,6 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
-
 import org.apache.calcite.plan.Contexts;
 import org.apache.calcite.plan.ConventionTraitDef;
 import org.apache.calcite.plan.RelOptUtil;
@@ -100,78 +107,98 @@ import org.apache.ignite.network.TopologyService;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-import static java.util.Collections.singletonList;
-import static org.apache.calcite.rel.type.RelDataType.PRECISION_NOT_SPECIFIED;
-import static org.apache.ignite.internal.processors.query.calcite.exec.PlannerHelper.optimize;
-import static org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.fromJson;
-import static org.apache.ignite.internal.processors.query.calcite.util.Commons.FRAMEWORK_CONFIG;
-import static org.apache.ignite.internal.util.CollectionUtils.first;
-import static org.apache.ignite.internal.util.CollectionUtils.nullOrEmpty;
-
 /**
  *
  */
-public class ExecutionServiceImpl<Row> implements ExecutionService {
+public class ExecutionServiceImpl<RowT> implements ExecutionService {
     private static final IgniteLogger LOG = IgniteLogger.forClass(ExecutionServiceImpl.class);
-
+    
     private static final SqlQueryMessagesFactory FACTORY = new SqlQueryMessagesFactory();
-
-    /** */
+    
+    /**
+     *
+     */
     private final TopologyService topSrvc;
-
-    /** */
+    
+    /**
+     *
+     */
     private final MessageService msgSrvc;
-
-    /** */
+    
+    /**
+     *
+     */
     private final String locNodeId;
-
-    /** */
+    
+    /**
+     *
+     */
     private final QueryPlanCache qryPlanCache;
-
-    /** */
+    
+    /**
+     *
+     */
     private final SchemaHolder schemaHolder;
-
-    /** */
+    
+    /**
+     *
+     */
     private final QueryTaskExecutor taskExecutor;
-
-    /** */
+    
+    /**
+     *
+     */
     private final AffinityService affSrvc;
-
-    /** */
+    
+    /**
+     *
+     */
     private final MailboxRegistry mailboxRegistry;
-
-    /** */
+    
+    /**
+     *
+     */
     private final MappingService mappingSrvc;
-
-    /** */
+    
+    /**
+     *
+     */
     private final ExchangeService exchangeSrvc;
-
-    /** */
+    
+    /**
+     *
+     */
     private final ClosableIteratorsHolder iteratorsHolder;
-
-    /** */
+    
+    /**
+     *
+     */
     private final Map<UUID, QueryInfo> running;
-
-    /** */
-    private final RowHandler<Row> handler;
-
-    /** */
+    
+    /**
+     *
+     */
+    private final RowHandler<RowT> handler;
+    
+    /**
+     *
+     */
     private final DdlSqlToCommandConverter ddlConverter;
-
+    
     public ExecutionServiceImpl(
-        TopologyService topSrvc,
-        MessageService msgSrvc,
-        QueryPlanCache planCache,
-        SchemaHolder schemaHolder,
-        QueryTaskExecutor taskExecutor,
-        RowHandler<Row> handler
+            TopologyService topSrvc,
+            MessageService msgSrvc,
+            QueryPlanCache planCache,
+            SchemaHolder schemaHolder,
+            QueryTaskExecutor taskExecutor,
+            RowHandler<RowT> handler
     ) {
         this.topSrvc = topSrvc;
         this.handler = handler;
         this.msgSrvc = msgSrvc;
         this.schemaHolder = schemaHolder;
         this.taskExecutor = taskExecutor;
-
+        
         locNodeId = topSrvc.localMember().id();
         qryPlanCache = planCache;
         running = new ConcurrentHashMap<>();
@@ -183,139 +210,266 @@ public class ExecutionServiceImpl<Row> implements ExecutionService {
         // TODO: fix this
         affSrvc = cacheId -> Objects::hashCode;
     }
-
+    
     /** {@inheritDoc} */
-    @Override public void start() {
+    @Override
+    public void start() {
         iteratorsHolder.start();
         mailboxRegistry.start();
         exchangeSrvc.start();
-
+        
         topSrvc.addEventHandler(new NodeLeaveHandler(this::onNodeLeft));
-
+        
         msgSrvc.register((n, m) -> onMessage(n, (QueryStartRequest) m), SqlQueryMessageGroup.QUERY_START_REQUEST);
         msgSrvc.register((n, m) -> onMessage(n, (QueryStartResponse) m), SqlQueryMessageGroup.QUERY_START_RESPONSE);
         msgSrvc.register((n, m) -> onMessage(n, (ErrorMessage) m), SqlQueryMessageGroup.ERROR_MESSAGE);
     }
-
+    
     /** {@inheritDoc} */
-    @Override public List<SqlCursor<List<?>>> executeQuery(
-        String schema,
-        String qry,
-        Object[] params
+    @Override
+    public List<SqlCursor<List<?>>> executeQuery(
+            String schema,
+            String qry,
+            Object[] params
     ) {
         PlanningContext pctx = createContext(topologyVersion(), locNodeId, schema, qry, params);
-
+        
         List<QueryPlan> qryPlans = qryPlanCache.queryPlan(pctx, new CacheKey(pctx.schemaName(), pctx.query()), this::prepareQuery);
-
+        
         return executePlans(qryPlans, pctx);
     }
-
+    
+    /**
+     *
+     */
+    private SqlCursor<List<?>> executeQuery(UUID qryId, MultiStepPlan plan, PlanningContext pctx) {
+        plan.init(pctx);
+        
+        List<Fragment> fragments = plan.fragments();
+        
+        // Local execution
+        Fragment fragment = first(fragments);
+        
+        if (IgniteUtils.assertionsEnabled()) {
+            assert fragment != null;
+            
+            FragmentMapping mapping = plan.mapping(fragment);
+            
+            assert mapping != null;
+            
+            List<String> nodes = mapping.nodeIds();
+            
+            assert nodes != null && nodes.size() == 1 && first(nodes).equals(pctx.localNodeId());
+        }
+        
+        FragmentDescription fragmentDesc = new FragmentDescription(
+                fragment.fragmentId(),
+                plan.mapping(fragment),
+                plan.target(fragment),
+                plan.remotes(fragment));
+        
+        ExecutionContext<RowT> ectx = new ExecutionContext<>(
+                taskExecutor,
+                pctx,
+                qryId,
+                fragmentDesc,
+                handler,
+                Commons.parametersMap(pctx.parameters()));
+        
+        Node<RowT> node = new LogicalRelImplementor<>(ectx, affSrvc, mailboxRegistry,
+                exchangeSrvc).go(fragment.root());
+        
+        QueryInfo info = new QueryInfo(ectx, plan, node);
+        
+        // register query
+        register(info);
+        
+        // start remote execution
+        for (int i = 1; i < fragments.size(); i++) {
+            fragment = fragments.get(i);
+            fragmentDesc = new FragmentDescription(
+                    fragment.fragmentId(),
+                    plan.mapping(fragment),
+                    plan.target(fragment),
+                    plan.remotes(fragment));
+            
+            Throwable ex = null;
+            for (String nodeId : fragmentDesc.nodeIds()) {
+                if (ex != null) {
+                    info.onResponse(nodeId, fragment.fragmentId(), ex);
+                } else {
+                    try {
+                        QueryStartRequest req = FACTORY.queryStartRequest()
+                                .queryId(qryId)
+                                .fragmentId(fragment.fragmentId())
+                                .schema(pctx.schemaName())
+                                .root(fragment.serialized())
+                                .topologyVersion(pctx.topologyVersion())
+                                .fragmentDescription(fragmentDesc)
+                                .parameters(pctx.parameters())
+                                .build();
+                        
+                        msgSrvc.send(nodeId, req);
+                    } catch (Throwable e) {
+                        info.onResponse(nodeId, fragment.fragmentId(), ex = e);
+                    }
+                }
+            }
+        }
+        
+        return Commons.createCursor(new TransformingIterator<>(info.iterator(), row -> {
+            int rowSize = ectx.rowHandler().columnCount(row);
+            
+            List<Object> res = new ArrayList<>(rowSize);
+            
+            for (int i = 0; i < rowSize; i++) {
+                res.add(ectx.rowHandler().get(i, row));
+            }
+            
+            return res;
+        }), plan);
+    }
+    
     /**
      * Executes prepared plans.
+     *
      * @param qryPlans Query plans.
-     * @param pctx Query context.
+     * @param pctx     Query context.
      * @return List of query result cursors.
      */
-    @NotNull public List<SqlCursor<List<?>>> executePlans(
-        Collection<QueryPlan> qryPlans,
-        PlanningContext pctx
+    @NotNull
+    public List<SqlCursor<List<?>>> executePlans(
+            Collection<QueryPlan> qryPlans,
+            PlanningContext pctx
     ) {
         List<SqlCursor<List<?>>> cursors = new ArrayList<>(qryPlans.size());
-
+        
         for (QueryPlan plan : qryPlans) {
             UUID qryId = UUID.randomUUID();
-
+            
             SqlCursor<List<?>> cur = executePlan(qryId, pctx, plan);
-
+            
             cursors.add(cur);
         }
-
+        
         return cursors;
     }
-
+    
     /** {@inheritDoc} */
-    @Override public void cancelQuery(UUID qryId) {
+    @Override
+    public void cancelQuery(UUID qryId) {
         QueryInfo info = running.get(qryId);
-
-        if (info != null)
+    
+        if (info != null) {
             info.cancel();
+        }
     }
-
-    /** */
+    
+    /**
+     *
+     */
     protected long topologyVersion() {
         return 1L;
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private PlanningContext createContext(long topVer, String originator,
-        @Nullable String schema, String qry, Object[] params) {
+            @Nullable String schema, String qry, Object[] params) {
         RelTraitDef<?>[] traitDefs = {
-            ConventionTraitDef.INSTANCE,
-            RelCollationTraitDef.INSTANCE,
-            DistributionTraitDef.INSTANCE,
-            RewindabilityTraitDef.INSTANCE,
-            CorrelationTraitDef.INSTANCE,
+                ConventionTraitDef.INSTANCE,
+                RelCollationTraitDef.INSTANCE,
+                DistributionTraitDef.INSTANCE,
+                RewindabilityTraitDef.INSTANCE,
+                CorrelationTraitDef.INSTANCE,
         };
-
+        
         return PlanningContext.builder()
-            .localNodeId(locNodeId)
-            .originatingNodeId(originator)
-            .parentContext(Contexts.empty())
-            .frameworkConfig(Frameworks.newConfigBuilder(FRAMEWORK_CONFIG)
-                .defaultSchema(schema != null
-                    ? schemaHolder.schema().getSubSchema(schema)
-                    : schemaHolder.schema())
-                .traitDefs(traitDefs)
-                .build())
-            .query(qry)
-            .parameters(params)
-            .topologyVersion(topVer)
-            .build();
+                .localNodeId(locNodeId)
+                .originatingNodeId(originator)
+                .parentContext(Contexts.empty())
+                .frameworkConfig(Frameworks.newConfigBuilder(FRAMEWORK_CONFIG)
+                        .defaultSchema(schema != null
+                                ? schemaHolder.schema().getSubSchema(schema)
+                                : schemaHolder.schema())
+                        .traitDefs(traitDefs)
+                        .build())
+                .query(qry)
+                .parameters(params)
+                .topologyVersion(topVer)
+                .build();
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private List<QueryPlan> prepareQuery(PlanningContext ctx) {
         try {
             String qry = ctx.query();
-
+            
             assert qry != null;
-
+            
             // Parse query.
             SqlNode sqlNode = ctx.planner().parse(qry);
-
-            if (single(sqlNode))
+    
+            if (single(sqlNode)) {
                 return singletonList(prepareSingle(sqlNode, ctx));
-
+            }
+            
             List<SqlNode> nodes = ((SqlNodeList) sqlNode).getList();
             List<QueryPlan> res = new ArrayList<>(nodes.size());
-
-            for (SqlNode node : nodes)
+    
+            for (SqlNode node : nodes) {
                 res.add(prepareSingle(node, ctx));
-
+            }
+            
             return res;
-        }
-        catch (SqlParseException e) {
+        } catch (SqlParseException e) {
             throw new IgniteInternalException("Failed to parse query", e);
-        }
-        catch (ValidationException e) {
+        } catch (ValidationException e) {
             throw new IgniteInternalException("Failed to validate query", e);
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             throw new IgniteInternalException("Failed to plan query.", e);
         }
     }
-
-    /** */
+    
+    /**
+     *
+     */
+    private QueryPlan prepareQuery(SqlNode sqlNode, PlanningContext ctx) {
+        IgnitePlanner planner = ctx.planner();
+        
+        // Validate
+        ValidationResult validated = planner.validateAndGetTypeMetadata(sqlNode);
+        
+        sqlNode = validated.sqlNode();
+        
+        IgniteRel igniteRel = optimize(sqlNode, planner, LOG);
+        
+        // Split query plan to query fragments.
+        List<Fragment> fragments = new Splitter().go(igniteRel);
+        
+        QueryTemplate template = new QueryTemplate(mappingSrvc, fragments);
+        
+        return new MultiStepQueryPlan(template, resultSetMetadata(ctx, validated.dataType(), validated.origins()));
+    }
+    
+    /**
+     *
+     */
     private List<QueryPlan> prepareFragment(PlanningContext ctx) {
         return List.of(new FragmentPlan(fromJson(ctx, ctx.query())));
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private QueryPlan prepareSingle(SqlNode sqlNode, PlanningContext ctx) throws ValidationException {
         assert single(sqlNode);
-
+        
         ctx.planner().reset();
-
+        
         switch (sqlNode.getKind()) {
             case SELECT:
             case ORDER_BY:
@@ -325,101 +479,92 @@ public class ExecutionServiceImpl<Row> implements ExecutionService {
             case EXCEPT:
             case INTERSECT:
                 return prepareQuery(sqlNode, ctx);
-
+            
             case INSERT:
             case DELETE:
             case UPDATE:
                 return prepareDml(sqlNode, ctx);
-
+            
             case EXPLAIN:
                 return prepareExplain(sqlNode, ctx);
-
+            
             case CREATE_TABLE:
             case DROP_TABLE:
                 return prepareDdl(sqlNode, ctx);
-
+            
             default:
-                throw new IgniteInternalException("Unsupported operation [" +
-                    "sqlNodeKind=" + sqlNode.getKind() + "; " +
-                    "querySql=\"" + ctx.query() + "\"]");
+                throw new IgniteInternalException("Unsupported operation ["
+                        + "sqlNodeKind=" + sqlNode.getKind() + "; "
+                        + "querySql=\"" + ctx.query() + "\"]");
         }
     }
-
-    /** */
-    private QueryPlan prepareQuery(SqlNode sqlNode, PlanningContext ctx) {
-        IgnitePlanner planner = ctx.planner();
-
-        // Validate
-        ValidationResult validated = planner.validateAndGetTypeMetadata(sqlNode);
-
-        sqlNode = validated.sqlNode();
-
-        IgniteRel igniteRel = optimize(sqlNode, planner, LOG);
-
-        // Split query plan to query fragments.
-        List<Fragment> fragments = new Splitter().go(igniteRel);
-
-        QueryTemplate template = new QueryTemplate(mappingSrvc, fragments);
-
-        return new MultiStepQueryPlan(template, resultSetMetadata(ctx, validated.dataType(), validated.origins()));
-    }
-
-    /** */
+    
+    /**
+     *
+     */
     private QueryPlan prepareDml(SqlNode sqlNode, PlanningContext ctx) throws ValidationException {
         IgnitePlanner planner = ctx.planner();
-
+        
         // Validate
         sqlNode = planner.validate(sqlNode);
-
+        
         // Convert to Relational operators graph
         IgniteRel igniteRel = optimize(sqlNode, planner, LOG);
-
+        
         // Split query plan to query fragments.
         List<Fragment> fragments = new Splitter().go(igniteRel);
-
+        
         QueryTemplate template = new QueryTemplate(mappingSrvc, fragments);
-
+        
         return new MultiStepDmlPlan(template, resultSetMetadata(ctx, igniteRel.getRowType(), null));
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private QueryPlan prepareDdl(SqlNode sqlNode, PlanningContext ctx) {
         assert sqlNode instanceof SqlDdl : sqlNode == null ? "null" : sqlNode.getClass().getName();
-
-        SqlDdl ddlNode = (SqlDdl)sqlNode;
-
+        
+        SqlDdl ddlNode = (SqlDdl) sqlNode;
+        
         return new DdlPlan(ddlConverter.convert(ddlNode, ctx));
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private QueryPlan prepareExplain(SqlNode explain, PlanningContext ctx) throws ValidationException {
         IgnitePlanner planner = ctx.planner();
-
-        SqlNode sql = ((SqlExplain)explain).getExplicandum();
-
+        
+        SqlNode sql = ((SqlExplain) explain).getExplicandum();
+        
         // Validate
         sql = planner.validate(sql);
-
+        
         // Convert to Relational operators graph
         IgniteRel igniteRel = optimize(sql, planner, LOG);
-
+        
         String plan = RelOptUtil.toString(igniteRel, SqlExplainLevel.ALL_ATTRIBUTES);
-
+        
         return new ExplainPlan(plan, explainFieldsMetadata(ctx));
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private ResultSetMetadata explainFieldsMetadata(PlanningContext ctx) {
         IgniteTypeFactory factory = ctx.typeFactory();
         RelDataType planStrDataType =
-            factory.createSqlType(SqlTypeName.VARCHAR, PRECISION_NOT_SPECIFIED);
+                factory.createSqlType(SqlTypeName.VARCHAR, PRECISION_NOT_SPECIFIED);
         Map.Entry<String, RelDataType> planField = new IgniteBiTuple<>(ExplainPlan.PLAN_COL_NAME, planStrDataType);
         RelDataType planDataType = factory.createStructType(singletonList(planField));
-
+        
         return resultSetMetadata(ctx, planDataType, null);
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private SqlCursor<List<?>> executePlan(UUID qryId, PlanningContext pctx, QueryPlan plan) {
         switch (plan.type()) {
             case DML:
@@ -427,450 +572,432 @@ public class ExecutionServiceImpl<Row> implements ExecutionService {
             case QUERY:
                 return executeQuery(qryId, (MultiStepPlan) plan, pctx);
             case EXPLAIN:
-                return executeExplain((ExplainPlan)plan);
+                return executeExplain((ExplainPlan) plan);
             case DDL:
-                return executeDdl((DdlPlan)plan, pctx);
-
+                return executeDdl((DdlPlan) plan, pctx);
+            
             default:
                 throw new AssertionError("Unexpected plan type: " + plan);
         }
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private SqlCursor<List<?>> executeDdl(DdlPlan plan, PlanningContext pctx) {
         throw new UnsupportedOperationException("plan=" + plan + ", ctx=" + pctx);
     }
-
-    /** */
-    private SqlCursor<List<?>> executeQuery(UUID qryId, MultiStepPlan plan, PlanningContext pctx) {
-        plan.init(pctx);
-
-        List<Fragment> fragments = plan.fragments();
-
-        // Local execution
-        Fragment fragment = first(fragments);
-
-        if (IgniteUtils.assertionsEnabled()) {
-            assert fragment != null;
-
-            FragmentMapping mapping = plan.mapping(fragment);
-
-            assert mapping != null;
-
-            List<String> nodes = mapping.nodeIds();
-
-            assert nodes != null && nodes.size() == 1 && first(nodes).equals(pctx.localNodeId());
-        }
-
-        FragmentDescription fragmentDesc = new FragmentDescription(
-            fragment.fragmentId(),
-            plan.mapping(fragment),
-            plan.target(fragment),
-            plan.remotes(fragment));
-
-        ExecutionContext<Row> ectx = new ExecutionContext<>(
-            taskExecutor,
-            pctx,
-            qryId,
-            fragmentDesc,
-            handler,
-            Commons.parametersMap(pctx.parameters()));
-
-        Node<Row> node = new LogicalRelImplementor<>(ectx, affSrvc, mailboxRegistry,
-            exchangeSrvc).go(fragment.root());
-
-        QueryInfo info = new QueryInfo(ectx, plan, node);
-
-        // register query
-        register(info);
-
-        // start remote execution
-        for (int i = 1; i < fragments.size(); i++) {
-            fragment = fragments.get(i);
-            fragmentDesc = new FragmentDescription(
-                fragment.fragmentId(),
-                plan.mapping(fragment),
-                plan.target(fragment),
-                plan.remotes(fragment));
-
-            Throwable ex = null;
-            for (String nodeId : fragmentDesc.nodeIds()) {
-                if (ex != null)
-                    info.onResponse(nodeId, fragment.fragmentId(), ex);
-                else {
-                    try {
-                        QueryStartRequest req = FACTORY.queryStartRequest()
-                            .queryId(qryId)
-                            .fragmentId(fragment.fragmentId())
-                            .schema(pctx.schemaName())
-                            .root(fragment.serialized())
-                            .topologyVersion(pctx.topologyVersion())
-                            .fragmentDescription(fragmentDesc)
-                            .parameters(pctx.parameters())
-                            .build();
-
-                        msgSrvc.send(nodeId, req);
-                    }
-                    catch (Throwable e) {
-                        info.onResponse(nodeId, fragment.fragmentId(), ex = e);
-                    }
-                }
-            }
-        }
-
-        return Commons.createCursor(new TransformingIterator<>(info.iterator(), row -> {
-            int rowSize = ectx.rowHandler().columnCount(row);
-
-            List<Object> res = new ArrayList<>(rowSize);
-
-            for (int i = 0; i < rowSize; i++)
-                res.add(ectx.rowHandler().get(i, row));
-
-            return res;
-        }), plan);
-    }
-
-    /** */
+    
+    /**
+     *
+     */
     private SqlCursor<List<?>> executeExplain(ExplainPlan plan) {
         SqlCursor<List<?>> cur = Commons.createCursor(singletonList(singletonList(plan.plan())), plan);
         // TODO: fix this
-//        cur.fieldsMeta(plan.fieldsMeta().queryFieldsMetadata(pctx.typeFactory()));
-
+        //        cur.fieldsMeta(plan.fieldsMeta().queryFieldsMetadata(pctx.typeFactory()));
+        
         return cur;
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private void executeFragment(UUID qryId, FragmentPlan plan, PlanningContext pctx, FragmentDescription fragmentDesc) {
-        ExecutionContext<Row> ectx = new ExecutionContext<>(taskExecutor, pctx, qryId,
-            fragmentDesc, handler, Commons.parametersMap(pctx.parameters()));
-
+        ExecutionContext<RowT> ectx = new ExecutionContext<>(taskExecutor, pctx, qryId,
+                fragmentDesc, handler, Commons.parametersMap(pctx.parameters()));
+        
         long frId = fragmentDesc.fragmentId();
         String origNodeId = pctx.originatingNodeId();
-
-        Outbox<Row> node = new LogicalRelImplementor<>(
-            ectx,
-            affSrvc,
-            mailboxRegistry,
-            exchangeSrvc
+        
+        Outbox<RowT> node = new LogicalRelImplementor<>(
+                ectx,
+                affSrvc,
+                mailboxRegistry,
+                exchangeSrvc
         ).go(plan.root());
-
+        
         try {
             msgSrvc.send(
-                origNodeId,
-                FACTORY.queryStartResponse()
-                    .queryId(qryId)
-                    .fragmentId(frId)
-                    .build()
+                    origNodeId,
+                    FACTORY.queryStartResponse()
+                            .queryId(qryId)
+                            .fragmentId(frId)
+                            .build()
             );
-        }
-        catch (IgniteInternalCheckedException e) {
+        } catch (IgniteInternalCheckedException e) {
             IgniteInternalException wrpEx = new IgniteInternalException("Failed to send reply. [nodeId=" + origNodeId + ']', e);
-
+            
             throw wrpEx;
         }
-
+        
         node.init();
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private void register(QueryInfo info) {
         UUID qryId = info.ctx.queryId();
-
+        
         running.put(qryId, info);
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private ResultSetMetadataInternal resultSetMetadata(PlanningContext ctx, RelDataType sqlType,
-        @Nullable List<List<String>> origins) {
+            @Nullable List<List<String>> origins) {
         return new ResultSetMetadataImpl(
-            TypeUtils.getResultType(ctx.typeFactory(), ctx.catalogReader(), sqlType, origins),
-            origins
+                TypeUtils.getResultType(ctx.typeFactory(), ctx.catalogReader(), sqlType, origins),
+                origins
         );
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private boolean single(SqlNode sqlNode) {
         return !(sqlNode instanceof SqlNodeList);
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private void onMessage(String nodeId, QueryStartRequest msg) {
         assert nodeId != null && msg != null;
-
+        
         try {
             PlanningContext pctx = createContext(msg.topologyVersion(), nodeId, msg.schema(),
-                msg.root(), msg.parameters());
-
+                    msg.root(), msg.parameters());
+            
             List<QueryPlan> qryPlans = qryPlanCache.queryPlan(
-                pctx,
-                new CacheKey(pctx.schemaName(), pctx.query()),
-                this::prepareFragment
+                    pctx,
+                    new CacheKey(pctx.schemaName(), pctx.query()),
+                    this::prepareFragment
             );
-
+            
             assert qryPlans.size() == 1 && qryPlans.get(0).type() == QueryPlan.Type.FRAGMENT;
-
-            FragmentPlan plan = (FragmentPlan)qryPlans.get(0);
-
+            
+            FragmentPlan plan = (FragmentPlan) qryPlans.get(0);
+            
             executeFragment(msg.queryId(), plan, pctx, msg.fragmentDescription());
-        }
-        catch (Throwable ex) {
+        } catch (Throwable ex) {
             LOG.error("Failed to start query fragment", ex);
-
+            
             mailboxRegistry.outboxes(msg.queryId(), msg.fragmentId(), -1)
-                .forEach(Outbox::close);
+                    .forEach(Outbox::close);
             mailboxRegistry.inboxes(msg.queryId(), msg.fragmentId(), -1)
-                .forEach(Inbox::close);
-
+                    .forEach(Inbox::close);
+            
             try {
                 msgSrvc.send(
-                    nodeId,
-                    FACTORY.queryStartResponse()
-                        .queryId(msg.queryId())
-                        .fragmentId(msg.fragmentId())
-                        .error(ex)
-                        .build()
+                        nodeId,
+                        FACTORY.queryStartResponse()
+                                .queryId(msg.queryId())
+                                .fragmentId(msg.fragmentId())
+                                .error(ex)
+                                .build()
                 );
-            }
-            catch (Exception e) {
+            } catch (Exception e) {
                 LOG.error("Error occurred during send error message", e);
-
+                
                 IgniteInternalException wrpEx = new IgniteInternalException("Error occurred during send error message", e);
-
+                
                 e.addSuppressed(ex);
-
+                
                 throw wrpEx;
             }
-
+            
             throw ex;
         }
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private void onMessage(String nodeId, QueryStartResponse msg) {
         assert nodeId != null && msg != null;
-
+        
         QueryInfo info = running.get(msg.queryId());
-
-        if (info != null)
+    
+        if (info != null) {
             info.onResponse(nodeId, msg.fragmentId(), msg.error());
+        }
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private void onMessage(String nodeId, ErrorMessage msg) {
         assert nodeId != null && msg != null;
-
+        
         QueryInfo info = running.get(msg.queryId());
-
-        if (info != null)
+    
+        if (info != null) {
             info.onError(new RemoteException(nodeId, msg.queryId(), msg.fragmentId(), msg.error()));
+        }
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private void onNodeLeft(ClusterNode node) {
         running.forEach((uuid, queryInfo) -> queryInfo.onNodeLeft(node.id()));
     }
-
-
+    
+    
     /** {@inheritDoc} */
-    @Override public void stop() throws Exception {
+    @Override
+    public void stop() throws Exception {
         IgniteUtils.closeAll(qryPlanCache::stop, iteratorsHolder::stop, mailboxRegistry::stop, exchangeSrvc::stop);
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private enum QueryState {
-        /** */
+        /**
+         *
+         */
         RUNNING,
-
-        /** */
+        
+        /**
+         *
+         */
         CLOSING,
-
-        /** */
+        
+        /**
+         *
+         */
         CLOSED
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private static final class RemoteFragmentKey {
-        /** */
+        /**
+         *
+         */
         private final String nodeId;
-
-        /** */
+        
+        /**
+         *
+         */
         private final long fragmentId;
-
-        /** */
+        
+        /**
+         *
+         */
         private RemoteFragmentKey(String nodeId, long fragmentId) {
             this.nodeId = nodeId;
             this.fragmentId = fragmentId;
         }
-
+        
         /** {@inheritDoc} */
-        @Override public boolean equals(Object o) {
-            if (this == o)
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
                 return true;
-            if (o == null || getClass() != o.getClass())
+            }
+            if (o == null || getClass() != o.getClass()) {
                 return false;
-
+            }
+            
             RemoteFragmentKey that = (RemoteFragmentKey) o;
-
-            if (fragmentId != that.fragmentId)
+    
+            if (fragmentId != that.fragmentId) {
                 return false;
+            }
             return nodeId.equals(that.nodeId);
         }
-
+        
         /** {@inheritDoc} */
-        @Override public int hashCode() {
+        @Override
+        public int hashCode() {
             int res = nodeId.hashCode();
             res = 31 * res + (int) (fragmentId ^ (fragmentId >>> 32));
             return res;
         }
     }
-
-    /** */
+    
+    /**
+     *
+     */
     private final class QueryInfo implements Cancellable {
-        /** */
-        private final ExecutionContext<Row> ctx;
-
-        /** */
-        private final RootNode<Row> root;
-
+        /**
+         *
+         */
+        private final ExecutionContext<RowT> ctx;
+        
+        /**
+         *
+         */
+        private final RootNode<RowT> root;
+        
         /** remote nodes */
         private final Set<String> remotes;
-
+        
         /** node to fragment */
         private final Set<RemoteFragmentKey> waiting;
-
-        /** */
+        
+        /**
+         *
+         */
         private volatile QueryState state;
-
-        /** */
-        private QueryInfo(ExecutionContext<Row> ctx, MultiStepPlan plan, Node<Row> root) {
+        
+        /**
+         *
+         */
+        private QueryInfo(ExecutionContext<RowT> ctx, MultiStepPlan plan, Node<RowT> root) {
             this.ctx = ctx;
-
-            RootNode<Row> rootNode = new RootNode<>(ctx, plan.metadata().rowType(), this::tryClose);
+            
+            RootNode<RowT> rootNode = new RootNode<>(ctx, plan.metadata().rowType(), this::tryClose);
             rootNode.register(root);
-
+            
             this.root = rootNode;
-
+            
             remotes = new HashSet<>();
             waiting = new HashSet<>();
-
+            
             for (int i = 1; i < plan.fragments().size(); i++) {
                 Fragment fragment = plan.fragments().get(i);
                 List<String> nodes = plan.mapping(fragment).nodeIds();
-
+                
                 remotes.addAll(nodes);
-
-                for (String node : nodes)
+    
+                for (String node : nodes) {
                     waiting.add(new RemoteFragmentKey(node, fragment.fragmentId()));
+                }
             }
-
+            
             state = QueryState.RUNNING;
         }
-
-        /** */
-        public Iterator<Row> iterator() {
+        
+        /**
+         *
+         */
+        public Iterator<RowT> iterator() {
             return iteratorsHolder.iterator(root);
         }
-
+        
         /** {@inheritDoc} */
-        @Override public void cancel() {
+        @Override
+        public void cancel() {
             root.close();
         }
-
+        
         /**
          * Can be called multiple times after receive each error at {@link #onResponse(RemoteFragmentKey, Throwable)}.
          */
         private void tryClose() {
             QueryState state0 = null;
-
+            
             synchronized (this) {
-                if (state == QueryState.CLOSED)
+                if (state == QueryState.CLOSED) {
                     return;
-
-                if (state == QueryState.RUNNING)
+                }
+    
+                if (state == QueryState.RUNNING) {
                     state0 = state = QueryState.CLOSING;
-
+                }
+                
                 // 1) close local fragment
                 root.closeInternal();
-
-                if (state == QueryState.CLOSING && waiting.isEmpty())
+    
+                if (state == QueryState.CLOSING && waiting.isEmpty()) {
                     state0 = state = QueryState.CLOSED;
+                }
             }
-
+            
             if (state0 == QueryState.CLOSED) {
                 // 2) unregister running query
                 running.remove(ctx.queryId());
-
+                
                 IgniteInternalException wrpEx = null;
-
+                
                 // 3) close remote fragments
                 for (String nodeId : remotes) {
                     try {
                         exchangeSrvc.closeOutbox(nodeId, ctx.queryId(), -1, -1);
-                    }
-                    catch (IgniteInternalCheckedException e) {
-                        if (wrpEx == null)
+                    } catch (IgniteInternalCheckedException e) {
+                        if (wrpEx == null) {
                             wrpEx = new IgniteInternalException("Failed to send cancel message. [nodeId=" + nodeId + ']', e);
-                        else
+                        } else {
                             wrpEx.addSuppressed(e);
+                        }
                     }
                 }
-
+                
                 // 4) Cancel local fragment
                 root.context().execute(ctx::cancel, root::onError);
-
-                if (wrpEx != null)
+    
+                if (wrpEx != null) {
                     throw wrpEx;
+                }
             }
         }
-
-        /** */
+        
+        /**
+         *
+         */
         private void onNodeLeft(String nodeId) {
             List<RemoteFragmentKey> fragments = null;
-
+            
             synchronized (this) {
                 for (RemoteFragmentKey fragment : waiting) {
-                    if (!fragment.nodeId.equals(nodeId))
+                    if (!fragment.nodeId.equals(nodeId)) {
                         continue;
-
-                    if (fragments == null)
+                    }
+    
+                    if (fragments == null) {
                         fragments = new ArrayList<>();
-
+                    }
+                    
                     fragments.add(fragment);
                 }
             }
-
+            
             if (!nullOrEmpty(fragments)) {
                 IgniteInternalCheckedException ex = new IgniteInternalCheckedException(
-                    "Failed to start query, node left. nodeId=" + nodeId);
-
-                for (RemoteFragmentKey fragment : fragments)
+                        "Failed to start query, node left. nodeId=" + nodeId);
+    
+                for (RemoteFragmentKey fragment : fragments) {
                     onResponse(fragment, ex);
+                }
             }
         }
-
-        /** */
+        
+        /**
+         *
+         */
         private void onResponse(String nodeId, long fragmentId, Throwable error) {
             onResponse(new RemoteFragmentKey(nodeId, fragmentId), error);
         }
-
-        /** */
+        
+        /**
+         *
+         */
         private void onResponse(RemoteFragmentKey fragment, Throwable error) {
             QueryState state;
             synchronized (this) {
                 waiting.remove(fragment);
                 state = this.state;
             }
-
-            if (error != null)
+    
+            if (error != null) {
                 onError(error);
-            else if (state == QueryState.CLOSING)
+            } else if (state == QueryState.CLOSING) {
                 tryClose();
+            }
         }
-
-        /** */
+        
+        /**
+         *
+         */
         private void onError(Throwable error) {
             root.onError(error);
-
+            
             tryClose();
         }
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/LogicalRelImplementor.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/LogicalRelImplementor.java
index 9ae82eb..8d4938f 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/LogicalRelImplementor.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/LogicalRelImplementor.java
@@ -17,13 +17,17 @@
 
 package org.apache.ignite.internal.processors.query.calcite.exec;
 
+import static org.apache.calcite.rel.RelDistribution.Type.HASH_DISTRIBUTED;
+import static org.apache.ignite.internal.processors.query.calcite.util.TypeUtils.combinedRowType;
+import static org.apache.ignite.internal.util.ArrayUtils.asList;
+import static org.apache.ignite.internal.util.CollectionUtils.first;
+
 import java.util.Comparator;
 import java.util.List;
 import java.util.Objects;
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.function.Supplier;
-
 import org.apache.calcite.rel.RelCollation;
 import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.core.Intersect;
@@ -98,45 +102,52 @@ import org.apache.ignite.internal.processors.query.calcite.trait.TraitUtils;
 import org.apache.ignite.internal.processors.query.calcite.type.IgniteTypeFactory;
 import org.apache.ignite.internal.processors.query.calcite.util.Commons;
 
-import static org.apache.calcite.rel.RelDistribution.Type.HASH_DISTRIBUTED;
-import static org.apache.ignite.internal.processors.query.calcite.util.TypeUtils.combinedRowType;
-import static org.apache.ignite.internal.util.ArrayUtils.asList;
-import static org.apache.ignite.internal.util.CollectionUtils.first;
-
 /**
  * Implements a query plan.
  */
 @SuppressWarnings("TypeMayBeWeakened")
-public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
-    /** */
+public class LogicalRelImplementor<RowT> implements IgniteRelVisitor<Node<RowT>> {
+    /**
+     *
+     */
     public static final String CNLJ_NOT_SUPPORTED_JOIN_ASSERTION_MSG = "only INNER and LEFT join supported by IgniteCorrelatedNestedLoop";
 
-    /** */
-    private final ExecutionContext<Row> ctx;
+    /**
+     *
+     */
+    private final ExecutionContext<RowT> ctx;
 
-    /** */
+    /**
+     *
+     */
     private final AffinityService affSrvc;
 
-    /** */
+    /**
+     *
+     */
     private final ExchangeService exchangeSvc;
 
-    /** */
+    /**
+     *
+     */
     private final MailboxRegistry mailboxRegistry;
 
-    /** */
-    private final ExpressionFactory<Row> expressionFactory;
+    /**
+     *
+     */
+    private final ExpressionFactory<RowT> expressionFactory;
 
     /**
-     * @param ctx Root context.
-     * @param affSrvc Affinity service.
+     * @param ctx             Root context.
+     * @param affSrvc         Affinity service.
      * @param mailboxRegistry Mailbox registry.
-     * @param exchangeSvc Exchange service.
+     * @param exchangeSvc     Exchange service.
      */
     public LogicalRelImplementor(
-        ExecutionContext<Row> ctx,
-        AffinityService affSrvc,
-        MailboxRegistry mailboxRegistry,
-        ExchangeService exchangeSvc
+            ExecutionContext<RowT> ctx,
+            AffinityService affSrvc,
+            MailboxRegistry mailboxRegistry,
+            ExchangeService exchangeSvc
     ) {
         this.affSrvc = affSrvc;
         this.mailboxRegistry = mailboxRegistry;
@@ -147,16 +158,17 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteSender rel) {
+    @Override
+    public Node<RowT> visit(IgniteSender rel) {
         IgniteDistribution distribution = rel.distribution();
 
-        Destination<Row> dest = distribution.destination(ctx, affSrvc, ctx.target());
+        Destination<RowT> dest = distribution.destination(ctx, affSrvc, ctx.target());
 
         // Outbox fragment ID is used as exchange ID as well.
-        Outbox<Row> outbox =
-            new Outbox<>(ctx, rel.getRowType(), exchangeSvc, mailboxRegistry, rel.exchangeId(), rel.targetFragmentId(), dest);
+        Outbox<RowT> outbox =
+                new Outbox<>(ctx, rel.getRowType(), exchangeSvc, mailboxRegistry, rel.exchangeId(), rel.targetFragmentId(), dest);
 
-        Node<Row> input = visit(rel.getInput());
+        Node<RowT> input = visit(rel.getInput());
 
         outbox.register(input);
 
@@ -166,12 +178,13 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteFilter rel) {
-        Predicate<Row> pred = expressionFactory.predicate(rel.getCondition(), rel.getRowType());
+    @Override
+    public Node<RowT> visit(IgniteFilter rel) {
+        Predicate<RowT> pred = expressionFactory.predicate(rel.getCondition(), rel.getRowType());
 
-        FilterNode<Row> node = new FilterNode<>(ctx, rel.getRowType(), pred);
+        FilterNode<RowT> node = new FilterNode<>(ctx, rel.getRowType(), pred);
 
-        Node<Row> input = visit(rel.getInput());
+        Node<RowT> input = visit(rel.getInput());
 
         node.register(input);
 
@@ -179,16 +192,17 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteTrimExchange rel) {
+    @Override
+    public Node<RowT> visit(IgniteTrimExchange rel) {
         assert TraitUtils.distribution(rel).getType() == HASH_DISTRIBUTED;
 
         IgniteDistribution distr = rel.distribution();
-        Destination<Row> dest = distr.destination(ctx, affSrvc, ctx.group(rel.sourceId()));
+        Destination<RowT> dest = distr.destination(ctx, affSrvc, ctx.group(rel.sourceId()));
         String localNodeId = ctx.planningContext().localNodeId();
 
-        FilterNode<Row> node = new FilterNode<>(ctx, rel.getRowType(), r -> Objects.equals(localNodeId, first(dest.targets(r))));
+        FilterNode<RowT> node = new FilterNode<>(ctx, rel.getRowType(), r -> Objects.equals(localNodeId, first(dest.targets(r))));
 
-        Node<Row> input = visit(rel.getInput());
+        Node<RowT> input = visit(rel.getInput());
 
         node.register(input);
 
@@ -196,12 +210,13 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteProject rel) {
-        Function<Row, Row> prj = expressionFactory.project(rel.getProjects(), rel.getInput().getRowType());
+    @Override
+    public Node<RowT> visit(IgniteProject rel) {
+        Function<RowT, RowT> prj = expressionFactory.project(rel.getProjects(), rel.getInput().getRowType());
 
-        ProjectNode<Row> node = new ProjectNode<>(ctx, rel.getRowType(), prj);
+        ProjectNode<RowT> node = new ProjectNode<>(ctx, rel.getRowType(), prj);
 
-        Node<Row> input = visit(rel.getInput());
+        Node<RowT> input = visit(rel.getInput());
 
         node.register(input);
 
@@ -209,19 +224,20 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteNestedLoopJoin rel) {
+    @Override
+    public Node<RowT> visit(IgniteNestedLoopJoin rel) {
         RelDataType outType = rel.getRowType();
         RelDataType leftType = rel.getLeft().getRowType();
         RelDataType rightType = rel.getRight().getRowType();
         JoinRelType joinType = rel.getJoinType();
 
         RelDataType rowType = combinedRowType(ctx.getTypeFactory(), leftType, rightType);
-        Predicate<Row> cond = expressionFactory.predicate(rel.getCondition(), rowType);
+        Predicate<RowT> cond = expressionFactory.predicate(rel.getCondition(), rowType);
 
-        Node<Row> node = NestedLoopJoinNode.create(ctx, outType, leftType, rightType, joinType, cond);
+        Node<RowT> node = NestedLoopJoinNode.create(ctx, outType, leftType, rightType, joinType, cond);
 
-        Node<Row> leftInput = visit(rel.getLeft());
-        Node<Row> rightInput = visit(rel.getRight());
+        Node<RowT> leftInput = visit(rel.getLeft());
+        Node<RowT> rightInput = visit(rel.getRight());
 
         node.register(asList(leftInput, rightInput));
 
@@ -229,22 +245,23 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteCorrelatedNestedLoopJoin rel) {
+    @Override
+    public Node<RowT> visit(IgniteCorrelatedNestedLoopJoin rel) {
         RelDataType outType = rel.getRowType();
         RelDataType leftType = rel.getLeft().getRowType();
         RelDataType rightType = rel.getRight().getRowType();
 
         RelDataType rowType = combinedRowType(ctx.getTypeFactory(), leftType, rightType);
-        Predicate<Row> cond = expressionFactory.predicate(rel.getCondition(), rowType);
+        Predicate<RowT> cond = expressionFactory.predicate(rel.getCondition(), rowType);
 
         assert rel.getJoinType() == JoinRelType.INNER || rel.getJoinType() == JoinRelType.LEFT
-            : CNLJ_NOT_SUPPORTED_JOIN_ASSERTION_MSG;
+                : CNLJ_NOT_SUPPORTED_JOIN_ASSERTION_MSG;
 
-        Node<Row> node = new CorrelatedNestedLoopJoinNode<>(ctx, outType, cond, rel.getVariablesSet(),
-            rel.getJoinType());
+        Node<RowT> node = new CorrelatedNestedLoopJoinNode<>(ctx, outType, cond, rel.getVariablesSet(),
+                rel.getJoinType());
 
-        Node<Row> leftInput = visit(rel.getLeft());
-        Node<Row> rightInput = visit(rel.getRight());
+        Node<RowT> leftInput = visit(rel.getLeft());
+        Node<RowT> rightInput = visit(rel.getRight());
 
         node.register(asList(leftInput, rightInput));
 
@@ -252,7 +269,8 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteMergeJoin rel) {
+    @Override
+    public Node<RowT> visit(IgniteMergeJoin rel) {
         RelDataType outType = rel.getRowType();
         RelDataType leftType = rel.getLeft().getRowType();
         RelDataType rightType = rel.getRight().getRowType();
@@ -260,15 +278,15 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
 
         int pairsCnt = rel.analyzeCondition().pairs().size();
 
-        Comparator<Row> comp = expressionFactory.comparator(
-            rel.leftCollation().getFieldCollations().subList(0, pairsCnt),
-            rel.rightCollation().getFieldCollations().subList(0, pairsCnt)
+        Comparator<RowT> comp = expressionFactory.comparator(
+                rel.leftCollation().getFieldCollations().subList(0, pairsCnt),
+                rel.rightCollation().getFieldCollations().subList(0, pairsCnt)
         );
 
-        Node<Row> node = MergeJoinNode.create(ctx, outType, leftType, rightType, joinType, comp);
+        Node<RowT> node = MergeJoinNode.create(ctx, outType, leftType, rightType, joinType, comp);
 
-        Node<Row> leftInput = visit(rel.getLeft());
-        Node<Row> rightInput = visit(rel.getRight());
+        Node<RowT> leftInput = visit(rel.getLeft());
+        Node<RowT> rightInput = visit(rel.getRight());
 
         node.register(asList(leftInput, rightInput));
 
@@ -276,36 +294,39 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteIndexScan rel) {
+    @Override
+    public Node<RowT> visit(IgniteIndexScan rel) {
         // TODO: fix this
-//        RexNode condition = rel.condition();
-//        List<RexNode> projects = rel.projects();
-//
+        //        RexNode condition = rel.condition();
+        //        List<RexNode> projects = rel.projects();
+
         IgniteTable tbl = rel.getTable().unwrap(IgniteTable.class);
         IgniteTypeFactory typeFactory = ctx.getTypeFactory();
 
         ImmutableBitSet requiredColumns = rel.requiredColumns();
-//        List<RexNode> lowerCond = rel.lowerBound();
-//        List<RexNode> upperCond = rel.upperBound();
-//
+        //        List<RexNode> lowerCond = rel.lowerBound();
+        //        List<RexNode> upperCond = rel.upperBound();
+
         RelDataType rowType = tbl.getRowType(typeFactory, requiredColumns);
 
-//        Predicate<Row> filters = condition == null ? null : expressionFactory.predicate(condition, rowType);
-//        Supplier<Row> lower = lowerCond == null ? null : expressionFactory.rowSource(lowerCond);
-//        Supplier<Row> upper = upperCond == null ? null : expressionFactory.rowSource(upperCond);
-//        Function<Row, Row> prj = projects == null ? null : expressionFactory.project(projects, rowType);
-//
-//        IgniteIndex idx = tbl.getIndex(rel.indexName());
-//
-//        ColocationGroup group = ctx.group(rel.sourceId());
+        //        Predicate<Row> filters = condition == null ? null : expressionFactory.predicate(condition, rowType);
+        //        Supplier<Row> lower = lowerCond == null ? null : expressionFactory.rowSource(lowerCond);
+        //        Supplier<Row> upper = upperCond == null ? null : expressionFactory.rowSource(upperCond);
+        //        Function<Row, Row> prj = projects == null ? null : expressionFactory.project(projects, rowType);
+        //
+        //        IgniteIndex idx = tbl.getIndex(rel.indexName());
+        //
+        //        ColocationGroup group = ctx.group(rel.sourceId());
 
-        Iterable<Row> rowsIter = (Iterable<Row>) List.of(new Object[]{0, 0}, new Object[]{1, 1});//idx.scan(ctx, group, filters, lower, upper, prj, requiredColumns);
+        Iterable<RowT> rowsIter = (Iterable<RowT>) List.of(new Object[]{0, 0},
+                new Object[]{1, 1}); //idx.scan(ctx, group, filters, lower, upper, prj, requiredColumns);
 
         return new ScanNode<>(ctx, rowType, rowsIter);
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteTableScan rel) {
+    @Override
+    public Node<RowT> visit(IgniteTableScan rel) {
         RexNode condition = rel.condition();
         List<RexNode> projects = rel.projects();
         ImmutableBitSet requiredColumns = rel.requiredColumns();
@@ -315,24 +336,25 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
 
         RelDataType rowType = tbl.getRowType(typeFactory, requiredColumns);
 
-        Predicate<Row> filters = condition == null ? null : expressionFactory.predicate(condition, rowType);
-        Function<Row, Row> prj = projects == null ? null : expressionFactory.project(projects, rowType);
+        Predicate<RowT> filters = condition == null ? null : expressionFactory.predicate(condition, rowType);
+        Function<RowT, RowT> prj = projects == null ? null : expressionFactory.project(projects, rowType);
 
         ColocationGroup group = ctx.group(rel.sourceId());
 
         return new TableScanNode<>(
-            ctx,
-            rowType,
-            tbl.descriptor(),
-            group.partitions(ctx.planningContext().localNodeId()),
-            filters,
-            prj,
-            requiredColumns
+                ctx,
+                rowType,
+                tbl.descriptor(),
+                group.partitions(ctx.planningContext().localNodeId()),
+                filters,
+                prj,
+                requiredColumns
         );
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteValues rel) {
+    @Override
+    public Node<RowT> visit(IgniteValues rel) {
         List<RexLiteral> vals = Commons.flat(Commons.cast(rel.getTuples()));
 
         RelDataType rowType = rel.getRowType();
@@ -341,10 +363,11 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteUnionAll rel) {
-        UnionAllNode<Row> node = new UnionAllNode<>(ctx, rel.getRowType());
+    @Override
+    public Node<RowT> visit(IgniteUnionAll rel) {
+        UnionAllNode<RowT> node = new UnionAllNode<>(ctx, rel.getRowType());
 
-        List<Node<Row>> inputs = Commons.transform(rel.getInputs(), this::visit);
+        List<Node<RowT>> inputs = Commons.transform(rel.getInputs(), this::visit);
 
         node.register(inputs);
 
@@ -352,13 +375,14 @@ public class LogicalRelImplementor<Row> implements IgniteRelVisitor<Node<Row>> {
     }
 
     /** {@inheritDoc} */
-    @Override public Node<Row> visit(IgniteLimit rel) {
+    @Override
+    public Node<RowT> visit(IgniteLimit rel) {
         Supplier<Integer> offset = (rel.offset() == null) ? null : expressionFactory.execute(rel.offset());
         Supplier<Integer> fetch = (rel.fetch() == null) ? null : expressionFactory.execute(rel.fetch());
 
-        LimitNode<Row> node = new LimitNode<>(ctx, rel.getRowType(), offset, fetch);
+        LimitNode<RowT> node = new LimitNode<>(ctx, rel.getRowType(), offset, fetch);
 
-        Node<Row> input = visit(rel.getInput());
+        Node<RowT> input = visit(rel.getInput());
 
         node.register(input);
... 196279 lines suppressed ...