Skip to content

Commit 9583e76

Browse files
committed
feat(core): Run the maintenance service
Run the maintenance service in core and add the initial job to deduplicate packages. Signed-off-by: Martin Nonnenmacher <[email protected]>
1 parent 7fba5d5 commit 9583e76

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

core/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ dependencies {
5959
implementation(projects.services.authorizationService)
6060
implementation(projects.services.hierarchyService)
6161
implementation(projects.services.infrastructureService)
62+
implementation(projects.services.maintenanceService)
6263
implementation(projects.services.reportStorageService)
6364
implementation(projects.services.secretService)
6465
implementation(projects.storage.storageSpi)

core/src/main/kotlin/di/Module.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ import org.eclipse.apoapsis.ortserver.services.ReportStorageService
7171
import org.eclipse.apoapsis.ortserver.services.RepositoryService
7272
import org.eclipse.apoapsis.ortserver.services.SecretService
7373
import org.eclipse.apoapsis.ortserver.services.VulnerabilityService
74+
import org.eclipse.apoapsis.ortserver.services.maintenance.MaintenanceService
7475
import org.eclipse.apoapsis.ortserver.storage.Storage
7576

7677
import org.koin.core.module.dsl.singleOf
@@ -117,6 +118,8 @@ fun ortServerModule(config: ApplicationConfig) = module {
117118
val keycloakGroupPrefix = get<ApplicationConfig>().tryGetString("keycloak.groupPrefix").orEmpty()
118119
DefaultAuthorizationService(get(), get(), get(), get(), get(), keycloakGroupPrefix)
119120
}
121+
122+
singleOf(::MaintenanceService)
120123
single { OrchestratorService(get(), get(), get()) }
121124
single { OrganizationService(get(), get(), get(), get()) }
122125
single { ProductService(get(), get(), get(), get()) }

core/src/main/kotlin/plugins/Lifecycle.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@ import kotlinx.coroutines.Dispatchers
2727
import kotlinx.coroutines.launch
2828

2929
import org.eclipse.apoapsis.ortserver.services.AuthorizationService
30+
import org.eclipse.apoapsis.ortserver.services.maintenance.MaintenanceService
31+
import org.eclipse.apoapsis.ortserver.services.maintenance.jobs.DeduplicatePackagesJob
3032
import org.eclipse.apoapsis.ortserver.utils.logging.runBlocking
3133
import org.eclipse.apoapsis.ortserver.utils.logging.withMdcContext
3234

35+
import org.koin.ktor.ext.get
3336
import org.koin.ktor.ext.inject
3437

3538
import org.slf4j.MDC
@@ -41,6 +44,7 @@ import org.slf4j.MDC
4144
fun Application.configureLifecycle() {
4245
environment.monitor.subscribe(DatabaseReady) {
4346
val authorizationService by inject<AuthorizationService>()
47+
val maintenanceService by inject<MaintenanceService>()
4448

4549
val mdcContext = MDC.getCopyOfContextMap()
4650

@@ -50,6 +54,14 @@ fun Application.configureLifecycle() {
5054
syncRoles(authorizationService)
5155
}
5256
}
57+
58+
thread {
59+
MDC.setContextMap(mdcContext)
60+
runBlocking(Dispatchers.IO) {
61+
maintenanceService.addJob(DeduplicatePackagesJob(get()))
62+
maintenanceService.run()
63+
}
64+
}
5365
}
5466
}
5567

0 commit comments

Comments
 (0)