@Provides @Singleton public TransactionManagers.LockAndTimestampServices provideLockAndTimestampServices( MetricsManager metricsManager, ServicesConfig config) { ServiceDiscoveringAtlasSupplier atlasSupplier = config.atlasDbSupplier(metricsManager); com.google.common.base.Supplier<TimestampService> timestampService = Suppliers.memoize(atlasSupplier::getTimestampService); com.google.common.base.Supplier<TimestampManagementService> timestampManagementService = () -> atlasSupplier.getTimestampManagementService(timestampService.get()); return TransactionManagers.createLockAndTimestampServicesForCli( metricsManager, config.atlasDbConfig(), config::atlasDbRuntimeConfig, resource -> { }, LockServiceImpl::create, timestampService, timestampManagementService, config.atlasDbSupplier(metricsManager).getTimestampStoreInvalidator(), "cli"); }
@Provides @Singleton public TransactionManagers.LockAndTimestampServices provideLockAndTimestampServices( MetricsManager metricsManager, ServicesConfig config) { ServiceDiscoveringAtlasSupplier atlasSupplier = config.atlasDbSupplier(metricsManager); com.google.common.base.Supplier<TimestampService> timestampService = Suppliers.memoize(atlasSupplier::getTimestampService); com.google.common.base.Supplier<TimestampManagementService> timestampManagementService = () -> atlasSupplier.getTimestampManagementService(timestampService.get()); return TransactionManagers.createLockAndTimestampServicesForCli( metricsManager, config.atlasDbConfig(), config::atlasDbRuntimeConfig, resource -> { }, LockServiceImpl::create, timestampService, timestampManagementService, config.atlasDbSupplier(metricsManager).getTimestampStoreInvalidator(), "cli"); }