Inject DefaultTaskSchedulerModule.EagerSingletons at startup in headless app.

This commit is contained in:
akwizgran
2021-01-19 14:32:15 +00:00
committed by Torsten Grote
parent 5e2187a877
commit 000812bf6d
5 changed files with 27 additions and 4 deletions

View File

@@ -16,7 +16,8 @@ import javax.inject.Singleton
]
)
@Singleton
internal interface BriarHeadlessApp : BrambleCoreEagerSingletons, BriarCoreEagerSingletons {
internal interface BriarHeadlessApp : BrambleCoreEagerSingletons, BriarCoreEagerSingletons,
HeadlessEagerSingletons {
fun getRouter(): Router

View File

@@ -0,0 +1,15 @@
package org.briarproject.briar.headless;
import org.briarproject.bramble.system.DefaultTaskSchedulerModule;
public interface HeadlessEagerSingletons {
void inject(DefaultTaskSchedulerModule.EagerSingletons init);
class Helper {
public static void injectEagerSingletons(HeadlessEagerSingletons c) {
c.inject(new DefaultTaskSchedulerModule.EagerSingletons());
}
}
}

View File

@@ -17,9 +17,13 @@ import java.lang.System.getProperty
import java.lang.System.setProperty
import java.nio.file.Files.setPosixFilePermissions
import java.nio.file.attribute.PosixFilePermission
import java.nio.file.attribute.PosixFilePermission.*
import java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE
import java.nio.file.attribute.PosixFilePermission.OWNER_READ
import java.nio.file.attribute.PosixFilePermission.OWNER_WRITE
import java.security.SecureRandom
import java.util.logging.Level.*
import java.util.logging.Level.ALL
import java.util.logging.Level.INFO
import java.util.logging.Level.WARNING
import java.util.logging.LogManager
private const val DEFAULT_PORT = 7000
@@ -72,6 +76,7 @@ private class Main : CliktCommand(
// dependency graphs
BrambleCoreEagerSingletons.Helper.injectEagerSingletons(app)
BriarCoreEagerSingletons.Helper.injectEagerSingletons(app)
HeadlessEagerSingletons.Helper.injectEagerSingletons(app)
val authToken = getOrCreateAuthToken(dataDir, app.getSecureRandom())

View File

@@ -17,7 +17,8 @@ import javax.inject.Singleton
]
)
@Singleton
internal interface BriarHeadlessTestApp : BrambleCoreEagerSingletons, BriarCoreEagerSingletons {
internal interface BriarHeadlessTestApp : BrambleCoreEagerSingletons, BriarCoreEagerSingletons,
HeadlessEagerSingletons {
fun getRouter(): Router

View File

@@ -34,6 +34,7 @@ abstract class IntegrationTest {
.build()
BrambleCoreEagerSingletons.Helper.injectEagerSingletons(app)
BriarCoreEagerSingletons.Helper.injectEagerSingletons(app)
HeadlessEagerSingletons.Helper.injectEagerSingletons(app)
router = app.getRouter()
crypto = app.getCryptoComponent()
testDataCreator = app.getTestDataCreator()