mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-13 19:29:06 +01:00
Remove OpenDatabaseHook priorities.
This commit is contained in:
@@ -10,8 +10,6 @@ import javax.inject.Singleton;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook.Priority.EARLY;
|
||||
|
||||
@Module
|
||||
public class IdentityModule {
|
||||
|
||||
@@ -29,7 +27,7 @@ public class IdentityModule {
|
||||
@Singleton
|
||||
IdentityManager provideIdentityManager(LifecycleManager lifecycleManager,
|
||||
IdentityManagerImpl identityManager) {
|
||||
lifecycleManager.registerOpenDatabaseHook(identityManager, EARLY);
|
||||
lifecycleManager.registerOpenDatabaseHook(identityManager);
|
||||
return identityManager;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.briarproject.bramble.lifecycle;
|
||||
|
||||
import org.briarproject.bramble.api.Pair;
|
||||
import org.briarproject.bramble.api.crypto.SecretKey;
|
||||
import org.briarproject.bramble.api.db.DataTooNewException;
|
||||
import org.briarproject.bramble.api.db.DataTooOldException;
|
||||
@@ -9,13 +8,11 @@ import org.briarproject.bramble.api.db.DbException;
|
||||
import org.briarproject.bramble.api.db.MigrationListener;
|
||||
import org.briarproject.bramble.api.event.EventBus;
|
||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
|
||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook.Priority;
|
||||
import org.briarproject.bramble.api.lifecycle.Service;
|
||||
import org.briarproject.bramble.api.lifecycle.ServiceException;
|
||||
import org.briarproject.bramble.api.lifecycle.event.LifecycleEvent;
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
@@ -26,7 +23,6 @@ import java.util.logging.Logger;
|
||||
import javax.annotation.concurrent.ThreadSafe;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static java.util.Collections.sort;
|
||||
import static java.util.logging.Level.FINE;
|
||||
import static java.util.logging.Level.INFO;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
@@ -57,7 +53,7 @@ class LifecycleManagerImpl implements LifecycleManager, MigrationListener {
|
||||
private final DatabaseComponent db;
|
||||
private final EventBus eventBus;
|
||||
private final List<Service> services;
|
||||
private final List<Pair<OpenDatabaseHook, Priority>> openDatabaseHooks;
|
||||
private final List<OpenDatabaseHook> openDatabaseHooks;
|
||||
private final List<ExecutorService> executors;
|
||||
private final Semaphore startStopSemaphore = new Semaphore(1);
|
||||
private final CountDownLatch dbLatch = new CountDownLatch(1);
|
||||
@@ -83,12 +79,12 @@ class LifecycleManagerImpl implements LifecycleManager, MigrationListener {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerOpenDatabaseHook(OpenDatabaseHook hook, Priority p) {
|
||||
public void registerOpenDatabaseHook(OpenDatabaseHook hook) {
|
||||
if (LOG.isLoggable(INFO)) {
|
||||
LOG.info("Registering open database hook "
|
||||
+ hook.getClass().getSimpleName());
|
||||
}
|
||||
openDatabaseHooks.add(new Pair<>(hook, p));
|
||||
openDatabaseHooks.add(hook);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -109,13 +105,10 @@ class LifecycleManagerImpl implements LifecycleManager, MigrationListener {
|
||||
boolean reopened = db.open(dbKey, this);
|
||||
if (reopened) logDuration(LOG, "Reopening database", start);
|
||||
else logDuration(LOG, "Creating database", start);
|
||||
List<Pair<OpenDatabaseHook, Priority>> hooks =
|
||||
new ArrayList<>(openDatabaseHooks);
|
||||
sort(hooks, (a, b) -> a.getSecond().compareTo(b.getSecond()));
|
||||
|
||||
db.transaction(false, txn -> {
|
||||
for (Pair<OpenDatabaseHook, Priority> pair : hooks) {
|
||||
for (OpenDatabaseHook hook : openDatabaseHooks) {
|
||||
long start1 = now();
|
||||
OpenDatabaseHook hook = pair.getFirst();
|
||||
hook.onDatabaseOpened(txn);
|
||||
if (LOG.isLoggable(FINE)) {
|
||||
logDuration(LOG, "Calling open database hook "
|
||||
|
||||
@@ -15,7 +15,6 @@ import javax.inject.Singleton;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook.Priority.NORMAL;
|
||||
import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_ID;
|
||||
import static org.briarproject.bramble.api.properties.TransportPropertyManager.MAJOR_VERSION;
|
||||
import static org.briarproject.bramble.api.properties.TransportPropertyManager.MINOR_VERSION;
|
||||
@@ -49,8 +48,7 @@ public class PropertiesModule {
|
||||
ValidationManager validationManager, ContactManager contactManager,
|
||||
ClientVersioningManager clientVersioningManager,
|
||||
TransportPropertyManagerImpl transportPropertyManager) {
|
||||
lifecycleManager.registerOpenDatabaseHook(transportPropertyManager,
|
||||
NORMAL);
|
||||
lifecycleManager.registerOpenDatabaseHook(transportPropertyManager);
|
||||
validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
|
||||
transportPropertyManager);
|
||||
contactManager.registerContactHook(transportPropertyManager);
|
||||
|
||||
@@ -14,7 +14,6 @@ import javax.inject.Singleton;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook.Priority.NORMAL;
|
||||
import static org.briarproject.bramble.api.versioning.ClientVersioningManager.CLIENT_ID;
|
||||
import static org.briarproject.bramble.api.versioning.ClientVersioningManager.MAJOR_VERSION;
|
||||
|
||||
@@ -35,8 +34,7 @@ public class VersioningModule {
|
||||
ClientVersioningManagerImpl clientVersioningManager,
|
||||
LifecycleManager lifecycleManager, ContactManager contactManager,
|
||||
ValidationManager validationManager) {
|
||||
lifecycleManager.registerOpenDatabaseHook(clientVersioningManager,
|
||||
NORMAL);
|
||||
lifecycleManager.registerOpenDatabaseHook(clientVersioningManager);
|
||||
lifecycleManager.registerService(clientVersioningManager);
|
||||
contactManager.registerContactHook(clientVersioningManager);
|
||||
validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
|
||||
|
||||
@@ -11,13 +11,9 @@ import org.briarproject.bramble.test.DbExpectations;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook.Priority.EARLY;
|
||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook.Priority.LATE;
|
||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook.Priority.NORMAL;
|
||||
import static junit.framework.TestCase.assertTrue;
|
||||
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult.SUCCESS;
|
||||
import static org.briarproject.bramble.test.TestUtils.getSecretKey;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
@@ -37,12 +33,10 @@ public class LifecycleManagerImplTest extends BrambleMockTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOpenDatabaseHooksRunInOrderOfPriority() throws Exception {
|
||||
public void testOpenDatabaseHooksAreCalledAtStartup() throws Exception {
|
||||
Transaction txn = new Transaction(null, false);
|
||||
List<Integer> results = new ArrayList<>();
|
||||
OpenDatabaseHook hook1 = transaction -> results.add(1);
|
||||
OpenDatabaseHook hook2 = transaction -> results.add(2);
|
||||
OpenDatabaseHook hook3 = transaction -> results.add(3);
|
||||
AtomicBoolean called = new AtomicBoolean(false);
|
||||
OpenDatabaseHook hook = transaction -> called.set(true);
|
||||
|
||||
context.checking(new DbExpectations() {{
|
||||
oneOf(db).open(dbKey, lifecycleManager);
|
||||
@@ -51,11 +45,9 @@ public class LifecycleManagerImplTest extends BrambleMockTestCase {
|
||||
allowing(eventBus).broadcast(with(any(LifecycleEvent.class)));
|
||||
}});
|
||||
|
||||
lifecycleManager.registerOpenDatabaseHook(hook1, LATE);
|
||||
lifecycleManager.registerOpenDatabaseHook(hook2, NORMAL);
|
||||
lifecycleManager.registerOpenDatabaseHook(hook3, EARLY);
|
||||
lifecycleManager.registerOpenDatabaseHook(hook);
|
||||
|
||||
assertEquals(SUCCESS, lifecycleManager.startServices(dbKey));
|
||||
assertEquals(asList(3, 2, 1), results);
|
||||
assertTrue(called.get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.briarproject.bramble.test;
|
||||
import org.briarproject.bramble.api.crypto.SecretKey;
|
||||
import org.briarproject.bramble.api.lifecycle.IoExecutor;
|
||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
|
||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook.Priority;
|
||||
import org.briarproject.bramble.api.lifecycle.Service;
|
||||
import org.briarproject.bramble.api.lifecycle.ShutdownManager;
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
@@ -32,8 +31,7 @@ public class TestLifecycleModule {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerOpenDatabaseHook(OpenDatabaseHook hook,
|
||||
Priority p) {
|
||||
public void registerOpenDatabaseHook(OpenDatabaseHook hook) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user