public BenchmarksResource(AtlasDbConfig config) { this.txnManager = TransactionManagers.builder() .config(config) .userAgent(UserAgents.DEFAULT_USER_AGENT) .globalMetricsRegistry(new MetricRegistry()) .globalTaggedMetricRegistry(new DefaultTaggedMetricRegistry()) .addSchemas(BenchmarksSchema.SCHEMA) .allowHiddenTableAccess(true) .runtimeConfigSupplier(Optional::empty) .build().serializable(); }
@Test public void asyncInitializationEventuallySucceeds() { AtlasDbConfig atlasDbConfig = ImmutableAtlasDbConfig.builder() .keyValueService(new InMemoryAsyncAtlasDbConfig()) .initializeAsync(true) .build(); TransactionManager manager = TransactionManagers.builder() .config(atlasDbConfig) .userAgent("test") .globalMetricsRegistry(new MetricRegistry()) .globalTaggedMetricRegistry(DefaultTaggedMetricRegistry.getDefault()) .registrar(environment) .addSchemas(GenericTestSchema.getSchema()) .build() .serializable(); assertFalse(manager.isInitialized()); assertThatThrownBy(() -> manager.runTaskWithRetry(unused -> null)).isInstanceOf(NotInitializedException.class); Awaitility.await().atMost(12, TimeUnit.SECONDS).until(manager::isInitialized); performTransaction(manager); }
@Test public void asyncInitializationIsSynchronousIfKvsIsReady() { AtlasDbConfig atlasDbConfig = ImmutableAtlasDbConfig.builder() .keyValueService(new InMemoryAtlasDbConfig()) .initializeAsync(true) .build(); TransactionManager manager = TransactionManagers.builder() .config(atlasDbConfig) .userAgent("test") .globalMetricsRegistry(new MetricRegistry()) .globalTaggedMetricRegistry(DefaultTaggedMetricRegistry.getDefault()) .registrar(environment) .addSchemas(GenericTestSchema.getSchema()) .build() .serializable(); assertTrue(manager.isInitialized()); performTransaction(manager); }