Search in sources :

Example 1 with TracingVersionStore

use of org.projectnessie.versioned.TracingVersionStore in project nessie by projectnessie.

the class DatabaseAdapterExtension method resolve.

private Object resolve(NessieDbAdapter nessieDbAdapter, AnnotatedElement annotatedElement, Class<?> type, ExtensionContext context, ParameterContext parameterContext, boolean canReinit, Consumer<DatabaseAdapter> newAdapter) {
    StoreWorker<?, ?, ?> storeWorker = createStoreWorker(nessieDbAdapter);
    DatabaseAdapter databaseAdapter = createAdapterResource(nessieDbAdapter, context, parameterContext, storeWorker);
    if (nessieDbAdapter.withTracing()) {
        databaseAdapter = new TracingDatabaseAdapter(databaseAdapter);
    }
    if (canReinit && nessieDbAdapter.initializeRepo()) {
        reinit(databaseAdapter);
    }
    Object assign;
    if (type.isAssignableFrom(DatabaseAdapter.class)) {
        assign = databaseAdapter;
    } else if (type.isAssignableFrom(VersionStore.class)) {
        VersionStore<?, ?, ?> store = createStore(databaseAdapter, storeWorker);
        if (nessieDbAdapter.withTracing()) {
            store = new TracingVersionStore<>(store);
        }
        assign = store;
    } else {
        throw new IllegalStateException("Cannot assign to " + annotatedElement);
    }
    newAdapter.accept(databaseAdapter);
    return assign;
}
Also used : TracingDatabaseAdapter(org.projectnessie.versioned.persist.adapter.spi.TracingDatabaseAdapter) TracingVersionStore(org.projectnessie.versioned.TracingVersionStore) TracingDatabaseAdapter(org.projectnessie.versioned.persist.adapter.spi.TracingDatabaseAdapter) DatabaseAdapter(org.projectnessie.versioned.persist.adapter.DatabaseAdapter) VersionStore(org.projectnessie.versioned.VersionStore) PersistVersionStore(org.projectnessie.versioned.persist.store.PersistVersionStore) TracingVersionStore(org.projectnessie.versioned.TracingVersionStore)

Aggregations

TracingVersionStore (org.projectnessie.versioned.TracingVersionStore)1 VersionStore (org.projectnessie.versioned.VersionStore)1 DatabaseAdapter (org.projectnessie.versioned.persist.adapter.DatabaseAdapter)1 TracingDatabaseAdapter (org.projectnessie.versioned.persist.adapter.spi.TracingDatabaseAdapter)1 PersistVersionStore (org.projectnessie.versioned.persist.store.PersistVersionStore)1