You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sa...@apache.org on 2024/05/27 10:41:00 UTC
(ignite-3) branch main updated: IGNITE-22118 Explicitly specify pool to execute start/stop on IgniteComponent (#3784)
This is an automated email from the ASF dual-hosted git repository.
sanpwc 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 061c8722ad IGNITE-22118 Explicitly specify pool to execute start/stop on IgniteComponent (#3784)
061c8722ad is described below
commit 061c8722adc6cc56855245ff04a751a54a74de12
Author: Cyrill <cy...@gmail.com>
AuthorDate: Mon May 27 13:40:54 2024 +0300
IGNITE-22118 Explicitly specify pool to execute start/stop on IgniteComponent (#3784)
---
.../internal/catalog/CatalogManagerImpl.java | 18 +++---
.../ignite/internal/catalog/storage/UpdateLog.java | 20 +++----
.../internal/catalog/storage/UpdateLogImpl.java | 5 +-
.../catalog/CatalogManagerRecoveryTest.java | 7 ++-
.../internal/catalog/CatalogManagerSelfTest.java | 29 ++++++----
.../internal/catalog/CatalogTestUtilsTest.java | 8 ++-
.../catalog/commands/CatalogUtilsTest.java | 5 +-
.../catalog/storage/UpdateLogImplTest.java | 21 ++++---
.../internal/catalog/BaseCatalogManagerTest.java | 5 +-
.../ignite/internal/catalog/CatalogTestUtils.java | 67 ++++++++++++++--------
.../client/handler/ItClientHandlerBindTest.java | 4 +-
.../ignite/client/handler/ItClientHandlerTest.java | 5 +-
.../apache/ignite/client/handler/TestServer.java | 11 ++--
.../ignite/client/handler/ClientHandlerModule.java | 5 +-
.../client/handler/DummyAuthenticationManager.java | 5 +-
.../ignite/internal/client/TcpIgniteClient.java | 3 +-
.../ignite/client/TestClientHandlerModule.java | 5 +-
.../java/org/apache/ignite/client/TestServer.java | 13 +++--
.../client/fakes/FakeIgniteQueryProcessor.java | 5 +-
.../apache/ignite/client/fakes/FakeTxManager.java | 5 +-
.../management/raft/ItCmgRaftServiceTest.java | 7 ++-
.../management/ClusterManagementGroupManager.java | 5 +-
.../raft/RocksDbClusterStateStorage.java | 5 +-
.../AbstractClusterStateStorageManagerTest.java | 5 +-
.../raft/AbstractClusterStateStorageTest.java | 11 ++--
.../management/raft/CmgRaftGroupListenerTest.java | 5 +-
.../topology/LogicalTopologyImplTest.java | 5 +-
.../internal/cluster/management/MockNode.java | 5 +-
.../management/raft/TestClusterStateStorage.java | 5 +-
.../internal/deployunit/DeploymentManagerImpl.java | 5 +-
.../metastore/DeploymentUnitStoreImplTest.java | 5 +-
.../internal/compute/ComputeComponentImpl.java | 5 +-
.../internal/compute/ComputeComponentImplTest.java | 33 ++++++-----
.../compute/util/DummyIgniteDeployment.java | 5 +-
.../presentation/HoconPresentationTest.java | 5 +-
.../configuration/ConfigurationManager.java | 9 +--
.../configuration/ConfigurationRegistry.java | 5 +-
.../configuration/ConfigurationRegistryTest.java | 25 ++++----
.../configuration/direct/DirectPropertiesTest.java | 5 +-
.../configuration/hocon/HoconConverterTest.java | 5 +-
.../ConfigurationAnyListenerTest.java | 5 +-
.../notifications/ConfigurationListenerTest.java | 5 +-
.../internal/configuration/sample/UsageTest.java | 7 ++-
.../configuration/tree/InternalIdTest.java | 5 +-
.../internal/components/LongJvmPauseDetector.java | 5 +-
.../apache/ignite/internal/hlc/ClockWaiter.java | 5 +-
.../ignite/internal/manager/ComponentContext.java | 58 +++++++++++++++++++
.../ignite/internal/manager/IgniteComponent.java | 27 +++++++--
.../apache/ignite/internal/util/IgniteUtils.java | 29 ++++++----
.../ignite/internal/hlc/ClockWaiterTest.java | 7 ++-
...niteDistributionZoneManagerNodeRestartTest.java | 15 +++--
.../distributionzones/DistributionZoneManager.java | 7 ++-
.../BaseDistributionZoneManagerTest.java | 7 ++-
...butionZoneManagerLogicalTopologyEventsTest.java | 19 +++---
.../DistributionZoneCausalityDataNodesTest.java | 3 +-
.../DistributionZoneRebalanceEngineTest.java | 14 +++--
.../ignite/internal/failure/FailureProcessor.java | 5 +-
.../internal/failure/FailureProcessorTest.java | 9 +--
.../ignite/internal/network/file/TestCluster.java | 5 +-
.../network/file/FileTransferServiceImpl.java | 5 +-
.../network/file/FileTransferServiceImplTest.java | 5 +-
.../internal/index/IndexBuildingManager.java | 5 +-
.../apache/ignite/internal/index/IndexManager.java | 5 +-
.../IndexNodeFinishedRwTransactionsChecker.java | 5 +-
.../index/ChangeIndexStatusTaskControllerTest.java | 5 +-
.../internal/index/ChangeIndexStatusTaskTest.java | 9 ++-
.../IndexAvailabilityControllerRestorerTest.java | 20 +++++--
.../index/IndexAvailabilityControllerTest.java | 8 ++-
.../internal/index/IndexBuildControllerTest.java | 6 +-
.../ignite/internal/index/IndexManagerTest.java | 5 +-
.../internal/lowwatermark/LowWatermarkImpl.java | 5 +-
.../lowwatermark/LowWatermarkImplTest.java | 15 ++---
.../impl/ItIdempotentCommandCacheTest.java | 5 +-
.../impl/ItMetaStorageManagerImplTest.java | 18 +++---
.../ItMetaStorageMultipleNodesAbstractTest.java | 5 +-
.../metastorage/impl/ItMetaStorageServiceTest.java | 5 +-
.../metastorage/impl/ItMetaStorageWatchTest.java | 7 ++-
.../server/raft/ItMetaStorageRaftGroupTest.java | 24 +++++---
.../metastorage/impl/MetaStorageManagerImpl.java | 5 +-
.../MetaStorageDeployWatchesCorrectnessTest.java | 5 +-
.../impl/MetaStorageManagerRecoveryTest.java | 9 +--
.../metastorage/impl/MetaStorageRangeTest.java | 5 +-
.../metrics/exporters/ItJvmMetricSourceTest.java | 3 +-
.../exporters/ItMetricExportersLoadingTest.java | 5 +-
.../metrics/exporters/ItOsMetricSourceTest.java | 3 +-
.../ignite/internal/metrics/MetricManager.java | 5 +-
.../ignite/internal/metrics/MetricManagerImpl.java | 5 +-
.../ignite/internal/metrics/NoOpMetricManager.java | 5 +-
.../ignite/internal/network/ClusterService.java | 3 +-
.../network/netty/ItConnectionManagerTest.java | 7 ++-
.../network/scalecube/ItClusterServiceTest.java | 11 ++--
.../network/scalecube/ItNodeRestartsTest.java | 9 +--
.../scalecube/ItScaleCubeNetworkMessagingTest.java | 15 ++---
.../internal/network/NettyBootstrapFactory.java | 5 +-
.../internal/network/NettyWorkersRegistrar.java | 5 +-
.../scalecube/ScaleCubeClusterServiceFactory.java | 7 ++-
.../network/DefaultMessagingServiceTest.java | 5 +-
.../internal/network/netty/NettyServerTest.java | 8 ++-
.../network/utils/ClusterServiceTestUtils.java | 11 ++--
.../internal/placementdriver/ActiveActorTest.java | 7 ++-
.../MultiActorPlacementDriverTest.java | 5 +-
.../ignite/internal/placementdriver/Node.java | 9 ++-
.../PlacementDriverManagerTest.java | 13 +++--
.../placementdriver/PlacementDriverManager.java | 5 +-
.../placementdriver/LeaseNegotiationTest.java | 3 +-
.../placementdriver/PlacementDriverTest.java | 5 +-
.../ignite/internal/raft/ItLearnersTest.java | 10 +++-
.../apache/ignite/internal/raft/ItLozaTest.java | 9 +--
.../internal/raft/ItRaftGroupServiceTest.java | 5 +-
.../raft/ItTruncateSuffixAndRestartTest.java | 17 +++---
.../ignite/raft/jraft/core/ItCliServiceTest.java | 5 +-
.../apache/ignite/raft/jraft/core/ItNodeTest.java | 22 ++++---
.../raft/server/ItJraftCounterServerTest.java | 11 ++--
.../ignite/raft/server/ItJraftHlcServerTest.java | 5 +-
.../raft/server/ItJraftServerLogPathTest.java | 5 +-
.../raft/server/ItSimpleCounterServerTest.java | 8 ++-
.../ignite/raft/server/JraftAbstractTest.java | 7 ++-
.../ignite/raft/server/RaftServerAbstractTest.java | 5 +-
.../java/org/apache/ignite/internal/raft/Loza.java | 9 +--
.../internal/raft/server/impl/JraftServerImpl.java | 5 +-
.../storage/impl/DefaultLogStorageFactory.java | 5 +-
.../raft/storage/impl/LocalLogStorageFactory.java | 5 +-
.../storage/impl/VolatileLogStorageFactory.java | 5 +-
.../impl/VolatileLogStorageFactoryCreator.java | 5 +-
.../raft/storage/logit/LogitLogStorageFactory.java | 5 +-
.../org/apache/ignite/internal/raft/LozaTest.java | 8 +--
.../impl/RocksDbSharedLogStorageAdvancedTest.java | 5 +-
.../storage/impl/RocksDbSharedLogStorageTest.java | 5 +-
.../impl/SharedVsNonSharedLogStorageBenchmark.java | 5 +-
.../ignite/raft/jraft/rpc/IgniteRpcTest.java | 9 +--
.../jraft/storage/impl/LogStorageBenchmark.java | 5 +-
.../jraft/storage/logit/LogitLogStorageTest.java | 5 +-
.../ignite/internal/raft/TestLozaFactory.java | 9 +--
.../raft/server/TestJraftServerFactory.java | 9 +--
.../service/ItAbstractListenerSnapshotTest.java | 15 +++--
.../apache/ignite/raft/jraft/core/TestCluster.java | 5 +-
.../datareplication/ReplicaLifecycleManager.java | 5 +-
.../ItPlacementDriverReplicaSideTest.java | 10 +++-
.../ignite/internal/replicator/ReplicaManager.java | 5 +-
.../internal/replicator/ReplicaManagerTest.java | 7 ++-
.../AbstractTopologyAwareGroupServiceTest.java | 20 ++++---
.../apache/ignite/internal/rest/RestComponent.java | 5 +-
.../ignite/internal/rest/RestComponentTest.java | 7 ++-
.../internal/rest/configuration/TestFactory.java | 3 +-
.../ItDistributedConfigurationPropertiesTest.java | 10 +++-
.../ItDistributedConfigurationStorageTest.java | 6 +-
.../runner/app/ItIgniteNodeRestartTest.java | 7 ++-
.../org/apache/ignite/internal/app/IgniteImpl.java | 36 ++++++++----
.../ignite/internal/app/LifecycleManager.java | 30 ++++++----
.../ignite/internal/app/ThreadPoolsManager.java | 5 +-
.../DistributedConfigurationStorageTest.java | 9 +--
.../storage/LocalConfigurationStorageTest.java | 5 +-
.../ignite/internal/BaseIgniteRestartTest.java | 3 +-
.../ignite/internal/schema/SchemaManager.java | 5 +-
.../ignite/internal/schema/SchemaManagerTest.java | 11 ++--
.../authentication/AuthenticationManagerImpl.java | 5 +-
.../AuthenticationManagerImplTest.java | 5 +-
.../ignite/internal/sql/api/IgniteSqlImpl.java | 5 +-
.../internal/sql/engine/SqlQueryProcessor.java | 5 +-
.../ignite/internal/sql/api/IgniteSqlImplTest.java | 9 +--
.../sql/engine/exec/TransactionEnlistTest.java | 5 +-
.../DdlCommandHandlerExceptionHandlingTest.java | 7 ++-
.../exec/rel/TableScanNodeExecutionTest.java | 5 +-
.../engine/framework/ClusterServiceFactory.java | 3 +-
.../sql/engine/framework/TestBuilders.java | 3 +-
.../internal/sql/engine/framework/TestCluster.java | 5 +-
.../internal/sql/engine/framework/TestNode.java | 5 +-
.../engine/schema/SqlSchemaManagerImplTest.java | 5 +-
.../internal/sql/engine/util/QueryCheckerTest.java | 5 +-
.../internal/storage/DataStorageManager.java | 5 +-
.../internal/systemview/SystemViewManagerImpl.java | 5 +-
.../internal/systemview/SystemViewManagerTest.java | 31 +++++-----
.../ignite/distributed/ReplicaUnavailableTest.java | 5 +-
.../ReplicasSafeTimePropagationTest.java | 11 ++--
.../rebalance/ItRebalanceDistributedTest.java | 10 +++-
.../ignite/internal/table/ItColocationTest.java | 5 +-
.../internal/table/distributed/TableManager.java | 11 ++--
.../disaster/DisasterRecoveryManager.java | 5 +-
.../outgoing/OutgoingSnapshotsManager.java | 5 +-
.../CatalogStorageIndexDescriptorSupplierTest.java | 5 +-
.../distributed/TableManagerRecoveryTest.java | 21 ++++---
.../table/distributed/TableManagerTest.java | 26 +++++----
.../internal/table/distributed/TableUtilsTest.java | 5 +-
.../FullStateTransferIndexChooserTest.java | 5 +-
.../snapshot/outgoing/SnapshotMetaUtilsTest.java | 8 ++-
.../replicator/ReplicatorUtilsTest.java | 8 ++-
.../apache/ignite/distributed/ItTxTestCluster.java | 29 +++++-----
.../ignite/internal/table/TxAbstractTest.java | 3 +-
.../table/impl/DummyInternalTableImpl.java | 3 +-
.../internal/tx/impl/ResourceVacuumManager.java | 5 +-
.../ignite/internal/tx/impl/TxManagerImpl.java | 5 +-
.../apache/ignite/internal/tx/TxManagerTest.java | 5 +-
.../apache/ignite/internal/vault/VaultManager.java | 5 +-
.../ignite/internal/vault/VaultManagerTest.java | 5 +-
.../internal/worker/CriticalWorkerWatchdog.java | 5 +-
195 files changed, 1059 insertions(+), 654 deletions(-)
diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogManagerImpl.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogManagerImpl.java
index 1844193f6e..d6deb6265a 100644
--- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogManagerImpl.java
+++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/CatalogManagerImpl.java
@@ -63,6 +63,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.sql.SqlCommon;
import org.apache.ignite.internal.systemview.api.SystemView;
import org.apache.ignite.internal.systemview.api.SystemViewProvider;
@@ -146,7 +147,7 @@ public class CatalogManagerImpl extends AbstractEventProducer<CatalogEvent, Cata
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
int objectIdGen = 0;
Catalog emptyCatalog = new Catalog(0, 0L, objectIdGen, List.of(), List.of(), null);
@@ -155,28 +156,29 @@ public class CatalogManagerImpl extends AbstractEventProducer<CatalogEvent, Cata
updateLog.registerUpdateHandler(new OnUpdateHandlerImpl());
- return updateLog.startAsync()
- .thenCompose(none -> {
+ return updateLog.startAsync(componentContext)
+ .thenComposeAsync(none -> {
if (latestCatalogVersion() == emptyCatalog.version()) {
int initializedCatalogVersion = emptyCatalog.version() + 1;
this.catalogReadyFuture(initializedCatalogVersion)
- .thenCompose(ignored -> awaitVersionActivation(initializedCatalogVersion))
- .handle((r, e) -> catalogInitializationFuture.complete(null));
+ .thenComposeAsync(ignored -> awaitVersionActivation(initializedCatalogVersion),
+ componentContext.executor())
+ .handleAsync((r, e) -> catalogInitializationFuture.complete(null), componentContext.executor());
return initCatalog(emptyCatalog);
} else {
catalogInitializationFuture.complete(null);
return nullCompletedFuture();
}
- });
+ }, componentContext.executor());
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
busyLock.block();
versionTracker.close();
- return updateLog.stopAsync();
+ return updateLog.stopAsync(componentContext);
}
@Override
diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLog.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLog.java
index 1369cd5f8a..08fa2a7c01 100644
--- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLog.java
+++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLog.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.catalog.storage;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
/**
@@ -30,14 +31,12 @@ public interface UpdateLog extends IgniteComponent {
* Appends the given update to the log if the update with that version does not exist.
*
* <p>The version of {@link VersionedUpdate} must be greater by 1 of the version of previously
- * appended update, otherwise current update will be rejected. The versions of already appended
- * updates should be tracked by registering {@link OnUpdateHandler update handler}
- * (see {@link #registerUpdateHandler(OnUpdateHandler)}).
+ * appended update, otherwise current update will be rejected. The versions of already appended updates should be tracked by registering
+ * {@link OnUpdateHandler update handler} (see {@link #registerUpdateHandler(OnUpdateHandler)}).
*
* @param update An update to append to the log.
- * @return A {@code true} if update has been successfully appended, {@code false} otherwise
- * if update with the same version already exists, and operation should be retried with
- * new version.
+ * @return A {@code true} if update has been successfully appended, {@code false} otherwise if update with the same version already
+ * exists, and operation should be retried with new version.
*/
CompletableFuture<Boolean> append(VersionedUpdate update);
@@ -45,8 +44,8 @@ public interface UpdateLog extends IgniteComponent {
* Saves a snapshot entry and drop updates of previous versions from the log, if supported, otherwise do nothing.
*
* @param snapshotEntry An entry, which represents a result of merging updates of previous versions.
- * @return A {@code true} if snapshot has been successfully written, {@code false} otherwise
- * if a snapshot with the same or greater version already exists.
+ * @return A {@code true} if snapshot has been successfully written, {@code false} otherwise if a snapshot with the same or greater
+ * version already exists.
*/
CompletableFuture<Boolean> saveSnapshot(SnapshotEntry snapshotEntry);
@@ -63,11 +62,12 @@ public interface UpdateLog extends IgniteComponent {
* <p>Log replay is a part of a component start up process, thus the handler must
* be registered prior to start is invoked, otherwise exception will be thrown.
*
- * @return Completable future.
+ * @param componentContext The component lifecycle context.
+ * @return Future that will be completed when the asynchronous part of the start is processed.
* @throws IgniteInternalException If no handler has been registered.
*/
@Override
- CompletableFuture<Void> startAsync() throws IgniteInternalException;
+ CompletableFuture<Void> startAsync(ComponentContext componentContext) throws IgniteInternalException;
/** An interface describing a handler that will receive notification when a new update is added to the log. */
@FunctionalInterface
diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLogImpl.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLogImpl.java
index 242dc3bd5c..cf80b4549c 100644
--- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLogImpl.java
+++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLogImpl.java
@@ -44,6 +44,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.EntryEvent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
@@ -97,7 +98,7 @@ public class UpdateLogImpl implements UpdateLog {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
if (!busyLock.enterBusy()) {
throw new IgniteException(Common.NODE_STOPPING_ERR, new NodeStoppingException());
}
@@ -126,7 +127,7 @@ public class UpdateLogImpl implements UpdateLog {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerRecoveryTest.java b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerRecoveryTest.java
index 4104863ee2..d35fc27934 100644
--- a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerRecoveryTest.java
+++ b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerRecoveryTest.java
@@ -54,6 +54,7 @@ import org.apache.ignite.internal.catalog.storage.VersionedUpdate;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
import org.apache.ignite.internal.metastorage.server.KeyValueStorage;
@@ -84,7 +85,7 @@ public class CatalogManagerRecoveryTest extends BaseIgniteAbstractTest {
@AfterEach
void tearDown() {
- assertThat(stopAsync(catalogManager, metaStorageManager), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), catalogManager, metaStorageManager), willCompleteSuccessfully());
}
@Test
@@ -230,13 +231,13 @@ public class CatalogManagerRecoveryTest extends BaseIgniteAbstractTest {
private void startComponentsAndDeployWatches() {
assertThat(
- startAsync(metaStorageManager, catalogManager)
+ startAsync(new ComponentContext(), metaStorageManager, catalogManager)
.thenCompose(unused -> metaStorageManager.deployWatches()),
willCompleteSuccessfully()
);
}
private void stopComponents() {
- assertThat(stopAsync(catalogManager, metaStorageManager), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), catalogManager, metaStorageManager), willCompleteSuccessfully());
}
}
diff --git a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerSelfTest.java b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerSelfTest.java
index 3ff21083df..2e0913ef3d 100644
--- a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerSelfTest.java
+++ b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerSelfTest.java
@@ -66,6 +66,7 @@ import org.apache.ignite.internal.catalog.storage.UpdateLog.OnUpdateHandler;
import org.apache.ignite.internal.catalog.storage.VersionedUpdate;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.sql.SqlCommon;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
@@ -151,9 +152,11 @@ public class CatalogManagerSelfTest extends BaseCatalogManagerTest {
CompletableFuture<Void> readyFuture = manager.catalogReadyFuture(futureVersion);
assertFalse(readyFuture.isDone());
- assertThat(manager.stopAsync(), willCompleteSuccessfully());
+ ComponentContext componentContext = new ComponentContext();
- verify(updateLog).stopAsync();
+ assertThat(manager.stopAsync(componentContext), willCompleteSuccessfully());
+
+ verify(updateLog).stopAsync(componentContext);
assertTrue(readyFuture.isDone());
@@ -170,11 +173,14 @@ public class CatalogManagerSelfTest extends BaseCatalogManagerTest {
ArgumentCaptor<OnUpdateHandler> updateHandlerCapture = ArgumentCaptor.forClass(OnUpdateHandler.class);
doNothing().when(updateLogMock).registerUpdateHandler(updateHandlerCapture.capture());
- when(updateLogMock.startAsync()).thenReturn(nullCompletedFuture());
+
+ ComponentContext componentContext = new ComponentContext();
+
+ when(updateLogMock.startAsync(componentContext)).thenReturn(nullCompletedFuture());
when(updateLogMock.append(any())).thenReturn(CompletableFuture.completedFuture(true));
CatalogManagerImpl manager = new CatalogManagerImpl(updateLogMock, clockService);
- assertThat(manager.startAsync(), willCompleteSuccessfully());
+ assertThat(manager.startAsync(componentContext), willCompleteSuccessfully());
reset(updateLogMock);
@@ -281,19 +287,22 @@ public class CatalogManagerSelfTest extends BaseCatalogManagerTest {
@Test
public void catalogServiceManagesUpdateLogLifecycle() {
UpdateLog updateLogMock = mock(UpdateLog.class);
- when(updateLogMock.startAsync()).thenReturn(nullCompletedFuture());
- when(updateLogMock.stopAsync()).thenReturn(nullCompletedFuture());
+ ComponentContext startComponentContext = new ComponentContext();
+ ComponentContext stopComponentContext = new ComponentContext();
+
+ when(updateLogMock.startAsync(startComponentContext)).thenReturn(nullCompletedFuture());
+ when(updateLogMock.stopAsync(stopComponentContext)).thenReturn(nullCompletedFuture());
when(updateLogMock.append(any())).thenReturn(CompletableFuture.completedFuture(true));
CatalogManagerImpl manager = new CatalogManagerImpl(updateLogMock, clockService);
- assertThat(manager.startAsync(), willCompleteSuccessfully());
+ assertThat(manager.startAsync(startComponentContext), willCompleteSuccessfully());
- verify(updateLogMock).startAsync();
+ verify(updateLogMock).startAsync(startComponentContext);
- assertThat(manager.stopAsync(), willCompleteSuccessfully());
+ assertThat(manager.stopAsync(stopComponentContext), willCompleteSuccessfully());
- verify(updateLogMock).stopAsync();
+ verify(updateLogMock).stopAsync(stopComponentContext);
}
@Test
diff --git a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogTestUtilsTest.java b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogTestUtilsTest.java
index 2becc6d069..0e854498e7 100644
--- a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogTestUtilsTest.java
+++ b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogTestUtilsTest.java
@@ -32,6 +32,7 @@ import org.apache.ignite.internal.catalog.commands.CreateTableCommandBuilder;
import org.apache.ignite.internal.catalog.commands.TableHashPrimaryKey;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.apache.ignite.sql.ColumnType;
import org.hamcrest.BaseMatcher;
@@ -46,10 +47,11 @@ class CatalogTestUtilsTest extends BaseIgniteAbstractTest {
* and returned instance follows the contract.
*/
@Test
- void testManagerWorksAsExpected() throws Exception {
+ void testManagerWorksAsExpected() {
CatalogManager manager = createCatalogManagerWithTestUpdateLog("test", new HybridClockImpl());
- assertThat(manager.startAsync(), willCompleteSuccessfully());
+ ComponentContext componentContext = new ComponentContext();
+ assertThat(manager.startAsync(componentContext), willCompleteSuccessfully());
CreateTableCommandBuilder createTableTemplate = CreateTableCommand.builder()
.schemaName("PUBLIC")
@@ -80,7 +82,7 @@ class CatalogTestUtilsTest extends BaseIgniteAbstractTest {
assertThat(tablesOfVersion2, hasItem(descriptorWithName("T1")));
assertThat(tablesOfVersion2, hasItem(descriptorWithName("T2")));
- assertThat(manager.stopAsync(), willCompleteSuccessfully());
+ assertThat(manager.stopAsync(componentContext), willCompleteSuccessfully());
}
private static Matcher<CatalogTableDescriptor> descriptorWithName(String name) {
diff --git a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/CatalogUtilsTest.java b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/CatalogUtilsTest.java
index aba44cb41e..c81015fd37 100644
--- a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/CatalogUtilsTest.java
+++ b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/commands/CatalogUtilsTest.java
@@ -54,6 +54,7 @@ import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.sql.SqlCommon;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.junit.jupiter.api.AfterEach;
@@ -78,12 +79,12 @@ public class CatalogUtilsTest extends BaseIgniteAbstractTest {
void setUp() {
catalogManager = createCatalogManagerWithTestUpdateLog("test", clock);
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void tearDown() {
- assertThat(catalogManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
diff --git a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
index 81c3603ebe..c6f4c8424e 100644
--- a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
+++ b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
@@ -47,6 +47,7 @@ import org.apache.ignite.internal.catalog.storage.serialization.MarshallableEntr
import org.apache.ignite.internal.catalog.storage.serialization.MarshallableEntryType;
import org.apache.ignite.internal.catalog.storage.serialization.UpdateLogMarshallerImpl;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
import org.apache.ignite.internal.metastorage.server.KeyValueStorage;
@@ -76,13 +77,13 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
metastore = StandaloneMetaStorageManager.create(keyValueStorage);
keyValueStorage.start();
- assertThat(metastore.startAsync(), willCompleteSuccessfully());
+ assertThat(metastore.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
public void tearDown() throws Exception {
closeAll(
- metastore == null ? null : () -> assertThat(metastore.stopAsync(), willCompleteSuccessfully()),
+ metastore == null ? null : () -> assertThat(metastore.stopAsync(new ComponentContext()), willCompleteSuccessfully()),
keyValueStorage == null ? null : keyValueStorage::close
);
}
@@ -99,7 +100,7 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
appendUpdates(updateLogImpl, expectedUpdates);
// Let's restart the log and metastore with recovery.
- assertThat(updateLogImpl.stopAsync(), willCompleteSuccessfully());
+ assertThat(updateLogImpl.stopAsync(new ComponentContext()), willCompleteSuccessfully());
restartMetastore();
@@ -132,7 +133,7 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
compactCatalog(updateLogImpl, snapshotEntryOfVersion(2));
// Let's restart the log and metastore with recovery.
- assertThat(updateLogImpl.stopAsync(), willCompleteSuccessfully());
+ assertThat(updateLogImpl.stopAsync(new ComponentContext()), willCompleteSuccessfully());
restartMetastore();
@@ -170,7 +171,7 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
UpdateLogImpl updateLogImpl = createUpdateLogImpl();
updateLogImpl.registerUpdateHandler(onUpdateHandler);
- assertThat(updateLogImpl.startAsync(), willCompleteSuccessfully());
+ assertThat(updateLogImpl.startAsync(new ComponentContext()), willCompleteSuccessfully());
return updateLogImpl;
}
@@ -189,10 +190,12 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
private void restartMetastore() {
long recoverRevision = metastore.appliedRevision();
- assertThat(metastore.stopAsync(), willCompleteSuccessfully());
+ ComponentContext componentContext = new ComponentContext();
+
+ assertThat(metastore.stopAsync(componentContext), willCompleteSuccessfully());
metastore = StandaloneMetaStorageManager.create(keyValueStorage);
- assertThat(metastore.startAsync(), willCompleteSuccessfully());
+ assertThat(metastore.startAsync(componentContext), willCompleteSuccessfully());
assertThat(metastore.recoveryFinishedFuture(), willBe(recoverRevision));
}
@@ -203,7 +206,7 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
IgniteInternalException ex = assertThrows(
IgniteInternalException.class,
- updateLog::startAsync
+ () -> updateLog.startAsync(new ComponentContext())
);
assertThat(
@@ -229,7 +232,7 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
long revisionBefore = metastore.appliedRevision();
- assertThat(updateLog.startAsync(), willCompleteSuccessfully());
+ assertThat(updateLog.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat("Watches were not deployed", metastore.deployWatches(), willCompleteSuccessfully());
diff --git a/modules/catalog/src/testFixtures/java/org/apache/ignite/internal/catalog/BaseCatalogManagerTest.java b/modules/catalog/src/testFixtures/java/org/apache/ignite/internal/catalog/BaseCatalogManagerTest.java
index d3fe081f31..a14949b398 100644
--- a/modules/catalog/src/testFixtures/java/org/apache/ignite/internal/catalog/BaseCatalogManagerTest.java
+++ b/modules/catalog/src/testFixtures/java/org/apache/ignite/internal/catalog/BaseCatalogManagerTest.java
@@ -57,6 +57,7 @@ import org.apache.ignite.internal.hlc.ClockWaiter;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
import org.apache.ignite.internal.metastorage.server.SimpleInMemoryKeyValueStorage;
@@ -114,7 +115,7 @@ public abstract class BaseCatalogManagerTest extends BaseIgniteAbstractTest {
partitionIdleSafeTimePropagationPeriod::get
);
- assertThat(startAsync(metastore, clockWaiter, manager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), metastore, clockWaiter, manager), willCompleteSuccessfully());
assertThat("Watches were not deployed", metastore.deployWatches(), willCompleteSuccessfully());
@@ -123,7 +124,7 @@ public abstract class BaseCatalogManagerTest extends BaseIgniteAbstractTest {
@AfterEach
public void tearDown() {
- assertThat(stopAsync(manager, clockWaiter, metastore), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), manager, clockWaiter, metastore), willCompleteSuccessfully());
}
protected void createSomeTable(String tableName) {
diff --git a/modules/catalog/src/testFixtures/java/org/apache/ignite/internal/catalog/CatalogTestUtils.java b/modules/catalog/src/testFixtures/java/org/apache/ignite/internal/catalog/CatalogTestUtils.java
index 753a5af430..ba557a491d 100644
--- a/modules/catalog/src/testFixtures/java/org/apache/ignite/internal/catalog/CatalogTestUtils.java
+++ b/modules/catalog/src/testFixtures/java/org/apache/ignite/internal/catalog/CatalogTestUtils.java
@@ -54,6 +54,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
import org.apache.ignite.internal.metastorage.server.SimpleInMemoryKeyValueStorage;
@@ -82,9 +83,12 @@ public class CatalogTestUtils {
return new CatalogManagerImpl(new UpdateLogImpl(metastore), clockService) {
@Override
- public CompletableFuture<Void> startAsync() {
- return allOf(metastore.startAsync(), clockWaiter.startAsync(), super.startAsync())
- .thenCompose(unused -> metastore.deployWatches());
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
+ return allOf(
+ metastore.startAsync(componentContext),
+ clockWaiter.startAsync(componentContext),
+ super.startAsync(componentContext)
+ ).thenComposeAsync(unused -> metastore.deployWatches(), componentContext.executor());
}
@Override
@@ -96,8 +100,12 @@ public class CatalogTestUtils {
}
@Override
- public CompletableFuture<Void> stopAsync() {
- return IgniteUtils.stopAsync(super::stopAsync, clockWaiter::stopAsync, metastore::stopAsync);
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
+ return IgniteUtils.stopAsync(
+ () -> super.stopAsync(componentContext),
+ () -> clockWaiter.stopAsync(componentContext),
+ () -> metastore.stopAsync(componentContext)
+ );
}
};
}
@@ -116,8 +124,9 @@ public class CatalogTestUtils {
return new CatalogManagerImpl(new UpdateLogImpl(metastore), new TestClockService(clock, clockWaiter)) {
@Override
- public CompletableFuture<Void> startAsync() {
- return allOf(metastore.startAsync(), super.startAsync()).thenCompose(unused -> metastore.deployWatches());
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
+ return allOf(metastore.startAsync(componentContext), super.startAsync(componentContext))
+ .thenComposeAsync(unused -> metastore.deployWatches(), componentContext.executor());
}
@Override
@@ -128,8 +137,11 @@ public class CatalogTestUtils {
}
@Override
- public CompletableFuture<Void> stopAsync() {
- return IgniteUtils.stopAsync(super::stopAsync, metastore::stopAsync);
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
+ return IgniteUtils.stopAsync(
+ () -> super.stopAsync(componentContext),
+ () -> metastore.stopAsync(componentContext)
+ );
}
};
}
@@ -148,8 +160,8 @@ public class CatalogTestUtils {
return new CatalogManagerImpl(new UpdateLogImpl(metastore), new TestClockService(clock, clockWaiter)) {
@Override
- public CompletableFuture<Void> startAsync() {
- return allOf(clockWaiter.startAsync(), super.startAsync());
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
+ return allOf(clockWaiter.startAsync(componentContext), super.startAsync(componentContext));
}
@Override
@@ -160,8 +172,11 @@ public class CatalogTestUtils {
}
@Override
- public CompletableFuture<Void> stopAsync() {
- return IgniteUtils.stopAsync(super::stopAsync, clockWaiter::stopAsync);
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
+ return IgniteUtils.stopAsync(
+ () -> super.stopAsync(componentContext),
+ () -> clockWaiter.stopAsync(componentContext)
+ );
}
};
}
@@ -194,8 +209,8 @@ public class CatalogTestUtils {
return new CatalogManagerImpl(updateLog, new TestClockService(clock, clockWaiter)) {
@Override
- public CompletableFuture<Void> startAsync() {
- return allOf(clockWaiter.startAsync(), super.startAsync());
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
+ return allOf(clockWaiter.startAsync(componentContext), super.startAsync(componentContext));
}
@Override
@@ -206,8 +221,11 @@ public class CatalogTestUtils {
}
@Override
- public CompletableFuture<Void> stopAsync() {
- return IgniteUtils.stopAsync(super::stopAsync, clockWaiter::stopAsync);
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
+ return IgniteUtils.stopAsync(
+ () -> super.stopAsync(componentContext),
+ () -> clockWaiter.stopAsync(componentContext)
+ );
}
};
}
@@ -230,8 +248,8 @@ public class CatalogTestUtils {
return new CatalogManagerImpl(new TestUpdateLog(clock), new TestClockService(clock, clockWaiter)) {
@Override
- public CompletableFuture<Void> startAsync() {
- return allOf(clockWaiter.startAsync(), super.startAsync());
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
+ return allOf(clockWaiter.startAsync(componentContext), super.startAsync(componentContext));
}
@Override
@@ -242,8 +260,11 @@ public class CatalogTestUtils {
}
@Override
- public CompletableFuture<Void> stopAsync() {
- return IgniteUtils.stopAsync(super::stopAsync, clockWaiter::stopAsync);
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
+ return IgniteUtils.stopAsync(
+ () -> super.stopAsync(componentContext),
+ () -> clockWaiter.stopAsync(componentContext)
+ );
}
};
}
@@ -393,7 +414,7 @@ public class CatalogTestUtils {
}
@Override
- public CompletableFuture<Void> startAsync() throws IgniteInternalException {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) throws IgniteInternalException {
if (onUpdateHandler == null) {
throw new IgniteInternalException(
Common.INTERNAL_ERR,
@@ -407,7 +428,7 @@ public class CatalogTestUtils {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
}
diff --git a/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerBindTest.java b/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerBindTest.java
index 72dfed3bd2..775b28d466 100644
--- a/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerBindTest.java
+++ b/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerBindTest.java
@@ -30,6 +30,7 @@ import java.util.concurrent.CompletionException;
import org.apache.ignite.client.handler.configuration.ClientConnectorConfiguration;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.configuration.NetworkConfiguration;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.junit.jupiter.api.AfterEach;
@@ -53,7 +54,8 @@ public class ItClientHandlerBindTest extends BaseIgniteAbstractTest {
final void tearDown() throws Exception {
closeAll(
server == null ? null : () -> server.tearDown(),
- serverModule == null ? null : () -> assertThat(serverModule.stopAsync(), willCompleteSuccessfully())
+ serverModule == null ? null :
+ () -> assertThat(serverModule.stopAsync(new ComponentContext()), willCompleteSuccessfully())
);
}
diff --git a/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerTest.java b/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerTest.java
index 1ebbeea5b0..159108cdb7 100644
--- a/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerTest.java
+++ b/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerTest.java
@@ -37,6 +37,7 @@ import java.net.Socket;
import org.apache.ignite.client.handler.configuration.ClientConnectorConfiguration;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.configuration.NetworkConfiguration;
import org.apache.ignite.internal.security.authentication.basic.BasicAuthenticationProviderChange;
import org.apache.ignite.internal.security.configuration.SecurityConfiguration;
@@ -76,8 +77,8 @@ public class ItClientHandlerTest extends BaseIgniteAbstractTest {
}
@AfterEach
- public void tearDown() throws Exception {
- assertThat(serverModule.stopAsync(), willCompleteSuccessfully());
+ public void tearDown() {
+ assertThat(serverModule.stopAsync(new ComponentContext()), willCompleteSuccessfully());
testServer.tearDown();
}
diff --git a/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/TestServer.java b/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/TestServer.java
index 50551ccfbf..5ce80ba776 100644
--- a/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/TestServer.java
+++ b/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/TestServer.java
@@ -31,6 +31,7 @@ import org.apache.ignite.internal.compute.IgniteComputeInternal;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.MetricManagerImpl;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NettyBootstrapFactory;
@@ -90,11 +91,13 @@ public class TestServer {
}
void tearDown() {
- assertThat(bootstrapFactory.stopAsync(), willCompleteSuccessfully());
+ assertThat(bootstrapFactory.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
ClientHandlerModule start(TestInfo testInfo) {
- assertThat(authenticationManager.startAsync(), willCompleteSuccessfully());
+ ComponentContext componentContext = new ComponentContext();
+
+ assertThat(authenticationManager.startAsync(componentContext), willCompleteSuccessfully());
clientConnectorConfiguration.change(
local -> local
@@ -110,7 +113,7 @@ public class TestServer {
bootstrapFactory = new NettyBootstrapFactory(networkConfiguration, testInfo.getDisplayName());
- assertThat(bootstrapFactory.startAsync(), willCompleteSuccessfully());
+ assertThat(bootstrapFactory.startAsync(componentContext), willCompleteSuccessfully());
ClusterService clusterService = mock(ClusterService.class, RETURNS_DEEP_STUBS);
Mockito.when(clusterService.topologyService().localMember().id()).thenReturn("id");
@@ -135,7 +138,7 @@ public class TestServer {
new TestLowWatermark()
);
- module.startAsync().join();
+ module.startAsync(componentContext).join();
return module;
}
diff --git a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
index 321c1734e0..d7cebbd46b 100644
--- a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
+++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
@@ -51,6 +51,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.lowwatermark.LowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metrics.MetricManager;
import org.apache.ignite.internal.network.ClusterService;
@@ -199,7 +200,7 @@ public class ClientHandlerModule implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
if (channel != null) {
throw new IgniteInternalException(INTERNAL_ERR, "ClientHandlerModule is already started.");
}
@@ -218,7 +219,7 @@ public class ClientHandlerModule implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/client-handler/src/testFixtures/java/org/apache/ignite/client/handler/DummyAuthenticationManager.java b/modules/client-handler/src/testFixtures/java/org/apache/ignite/client/handler/DummyAuthenticationManager.java
index b25d30347d..1fc0bc055c 100644
--- a/modules/client-handler/src/testFixtures/java/org/apache/ignite/client/handler/DummyAuthenticationManager.java
+++ b/modules/client-handler/src/testFixtures/java/org/apache/ignite/client/handler/DummyAuthenticationManager.java
@@ -21,6 +21,7 @@ import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFu
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.event.EventListener;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.security.authentication.AuthenticationManager;
import org.apache.ignite.internal.security.authentication.AuthenticationRequest;
import org.apache.ignite.internal.security.authentication.UserDetails;
@@ -42,12 +43,12 @@ public class DummyAuthenticationManager implements AuthenticationManager {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
diff --git a/modules/client/src/main/java/org/apache/ignite/internal/client/TcpIgniteClient.java b/modules/client/src/main/java/org/apache/ignite/internal/client/TcpIgniteClient.java
index 4a6adf9208..50b8546c15 100644
--- a/modules/client/src/main/java/org/apache/ignite/internal/client/TcpIgniteClient.java
+++ b/modules/client/src/main/java/org/apache/ignite/internal/client/TcpIgniteClient.java
@@ -36,6 +36,7 @@ import org.apache.ignite.internal.client.sql.ClientSql;
import org.apache.ignite.internal.client.table.ClientTables;
import org.apache.ignite.internal.client.tx.ClientTransactions;
import org.apache.ignite.internal.jdbc.proto.ClientMessage;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.marshaller.ReflectionMarshallersProvider;
import org.apache.ignite.internal.metrics.MetricManager;
import org.apache.ignite.internal.metrics.MetricManagerImpl;
@@ -216,7 +217,7 @@ public class TcpIgniteClient implements IgniteClient {
ch.close();
if (metricManager != null) {
- metricManager.stopAsync().join();
+ metricManager.stopAsync(new ComponentContext()).join();
}
}
diff --git a/modules/client/src/test/java/org/apache/ignite/client/TestClientHandlerModule.java b/modules/client/src/test/java/org/apache/ignite/client/TestClientHandlerModule.java
index 292cdb11f8..ff5b87658e 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/TestClientHandlerModule.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/TestClientHandlerModule.java
@@ -49,6 +49,7 @@ import org.apache.ignite.internal.compute.IgniteComputeInternal;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NettyBootstrapFactory;
@@ -152,7 +153,7 @@ public class TestClientHandlerModule implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
if (channel != null) {
throw new IgniteException("ClientHandlerModule is already started.");
}
@@ -168,7 +169,7 @@ public class TestClientHandlerModule implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (channel != null) {
try {
channel.close().await();
diff --git a/modules/client/src/test/java/org/apache/ignite/client/TestServer.java b/modules/client/src/test/java/org/apache/ignite/client/TestServer.java
index fcbe3df2a0..036dc130cb 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/TestServer.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/TestServer.java
@@ -58,6 +58,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metrics.MetricManagerImpl;
import org.apache.ignite.internal.network.ClusterService;
@@ -174,7 +175,9 @@ public class TestServer implements AutoCloseable {
new TestConfigurationValidator()
);
- assertThat(cfg.startAsync(), willCompleteSuccessfully());
+ ComponentContext componentContext = new ComponentContext();
+
+ assertThat(cfg.startAsync(componentContext), willCompleteSuccessfully());
cfg.getConfiguration(ClientConnectorConfiguration.KEY).change(
local -> local
@@ -185,7 +188,7 @@ public class TestServer implements AutoCloseable {
bootstrapFactory = new NettyBootstrapFactory(cfg.getConfiguration(NetworkConfiguration.KEY), "TestServer-");
- assertThat(bootstrapFactory.startAsync(), willCompleteSuccessfully());
+ assertThat(bootstrapFactory.startAsync(componentContext), willCompleteSuccessfully());
if (nodeName == null) {
nodeName = "server-1";
@@ -214,7 +217,7 @@ public class TestServer implements AutoCloseable {
authenticationManager = new DummyAuthenticationManager();
} else {
authenticationManager = new AuthenticationManagerImpl(securityConfiguration, ign -> {});
- assertThat(authenticationManager.startAsync(), willCompleteSuccessfully());
+ assertThat(authenticationManager.startAsync(componentContext), willCompleteSuccessfully());
}
ClusterTag tag = msgFactory.clusterTag()
@@ -257,7 +260,7 @@ public class TestServer implements AutoCloseable {
new TestLowWatermark()
);
- module.startAsync().join();
+ module.startAsync(componentContext).join();
}
/**
@@ -321,7 +324,7 @@ public class TestServer implements AutoCloseable {
/** {@inheritDoc} */
@Override
public void close() throws Exception {
- assertThat(stopAsync(module, authenticationManager, bootstrapFactory, cfg), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), module, authenticationManager, bootstrapFactory, cfg), willCompleteSuccessfully());
generator.close();
}
diff --git a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgniteQueryProcessor.java b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgniteQueryProcessor.java
index 679e09df9d..6163a589bb 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgniteQueryProcessor.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeIgniteQueryProcessor.java
@@ -23,6 +23,7 @@ import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFu
import static org.apache.ignite.lang.ErrorGroups.Sql.STMT_VALIDATION_ERR;
import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.sql.engine.AsyncSqlCursor;
import org.apache.ignite.internal.sql.engine.InternalSqlRow;
import org.apache.ignite.internal.sql.engine.QueryProcessor;
@@ -80,12 +81,12 @@ public class FakeIgniteQueryProcessor implements QueryProcessor {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
}
diff --git a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeTxManager.java b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeTxManager.java
index 2494b214eb..53af23ec3d 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeTxManager.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeTxManager.java
@@ -27,6 +27,7 @@ import java.util.function.Function;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.IgniteBiTuple;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.replicator.TablePartitionId;
import org.apache.ignite.internal.tx.HybridTimestampTracker;
import org.apache.ignite.internal.tx.InternalTransaction;
@@ -50,13 +51,13 @@ public class FakeTxManager implements TxManager {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
// No-op.
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
// No-op.
return nullCompletedFuture();
}
diff --git a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
index ae78ae35ff..d93200e5b3 100644
--- a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
+++ b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
@@ -56,6 +56,7 @@ import org.apache.ignite.internal.configuration.testframework.InjectConfiguratio
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NodeFinder;
import org.apache.ignite.internal.network.StaticNodeFinder;
@@ -109,14 +110,14 @@ public class ItCmgRaftServiceTest extends BaseIgniteAbstractTest {
}
void start() {
- assertThat(startAsync(clusterService, raftManager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), clusterService, raftManager), willCompleteSuccessfully());
}
void afterNodeStart() {
try {
assertTrue(waitForCondition(() -> clusterService.topologyService().allMembers().size() == cluster.size(), 1000));
- assertThat(raftStorage.startAsync(), willCompleteSuccessfully());
+ assertThat(raftStorage.startAsync(new ComponentContext()), willCompleteSuccessfully());
PeersAndLearners configuration = clusterService.topologyService().allMembers().stream()
.map(ClusterNode::name)
@@ -157,7 +158,7 @@ public class ItCmgRaftServiceTest extends BaseIgniteAbstractTest {
}
void stop() {
- assertThat(stopAsync(raftManager, raftStorage, clusterService), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), raftManager, raftStorage, clusterService), willCompleteSuccessfully());
}
ClusterNode localMember() {
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java
index 3b4f951417..f9e963f02d 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java
+++ b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java
@@ -69,6 +69,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NetworkMessage;
@@ -221,7 +222,7 @@ public class ClusterManagementGroupManager extends AbstractEventProducer<Cluster
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
synchronized (raftServiceLock) {
raftService = recoverLocalState();
}
@@ -717,7 +718,7 @@ public class ClusterManagementGroupManager extends AbstractEventProducer<Cluster
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorage.java b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorage.java
index 0b113de08b..c12826b917 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorage.java
+++ b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorage.java
@@ -36,6 +36,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.BiFunction;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.rocksdb.ColumnFamily;
import org.apache.ignite.internal.rocksdb.RocksUtils;
import org.apache.ignite.internal.rocksdb.snapshot.RocksSnapshotManager;
@@ -96,7 +97,7 @@ public class RocksDbClusterStateStorage implements ClusterStateStorage {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return inBusyLockAsync(busyLock, () -> {
try {
// Delete existing data, relying on log playback.
@@ -244,7 +245,7 @@ public class RocksDbClusterStateStorage implements ClusterStateStorage {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageManagerTest.java b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageManagerTest.java
index 045a52f7d4..5bde4edecf 100644
--- a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageManagerTest.java
+++ b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageManagerTest.java
@@ -34,6 +34,7 @@ import java.util.Set;
import org.apache.ignite.internal.cluster.management.ClusterTag;
import org.apache.ignite.internal.cluster.management.network.messages.CmgMessagesFactory;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.properties.IgniteProductVersion;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.apache.ignite.network.NetworkAddress;
@@ -58,14 +59,14 @@ public abstract class AbstractClusterStateStorageManagerTest extends IgniteAbstr
void setUp(TestInfo testInfo) {
storage = clusterStateStorage(testNodeName(testInfo, 0));
- assertThat(storage.startAsync(), willCompleteSuccessfully());
+ assertThat(storage.startAsync(new ComponentContext()), willCompleteSuccessfully());
storageManager = new RaftStorageManager(storage);
}
@AfterEach
void tearDown() {
- assertThat(storage.stopAsync(), willCompleteSuccessfully());
+ assertThat(storage.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
diff --git a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageTest.java b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageTest.java
index ed1100ae74..b2fce44a1f 100644
--- a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageTest.java
+++ b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageTest.java
@@ -36,6 +36,7 @@ import java.nio.file.Path;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.rocksdb.RocksUtils;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.junit.jupiter.api.AfterEach;
@@ -55,12 +56,12 @@ public abstract class AbstractClusterStateStorageTest extends IgniteAbstractTest
void setUp(TestInfo testInfo) {
storage = createStorage(testNodeName(testInfo, 0));
- assertThat(storage.startAsync(), willCompleteSuccessfully());
+ assertThat(storage.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void tearDown() {
- assertThat(storage.stopAsync(), willCompleteSuccessfully());
+ assertThat(storage.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
@@ -277,11 +278,11 @@ public abstract class AbstractClusterStateStorageTest extends IgniteAbstractTest
assertThat(storage.snapshot(snapshotDir), willCompleteSuccessfully());
- assertThat(storage.stopAsync(), willCompleteSuccessfully());
+ assertThat(storage.stopAsync(new ComponentContext()), willCompleteSuccessfully());
storage = createStorage(testNodeName(testInfo, 1));
- assertThat(storage.startAsync(), willCompleteSuccessfully());
+ assertThat(storage.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(storage.get(key1), is(nullValue()));
assertThat(storage.get(key2), is(nullValue()));
@@ -332,7 +333,7 @@ public abstract class AbstractClusterStateStorageTest extends IgniteAbstractTest
@Test
void throwsNodeStoppingException() {
- assertThat(storage.stopAsync(), willCompleteSuccessfully());
+ assertThat(storage.stopAsync(new ComponentContext()), willCompleteSuccessfully());
assertThrowsWithCause(() -> storage.get(BYTE_EMPTY_ARRAY), NodeStoppingException.class);
assertThrowsWithCause(() -> storage.put(BYTE_EMPTY_ARRAY, BYTE_EMPTY_ARRAY), NodeStoppingException.class);
diff --git a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListenerTest.java b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListenerTest.java
index 9293cd1fd2..8a8e463fd0 100644
--- a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListenerTest.java
+++ b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListenerTest.java
@@ -50,6 +50,7 @@ import org.apache.ignite.internal.cluster.management.raft.commands.JoinRequestCo
import org.apache.ignite.internal.cluster.management.topology.LogicalTopology;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.properties.IgniteProductVersion;
import org.apache.ignite.internal.raft.Command;
import org.apache.ignite.internal.raft.service.CommandClosure;
@@ -86,14 +87,14 @@ public class CmgRaftGroupListenerTest extends BaseIgniteAbstractTest {
@BeforeEach
void setUp() {
- assertThat(storage.startAsync(), willCompleteSuccessfully());
+ assertThat(storage.startAsync(new ComponentContext()), willCompleteSuccessfully());
listener = new CmgRaftGroupListener(storage, logicalTopology, onLogicalTopologyChanged);
}
@AfterEach
void tearDown() {
- assertThat(storage.stopAsync(), willCompleteSuccessfully());
+ assertThat(storage.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
diff --git a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImplTest.java b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImplTest.java
index a2997beeed..51cb10363f 100644
--- a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImplTest.java
+++ b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImplTest.java
@@ -52,6 +52,7 @@ import org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorag
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologyEventListener;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologySnapshot;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -94,7 +95,7 @@ class LogicalTopologyImplTest extends BaseIgniteAbstractTest {
@BeforeEach
void setUp() {
- assertThat(storage.startAsync(), willCompleteSuccessfully());
+ assertThat(storage.startAsync(new ComponentContext()), willCompleteSuccessfully());
topology = new LogicalTopologyImpl(storage);
@@ -103,7 +104,7 @@ class LogicalTopologyImplTest extends BaseIgniteAbstractTest {
@AfterEach
void tearDown() {
- assertThat(storage.stopAsync(), willCompleteSuccessfully());
+ assertThat(storage.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
diff --git a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
index 82cfd8decf..81d89b2697 100644
--- a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
+++ b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
@@ -40,6 +40,7 @@ import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopolog
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
import org.apache.ignite.internal.failure.FailureProcessor;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NodeFinder;
@@ -129,7 +130,7 @@ public class MockNode {
* Start fake node.
*/
public CompletableFuture<Void> startAsync() {
- return IgniteUtils.startAsync(components);
+ return IgniteUtils.startAsync(new ComponentContext(), components);
}
/**
@@ -158,7 +159,7 @@ public class MockNode {
reverse(componentsToStop);
- assertThat(stopAsync(componentsToStop), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), componentsToStop), willCompleteSuccessfully());
}
public ClusterNode localMember() {
diff --git a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorage.java b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorage.java
index 47212391eb..b9a231cdb8 100644
--- a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorage.java
+++ b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorage.java
@@ -40,6 +40,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.function.BiFunction;
import java.util.function.Supplier;
import org.apache.ignite.internal.lang.ByteArray;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.util.IgniteSpinBusyLock;
import org.jetbrains.annotations.Nullable;
@@ -59,7 +60,7 @@ public class TestClusterStateStorage implements ClusterStateStorage {
private final AtomicBoolean stopGuard = new AtomicBoolean();
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@@ -149,7 +150,7 @@ public class TestClusterStateStorage implements ClusterStateStorage {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/code-deployment/src/main/java/org/apache/ignite/internal/deployunit/DeploymentManagerImpl.java b/modules/code-deployment/src/main/java/org/apache/ignite/internal/deployunit/DeploymentManagerImpl.java
index 67279c5c0b..53e2c56cf6 100644
--- a/modules/code-deployment/src/main/java/org/apache/ignite/internal/deployunit/DeploymentManagerImpl.java
+++ b/modules/code-deployment/src/main/java/org/apache/ignite/internal/deployunit/DeploymentManagerImpl.java
@@ -56,6 +56,7 @@ import org.apache.ignite.internal.deployunit.metastore.NodeStatusWatchListener;
import org.apache.ignite.internal.deployunit.metastore.status.UnitClusterStatus;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.jetbrains.annotations.Nullable;
@@ -396,7 +397,7 @@ public class DeploymentManagerImpl implements IgniteDeployment {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
deployer.initUnitsFolder(workDir.resolve(configuration.deploymentLocation().value()));
deploymentUnitStore.registerNodeStatusListener(nodeStatusWatchListener);
deploymentUnitStore.registerClusterStatusListener(clusterStatusWatchListener);
@@ -408,7 +409,7 @@ public class DeploymentManagerImpl implements IgniteDeployment {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
deployer.stop();
nodeStatusWatchListener.stop();
tracker.cancelAll();
diff --git a/modules/code-deployment/src/test/java/org/apache/ignite/deployment/metastore/DeploymentUnitStoreImplTest.java b/modules/code-deployment/src/test/java/org/apache/ignite/deployment/metastore/DeploymentUnitStoreImplTest.java
index 2af60bef32..a5b4c04d74 100644
--- a/modules/code-deployment/src/test/java/org/apache/ignite/deployment/metastore/DeploymentUnitStoreImplTest.java
+++ b/modules/code-deployment/src/test/java/org/apache/ignite/deployment/metastore/DeploymentUnitStoreImplTest.java
@@ -45,6 +45,7 @@ import org.apache.ignite.internal.deployunit.metastore.NodeStatusWatchListener;
import org.apache.ignite.internal.deployunit.metastore.status.UnitClusterStatus;
import org.apache.ignite.internal.deployunit.metastore.status.UnitNodeStatus;
import org.apache.ignite.internal.failure.NoOpFailureProcessor;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
import org.apache.ignite.internal.metastorage.server.KeyValueStorage;
@@ -102,12 +103,12 @@ public class DeploymentUnitStoreImplTest extends BaseIgniteAbstractTest {
ClusterStatusWatchListener clusterListener = new ClusterStatusWatchListener(clusterEventCallback);
metastore.registerClusterStatusListener(clusterListener);
- assertThat(metaStorageManager.startAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
toStop = () -> {
nodeListener.stop();
- assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
};
assertThat("Watches were not deployed", metaStorageManager.deployWatches(), willCompleteSuccessfully());
diff --git a/modules/compute/src/main/java/org/apache/ignite/internal/compute/ComputeComponentImpl.java b/modules/compute/src/main/java/org/apache/ignite/internal/compute/ComputeComponentImpl.java
index 0adc3a61d0..54dde09fc9 100644
--- a/modules/compute/src/main/java/org/apache/ignite/internal/compute/ComputeComponentImpl.java
+++ b/modules/compute/src/main/java/org/apache/ignite/internal/compute/ComputeComponentImpl.java
@@ -53,6 +53,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.internal.util.IgniteSpinBusyLock;
@@ -266,7 +267,7 @@ public class ComputeComponentImpl implements ComputeComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
executor.start();
messaging.start(this::executeLocally);
executionManager.start();
@@ -276,7 +277,7 @@ public class ComputeComponentImpl implements ComputeComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/compute/src/test/java/org/apache/ignite/internal/compute/ComputeComponentImplTest.java b/modules/compute/src/test/java/org/apache/ignite/internal/compute/ComputeComponentImplTest.java
index 89f5c2b7c8..dfe0efe770 100644
--- a/modules/compute/src/test/java/org/apache/ignite/internal/compute/ComputeComponentImplTest.java
+++ b/modules/compute/src/test/java/org/apache/ignite/internal/compute/ComputeComponentImplTest.java
@@ -95,6 +95,7 @@ import org.apache.ignite.internal.deployunit.exception.DeploymentUnitNotFoundExc
import org.apache.ignite.internal.deployunit.exception.DeploymentUnitUnavailableException;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.NetworkMessage;
@@ -172,13 +173,13 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
computeConfiguration
);
- assertThat(computeComponent.startAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(computeMessageHandlerRef.get(), is(notNullValue()));
}
@AfterEach
void cleanup() {
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
@@ -447,7 +448,7 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
@Test
void stoppedComponentReturnsExceptionOnLocalExecutionAttempt() {
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
CompletableFuture<String> result = executeLocally(SimpleJob.class.getName());
@@ -458,12 +459,15 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
void localExecutionReleasesStopLock() throws Exception {
executeLocally(SimpleJob.class.getName()).get();
- assertTimeoutPreemptively(Duration.ofSeconds(3), () -> assertThat(computeComponent.stopAsync(), willCompleteSuccessfully()));
+ assertTimeoutPreemptively(
+ Duration.ofSeconds(3),
+ () -> assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully())
+ );
}
@Test
void stoppedComponentReturnsExceptionOnRemoteExecutionAttempt() {
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
CompletableFuture<String> result = executeRemotely(SimpleJob.class.getName());
@@ -478,12 +482,15 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
executeRemotely(SimpleJob.class.getName()).get();
- assertTimeoutPreemptively(Duration.ofSeconds(3), () -> assertThat(computeComponent.stopAsync(), willCompleteSuccessfully()));
+ assertTimeoutPreemptively(
+ Duration.ofSeconds(3),
+ () -> assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully())
+ );
}
@Test
void stoppedComponentReturnsExceptionOnExecuteRequestAttempt() {
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
ExecuteRequest request = new ComputeMessagesFactory().executeRequest()
.executeOptions(DEFAULT)
@@ -500,7 +507,7 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
@Test
void stoppedComponentReturnsExceptionOnJobResultRequestAttempt() {
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
JobResultRequest jobResultRequest = new ComputeMessagesFactory().jobResultRequest()
.jobId(UUID.randomUUID())
@@ -514,7 +521,7 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
@Test
void stoppedComponentReturnsExceptionOnJobStatusRequestAttempt() {
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
JobStatusRequest jobStatusRequest = new ComputeMessagesFactory().jobStatusRequest()
.jobId(UUID.randomUUID())
@@ -528,7 +535,7 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
@Test
void stoppedComponentReturnsExceptionOnJobCancelRequestAttempt() {
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
JobCancelRequest jobCancelRequest = new ComputeMessagesFactory().jobCancelRequest()
.jobId(UUID.randomUUID())
@@ -542,7 +549,7 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
@Test
void stoppedComponentReturnsExceptionOnJobChangePriorityRequestAttempt() {
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
JobChangePriorityRequest jobChangePriorityRequest = new ComputeMessagesFactory().jobChangePriorityRequest()
.jobId(UUID.randomUUID())
@@ -571,7 +578,7 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
// the corresponding task goes to work queue
CompletableFuture<String> resultFuture = executeLocally(SimpleJob.class.getName());
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
// now work queue is dropped to the floor, so the future should be resolved with a cancellation
assertThat(resultFuture, willThrow(CancellationException.class));
@@ -584,7 +591,7 @@ class ComputeComponentImplTest extends BaseIgniteAbstractTest {
CompletableFuture<String> resultFuture = executeRemotely(SimpleJob.class.getName());
- assertThat(computeComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(computeComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(resultFuture, willThrow(CancellationException.class));
}
diff --git a/modules/compute/src/test/java/org/apache/ignite/internal/compute/util/DummyIgniteDeployment.java b/modules/compute/src/test/java/org/apache/ignite/internal/compute/util/DummyIgniteDeployment.java
index ff3ce3005f..bfc77c4b76 100644
--- a/modules/compute/src/test/java/org/apache/ignite/internal/compute/util/DummyIgniteDeployment.java
+++ b/modules/compute/src/test/java/org/apache/ignite/internal/compute/util/DummyIgniteDeployment.java
@@ -35,6 +35,7 @@ import org.apache.ignite.internal.deployunit.IgniteDeployment;
import org.apache.ignite.internal.deployunit.NodesToDeploy;
import org.apache.ignite.internal.deployunit.UnitStatuses;
import org.apache.ignite.internal.deployunit.exception.DeploymentUnitNotFoundException;
+import org.apache.ignite.internal.manager.ComponentContext;
/**
* Implementation of {@link IgniteDeployment} for tests.
@@ -118,12 +119,12 @@ public class DummyIgniteDeployment implements IgniteDeployment {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
diff --git a/modules/configuration-presentation/src/test/java/org/apache/ignite/internal/configuration/presentation/HoconPresentationTest.java b/modules/configuration-presentation/src/test/java/org/apache/ignite/internal/configuration/presentation/HoconPresentationTest.java
index c8bd214ced..492a84bd19 100644
--- a/modules/configuration-presentation/src/test/java/org/apache/ignite/internal/configuration/presentation/HoconPresentationTest.java
+++ b/modules/configuration-presentation/src/test/java/org/apache/ignite/internal/configuration/presentation/HoconPresentationTest.java
@@ -45,6 +45,7 @@ import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.ConfigurationValidatorImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
@@ -90,7 +91,7 @@ public class HoconPresentationTest {
ConfigurationValidatorImpl.withDefaultValidators(generator, Set.of(validator))
);
- assertThat(cfgRegistry.startAsync(), willCompleteSuccessfully());
+ assertThat(cfgRegistry.startAsync(new ComponentContext()), willCompleteSuccessfully());
cfgPresentation = new HoconPresentation(cfgRegistry);
@@ -102,7 +103,7 @@ public class HoconPresentationTest {
*/
@AfterAll
static void afterAll() {
- assertThat(cfgRegistry.stopAsync(), willCompleteSuccessfully());
+ assertThat(cfgRegistry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
cfgRegistry = null;
generator.close();
diff --git a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationManager.java b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationManager.java
index 596403e77e..cd7ed770e0 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationManager.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationManager.java
@@ -22,6 +22,7 @@ import java.util.concurrent.CompletableFuture;
import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.internal.configuration.storage.ConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.ConfigurationValidator;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
/**
@@ -56,15 +57,15 @@ public class ConfigurationManager implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
- return registry.startAsync();
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
+ return registry.startAsync(componentContext);
}
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
// TODO: IGNITE-15161 Implement component's stop.
- return registry.stopAsync();
+ return registry.stopAsync(componentContext);
}
/**
diff --git a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationRegistry.java b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationRegistry.java
index 72500b988c..ac074ba17b 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationRegistry.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationRegistry.java
@@ -44,6 +44,7 @@ import org.apache.ignite.internal.configuration.tree.InnerNode;
import org.apache.ignite.internal.configuration.validation.ConfigurationValidator;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.jetbrains.annotations.Nullable;
@@ -94,7 +95,7 @@ public class ConfigurationRegistry implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
changer.start();
return nullCompletedFuture();
@@ -102,7 +103,7 @@ public class ConfigurationRegistry implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
changer.stop();
return nullCompletedFuture();
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/ConfigurationRegistryTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/ConfigurationRegistryTest.java
index 3272f6d4e7..785946b9de 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/ConfigurationRegistryTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/ConfigurationRegistryTest.java
@@ -46,6 +46,7 @@ import org.apache.ignite.configuration.annotation.PolymorphicId;
import org.apache.ignite.configuration.annotation.Value;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.junit.jupiter.api.Test;
/**
@@ -53,7 +54,7 @@ import org.junit.jupiter.api.Test;
*/
public class ConfigurationRegistryTest {
@Test
- void testValidationInternalConfigurationExtensions() throws Exception {
+ void testValidationInternalConfigurationExtensions() {
assertThrows(
IllegalArgumentException.class,
() -> new ConfigurationRegistry(
@@ -80,11 +81,11 @@ public class ConfigurationRegistryTest {
new TestConfigurationValidator()
);
- assertThat(configRegistry.stopAsync(), willCompleteSuccessfully());
+ assertThat(configRegistry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
- void testValidationPolymorphicConfigurationExtensions() throws Exception {
+ void testValidationPolymorphicConfigurationExtensions() {
// There is a polymorphic extension that is missing from the schema.
assertThrows(
IllegalArgumentException.class,
@@ -133,7 +134,7 @@ public class ConfigurationRegistryTest {
new TestConfigurationValidator()
);
- assertThat(configRegistry.stopAsync(), willCompleteSuccessfully());
+ assertThat(configRegistry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
@@ -174,7 +175,7 @@ public class ConfigurationRegistryTest {
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
try {
registry.getConfiguration(SixthRootConfiguration.KEY).change(c -> c
@@ -187,12 +188,12 @@ public class ConfigurationRegistryTest {
.changePolyNamed(c2 -> c2.create("5", toFirst0Polymorphic(5)))))
).get(1, SECONDS);
} finally {
- assertThat(registry.stopAsync(), willCompleteSuccessfully());
+ assertThat(registry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
@Test
- void testPolymorphicGet() throws Exception {
+ void testPolymorphicGet() {
ConfigurationRegistry registry = new ConfigurationRegistry(
List.of(SixthRootConfiguration.KEY),
new TestConfigurationStorage(LOCAL),
@@ -205,7 +206,7 @@ public class ConfigurationRegistryTest {
),
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
var configuration = registry.getConfiguration(SixthRootConfiguration.KEY).polyNamed();
CompletableFuture<Void> future = configuration.change(c -> {
@@ -220,11 +221,11 @@ public class ConfigurationRegistryTest {
UUID internalId = configuration.internalIds().get(0);
assertThat(configuration.get(internalId), instanceOf(Fourth0PolymorphicConfiguration.class));
- assertThat(registry.stopAsync(), willCompleteSuccessfully());
+ assertThat(registry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
- void testChangeSuperRoot() throws Exception {
+ void testChangeSuperRoot() {
TestConfigurationStorage storage = new TestConfigurationStorage(LOCAL);
var registry = new ConfigurationRegistry(
@@ -234,7 +235,7 @@ public class ConfigurationRegistryTest {
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
try {
FirstRootConfiguration firstConfiguration = registry.getConfiguration(FirstRootConfiguration.KEY);
@@ -261,7 +262,7 @@ public class ConfigurationRegistryTest {
assertEquals("foo", firstConfiguration.str().value());
assertEquals("bar", secondConfiguration.str().value());
} finally {
- assertThat(registry.stopAsync(), willCompleteSuccessfully());
+ assertThat(registry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/direct/DirectPropertiesTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/direct/DirectPropertiesTest.java
index 440cb9ba04..c3f64e8e1e 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/direct/DirectPropertiesTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/direct/DirectPropertiesTest.java
@@ -47,6 +47,7 @@ import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -112,12 +113,12 @@ public class DirectPropertiesTest {
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void tearDown() {
- assertThat(registry.stopAsync(), willCompleteSuccessfully());
+ assertThat(registry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/hocon/HoconConverterTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/hocon/HoconConverterTest.java
index 8f3390128d..7960eaeb0a 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/hocon/HoconConverterTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/hocon/HoconConverterTest.java
@@ -52,6 +52,7 @@ import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
@@ -223,7 +224,7 @@ public class HoconConverterTest {
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
configuration = registry.getConfiguration(HoconRootConfiguration.KEY);
injectedNameRootConfig = registry.getConfiguration(HoconInjectedNameRootConfiguration.KEY);
@@ -234,7 +235,7 @@ public class HoconConverterTest {
*/
@AfterAll
public static void after() {
- assertThat(registry.stopAsync(), willCompleteSuccessfully());
+ assertThat(registry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
registry = null;
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationAnyListenerTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationAnyListenerTest.java
index 7af2979b57..ce4aaf811c 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationAnyListenerTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationAnyListenerTest.java
@@ -58,6 +58,7 @@ import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -170,7 +171,7 @@ public class ConfigurationAnyListenerTest {
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
rootConfig = registry.getConfiguration(RootConfiguration.KEY);
@@ -239,7 +240,7 @@ public class ConfigurationAnyListenerTest {
@AfterEach
public void after() {
- assertThat(registry.stopAsync(), willCompleteSuccessfully());
+ assertThat(registry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
generator.close();
}
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationListenerTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationListenerTest.java
index 667502b17f..8d1b6d090b 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationListenerTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationListenerTest.java
@@ -74,6 +74,7 @@ import org.apache.ignite.internal.configuration.storage.ConfigurationStorage;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.tree.InnerNode;
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
@@ -191,7 +192,7 @@ public class ConfigurationListenerTest {
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(registry.onDefaultsPersisted(), willCompleteSuccessfully());
config = registry.getConfiguration(ParentConfiguration.KEY);
@@ -199,7 +200,7 @@ public class ConfigurationListenerTest {
@AfterEach
public void after() {
- assertThat(registry.stopAsync(), willCompleteSuccessfully());
+ assertThat(registry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
generator.close();
}
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/sample/UsageTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/sample/UsageTest.java
index e678e662c5..c38c088608 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/sample/UsageTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/sample/UsageTest.java
@@ -31,6 +31,7 @@ import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
@@ -42,7 +43,7 @@ public class UsageTest {
@AfterEach
public void after() {
- assertThat(registry.stopAsync(), willCompleteSuccessfully());
+ assertThat(registry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
@@ -57,7 +58,7 @@ public class UsageTest {
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
LocalConfiguration root = registry.getConfiguration(LocalConfiguration.KEY);
@@ -116,7 +117,7 @@ public class UsageTest {
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
registry.getConfiguration(LocalConfiguration.KEY).change(local ->
local.changeTestConfigurationSchema(schema ->
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/InternalIdTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/InternalIdTest.java
index 818c8b56a1..478ceb29b2 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/InternalIdTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/InternalIdTest.java
@@ -40,6 +40,7 @@ import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
import org.apache.ignite.internal.configuration.direct.DirectPropertiesTest;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.testframework.IgniteTestUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -97,12 +98,12 @@ public class InternalIdTest {
new TestConfigurationValidator()
);
- assertThat(registry.startAsync(), willCompleteSuccessfully());
+ assertThat(registry.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void tearDown() {
- assertThat(registry.stopAsync(), willCompleteSuccessfully());
+ assertThat(registry.stopAsync(new ComponentContext()), willCompleteSuccessfully());
generator.close();
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/components/LongJvmPauseDetector.java b/modules/core/src/main/java/org/apache/ignite/internal/components/LongJvmPauseDetector.java
index ed457e2f20..1a39c297c0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/components/LongJvmPauseDetector.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/components/LongJvmPauseDetector.java
@@ -28,6 +28,7 @@ import java.util.concurrent.atomic.AtomicReference;
import org.apache.ignite.internal.lang.IgniteBiTuple;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.internal.tostring.S;
@@ -92,7 +93,7 @@ public class LongJvmPauseDetector implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
if (DISABLED) {
log.debug("JVM Pause Detector is disabled");
@@ -166,7 +167,7 @@ public class LongJvmPauseDetector implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
final Thread worker = workerRef.getAndSet(null);
if (worker != null && worker.isAlive() && !worker.isInterrupted()) {
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/hlc/ClockWaiter.java b/modules/core/src/main/java/org/apache/ignite/internal/hlc/ClockWaiter.java
index d6bbddabd2..b43b30b2a0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/hlc/ClockWaiter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/hlc/ClockWaiter.java
@@ -34,6 +34,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.internal.util.IgniteSpinBusyLock;
@@ -90,7 +91,7 @@ public class ClockWaiter implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
clock.addUpdateListener(updateListener);
scheduler = Executors.newSingleThreadScheduledExecutor(NamedThreadFactory.create(nodeName, "clock-waiter-scheduler", log));
@@ -99,7 +100,7 @@ public class ClockWaiter implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/manager/ComponentContext.java b/modules/core/src/main/java/org/apache/ignite/internal/manager/ComponentContext.java
new file mode 100644
index 0000000000..df4f819e33
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/manager/ComponentContext.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.manager;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ForkJoinPool;
+
+/**
+ * Component lifecycle context.
+ */
+public class ComponentContext {
+
+ /**
+ * The executor that will execute the async part of start or stop.
+ */
+ private final ExecutorService executor;
+
+ /**
+ * Ctor.
+ *
+ * @param executor The executor that will execute the async part of start or stop.
+ */
+ public ComponentContext(ExecutorService executor) {
+ this.executor = executor;
+ }
+
+ /**
+ * Constructor with common pool.
+ */
+ public ComponentContext() {
+ this(ForkJoinPool.commonPool());
+ }
+
+ /**
+ * Gets the executor that will execute the async part of start or stop.
+ *
+ * @return The executor that will execute the async part of start or stop.
+ */
+ public ExecutorService executor() {
+ return executor;
+ }
+
+}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/manager/IgniteComponent.java b/modules/core/src/main/java/org/apache/ignite/internal/manager/IgniteComponent.java
index 80a42f8505..88f65f284e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/manager/IgniteComponent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/manager/IgniteComponent.java
@@ -18,6 +18,8 @@
package org.apache.ignite.internal.manager;
import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ForkJoinPool;
+import org.jetbrains.annotations.TestOnly;
/**
* Common interface for ignite components that provides entry points for component lifecycle flow.
@@ -28,12 +30,13 @@ public interface IgniteComponent {
* thread pools and threads goes here.
*
* <p>All actions in the component startup is divided into two categories: sync actions,
- * that can be executed synchronously in order for the component to be usable by other components during their startup,
- * and async actions, that are wrapped in a CompletableFuture and returned from the start method.
+ * that can be executed synchronously in order for the component to be usable by other components during their startup, and async
+ * actions, that are wrapped in a CompletableFuture and returned from the start method.
*
+ * @param componentContext The component lifecycle context.
* @return Future that will be completed when the asynchronous part of the start is processed.
*/
- CompletableFuture<Void> startAsync();
+ CompletableFuture<Void> startAsync(ComponentContext componentContext);
/**
* Triggers running before node stop logic. It's guaranteed that during beforeNodeStop all components beneath given one are still
@@ -44,10 +47,22 @@ public interface IgniteComponent {
}
/**
- * Stops the component. It's guaranteed that during {@code IgniteComponent#stopAsync())} all components beneath given one are still
- * running, however the node is no longer part of the topology and, accordingly, network interaction is impossible.
+ * Stops the component. It's guaranteed that during {@code IgniteComponent#stopAsync(ExecutorService))} all components beneath given one
+ * are still running, however the node is no longer part of the topology and, accordingly, network interaction is impossible.
*
+ * @param componentContext The component lifecycle context.
* @return Future that will be completed when the asynchronous part of the stop is processed.
*/
- CompletableFuture<Void> stopAsync();
+ CompletableFuture<Void> stopAsync(ComponentContext componentContext);
+
+
+ /**
+ * Stops the component. Calls {@link IgniteComponent#stopAsync(ComponentContext)} with {@link ForkJoinPool#commonPool()}.
+ *
+ * @return Future that will be completed when the asynchronous part of the stop is processed.
+ */
+ @TestOnly
+ default CompletableFuture<Void> stopAsync() {
+ return stopAsync(new ComponentContext());
+ }
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 536f38d2b6..b92a4f2c41 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -73,6 +73,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.IgniteStringFormatter;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.util.worker.IgniteWorker;
import org.jetbrains.annotations.Nullable;
@@ -1175,39 +1176,41 @@ public class IgniteUtils {
}
}
- private static CompletableFuture<Void> startAsync(Stream<? extends IgniteComponent> components) {
+ private static CompletableFuture<Void> startAsync(ComponentContext componentContext, Stream<? extends IgniteComponent> components) {
return allOf(components
.filter(Objects::nonNull)
- .map(IgniteComponent::startAsync)
+ .map(component -> component.startAsync(componentContext))
.toArray(CompletableFuture[]::new));
}
/**
* Asynchronously starts all ignite components.
*
+ * @param componentContext Ignite component context.
* @param components Array of ignite components to start.
* @return CompletableFuture that will be completed when all components are started.
*/
- public static CompletableFuture<Void> startAsync(IgniteComponent... components) {
- return startAsync(Stream.of(components));
+ public static CompletableFuture<Void> startAsync(ComponentContext componentContext, IgniteComponent... components) {
+ return startAsync(componentContext, Stream.of(components));
}
/**
* Asynchronously starts all ignite components.
*
+ * @param componentContext Ignite component context.
* @param components Collection of ignite components to start.
* @return CompletableFuture that will be completed when all components are started.
*/
- public static CompletableFuture<Void> startAsync(Collection<? extends IgniteComponent> components) {
- return startAsync(components.stream());
+ public static CompletableFuture<Void> startAsync(ComponentContext componentContext, Collection<? extends IgniteComponent> components) {
+ return startAsync(componentContext, components.stream());
}
- private static CompletableFuture<Void> stopAsync(Stream<? extends IgniteComponent> components) {
+ private static CompletableFuture<Void> stopAsync(ComponentContext componentContext, Stream<? extends IgniteComponent> components) {
return allOf(components
.filter(Objects::nonNull)
.map(igniteComponent -> {
try {
- return igniteComponent.stopAsync();
+ return igniteComponent.stopAsync(componentContext);
} catch (Throwable e) {
// Make sure a failure in the synchronous part will not interrupt the stopping process of other components.
return failedFuture(e);
@@ -1239,20 +1242,22 @@ public class IgniteUtils {
/**
* Asynchronously stops all ignite components.
*
+ * @param componentContext Ignite component context.
* @param components Array of ignite components to stop.
* @return CompletableFuture that will be completed when all components are stopped.
*/
- public static CompletableFuture<Void> stopAsync(IgniteComponent... components) {
- return stopAsync(Stream.of(components));
+ public static CompletableFuture<Void> stopAsync(ComponentContext componentContext, IgniteComponent... components) {
+ return stopAsync(componentContext, Stream.of(components));
}
/**
* Asynchronously stops all ignite components.
*
+ * @param componentContext Ignite component context.
* @param components Collection of ignite components to stop.
* @return CompletableFuture that will be completed when all components are stopped.
*/
- public static CompletableFuture<Void> stopAsync(Collection<? extends IgniteComponent> components) {
- return stopAsync(components.stream());
+ public static CompletableFuture<Void> stopAsync(ComponentContext componentContext, Collection<? extends IgniteComponent> components) {
+ return stopAsync(componentContext, components.stream());
}
}
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/hlc/ClockWaiterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/hlc/ClockWaiterTest.java
index b9451aca35..d2dfe89890 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/hlc/ClockWaiterTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/hlc/ClockWaiterTest.java
@@ -26,6 +26,7 @@ import static org.hamcrest.Matchers.is;
import java.util.concurrent.CancellationException;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -39,13 +40,13 @@ class ClockWaiterTest {
void createWaiter() {
waiter = new ClockWaiter("test", clock);
- assertThat(waiter.startAsync(), willCompleteSuccessfully());
+ assertThat(waiter.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void cleanup() {
if (waiter != null) {
- assertThat(waiter.stopAsync(), willCompleteSuccessfully());
+ assertThat(waiter.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
@@ -88,7 +89,7 @@ class ClockWaiterTest {
CompletableFuture<Void> future = waiter.waitFor(oneYearAhead);
- assertThat(waiter.stopAsync(), willCompleteSuccessfully());
+ assertThat(waiter.stopAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(future, willThrow(CancellationException.class));
}
diff --git a/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItIgniteDistributionZoneManagerNodeRestartTest.java b/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItIgniteDistributionZoneManagerNodeRestartTest.java
index 93b24bb827..9947cc689f 100644
--- a/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItIgniteDistributionZoneManagerNodeRestartTest.java
+++ b/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItIgniteDistributionZoneManagerNodeRestartTest.java
@@ -50,6 +50,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
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 static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doThrow;
@@ -103,6 +104,7 @@ import org.apache.ignite.internal.hlc.ClockWaiter;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.ByteArray;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
@@ -224,8 +226,9 @@ public class ItIgniteDistributionZoneManagerNodeRestartTest extends BaseIgniteRe
var cmgManager = mock(ClusterManagementGroupManager.class);
when(cmgManager.logicalTopology()).thenAnswer(invocation -> completedFuture(logicalTopology.getLogicalTopology()));
- when(cmgManager.startAsync()).thenReturn(nullCompletedFuture());
- when(cmgManager.stopAsync()).thenReturn(nullCompletedFuture());
+
+ when(cmgManager.startAsync(any())).thenReturn(nullCompletedFuture());
+ when(cmgManager.stopAsync(any())).thenReturn(nullCompletedFuture());
metastore = spy(StandaloneMetaStorageManager.create(
new TestRocksDbKeyValueStorage(name, workDir.resolve("metastorage"))
@@ -282,11 +285,11 @@ public class ItIgniteDistributionZoneManagerNodeRestartTest extends BaseIgniteRe
components.add(nodeCfgMgr);
// Start.
-
- assertThat(vault.startAsync(), willCompleteSuccessfully());
+ ComponentContext componentContext = new ComponentContext();
+ assertThat(vault.startAsync(componentContext), willCompleteSuccessfully());
vault.putName(name);
- assertThat(nodeCfgMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(nodeCfgMgr.startAsync(componentContext), willCompleteSuccessfully());
// Start the remaining components.
List<IgniteComponent> otherComponents = List.of(
@@ -303,7 +306,7 @@ public class ItIgniteDistributionZoneManagerNodeRestartTest extends BaseIgniteRe
for (IgniteComponent component : otherComponents) {
// TODO: IGNITE-22119 required to be able to wait on this future.
- component.startAsync();
+ component.startAsync(componentContext);
components.add(component);
}
diff --git a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZoneManager.java b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZoneManager.java
index 7d5cbabe31..e1a49b3fed 100644
--- a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZoneManager.java
+++ b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZoneManager.java
@@ -104,6 +104,7 @@ import org.apache.ignite.internal.lang.IgniteStringFormatter;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.EntryEvent;
@@ -251,7 +252,7 @@ public class DistributionZoneManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return inBusyLockAsync(busyLock, () -> {
registerCatalogEventListenersOnStartManagerBusy();
@@ -271,12 +272,12 @@ public class DistributionZoneManager implements IgniteComponent {
return allOf(
createOrRestoreZonesStates(recoveryRevision),
restoreLogicalTopologyChangeEventAndStartTimers(recoveryRevision)
- ).thenCompose((notUsed) -> rebalanceEngine.start());
+ ).thenComposeAsync((notUsed) -> rebalanceEngine.start(), componentContext.executor());
});
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/BaseDistributionZoneManagerTest.java b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/BaseDistributionZoneManagerTest.java
index f726056c24..417e299a2d 100644
--- a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/BaseDistributionZoneManagerTest.java
+++ b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/BaseDistributionZoneManagerTest.java
@@ -50,6 +50,7 @@ import org.apache.ignite.internal.cluster.management.topology.LogicalTopologySer
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
@@ -125,7 +126,7 @@ public abstract class BaseDistributionZoneManagerTest extends BaseIgniteAbstract
);
// Not adding 'distributionZoneManager' on purpose, it's started manually.
- assertThat(startAsync(components), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), components), willCompleteSuccessfully());
}
@AfterEach
@@ -138,13 +139,13 @@ public abstract class BaseDistributionZoneManagerTest extends BaseIgniteAbstract
closeAll(Stream.concat(
components.stream().map(c -> c::beforeNodeStop),
- Stream.of(() -> assertThat(stopAsync(components), willCompleteSuccessfully()))
+ Stream.of(() -> assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully()))
));
}
void startDistributionZoneManager() {
assertThat(
- distributionZoneManager.startAsync()
+ distributionZoneManager.startAsync(new ComponentContext())
.thenCompose(unused -> metaStorageManager.deployWatches()),
willCompleteSuccessfully()
);
diff --git a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/DistributionZoneManagerLogicalTopologyEventsTest.java b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/DistributionZoneManagerLogicalTopologyEventsTest.java
index 47e0ec9b62..f9f9d0fe4f 100644
--- a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/DistributionZoneManagerLogicalTopologyEventsTest.java
+++ b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/DistributionZoneManagerLogicalTopologyEventsTest.java
@@ -29,6 +29,7 @@ import java.util.Set;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologySnapshot;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.util.ByteUtils;
import org.apache.ignite.network.NetworkAddress;
import org.junit.jupiter.api.Test;
@@ -43,7 +44,7 @@ public class DistributionZoneManagerLogicalTopologyEventsTest extends BaseDistri
@Test
void testMetaStorageKeysInitializedOnStartWhenTopVerEmpty() throws Exception {
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
topology.putNode(NODE_1);
@@ -56,7 +57,7 @@ public class DistributionZoneManagerLogicalTopologyEventsTest extends BaseDistri
void testMetaStorageKeysInitializedOnStartWhenTopVerEqualsToCmgTopVer() throws Exception {
keyValueStorage.put(zonesLogicalTopologyVersionKey().bytes(), ByteUtils.longToBytes(2L), HybridTimestamp.MIN_VALUE);
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertLogicalTopologyVersion(2L, keyValueStorage);
@@ -67,7 +68,7 @@ public class DistributionZoneManagerLogicalTopologyEventsTest extends BaseDistri
void testMetaStorageKeysInitializedOnStartWhenTopVerGreaterThanCmgTopVer() throws Exception {
keyValueStorage.put(zonesLogicalTopologyVersionKey().bytes(), ByteUtils.longToBytes(3L), HybridTimestamp.MIN_VALUE);
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertLogicalTopologyVersion(3L, keyValueStorage);
@@ -76,7 +77,7 @@ public class DistributionZoneManagerLogicalTopologyEventsTest extends BaseDistri
@Test
void testNodeAddingUpdatesLogicalTopologyInMetaStorage() throws Exception {
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
topology.putNode(NODE_1);
@@ -91,7 +92,7 @@ public class DistributionZoneManagerLogicalTopologyEventsTest extends BaseDistri
@Test
void testNodeStaleAddingDoNotUpdatesLogicalTopologyInMetaStorage() throws Exception {
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
topology.putNode(NODE_1);
@@ -113,7 +114,7 @@ public class DistributionZoneManagerLogicalTopologyEventsTest extends BaseDistri
@Test
void testNodeRemovingUpdatesLogicalTopologyInMetaStorage() throws Exception {
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
topology.putNode(NODE_1);
@@ -134,7 +135,7 @@ public class DistributionZoneManagerLogicalTopologyEventsTest extends BaseDistri
@Test
void testNodeStaleRemovingDoNotUpdatesLogicalTopologyInMetaStorage() throws Exception {
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
topology.putNode(NODE_1);
@@ -158,7 +159,7 @@ public class DistributionZoneManagerLogicalTopologyEventsTest extends BaseDistri
@Test
void testTopologyLeapUpdatesLogicalTopologyInMetaStorage() throws Exception {
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
topology.putNode(NODE_1);
@@ -179,7 +180,7 @@ public class DistributionZoneManagerLogicalTopologyEventsTest extends BaseDistri
@Test
void testStaleTopologyLeapDoNotUpdatesLogicalTopologyInMetaStorage() throws Exception {
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
topology.putNode(NODE_1);
diff --git a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/causalitydatanodes/DistributionZoneCausalityDataNodesTest.java b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/causalitydatanodes/DistributionZoneCausalityDataNodesTest.java
index c08a402b6d..9ec5223d18 100644
--- a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/causalitydatanodes/DistributionZoneCausalityDataNodesTest.java
+++ b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/causalitydatanodes/DistributionZoneCausalityDataNodesTest.java
@@ -76,6 +76,7 @@ import org.apache.ignite.internal.distributionzones.NodeWithAttributes;
import org.apache.ignite.internal.distributionzones.exception.DistributionZoneNotFoundException;
import org.apache.ignite.internal.distributionzones.utils.CatalogAlterZoneEventListener;
import org.apache.ignite.internal.lang.IgniteBiTuple;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.EntryEvent;
import org.apache.ignite.internal.metastorage.WatchEvent;
@@ -187,7 +188,7 @@ public class DistributionZoneCausalityDataNodesTest extends BaseDistributionZone
addCatalogZoneEventListeners();
- assertThat(distributionZoneManager.startAsync(), willCompleteSuccessfully());
+ assertThat(distributionZoneManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(metaStorageManager.deployWatches(), willCompleteSuccessfully());
}
diff --git a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngineTest.java b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngineTest.java
index 5fd90cf73e..445fa9cfd9 100644
--- a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngineTest.java
+++ b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngineTest.java
@@ -80,6 +80,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.EntryEvent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
@@ -145,7 +146,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
String nodeName = "test";
catalogManager = createTestCatalogManager(nodeName, clock);
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
createZone(ZONE_NAME_0, 1, 128);
createZone(ZONE_NAME_1, 2, 128);
@@ -267,7 +268,8 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
@AfterEach
public void tearDown() throws Exception {
closeAll(
- catalogManager == null ? null : () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()),
+ catalogManager == null ? null :
+ () -> assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully()),
keyValueStorage == null ? null : keyValueStorage::close,
rebalanceEngine == null ? null : rebalanceEngine::stop,
() -> shutdownAndAwaitTermination(rebalanceScheduler, 10, TimeUnit.SECONDS)
@@ -422,7 +424,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
MetaStorageManager realMetaStorageManager = StandaloneMetaStorageManager.create(keyValueStorage);
- assertThat(realMetaStorageManager.startAsync(), willCompleteSuccessfully());
+ assertThat(realMetaStorageManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
try {
createRebalanceEngine(realMetaStorageManager);
@@ -433,7 +435,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
assertTrue(waitForCondition(() -> keyValueStorage.get("assignments.pending.1_part_0".getBytes(UTF_8)) != null, 10_000));
} finally {
- assertThat(realMetaStorageManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(realMetaStorageManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
@@ -454,7 +456,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
MetaStorageManager realMetaStorageManager = StandaloneMetaStorageManager.create(keyValueStorage);
- assertThat(realMetaStorageManager.startAsync(), willCompleteSuccessfully());
+ assertThat(realMetaStorageManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
try {
createRebalanceEngine(realMetaStorageManager);
@@ -465,7 +467,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
assertTrue(waitForCondition(() -> keyValueStorage.get("assignments.pending.1_part_0".getBytes(UTF_8)) != null, 10_000));
} finally {
- assertThat(realMetaStorageManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(realMetaStorageManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
diff --git a/modules/failure-handler/src/main/java/org/apache/ignite/internal/failure/FailureProcessor.java b/modules/failure-handler/src/main/java/org/apache/ignite/internal/failure/FailureProcessor.java
index 9a3d99b9bf..8f69eef8e6 100644
--- a/modules/failure-handler/src/main/java/org/apache/ignite/internal/failure/FailureProcessor.java
+++ b/modules/failure-handler/src/main/java/org/apache/ignite/internal/failure/FailureProcessor.java
@@ -26,6 +26,7 @@ import org.apache.ignite.internal.failure.handlers.NoOpFailureHandler;
import org.apache.ignite.internal.failure.handlers.StopNodeFailureHandler;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
@@ -81,13 +82,13 @@ public class FailureProcessor implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
// TODO https://issues.apache.org/jira/browse/IGNITE-20450
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
diff --git a/modules/failure-handler/src/test/java/org/apache/ignite/internal/failure/FailureProcessorTest.java b/modules/failure-handler/src/test/java/org/apache/ignite/internal/failure/FailureProcessorTest.java
index 0dd57ac137..cc80819eb7 100644
--- a/modules/failure-handler/src/test/java/org/apache/ignite/internal/failure/FailureProcessorTest.java
+++ b/modules/failure-handler/src/test/java/org/apache/ignite/internal/failure/FailureProcessorTest.java
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.verify;
import org.apache.ignite.internal.failure.handlers.FailureHandler;
import org.apache.ignite.internal.failure.handlers.NoOpFailureHandler;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.junit.jupiter.api.Test;
@@ -44,13 +45,13 @@ class FailureProcessorTest extends BaseIgniteAbstractTest {
FailureProcessor failureProcessor = new FailureProcessor("node_name", handler);
try {
- assertThat(failureProcessor.startAsync(), willSucceedFast());
+ assertThat(failureProcessor.startAsync(new ComponentContext()), willSucceedFast());
failureProcessor.process(new FailureContext(FailureType.CRITICAL_ERROR, null));
verify(handler, times(1)).onFailure(anyString(), any());
} finally {
- assertThat(failureProcessor.stopAsync(), willSucceedFast());
+ assertThat(failureProcessor.stopAsync(new ComponentContext()), willSucceedFast());
}
}
@@ -61,13 +62,13 @@ class FailureProcessorTest extends BaseIgniteAbstractTest {
FailureProcessor failureProcessor = new FailureProcessor("node_name", handler);
try {
- assertThat(failureProcessor.startAsync(), willSucceedFast());
+ assertThat(failureProcessor.startAsync(new ComponentContext()), willSucceedFast());
assertThat(failureProcessor.process(new FailureContext(SYSTEM_WORKER_BLOCKED, null)), is(false));
assertThat(failureProcessor.process(new FailureContext(SYSTEM_CRITICAL_OPERATION_TIMEOUT, null)), is(false));
} finally {
- assertThat(failureProcessor.stopAsync(), willSucceedFast());
+ assertThat(failureProcessor.stopAsync(new ComponentContext()), willSucceedFast());
}
}
}
diff --git a/modules/file-transfer/src/integrationTest/java/org/apache/ignite/internal/network/file/TestCluster.java b/modules/file-transfer/src/integrationTest/java/org/apache/ignite/internal/network/file/TestCluster.java
index 91b0cd1467..0089400a56 100644
--- a/modules/file-transfer/src/integrationTest/java/org/apache/ignite/internal/network/file/TestCluster.java
+++ b/modules/file-transfer/src/integrationTest/java/org/apache/ignite/internal/network/file/TestCluster.java
@@ -34,6 +34,7 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Stream;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NodeFinder;
@@ -179,13 +180,13 @@ public class TestCluster {
}
void start() {
- assertThat(startAsync(components), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), components), willCompleteSuccessfully());
}
void stop() throws Exception {
closeAll(Stream.concat(
components.stream().map(c -> c::beforeNodeStop),
- Stream.of(() -> assertThat(stopAsync(components), willCompleteSuccessfully()))
+ Stream.of(() -> assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully()))
));
}
}
diff --git a/modules/file-transfer/src/main/java/org/apache/ignite/internal/network/file/FileTransferServiceImpl.java b/modules/file-transfer/src/main/java/org/apache/ignite/internal/network/file/FileTransferServiceImpl.java
index f7116e0176..1037403e64 100644
--- a/modules/file-transfer/src/main/java/org/apache/ignite/internal/network/file/FileTransferServiceImpl.java
+++ b/modules/file-transfer/src/main/java/org/apache/ignite/internal/network/file/FileTransferServiceImpl.java
@@ -43,6 +43,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.annotations.Transferable;
import org.apache.ignite.internal.network.configuration.FileTransferConfiguration;
@@ -218,7 +219,7 @@ public class FileTransferServiceImpl implements FileTransferService {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
topologyService.addEventHandler(new TopologyEventHandler() {
@Override
public void onDisappeared(ClusterNode member) {
@@ -247,7 +248,7 @@ public class FileTransferServiceImpl implements FileTransferService {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
IgniteUtils.shutdownAndAwaitTermination(executorService, 10, TimeUnit.SECONDS);
return nullCompletedFuture();
diff --git a/modules/file-transfer/src/test/java/org/apache/ignite/internal/network/file/FileTransferServiceImplTest.java b/modules/file-transfer/src/test/java/org/apache/ignite/internal/network/file/FileTransferServiceImplTest.java
index a9735ee2be..e6661d69f1 100644
--- a/modules/file-transfer/src/test/java/org/apache/ignite/internal/network/file/FileTransferServiceImplTest.java
+++ b/modules/file-transfer/src/test/java/org/apache/ignite/internal/network/file/FileTransferServiceImplTest.java
@@ -46,6 +46,7 @@ import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.network.NetworkMessageHandler;
import org.apache.ignite.internal.network.file.messages.FileDownloadRequest;
@@ -118,12 +119,12 @@ class FileTransferServiceImplTest extends BaseIgniteAbstractTest {
Executors.newSingleThreadExecutor()
);
- assertThat(fileTransferService.startAsync(), willCompleteSuccessfully());
+ assertThat(fileTransferService.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void tearDown() {
- assertThat(fileTransferService.stopAsync(), willCompleteSuccessfully());
+ assertThat(fileTransferService.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
diff --git a/modules/index/src/main/java/org/apache/ignite/internal/index/IndexBuildingManager.java b/modules/index/src/main/java/org/apache/ignite/internal/index/IndexBuildingManager.java
index d8728b8ecb..2703784412 100644
--- a/modules/index/src/main/java/org/apache/ignite/internal/index/IndexBuildingManager.java
+++ b/modules/index/src/main/java/org/apache/ignite/internal/index/IndexBuildingManager.java
@@ -37,6 +37,7 @@ import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopolog
import org.apache.ignite.internal.hlc.ClockService;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.network.ClusterService;
@@ -128,7 +129,7 @@ public class IndexBuildingManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return inBusyLockAsync(busyLock, () -> {
CompletableFuture<Long> recoveryFinishedFuture = metaStorageManager.recoveryFinishedFuture();
@@ -143,7 +144,7 @@ public class IndexBuildingManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/index/src/main/java/org/apache/ignite/internal/index/IndexManager.java b/modules/index/src/main/java/org/apache/ignite/internal/index/IndexManager.java
index 47be8726c5..d53b2d15a9 100644
--- a/modules/index/src/main/java/org/apache/ignite/internal/index/IndexManager.java
+++ b/modules/index/src/main/java/org/apache/ignite/internal/index/IndexManager.java
@@ -49,6 +49,7 @@ import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.lowwatermark.LowWatermark;
import org.apache.ignite.internal.lowwatermark.event.ChangeLowWatermarkEventParameters;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.schema.SchemaManager;
import org.apache.ignite.internal.schema.SchemaRegistry;
@@ -126,7 +127,7 @@ public class IndexManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
LOG.debug("Index manager is about to start");
recoverDestructionQueue();
@@ -141,7 +142,7 @@ public class IndexManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
LOG.debug("Index manager is about to stop");
if (!stopGuard.compareAndSet(false, true)) {
diff --git a/modules/index/src/main/java/org/apache/ignite/internal/index/IndexNodeFinishedRwTransactionsChecker.java b/modules/index/src/main/java/org/apache/ignite/internal/index/IndexNodeFinishedRwTransactionsChecker.java
index e24a4c64c6..9a3c59c6c6 100644
--- a/modules/index/src/main/java/org/apache/ignite/internal/index/IndexNodeFinishedRwTransactionsChecker.java
+++ b/modules/index/src/main/java/org/apache/ignite/internal/index/IndexNodeFinishedRwTransactionsChecker.java
@@ -35,6 +35,7 @@ import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.index.message.IndexMessageGroup;
import org.apache.ignite.internal.index.message.IndexMessagesFactory;
import org.apache.ignite.internal.index.message.IsNodeFinishedRwTransactionsStartedBeforeRequest;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.NetworkMessage;
@@ -79,7 +80,7 @@ public class IndexNodeFinishedRwTransactionsChecker implements LocalRwTxCounter,
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return inBusyLockAsync(busyLock, () -> {
messagingService.addMessageHandler(IndexMessageGroup.class, this::onReceiveIndexNetworkMessage);
@@ -88,7 +89,7 @@ public class IndexNodeFinishedRwTransactionsChecker implements LocalRwTxCounter,
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskControllerTest.java b/modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskControllerTest.java
index b119dcda9f..b7c21b70fa 100644
--- a/modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskControllerTest.java
+++ b/modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskControllerTest.java
@@ -46,6 +46,7 @@ import org.apache.ignite.internal.catalog.descriptors.CatalogIndexDescriptor;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
@@ -82,7 +83,7 @@ public class ChangeIndexStatusTaskControllerTest extends BaseIgniteAbstractTest
void setUp() {
catalogManager = createCatalogManagerWithTestUpdateLog(NODE_NAME, clock);
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
createTable(catalogManager, TABLE_NAME, COLUMN_NAME);
@@ -95,7 +96,7 @@ public class ChangeIndexStatusTaskControllerTest extends BaseIgniteAbstractTest
void tearDown() throws Exception {
closeAllManually(
catalogManager::beforeNodeStop,
- () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()),
+ () -> assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully()),
taskController
);
}
diff --git a/modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskTest.java b/modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskTest.java
index 2031b55438..c25615c467 100644
--- a/modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskTest.java
+++ b/modules/index/src/test/java/org/apache/ignite/internal/index/ChangeIndexStatusTaskTest.java
@@ -75,6 +75,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.index.message.IndexMessagesFactory;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.NetworkMessage;
@@ -132,7 +133,7 @@ public class ChangeIndexStatusTaskTest extends IgniteAbstractTest {
catalogManager = createTestCatalogManager(NODE_NAME, clockWaiter, clock);
- assertThat(startAsync(clockWaiter, catalogManager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), clockWaiter, catalogManager), willCompleteSuccessfully());
awaitDefaultZoneCreation(catalogManager);
@@ -172,11 +173,13 @@ public class ChangeIndexStatusTaskTest extends IgniteAbstractTest {
@AfterEach
void tearDown() throws Exception {
+ ComponentContext componentContext = new ComponentContext();
+
closeAll(
catalogManager::beforeNodeStop,
clockWaiter::beforeNodeStop,
- () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()),
- () -> assertThat(clockWaiter.stopAsync(), willCompleteSuccessfully()),
+ () -> assertThat(catalogManager.stopAsync(componentContext), willCompleteSuccessfully()),
+ () -> assertThat(clockWaiter.stopAsync(componentContext), willCompleteSuccessfully()),
task == null ? null : task::stop,
() -> shutdownAndAwaitTermination(executor, 1, SECONDS)
);
diff --git a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexAvailabilityControllerRestorerTest.java b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexAvailabilityControllerRestorerTest.java
index a4a87f42aa..0fdea1492a 100644
--- a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexAvailabilityControllerRestorerTest.java
+++ b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexAvailabilityControllerRestorerTest.java
@@ -52,6 +52,7 @@ import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
import org.apache.ignite.internal.metastorage.server.KeyValueStorage;
@@ -93,7 +94,7 @@ public class IndexAvailabilityControllerRestorerTest extends BaseIgniteAbstractT
catalogManager = createTestCatalogManager(NODE_NAME, clock, metaStorageManager);
- assertThat(startAsync(metaStorageManager, catalogManager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), metaStorageManager, catalogManager), willCompleteSuccessfully());
deployWatches();
@@ -102,10 +103,14 @@ public class IndexAvailabilityControllerRestorerTest extends BaseIgniteAbstractT
@AfterEach
void tearDown() throws Exception {
+ ComponentContext componentContext = new ComponentContext();
+
closeAll(
controller == null ? null : controller::close,
- catalogManager == null ? null : () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()),
- metaStorageManager == null ? null : () -> assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully())
+ catalogManager == null ? null :
+ () -> assertThat(catalogManager.stopAsync(componentContext), willCompleteSuccessfully()),
+ metaStorageManager == null ? null :
+ () -> assertThat(metaStorageManager.stopAsync(componentContext), willCompleteSuccessfully())
);
}
@@ -191,9 +196,12 @@ public class IndexAvailabilityControllerRestorerTest extends BaseIgniteAbstractT
private void stopAndRestartComponentsNoDeployWatches() throws Exception {
awaitTillGlobalMetastoreRevisionIsApplied(metaStorageManager);
+ ComponentContext componentContext = new ComponentContext();
closeAll(
- catalogManager == null ? null : () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()),
- metaStorageManager == null ? null : () -> assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully())
+ catalogManager == null ? null :
+ () -> assertThat(catalogManager.stopAsync(componentContext), willCompleteSuccessfully()),
+ metaStorageManager == null ? null :
+ () -> assertThat(metaStorageManager.stopAsync(componentContext), willCompleteSuccessfully())
);
keyValueStorage = new TestRocksDbKeyValueStorage(NODE_NAME, workDir);
@@ -202,7 +210,7 @@ public class IndexAvailabilityControllerRestorerTest extends BaseIgniteAbstractT
catalogManager = spy(createTestCatalogManager(NODE_NAME, clock, metaStorageManager));
- assertThat(startAsync(metaStorageManager, catalogManager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), metaStorageManager, catalogManager), willCompleteSuccessfully());
}
private void deployWatches() throws Exception {
diff --git a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexAvailabilityControllerTest.java b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexAvailabilityControllerTest.java
index 40f347c1ea..7a43cd58f1 100644
--- a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexAvailabilityControllerTest.java
+++ b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexAvailabilityControllerTest.java
@@ -54,6 +54,7 @@ import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.ByteArray;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
@@ -97,7 +98,7 @@ public class IndexAvailabilityControllerTest extends BaseIgniteAbstractTest {
@BeforeEach
void setUp() {
assertThat(
- startAsync(metaStorageManager, catalogManager)
+ startAsync(new ComponentContext(), metaStorageManager, catalogManager)
.thenCompose(unused -> metaStorageManager.deployWatches()),
willCompleteSuccessfully()
);
@@ -121,11 +122,12 @@ public class IndexAvailabilityControllerTest extends BaseIgniteAbstractTest {
@AfterEach
void tearDown() throws Exception {
+ ComponentContext componentContext = new ComponentContext();
closeAll(
indexAvailabilityController::close,
indexBuilder::close,
- () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()),
- () -> assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully()),
+ () -> assertThat(catalogManager.stopAsync(componentContext), willCompleteSuccessfully()),
+ () -> assertThat(metaStorageManager.stopAsync(componentContext), willCompleteSuccessfully()),
() -> shutdownAndAwaitTermination(executorService, 1, TimeUnit.SECONDS)
);
}
diff --git a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexBuildControllerTest.java b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexBuildControllerTest.java
index c7bd4f4e02..535957256c 100644
--- a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexBuildControllerTest.java
+++ b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexBuildControllerTest.java
@@ -59,6 +59,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.hlc.TestClockService;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.placementdriver.leases.Lease;
@@ -110,7 +111,7 @@ public class IndexBuildControllerTest extends BaseIgniteAbstractTest {
ClusterService clusterService = mock(ClusterService.class, invocation -> mock(TopologyService.class, invocation1 -> LOCAL_NODE));
catalogManager = createCatalogManagerWithTestUpdateLog(NODE_NAME, clock);
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
indexBuildController = new IndexBuildController(
indexBuilder,
@@ -127,7 +128,8 @@ public class IndexBuildControllerTest extends BaseIgniteAbstractTest {
@AfterEach
void tearDown() throws Exception {
closeAll(
- catalogManager == null ? null : () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()),
+ catalogManager == null ? null :
+ () -> assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully()),
indexBuildController == null ? null : indexBuildController::close
);
}
diff --git a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexManagerTest.java b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexManagerTest.java
index 6303a2fcff..32ac996999 100644
--- a/modules/index/src/test/java/org/apache/ignite/internal/index/IndexManagerTest.java
+++ b/modules/index/src/test/java/org/apache/ignite/internal/index/IndexManagerTest.java
@@ -57,6 +57,7 @@ import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.marshaller.ReflectionMarshallersProvider;
import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
@@ -127,7 +128,7 @@ public class IndexManagerTest extends BaseIgniteAbstractTest {
@AfterEach
void tearDown() {
- assertThat(stopAsync(metaStorageManager, catalogManager, indexManager), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), metaStorageManager, catalogManager, indexManager), willCompleteSuccessfully());
}
@Test
@@ -230,7 +231,7 @@ public class IndexManagerTest extends BaseIgniteAbstractTest {
);
assertThat(
- startAsync(metaStorageManager, catalogManager, indexManager)
+ startAsync(new ComponentContext(), metaStorageManager, catalogManager, indexManager)
.thenCompose(unused -> metaStorageManager.recoveryFinishedFuture())
.thenCompose(unused -> metaStorageManager.notifyRevisionUpdateListenerOnStart())
.thenCompose(unused -> metaStorageManager.deployWatches()),
diff --git a/modules/low-watermark/src/main/java/org/apache/ignite/internal/lowwatermark/LowWatermarkImpl.java b/modules/low-watermark/src/main/java/org/apache/ignite/internal/lowwatermark/LowWatermarkImpl.java
index 5068ce1d09..f61c8c4c0d 100644
--- a/modules/low-watermark/src/main/java/org/apache/ignite/internal/lowwatermark/LowWatermarkImpl.java
+++ b/modules/low-watermark/src/main/java/org/apache/ignite/internal/lowwatermark/LowWatermarkImpl.java
@@ -51,6 +51,7 @@ import org.apache.ignite.internal.lowwatermark.event.LowWatermarkEventParameters
import org.apache.ignite.internal.lowwatermark.message.GetLowWatermarkRequest;
import org.apache.ignite.internal.lowwatermark.message.LowWatermarkMessageGroup;
import org.apache.ignite.internal.lowwatermark.message.LowWatermarkMessagesFactory;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.NetworkMessage;
@@ -148,7 +149,7 @@ public class LowWatermarkImpl extends AbstractEventProducer<LowWatermarkEvent, L
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return inBusyLockAsync(busyLock, () -> {
setLowWatermarkOnRecovery(readLowWatermarkFromVault());
@@ -170,7 +171,7 @@ public class LowWatermarkImpl extends AbstractEventProducer<LowWatermarkEvent, L
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!closeGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/low-watermark/src/test/java/org/apache/ignite/internal/lowwatermark/LowWatermarkImplTest.java b/modules/low-watermark/src/test/java/org/apache/ignite/internal/lowwatermark/LowWatermarkImplTest.java
index fa9ebd9420..2e4c516edb 100644
--- a/modules/low-watermark/src/test/java/org/apache/ignite/internal/lowwatermark/LowWatermarkImplTest.java
+++ b/modules/low-watermark/src/test/java/org/apache/ignite/internal/lowwatermark/LowWatermarkImplTest.java
@@ -65,6 +65,7 @@ import org.apache.ignite.internal.lowwatermark.event.ChangeLowWatermarkEventPara
import org.apache.ignite.internal.lowwatermark.message.GetLowWatermarkRequest;
import org.apache.ignite.internal.lowwatermark.message.GetLowWatermarkResponse;
import org.apache.ignite.internal.lowwatermark.message.LowWatermarkMessageGroup;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.NetworkMessage;
import org.apache.ignite.internal.schema.configuration.LowWatermarkConfiguration;
@@ -115,13 +116,13 @@ public class LowWatermarkImplTest extends BaseIgniteAbstractTest {
@AfterEach
void tearDown() {
- assertThat(lowWatermark.stopAsync(), willCompleteSuccessfully());
+ assertThat(lowWatermark.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
void testStartWithEmptyVault() {
// Let's check the start with no low watermark in vault.
- assertThat(lowWatermark.startAsync(), willCompleteSuccessfully());
+ assertThat(lowWatermark.startAsync(new ComponentContext()), willCompleteSuccessfully());
lowWatermark.scheduleUpdates();
verify(lwmChangedListener, never()).notify(any());
@@ -136,7 +137,7 @@ public class LowWatermarkImplTest extends BaseIgniteAbstractTest {
when(vaultManager.get(LOW_WATERMARK_VAULT_KEY))
.thenReturn(new VaultEntry(LOW_WATERMARK_VAULT_KEY, ByteUtils.toBytes(lowWatermark)));
- assertThat(this.lowWatermark.startAsync(), willCompleteSuccessfully());
+ assertThat(this.lowWatermark.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertEquals(lowWatermark, this.lowWatermark.getLowWatermark());
@@ -216,7 +217,7 @@ public class LowWatermarkImplTest extends BaseIgniteAbstractTest {
return onLwmChangedFinishFuture;
});
- assertThat(lowWatermark.startAsync(), willCompleteSuccessfully());
+ assertThat(lowWatermark.startAsync(new ComponentContext()), willCompleteSuccessfully());
lowWatermark.scheduleUpdates();
// Let's check that it hasn't been called more than once.
@@ -241,7 +242,7 @@ public class LowWatermarkImplTest extends BaseIgniteAbstractTest {
void testHandleGetLowWatermarkMessage() {
verify(messagingService, never()).addMessageHandler(eq(LowWatermarkMessageGroup.class), any());
- assertThat(lowWatermark.startAsync(), willCompleteSuccessfully());
+ assertThat(lowWatermark.startAsync(new ComponentContext()), willCompleteSuccessfully());
verify(messagingService).addMessageHandler(eq(LowWatermarkMessageGroup.class), any());
@@ -274,7 +275,7 @@ public class LowWatermarkImplTest extends BaseIgniteAbstractTest {
@Test
void testUpdateLowWatermark() {
- assertThat(lowWatermark.startAsync(), willCompleteSuccessfully());
+ assertThat(lowWatermark.startAsync(new ComponentContext()), willCompleteSuccessfully());
CompletableFuture<HybridTimestamp> updateLowWatermarkFuture0 = listenUpdateLowWatermark();
@@ -303,7 +304,7 @@ public class LowWatermarkImplTest extends BaseIgniteAbstractTest {
@Test
void testGetLowWatermarkFromListener() {
- assertThat(lowWatermark.startAsync(), willCompleteSuccessfully());
+ assertThat(lowWatermark.startAsync(new ComponentContext()), willCompleteSuccessfully());
HybridTimestamp newLwm = clockService.now();
diff --git a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItIdempotentCommandCacheTest.java b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItIdempotentCommandCacheTest.java
index 3c2c2bbbd5..66c0610155 100644
--- a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItIdempotentCommandCacheTest.java
+++ b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItIdempotentCommandCacheTest.java
@@ -55,6 +55,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
@@ -192,7 +193,7 @@ public class ItIdempotentCommandCacheTest extends IgniteAbstractTest {
when(cmgManager.metaStorageNodes()).thenReturn(metaStorageNodesFut);
}
- assertThat(startAsync(clusterService, raftManager, metaStorageManager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), clusterService, raftManager, metaStorageManager), willCompleteSuccessfully());
}
void deployWatches() {
@@ -204,7 +205,7 @@ public class ItIdempotentCommandCacheTest extends IgniteAbstractTest {
closeAll(Stream.concat(
components.stream().map(c -> c::beforeNodeStop),
- Stream.of(() -> assertThat(stopAsync(components), willCompleteSuccessfully()))
+ Stream.of(() -> assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully()))
));
}
diff --git a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageManagerImplTest.java b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageManagerImplTest.java
index 3a308e5c9b..ab273a4d70 100644
--- a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageManagerImplTest.java
+++ b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageManagerImplTest.java
@@ -57,6 +57,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.ByteArray;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.RevisionUpdateListener;
@@ -146,7 +147,7 @@ public class ItMetaStorageManagerImplTest extends IgniteAbstractTest {
);
assertThat(
- startAsync(clusterService, raftManager, metaStorageManager)
+ startAsync(new ComponentContext(), clusterService, raftManager, metaStorageManager)
.thenCompose(unused -> metaStorageManager.deployWatches()),
willCompleteSuccessfully()
);
@@ -158,7 +159,7 @@ public class ItMetaStorageManagerImplTest extends IgniteAbstractTest {
closeAll(Stream.concat(
components.stream().map(c -> c::beforeNodeStop),
- Stream.of(() -> assertThat(stopAsync(components), willCompleteSuccessfully()))
+ Stream.of(() -> assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully()))
));
}
@@ -199,10 +200,10 @@ public class ItMetaStorageManagerImplTest extends IgniteAbstractTest {
}
@Test
- void testMetaStorageStopClosesRaftService() throws Exception {
+ void testMetaStorageStopClosesRaftService() {
MetaStorageServiceImpl svc = metaStorageManager.metaStorageService().join();
- assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
CompletableFuture<Entry> fut = svc.get(ByteArray.fromString("ignored"));
@@ -210,8 +211,9 @@ public class ItMetaStorageManagerImplTest extends IgniteAbstractTest {
}
@Test
- void testMetaStorageStopBeforeRaftServiceStarted() throws Exception {
- assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully()); // Close MetaStorage that is created in setUp.
+ void testMetaStorageStopBeforeRaftServiceStarted() {
+ // Close MetaStorage that is created in setUp.
+ assertThat(metaStorageManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
ClusterManagementGroupManager cmgManager = mock(ClusterManagementGroupManager.class);
@@ -231,7 +233,7 @@ public class ItMetaStorageManagerImplTest extends IgniteAbstractTest {
new NoOpMetricManager()
);
- assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
// Unblock the future so raft service can be initialized. Although the future should be cancelled already by the
// stop method.
@@ -265,7 +267,7 @@ public class ItMetaStorageManagerImplTest extends IgniteAbstractTest {
* Tests that idle safe time propagation does not advance safe time while watches of a normal command are being executed.
*/
@Test
- void testIdleSafeTimePropagationAndNormalSafeTimePropagationInteraction(TestInfo testInfo) throws Exception {
+ void testIdleSafeTimePropagationAndNormalSafeTimePropagationInteraction(TestInfo testInfo) {
var key = new ByteArray("foo");
byte[] value = "bar".getBytes(UTF_8);
diff --git a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
index 6b3488e8a3..5e55468fb1 100644
--- a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
+++ b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
@@ -64,6 +64,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.EntryEvent;
@@ -218,7 +219,7 @@ public abstract class ItMetaStorageMultipleNodesAbstractTest extends IgniteAbstr
metaStorageManager
);
- assertThat(startAsync(components), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), components), willCompleteSuccessfully());
}
/**
@@ -245,7 +246,7 @@ public abstract class ItMetaStorageMultipleNodesAbstractTest extends IgniteAbstr
closeAll(Stream.concat(
components.stream().map(c -> c::beforeNodeStop),
- Stream.of(() -> assertThat(stopAsync(components), willCompleteSuccessfully()))
+ Stream.of(() -> assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully()))
));
}
diff --git a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServiceTest.java b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServiceTest.java
index 1410ac65a8..ab00dedab7 100644
--- a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServiceTest.java
+++ b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageServiceTest.java
@@ -75,6 +75,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.dsl.Condition;
import org.apache.ignite.internal.metastorage.dsl.Conditions;
@@ -204,7 +205,7 @@ public class ItMetaStorageServiceTest extends BaseIgniteAbstractTest {
void start(PeersAndLearners configuration) {
CompletableFuture<RaftGroupService> raftService =
- startAsync(clusterService, raftManager)
+ startAsync(new ComponentContext(), clusterService, raftManager)
.thenCompose(unused -> startRaftService(configuration));
assertThat(raftService, willCompleteSuccessfully());
@@ -255,7 +256,7 @@ public class ItMetaStorageServiceTest extends BaseIgniteAbstractTest {
Stream<AutoCloseable> beforeNodeStop = Stream.of(raftManager, clusterService).map(c -> c::beforeNodeStop);
Stream<AutoCloseable> nodeStop = Stream.of(
- () -> assertThat(stopAsync(raftManager, clusterService), willCompleteSuccessfully())
+ () -> assertThat(stopAsync(new ComponentContext(), raftManager, clusterService), willCompleteSuccessfully())
);
IgniteUtils.closeAll(Stream.of(raftStop, beforeNodeStop, nodeStop).flatMap(Function.identity()));
diff --git a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
index 636a4461a4..583d08488f 100644
--- a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
+++ b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
@@ -66,6 +66,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
@@ -199,7 +200,7 @@ public class ItMetaStorageWatchTest extends IgniteAbstractTest {
}
void start() {
- assertThat(startAsync(components), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), components), willCompleteSuccessfully());
}
String name() {
@@ -211,7 +212,9 @@ public class ItMetaStorageWatchTest extends IgniteAbstractTest {
Stream<AutoCloseable> beforeNodeStop = components.stream().map(c -> c::beforeNodeStop);
- Stream<AutoCloseable> nodeStop = Stream.of(() -> assertThat(stopAsync(components), willCompleteSuccessfully()));
+ Stream<AutoCloseable> nodeStop = Stream.of(() ->
+ assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully())
+ );
IgniteUtils.closeAll(Stream.concat(beforeNodeStop, nodeStop));
}
diff --git a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/server/raft/ItMetaStorageRaftGroupTest.java b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/server/raft/ItMetaStorageRaftGroupTest.java
index 2581d12967..27d09f80a5 100644
--- a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/server/raft/ItMetaStorageRaftGroupTest.java
+++ b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/server/raft/ItMetaStorageRaftGroupTest.java
@@ -48,6 +48,7 @@ import org.apache.ignite.internal.configuration.testframework.InjectConfiguratio
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.impl.EntryImpl;
import org.apache.ignite.internal.metastorage.impl.MetaStorageService;
@@ -165,7 +166,7 @@ public class ItMetaStorageRaftGroupTest extends IgniteAbstractTest {
localAddresses.stream()
.map(addr -> ClusterServiceTestUtils.clusterService(testInfo, addr.port(), nodeFinder))
.forEach(clusterService -> {
- assertThat(clusterService.startAsync(), willCompleteSuccessfully());
+ assertThat(clusterService.startAsync(new ComponentContext()), willCompleteSuccessfully());
cluster.add(clusterService);
});
@@ -184,28 +185,30 @@ public class ItMetaStorageRaftGroupTest extends IgniteAbstractTest {
*/
@AfterEach
public void afterTest() {
+ ComponentContext componentContext = new ComponentContext();
+
if (metaStorageRaftSrv3 != null) {
metaStorageRaftSrv3.stopRaftNodes(MetastorageGroupId.INSTANCE);
- assertThat(metaStorageRaftSrv3.stopAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageRaftSrv3.stopAsync(componentContext), willCompleteSuccessfully());
metaStorageRaftGrpSvc3.shutdown();
}
if (metaStorageRaftSrv2 != null) {
metaStorageRaftSrv2.stopRaftNodes(MetastorageGroupId.INSTANCE);
- assertThat(metaStorageRaftSrv2.stopAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageRaftSrv2.stopAsync(componentContext), willCompleteSuccessfully());
metaStorageRaftGrpSvc2.shutdown();
}
if (metaStorageRaftSrv1 != null) {
metaStorageRaftSrv1.stopRaftNodes(MetastorageGroupId.INSTANCE);
- assertThat(metaStorageRaftSrv1.stopAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageRaftSrv1.stopAsync(componentContext), willCompleteSuccessfully());
metaStorageRaftGrpSvc1.shutdown();
}
IgniteUtils.shutdownAndAwaitTermination(executor, 10, TimeUnit.SECONDS);
for (ClusterService node : cluster) {
- assertThat(node.stopAsync(), willCompleteSuccessfully());
+ assertThat(node.stopAsync(componentContext), willCompleteSuccessfully());
}
}
@@ -297,12 +300,14 @@ public class ItMetaStorageRaftGroupTest extends IgniteAbstractTest {
// stop leader
oldLeaderServer.stopRaftNodes(MetastorageGroupId.INSTANCE);
- assertThat(oldLeaderServer.stopAsync(), willCompleteSuccessfully());
+ ComponentContext componentContext = new ComponentContext();
+
+ assertThat(oldLeaderServer.stopAsync(componentContext), willCompleteSuccessfully());
CompletableFuture<Void> stopFuture = cluster.stream()
.filter(c -> localMemberName(c).equals(oldLeaderId))
.findFirst()
.orElseThrow()
- .stopAsync();
+ .stopAsync(componentContext);
assertThat(stopFuture, willCompleteSuccessfully());
raftGroupServiceOfLiveServer.refreshLeader().get();
@@ -394,7 +399,10 @@ public class ItMetaStorageRaftGroupTest extends IgniteAbstractTest {
new RaftGroupEventsClientListener()
);
- assertThat(startAsync(metaStorageRaftSrv1, metaStorageRaftSrv2, metaStorageRaftSrv3), willCompleteSuccessfully());
+ assertThat(
+ startAsync(new ComponentContext(), metaStorageRaftSrv1, metaStorageRaftSrv2, metaStorageRaftSrv3),
+ willCompleteSuccessfully()
+ );
var raftNodeId1 = new RaftNodeId(MetastorageGroupId.INSTANCE, membersConfiguration.peer(localMemberName(cluster.get(0))));
diff --git a/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java b/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
index 547be10afe..cb63d3ddf9 100644
--- a/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
+++ b/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
@@ -38,6 +38,7 @@ import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.RevisionUpdateListener;
@@ -355,7 +356,7 @@ public class MetaStorageManagerImpl implements MetaStorageManager {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
storage.start();
cmgMgr.metaStorageNodes()
@@ -388,7 +389,7 @@ public class MetaStorageManagerImpl implements MetaStorageManager {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!isStopped.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageDeployWatchesCorrectnessTest.java b/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageDeployWatchesCorrectnessTest.java
index 31881ffa06..d6fc9c0431 100644
--- a/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageDeployWatchesCorrectnessTest.java
+++ b/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageDeployWatchesCorrectnessTest.java
@@ -33,6 +33,7 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.command.GetCurrentRevisionCommand;
import org.apache.ignite.internal.metastorage.configuration.MetaStorageConfiguration;
@@ -104,12 +105,12 @@ public class MetaStorageDeployWatchesCorrectnessTest extends IgniteAbstractTest
assertFalse(deployWatchesFut.isDone());
- assertThat(metastore.startAsync(), willCompleteSuccessfully());
+ assertThat(metastore.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(deployWatchesFut, willCompleteSuccessfully());
metastore.beforeNodeStop();
- assertThat(metastore.stopAsync(), willCompleteSuccessfully());
+ assertThat(metastore.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
diff --git a/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerRecoveryTest.java b/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerRecoveryTest.java
index f4b7c0c19a..a8b86c57b2 100644
--- a/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerRecoveryTest.java
+++ b/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerRecoveryTest.java
@@ -37,6 +37,7 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.command.GetCurrentRevisionCommand;
import org.apache.ignite.internal.metastorage.configuration.MetaStorageConfiguration;
import org.apache.ignite.internal.metastorage.server.KeyValueStorage;
@@ -138,13 +139,13 @@ public class MetaStorageManagerRecoveryTest extends BaseIgniteAbstractTest {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
};
}
- private ClusterManagementGroupManager clusterManagementManager() {
+ private static ClusterManagementGroupManager clusterManagementManager() {
ClusterManagementGroupManager mock = mock(ClusterManagementGroupManager.class);
when(mock.metaStorageNodes())
@@ -159,7 +160,7 @@ public class MetaStorageManagerRecoveryTest extends BaseIgniteAbstractTest {
createMetaStorage(targetRevision);
- assertThat(metaStorageManager.startAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
CompletableFuture<Void> msDeployFut = metaStorageManager.deployWatches();
@@ -177,7 +178,7 @@ public class MetaStorageManagerRecoveryTest extends BaseIgniteAbstractTest {
void testRecoverClean() throws Exception {
createMetaStorage(0);
- assertThat(metaStorageManager.startAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
CompletableFuture<Void> msDeployFut = metaStorageManager.deployWatches();
diff --git a/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageRangeTest.java b/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageRangeTest.java
index aed227b254..9685e605fe 100644
--- a/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageRangeTest.java
+++ b/modules/metastorage/src/test/java/org/apache/ignite/internal/metastorage/impl/MetaStorageRangeTest.java
@@ -40,6 +40,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.stream.IntStream;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.ByteArray;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.server.KeyValueStorage;
@@ -70,13 +71,13 @@ public abstract class MetaStorageRangeTest extends BaseIgniteAbstractTest {
metaStorageManager = StandaloneMetaStorageManager.create(storage);
- assertThat(metaStorageManager.startAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void tearDown() {
metaStorageManager.beforeNodeStop();
- assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
diff --git a/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItJvmMetricSourceTest.java b/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItJvmMetricSourceTest.java
index d0ce7704bb..30f2d3ae50 100644
--- a/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItJvmMetricSourceTest.java
+++ b/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItJvmMetricSourceTest.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.MetricManager;
import org.apache.ignite.internal.metrics.MetricManagerImpl;
import org.apache.ignite.internal.metrics.configuration.MetricConfiguration;
@@ -80,7 +81,7 @@ public class ItJvmMetricSourceTest extends BaseIgniteAbstractTest {
assertNotNull(jvmMetrics.get("memory.non-heap.Committed"));
assertNotNull(jvmMetrics.get("memory.non-heap.Max"));
- assertThat(metricManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(metricManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
private void assertPositiveLongValue(String metric) {
diff --git a/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItMetricExportersLoadingTest.java b/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItMetricExportersLoadingTest.java
index ca2410b242..c6986efcca 100644
--- a/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItMetricExportersLoadingTest.java
+++ b/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItMetricExportersLoadingTest.java
@@ -27,6 +27,7 @@ import java.io.OutputStream;
import java.util.concurrent.locks.LockSupport;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.MetricManager;
import org.apache.ignite.internal.metrics.MetricManagerImpl;
import org.apache.ignite.internal.metrics.configuration.MetricConfiguration;
@@ -73,7 +74,7 @@ public class ItMetricExportersLoadingTest extends BaseIgniteAbstractTest {
assertEquals(0, pushOutputStream.toString().length());
- assertThat(metricManager.startAsync(), willCompleteSuccessfully());
+ assertThat(metricManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
src.inc();
@@ -85,7 +86,7 @@ public class ItMetricExportersLoadingTest extends BaseIgniteAbstractTest {
waitForOutput(pullOutputStream, "TestMetricsSource:\nMetric:1");
assertTrue(pullOutputStream.toString().contains("TestMetricsSource:\nMetric:1"));
- assertThat(metricManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(metricManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
diff --git a/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItOsMetricSourceTest.java b/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItOsMetricSourceTest.java
index c3627cd94d..3543a4697f 100644
--- a/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItOsMetricSourceTest.java
+++ b/modules/metrics/src/integrationTest/java/org/apache/ignite/internal/metrics/exporters/ItOsMetricSourceTest.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.MetricManager;
import org.apache.ignite.internal.metrics.MetricManagerImpl;
import org.apache.ignite.internal.metrics.configuration.MetricConfiguration;
@@ -64,7 +65,7 @@ class ItOsMetricSourceTest extends BaseIgniteAbstractTest {
assertPositiveDoubleValue(osMetrics.get("LoadAverage"));
- assertThat(metricManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(metricManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
private static void assertPositiveDoubleValue(String metric) {
diff --git a/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/MetricManager.java b/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/MetricManager.java
index af8905b57b..05977c7b78 100644
--- a/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/MetricManager.java
+++ b/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/MetricManager.java
@@ -21,6 +21,7 @@ import java.util.Collection;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.lang.IgniteBiTuple;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metrics.configuration.MetricConfiguration;
import org.apache.ignite.internal.metrics.exporters.MetricExporter;
@@ -40,7 +41,7 @@ public interface MetricManager extends IgniteComponent {
void configure(MetricConfiguration metricConfiguration);
@Override
- CompletableFuture<Void> startAsync();
+ CompletableFuture<Void> startAsync(ComponentContext componentContext);
/**
* Start component.
@@ -58,7 +59,7 @@ public interface MetricManager extends IgniteComponent {
void start(Iterable<MetricExporter<?>> exporters);
@Override
- CompletableFuture<Void> stopAsync();
+ CompletableFuture<Void> stopAsync(ComponentContext componentContext);
/**
* Register metric source. See {@link MetricRegistry#registerSource(MetricSource)}.
diff --git a/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/MetricManagerImpl.java b/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/MetricManagerImpl.java
index 4123070596..00a2c8e763 100644
--- a/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/MetricManagerImpl.java
+++ b/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/MetricManagerImpl.java
@@ -33,6 +33,7 @@ import org.apache.ignite.configuration.notifications.ConfigurationNotificationEv
import org.apache.ignite.internal.lang.IgniteBiTuple;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.configuration.MetricConfiguration;
import org.apache.ignite.internal.metrics.configuration.MetricView;
import org.apache.ignite.internal.metrics.exporters.MetricExporter;
@@ -85,7 +86,7 @@ public class MetricManagerImpl implements MetricManager {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
start(loadExporters());
return nullCompletedFuture();
@@ -117,7 +118,7 @@ public class MetricManagerImpl implements MetricManager {
}
}
- @Override public CompletableFuture<Void> stopAsync() {
+ @Override public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
for (MetricExporter metricExporter : enabledMetricExporters.values()) {
metricExporter.stop();
}
diff --git a/modules/metrics/src/testFixtures/java/org/apache/ignite/internal/metrics/NoOpMetricManager.java b/modules/metrics/src/testFixtures/java/org/apache/ignite/internal/metrics/NoOpMetricManager.java
index 1ad4383483..c19905ef0c 100644
--- a/modules/metrics/src/testFixtures/java/org/apache/ignite/internal/metrics/NoOpMetricManager.java
+++ b/modules/metrics/src/testFixtures/java/org/apache/ignite/internal/metrics/NoOpMetricManager.java
@@ -24,6 +24,7 @@ import java.util.Collections;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.lang.IgniteBiTuple;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.configuration.MetricConfiguration;
import org.apache.ignite.internal.metrics.exporters.MetricExporter;
@@ -37,7 +38,7 @@ public class NoOpMetricManager implements MetricManager {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@@ -50,7 +51,7 @@ public class NoOpMetricManager implements MetricManager {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
diff --git a/modules/network-api/src/main/java/org/apache/ignite/internal/network/ClusterService.java b/modules/network-api/src/main/java/org/apache/ignite/internal/network/ClusterService.java
index 3bac3b8a8e..039d1f6f66 100644
--- a/modules/network-api/src/main/java/org/apache/ignite/internal/network/ClusterService.java
+++ b/modules/network-api/src/main/java/org/apache/ignite/internal/network/ClusterService.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.network;
import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFuture;
import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.serialization.MessageSerializationRegistry;
import org.apache.ignite.network.NodeMetadata;
@@ -56,7 +57,7 @@ public interface ClusterService extends IgniteComponent {
/** {@inheritDoc} */
@Override
- default CompletableFuture<Void> stopAsync() {
+ default CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
// TODO: IGNITE-15161 Implement component's stop.
return nullCompletedFuture();
}
diff --git a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/netty/ItConnectionManagerTest.java b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/netty/ItConnectionManagerTest.java
index a3f313ec28..98d4bc0241 100644
--- a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/netty/ItConnectionManagerTest.java
+++ b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/netty/ItConnectionManagerTest.java
@@ -58,6 +58,7 @@ import org.apache.ignite.internal.configuration.testframework.InjectConfiguratio
import org.apache.ignite.internal.failure.FailureProcessor;
import org.apache.ignite.internal.future.OrderingFuture;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ChannelType;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.network.NettyBootstrapFactory;
@@ -521,7 +522,7 @@ public class ItConnectionManagerTest extends BaseIgniteAbstractTest {
NettyBootstrapFactory bootstrapFactory = new NettyBootstrapFactory(networkConfiguration, consistentId);
- assertThat(bootstrapFactory.startAsync(), willCompleteSuccessfully());
+ assertThat(bootstrapFactory.startAsync(new ComponentContext()), willCompleteSuccessfully());
try {
var manager = new ConnectionManager(
@@ -546,7 +547,7 @@ public class ItConnectionManagerTest extends BaseIgniteAbstractTest {
return wrapper;
} catch (Exception e) {
- assertThat(bootstrapFactory.stopAsync(), willCompleteSuccessfully());
+ assertThat(bootstrapFactory.stopAsync(new ComponentContext()), willCompleteSuccessfully());
throw e;
}
@@ -567,7 +568,7 @@ public class ItConnectionManagerTest extends BaseIgniteAbstractTest {
closeAll(
connectionManager::initiateStopping,
connectionManager::stop,
- () -> assertThat(nettyFactory.stopAsync(), willCompleteSuccessfully())
+ () -> assertThat(nettyFactory.stopAsync(new ComponentContext()), willCompleteSuccessfully())
);
}
diff --git a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItClusterServiceTest.java b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItClusterServiceTest.java
index c77df3b94f..207d1ae7fd 100644
--- a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItClusterServiceTest.java
+++ b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItClusterServiceTest.java
@@ -35,6 +35,7 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NetworkMessage;
import org.apache.ignite.internal.network.StaticNodeFinder;
@@ -56,9 +57,9 @@ public class ItClusterServiceTest extends BaseIgniteAbstractTest {
ClusterService service = clusterService(testInfo, addr.port(), new StaticNodeFinder(List.of(addr)));
- assertThat(service.startAsync(), willCompleteSuccessfully());
+ assertThat(service.startAsync(new ComponentContext()), willCompleteSuccessfully());
- assertThat(service.stopAsync(), willCompleteSuccessfully());
+ assertThat(service.stopAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(service.isStopped(), is(true));
@@ -78,8 +79,8 @@ public class ItClusterServiceTest extends BaseIgniteAbstractTest {
var addr2 = new NetworkAddress("localhost", 10001);
ClusterService service1 = clusterService(testInfo, addr1.port(), new StaticNodeFinder(List.of(addr1, addr2)));
ClusterService service2 = clusterService(testInfo, addr2.port(), new StaticNodeFinder(List.of(addr1, addr2)));
- assertThat(service1.startAsync(), willCompleteSuccessfully());
- assertThat(service2.startAsync(), willCompleteSuccessfully());
+ assertThat(service1.startAsync(new ComponentContext()), willCompleteSuccessfully());
+ assertThat(service2.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertTrue(waitForCondition(() -> service1.topologyService().allMembers().size() == 2, 1000));
assertTrue(waitForCondition(() -> service2.topologyService().allMembers().size() == 2, 1000));
try {
@@ -95,7 +96,7 @@ public class ItClusterServiceTest extends BaseIgniteAbstractTest {
checkAllMeta(service1, Set.of(meta1, meta2));
checkAllMeta(service2, Set.of(meta1, meta2));
} finally {
- assertThat(stopAsync(service1, service2), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), service1, service2), willCompleteSuccessfully());
}
}
diff --git a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItNodeRestartsTest.java b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItNodeRestartsTest.java
index fecd74215c..cfaa4e82d5 100644
--- a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItNodeRestartsTest.java
+++ b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItNodeRestartsTest.java
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.stream.Collectors;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NodeFinder;
import org.apache.ignite.internal.network.StaticNodeFinder;
@@ -50,7 +51,7 @@ class ItNodeRestartsTest {
/** Tear down method. */
@AfterEach
void tearDown() {
- assertThat(stopAsync(services), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), services), willCompleteSuccessfully());
}
/**
@@ -77,10 +78,10 @@ class ItNodeRestartsTest {
int idx1 = 2;
LOG.info("Shutdown {}", addresses.get(idx0));
- assertThat(services.get(idx0).stopAsync(), willCompleteSuccessfully());
+ assertThat(services.get(idx0).stopAsync(new ComponentContext()), willCompleteSuccessfully());
LOG.info("Shutdown {}", addresses.get(idx1));
- assertThat(services.get(idx1).stopAsync(), willCompleteSuccessfully());
+ assertThat(services.get(idx1).stopAsync(new ComponentContext()), willCompleteSuccessfully());
LOG.info("Starting {}", addresses.get(idx0));
ClusterService svc0 = startNetwork(testInfo, addresses.get(idx0), nodeFinder);
@@ -109,7 +110,7 @@ class ItNodeRestartsTest {
private ClusterService startNetwork(TestInfo testInfo, NetworkAddress addr, NodeFinder nodeFinder) {
ClusterService clusterService = ClusterServiceTestUtils.clusterService(testInfo, addr.port(), nodeFinder);
- assertThat(clusterService.startAsync(), willCompleteSuccessfully());
+ assertThat(clusterService.startAsync(new ComponentContext()), willCompleteSuccessfully());
return clusterService;
}
diff --git a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItScaleCubeNetworkMessagingTest.java b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItScaleCubeNetworkMessagingTest.java
index 9d18ee566f..33dce8c5e6 100644
--- a/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItScaleCubeNetworkMessagingTest.java
+++ b/modules/network/src/integrationTest/java/org/apache/ignite/internal/network/scalecube/ItScaleCubeNetworkMessagingTest.java
@@ -63,6 +63,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Predicate;
import org.apache.ignite.internal.lang.IgniteBiTuple;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ChannelType;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.DefaultMessagingService;
@@ -291,7 +292,7 @@ class ItScaleCubeNetworkMessagingTest {
ClusterService member0 = testCluster.members.get(0);
ClusterService member1 = testCluster.members.get(1);
- assertThat(member0.stopAsync(), willCompleteSuccessfully());
+ assertThat(member0.stopAsync(new ComponentContext()), willCompleteSuccessfully());
// Perform two invokes to test that multiple requests can get cancelled.
CompletableFuture<NetworkMessage> invoke0 = member0.messagingService().invoke(
@@ -342,7 +343,7 @@ class ItScaleCubeNetworkMessagingTest {
1000
);
- assertThat(member0.stopAsync(), willCompleteSuccessfully());
+ assertThat(member0.stopAsync(new ComponentContext()), willCompleteSuccessfully());
ExecutionException e = assertThrows(ExecutionException.class, () -> invoke0.get(1, SECONDS));
@@ -389,7 +390,7 @@ class ItScaleCubeNetworkMessagingTest {
assertTrue(receivedTestMessages.await(10, SECONDS), "Did not receive invocations on the receiver in time");
- assertThat(member0.stopAsync(), willCompleteSuccessfully());
+ assertThat(member0.stopAsync(new ComponentContext()), willCompleteSuccessfully());
ExecutionException e = assertThrows(ExecutionException.class, () -> invoke0.get(1, SECONDS));
@@ -1060,7 +1061,7 @@ class ItScaleCubeNetworkMessagingTest {
receiver.topologyService().localMember()
);
- assertThat(sender.stopAsync(), willCompleteSuccessfully());
+ assertThat(sender.stopAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(sendFuture, willThrow(NodeStoppingException.class));
}
@@ -1176,7 +1177,7 @@ class ItScaleCubeNetworkMessagingTest {
if (forceful) {
stopForcefully(alice);
} else {
- assertThat(alice.stopAsync(), willCompleteSuccessfully());
+ assertThat(alice.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
boolean aliceShutdownReceived = aliceShutdownLatch.await(forceful ? 10 : 3, SECONDS);
@@ -1260,7 +1261,7 @@ class ItScaleCubeNetworkMessagingTest {
* @throws AssertionError If the cluster was unable to start in 3 seconds.
*/
void startAwait() throws InterruptedException {
- assertThat(startAsync(members), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), members), willCompleteSuccessfully());
if (!waitForCondition(this::allMembersSeeEachOther, SECONDS.toMillis(3))) {
throw new AssertionError();
@@ -1278,7 +1279,7 @@ class ItScaleCubeNetworkMessagingTest {
* Stops the cluster.
*/
void shutdown() {
- assertThat(stopAsync(members), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), members), willCompleteSuccessfully());
}
}
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/NettyBootstrapFactory.java b/modules/network/src/main/java/org/apache/ignite/internal/network/NettyBootstrapFactory.java
index fae7fd87df..6e2abad500 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/NettyBootstrapFactory.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/NettyBootstrapFactory.java
@@ -32,6 +32,7 @@ import io.netty.util.concurrent.EventExecutor;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.configuration.InboundView;
import org.apache.ignite.internal.network.configuration.NetworkConfiguration;
@@ -151,7 +152,7 @@ public class NettyBootstrapFactory implements IgniteComponent, ChannelEventLoops
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
bossGroup = NamedNioEventLoopGroup.create(eventLoopGroupNamePrefix + "-srv-accept");
workerGroup = NamedNioEventLoopGroup.create(eventLoopGroupNamePrefix + "-srv-worker");
clientWorkerGroup = NamedNioEventLoopGroup.create(eventLoopGroupNamePrefix + "-client");
@@ -186,7 +187,7 @@ public class NettyBootstrapFactory implements IgniteComponent, ChannelEventLoops
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
NetworkView configurationView = networkConfiguration.value();
long quietPeriod = configurationView.shutdownQuietPeriod();
long shutdownTimeout = configurationView.shutdownTimeout();
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/NettyWorkersRegistrar.java b/modules/network/src/main/java/org/apache/ignite/internal/network/NettyWorkersRegistrar.java
index 54bc38b6af..267743f90b 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/NettyWorkersRegistrar.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/NettyWorkersRegistrar.java
@@ -34,6 +34,7 @@ import org.apache.ignite.internal.failure.FailureProcessor;
import org.apache.ignite.internal.failure.FailureType;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.worker.CriticalWorker;
import org.apache.ignite.internal.worker.CriticalWorkerRegistry;
@@ -92,7 +93,7 @@ public class NettyWorkersRegistrar implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
List<NettyWorker> nettyWorkers = new ArrayList<>();
for (EventLoopGroup group : bootstrapFactory.eventLoopGroups()) {
registerWorkersFor(group, nettyWorkers);
@@ -140,7 +141,7 @@ public class NettyWorkersRegistrar implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
Future<?> heartBeatsTaskFuture = sendHearbeatsTaskFuture;
if (heartBeatsTaskFuture != null) {
heartBeatsTaskFuture.cancel(false);
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterServiceFactory.java b/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterServiceFactory.java
index 293b3d92d3..0f68780796 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterServiceFactory.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterServiceFactory.java
@@ -41,6 +41,7 @@ import org.apache.ignite.internal.failure.FailureProcessor;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.AbstractClusterService;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.network.ClusterService;
@@ -132,7 +133,7 @@ public class ScaleCubeClusterServiceFactory {
private volatile CompletableFuture<Void> shutdownFuture;
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
var serializationService = new SerializationService(serializationRegistry, userObjectSerialization);
UUID launchId = UUID.randomUUID();
@@ -214,7 +215,7 @@ public class ScaleCubeClusterServiceFactory {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
ConnectionManager localConnectionMgr = connectionMgr;
if (localConnectionMgr != null) {
@@ -253,7 +254,7 @@ public class ScaleCubeClusterServiceFactory {
@Override
public void beforeNodeStop() {
- this.stopAsync().join();
+ this.stopAsync(new ComponentContext()).join();
}
@Override
diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java b/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java
index b72bc6619b..abb053ea48 100644
--- a/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java
+++ b/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java
@@ -53,6 +53,7 @@ import java.util.regex.Pattern;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.failure.FailureProcessor;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.configuration.NetworkConfiguration;
import org.apache.ignite.internal.network.messages.AllTypesMessageImpl;
import org.apache.ignite.internal.network.messages.InstantContainer;
@@ -498,7 +499,7 @@ class DefaultMessagingServiceTest extends BaseIgniteAbstractTest {
String eventLoopGroupNamePrefix = node.name() + "-event-loop";
NettyBootstrapFactory bootstrapFactory = new NettyBootstrapFactory(networkConfig, eventLoopGroupNamePrefix);
- assertThat(bootstrapFactory.startAsync(), willCompleteSuccessfully());
+ assertThat(bootstrapFactory.startAsync(new ComponentContext()), willCompleteSuccessfully());
ConnectionManager connectionManager = new ConnectionManager(
networkConfig.value(),
@@ -571,7 +572,7 @@ class DefaultMessagingServiceTest extends BaseIgniteAbstractTest {
connectionManager::initiateStopping, connectionManager::stop,
messagingService::stop,
bootstrapFactory::beforeNodeStop,
- () -> assertThat(bootstrapFactory.stopAsync(), willCompleteSuccessfully())
+ () -> assertThat(bootstrapFactory.stopAsync(new ComponentContext()), willCompleteSuccessfully())
);
}
}
diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/netty/NettyServerTest.java b/modules/network/src/test/java/org/apache/ignite/internal/network/netty/NettyServerTest.java
index 058d6751aa..28fe1139c5 100644
--- a/modules/network/src/test/java/org/apache/ignite/internal/network/netty/NettyServerTest.java
+++ b/modules/network/src/test/java/org/apache/ignite/internal/network/netty/NettyServerTest.java
@@ -50,6 +50,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.NettyBootstrapFactory;
import org.apache.ignite.internal.network.NetworkMessage;
import org.apache.ignite.internal.network.configuration.NetworkConfiguration;
@@ -91,7 +92,8 @@ public class NettyServerTest extends BaseIgniteAbstractTest {
final void tearDown() throws Exception {
closeAll(
server == null ? null : () -> server.stop().join(),
- bootstrapFactory == null ? null : () -> assertThat(bootstrapFactory.stopAsync(), willCompleteSuccessfully())
+ bootstrapFactory == null ? null :
+ () -> assertThat(bootstrapFactory.stopAsync(new ComponentContext()), willCompleteSuccessfully())
);
}
@@ -220,7 +222,7 @@ public class NettyServerTest extends BaseIgniteAbstractTest {
});
bootstrapFactory = new NettyBootstrapFactory(serverCfg, "");
- assertThat(bootstrapFactory.startAsync(), willCompleteSuccessfully());
+ assertThat(bootstrapFactory.startAsync(new ComponentContext()), willCompleteSuccessfully());
server = new NettyServer(
serverCfg.value(),
@@ -293,7 +295,7 @@ public class NettyServerTest extends BaseIgniteAbstractTest {
*/
private NettyServer getServer(boolean shouldStart) {
bootstrapFactory = new NettyBootstrapFactory(serverCfg, "");
- assertThat(bootstrapFactory.startAsync(), willCompleteSuccessfully());
+ assertThat(bootstrapFactory.startAsync(new ComponentContext()), willCompleteSuccessfully());
MessageSerializationRegistry registry = mock(MessageSerializationRegistry.class);
diff --git a/modules/network/src/testFixtures/java/org/apache/ignite/internal/network/utils/ClusterServiceTestUtils.java b/modules/network/src/testFixtures/java/org/apache/ignite/internal/network/utils/ClusterServiceTestUtils.java
index f5d93f2c59..6665cd8370 100644
--- a/modules/network/src/testFixtures/java/org/apache/ignite/internal/network/utils/ClusterServiceTestUtils.java
+++ b/modules/network/src/testFixtures/java/org/apache/ignite/internal/network/utils/ClusterServiceTestUtils.java
@@ -32,6 +32,7 @@ import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
import org.apache.ignite.internal.failure.FailureProcessor;
import org.apache.ignite.internal.failure.handlers.NoOpFailureHandler;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.AbstractClusterService;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessageSerializationRegistryImpl;
@@ -160,8 +161,8 @@ public class ClusterServiceTestUtils {
}
@Override
- public CompletableFuture<Void> startAsync() {
- nodeConfigurationMgr.startAsync().join();
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
+ nodeConfigurationMgr.startAsync(componentContext).join();
NetworkConfiguration configuration = nodeConfigurationMgr.configurationRegistry()
.getConfiguration(NetworkConfiguration.KEY);
@@ -177,12 +178,12 @@ public class ClusterServiceTestUtils {
)
).join();
- return IgniteUtils.startAsync(bootstrapFactory, clusterSvc);
+ return IgniteUtils.startAsync(componentContext, bootstrapFactory, clusterSvc);
}
@Override
- public CompletableFuture<Void> stopAsync() {
- return IgniteUtils.stopAsync(clusterSvc, bootstrapFactory, nodeConfigurationMgr);
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
+ return IgniteUtils.stopAsync(componentContext, clusterSvc, bootstrapFactory, nodeConfigurationMgr);
}
};
}
diff --git a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/ActiveActorTest.java b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/ActiveActorTest.java
index 5b3fae8a9f..b459141ec5 100644
--- a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/ActiveActorTest.java
+++ b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/ActiveActorTest.java
@@ -38,6 +38,7 @@ import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopolog
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.dsl.Operation;
@@ -81,7 +82,7 @@ public class ActiveActorTest extends AbstractTopologyAwareGroupServiceTest {
public void tearDown() throws Exception {
for (PlacementDriverManager pdMgr : placementDriverManagers.values()) {
pdMgr.beforeNodeStop();
- assertThat(pdMgr.stopAsync(), willCompleteSuccessfully());
+ assertThat(pdMgr.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
placementDriverManagers.clear();
@@ -135,7 +136,7 @@ public class ActiveActorTest extends AbstractTopologyAwareGroupServiceTest {
new TestClockService(new HybridClockImpl())
);
- assertThat(placementDriverManager.startAsync(), willCompleteSuccessfully());
+ assertThat(placementDriverManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
placementDriverManagers.put(nodeName, placementDriverManager);
}
@@ -145,7 +146,7 @@ public class ActiveActorTest extends AbstractTopologyAwareGroupServiceTest {
PlacementDriverManager placementDriverManager = placementDriverManagers.remove(nodeName);
placementDriverManager.beforeNodeStop();
- assertThat(placementDriverManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(placementDriverManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
private boolean checkSingleActiveActor(String leaderName) {
diff --git a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/MultiActorPlacementDriverTest.java b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/MultiActorPlacementDriverTest.java
index d1316d9538..ad403899f3 100644
--- a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/MultiActorPlacementDriverTest.java
+++ b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/MultiActorPlacementDriverTest.java
@@ -47,6 +47,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.IgniteTriFunction;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.configuration.MetaStorageConfiguration;
import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
@@ -130,12 +131,12 @@ public class MultiActorPlacementDriverTest extends BasePlacementDriverTest {
if (!placementDriverNodeNames.contains(nodeName)) {
var service = clusterServices.get(nodeName);
- assertThat(service.startAsync(), willCompleteSuccessfully());
+ assertThat(service.startAsync(new ComponentContext()), willCompleteSuccessfully());
servicesToClose.add(() -> {
service.beforeNodeStop();
- assertThat(service.stopAsync(), willCompleteSuccessfully());
+ assertThat(service.stopAsync(new ComponentContext()), willCompleteSuccessfully());
});
}
}
diff --git a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/Node.java b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/Node.java
index 49dced735f..d1c6ab977d 100644
--- a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/Node.java
+++ b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/Node.java
@@ -25,6 +25,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
import org.apache.ignite.internal.network.ClusterService;
@@ -57,9 +58,11 @@ class Node implements AutoCloseable {
}
CompletableFuture<Void> startAsync() {
- return IgniteUtils.startAsync(clusterService, loza, metastore)
+ ComponentContext componentContext = new ComponentContext();
+
+ return IgniteUtils.startAsync(componentContext, clusterService, loza, metastore)
.thenCompose(unused -> metastore.recoveryFinishedFuture())
- .thenCompose(unused -> placementDriverManager.startAsync())
+ .thenCompose(unused -> placementDriverManager.startAsync(componentContext))
.thenCompose(unused -> metastore.notifyRevisionUpdateListenerOnStart())
.thenCompose(unused -> metastore.deployWatches());
}
@@ -70,7 +73,7 @@ class Node implements AutoCloseable {
closeAll(Stream.concat(
igniteComponents.stream().map(component -> component::beforeNodeStop),
- Stream.of(() -> assertThat(stopAsync(igniteComponents), willCompleteSuccessfully()))
+ Stream.of(() -> assertThat(stopAsync(new ComponentContext(), igniteComponents), willCompleteSuccessfully()))
));
}
}
diff --git a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/PlacementDriverManagerTest.java b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/PlacementDriverManagerTest.java
index 4aa768215e..b7cda99359 100644
--- a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/PlacementDriverManagerTest.java
+++ b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/PlacementDriverManagerTest.java
@@ -67,6 +67,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.hlc.TestClockService;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.configuration.MetaStorageConfiguration;
import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
@@ -214,10 +215,12 @@ public class PlacementDriverManagerTest extends BasePlacementDriverTest {
new TestClockService(nodeClock)
);
+ ComponentContext componentContext = new ComponentContext();
+
assertThat(
- startAsync(clusterService, anotherClusterService, raftManager, metaStorageManager)
+ startAsync(componentContext, clusterService, anotherClusterService, raftManager, metaStorageManager)
.thenCompose(unused -> metaStorageManager.recoveryFinishedFuture())
- .thenCompose(unused -> placementDriverManager.startAsync())
+ .thenCompose(unused -> placementDriverManager.startAsync(componentContext))
.thenCompose(unused -> metaStorageManager.notifyRevisionUpdateListenerOnStart())
.thenCompose(unused -> metaStorageManager.deployWatches()),
willCompleteSuccessfully()
@@ -269,7 +272,7 @@ public class PlacementDriverManagerTest extends BasePlacementDriverTest {
closeAll(Stream.concat(
igniteComponents.stream().filter(Objects::nonNull).map(component -> component::beforeNodeStop),
- Stream.of(() -> assertThat(stopAsync(igniteComponents), willCompleteSuccessfully())))
+ Stream.of(() -> assertThat(stopAsync(new ComponentContext(), igniteComponents), willCompleteSuccessfully())))
);
}
@@ -413,7 +416,7 @@ public class PlacementDriverManagerTest extends BasePlacementDriverTest {
*/
private void stopAnotherNode(ClusterService nodeClusterService) throws Exception {
nodeClusterService.beforeNodeStop();
- assertThat(nodeClusterService.stopAsync(), willCompleteSuccessfully());
+ assertThat(nodeClusterService.stopAsync(new ComponentContext()), willCompleteSuccessfully());
assertTrue(waitForCondition(
() -> !clusterService.topologyService().allMembers().contains(nodeClusterService.topologyService().localMember()),
@@ -443,7 +446,7 @@ public class PlacementDriverManagerTest extends BasePlacementDriverTest {
leaseGrantMessageHandler(nodeName)
);
- assertThat(nodeClusterService.startAsync(), willCompleteSuccessfully());
+ assertThat(nodeClusterService.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertTrue(waitForCondition(
() -> clusterService.topologyService().allMembers().contains(nodeClusterService.topologyService().localMember()),
diff --git a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/PlacementDriverManager.java b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/PlacementDriverManager.java
index 9edc6dbbfb..6367931908 100644
--- a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/PlacementDriverManager.java
+++ b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/PlacementDriverManager.java
@@ -32,6 +32,7 @@ import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.network.ClusterService;
@@ -134,7 +135,7 @@ public class PlacementDriverManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
inBusyLock(busyLock, () -> {
placementDriverNodesNamesProvider.get()
.thenCompose(placementDriverNodes -> {
@@ -187,7 +188,7 @@ public class PlacementDriverManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
index 82b217f184..46280cf9f8 100644
--- a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
+++ b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
@@ -47,6 +47,7 @@ import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopolog
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologySnapshot;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
@@ -98,7 +99,7 @@ public class LeaseNegotiationTest extends BaseIgniteAbstractTest {
@BeforeEach
public void setUp() {
metaStorageManager = StandaloneMetaStorageManager.create();
- assertThat(metaStorageManager.startAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
metaStorageManager.deployWatches();
pdLogicalTopologyService = mock(LogicalTopologyService.class);
diff --git a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/PlacementDriverTest.java b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/PlacementDriverTest.java
index c177c5c7ef..8ce124a324 100644
--- a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/PlacementDriverTest.java
+++ b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/PlacementDriverTest.java
@@ -53,6 +53,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.ByteArray;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.dsl.Conditions;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
@@ -151,7 +152,7 @@ public class PlacementDriverTest extends BaseIgniteAbstractTest {
return nullCompletedFuture();
});
- assertThat(metastore.startAsync(), willCompleteSuccessfully());
+ assertThat(metastore.startAsync(new ComponentContext()), willCompleteSuccessfully());
CompletableFuture<Long> recoveryFinishedFuture = metastore.recoveryFinishedFuture();
@@ -168,7 +169,7 @@ public class PlacementDriverTest extends BaseIgniteAbstractTest {
void tearDown() throws Exception {
closeAll(
placementDriver == null ? null : placementDriver::stopTrack,
- metastore == null ? null : () -> assertThat(metastore.stopAsync(), willCompleteSuccessfully())
+ metastore == null ? null : () -> assertThat(metastore.stopAsync(new ComponentContext()), willCompleteSuccessfully())
);
}
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLearnersTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLearnersTest.java
index 473694c0d7..f8bca004a7 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLearnersTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLearnersTest.java
@@ -52,6 +52,7 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
@@ -121,17 +122,20 @@ public class ItLearnersTest extends IgniteAbstractTest {
}
void start() {
- assertThat(startAsync(clusterService, loza), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), clusterService, loza), willCompleteSuccessfully());
}
@Override
public void close() throws Exception {
+ ComponentContext componentContext = new ComponentContext();
+
closeAll(
loza == null ? null : () -> loza.stopRaftNodes(RAFT_GROUP_ID),
loza == null ? null : loza::beforeNodeStop,
clusterService == null ? null : clusterService::beforeNodeStop,
- loza == null ? null : () -> assertThat(loza.stopAsync(), willCompleteSuccessfully()),
- clusterService == null ? null : () -> assertThat(clusterService.stopAsync(), willCompleteSuccessfully())
+ loza == null ? null : () -> assertThat(loza.stopAsync(componentContext), willCompleteSuccessfully()),
+ clusterService == null ? null :
+ () -> assertThat(clusterService.stopAsync(componentContext), willCompleteSuccessfully())
);
}
}
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLozaTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLozaTest.java
index a849b37f85..91382ff48f 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLozaTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItLozaTest.java
@@ -38,6 +38,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.NetworkMessage;
@@ -100,7 +101,7 @@ public class ItLozaTest extends BaseIgniteAbstractTest {
private static ClusterService clusterService(TestInfo testInfo, int port, List<NetworkAddress> srvs) {
var network = ClusterServiceTestUtils.clusterService(testInfo, port, new StaticNodeFinder(srvs));
- assertThat(network.startAsync(), willCompleteSuccessfully());
+ assertThat(network.startAsync(new ComponentContext()), willCompleteSuccessfully());
return network;
}
@@ -127,7 +128,7 @@ public class ItLozaTest extends BaseIgniteAbstractTest {
loza = TestLozaFactory.create(service, raftConfiguration, dataPath, new HybridClockImpl());
- assertThat(loza.startAsync(), willCompleteSuccessfully());
+ assertThat(loza.startAsync(new ComponentContext()), willCompleteSuccessfully());
for (int i = 0; i < grpSrvcs.length; i++) {
// return an error on first invocation
@@ -155,11 +156,11 @@ public class ItLozaTest extends BaseIgniteAbstractTest {
}
if (loza != null) {
- assertThat(loza.stopAsync(), willCompleteSuccessfully());
+ assertThat(loza.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
if (service != null) {
- assertThat(service.stopAsync(), willCompleteSuccessfully());
+ assertThat(service.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
}
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java
index cb2fa831e4..b14c0c0156 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java
@@ -45,6 +45,7 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NodeFinder;
import org.apache.ignite.internal.network.StaticNodeFinder;
@@ -228,7 +229,7 @@ public class ItRaftGroupServiceTest extends IgniteAbstractTest {
}
void start() {
- assertThat(startAsync(clusterService, loza), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), clusterService, loza), willCompleteSuccessfully());
}
CompletableFuture<RaftGroupService> startRaftGroup(PeersAndLearners configuration) {
@@ -264,7 +265,7 @@ public class ItRaftGroupServiceTest extends IgniteAbstractTest {
}
void stop() {
- assertThat(stopAsync(loza, clusterService), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), loza, clusterService), willCompleteSuccessfully());
}
}
}
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItTruncateSuffixAndRestartTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItTruncateSuffixAndRestartTest.java
index 126061a270..85a13338a3 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItTruncateSuffixAndRestartTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItTruncateSuffixAndRestartTest.java
@@ -50,6 +50,7 @@ import org.apache.ignite.internal.failure.FailureProcessor;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NettyBootstrapFactory;
import org.apache.ignite.internal.network.configuration.NetworkConfiguration;
@@ -170,8 +171,8 @@ public class ItTruncateSuffixAndRestartTest extends BaseIgniteAbstractTest {
var nettyBootstrapFactory = new NettyBootstrapFactory(networkConfiguration, nodeName);
- assertThat(nettyBootstrapFactory.startAsync(), willCompleteSuccessfully());
- cleanup.add(() -> assertThat(nettyBootstrapFactory.stopAsync(), willCompleteSuccessfully()));
+ assertThat(nettyBootstrapFactory.startAsync(new ComponentContext()), willCompleteSuccessfully());
+ cleanup.add(() -> assertThat(nettyBootstrapFactory.stopAsync(new ComponentContext()), willCompleteSuccessfully()));
clusterSvc = new TestScaleCubeClusterServiceFactory().createClusterService(
nodeName,
@@ -182,13 +183,13 @@ public class ItTruncateSuffixAndRestartTest extends BaseIgniteAbstractTest {
new NoOpCriticalWorkerRegistry(),
mock(FailureProcessor.class));
- assertThat(clusterSvc.startAsync(), willCompleteSuccessfully());
- cleanup.add(() -> assertThat(clusterSvc.stopAsync(), willCompleteSuccessfully()));
+ assertThat(clusterSvc.startAsync(new ComponentContext()), willCompleteSuccessfully());
+ cleanup.add(() -> assertThat(clusterSvc.stopAsync(new ComponentContext()), willCompleteSuccessfully()));
raftMgr = TestLozaFactory.create(clusterSvc, raftConfiguration, nodeDir, hybridClock);
- assertThat(raftMgr.startAsync(), willCompleteSuccessfully());
- cleanup.add(() -> assertThat(raftMgr.stopAsync(), willCompleteSuccessfully()));
+ assertThat(raftMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
+ cleanup.add(() -> assertThat(raftMgr.stopAsync(new ComponentContext()), willCompleteSuccessfully()));
cleanup.add(this::stopService);
}
@@ -379,12 +380,12 @@ public class ItTruncateSuffixAndRestartTest extends BaseIgniteAbstractTest {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItCliServiceTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItCliServiceTest.java
index be2e7c1382..310607d33c 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItCliServiceTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItCliServiceTest.java
@@ -49,6 +49,7 @@ import java.util.concurrent.TimeUnit;
import java.util.function.BooleanSupplier;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
@@ -143,13 +144,13 @@ public class ItCliServiceTest extends BaseIgniteAbstractTest {
new StaticNodeFinder(addressList)
);
- assertThat(clientSvc.startAsync(), willCompleteSuccessfully());
+ assertThat(clientSvc.startAsync(new ComponentContext()), willCompleteSuccessfully());
IgniteRpcClient rpcClient = new IgniteRpcClient(clientSvc) {
@Override public void shutdown() {
super.shutdown();
- assertThat(clientSvc.stopAsync(), willCompleteSuccessfully());
+ assertThat(clientSvc.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
};
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
index 0037e7ed93..b77161ab29 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java
@@ -75,6 +75,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.network.utils.ClusterServiceTestUtils;
@@ -2827,9 +2828,11 @@ public class ItNodeTest extends BaseIgniteAbstractTest {
for (char ch = 'a'; ch <= 'z'; ch++)
fsm.getLogs().add(ByteBuffer.wrap(new byte[] {(byte) ch}));
+ ComponentContext startComponentContext = new ComponentContext();
+
BootstrapOptions opts = new BootstrapOptions();
DefaultLogStorageFactory logStorageProvider = new DefaultLogStorageFactory(path);
- assertThat(logStorageProvider.startAsync(), willCompleteSuccessfully());
+ assertThat(logStorageProvider.startAsync(startComponentContext), willCompleteSuccessfully());
opts.setServiceFactory(new IgniteJraftServiceFactory(logStorageProvider));
opts.setLastLogIndex(fsm.getLogs().size());
opts.setRaftMetaUri(dataPath + File.separator + "meta");
@@ -2839,14 +2842,14 @@ public class ItNodeTest extends BaseIgniteAbstractTest {
opts.setFsm(fsm);
assertTrue(JRaftUtils.bootstrap(opts));
- assertThat(logStorageProvider.stopAsync(), willCompleteSuccessfully());
+ assertThat(logStorageProvider.stopAsync(new ComponentContext()), willCompleteSuccessfully());
NodeOptions nodeOpts = new NodeOptions();
nodeOpts.setRaftMetaUri(dataPath + File.separator + "meta");
nodeOpts.setSnapshotUri(dataPath + File.separator + "snapshot");
nodeOpts.setLogUri("test");
DefaultLogStorageFactory log2 = new DefaultLogStorageFactory(path);
- assertThat(log2.startAsync(), willCompleteSuccessfully());
+ assertThat(log2.startAsync(startComponentContext), willCompleteSuccessfully());
nodeOpts.setServiceFactory(new IgniteJraftServiceFactory(log2));
nodeOpts.setFsm(fsm);
@@ -2872,10 +2875,11 @@ public class ItNodeTest extends BaseIgniteAbstractTest {
Path path = Path.of(dataPath, "node0", "log");
Files.createDirectories(path);
+ ComponentContext startComponentContext = new ComponentContext();
BootstrapOptions opts = new BootstrapOptions();
DefaultLogStorageFactory logStorageProvider = new DefaultLogStorageFactory(path);
- assertThat(logStorageProvider.startAsync(), willCompleteSuccessfully());
+ assertThat(logStorageProvider.startAsync(startComponentContext), willCompleteSuccessfully());
opts.setServiceFactory(new IgniteJraftServiceFactory(logStorageProvider));
opts.setLastLogIndex(0);
opts.setRaftMetaUri(dataPath + File.separator + "meta");
@@ -2885,7 +2889,7 @@ public class ItNodeTest extends BaseIgniteAbstractTest {
opts.setFsm(fsm);
assertTrue(JRaftUtils.bootstrap(opts));
- assertThat(logStorageProvider.stopAsync(), willCompleteSuccessfully());
+ assertThat(logStorageProvider.stopAsync(new ComponentContext()), willCompleteSuccessfully());
NodeOptions nodeOpts = new NodeOptions();
nodeOpts.setRaftMetaUri(dataPath + File.separator + "meta");
@@ -2893,7 +2897,7 @@ public class ItNodeTest extends BaseIgniteAbstractTest {
nodeOpts.setLogUri("test");
nodeOpts.setFsm(fsm);
DefaultLogStorageFactory log2 = new DefaultLogStorageFactory(path);
- assertThat(log2.startAsync(), willCompleteSuccessfully());
+ assertThat(log2.startAsync(startComponentContext), willCompleteSuccessfully());
nodeOpts.setServiceFactory(new IgniteJraftServiceFactory(log2));
RaftGroupService service = createService("test", peer, nodeOpts, List.of());
@@ -3752,7 +3756,7 @@ public class ItNodeTest extends BaseIgniteAbstractTest {
NodeOptions options = new NodeOptions();
DefaultLogStorageFactory log = new DefaultLogStorageFactory(Path.of(dataPath, "node" + nodeIdx, "log"));
- assertThat(log.startAsync(), willCompleteSuccessfully());
+ assertThat(log.startAsync(new ComponentContext()), willCompleteSuccessfully());
options.setServiceFactory(new IgniteJraftServiceFactory(log));
options.setLogUri("test");
@@ -3857,7 +3861,7 @@ public class ItNodeTest extends BaseIgniteAbstractTest {
nodeOptions.setCommandsMarshaller(TestCluster.commandsMarshaller(clusterService));
- assertThat(clusterService.startAsync(), willCompleteSuccessfully());
+ assertThat(clusterService.startAsync(new ComponentContext()), willCompleteSuccessfully());
var service = new RaftGroupService(groupId, peer.getPeerId(), nodeOptions, rpcServer, nodeManager) {
@Override public synchronized void shutdown() {
@@ -3865,7 +3869,7 @@ public class ItNodeTest extends BaseIgniteAbstractTest {
super.shutdown();
- assertThat(clusterService.stopAsync(), willCompleteSuccessfully());
+ assertThat(clusterService.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
};
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftCounterServerTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftCounterServerTest.java
index d040b605b8..f733884f2b 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftCounterServerTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftCounterServerTest.java
@@ -53,6 +53,7 @@ import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.stream.Stream;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.raft.Peer;
import org.apache.ignite.internal.raft.RaftNodeId;
import org.apache.ignite.internal.raft.ReadCommand;
@@ -784,8 +785,10 @@ class ItJraftCounterServerTest extends JraftAbstractTest {
toStop.beforeNodeStop();
- assertThat(toStop.stopAsync(), willCompleteSuccessfully());
- assertThat(serverServices.get(stopIdx).stopAsync(), willCompleteSuccessfully());
+ ComponentContext componentContext = new ComponentContext();
+
+ assertThat(toStop.stopAsync(componentContext), willCompleteSuccessfully());
+ assertThat(serverServices.get(stopIdx).stopAsync(componentContext), willCompleteSuccessfully());
servers.remove(stopIdx);
serverServices.remove(stopIdx);
@@ -820,8 +823,8 @@ class ItJraftCounterServerTest extends JraftAbstractTest {
svc2.beforeNodeStop();
int sv2Idx = servers.size() - 1;
- assertThat(svc2.stopAsync(), willCompleteSuccessfully());
- assertThat(serverServices.get(sv2Idx).stopAsync(), willCompleteSuccessfully());
+ assertThat(svc2.stopAsync(componentContext), willCompleteSuccessfully());
+ assertThat(serverServices.get(sv2Idx).stopAsync(componentContext), willCompleteSuccessfully());
servers.remove(sv2Idx);
serverServices.remove(sv2Idx);
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftHlcServerTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftHlcServerTest.java
index f75c2d63a9..0780007892 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftHlcServerTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftHlcServerTest.java
@@ -37,6 +37,7 @@ import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.stream.IntStream;
import org.apache.ignite.internal.hlc.HybridClock;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.raft.Peer;
import org.apache.ignite.internal.raft.PeersAndLearners;
@@ -109,7 +110,7 @@ class ItJraftHlcServerTest extends RaftServerAbstractTest {
server.beforeNodeStop();
- assertThat(server.stopAsync(), willCompleteSuccessfully());
+ assertThat(server.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
TestUtils.assertAllJraftThreadsStopped();
@@ -135,7 +136,7 @@ class ItJraftHlcServerTest extends RaftServerAbstractTest {
JraftServerImpl server = jraftServer(idx, service, opts);
- assertThat(server.startAsync(), willCompleteSuccessfully());
+ assertThat(server.startAsync(new ComponentContext()), willCompleteSuccessfully());
clo.accept(server);
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftServerLogPathTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftServerLogPathTest.java
index e17907ba57..60015efcf7 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftServerLogPathTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItJraftServerLogPathTest.java
@@ -26,6 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.raft.server.TestJraftServerFactory;
@@ -52,7 +53,7 @@ class ItJraftServerLogPathTest extends RaftServerAbstractTest {
@AfterEach
void tearDown() {
- assertThat(server.stopAsync(), willCompleteSuccessfully());
+ assertThat(server.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
@@ -108,7 +109,7 @@ class ItJraftServerLogPathTest extends RaftServerAbstractTest {
new RaftGroupEventsClientListener()
);
- assertThat(server.startAsync(), willCompleteSuccessfully());
+ assertThat(server.startAsync(new ComponentContext()), willCompleteSuccessfully());
return server;
}
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItSimpleCounterServerTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItSimpleCounterServerTest.java
index 644d55b436..52ea438d4c 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItSimpleCounterServerTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/ItSimpleCounterServerTest.java
@@ -35,6 +35,7 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.raft.Peer;
@@ -103,7 +104,7 @@ class ItSimpleCounterServerTest extends RaftServerAbstractTest {
server = TestJraftServerFactory.create(service, workDir, raftConfiguration);
- assertThat(server.startAsync(), willCompleteSuccessfully());
+ assertThat(server.startAsync(new ComponentContext()), willCompleteSuccessfully());
String serverNodeName = server.clusterService().topologyService().localMember().name();
@@ -148,11 +149,12 @@ class ItSimpleCounterServerTest extends RaftServerAbstractTest {
@AfterEach
@Override
public void after() throws Exception {
+ ComponentContext componentContext = new ComponentContext();
closeAll(
() -> server.stopRaftNodes(COUNTER_GROUP_ID_0),
() -> server.stopRaftNodes(COUNTER_GROUP_ID_1),
- () -> assertThat(server.stopAsync(), willCompleteSuccessfully()),
- service::stopAsync,
+ () -> assertThat(server.stopAsync(componentContext), willCompleteSuccessfully()),
+ () -> assertThat(service.stopAsync(componentContext), willCompleteSuccessfully()),
client1::shutdown,
client2::shutdown,
() -> IgniteUtils.shutdownAndAwaitTermination(executor, 10, TimeUnit.SECONDS)
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/JraftAbstractTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/JraftAbstractTest.java
index 253429f10e..cbaf88d30f 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/JraftAbstractTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/JraftAbstractTest.java
@@ -36,6 +36,7 @@ import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import java.util.stream.IntStream;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.raft.PeersAndLearners;
@@ -150,12 +151,12 @@ public abstract class JraftAbstractTest extends RaftServerAbstractTest {
server.beforeNodeStop();
- assertThat(server.stopAsync(), willCompleteSuccessfully());
+ assertThat(server.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
servers.clear();
- assertThat(IgniteUtils.stopAsync(serverServices), willCompleteSuccessfully());
+ assertThat(IgniteUtils.stopAsync(new ComponentContext(), serverServices), willCompleteSuccessfully());
serverServices.clear();
}
@@ -178,7 +179,7 @@ public abstract class JraftAbstractTest extends RaftServerAbstractTest {
JraftServerImpl server = jraftServer(idx, service, opts);
- assertThat(server.startAsync(), willCompleteSuccessfully());
+ assertThat(server.startAsync(new ComponentContext()), willCompleteSuccessfully());
clo.accept(server);
diff --git a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/RaftServerAbstractTest.java b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/RaftServerAbstractTest.java
index 00382bd1af..0abd7e4327 100644
--- a/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/RaftServerAbstractTest.java
+++ b/modules/raft/src/integrationTest/java/org/apache/ignite/raft/server/RaftServerAbstractTest.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.network.utils.ClusterServiceTestUtils;
@@ -69,7 +70,7 @@ abstract class RaftServerAbstractTest extends IgniteAbstractTest {
@AfterEach
protected void after() throws Exception {
- assertThat(stopAsync(clusterServices), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), clusterServices), willCompleteSuccessfully());
}
/**
@@ -87,7 +88,7 @@ abstract class RaftServerAbstractTest extends IgniteAbstractTest {
);
if (start) {
- assertThat(network.startAsync(), willCompleteSuccessfully());
+ assertThat(network.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
clusterServices.add(network);
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
index 8d63fed6de..51a0f00792 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
@@ -35,6 +35,7 @@ import org.apache.ignite.internal.lang.IgniteStringFormatter;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.MetricManager;
import org.apache.ignite.internal.metrics.sources.RaftMetricSource;
import org.apache.ignite.internal.network.ClusterService;
@@ -163,7 +164,7 @@ public class Loza implements RaftManager {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
RaftView raftConfig = raftConfiguration.value();
var stripeSource = new RaftMetricSource(raftConfiguration.value().stripes(), raftConfiguration.value().logStripesCount());
@@ -178,12 +179,12 @@ public class Loza implements RaftManager {
opts.getRaftOptions().setSync(raftConfig.fsync());
- return raftServer.startAsync();
+ return raftServer.startAsync(componentContext);
}
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
@@ -192,7 +193,7 @@ public class Loza implements RaftManager {
IgniteUtils.shutdownAndAwaitTermination(executor, 10, TimeUnit.SECONDS);
- return raftServer.stopAsync();
+ return raftServer.stopAsync(componentContext);
}
@Override
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
index 4543dbe7e7..e5c8195b97 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
@@ -47,6 +47,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.IgniteStringFormatter;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.sources.RaftMetricSource;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.raft.Marshaller;
@@ -233,7 +234,7 @@ public class JraftServerImpl implements RaftServer {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
assert opts.isSharedPools() : "RAFT server is supposed to run in shared pools mode";
// Pre-create all pools in shared mode.
@@ -348,7 +349,7 @@ public class JraftServerImpl implements RaftServer {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
assert nodes.isEmpty() : IgniteStringFormatter.format("Raft nodes {} are still running on the Ignite node {}", nodes.keySet(),
service.topologyService().localMember().name());
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/DefaultLogStorageFactory.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/DefaultLogStorageFactory.java
index 22ac0efd3f..89901affe1 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/DefaultLogStorageFactory.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/DefaultLogStorageFactory.java
@@ -33,6 +33,7 @@ import java.util.concurrent.Executors;
import java.util.function.Supplier;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.raft.storage.LogStorageFactory;
import org.apache.ignite.internal.rocksdb.RocksUtils;
import org.apache.ignite.internal.thread.NamedThreadFactory;
@@ -114,7 +115,7 @@ public class DefaultLogStorageFactory implements LogStorageFactory {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
// This is effectively a sync implementation.
try {
start();
@@ -167,7 +168,7 @@ public class DefaultLogStorageFactory implements LogStorageFactory {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
ExecutorServiceHelper.shutdownAndAwaitTermination(executorService);
try {
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/LocalLogStorageFactory.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/LocalLogStorageFactory.java
index 8f22a4c97c..b9042225fc 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/LocalLogStorageFactory.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/LocalLogStorageFactory.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.raft.storage.impl;
import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFuture;
import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.raft.storage.LogStorageFactory;
import org.apache.ignite.raft.jraft.option.RaftOptions;
import org.apache.ignite.raft.jraft.storage.LogStorage;
@@ -30,12 +31,12 @@ import org.apache.ignite.raft.jraft.storage.impl.LocalLogStorage;
*/
public class LocalLogStorageFactory implements LogStorageFactory {
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/VolatileLogStorageFactory.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/VolatileLogStorageFactory.java
index 922ab1f0c0..fcfb614187 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/VolatileLogStorageFactory.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/VolatileLogStorageFactory.java
@@ -27,6 +27,7 @@ import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.raft.configuration.LogStorageBudgetView;
import org.apache.ignite.internal.raft.storage.LogStorageFactory;
import org.apache.ignite.raft.jraft.core.LogStorageBudgetFactory;
@@ -101,12 +102,12 @@ public class VolatileLogStorageFactory implements LogStorageFactory {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/VolatileLogStorageFactoryCreator.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/VolatileLogStorageFactoryCreator.java
index 48fa17924d..a9641f6e24 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/VolatileLogStorageFactoryCreator.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/VolatileLogStorageFactoryCreator.java
@@ -34,6 +34,7 @@ import java.util.concurrent.Executors;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.raft.configuration.LogStorageBudgetView;
import org.apache.ignite.internal.raft.storage.LogStorageFactory;
@@ -89,7 +90,7 @@ public class VolatileLogStorageFactoryCreator implements LogStorageFactoryCreato
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
try {
Files.createDirectories(spillOutPath);
} catch (IOException e) {
@@ -178,7 +179,7 @@ public class VolatileLogStorageFactoryCreator implements LogStorageFactoryCreato
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
ExecutorServiceHelper.shutdownAndAwaitTermination(executorService);
try {
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/logit/LogitLogStorageFactory.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/logit/LogitLogStorageFactory.java
index 2ad0c612a6..fad0442c28 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/logit/LogitLogStorageFactory.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/logit/LogitLogStorageFactory.java
@@ -27,6 +27,7 @@ import java.util.function.Supplier;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.raft.storage.LogStorageFactory;
import org.apache.ignite.internal.thread.NamedThreadFactory;
import org.apache.ignite.internal.util.FeatureChecker;
@@ -80,12 +81,12 @@ public class LogitLogStorageFactory implements LogStorageFactory {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
ExecutorServiceHelper.shutdownAndAwaitTermination(checkpointExecutor);
return nullCompletedFuture();
}
diff --git a/modules/raft/src/test/java/org/apache/ignite/internal/raft/LozaTest.java b/modules/raft/src/test/java/org/apache/ignite/internal/raft/LozaTest.java
index a8a53fa51c..e4f0ad29e1 100644
--- a/modules/raft/src/test/java/org/apache/ignite/internal/raft/LozaTest.java
+++ b/modules/raft/src/test/java/org/apache/ignite/internal/raft/LozaTest.java
@@ -27,6 +27,7 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
@@ -57,20 +58,19 @@ public class LozaTest extends IgniteAbstractTest {
* Checks that the all API methods throw the exception ({@link NodeStoppingException})
* when Loza is closed.
*
- * @throws Exception If fail.
*/
@Test
- public void testLozaStop() throws Exception {
+ public void testLozaStop() {
Mockito.doReturn("test_node").when(clusterNetSvc).nodeName();
Mockito.doReturn(mock(MessagingService.class)).when(clusterNetSvc).messagingService();
Mockito.doReturn(mock(TopologyService.class)).when(clusterNetSvc).topologyService();
Loza loza = TestLozaFactory.create(clusterNetSvc, raftConfiguration, workDir, new HybridClockImpl());
- assertThat(loza.startAsync(), willCompleteSuccessfully());
+ assertThat(loza.startAsync(new ComponentContext()), willCompleteSuccessfully());
loza.beforeNodeStop();
- assertThat(loza.stopAsync(), willCompleteSuccessfully());
+ assertThat(loza.stopAsync(new ComponentContext()), willCompleteSuccessfully());
TestReplicationGroupId raftGroupId = new TestReplicationGroupId("test_raft_group");
diff --git a/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorageAdvancedTest.java b/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorageAdvancedTest.java
index 3585baae37..326fe71feb 100644
--- a/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorageAdvancedTest.java
+++ b/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorageAdvancedTest.java
@@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.nio.file.Path;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -59,7 +60,7 @@ public class RocksDbSharedLogStorageAdvancedTest extends BaseIgniteAbstractTest
@BeforeEach
public void setUp() {
logStorageProvider = new DefaultLogStorageFactory(this.path);
- assertThat(logStorageProvider.startAsync(), willCompleteSuccessfully());
+ assertThat(logStorageProvider.startAsync(new ComponentContext()), willCompleteSuccessfully());
this.confManager = new ConfigurationManager();
this.logEntryCodecFactory = LogEntryV1CodecFactory.getInstance();
@@ -68,7 +69,7 @@ public class RocksDbSharedLogStorageAdvancedTest extends BaseIgniteAbstractTest
@AfterEach
public void tearDown() {
- assertThat(logStorageProvider.stopAsync(), willCompleteSuccessfully());
+ assertThat(logStorageProvider.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
diff --git a/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorageTest.java b/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorageTest.java
index bebd94b8a2..5fb0f3cba7 100644
--- a/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorageTest.java
+++ b/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorageTest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.raft.storage.impl;
import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
import static org.hamcrest.MatcherAssert.assertThat;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.raft.jraft.option.RaftOptions;
import org.apache.ignite.raft.jraft.storage.LogStorage;
import org.apache.ignite.raft.jraft.storage.impl.BaseLogStorageTest;
@@ -36,7 +37,7 @@ public class RocksDbSharedLogStorageTest extends BaseLogStorageTest {
@Override
public void setup() throws Exception {
logStorageProvider = new DefaultLogStorageFactory(this.path);
- assertThat(logStorageProvider.startAsync(), willCompleteSuccessfully());
+ assertThat(logStorageProvider.startAsync(new ComponentContext()), willCompleteSuccessfully());
super.setup();
}
@@ -47,7 +48,7 @@ public class RocksDbSharedLogStorageTest extends BaseLogStorageTest {
public void teardown() {
super.teardown();
- assertThat(logStorageProvider.stopAsync(), willCompleteSuccessfully());
+ assertThat(logStorageProvider.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
/** {@inheritDoc} */
diff --git a/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/SharedVsNonSharedLogStorageBenchmark.java b/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/SharedVsNonSharedLogStorageBenchmark.java
index d8dc42023f..7cb0eaa04d 100644
--- a/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/SharedVsNonSharedLogStorageBenchmark.java
+++ b/modules/raft/src/test/java/org/apache/ignite/internal/raft/storage/impl/SharedVsNonSharedLogStorageBenchmark.java
@@ -32,6 +32,7 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.IntStream;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.raft.storage.LogStorageFactory;
import org.apache.ignite.raft.jraft.Lifecycle;
import org.apache.ignite.raft.jraft.conf.ConfigurationManager;
@@ -190,7 +191,7 @@ public class SharedVsNonSharedLogStorageBenchmark {
System.out.println("Test log storage path: " + testPath);
LogStorageFactory provider = new DefaultLogStorageFactory(benchmarkPath);
- assertThat(provider.startAsync(), willCompleteSuccessfully());
+ assertThat(provider.startAsync(new ComponentContext()), willCompleteSuccessfully());
List<LogStorage> sharedStorages = grps.stream()
.map(grp -> {
@@ -208,7 +209,7 @@ public class SharedVsNonSharedLogStorageBenchmark {
new SharedVsNonSharedLogStorageBenchmark(sharedStorages, logSize, totalLogs, batchSize).doTest();
sharedStorages.forEach(Lifecycle::shutdown);
- assertThat(provider.stopAsync(), willCompleteSuccessfully());
+ assertThat(provider.stopAsync(new ComponentContext()), willCompleteSuccessfully());
deleteDirectory(benchmarkPath.toFile());
}
diff --git a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/rpc/IgniteRpcTest.java b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/rpc/IgniteRpcTest.java
index 2970093e45..e6594731ed 100644
--- a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/rpc/IgniteRpcTest.java
+++ b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/rpc/IgniteRpcTest.java
@@ -29,6 +29,7 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.network.ClusterNode;
@@ -84,11 +85,11 @@ public class IgniteRpcTest extends AbstractRpcTest {
@Override public void shutdown() {
super.shutdown();
- assertThat(service.stopAsync(), willCompleteSuccessfully());
+ assertThat(service.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
};
- assertThat(service.startAsync(), willCompleteSuccessfully());
+ assertThat(service.startAsync(new ComponentContext()), willCompleteSuccessfully());
return server;
}
@@ -107,11 +108,11 @@ public class IgniteRpcTest extends AbstractRpcTest {
@Override public void shutdown() {
super.shutdown();
- assertThat(service.stopAsync(), willCompleteSuccessfully());
+ assertThat(service.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
};
- assertThat(service.startAsync(), willCompleteSuccessfully());
+ assertThat(service.startAsync(new ComponentContext()), willCompleteSuccessfully());
waitForTopology(client, 1 + i, 5_000);
diff --git a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/storage/impl/LogStorageBenchmark.java b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/storage/impl/LogStorageBenchmark.java
index c57a83978f..2c194430eb 100644
--- a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/storage/impl/LogStorageBenchmark.java
+++ b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/storage/impl/LogStorageBenchmark.java
@@ -25,6 +25,7 @@ import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.raft.storage.LogStorageFactory;
import org.apache.ignite.internal.raft.storage.logit.LogitLogStorageFactory;
import org.apache.ignite.internal.util.IgniteUtils;
@@ -154,7 +155,7 @@ public class LogStorageBenchmark {
// LogStorageFactory logStorageFactory = new DefaultLogStorageFactory(testPath);
LogStorageFactory logStorageFactory = new LogitLogStorageFactory("test", new StoreOptions(), () -> testPath);
- assertThat(logStorageFactory.startAsync(), willCompleteSuccessfully());
+ assertThat(logStorageFactory.startAsync(new ComponentContext()), willCompleteSuccessfully());
try {
RaftOptions raftOptions = new RaftOptions();
@@ -171,7 +172,7 @@ public class LogStorageBenchmark {
new LogStorageBenchmark(logStorage, logSize, totalLogs, batchSize).doTest();
}
} finally {
- assertThat(logStorageFactory.stopAsync(), willCompleteSuccessfully());
+ assertThat(logStorageFactory.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
}
diff --git a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/storage/logit/LogitLogStorageTest.java b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/storage/logit/LogitLogStorageTest.java
index 9f23519809..9eed60a3bd 100644
--- a/modules/raft/src/test/java/org/apache/ignite/raft/jraft/storage/logit/LogitLogStorageTest.java
+++ b/modules/raft/src/test/java/org/apache/ignite/raft/jraft/storage/logit/LogitLogStorageTest.java
@@ -23,6 +23,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.List;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.raft.storage.logit.LogitLogStorageFactory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
import org.apache.ignite.raft.jraft.entity.EnumOutter;
@@ -49,7 +50,7 @@ public class LogitLogStorageTest extends BaseLogStorageTest {
@Override
public void setup() throws Exception {
logStorageFactory = new LogitLogStorageFactory("test", testStoreOptions(), () -> path);
- assertThat(logStorageFactory.startAsync(), willCompleteSuccessfully());
+ assertThat(logStorageFactory.startAsync(new ComponentContext()), willCompleteSuccessfully());
super.setup();
}
@@ -67,7 +68,7 @@ public class LogitLogStorageTest extends BaseLogStorageTest {
@AfterEach
@Override
public void teardown() {
- assertThat(logStorageFactory.stopAsync(), willCompleteSuccessfully());
+ assertThat(logStorageFactory.stopAsync(new ComponentContext()), willCompleteSuccessfully());
super.teardown();
}
diff --git a/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/TestLozaFactory.java b/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/TestLozaFactory.java
index 3ff2f974bf..375f672afb 100644
--- a/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/TestLozaFactory.java
+++ b/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/TestLozaFactory.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.raft;
import java.nio.file.Path;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.hlc.HybridClock;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.NoOpMetricManager;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
@@ -79,13 +80,13 @@ public class TestLozaFactory {
raftGroupEventsClientListener,
logStorageFactory) {
@Override
- public CompletableFuture<Void> startAsync() {
- return logStorageFactory.startAsync().thenCompose(none -> super.startAsync());
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
+ return logStorageFactory.startAsync(componentContext).thenCompose(none -> super.startAsync(componentContext));
}
@Override
- public CompletableFuture<Void> stopAsync() {
- return super.stopAsync().thenCompose(none -> logStorageFactory.stopAsync());
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
+ return super.stopAsync(componentContext).thenCompose(none -> logStorageFactory.stopAsync(componentContext));
}
};
}
diff --git a/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/server/TestJraftServerFactory.java b/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/server/TestJraftServerFactory.java
index b2fef39ef7..5760dd8559 100644
--- a/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/server/TestJraftServerFactory.java
+++ b/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/server/TestJraftServerFactory.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.raft.server;
import java.nio.file.Path;
import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.raft.server.impl.JraftServerImpl;
@@ -79,13 +80,13 @@ public class TestJraftServerFactory {
LogStorageFactory defaultLogStorageFactory = SharedLogStorageFactoryUtils.create(service.nodeName(), dataPath, raftConfiguration);
return new JraftServerImpl(service, dataPath, opts, raftGroupEventsClientListener, defaultLogStorageFactory) {
@Override
- public CompletableFuture<Void> startAsync() {
- return defaultLogStorageFactory.startAsync().thenCompose(none -> super.startAsync());
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
+ return defaultLogStorageFactory.startAsync(componentContext).thenCompose(none -> super.startAsync(componentContext));
}
@Override
- public CompletableFuture<Void> stopAsync() {
- return super.stopAsync().thenCompose(none -> defaultLogStorageFactory.stopAsync());
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
+ return super.stopAsync(componentContext).thenCompose(none -> defaultLogStorageFactory.stopAsync(componentContext));
}
};
}
diff --git a/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/service/ItAbstractListenerSnapshotTest.java b/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/service/ItAbstractListenerSnapshotTest.java
index 058e30a5b6..01e8aebd08 100644
--- a/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/service/ItAbstractListenerSnapshotTest.java
+++ b/modules/raft/src/testFixtures/java/org/apache/ignite/internal/raft/service/ItAbstractListenerSnapshotTest.java
@@ -46,6 +46,7 @@ import org.apache.ignite.internal.configuration.testframework.ConfigurationExten
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
@@ -137,7 +138,9 @@ public abstract class ItAbstractListenerSnapshotTest<T extends RaftGroupListener
List<IgniteComponent> components = Stream.concat(servers.stream(), cluster.stream()).collect(toList());
- Stream<AutoCloseable> nodeStop = Stream.of(() -> assertThat(stopAsync(components), willCompleteSuccessfully()));
+ Stream<AutoCloseable> nodeStop = Stream.of(() ->
+ assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully())
+ );
IgniteUtils.closeAll(
Stream.of(stopRaftGroups, shutdownClients, stopExecutor, beforeNodeStop, nodeStop).flatMap(Function.identity())
@@ -254,8 +257,10 @@ public abstract class ItAbstractListenerSnapshotTest<T extends RaftGroupListener
// Shutdown that node
toStop.stopRaftNode(nodeId);
toStop.beforeNodeStop();
- assertThat(toStop.stopAsync(), willCompleteSuccessfully());
- assertThat(cluster.get(stopIdx).stopAsync(), willCompleteSuccessfully());
+
+ ComponentContext componentContext = new ComponentContext();
+ assertThat(toStop.stopAsync(componentContext), willCompleteSuccessfully());
+ assertThat(cluster.get(stopIdx).stopAsync(componentContext), willCompleteSuccessfully());
// Create a snapshot of the raft group
service.snapshot(service.leader()).get();
@@ -402,7 +407,7 @@ public abstract class ItAbstractListenerSnapshotTest<T extends RaftGroupListener
new StaticNodeFinder(List.of(otherPeer))
);
- assertThat(network.startAsync(), willCompleteSuccessfully());
+ assertThat(network.startAsync(new ComponentContext()), willCompleteSuccessfully());
cluster.add(network);
@@ -425,7 +430,7 @@ public abstract class ItAbstractListenerSnapshotTest<T extends RaftGroupListener
JraftServerImpl server = TestJraftServerFactory.create(service, jraft, raftConfiguration);
- assertThat(server.startAsync(), willCompleteSuccessfully());
+ assertThat(server.startAsync(new ComponentContext()), willCompleteSuccessfully());
Path listenerPersistencePath = workDir.resolve("db" + idx);
diff --git a/modules/raft/src/testFixtures/java/org/apache/ignite/raft/jraft/core/TestCluster.java b/modules/raft/src/testFixtures/java/org/apache/ignite/raft/jraft/core/TestCluster.java
index c1944756ac..5f05c6b8ba 100644
--- a/modules/raft/src/testFixtures/java/org/apache/ignite/raft/jraft/core/TestCluster.java
+++ b/modules/raft/src/testFixtures/java/org/apache/ignite/raft/jraft/core/TestCluster.java
@@ -47,6 +47,7 @@ import java.util.stream.Collectors;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.raft.JraftGroupEventsListener;
@@ -273,7 +274,7 @@ public class TestCluster {
var rpcServer = new TestIgniteRpcServer(clusterService, nodeManager, nodeOptions, requestExecutor);
- assertThat(clusterService.startAsync(), willCompleteSuccessfully());
+ assertThat(clusterService.startAsync(new ComponentContext()), willCompleteSuccessfully());
if (optsClo != null)
optsClo.accept(nodeOptions);
@@ -290,7 +291,7 @@ public class TestCluster {
// Network service must be stopped after a node because raft initiates timeoutnowrequest on stop for faster
// leader election.
- assertThat(clusterService.stopAsync(), willCompleteSuccessfully());
+ assertThat(clusterService.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
};
diff --git a/modules/replica-lifecycle/src/main/java/org/apache/ignite/internal/datareplication/ReplicaLifecycleManager.java b/modules/replica-lifecycle/src/main/java/org/apache/ignite/internal/datareplication/ReplicaLifecycleManager.java
index 1920db40e8..f6d9bceec1 100644
--- a/modules/replica-lifecycle/src/main/java/org/apache/ignite/internal/datareplication/ReplicaLifecycleManager.java
+++ b/modules/replica-lifecycle/src/main/java/org/apache/ignite/internal/datareplication/ReplicaLifecycleManager.java
@@ -21,6 +21,7 @@ import static org.apache.ignite.internal.lang.IgniteSystemProperties.getBoolean;
import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFuture;
import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
/**
@@ -36,7 +37,7 @@ public class ReplicaLifecycleManager implements IgniteComponent {
private static final boolean ENABLED = getBoolean("IGNITE_ZONE_BASED_REPLICATION", false);
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
if (!ENABLED) {
return nullCompletedFuture();
}
@@ -46,7 +47,7 @@ public class ReplicaLifecycleManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!ENABLED) {
return nullCompletedFuture();
}
diff --git a/modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java b/modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java
index cdda92d71a..5b09cd0e0a 100644
--- a/modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java
+++ b/modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java
@@ -64,6 +64,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.IgniteTriConsumer;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NetworkMessageHandler;
import org.apache.ignite.internal.network.StaticNodeFinder;
@@ -201,7 +202,7 @@ public class ItPlacementDriverReplicaSideTest extends IgniteAbstractTest {
replicaManagers.put(nodeName, replicaManager);
- assertThat(startAsync(clusterService, raftManager, replicaManager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), clusterService, raftManager, replicaManager), willCompleteSuccessfully());
servicesToClose.add(() -> {
try {
@@ -209,7 +210,10 @@ public class ItPlacementDriverReplicaSideTest extends IgniteAbstractTest {
replicaManager::beforeNodeStop,
raftManager::beforeNodeStop,
clusterService::beforeNodeStop,
- () -> assertThat(stopAsync(replicaManager, raftManager, clusterService), willCompleteSuccessfully())
+ () -> assertThat(
+ stopAsync(new ComponentContext(), replicaManager, raftManager, clusterService),
+ willCompleteSuccessfully()
+ )
);
} catch (Exception e) {
log.info("Fail to stop services [node={}]", e, nodeName);
@@ -358,7 +362,7 @@ public class ItPlacementDriverReplicaSideTest extends IgniteAbstractTest {
var srvc = clusterServices.get(nodeToStop);
srvc.beforeNodeStop();
- assertThat(srvc.stopAsync(), willCompleteSuccessfully());
+ assertThat(srvc.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
var anyNode = randomNode(grpNodesToStop);
diff --git a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
index 1b7c8ef725..64c29a7b81 100644
--- a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
+++ b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
@@ -57,6 +57,7 @@ import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.ChannelType;
import org.apache.ignite.internal.network.ClusterService;
@@ -624,7 +625,7 @@ public class ReplicaManager extends AbstractEventProducer<LocalReplicaEvent, Loc
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
ExecutorChooser<NetworkMessage> replicaMessagesExecutorChooser = message -> requestsExecutor;
clusterNetSvc.messagingService().addMessageHandler(ReplicaMessageGroup.class, replicaMessagesExecutorChooser, handler);
@@ -654,7 +655,7 @@ public class ReplicaManager extends AbstractEventProducer<LocalReplicaEvent, Loc
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/replicator/src/test/java/org/apache/ignite/internal/replicator/ReplicaManagerTest.java b/modules/replicator/src/test/java/org/apache/ignite/internal/replicator/ReplicaManagerTest.java
index 9963fabfa6..f6e661b2a8 100644
--- a/modules/replicator/src/test/java/org/apache/ignite/internal/replicator/ReplicaManagerTest.java
+++ b/modules/replicator/src/test/java/org/apache/ignite/internal/replicator/ReplicaManagerTest.java
@@ -45,6 +45,7 @@ import org.apache.ignite.internal.failure.NoOpFailureProcessor;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
@@ -112,11 +113,11 @@ public class ReplicaManagerTest extends BaseIgniteAbstractTest {
new NoOpFailureProcessor()
);
- assertThat(replicaManager.startAsync(), willCompleteSuccessfully());
+ assertThat(replicaManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
- void stopReplicaManager() throws Exception {
+ void stopReplicaManager() {
CompletableFuture<?>[] replicaStopFutures = replicaManager.startedGroups().stream()
.map(id -> {
try {
@@ -129,7 +130,7 @@ public class ReplicaManagerTest extends BaseIgniteAbstractTest {
assertThat(allOf(replicaStopFutures), willCompleteSuccessfully());
- assertThat(replicaManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(replicaManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
IgniteUtils.shutdownAndAwaitTermination(requestsExecutor, 10, TimeUnit.SECONDS);
}
diff --git a/modules/replicator/src/testFixtures/java/org/apache/ignite/internal/raft/client/AbstractTopologyAwareGroupServiceTest.java b/modules/replicator/src/testFixtures/java/org/apache/ignite/internal/raft/client/AbstractTopologyAwareGroupServiceTest.java
index e4f7943100..7bbde8465b 100644
--- a/modules/replicator/src/testFixtures/java/org/apache/ignite/internal/raft/client/AbstractTopologyAwareGroupServiceTest.java
+++ b/modules/replicator/src/testFixtures/java/org/apache/ignite/internal/raft/client/AbstractTopologyAwareGroupServiceTest.java
@@ -44,6 +44,7 @@ import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopolog
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.lang.IgniteBiTuple;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.raft.LeaderElectionListener;
@@ -216,7 +217,7 @@ public abstract class AbstractTopologyAwareGroupServiceTest extends IgniteAbstra
int clientPort = PORT_BASE + nodes + 1;
ClusterService clientClusterService =
clusterService(testInfo, clientPort, new StaticNodeFinder(findLocalAddresses(PORT_BASE, PORT_BASE + nodes)));
- assertThat(clientClusterService.startAsync(), willCompleteSuccessfully());
+ assertThat(clientClusterService.startAsync(new ComponentContext()), willCompleteSuccessfully());
// Start the second topology aware client, that should not get the initial leader notification.
TopologyAwareRaftGroupService raftClientNoInitialNotify = startTopologyAwareClient(
@@ -286,11 +287,14 @@ public abstract class AbstractTopologyAwareGroupServiceTest extends IgniteAbstra
// Forcing the leader change by stopping the actual leader.
var raftServiceToStop = raftServers.remove(new NetworkAddress("localhost", leader.address().port()));
raftServiceToStop.stopRaftNodes(GROUP_ID);
- assertThat(raftServiceToStop.stopAsync(), willCompleteSuccessfully());
+ ComponentContext componentContext = new ComponentContext();
+ assertThat(raftServiceToStop.stopAsync(componentContext), willCompleteSuccessfully());
afterNodeStop(leader.name());
- CompletableFuture<Void> stopFuture = clusterServices.remove(new NetworkAddress("localhost", leader.address().port())).stopAsync();
+ CompletableFuture<Void> stopFuture =
+ clusterServices.remove(new NetworkAddress("localhost", leader.address().port()))
+ .stopAsync(componentContext);
assertThat(stopFuture, willCompleteSuccessfully());
// Waiting for the notifications to check.
@@ -361,14 +365,16 @@ public abstract class AbstractTopologyAwareGroupServiceTest extends IgniteAbstra
raftClients.clear();
}
+ ComponentContext componentContext = new ComponentContext();
+
for (NetworkAddress addr : clusterServices.keySet()) {
if (raftServers.containsKey(addr)) {
raftServers.get(addr).stopRaftNodes(GROUP_ID);
- assertThat(raftServers.get(addr).stopAsync(), willCompleteSuccessfully());
+ assertThat(raftServers.get(addr).stopAsync(componentContext), willCompleteSuccessfully());
}
- assertThat(clusterServices.get(addr).stopAsync(), willCompleteSuccessfully());
+ assertThat(clusterServices.get(addr).stopAsync(componentContext), willCompleteSuccessfully());
}
raftServers.clear();
@@ -399,7 +405,7 @@ public abstract class AbstractTopologyAwareGroupServiceTest extends IgniteAbstra
for (NetworkAddress addr : addresses) {
var cluster = clusterService(testInfo, addr.port(), nodeFinder);
- assertThat(cluster.startAsync(), willCompleteSuccessfully());
+ assertThat(cluster.startAsync(new ComponentContext()), willCompleteSuccessfully());
clusterServices.put(addr, cluster);
}
@@ -431,7 +437,7 @@ public abstract class AbstractTopologyAwareGroupServiceTest extends IgniteAbstra
nodeOptions,
eventsClientListener
);
- assertThat(raftServer.startAsync(), willCompleteSuccessfully());
+ assertThat(raftServer.startAsync(new ComponentContext()), willCompleteSuccessfully());
raftServer.startRaftNode(
new RaftNodeId(GROUP_ID, localPeer),
diff --git a/modules/rest/src/main/java/org/apache/ignite/internal/rest/RestComponent.java b/modules/rest/src/main/java/org/apache/ignite/internal/rest/RestComponent.java
index b6b96b89a5..ba045b2c63 100644
--- a/modules/rest/src/main/java/org/apache/ignite/internal/rest/RestComponent.java
+++ b/modules/rest/src/main/java/org/apache/ignite/internal/rest/RestComponent.java
@@ -37,6 +37,7 @@ import java.util.function.Supplier;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.configuration.KeyStoreView;
import org.apache.ignite.internal.rest.configuration.RestConfiguration;
@@ -101,7 +102,7 @@ public class RestComponent implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
RestView restConfigurationView = restConfiguration.value();
RestSslView sslConfigurationView = restConfigurationView.ssl();
@@ -264,7 +265,7 @@ public class RestComponent implements IgniteComponent {
/** {@inheritDoc} */
@Override
- public synchronized CompletableFuture<Void> stopAsync() {
+ public synchronized CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
// TODO: IGNITE-16636 Use busy-lock approach to guard stopping RestComponent
if (context != null) {
context.stop();
diff --git a/modules/rest/src/test/java/org/apache/ignite/internal/rest/RestComponentTest.java b/modules/rest/src/test/java/org/apache/ignite/internal/rest/RestComponentTest.java
index 56b9c74f39..6a487c994f 100644
--- a/modules/rest/src/test/java/org/apache/ignite/internal/rest/RestComponentTest.java
+++ b/modules/rest/src/test/java/org/apache/ignite/internal/rest/RestComponentTest.java
@@ -41,6 +41,7 @@ import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.configuration.NetworkConfiguration;
import org.apache.ignite.internal.rest.authentication.AuthenticationProviderFactory;
import org.apache.ignite.internal.rest.cluster.ClusterManagementRestFactory;
@@ -77,7 +78,7 @@ public class RestComponentTest extends BaseIgniteAbstractTest {
generator,
new TestConfigurationValidator()
);
- assertThat(configurationManager.startAsync(), willCompleteSuccessfully());
+ assertThat(configurationManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
ConfigurationRegistry configurationRegistry = configurationManager.configurationRegistry();
RestConfiguration restConfiguration = configurationRegistry.getConfiguration(RestConfiguration.KEY);
@@ -105,14 +106,14 @@ public class RestComponentTest extends BaseIgniteAbstractTest {
restConfiguration
);
- assertThat(restComponent.startAsync(), willCompleteSuccessfully());
+ assertThat(restComponent.startAsync(new ComponentContext()), willCompleteSuccessfully());
client = new DefaultHttpClient(URI.create("http://localhost:" + restConfiguration.port().value() + "/management/v1/"));
}
@AfterEach
public void cleanup() {
- assertThat(restComponent.stopAsync(), willCompleteSuccessfully());
+ assertThat(restComponent.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
diff --git a/modules/rest/src/test/java/org/apache/ignite/internal/rest/configuration/TestFactory.java b/modules/rest/src/test/java/org/apache/ignite/internal/rest/configuration/TestFactory.java
index be41c94326..7073b05e4d 100644
--- a/modules/rest/src/test/java/org/apache/ignite/internal/rest/configuration/TestFactory.java
+++ b/modules/rest/src/test/java/org/apache/ignite/internal/rest/configuration/TestFactory.java
@@ -35,6 +35,7 @@ import org.apache.ignite.internal.configuration.ConfigurationRegistry;
import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
import org.apache.ignite.internal.configuration.validation.ConfigurationValidatorImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
/**
* Factory that creates beans needed for unit tests.
@@ -66,7 +67,7 @@ public class TestFactory {
ConfigurationValidatorImpl.withDefaultValidators(generator, Set.of(validator))
);
- assertThat(configurationRegistry.startAsync(), willCompleteSuccessfully());
+ assertThat(configurationRegistry.startAsync(new ComponentContext()), willCompleteSuccessfully());
return configurationRegistry;
}
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
index 705bb778cb..4471754bff 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
@@ -56,6 +56,7 @@ import org.apache.ignite.internal.configuration.validation.TestConfigurationVali
import org.apache.ignite.internal.failure.FailureProcessor;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.configuration.MetaStorageConfiguration;
@@ -242,11 +243,14 @@ public class ItDistributedConfigurationPropertiesTest extends BaseIgniteAbstract
*/
CompletableFuture<Void> start() {
assertThat(
- startAsync(vaultManager, clusterService, raftManager, failureProcessor, cmgManager, metaStorageManager),
+ startAsync(new ComponentContext(),
+ vaultManager, clusterService, raftManager, failureProcessor, cmgManager, metaStorageManager),
willCompleteSuccessfully()
);
- return CompletableFuture.runAsync(() -> assertThat(distributedCfgManager.startAsync(), willCompleteSuccessfully()));
+ return CompletableFuture.runAsync(() ->
+ assertThat(distributedCfgManager.startAsync(new ComponentContext()), willCompleteSuccessfully())
+ );
}
/**
@@ -274,7 +278,7 @@ public class ItDistributedConfigurationPropertiesTest extends BaseIgniteAbstract
igniteComponent.beforeNodeStop();
}
- assertThat(stopAsync(components), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully());
generator.close();
}
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
index 0fa6a8b3a5..e6cc4ba817 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
@@ -46,6 +46,7 @@ import org.apache.ignite.internal.configuration.validation.TestConfigurationVali
import org.apache.ignite.internal.failure.FailureProcessor;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.configuration.MetaStorageConfiguration;
@@ -193,7 +194,8 @@ public class ItDistributedConfigurationStorageTest extends BaseIgniteAbstractTes
*/
void start() {
assertThat(
- startAsync(vaultManager, clusterService, raftManager, failureProcessor, cmgManager, metaStorageManager),
+ startAsync(new ComponentContext(),
+ vaultManager, clusterService, raftManager, failureProcessor, cmgManager, metaStorageManager),
willCompleteSuccessfully()
);
@@ -219,7 +221,7 @@ public class ItDistributedConfigurationStorageTest extends BaseIgniteAbstractTes
igniteComponent.beforeNodeStop();
}
- assertThat(stopAsync(components), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully());
}
String name() {
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
index 23d4ec7977..f419d3b45d 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
@@ -124,6 +124,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.IgniteStringFormatter;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.lowwatermark.LowWatermarkImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
@@ -670,10 +671,10 @@ public class ItIgniteNodeRestartTest extends BaseIgniteRestartTest {
// Start.
- assertThat(vault.startAsync(), willCompleteSuccessfully());
+ assertThat(vault.startAsync(new ComponentContext()), willCompleteSuccessfully());
vault.putName(name);
- assertThat(nodeCfgMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(nodeCfgMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
// Start the remaining components.
List<IgniteComponent> otherComponents = List.of(
@@ -705,7 +706,7 @@ public class ItIgniteNodeRestartTest extends BaseIgniteRestartTest {
for (IgniteComponent component : otherComponents) {
// TODO: IGNITE-22119 required to be able to wait on this future.
- component.startAsync();
+ component.startAsync(new ComponentContext());
components.add(component);
}
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index 954b2e8fda..d99329d96b 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@ -128,6 +128,7 @@ import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.lowwatermark.LowWatermarkImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.configuration.MetaStorageConfiguration;
import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
@@ -1034,23 +1035,24 @@ public class IgniteImpl implements Ignite {
ExecutorService startupExecutor = Executors.newSingleThreadExecutor(
IgniteThreadFactory.create(name, "start", LOG, STORAGE_READ, STORAGE_WRITE)
);
+ ComponentContext componentContext = new ComponentContext(startupExecutor);
try {
metricManager.registerSource(new JvmMetricSource());
metricManager.registerSource(new OsMetricSource());
- lifecycleManager.startComponent(longJvmPauseDetector);
+ lifecycleManager.startComponent(longJvmPauseDetector, componentContext);
- lifecycleManager.startComponent(vaultMgr);
+ lifecycleManager.startComponent(vaultMgr, componentContext);
vaultMgr.putName(name);
// Node configuration manager startup.
- lifecycleManager.startComponent(nodeCfgMgr);
+ lifecycleManager.startComponent(nodeCfgMgr, componentContext);
// Start the components that are required to join the cluster.
lifecycleManager.startComponents(
- threadPoolsManager,
+ componentContext, threadPoolsManager,
clockWaiter,
failureProcessor,
criticalWorkerRegistry,
@@ -1078,7 +1080,7 @@ public class IgniteImpl implements Ignite {
LOG.info("Join complete, starting MetaStorage");
try {
- lifecycleManager.startComponent(metaStorageMgr);
+ lifecycleManager.startComponent(metaStorageMgr, componentContext);
} catch (NodeStoppingException e) {
throw new CompletionException(e);
}
@@ -1092,7 +1094,7 @@ public class IgniteImpl implements Ignite {
// Start all other components after the join request has completed and the node has been validated.
try {
lifecycleManager.startComponents(
- catalogManager,
+ componentContext, catalogManager,
clusterCfgMgr,
authenticationManager,
placementDriverMgr,
@@ -1120,7 +1122,7 @@ public class IgniteImpl implements Ignite {
// The system view manager comes last because other components
// must register system views before it starts.
- lifecycleManager.startComponent(systemViewManager);
+ lifecycleManager.startComponent(systemViewManager, componentContext);
} catch (NodeStoppingException e) {
throw new CompletionException(e);
}
@@ -1210,10 +1212,14 @@ public class IgniteImpl implements Ignite {
IgniteException igniteException = new IgniteException(errMsg, e);
+ ExecutorService lifecycleExecutor = stopExecutor();
+
try {
- lifecycleManager.stopNode().get();
+ lifecycleManager.stopNode(new ComponentContext(lifecycleExecutor)).get();
} catch (Exception ex) {
igniteException.addSuppressed(ex);
+ } finally {
+ lifecycleExecutor.shutdownNow();
}
return igniteException;
@@ -1230,8 +1236,18 @@ public class IgniteImpl implements Ignite {
* Asynchronously stops ignite node.
*/
public CompletableFuture<Void> stopAsync() {
- return lifecycleManager.stopNode()
- .whenComplete((unused, throwable) -> restAddressReporter.removeReport());
+ ExecutorService lifecycleExecutor = stopExecutor();
+
+ return lifecycleManager.stopNode(new ComponentContext(lifecycleExecutor))
+ .whenCompleteAsync((unused, throwable) -> restAddressReporter.removeReport())
+ // Moving to the common pool on purpose to close the stop pool and proceed user's code in the common pool.
+ .whenCompleteAsync((res, ex) -> lifecycleExecutor.shutdownNow());
+ }
+
+ private ExecutorService stopExecutor() {
+ return Executors.newSingleThreadExecutor(
+ IgniteThreadFactory.create(name, "stop", LOG, STORAGE_READ, STORAGE_WRITE)
+ );
}
/** {@inheritDoc} */
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/app/LifecycleManager.java b/modules/runner/src/main/java/org/apache/ignite/internal/app/LifecycleManager.java
index 47e1d4f461..1514dd21a3 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/app/LifecycleManager.java
+++ b/modules/runner/src/main/java/org/apache/ignite/internal/app/LifecycleManager.java
@@ -28,6 +28,7 @@ import java.util.concurrent.atomic.AtomicReference;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.rest.api.node.State;
import org.apache.ignite.internal.rest.node.StateProvider;
@@ -69,9 +70,11 @@ class LifecycleManager implements StateProvider {
* thrown.
*
* @param component Ignite component to start.
+ * @param componentContext Component context.
* @throws NodeStoppingException If node stopping intention was detected.
*/
- void startComponent(IgniteComponent component) throws NodeStoppingException {
+ void startComponent(IgniteComponent component, ComponentContext componentContext)
+ throws NodeStoppingException {
if (status.get() == State.STOPPING) {
throw new NodeStoppingException("Node=[" + nodeName + "] was stopped");
}
@@ -79,19 +82,20 @@ class LifecycleManager implements StateProvider {
synchronized (this) {
startedComponents.add(component);
- allComponentsStartFuture.add(component.startAsync());
+ allComponentsStartFuture.add(component.startAsync(componentContext));
}
}
/**
* Similar to {@link #startComponent} but allows to start multiple components at once.
*
+ * @param componentContext Component context.
* @param components Ignite components to start.
* @throws NodeStoppingException If node stopping intention was detected.
*/
- void startComponents(IgniteComponent... components) throws NodeStoppingException {
+ void startComponents(ComponentContext componentContext, IgniteComponent... components) throws NodeStoppingException {
for (IgniteComponent component : components) {
- startComponent(component);
+ startComponent(component, componentContext);
}
}
@@ -114,8 +118,8 @@ class LifecycleManager implements StateProvider {
}
/**
- * Represents future that will be completed when all components start futures will be completed.
- * Note that it is designed that this method is called only once.
+ * Represents future that will be completed when all components start futures will be completed. Note that it is designed that this
+ * method is called only once.
*
* @return Future that will be completed when all components start futures will be completed.
*/
@@ -130,22 +134,26 @@ class LifecycleManager implements StateProvider {
/**
* Stops all started components and transfers the node into the {@link State#STOPPING} state.
+ *
+ * @param componentContext Component context.
*/
- CompletableFuture<Void> stopNode() {
+ CompletableFuture<Void> stopNode(ComponentContext componentContext) {
State currentStatus = status.getAndSet(State.STOPPING);
if (currentStatus != State.STOPPING) {
- stopAllComponents();
+ stopAllComponents(componentContext);
}
return stopFuture;
}
/**
- * Calls {@link IgniteComponent#beforeNodeStop()} and then {@link IgniteComponent#stopAsync()} for all components in
+ * Calls {@link IgniteComponent#beforeNodeStop()} and then {@link IgniteComponent#stopAsync(ComponentContext)} for all components in
* start-reverse-order.
+ *
+ * @param componentContext Component context.
*/
- private synchronized void stopAllComponents() {
+ private synchronized void stopAllComponents(ComponentContext componentContext) {
List<IgniteComponent> components = new ArrayList<>(startedComponents);
reverse(components);
@@ -157,7 +165,7 @@ class LifecycleManager implements StateProvider {
}
}
- stopAsync(components)
+ stopAsync(componentContext, components)
.whenComplete((v, e) -> stopFuture.complete(null));
}
}
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/app/ThreadPoolsManager.java b/modules/runner/src/main/java/org/apache/ignite/internal/app/ThreadPoolsManager.java
index ceae0f7c4c..0831a23d3a 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/app/ThreadPoolsManager.java
+++ b/modules/runner/src/main/java/org/apache/ignite/internal/app/ThreadPoolsManager.java
@@ -32,6 +32,7 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.thread.IgniteThreadFactory;
import org.apache.ignite.internal.thread.NamedThreadFactory;
@@ -83,13 +84,13 @@ public class ThreadPoolsManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
// No-op.
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
IgniteUtils.shutdownAndAwaitTermination(tableIoExecutor, 10, SECONDS);
IgniteUtils.shutdownAndAwaitTermination(partitionOperationsExecutor, 10, SECONDS);
IgniteUtils.shutdownAndAwaitTermination(commonScheduler, 10, SECONDS);
diff --git a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/DistributedConfigurationStorageTest.java b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/DistributedConfigurationStorageTest.java
index 74304e9d8a..ccf8b05f47 100644
--- a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/DistributedConfigurationStorageTest.java
+++ b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/DistributedConfigurationStorageTest.java
@@ -31,6 +31,7 @@ import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.ByteArray;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.dsl.Operation;
import org.apache.ignite.internal.metastorage.dsl.SimpleCondition;
@@ -57,7 +58,7 @@ public class DistributedConfigurationStorageTest extends ConfigurationStorageTes
@BeforeEach
void start() {
metaStorage.start();
- assertThat(metaStorageManager.startAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
@@ -65,7 +66,7 @@ public class DistributedConfigurationStorageTest extends ConfigurationStorageTes
*/
@AfterEach
void stop() throws Exception {
- assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
metaStorage.close();
}
@@ -103,8 +104,8 @@ public class DistributedConfigurationStorageTest extends ConfigurationStorageTes
return fromCursor(metaStorage.range(prefix.bytes(), metaStorage.nextKey(prefix.bytes())));
});
- when(mock.startAsync()).thenReturn(nullCompletedFuture());
- when(mock.stopAsync()).thenReturn(nullCompletedFuture());
+ when(mock.startAsync(any())).thenReturn(nullCompletedFuture());
+ when(mock.stopAsync(any())).thenReturn(nullCompletedFuture());
return mock;
}
diff --git a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/LocalConfigurationStorageTest.java b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/LocalConfigurationStorageTest.java
index cf3201c58e..54a83aaadb 100644
--- a/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/LocalConfigurationStorageTest.java
+++ b/modules/runner/src/test/java/org/apache/ignite/internal/configuration/storage/LocalConfigurationStorageTest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.configuration.storage;
import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
import static org.hamcrest.MatcherAssert.assertThat;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.vault.VaultManager;
import org.apache.ignite.internal.vault.inmemory.InMemoryVaultService;
import org.junit.jupiter.api.AfterEach;
@@ -36,7 +37,7 @@ public class LocalConfigurationStorageTest extends ConfigurationStorageTest {
*/
@BeforeEach
void startVault() {
- assertThat(vaultManager.startAsync(), willCompleteSuccessfully());
+ assertThat(vaultManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
@@ -44,7 +45,7 @@ public class LocalConfigurationStorageTest extends ConfigurationStorageTest {
*/
@AfterEach
void stopVault() {
- assertThat(vaultManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(vaultManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
/** {@inheritDoc} */
diff --git a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/BaseIgniteRestartTest.java b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/BaseIgniteRestartTest.java
index e1666fd5b1..75115884b6 100644
--- a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/BaseIgniteRestartTest.java
+++ b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/BaseIgniteRestartTest.java
@@ -53,6 +53,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.IgniteStringFormatter;
import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
@@ -433,7 +434,7 @@ public abstract class BaseIgniteRestartTest extends IgniteAbstractTest {
}
}
- assertThat(stopAsync(components), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully());
closeables.forEach(c -> {
try {
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaManager.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaManager.java
index e84cade0c6..1690a844e4 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaManager.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SchemaManager.java
@@ -44,6 +44,7 @@ import org.apache.ignite.internal.catalog.events.TableEventParameters;
import org.apache.ignite.internal.causality.IncrementalVersionedValue;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.schema.catalog.CatalogToSchemaDescriptorConverter;
import org.apache.ignite.internal.schema.registry.SchemaRegistryImpl;
@@ -76,7 +77,7 @@ public class SchemaManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
catalogService.listen(CatalogEvent.TABLE_CREATE, this::onTableCreated);
catalogService.listen(CatalogEvent.TABLE_ALTER, this::onTableAltered);
@@ -314,7 +315,7 @@ public class SchemaManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaManagerTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaManagerTest.java
index 364eb4e087..81bd638ede 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaManagerTest.java
+++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/SchemaManagerTest.java
@@ -49,6 +49,7 @@ import org.apache.ignite.internal.catalog.events.CatalogEvent;
import org.apache.ignite.internal.catalog.events.CatalogEventParameters;
import org.apache.ignite.internal.catalog.events.CreateTableEventParameters;
import org.apache.ignite.internal.event.EventListener;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
import org.apache.ignite.internal.metastorage.server.SimpleInMemoryKeyValueStorage;
@@ -96,7 +97,7 @@ class SchemaManagerTest extends BaseIgniteAbstractTest {
@BeforeEach
void setUp() {
metaStorageManager = spy(StandaloneMetaStorageManager.create(metaStorageKvStorage));
- assertThat(metaStorageManager.startAsync(), willCompleteSuccessfully());
+ assertThat(metaStorageManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
tableCreatedListener = ArgumentCaptor.forClass(EventListener.class);
tableAlteredListener = ArgumentCaptor.forClass(EventListener.class);
@@ -106,14 +107,14 @@ class SchemaManagerTest extends BaseIgniteAbstractTest {
doNothing().when(catalogService).listen(eq(CatalogEvent.TABLE_ALTER), tableAlteredListener.capture());
schemaManager = new SchemaManager(registry, catalogService);
- assertThat(schemaManager.startAsync(), willCompleteSuccessfully());
+ assertThat(schemaManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat("Watches were not deployed", metaStorageManager.deployWatches(), willCompleteSuccessfully());
}
@AfterEach
void tearDown() {
- assertThat(stopAsync(schemaManager, metaStorageManager), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), schemaManager, metaStorageManager), willCompleteSuccessfully());
}
private void createSomeTable() {
@@ -269,14 +270,14 @@ class SchemaManagerTest extends BaseIgniteAbstractTest {
void loadingPreExistingSchemasWorks() {
create2TableVersions();
- assertThat(schemaManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(schemaManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
when(catalogService.latestCatalogVersion()).thenReturn(2);
when(catalogService.tables(anyInt())).thenReturn(List.of(tableDescriptorAfterColumnAddition()));
doReturn(CompletableFuture.completedFuture(CAUSALITY_TOKEN_2)).when(metaStorageManager).recoveryFinishedFuture();
schemaManager = new SchemaManager(registry, catalogService);
- assertThat(schemaManager.startAsync(), willCompleteSuccessfully());
+ assertThat(schemaManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
completeCausalityToken(CAUSALITY_TOKEN_2);
diff --git a/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/AuthenticationManagerImpl.java b/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/AuthenticationManagerImpl.java
index d79812e16a..0c751c7175 100644
--- a/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/AuthenticationManagerImpl.java
+++ b/modules/security/src/main/java/org/apache/ignite/internal/security/authentication/AuthenticationManagerImpl.java
@@ -37,6 +37,7 @@ import org.apache.ignite.internal.eventlog.api.IgniteEvents;
import org.apache.ignite.internal.eventlog.event.EventUser;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.security.authentication.basic.BasicAuthenticationProviderConfiguration;
import org.apache.ignite.internal.security.authentication.configuration.AuthenticationProviderView;
import org.apache.ignite.internal.security.authentication.configuration.AuthenticationView;
@@ -129,7 +130,7 @@ public class AuthenticationManagerImpl
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
securityConfiguration.listen(securityConfigurationListener);
securityConfiguration.enabled().listen(securityEnabledDisabledEventFactory);
securityConfiguration.authentication().providers().listenElements(providerEventFactory);
@@ -143,7 +144,7 @@ public class AuthenticationManagerImpl
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
securityConfiguration.stopListen(securityConfigurationListener);
securityConfiguration.enabled().stopListen(securityEnabledDisabledEventFactory);
securityConfiguration.authentication().providers().stopListenElements(providerEventFactory);
diff --git a/modules/security/src/test/java/org/apache/ignite/internal/security/authentication/AuthenticationManagerImplTest.java b/modules/security/src/test/java/org/apache/ignite/internal/security/authentication/AuthenticationManagerImplTest.java
index 9c96dc427b..66fb5f9626 100644
--- a/modules/security/src/test/java/org/apache/ignite/internal/security/authentication/AuthenticationManagerImplTest.java
+++ b/modules/security/src/test/java/org/apache/ignite/internal/security/authentication/AuthenticationManagerImplTest.java
@@ -39,6 +39,7 @@ import java.util.function.Consumer;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.event.EventListener;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.security.authentication.basic.BasicAuthenticationProviderChange;
import org.apache.ignite.internal.security.authentication.event.AuthenticationEvent;
import org.apache.ignite.internal.security.authentication.event.AuthenticationEventParameters;
@@ -82,14 +83,14 @@ class AuthenticationManagerImplTest extends BaseIgniteAbstractTest {
Arrays.stream(AuthenticationEvent.values()).forEach(event -> manager.listen(event, listener));
- assertThat(manager.startAsync(), willCompleteSuccessfully());
+ assertThat(manager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void tearDown() {
Arrays.stream(AuthenticationEvent.values()).forEach(event -> manager.removeListener(event, listener));
- assertThat(manager.stopAsync(), willCompleteSuccessfully());
+ assertThat(manager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/IgniteSqlImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/IgniteSqlImpl.java
index 7d2d902be5..4fa1510255 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/IgniteSqlImpl.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/IgniteSqlImpl.java
@@ -44,6 +44,7 @@ import java.util.function.Supplier;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.sql.StatementBuilderImpl;
import org.apache.ignite.internal.sql.StatementImpl;
@@ -124,12 +125,12 @@ public class IgniteSqlImpl implements IgniteSql, IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!closed.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
index 717522086a..c2e69f48fc 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
@@ -59,6 +59,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.MetricManager;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
@@ -275,7 +276,7 @@ public class SqlQueryProcessor implements QueryProcessor {
/** {@inheritDoc} */
@Override
- public synchronized CompletableFuture<Void> startAsync() {
+ public synchronized CompletableFuture<Void> startAsync(ComponentContext componentContext) {
var nodeName = clusterSrvc.topologyService().localMember().name();
taskExecutor = registerService(new QueryTaskExecutorImpl(nodeName, nodeCfg.execution().threadCount().value(), failureProcessor));
@@ -439,7 +440,7 @@ public class SqlQueryProcessor implements QueryProcessor {
/** {@inheritDoc} */
@Override
- public synchronized CompletableFuture<Void> stopAsync() {
+ public synchronized CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/api/IgniteSqlImplTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/api/IgniteSqlImplTest.java
index 3f8497b05f..198bfedff5 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/api/IgniteSqlImplTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/api/IgniteSqlImplTest.java
@@ -48,6 +48,7 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.sql.engine.AsyncSqlCursor;
import org.apache.ignite.internal.sql.engine.InternalSqlRow;
import org.apache.ignite.internal.sql.engine.QueryProcessor;
@@ -128,7 +129,7 @@ class IgniteSqlImplTest extends BaseIgniteAbstractTest {
assertThat(rs, notNullValue());
assertThat(igniteSql.openedCursors(), hasSize(1));
- assertThat(igniteSql.stopAsync(), willCompleteSuccessfully());
+ assertThat(igniteSql.stopAsync(new ComponentContext()), willCompleteSuccessfully());
verify(result).closeAsync();
}
@@ -148,7 +149,7 @@ class IgniteSqlImplTest extends BaseIgniteAbstractTest {
assertThat(executeQueryLatch.await(5, TimeUnit.SECONDS), is(true));
- assertThat(igniteSql.stopAsync(), willCompleteSuccessfully());
+ assertThat(igniteSql.stopAsync(new ComponentContext()), willCompleteSuccessfully());
AsyncSqlCursor<InternalSqlRow> cursor = mock(AsyncSqlCursor.class);
cursorFuture.complete(cursor);
@@ -194,7 +195,7 @@ class IgniteSqlImplTest extends BaseIgniteAbstractTest {
assertThat(executeQueryLatch.await(5, TimeUnit.SECONDS), is(true));
- assertThat(igniteSql.stopAsync(), willCompleteSuccessfully());
+ assertThat(igniteSql.stopAsync(new ComponentContext()), willCompleteSuccessfully());
AsyncSqlCursor<InternalSqlRow> cursor = mock(AsyncSqlCursor.class);
cursorFuture.complete(cursor);
@@ -340,7 +341,7 @@ class IgniteSqlImplTest extends BaseIgniteAbstractTest {
Thread thread = new Thread(() -> {
try {
- assertThat(igniteSql.stopAsync(), willCompleteSuccessfully());
+ assertThat(igniteSql.stopAsync(new ComponentContext()), willCompleteSuccessfully());
} finally {
cursor2Fut.complete(cursor2);
}
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/TransactionEnlistTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/TransactionEnlistTest.java
index 2ab2d13ece..6d213cbee0 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/TransactionEnlistTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/TransactionEnlistTest.java
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.times;
import java.util.List;
import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.sql.engine.AsyncSqlCursor;
import org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl;
import org.apache.ignite.internal.sql.engine.InternalSqlRow;
@@ -158,13 +159,13 @@ public class TransactionEnlistTest extends BaseIgniteAbstractTest {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
// NO-OP
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
// NO-OP
return nullCompletedFuture();
}
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlCommandHandlerExceptionHandlingTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlCommandHandlerExceptionHandlingTest.java
index 468b60a1f5..ffddd7b931 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlCommandHandlerExceptionHandlingTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/ddl/DdlCommandHandlerExceptionHandlingTest.java
@@ -37,6 +37,7 @@ import org.apache.ignite.internal.hlc.ClockWaiter;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -56,17 +57,17 @@ public class DdlCommandHandlerExceptionHandlingTest extends IgniteAbstractTest {
void before() {
HybridClock clock = new HybridClockImpl();
catalogManager = createTestCatalogManager("test", clock);
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
clockWaiter = new ClockWaiter("test", clock);
- assertThat(clockWaiter.startAsync(), willCompleteSuccessfully());
+ assertThat(clockWaiter.startAsync(new ComponentContext()), willCompleteSuccessfully());
commandHandler = new DdlCommandHandler(catalogManager, new TestClockService(clock, clockWaiter), () -> 100);
}
@AfterEach
public void after() {
- assertThat(stopAsync(clockWaiter, catalogManager), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), clockWaiter, catalogManager), willCompleteSuccessfully());
}
@Test
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
index 5c12103b02..d781b77740 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
@@ -48,6 +48,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
@@ -174,9 +175,9 @@ public class TableScanNodeExecutionTest extends AbstractExecutionTest<Object[]>
new TestLowWatermark()
);
- assertThat(txManager.startAsync(), willCompleteSuccessfully());
+ assertThat(txManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
- closeables.add(() -> assertThat(txManager.stopAsync(), willCompleteSuccessfully()));
+ closeables.add(() -> assertThat(txManager.stopAsync(new ComponentContext()), willCompleteSuccessfully()));
TestInternalTableImpl internalTable = new TestInternalTableImpl(replicaSvc, size, timestampTracker, txManager);
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/ClusterServiceFactory.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/ClusterServiceFactory.java
index eb000bcef1..7954cb74a2 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/ClusterServiceFactory.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/ClusterServiceFactory.java
@@ -29,6 +29,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.stream.Collectors;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.AbstractMessagingService;
import org.apache.ignite.internal.network.AbstractTopologyService;
import org.apache.ignite.internal.network.ChannelType;
@@ -115,7 +116,7 @@ public class ClusterServiceFactory {
/** {@inheritDoc} */
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return nullCompletedFuture();
}
};
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java
index 8ea5689455..02493459c8 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java
@@ -76,6 +76,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.MetricManagerImpl;
import org.apache.ignite.internal.sql.SqlCommon;
import org.apache.ignite.internal.sql.engine.SqlQueryProcessor;
@@ -648,7 +649,7 @@ public class TestBuilders {
var ddlHandler = new DdlCommandHandler(catalogManager, new TestClockService(clock, clockWaiter), () -> 100);
Runnable initClosure = () -> {
- assertThat(clockWaiter.startAsync(), willCompleteSuccessfully());
+ assertThat(clockWaiter.startAsync(new ComponentContext()), willCompleteSuccessfully());
initAction(catalogManager);
};
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestCluster.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestCluster.java
index ee4e62bb80..86497b6170 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestCluster.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestCluster.java
@@ -27,6 +27,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.hlc.ClockWaiter;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.sql.engine.exec.LifecycleAware;
import org.apache.ignite.internal.sql.engine.prepare.PrepareService;
@@ -108,12 +109,12 @@ public class TestCluster implements LifecycleAware {
@Override
public void start() {
- assertThat(component.startAsync(), willCompleteSuccessfully());
+ assertThat(component.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Override
public void stop() {
- assertThat(component.stopAsync(), willCompleteSuccessfully());
+ assertThat(component.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
}
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestNode.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestNode.java
index 07706050cb..75252d4b71 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestNode.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestNode.java
@@ -31,6 +31,7 @@ import org.apache.ignite.internal.hlc.ClockService;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
@@ -314,12 +315,12 @@ public class TestNode implements LifecycleAware {
@Override
public void start() {
- assertThat(component.startAsync(), willCompleteSuccessfully());
+ assertThat(component.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Override
public void stop() {
- assertThat(component.stopAsync(), willCompleteSuccessfully());
+ assertThat(component.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
}
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImplTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImplTest.java
index 8e9cb189aa..4b7abed4ec 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImplTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImplTest.java
@@ -74,6 +74,7 @@ import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.schema.DefaultValueGenerator;
import org.apache.ignite.internal.sql.engine.schema.IgniteIndex.Type;
import org.apache.ignite.internal.sql.engine.trait.IgniteDistribution;
@@ -106,12 +107,12 @@ public class SqlSchemaManagerImplTest extends BaseIgniteAbstractTest {
catalogManager = CatalogTestUtils.createCatalogManagerWithTestUpdateLog("test", new HybridClockImpl());
sqlSchemaManager = new SqlSchemaManagerImpl(catalogManager, CaffeineCacheFactory.INSTANCE, 200);
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void cleanup() {
- assertThat(catalogManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/QueryCheckerTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/QueryCheckerTest.java
index b77f0d7144..bba725f46d 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/QueryCheckerTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/QueryCheckerTest.java
@@ -24,6 +24,7 @@ import static org.hamcrest.Matchers.containsString;
import java.util.List;
import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.sql.engine.AsyncSqlCursor;
import org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl;
import org.apache.ignite.internal.sql.engine.InternalSqlRow;
@@ -340,13 +341,13 @@ public class QueryCheckerTest extends BaseIgniteAbstractTest {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
// NO-OP
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
// NO-OP
return nullCompletedFuture();
diff --git a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageManager.java b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageManager.java
index 9ffa5eb2b5..ddd7d84a59 100644
--- a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageManager.java
+++ b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/DataStorageManager.java
@@ -24,6 +24,7 @@ import static org.apache.ignite.internal.util.IgniteUtils.closeAll;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.storage.configurations.StorageConfiguration;
import org.apache.ignite.internal.storage.configurations.StorageProfileConfiguration;
@@ -57,7 +58,7 @@ public class DataStorageManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() throws StorageException {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) throws StorageException {
engines.values().forEach(StorageEngine::start);
profilesToEngines = storageConfiguration.value().profiles().stream()
@@ -67,7 +68,7 @@ public class DataStorageManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
try {
closeAll(engines.values().stream().map(engine -> engine::stop));
} catch (Exception e) {
diff --git a/modules/system-view/src/main/java/org/apache/ignite/internal/systemview/SystemViewManagerImpl.java b/modules/system-view/src/main/java/org/apache/ignite/internal/systemview/SystemViewManagerImpl.java
index 1a37242ec4..1d8b1ba172 100644
--- a/modules/system-view/src/main/java/org/apache/ignite/internal/systemview/SystemViewManagerImpl.java
+++ b/modules/system-view/src/main/java/org/apache/ignite/internal/systemview/SystemViewManagerImpl.java
@@ -44,6 +44,7 @@ import org.apache.ignite.internal.lang.InternalTuple;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.schema.BinaryTuple;
import org.apache.ignite.internal.schema.BinaryTupleSchema;
import org.apache.ignite.internal.systemview.api.NodeSystemView;
@@ -99,7 +100,7 @@ public class SystemViewManagerImpl implements SystemViewManager, NodeAttributesP
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
inBusyLock(busyLock, () -> {
if (!startGuard.compareAndSet(false, true)) {
throw new IllegalStateException("System view manager cannot be started twice");
@@ -133,7 +134,7 @@ public class SystemViewManagerImpl implements SystemViewManager, NodeAttributesP
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java b/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
index 1ee56d5217..09301af15e 100644
--- a/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
+++ b/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
@@ -62,6 +62,7 @@ import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologySnapshot;
import org.apache.ignite.internal.lang.InternalTuple;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.schema.SchemaTestUtils;
import org.apache.ignite.internal.systemview.api.SystemView;
@@ -111,7 +112,7 @@ public class SystemViewManagerTest extends BaseIgniteAbstractTest {
@Test
public void registerAfterStartFails() {
- assertThat(viewMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertThrows(IllegalStateException.class, () -> viewMgr.register(() -> List.of(dummyView("test"))));
verifyNoInteractions(catalog);
@@ -125,21 +126,21 @@ public class SystemViewManagerTest extends BaseIgniteAbstractTest {
viewMgr.register(() -> List.of(dummyView("test")));
- assertThat(viewMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
verify(catalog, times(1)).execute(anyList());
reset(catalog);
- assertThrows(IllegalStateException.class, viewMgr::startAsync);
+ assertThrows(IllegalStateException.class, () -> viewMgr.startAsync(new ComponentContext()));
- assertThrows(IllegalStateException.class, viewMgr::startAsync);
+ assertThrows(IllegalStateException.class, () -> viewMgr.startAsync(new ComponentContext()));
verifyNoMoreInteractions(catalog);
}
@Test
public void registrationCompletesWithoutViews() {
- assertThat(viewMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
verifyNoMoreInteractions(catalog);
@@ -156,7 +157,7 @@ public class SystemViewManagerTest extends BaseIgniteAbstractTest {
when(catalog.execute(anyList())).thenReturn(nullCompletedFuture());
viewMgr.register(() -> List.of(dummyView("test", type)));
- assertThat(viewMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
verify(catalog, times(1)).execute(anyList());
assertTrue(viewMgr.completeRegistration().isDone());
@@ -172,7 +173,7 @@ public class SystemViewManagerTest extends BaseIgniteAbstractTest {
viewMgr.register(() -> List.of(dummyView("test")));
- assertThat(viewMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
verify(catalog, times(1)).execute(anyList());
@@ -192,7 +193,7 @@ public class SystemViewManagerTest extends BaseIgniteAbstractTest {
assertThat(viewMgr.nodeAttributes(), aMapWithSize(0));
- assertThat(viewMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(viewMgr.nodeAttributes(), is(Map.of(NODE_ATTRIBUTES_KEY, String.join(NODE_ATTRIBUTES_LIST_SEPARATOR, name1.toUpperCase(
Locale.ROOT), name2.toUpperCase(Locale.ROOT)))));
@@ -200,22 +201,22 @@ public class SystemViewManagerTest extends BaseIgniteAbstractTest {
@Test
public void registrationFutureCompletesWhenComponentStops() {
- assertThat(viewMgr.stopAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.stopAsync(new ComponentContext()), willCompleteSuccessfully());
assertThat(viewMgr.completeRegistration(), willThrowFast(NodeStoppingException.class));
}
@Test
public void startAfterStopFails() {
- assertThat(viewMgr.stopAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.stopAsync(new ComponentContext()), willCompleteSuccessfully());
//noinspection ThrowableNotThrown
- assertThrowsWithCause(viewMgr::startAsync, NodeStoppingException.class);
+ assertThrowsWithCause(() -> viewMgr.startAsync(new ComponentContext()), NodeStoppingException.class);
}
@Test
public void registerAfterStopFails() {
- assertThat(viewMgr.stopAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.stopAsync(new ComponentContext()), willCompleteSuccessfully());
//noinspection ThrowableNotThrown
assertThrowsWithCause(() -> viewMgr.register(() -> List.of(dummyView("test"))), NodeStoppingException.class);
@@ -223,8 +224,8 @@ public class SystemViewManagerTest extends BaseIgniteAbstractTest {
@Test
public void stopAfterStopDoesNothing() {
- assertThat(viewMgr.stopAsync(), willCompleteSuccessfully());
- assertThat(viewMgr.stopAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.stopAsync(new ComponentContext()), willCompleteSuccessfully());
+ assertThat(viewMgr.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
@@ -292,7 +293,7 @@ public class SystemViewManagerTest extends BaseIgniteAbstractTest {
.build()
));
- assertThat(viewMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(viewMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
{
DrainAllSubscriber<InternalTuple> subs = new DrainAllSubscriber<>();
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicaUnavailableTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicaUnavailableTest.java
index f5f4fede06..92f1284085 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicaUnavailableTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicaUnavailableTest.java
@@ -53,6 +53,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.NodeStoppingException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.placementdriver.TestPlacementDriver;
@@ -161,14 +162,14 @@ public class ReplicaUnavailableTest extends IgniteAbstractTest {
new NoOpFailureProcessor()
);
- assertThat(replicaManager.startAsync(), willCompleteSuccessfully());
+ assertThat(replicaManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
public void teardown() {
IgniteUtils.shutdownAndAwaitTermination(requestsExecutor, 10, TimeUnit.SECONDS);
- assertThat(clusterService.stopAsync(), willCompleteSuccessfully());
+ assertThat(clusterService.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
public ReplicaUnavailableTest(TestInfo testInfo) {
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicasSafeTimePropagationTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicasSafeTimePropagationTest.java
index f0475da81f..812f4989ad 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicasSafeTimePropagationTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicasSafeTimePropagationTest.java
@@ -46,6 +46,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.lang.SafeTimeReorderException;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.network.utils.ClusterServiceTestUtils;
@@ -259,7 +260,7 @@ public class ReplicasSafeTimePropagationTest extends IgniteAbstractTest {
CompletableFuture<Void> start() throws Exception {
clusterService = ClusterServiceTestUtils.clusterService(nodeName, port.getAndIncrement(), NODE_FINDER);
- assertThat(clusterService.startAsync(), willCompleteSuccessfully());
+ assertThat(clusterService.startAsync(new ComponentContext()), willCompleteSuccessfully());
raftManager = TestLozaFactory.create(
clusterService,
@@ -269,7 +270,7 @@ public class ReplicasSafeTimePropagationTest extends IgniteAbstractTest {
new RaftGroupEventsClientListener()
);
- assertThat(raftManager.startAsync(), willCompleteSuccessfully());
+ assertThat(raftManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
TxManager txManagerMock = mock(TxManager.class);
@@ -301,8 +302,10 @@ public class ReplicasSafeTimePropagationTest extends IgniteAbstractTest {
raftManager == null ? null : () -> raftManager.stopRaftNodes(GROUP_ID),
raftManager == null ? null : raftManager::beforeNodeStop,
clusterService == null ? null : clusterService::beforeNodeStop,
- raftManager == null ? null : () -> assertThat(raftManager.stopAsync(), willCompleteSuccessfully()),
- clusterService == null ? null : () -> assertThat(clusterService.stopAsync(), willCompleteSuccessfully())
+ raftManager == null ? null :
+ () -> assertThat(raftManager.stopAsync(new ComponentContext()), willCompleteSuccessfully()),
+ clusterService == null ? null :
+ () -> assertThat(clusterService.stopAsync(new ComponentContext()), willCompleteSuccessfully())
);
}
}
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
index 9794f31071..39453a5142 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
@@ -129,6 +129,7 @@ import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.lowwatermark.LowWatermarkImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
@@ -1334,9 +1335,10 @@ public class ItRebalanceDistributedTest extends BaseIgniteAbstractTest {
cmgManager
);
+ ComponentContext componentContext = new ComponentContext();
List<CompletableFuture<?>> componentFuts =
firstComponents.stream()
- .map(IgniteComponent::startAsync)
+ .map(component -> component.startAsync(componentContext))
.collect(Collectors.toList());
nodeComponents.addAll(firstComponents);
@@ -1357,7 +1359,9 @@ public class ItRebalanceDistributedTest extends BaseIgniteAbstractTest {
indexManager
);
- componentFuts.addAll(secondComponents.stream().map(IgniteComponent::startAsync).collect(Collectors.toList()));
+ componentFuts.addAll(secondComponents.stream()
+ .map(component -> component.startAsync(componentContext))
+ .collect(Collectors.toList()));
nodeComponents.addAll(secondComponents);
@@ -1399,7 +1403,7 @@ public class ItRebalanceDistributedTest extends BaseIgniteAbstractTest {
}
}
- assertThat(stopAsync(components), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), components), willCompleteSuccessfully());
nodeCfgGenerator.close();
clusterCfgGenerator.close();
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
index 36e61a1d87..c06ff4e866 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
@@ -66,6 +66,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.IgniteBiTuple;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
@@ -205,7 +206,7 @@ public class ItColocationTest extends BaseIgniteAbstractTest {
}
};
- assertThat(txManager.startAsync(), willCompleteSuccessfully());
+ assertThat(txManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
Int2ObjectMap<RaftGroupService> partRafts = new Int2ObjectOpenHashMap<>();
Map<ReplicationGroupId, RaftGroupService> groupRafts = new HashMap<>();
@@ -318,7 +319,7 @@ public class ItColocationTest extends BaseIgniteAbstractTest {
@AfterAll
static void afterAllTests() {
if (txManager != null) {
- assertThat(txManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(txManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
index dec713da93..a239a046f4 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
@@ -127,6 +127,7 @@ import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.lowwatermark.LowWatermark;
import org.apache.ignite.internal.lowwatermark.event.ChangeLowWatermarkEventParameters;
import org.apache.ignite.internal.lowwatermark.event.LowWatermarkEvent;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.marshaller.ReflectionMarshallersProvider;
import org.apache.ignite.internal.metastorage.Entry;
@@ -385,7 +386,7 @@ public class TableManager implements IgniteTablesInternal, IgniteComponent {
/** Versioned value used only at manager startup to correctly fire table creation events. */
private final IncrementalVersionedValue<Void> startVv;
- /** Ends at the {@link #stopAsync()} with an {@link NodeStoppingException}. */
+ /** Ends at the {@link IgniteComponent#stopAsync(ComponentContext)} with an {@link NodeStoppingException}. */
private final CompletableFuture<Void> stopManagerFuture = new CompletableFuture<>();
/** Configuration for {@link StorageUpdateHandler}. */
@@ -588,7 +589,7 @@ public class TableManager implements IgniteTablesInternal, IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return inBusyLockAsync(busyLock, () -> {
mvGc.start();
@@ -1179,7 +1180,7 @@ public class TableManager implements IgniteTablesInternal, IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
assert beforeStopGuard.get() : "'stop' called before 'beforeNodeStop'";
if (!stopGuard.compareAndSet(false, true)) {
@@ -2524,8 +2525,8 @@ public class TableManager implements IgniteTablesInternal, IgniteComponent {
/**
* Returns the future that will complete when, either the future from the argument or {@link #stopManagerFuture} will complete,
- * successfully or exceptionally. Allows to protect from getting stuck at {@link #stopAsync()} when someone is blocked (by using
- * {@link #busyLock}) for a long time.
+ * successfully or exceptionally. Allows to protect from getting stuck at {@link IgniteComponent#stopAsync(ComponentContext)}
+ * when someone is blocked (by using {@link #busyLock}) for a long time.
*
* @param future Future.
*/
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
index 6b2cbb8004..8aac7ce46a 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
@@ -62,6 +62,7 @@ import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
@@ -185,7 +186,7 @@ public class DisasterRecoveryManager implements IgniteComponent, SystemViewProvi
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
messagingService.addMessageHandler(TableMessageGroup.class, this::handleMessage);
metaStorageManager.registerExactWatch(RECOVERY_TRIGGER_KEY, watchListener);
@@ -194,7 +195,7 @@ public class DisasterRecoveryManager implements IgniteComponent, SystemViewProvi
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
metaStorageManager.unregisterWatch(watchListener);
for (CompletableFuture<Void> future : ongoingOperationsById.values()) {
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/OutgoingSnapshotsManager.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/OutgoingSnapshotsManager.java
index 86481e3b4c..dc29da9b97 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/OutgoingSnapshotsManager.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/OutgoingSnapshotsManager.java
@@ -36,6 +36,7 @@ import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.NetworkMessage;
@@ -103,7 +104,7 @@ public class OutgoingSnapshotsManager implements PartitionsSnapshots, IgniteComp
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
executor = new ThreadPoolExecutor(
0, 4, 0L, MILLISECONDS,
new LinkedBlockingQueue<>(),
@@ -116,7 +117,7 @@ public class OutgoingSnapshotsManager implements PartitionsSnapshots, IgniteComp
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
// At this moment, all RAFT groups should already be stopped, so all snapshots are already closed and finished.
IgniteUtils.shutdownAndAwaitTermination(executor, 10, TimeUnit.SECONDS);
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/CatalogStorageIndexDescriptorSupplierTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/CatalogStorageIndexDescriptorSupplierTest.java
index 53578a6925..0994104c57 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/CatalogStorageIndexDescriptorSupplierTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/CatalogStorageIndexDescriptorSupplierTest.java
@@ -44,6 +44,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.schema.configuration.LowWatermarkConfiguration;
import org.apache.ignite.internal.sql.SqlCommon;
import org.apache.ignite.internal.storage.index.StorageIndexDescriptor;
@@ -94,12 +95,12 @@ class CatalogStorageIndexDescriptorSupplierTest extends BaseIgniteAbstractTest {
indexDescriptorSupplier = new CatalogStorageIndexDescriptorSupplier(catalogManager, lowWatermark);
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void tearDown() {
- assertThat(catalogManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
index 29c997c860..d8233857e3 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
@@ -73,6 +73,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
@@ -359,10 +360,11 @@ public class TableManagerRecoveryTest extends IgniteAbstractTest {
}
};
+ ComponentContext componentContext = new ComponentContext();
assertThat(
- metaStorageManager.startAsync()
+ metaStorageManager.startAsync(componentContext)
.thenCompose(unused -> metaStorageManager.recoveryFinishedFuture())
- .thenCompose(unused -> startAsync(catalogManager, sm, tableManager))
+ .thenCompose(unused -> startAsync(componentContext, catalogManager, sm, tableManager))
.thenCompose(unused -> ((MetaStorageManagerImpl) metaStorageManager).notifyRevisionUpdateListenerOnStart())
.thenCompose(unused -> metaStorageManager.deployWatches()),
willCompleteSuccessfully()
@@ -373,16 +375,19 @@ public class TableManagerRecoveryTest extends IgniteAbstractTest {
* Stops TableManager and dependencies.
*/
private void stopComponents() throws Exception {
+ ComponentContext componentContext = new ComponentContext();
if (tableManager != null) {
tableManager.beforeNodeStop();
- assertThat(tableManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(tableManager.stopAsync(componentContext), willCompleteSuccessfully());
}
closeAll(
- dsm == null ? null : () -> assertThat(dsm.stopAsync(), willCompleteSuccessfully()),
- sm == null ? null : () -> assertThat(sm.stopAsync(), willCompleteSuccessfully()),
- catalogManager == null ? null : () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()),
- metaStorageManager == null ? null : () -> assertThat(metaStorageManager.stopAsync(), willCompleteSuccessfully()),
+ dsm == null ? null : () -> assertThat(dsm.stopAsync(componentContext), willCompleteSuccessfully()),
+ sm == null ? null : () -> assertThat(sm.stopAsync(componentContext), willCompleteSuccessfully()),
+ catalogManager == null ? null :
+ () -> assertThat(catalogManager.stopAsync(componentContext), willCompleteSuccessfully()),
+ metaStorageManager == null ? null :
+ () -> assertThat(metaStorageManager.stopAsync(componentContext), willCompleteSuccessfully()),
partitionOperationsExecutor == null ? null
: () -> IgniteUtils.shutdownAndAwaitTermination(partitionOperationsExecutor, 10, TimeUnit.SECONDS)
);
@@ -410,7 +415,7 @@ public class TableManagerRecoveryTest extends IgniteAbstractTest {
config
);
- assertThat(manager.startAsync(), willCompleteSuccessfully());
+ assertThat(manager.startAsync(new ComponentContext()), willCompleteSuccessfully());
return manager;
}
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
index 7a28e3af90..a99730b527 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
@@ -94,6 +94,7 @@ import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.lang.IgniteBiTuple;
import org.apache.ignite.internal.lang.NodeStoppingException;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.dsl.Operation;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
@@ -261,7 +262,7 @@ public class TableManagerTest extends IgniteAbstractTest {
catalogMetastore = StandaloneMetaStorageManager.create(new SimpleInMemoryKeyValueStorage(NODE_NAME));
catalogManager = CatalogTestUtils.createTestCatalogManager(NODE_NAME, clock, catalogMetastore);
- assertThat(startAsync(catalogMetastore, catalogManager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), catalogMetastore, catalogManager), willCompleteSuccessfully());
revisionUpdater = (LongFunction<CompletableFuture<?>> function) -> catalogMetastore.registerRevisionUpdateListener(function::apply);
@@ -296,17 +297,20 @@ public class TableManagerTest extends IgniteAbstractTest {
@AfterEach
void after() throws Exception {
+ ComponentContext componentContext = new ComponentContext();
closeAll(
() -> {
assertTrue(tblManagerFut.isDone());
tblManagerFut.join().beforeNodeStop();
- assertThat(tblManagerFut.join().stopAsync(), willCompleteSuccessfully());
+ assertThat(tblManagerFut.join().stopAsync(componentContext), willCompleteSuccessfully());
},
- dsm == null ? null : () -> assertThat(dsm.stopAsync(), willCompleteSuccessfully()),
- sm == null ? null : () -> assertThat(sm.stopAsync(), willCompleteSuccessfully()),
- catalogManager == null ? null : () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()),
- catalogMetastore == null ? null : () -> assertThat(catalogMetastore.stopAsync(), willCompleteSuccessfully()),
+ dsm == null ? null : () -> assertThat(dsm.stopAsync(componentContext), willCompleteSuccessfully()),
+ sm == null ? null : () -> assertThat(sm.stopAsync(componentContext), willCompleteSuccessfully()),
+ catalogManager == null ? null :
+ () -> assertThat(catalogManager.stopAsync(componentContext), willCompleteSuccessfully()),
+ catalogMetastore == null ? null :
+ () -> assertThat(catalogMetastore.stopAsync(componentContext), willCompleteSuccessfully()),
partitionOperationsExecutor == null ? null
: () -> IgniteUtils.shutdownAndAwaitTermination(partitionOperationsExecutor, 10, TimeUnit.SECONDS)
);
@@ -448,7 +452,7 @@ public class TableManagerTest extends IgniteAbstractTest {
TableManager tableManager = tblManagerFut.join();
tableManager.beforeNodeStop();
- assertThat(tableManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(tableManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
assertThrowsWithCause(tableManager::tables, NodeStoppingException.class);
assertThrowsWithCause(() -> tableManager.table(DYNAMIC_TABLE_FOR_DROP_NAME), NodeStoppingException.class);
@@ -468,7 +472,7 @@ public class TableManagerTest extends IgniteAbstractTest {
TableManager tableManager = tblManagerFut.join();
tableManager.beforeNodeStop();
- assertThat(tableManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(tableManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
int fakeTblId = 1;
assertThrowsWithCause(() -> tableManager.table(fakeTblId), NodeStoppingException.class);
@@ -563,7 +567,7 @@ public class TableManagerTest extends IgniteAbstractTest {
mockDoThrow.run();
tableManager.beforeNodeStop();
- assertThat(tableManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(tableManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
verify(rm, times(PARTITIONS)).stopRaftNodes(any());
verify(replicaMgr, times(PARTITIONS)).stopReplica(any());
@@ -847,7 +851,7 @@ public class TableManagerTest extends IgniteAbstractTest {
}
};
- assertThat(startAsync(sm, tableManager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), sm, tableManager), willCompleteSuccessfully());
tblManagerFut.complete(tableManager);
@@ -876,7 +880,7 @@ public class TableManagerTest extends IgniteAbstractTest {
storageConfiguration
);
- assertThat(manager.startAsync(), willCompleteSuccessfully());
+ assertThat(manager.startAsync(new ComponentContext()), willCompleteSuccessfully());
return manager;
}
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableUtilsTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableUtilsTest.java
index 5f350065a7..a57cf2a504 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableUtilsTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableUtilsTest.java
@@ -51,6 +51,7 @@ import org.apache.ignite.internal.catalog.CatalogTestUtils;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.sql.SqlCommon;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.jetbrains.annotations.Nullable;
@@ -66,14 +67,14 @@ public class TableUtilsTest extends IgniteAbstractTest {
@BeforeEach
void setUp() {
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
void tearDown() throws Exception {
closeAll(
catalogManager::beforeNodeStop,
- () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully())
+ () -> assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully())
);
}
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/FullStateTransferIndexChooserTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/FullStateTransferIndexChooserTest.java
index 35acee97de..c87371cb66 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/FullStateTransferIndexChooserTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/FullStateTransferIndexChooserTest.java
@@ -54,6 +54,7 @@ import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.sql.SqlCommon;
import org.apache.ignite.internal.table.TableTestUtils;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
@@ -89,7 +90,7 @@ public class FullStateTransferIndexChooserTest extends BaseIgniteAbstractTest {
indexChooser = new FullStateTransferIndexChooser(catalogManager, lowWatermark);
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
indexChooser.start();
@@ -101,7 +102,7 @@ public class FullStateTransferIndexChooserTest extends BaseIgniteAbstractTest {
closeAllManually(
indexChooser,
catalogManager::beforeNodeStop,
- () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully())
+ () -> assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully())
);
}
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtilsTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtilsTest.java
index 60cc7b519d..0bb3200352 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtilsTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/snapshot/outgoing/SnapshotMetaUtilsTest.java
@@ -44,6 +44,7 @@ import java.util.UUID;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.storage.RowId;
import org.apache.ignite.internal.table.distributed.raft.RaftGroupConfiguration;
import org.apache.ignite.internal.table.distributed.raft.snapshot.PartitionAccess;
@@ -93,7 +94,7 @@ class SnapshotMetaUtilsTest extends BaseIgniteAbstractTest {
CatalogManager catalogManager = createCatalogManagerWithTestUpdateLog("test", clock);
try {
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
String indexName0 = INDEX_NAME + 0;
String indexName1 = INDEX_NAME + 1;
@@ -126,7 +127,10 @@ class SnapshotMetaUtilsTest extends BaseIgniteAbstractTest {
is(Map.of(indexId2, nextRowIdToBuildIndex2.uuid()))
);
} finally {
- closeAll(catalogManager::beforeNodeStop, () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()));
+ closeAll(
+ catalogManager::beforeNodeStop,
+ () -> assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully())
+ );
}
}
}
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replicator/ReplicatorUtilsTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replicator/ReplicatorUtilsTest.java
index bf1bc68fc3..993dada457 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replicator/ReplicatorUtilsTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replicator/ReplicatorUtilsTest.java
@@ -48,6 +48,7 @@ import org.apache.ignite.internal.catalog.CatalogTestUtils;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.table.distributed.replication.request.ReadWriteReplicaRequest;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.junit.jupiter.api.Test;
@@ -138,12 +139,15 @@ public class ReplicatorUtilsTest extends IgniteAbstractTest {
private void withCatalogManager(Consumer<CatalogManager> consumer) throws Exception {
CatalogManager catalogManager = CatalogTestUtils.createCatalogManagerWithTestUpdateLog("test-node", clock);
- assertThat(catalogManager.startAsync(), willCompleteSuccessfully());
+ assertThat(catalogManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
try {
consumer.accept(catalogManager);
} finally {
- closeAll(catalogManager::beforeNodeStop, () -> assertThat(catalogManager.stopAsync(), willCompleteSuccessfully()));
+ closeAll(
+ catalogManager::beforeNodeStop,
+ () -> assertThat(catalogManager.stopAsync(new ComponentContext()), willCompleteSuccessfully())
+ );
}
}
diff --git a/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java b/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
index 2ba9208dd8..d1a9fcc49b 100644
--- a/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
+++ b/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
@@ -83,6 +83,7 @@ import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.lowwatermark.LowWatermark;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NodeFinder;
import org.apache.ignite.internal.network.StaticNodeFinder;
@@ -393,7 +394,7 @@ public class ItTxTestCluster {
clock
);
- assertThat(raftSrv.startAsync(), willCompleteSuccessfully());
+ assertThat(raftSrv.startAsync(new ComponentContext()), willCompleteSuccessfully());
raftServers.put(node.name(), raftSrv);
@@ -413,7 +414,7 @@ public class ItTxTestCluster {
new NoOpFailureProcessor()
);
- assertThat(replicaMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(replicaMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
replicaManagers.put(node.name(), replicaMgr);
@@ -458,10 +459,10 @@ public class ItTxTestCluster {
txMgr
);
- assertThat(txMgr.startAsync(), willCompleteSuccessfully());
+ assertThat(txMgr.startAsync(new ComponentContext()), willCompleteSuccessfully());
txManagers.put(node.name(), txMgr);
- assertThat(resourceVacuumManager.startAsync(), willCompleteSuccessfully());
+ assertThat(resourceVacuumManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
resourceCleanupManagers.put(node.name(), resourceVacuumManager);
txStateStorages.put(node.name(), new TestTxStateStorage());
@@ -876,10 +877,10 @@ public class ItTxTestCluster {
*
*/
public void shutdownCluster() {
- assertThat(stopAsync(cluster), willCompleteSuccessfully());
+ assertThat(stopAsync(new ComponentContext(), cluster), willCompleteSuccessfully());
if (client != null) {
- assertThat(client.stopAsync(), willCompleteSuccessfully());
+ assertThat(client.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
if (executor != null) {
@@ -916,29 +917,29 @@ public class ItTxTestCluster {
}
});
- assertThat(replicaMgr.stopAsync(), willCompleteSuccessfully());
- assertThat(rs.stopAsync(), willCompleteSuccessfully());
+ assertThat(replicaMgr.stopAsync(new ComponentContext()), willCompleteSuccessfully());
+ assertThat(rs.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
if (resourceCleanupManagers != null) {
for (ResourceVacuumManager resourceVacuumManager : resourceCleanupManagers.values()) {
- assertThat(resourceVacuumManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(resourceVacuumManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
if (clientResourceVacuumManager != null) {
- assertThat(clientResourceVacuumManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(clientResourceVacuumManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
if (txManagers != null) {
for (TxManager txMgr : txManagers.values()) {
- assertThat(txMgr.stopAsync(), willCompleteSuccessfully());
+ assertThat(txMgr.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
}
if (clientTxManager != null) {
- assertThat(clientTxManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(clientTxManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
for (Map.Entry<String, List<RaftGroupService>> e : raftClients.entrySet()) {
@@ -960,7 +961,7 @@ public class ItTxTestCluster {
NodeFinder nodeFinder) {
var network = ClusterServiceTestUtils.clusterService(testInfo, port, nodeFinder);
- assertThat(network.startAsync(), willCompleteSuccessfully());
+ assertThat(network.startAsync(new ComponentContext()), willCompleteSuccessfully());
return network;
}
@@ -1034,7 +1035,7 @@ public class ItTxTestCluster {
);
clientTxStateResolver.start();
- assertThat(startAsync(clientTxManager, clientResourceVacuumManager), willCompleteSuccessfully());
+ assertThat(startAsync(new ComponentContext(), clientTxManager, clientResourceVacuumManager), willCompleteSuccessfully());
}
public Map<String, Loza> raftServers() {
diff --git a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/TxAbstractTest.java b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/TxAbstractTest.java
index 903b5e27f8..70aa94925b 100644
--- a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/TxAbstractTest.java
+++ b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/TxAbstractTest.java
@@ -61,6 +61,7 @@ import java.util.function.Consumer;
import org.apache.ignite.distributed.ItTxTestCluster;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NodeFinder;
import org.apache.ignite.internal.network.utils.ClusterServiceTestUtils;
@@ -263,7 +264,7 @@ public abstract class TxAbstractTest extends IgniteAbstractTest {
NodeFinder nodeFinder) {
var network = ClusterServiceTestUtils.clusterService(testInfo, port, nodeFinder);
- assertThat(network.startAsync(), willCompleteSuccessfully());
+ assertThat(network.startAsync(new ComponentContext()), willCompleteSuccessfully());
return network;
}
diff --git a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
index a3a5fecf9d..f127d66ac7 100644
--- a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
+++ b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
@@ -51,6 +51,7 @@ import org.apache.ignite.internal.hlc.TestClockService;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.AbstractMessagingService;
import org.apache.ignite.internal.network.ChannelType;
import org.apache.ignite.internal.network.ClusterNodeImpl;
@@ -487,7 +488,7 @@ public class DummyInternalTableImpl extends InternalTableImpl {
new TestLowWatermark()
);
- assertThat(txManager.startAsync(), willCompleteSuccessfully());
+ assertThat(txManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
return txManager;
}
diff --git a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/ResourceVacuumManager.java b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/ResourceVacuumManager.java
index b355ef80b6..b956260ed8 100644
--- a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/ResourceVacuumManager.java
+++ b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/ResourceVacuumManager.java
@@ -29,6 +29,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.ignite.internal.lang.IgniteSystemProperties;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.thread.NamedThreadFactory;
@@ -105,7 +106,7 @@ public class ResourceVacuumManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
if (resourceVacuumIntervalMilliseconds > 0) {
resourceVacuumExecutor.scheduleAtFixedRate(
this::runVacuumOperations,
@@ -128,7 +129,7 @@ public class ResourceVacuumManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
busyLock.block();
shutdownAndAwaitTermination(resourceVacuumExecutor, 10, TimeUnit.SECONDS);
diff --git a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
index a8c8414f28..e3ee44521b 100644
--- a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
+++ b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
@@ -72,6 +72,7 @@ import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.lowwatermark.LowWatermark;
import org.apache.ignite.internal.lowwatermark.event.ChangeLowWatermarkEventParameters;
import org.apache.ignite.internal.lowwatermark.event.LowWatermarkEvent;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.NetworkMessage;
@@ -757,7 +758,7 @@ public class TxManagerImpl implements TxManager, NetworkMessageHandler {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
return inBusyLockAsync(busyLock, () -> {
localNodeId = topologyService.localMember().id();
@@ -792,7 +793,7 @@ public class TxManagerImpl implements TxManager, NetworkMessageHandler {
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
if (!stopGuard.compareAndSet(false, true)) {
return nullCompletedFuture();
}
diff --git a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxManagerTest.java b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxManagerTest.java
index 74f1604ecc..099d2fbeca 100644
--- a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxManagerTest.java
+++ b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxManagerTest.java
@@ -67,6 +67,7 @@ import org.apache.ignite.internal.lang.IgniteBiTuple;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.lowwatermark.TestLowWatermark;
import org.apache.ignite.internal.lowwatermark.event.LowWatermarkEvent;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
@@ -168,14 +169,14 @@ public class TxManagerTest extends IgniteAbstractTest {
lowWatermark
);
- assertThat(txManager.startAsync(), willCompleteSuccessfully());
+ assertThat(txManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
@AfterEach
public void tearDown() {
txManager.beforeNodeStop();
- assertThat(txManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(txManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
@Test
diff --git a/modules/vault/src/main/java/org/apache/ignite/internal/vault/VaultManager.java b/modules/vault/src/main/java/org/apache/ignite/internal/vault/VaultManager.java
index e6162e9d4f..10264fe3e2 100644
--- a/modules/vault/src/main/java/org/apache/ignite/internal/vault/VaultManager.java
+++ b/modules/vault/src/main/java/org/apache/ignite/internal/vault/VaultManager.java
@@ -23,6 +23,7 @@ import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFu
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.lang.ByteArray;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.util.Cursor;
import org.jetbrains.annotations.Nullable;
@@ -47,14 +48,14 @@ public class VaultManager implements IgniteComponent {
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
vaultSvc.start();
return nullCompletedFuture();
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
// TODO: IGNITE-15161 Implement component's stop.
vaultSvc.close();
diff --git a/modules/vault/src/test/java/org/apache/ignite/internal/vault/VaultManagerTest.java b/modules/vault/src/test/java/org/apache/ignite/internal/vault/VaultManagerTest.java
index 4ac8a157ee..86f20d59fb 100644
--- a/modules/vault/src/test/java/org/apache/ignite/internal/vault/VaultManagerTest.java
+++ b/modules/vault/src/test/java/org/apache/ignite/internal/vault/VaultManagerTest.java
@@ -24,6 +24,7 @@ import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.vault.inmemory.InMemoryVaultService;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -37,7 +38,7 @@ public class VaultManagerTest {
@BeforeEach
void setUp() {
- assertThat(vaultManager.startAsync(), willCompleteSuccessfully());
+ assertThat(vaultManager.startAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
@@ -47,7 +48,7 @@ public class VaultManagerTest {
void tearDown() {
vaultManager.beforeNodeStop();
- assertThat(vaultManager.stopAsync(), willCompleteSuccessfully());
+ assertThat(vaultManager.stopAsync(new ComponentContext()), willCompleteSuccessfully());
}
/**
diff --git a/modules/workers/src/main/java/org/apache/ignite/internal/worker/CriticalWorkerWatchdog.java b/modules/workers/src/main/java/org/apache/ignite/internal/worker/CriticalWorkerWatchdog.java
index 1a7b232050..1c9178d999 100644
--- a/modules/workers/src/main/java/org/apache/ignite/internal/worker/CriticalWorkerWatchdog.java
+++ b/modules/workers/src/main/java/org/apache/ignite/internal/worker/CriticalWorkerWatchdog.java
@@ -39,6 +39,7 @@ import org.apache.ignite.internal.failure.FailureContext;
import org.apache.ignite.internal.failure.FailureProcessor;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.worker.configuration.CriticalWorkersConfiguration;
import org.apache.ignite.lang.IgniteException;
@@ -99,7 +100,7 @@ public class CriticalWorkerWatchdog implements CriticalWorkerRegistry, IgniteCom
}
@Override
- public CompletableFuture<Void> startAsync() {
+ public CompletableFuture<Void> startAsync(ComponentContext componentContext) {
long livenessCheckIntervalMs = configuration.livenessCheckInterval().value();
livenessProbeTaskFuture = scheduler.scheduleAtFixedRate(
@@ -252,7 +253,7 @@ public class CriticalWorkerWatchdog implements CriticalWorkerRegistry, IgniteCom
}
@Override
- public CompletableFuture<Void> stopAsync() {
+ public CompletableFuture<Void> stopAsync(ComponentContext componentContext) {
ScheduledFuture<?> taskFuture = livenessProbeTaskFuture;
if (taskFuture != null) {
taskFuture.cancel(false);