From 4176252788478890da3bf2d56e4617590549967a Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:19:24 +0900 Subject: [PATCH 01/14] chore: update dependencies and Gradle wrapper version --- build.gradle.kts | 14 +++++++++----- buildSrc/src/main/kotlin/Versions.kt | 8 ++++---- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 88b4e8ee..bba11a71 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,7 +18,6 @@ application { repositories { mavenCentral() - jcenter() } dependencies { @@ -29,15 +28,20 @@ dependencies { // Ktor implementation("io.ktor:ktor-server-core:${Versions.ktor}") + implementation("io.ktor:ktor-server-auto-head-response:${Versions.ktor}") + implementation("io.ktor:ktor-server-call-logging:${Versions.ktor}") + implementation("io.ktor:ktor-server-content-negotiation:${Versions.ktor}") + implementation("io.ktor:ktor-server-status-pages:${Versions.ktor}") implementation("io.ktor:ktor-server-netty:${Versions.ktor}") implementation("io.ktor:ktor-server-host-common:${Versions.ktor}") - implementation("io.ktor:ktor-locations:${Versions.ktor}") + implementation("io.ktor:ktor-server-locations:${Versions.ktor}") implementation("io.ktor:ktor-client-apache:${Versions.ktor}") - implementation("io.ktor:ktor-auth:${Versions.ktor}") - implementation("io.ktor:ktor-jackson:${Versions.ktor}") + implementation("io.ktor:ktor-server-auth:${Versions.ktor}") + implementation("io.ktor:ktor-server-content-negotiation:${Versions.ktor}") + implementation("io.ktor:ktor-serialization-jackson:${Versions.ktor}") // DI - implementation("org.koin:koin-ktor:${Versions.koin}") + implementation("io.insert-koin:koin-ktor:${Versions.koin}") // DB implementation("org.jetbrains.exposed:exposed-core:${Versions.exposed}") diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index bd70ad1a..7036affc 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -1,15 +1,15 @@ object Versions { // plugin - const val kotlin = "1.4.30" + const val kotlin = "1.9.23" const val ktlint = "10.0.0" const val shadow = "6.1.0" // dependency const val serialization = "1.0.1" const val cli = "0.3.2" - const val ktor = "1.5.1" - const val koin = "2.2.1" - const val exposed = "0.28.1" + const val ktor = "2.3.11" + const val koin = "3.5.6" + const val exposed = "0.46.0" const val hikaricp = "3.4.5" const val flyway = "7.7.0" const val postgresql = "42.2.18" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2a563242..068cdb2d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From c03ab65d18817cb1d1dc9c686cf665577003171f Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:45:19 +0900 Subject: [PATCH 02/14] remove KoinApiExtension annotations --- .../titech/cs/se/refactorhub/app/infrastructure/Application.kt | 2 -- .../titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt | 3 --- .../cs/se/refactorhub/app/infrastructure/module/KoinModule.kt | 2 -- .../cs/se/refactorhub/app/infrastructure/router/Routing.kt | 2 -- .../cs/se/refactorhub/app/infrastructure/router/api/Actions.kt | 2 -- .../refactorhub/app/infrastructure/router/api/Annotations.kt | 2 -- .../refactorhub/app/infrastructure/router/api/ChangeTypes.kt | 2 -- .../app/infrastructure/router/api/CodeElementTypes.kt | 2 -- .../refactorhub/app/infrastructure/router/api/Experiments.kt | 2 -- .../cs/se/refactorhub/app/infrastructure/router/api/Users.kt | 2 -- .../refactorhub/app/interfaces/controller/ActionController.kt | 2 -- .../app/interfaces/controller/AnnotationController.kt | 2 -- .../app/interfaces/controller/ChangeTypeController.kt | 2 -- .../app/interfaces/controller/CodeElementController.kt | 2 -- .../app/interfaces/controller/ExperimentController.kt | 2 -- .../se/refactorhub/app/interfaces/controller/UserController.kt | 2 -- .../cs/se/refactorhub/app/usecase/service/ActionService.kt | 2 -- .../cs/se/refactorhub/app/usecase/service/AnnotationService.kt | 2 -- .../cs/se/refactorhub/app/usecase/service/ChangeService.kt | 2 -- .../cs/se/refactorhub/app/usecase/service/ChangeTypeService.kt | 2 -- .../se/refactorhub/app/usecase/service/CodeElementService.kt | 2 -- .../cs/se/refactorhub/app/usecase/service/CommitService.kt | 2 -- .../cs/se/refactorhub/app/usecase/service/ExperimentService.kt | 2 -- .../cs/se/refactorhub/app/usecase/service/SnapshotService.kt | 2 -- .../cs/se/refactorhub/app/usecase/service/UserService.kt | 2 -- 25 files changed, 51 deletions(-) diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt index 7af6be55..43fe2399 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt @@ -24,12 +24,10 @@ import jp.ac.titech.cs.se.refactorhub.app.infrastructure.feature.SinglePageAppli import jp.ac.titech.cs.se.refactorhub.app.infrastructure.feature.setExceptions import jp.ac.titech.cs.se.refactorhub.app.infrastructure.module.KoinModule import jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.root -import org.koin.core.component.KoinApiExtension import org.koin.ktor.ext.Koin fun main(args: Array) = EngineMain.main(args) -@KoinApiExtension @KtorExperimentalAPI @KtorExperimentalLocationsAPI fun Application.module() { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt index a436a7ab..f0577e2b 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt @@ -25,7 +25,6 @@ import io.ktor.util.KtorExperimentalAPI import jp.ac.titech.cs.se.refactorhub.app.model.User import jp.ac.titech.cs.se.refactorhub.app.usecase.service.UserService import org.kohsuke.github.GitHub -import org.koin.core.component.KoinApiExtension import org.koin.java.KoinJavaComponent.inject private const val GITHUB = "github" @@ -64,7 +63,6 @@ private fun ApplicationCall.redirectUrl(t: T): String { } } -@KoinApiExtension @KtorExperimentalLocationsAPI fun Route.login() { authenticate(GITHUB) { @@ -89,7 +87,6 @@ fun Route.login() { } } -@KoinApiExtension private fun getMe(accessToken: String): User { val userService by inject(UserService::class.java) val me = GitHub.connectUsingOAuth(accessToken).myself diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/module/KoinModule.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/module/KoinModule.kt index 49b72462..bd7c2c64 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/module/KoinModule.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/module/KoinModule.kt @@ -6,10 +6,8 @@ import jp.ac.titech.cs.se.refactorhub.app.infrastructure.database.repository.* import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.* import jp.ac.titech.cs.se.refactorhub.app.interfaces.repository.* import jp.ac.titech.cs.se.refactorhub.app.usecase.service.* -import org.koin.core.component.KoinApiExtension import org.koin.dsl.module -@KoinApiExtension @KtorExperimentalLocationsAPI object KoinModule { val modules by lazy { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt index f671e509..bd2ce642 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt @@ -5,9 +5,7 @@ import io.ktor.routing.Routing import io.ktor.routing.route import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.login import jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api.* -import org.koin.core.component.KoinApiExtension -@KoinApiExtension @KtorExperimentalLocationsAPI fun Routing.root() { login() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt index 93e1c2a4..cbf262b3 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt @@ -16,7 +16,6 @@ import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.ActionController import jp.ac.titech.cs.se.refactorhub.core.model.ActionName import jp.ac.titech.cs.se.refactorhub.core.model.ActionType -import org.koin.core.component.KoinApiExtension import org.koin.ktor.ext.inject @KtorExperimentalLocationsAPI @@ -28,7 +27,6 @@ data class PostActionBody( val data: JsonNode ) -@KoinApiExtension @KtorExperimentalLocationsAPI fun Route.actions() { route("/actions") { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt index debaab8c..d480ada7 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt @@ -21,7 +21,6 @@ import jp.ac.titech.cs.se.refactorhub.core.model.ActionName import jp.ac.titech.cs.se.refactorhub.core.model.ActionType import jp.ac.titech.cs.se.refactorhub.core.model.DiffCategory import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElement -import org.koin.core.component.KoinApiExtension import org.koin.ktor.ext.inject @KtorExperimentalLocationsAPI @@ -97,7 +96,6 @@ data class UpdateParameterValueBody(val element: CodeElement) class ClearParameterValue(val annotationId: String, val snapshotId: String, val changeId: String, val diffCategory: DiffCategory, val parameterName: String, val elementIndex: Int) -@KoinApiExtension @KtorExperimentalLocationsAPI fun Route.annotations() { route("/annotations") { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt index b2495bbe..e612e450 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt @@ -15,7 +15,6 @@ import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.ChangeTypeController import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElementMetadata -import org.koin.core.component.KoinApiExtension import org.koin.ktor.ext.inject @KtorExperimentalLocationsAPI @@ -33,7 +32,6 @@ data class CreateChangeTypeBody( val referenceUrl: String = "" ) -@KoinApiExtension @KtorExperimentalLocationsAPI fun Route.changeTypes() { route("/change_types") { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt index 48d75a4a..c802c0da 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt @@ -8,14 +8,12 @@ import io.ktor.response.respond import io.ktor.routing.Route import io.ktor.routing.route import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.CodeElementController -import org.koin.core.component.KoinApiExtension import org.koin.ktor.ext.inject @KtorExperimentalLocationsAPI @Location("") class GetCodeElementTypes -@KoinApiExtension @KtorExperimentalLocationsAPI fun Route.codeElementTypes() { route("/code_element_types") { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt index 78d014d6..75d0bc2c 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt @@ -14,7 +14,6 @@ import io.ktor.sessions.sessions import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.ExperimentController -import org.koin.core.component.KoinApiExtension import org.koin.ktor.ext.inject @KtorExperimentalLocationsAPI @@ -47,7 +46,6 @@ data class StartAnnotation(val experimentId: String, val commitId: String) @Location("/{experimentId}/result") data class GetExperimentResult(val experimentId: String) -@KoinApiExtension @KtorExperimentalLocationsAPI fun Route.experiments() { route("/experiments") { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt index b3d26e15..5d2bd999 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt @@ -10,7 +10,6 @@ import io.ktor.sessions.sessions import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.UserController -import org.koin.core.component.KoinApiExtension import org.koin.ktor.ext.inject @KtorExperimentalLocationsAPI @@ -21,7 +20,6 @@ class GetMe @Location("/{userId}/annotations") data class GetUserAnnotationIds(val userId: String) -@KoinApiExtension @KtorExperimentalLocationsAPI fun Route.users() { route("/users") { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ActionController.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ActionController.kt index 0142aff3..e84722f6 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ActionController.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ActionController.kt @@ -4,12 +4,10 @@ import com.fasterxml.jackson.databind.JsonNode import jp.ac.titech.cs.se.refactorhub.app.usecase.service.ActionService import jp.ac.titech.cs.se.refactorhub.core.model.ActionName import jp.ac.titech.cs.se.refactorhub.core.model.ActionType -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.UUID -@KoinApiExtension class ActionController : KoinComponent { private val actionService: ActionService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/AnnotationController.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/AnnotationController.kt index cff10aef..9167c8b4 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/AnnotationController.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/AnnotationController.kt @@ -9,12 +9,10 @@ import jp.ac.titech.cs.se.refactorhub.app.usecase.service.ChangeService import jp.ac.titech.cs.se.refactorhub.app.usecase.service.SnapshotService import jp.ac.titech.cs.se.refactorhub.core.model.DiffCategory import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElement -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.UUID -@KoinApiExtension class AnnotationController : KoinComponent { private val annotationService: AnnotationService by inject() private val snapshotService: SnapshotService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ChangeTypeController.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ChangeTypeController.kt index 68c63ac9..dc6d9c76 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ChangeTypeController.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ChangeTypeController.kt @@ -3,12 +3,10 @@ package jp.ac.titech.cs.se.refactorhub.app.interfaces.controller import jp.ac.titech.cs.se.refactorhub.app.model.ChangeType import jp.ac.titech.cs.se.refactorhub.app.usecase.service.ChangeTypeService import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElementMetadata -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.* -@KoinApiExtension class ChangeTypeController : KoinComponent { private val changeTypeService: ChangeTypeService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/CodeElementController.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/CodeElementController.kt index e214dbbd..c966836c 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/CodeElementController.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/CodeElementController.kt @@ -1,11 +1,9 @@ package jp.ac.titech.cs.se.refactorhub.app.interfaces.controller import jp.ac.titech.cs.se.refactorhub.app.usecase.service.CodeElementService -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject -@KoinApiExtension class CodeElementController : KoinComponent { private val codeElementService: CodeElementService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ExperimentController.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ExperimentController.kt index 05ae93be..b60af961 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ExperimentController.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/ExperimentController.kt @@ -5,12 +5,10 @@ import jp.ac.titech.cs.se.refactorhub.app.model.Experiment import jp.ac.titech.cs.se.refactorhub.app.usecase.service.AnnotationService import jp.ac.titech.cs.se.refactorhub.app.usecase.service.ExperimentService import jp.ac.titech.cs.se.refactorhub.core.model.Commit -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.UUID -@KoinApiExtension class ExperimentController : KoinComponent { private val experimentService: ExperimentService by inject() private val annotationService: AnnotationService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/UserController.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/UserController.kt index 1638057d..3a21b7ef 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/UserController.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/interfaces/controller/UserController.kt @@ -3,12 +3,10 @@ package jp.ac.titech.cs.se.refactorhub.app.interfaces.controller import jp.ac.titech.cs.se.refactorhub.app.model.User import jp.ac.titech.cs.se.refactorhub.app.model.AnnotationOverview import jp.ac.titech.cs.se.refactorhub.app.usecase.service.UserService -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.* -@KoinApiExtension class UserController : KoinComponent { private val userService: UserService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ActionService.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ActionService.kt index 87fe1d3d..ad03af62 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ActionService.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ActionService.kt @@ -6,13 +6,11 @@ import jp.ac.titech.cs.se.refactorhub.app.interfaces.repository.ActionRepository import jp.ac.titech.cs.se.refactorhub.app.model.Action import jp.ac.titech.cs.se.refactorhub.core.model.ActionName import jp.ac.titech.cs.se.refactorhub.core.model.ActionType -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.time.LocalDateTime import java.util.UUID -@KoinApiExtension class ActionService : KoinComponent { private val actionRepository: ActionRepository by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/AnnotationService.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/AnnotationService.kt index de6d74e3..105fd877 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/AnnotationService.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/AnnotationService.kt @@ -20,12 +20,10 @@ import jp.ac.titech.cs.se.refactorhub.core.model.annotator.FileMapping import jp.ac.titech.cs.se.refactorhub.core.model.annotator.FileMappingStatus import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElement import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElementHolder -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.UUID -@KoinApiExtension class AnnotationService : KoinComponent { private val userService: UserService by inject() private val experimentService: ExperimentService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ChangeService.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ChangeService.kt index 65d151f8..c052d4c5 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ChangeService.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ChangeService.kt @@ -9,14 +9,12 @@ import jp.ac.titech.cs.se.refactorhub.core.model.DiffCategory import jp.ac.titech.cs.se.refactorhub.core.model.annotator.FileMapping import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElement import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElementHolder -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.UUID private const val DEFAULT_CHANGE_TYPE = "Non-Refactoring" -@KoinApiExtension class ChangeService : KoinComponent { private val annotationService: AnnotationService by inject() private val snapshotService: SnapshotService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ChangeTypeService.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ChangeTypeService.kt index 8cb30799..873aae29 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ChangeTypeService.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ChangeTypeService.kt @@ -6,12 +6,10 @@ import jp.ac.titech.cs.se.refactorhub.app.exception.UnauthorizedException import jp.ac.titech.cs.se.refactorhub.app.interfaces.repository.ChangeTypeRepository import jp.ac.titech.cs.se.refactorhub.app.model.ChangeType import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElementMetadata -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.UUID -@KoinApiExtension class ChangeTypeService : KoinComponent { private val changeTypeRepository: ChangeTypeRepository by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/CodeElementService.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/CodeElementService.kt index f14bde6a..4ebd202f 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/CodeElementService.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/CodeElementService.kt @@ -1,10 +1,8 @@ package jp.ac.titech.cs.se.refactorhub.app.usecase.service import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElementType -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent -@KoinApiExtension class CodeElementService : KoinComponent { fun getTypes(): List { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/CommitService.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/CommitService.kt index e3bd2138..0862e08d 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/CommitService.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/CommitService.kt @@ -9,14 +9,12 @@ import jp.ac.titech.cs.se.refactorhub.core.annotator.getFile import jp.ac.titech.cs.se.refactorhub.core.annotator.mapFiles import jp.ac.titech.cs.se.refactorhub.core.model.annotator.FileMappingStatus import org.kohsuke.github.GitHub -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.time.LocalDateTime import java.time.ZoneId import java.util.UUID -@KoinApiExtension class CommitService : KoinComponent { private val commitRepository: CommitRepository by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ExperimentService.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ExperimentService.kt index 6c42c618..14f16880 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ExperimentService.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/ExperimentService.kt @@ -4,12 +4,10 @@ import jp.ac.titech.cs.se.refactorhub.app.exception.NotFoundException import jp.ac.titech.cs.se.refactorhub.app.interfaces.repository.ExperimentRepository import jp.ac.titech.cs.se.refactorhub.app.model.Experiment import jp.ac.titech.cs.se.refactorhub.core.model.Commit -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.UUID -@KoinApiExtension class ExperimentService : KoinComponent { private val commitService: CommitService by inject() private val userService: UserService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/SnapshotService.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/SnapshotService.kt index 8263a61f..2df98d37 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/SnapshotService.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/SnapshotService.kt @@ -6,12 +6,10 @@ import jp.ac.titech.cs.se.refactorhub.app.model.Snapshot import jp.ac.titech.cs.se.refactorhub.core.model.DiffCategory import jp.ac.titech.cs.se.refactorhub.core.model.annotator.File import jp.ac.titech.cs.se.refactorhub.core.model.annotator.FileMapping -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.UUID -@KoinApiExtension class SnapshotService : KoinComponent { private val commitService: CommitService by inject() private val changeService: ChangeService by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/UserService.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/UserService.kt index 40cb1af6..106656c1 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/UserService.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/usecase/service/UserService.kt @@ -5,12 +5,10 @@ import jp.ac.titech.cs.se.refactorhub.app.exception.UnauthorizedException import jp.ac.titech.cs.se.refactorhub.app.interfaces.repository.UserRepository import jp.ac.titech.cs.se.refactorhub.app.model.AnnotationOverview import jp.ac.titech.cs.se.refactorhub.app.model.User -import org.koin.core.component.KoinApiExtension import org.koin.core.component.KoinComponent import org.koin.core.component.inject import java.util.UUID -@KoinApiExtension class UserService : KoinComponent { private val userRepository: UserRepository by inject() private val annotationService: AnnotationService by inject() From 3bb087e87a556bedcbc1a0ec497b9cd2b9be0511 Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:55:04 +0900 Subject: [PATCH 03/14] remove Ktor experimental annotations --- .../app/infrastructure/Application.kt | 4 ---- .../app/infrastructure/auth/GitHub.kt | 7 ------- .../app/infrastructure/database/Database.kt | 2 -- .../app/infrastructure/module/KoinModule.kt | 2 -- .../app/infrastructure/router/Routing.kt | 2 -- .../app/infrastructure/router/api/Actions.kt | 3 --- .../app/infrastructure/router/api/Annotations.kt | 16 ---------------- .../app/infrastructure/router/api/ChangeTypes.kt | 3 --- .../router/api/CodeElementTypes.kt | 3 --- .../app/infrastructure/router/api/Experiments.kt | 7 ------- .../app/infrastructure/router/api/Users.kt | 3 --- 11 files changed, 52 deletions(-) diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt index 43fe2399..eda885b1 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt @@ -9,14 +9,12 @@ import io.ktor.features.CallLogging import io.ktor.features.ContentNegotiation import io.ktor.features.StatusPages import io.ktor.jackson.jackson -import io.ktor.locations.KtorExperimentalLocationsAPI import io.ktor.locations.Locations import io.ktor.routing.routing import io.ktor.server.netty.EngineMain import io.ktor.sessions.SessionStorageMemory import io.ktor.sessions.Sessions import io.ktor.sessions.cookie -import io.ktor.util.KtorExperimentalAPI import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.github import jp.ac.titech.cs.se.refactorhub.app.infrastructure.database.connectDB @@ -28,8 +26,6 @@ import org.koin.ktor.ext.Koin fun main(args: Array) = EngineMain.main(args) -@KtorExperimentalAPI -@KtorExperimentalLocationsAPI fun Application.module() { install(AutoHeadResponse) install(CallLogging) diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt index f0577e2b..4ed7bfd7 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt @@ -10,7 +10,6 @@ import io.ktor.auth.authentication import io.ktor.auth.oauth import io.ktor.client.HttpClient import io.ktor.client.engine.apache.Apache -import io.ktor.locations.KtorExperimentalLocationsAPI import io.ktor.locations.Location import io.ktor.locations.location import io.ktor.locations.locations @@ -21,7 +20,6 @@ import io.ktor.response.respondText import io.ktor.routing.Route import io.ktor.sessions.sessions import io.ktor.sessions.set -import io.ktor.util.KtorExperimentalAPI import jp.ac.titech.cs.se.refactorhub.app.model.User import jp.ac.titech.cs.se.refactorhub.app.usecase.service.UserService import org.kohsuke.github.GitHub @@ -29,12 +27,9 @@ import org.koin.java.KoinJavaComponent.inject private const val GITHUB = "github" -@KtorExperimentalLocationsAPI @Location("/login") private class Login -@KtorExperimentalAPI -@KtorExperimentalLocationsAPI fun Authentication.Configuration.github() { oauth(GITHUB) { client = HttpClient(Apache) @@ -53,7 +48,6 @@ fun Authentication.Configuration.github() { } } -@KtorExperimentalLocationsAPI private fun ApplicationCall.redirectUrl(t: T): String { val host = request.host() val path = application.locations.href(t) @@ -63,7 +57,6 @@ private fun ApplicationCall.redirectUrl(t: T): String { } } -@KtorExperimentalLocationsAPI fun Route.login() { authenticate(GITHUB) { location { diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/Database.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/Database.kt index 7fd47638..8bca9336 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/Database.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/Database.kt @@ -3,13 +3,11 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.database import com.zaxxer.hikari.HikariConfig import com.zaxxer.hikari.HikariDataSource import io.ktor.application.Application -import io.ktor.util.KtorExperimentalAPI import jp.ac.titech.cs.se.refactorhub.app.infrastructure.database.migration.initializeDatabase import org.flywaydb.core.Flyway import org.jetbrains.exposed.sql.Database import java.net.URI -@KtorExperimentalAPI fun Application.connectDB() { val uri = URI(environment.config.property("ktor.database.url").getString()) val (username, password) = uri.userInfo.split(":") diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/module/KoinModule.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/module/KoinModule.kt index bd7c2c64..3aae7fef 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/module/KoinModule.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/module/KoinModule.kt @@ -1,14 +1,12 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.module import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper -import io.ktor.locations.KtorExperimentalLocationsAPI import jp.ac.titech.cs.se.refactorhub.app.infrastructure.database.repository.* import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.* import jp.ac.titech.cs.se.refactorhub.app.interfaces.repository.* import jp.ac.titech.cs.se.refactorhub.app.usecase.service.* import org.koin.dsl.module -@KtorExperimentalLocationsAPI object KoinModule { val modules by lazy { listOf( diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt index bd2ce642..973de24a 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt @@ -1,12 +1,10 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router -import io.ktor.locations.KtorExperimentalLocationsAPI import io.ktor.routing.Routing import io.ktor.routing.route import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.login import jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api.* -@KtorExperimentalLocationsAPI fun Routing.root() { login() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt index cbf262b3..c2ec961e 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt @@ -2,7 +2,6 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api import com.fasterxml.jackson.databind.JsonNode import io.ktor.application.call -import io.ktor.locations.KtorExperimentalLocationsAPI import io.ktor.locations.Location import io.ktor.locations.post import io.ktor.request.receive @@ -18,7 +17,6 @@ import jp.ac.titech.cs.se.refactorhub.core.model.ActionName import jp.ac.titech.cs.se.refactorhub.core.model.ActionType import org.koin.ktor.ext.inject -@KtorExperimentalLocationsAPI @Location("") class PostAction data class PostActionBody( @@ -27,7 +25,6 @@ data class PostActionBody( val data: JsonNode ) -@KtorExperimentalLocationsAPI fun Route.actions() { route("/actions") { val actionController: ActionController by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt index d480ada7..41ce39e7 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt @@ -23,80 +23,64 @@ import jp.ac.titech.cs.se.refactorhub.core.model.DiffCategory import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElement import org.koin.ktor.ext.inject -@KtorExperimentalLocationsAPI @Location("/{annotationId}") class GetAnnotation(val annotationId: String) -@KtorExperimentalLocationsAPI @Location("/{annotationId}") class PublishAnnotation(val annotationId: String) data class PublishAnnotationBody(val isDraft: Boolean) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/data") class GetAnnotationData(val annotationId: String) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots") class AppendTemporarySnapshot(val annotationId: String) data class AppendTemporarySnapshotBody(val changeId: String) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots") class ModifyTemporarySnapshot(val annotationId: String) data class ModifyTemporarySnapshotBody(val filePath: String, val fileContent: String, val isRemoved: Boolean) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots") class SettleTemporarySnapshot(val annotationId: String) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots/{snapshotId}/changes") class AppendChange(val annotationId: String, val snapshotId: String) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots/{snapshotId}/changes/{changeId}") class UpdateChange(val annotationId: String, val snapshotId: String, val changeId: String) data class UpdateChangeBody(val description: String, val typeName: String) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots/{snapshotId}/changes/{changeId}") class RemoveChange(val annotationId: String, val snapshotId: String, val changeId: String) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots/{snapshotId}/changes/{changeId}/{diffCategory}") class PutNewParameter(val annotationId: String, val snapshotId: String, val changeId: String, val diffCategory: DiffCategory) data class PutNewParameterBody(val parameterName: String, val elementType: String, val multiple: Boolean) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots/{snapshotId}/changes/{changeId}/{diffCategory}/{parameterName}") class AppendParameterElement(val annotationId: String, val snapshotId: String, val changeId: String, val diffCategory: DiffCategory, val parameterName: String) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots/{snapshotId}/changes/{changeId}/{diffCategory}/{parameterName}") class RemoveParameter(val annotationId: String, val snapshotId: String, val changeId: String, val diffCategory: DiffCategory, val parameterName: String) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots/{snapshotId}/changes/{changeId}/{diffCategory}/{parameterName}") class VerifyParameter(val annotationId: String, val snapshotId: String, val changeId: String, val diffCategory: DiffCategory, val parameterName: String) data class VerifyParameterBody(val isVerified: Boolean) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots/{snapshotId}/changes/{changeId}/{diffCategory}/{parameterName}/{elementIndex}") class UpdateParameterValue(val annotationId: String, val snapshotId: String, val changeId: String, val diffCategory: DiffCategory, val parameterName: String, val elementIndex: Int) data class UpdateParameterValueBody(val element: CodeElement) -@KtorExperimentalLocationsAPI @Location("/{annotationId}/snapshots/{snapshotId}/changes/{changeId}/{diffCategory}/{parameterName}/{elementIndex}") class ClearParameterValue(val annotationId: String, val snapshotId: String, val changeId: String, val diffCategory: DiffCategory, val parameterName: String, val elementIndex: Int) -@KtorExperimentalLocationsAPI fun Route.annotations() { route("/annotations") { val annotationController: AnnotationController by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt index e612e450..c6dd601f 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt @@ -1,7 +1,6 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api import io.ktor.application.call -import io.ktor.locations.KtorExperimentalLocationsAPI import io.ktor.locations.Location import io.ktor.locations.get import io.ktor.locations.post @@ -17,11 +16,9 @@ import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.ChangeTypeContro import jp.ac.titech.cs.se.refactorhub.core.model.element.CodeElementMetadata import org.koin.ktor.ext.inject -@KtorExperimentalLocationsAPI @Location("") class GetChangeTypes -@KtorExperimentalLocationsAPI @Location("") class CreateChangeType data class CreateChangeTypeBody( diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt index c802c0da..5620a5c9 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt @@ -1,7 +1,6 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api import io.ktor.application.call -import io.ktor.locations.KtorExperimentalLocationsAPI import io.ktor.locations.Location import io.ktor.locations.get import io.ktor.response.respond @@ -10,11 +9,9 @@ import io.ktor.routing.route import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.CodeElementController import org.koin.ktor.ext.inject -@KtorExperimentalLocationsAPI @Location("") class GetCodeElementTypes -@KtorExperimentalLocationsAPI fun Route.codeElementTypes() { route("/code_element_types") { val codeElementController: CodeElementController by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt index 75d0bc2c..42bbdd60 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt @@ -1,7 +1,6 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api import io.ktor.application.call -import io.ktor.locations.KtorExperimentalLocationsAPI import io.ktor.locations.Location import io.ktor.locations.get import io.ktor.locations.post @@ -16,11 +15,9 @@ import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.ExperimentController import org.koin.ktor.ext.inject -@KtorExperimentalLocationsAPI @Location("") class GetExperiments -@KtorExperimentalLocationsAPI @Location("") class CreateExperiment data class Commit( @@ -34,19 +31,15 @@ data class CreateExperimentBody( val commits: List ) -@KtorExperimentalLocationsAPI @Location("/{experimentId}") data class GetExperiment(val experimentId: String) -@KtorExperimentalLocationsAPI @Location("/{experimentId}/commits/{commitId}") data class StartAnnotation(val experimentId: String, val commitId: String) -@KtorExperimentalLocationsAPI @Location("/{experimentId}/result") data class GetExperimentResult(val experimentId: String) -@KtorExperimentalLocationsAPI fun Route.experiments() { route("/experiments") { val experimentController: ExperimentController by inject() diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt index 5d2bd999..901d9404 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt @@ -12,15 +12,12 @@ import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.UserController import org.koin.ktor.ext.inject -@KtorExperimentalLocationsAPI @Location("/me") class GetMe -@KtorExperimentalLocationsAPI @Location("/{userId}/annotations") data class GetUserAnnotationIds(val userId: String) -@KtorExperimentalLocationsAPI fun Route.users() { route("/users") { val userController: UserController by inject() From 9fae6e3d61efd0d46401582bf9c4dfe8a1d0cda8 Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 12:01:07 +0900 Subject: [PATCH 04/14] update Ktor imports to use new server package structure --- .../app/infrastructure/Application.kt | 26 +++++++------- .../app/infrastructure/auth/GitHub.kt | 36 +++++++++---------- .../app/infrastructure/database/Database.kt | 2 +- .../feature/SinglePageApplication.kt | 32 ++++++++--------- .../app/infrastructure/feature/StatusPages.kt | 2 +- .../app/infrastructure/router/Routing.kt | 4 +-- .../app/infrastructure/router/api/Actions.kt | 18 +++++----- .../infrastructure/router/api/Annotations.kt | 16 ++++----- .../infrastructure/router/api/ChangeTypes.kt | 20 +++++------ .../router/api/CodeElementTypes.kt | 12 +++---- .../infrastructure/router/api/Experiments.kt | 20 +++++------ .../app/infrastructure/router/api/Users.kt | 14 ++++---- 12 files changed, 101 insertions(+), 101 deletions(-) diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt index eda885b1..c3093565 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt @@ -1,20 +1,20 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure import com.fasterxml.jackson.databind.SerializationFeature -import io.ktor.application.Application -import io.ktor.application.install -import io.ktor.auth.Authentication -import io.ktor.features.AutoHeadResponse -import io.ktor.features.CallLogging -import io.ktor.features.ContentNegotiation -import io.ktor.features.StatusPages -import io.ktor.jackson.jackson -import io.ktor.locations.Locations -import io.ktor.routing.routing +import io.ktor.server.application.Application +import io.ktor.server.application.install +import io.ktor.server.auth.Authentication +import io.ktor.server.plugins.autohead.AutoHeadResponse +import io.ktor.server.plugins.callloging.CallLogging +import io.ktor.server.plugins.contentnegotiation.ContentNegotiation +import io.ktor.server.plugins.statuspages.StatusPages +import io.ktor.serialization.jackson.jackson +import io.ktor.server.locations.Locations +import io.ktor.server.routing.routing import io.ktor.server.netty.EngineMain -import io.ktor.sessions.SessionStorageMemory -import io.ktor.sessions.Sessions -import io.ktor.sessions.cookie +import io.ktor.server.sessions.SessionStorageMemory +import io.ktor.server.sessions.Sessions +import io.ktor.server.sessions.cookie import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.github import jp.ac.titech.cs.se.refactorhub.app.infrastructure.database.connectDB diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt index 4ed7bfd7..ec849f53 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt @@ -1,25 +1,25 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth -import io.ktor.application.ApplicationCall -import io.ktor.application.call -import io.ktor.auth.Authentication -import io.ktor.auth.OAuthAccessTokenResponse -import io.ktor.auth.OAuthServerSettings -import io.ktor.auth.authenticate -import io.ktor.auth.authentication -import io.ktor.auth.oauth +import io.ktor.server.application.ApplicationCall +import io.ktor.server.application.call +import io.ktor.server.auth.Authentication +import io.ktor.server.auth.OAuthAccessTokenResponse +import io.ktor.server.auth.OAuthServerSettings +import io.ktor.server.auth.authenticate +import io.ktor.server.auth.authentication +import io.ktor.server.auth.oauth import io.ktor.client.HttpClient import io.ktor.client.engine.apache.Apache -import io.ktor.locations.Location -import io.ktor.locations.location -import io.ktor.locations.locations -import io.ktor.request.host -import io.ktor.request.port -import io.ktor.response.respondRedirect -import io.ktor.response.respondText -import io.ktor.routing.Route -import io.ktor.sessions.sessions -import io.ktor.sessions.set +import io.ktor.server.locations.Location +import io.ktor.server.locations.location +import io.ktor.server.locations.locations +import io.ktor.server.request.host +import io.ktor.server.request.port +import io.ktor.server.response.respondRedirect +import io.ktor.server.response.respondText +import io.ktor.server.routing.Route +import io.ktor.server.sessions.sessions +import io.ktor.server.sessions.set import jp.ac.titech.cs.se.refactorhub.app.model.User import jp.ac.titech.cs.se.refactorhub.app.usecase.service.UserService import org.kohsuke.github.GitHub diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/Database.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/Database.kt index 8bca9336..1053caa6 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/Database.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/Database.kt @@ -2,7 +2,7 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.database import com.zaxxer.hikari.HikariConfig import com.zaxxer.hikari.HikariDataSource -import io.ktor.application.Application +import io.ktor.server.application.Application import jp.ac.titech.cs.se.refactorhub.app.infrastructure.database.migration.initializeDatabase import org.flywaydb.core.Flyway import org.jetbrains.exposed.sql.Database diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/SinglePageApplication.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/SinglePageApplication.kt index ac2a933f..e6b66a44 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/SinglePageApplication.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/SinglePageApplication.kt @@ -1,29 +1,29 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.feature -import io.ktor.application.Application -import io.ktor.application.ApplicationCallPipeline -import io.ktor.application.ApplicationFeature -import io.ktor.application.call +import io.ktor.server.application.Application +import io.ktor.server.application.ApplicationCallPipeline +import io.ktor.server.application.BaseApplicationPlugin +import io.ktor.server.application.call import io.ktor.http.ContentType import io.ktor.http.HttpStatusCode -import io.ktor.http.content.HttpStatusCodeContent -import io.ktor.http.content.JarFileContent -import io.ktor.http.content.defaultResource -import io.ktor.http.content.resolveResource -import io.ktor.http.content.resources -import io.ktor.http.content.static -import io.ktor.request.acceptItems -import io.ktor.request.uri -import io.ktor.response.ApplicationSendPipeline -import io.ktor.response.respond -import io.ktor.routing.routing +import io.ktor.server.http.content.HttpStatusCodeContent +import io.ktor.server.http.content.JarFileContent +import io.ktor.server.http.content.defaultResource +import io.ktor.server.http.content.resolveResource +import io.ktor.server.http.content.resources +import io.ktor.server.http.content.static +import io.ktor.server.request.acceptItems +import io.ktor.server.request.uri +import io.ktor.server.response.ApplicationSendPipeline +import io.ktor.server.response.respond +import io.ktor.server.routing.routing import io.ktor.util.AttributeKey import java.io.FileNotFoundException import java.nio.file.Paths class SinglePageApplication(private val configuration: Configuration) { - companion object Feature : ApplicationFeature { + companion object Feature : BaseApplicationPlugin { override val key = AttributeKey("SinglePageApplication") diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/StatusPages.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/StatusPages.kt index cc0b1696..90af7e06 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/StatusPages.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/StatusPages.kt @@ -3,7 +3,7 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.feature import io.ktor.application.call import io.ktor.features.StatusPages import io.ktor.http.HttpStatusCode -import io.ktor.response.respond +import io.ktor.server.response.respond import jp.ac.titech.cs.se.refactorhub.app.exception.* data class ErrorResponse( diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt index 973de24a..e283cdaf 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/Routing.kt @@ -1,7 +1,7 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router -import io.ktor.routing.Routing -import io.ktor.routing.route +import io.ktor.server.routing.Routing +import io.ktor.server.routing.route import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.login import jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api.* diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt index c2ec961e..311f029b 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Actions.kt @@ -1,15 +1,15 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api import com.fasterxml.jackson.databind.JsonNode -import io.ktor.application.call -import io.ktor.locations.Location -import io.ktor.locations.post -import io.ktor.request.receive -import io.ktor.response.respond -import io.ktor.routing.Route -import io.ktor.routing.route -import io.ktor.sessions.get -import io.ktor.sessions.sessions +import io.ktor.server.application.call +import io.ktor.server.locations.Location +import io.ktor.server.locations.post +import io.ktor.server.request.receive +import io.ktor.server.response.respond +import io.ktor.server.routing.Route +import io.ktor.server.routing.route +import io.ktor.server.sessions.get +import io.ktor.server.sessions.sessions import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.ActionController diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt index 41ce39e7..c25064c2 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Annotations.kt @@ -3,14 +3,14 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.node.ArrayNode import com.fasterxml.jackson.databind.node.ObjectNode -import io.ktor.application.call -import io.ktor.locations.* -import io.ktor.request.* -import io.ktor.response.respond -import io.ktor.routing.Route -import io.ktor.routing.route -import io.ktor.sessions.get -import io.ktor.sessions.sessions +import io.ktor.server.application.call +import io.ktor.server.locations.* +import io.ktor.server.request.* +import io.ktor.server.response.respond +import io.ktor.server.routing.Route +import io.ktor.server.routing.route +import io.ktor.server.sessions.get +import io.ktor.server.sessions.sessions import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.ActionController diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt index c6dd601f..940fd7ec 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt @@ -1,15 +1,15 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api -import io.ktor.application.call -import io.ktor.locations.Location -import io.ktor.locations.get -import io.ktor.locations.post -import io.ktor.request.receive -import io.ktor.response.respond -import io.ktor.routing.Route -import io.ktor.routing.route -import io.ktor.sessions.get -import io.ktor.sessions.sessions +import io.ktor.server.application.call +import io.ktor.server.locations.Location +import io.ktor.server.locations.get +import io.ktor.server.locations.post +import io.ktor.server.request.receive +import io.ktor.server.response.respond +import io.ktor.server.routing.Route +import io.ktor.server.routing.route +import io.ktor.server.sessions.get +import io.ktor.server.sessions.sessions import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.ChangeTypeController diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt index 5620a5c9..1a12b2ff 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/CodeElementTypes.kt @@ -1,11 +1,11 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api -import io.ktor.application.call -import io.ktor.locations.Location -import io.ktor.locations.get -import io.ktor.response.respond -import io.ktor.routing.Route -import io.ktor.routing.route +import io.ktor.server.application.call +import io.ktor.server.locations.Location +import io.ktor.server.locations.get +import io.ktor.server.response.respond +import io.ktor.server.routing.Route +import io.ktor.server.routing.route import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.CodeElementController import org.koin.ktor.ext.inject diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt index 42bbdd60..4c27ada8 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Experiments.kt @@ -1,15 +1,15 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api -import io.ktor.application.call -import io.ktor.locations.Location -import io.ktor.locations.get -import io.ktor.locations.post -import io.ktor.request.receive -import io.ktor.response.respond -import io.ktor.routing.Route -import io.ktor.routing.route -import io.ktor.sessions.get -import io.ktor.sessions.sessions +import io.ktor.server.application.call +import io.ktor.server.locations.Location +import io.ktor.server.locations.get +import io.ktor.server.locations.post +import io.ktor.server.request.receive +import io.ktor.server.response.respond +import io.ktor.server.routing.Route +import io.ktor.server.routing.route +import io.ktor.server.sessions.get +import io.ktor.server.sessions.sessions import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.ExperimentController diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt index 901d9404..88f1bc22 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/Users.kt @@ -1,12 +1,12 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.api -import io.ktor.application.call -import io.ktor.locations.* -import io.ktor.response.respond -import io.ktor.routing.Route -import io.ktor.routing.route -import io.ktor.sessions.get -import io.ktor.sessions.sessions +import io.ktor.server.application.call +import io.ktor.server.locations.* +import io.ktor.server.response.respond +import io.ktor.server.routing.Route +import io.ktor.server.routing.route +import io.ktor.server.sessions.get +import io.ktor.server.sessions.sessions import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.Session import jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth.toUUID import jp.ac.titech.cs.se.refactorhub.app.interfaces.controller.UserController From 4032df2b48236d368194df29ea8a800f136ed937 Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 12:02:19 +0900 Subject: [PATCH 05/14] update Koin import to use the new plugin package --- .../titech/cs/se/refactorhub/app/infrastructure/Application.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt index c3093565..d469b11c 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/Application.kt @@ -22,7 +22,7 @@ import jp.ac.titech.cs.se.refactorhub.app.infrastructure.feature.SinglePageAppli import jp.ac.titech.cs.se.refactorhub.app.infrastructure.feature.setExceptions import jp.ac.titech.cs.se.refactorhub.app.infrastructure.module.KoinModule import jp.ac.titech.cs.se.refactorhub.app.infrastructure.router.root -import org.koin.ktor.ext.Koin +import org.koin.ktor.plugin.Koin fun main(args: Array) = EngineMain.main(args) From f77692cefdf56f09af983cb5a479e743adfd4f53 Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 12:03:41 +0900 Subject: [PATCH 06/14] update ObjectMapper injection syntax --- .../app/infrastructure/database/dao/Actions.kt | 4 ++-- .../app/infrastructure/database/dao/ChangeTypes.kt | 8 ++++---- .../app/infrastructure/database/dao/Changes.kt | 4 ++-- .../app/infrastructure/database/dao/Commits.kt | 10 +++++----- .../app/infrastructure/database/dao/Shanpshots.kt | 10 +++++----- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Actions.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Actions.kt index 82584334..452aec55 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Actions.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Actions.kt @@ -43,11 +43,11 @@ class ActionDao(id: EntityID) : LongEntity(id), ModelConverter { } private fun stringify(data: JsonNode): String { - val mapper by inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.writeValueAsString(data) } private fun parse(src: String): JsonNode { - val mapper by inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.readValue(src) } diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/ChangeTypes.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/ChangeTypes.kt index 73cf39e4..e10b3087 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/ChangeTypes.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/ChangeTypes.kt @@ -44,19 +44,19 @@ class ChangeTypeDao(id: EntityID) : StringEntity(id), ModelConverter): String { - val mapper by inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.writeValueAsString(data) } private fun parseParameterMap(src: String): Map { - val mapper by inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.readValue(src) } private fun stringifyTags(data: List): String { - val mapper by inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.writeValueAsString(data) } private fun parseTags(src: String): List { - val mapper by inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.readValue(src) } diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Changes.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Changes.kt index e9040324..166f1972 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Changes.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Changes.kt @@ -38,11 +38,11 @@ class ChangeDao(id: EntityID) : UUIDEntity(id), ModelConverter { } private fun stringifyParameterData(data: Change.ParameterData): String { - val mapper by inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.writeValueAsString(data) } private fun parseParameterData(src: String): Change.ParameterData { - val mapper by inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.readValue(src) } diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Commits.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Commits.kt index 06f3cb60..eca4f862 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Commits.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Commits.kt @@ -10,7 +10,7 @@ import org.jetbrains.exposed.dao.UUIDEntity import org.jetbrains.exposed.dao.UUIDEntityClass import org.jetbrains.exposed.dao.id.EntityID import org.jetbrains.exposed.dao.id.UUIDTable -import org.koin.java.KoinJavaComponent +import org.koin.java.KoinJavaComponent.inject import java.util.UUID object Commits : UUIDTable("commits") { @@ -91,19 +91,19 @@ class CommitOverviewDao(id: EntityID) : UUIDEntity(id), ModelConverter): String { - val mapper by KoinJavaComponent.inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.writeValueAsString(data) } private fun parseFileList(src: String): List { - val mapper by KoinJavaComponent.inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.readValue(src) } private fun stringifyFileMappings(data: List): String { - val mapper by KoinJavaComponent.inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.writeValueAsString(data) } private fun parseFileMappings(src: String): List { - val mapper by KoinJavaComponent.inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.readValue(src) } diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Shanpshots.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Shanpshots.kt index 34476338..ba5d0b02 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Shanpshots.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/database/dao/Shanpshots.kt @@ -10,7 +10,7 @@ import org.jetbrains.exposed.dao.UUIDEntity import org.jetbrains.exposed.dao.UUIDEntityClass import org.jetbrains.exposed.dao.id.EntityID import org.jetbrains.exposed.dao.id.UUIDTable -import org.koin.java.KoinJavaComponent +import org.koin.java.KoinJavaComponent.inject import java.util.UUID object Snapshots : UUIDTable("snapshots") { @@ -42,19 +42,19 @@ class SnapshotDao(id: EntityID) : UUIDEntity(id), ModelConverter } private fun stringifyFileList(data: List): String { - val mapper by KoinJavaComponent.inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.writeValueAsString(data) } private fun parseFileList(src: String): List { - val mapper by KoinJavaComponent.inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.readValue(src) } private fun stringifyFileMappings(data: List): String { - val mapper by KoinJavaComponent.inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.writeValueAsString(data) } private fun parseFileMappings(src: String): List { - val mapper by KoinJavaComponent.inject(ObjectMapper::class.java) + val mapper: ObjectMapper by inject(ObjectMapper::class.java) return mapper.readValue(src) } From d8872bbde71d4f90dc1105a44c1100acfa3c6779 Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 12:06:27 +0900 Subject: [PATCH 07/14] change Authentication.Configuration to AuthenticationConfig --- .../cs/se/refactorhub/app/infrastructure/auth/GitHub.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt index ec849f53..1006c269 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/auth/GitHub.kt @@ -2,7 +2,7 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.auth import io.ktor.server.application.ApplicationCall import io.ktor.server.application.call -import io.ktor.server.auth.Authentication +import io.ktor.server.auth.AuthenticationConfig import io.ktor.server.auth.OAuthAccessTokenResponse import io.ktor.server.auth.OAuthServerSettings import io.ktor.server.auth.authenticate @@ -30,7 +30,7 @@ private const val GITHUB = "github" @Location("/login") private class Login -fun Authentication.Configuration.github() { +fun AuthenticationConfig.github() { oauth(GITHUB) { client = HttpClient(Apache) providerLookup = { @@ -81,7 +81,7 @@ fun Route.login() { } private fun getMe(accessToken: String): User { - val userService by inject(UserService::class.java) + val userService:UserService by inject(UserService::class.java) val me = GitHub.connectUsingOAuth(accessToken).myself return userService.createIfNotExist(me.id.toInt(), me.login) } From 0c0847fb1d58a8f78798d65f91a37396f0a14a54 Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 12:06:48 +0900 Subject: [PATCH 08/14] update StatusPages configuration to use StatusPagesConfig and improve exception handling --- .../app/infrastructure/feature/StatusPages.kt | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/StatusPages.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/StatusPages.kt index 90af7e06..f660c1aa 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/StatusPages.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/feature/StatusPages.kt @@ -1,7 +1,6 @@ package jp.ac.titech.cs.se.refactorhub.app.infrastructure.feature -import io.ktor.application.call -import io.ktor.features.StatusPages +import io.ktor.server.plugins.statuspages.StatusPagesConfig import io.ktor.http.HttpStatusCode import io.ktor.server.response.respond import jp.ac.titech.cs.se.refactorhub.app.exception.* @@ -10,20 +9,20 @@ data class ErrorResponse( val message: String? ) -fun StatusPages.Configuration.setExceptions() { - exception { - call.respond(HttpStatusCode.BadRequest, ErrorResponse(it.message)) +fun StatusPagesConfig.setExceptions() { + exception { call, cause -> + call.respond(HttpStatusCode.BadRequest, ErrorResponse(cause.message)) } - exception { - call.respond(HttpStatusCode.Unauthorized, ErrorResponse(it.message)) + exception { call, cause -> + call.respond(HttpStatusCode.Unauthorized, ErrorResponse(cause.message)) } - exception { - call.respond(HttpStatusCode.Forbidden, ErrorResponse(it.message)) + exception { call, cause -> + call.respond(HttpStatusCode.Forbidden, ErrorResponse(cause.message)) } - exception { - call.respond(HttpStatusCode.NotFound, ErrorResponse(it.message)) + exception { call, cause -> + call.respond(HttpStatusCode.NotFound, ErrorResponse(cause.message)) } - exception { - call.respond(HttpStatusCode.Conflict, ErrorResponse(it.message)) + exception { call, cause -> + call.respond(HttpStatusCode.Conflict, ErrorResponse(cause.message)) } } From 60249f52d102b226f48618842edf9327278e6a9d Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 13:07:45 +0900 Subject: [PATCH 09/14] remove experimental Ktor locations API annotation from changeTypes route --- .../se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt index 940fd7ec..0ad668a8 100644 --- a/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt +++ b/src/main/kotlin/jp/ac/titech/cs/se/refactorhub/app/infrastructure/router/api/ChangeTypes.kt @@ -29,7 +29,6 @@ data class CreateChangeTypeBody( val referenceUrl: String = "" ) -@KtorExperimentalLocationsAPI fun Route.changeTypes() { route("/change_types") { val changeTypeController: ChangeTypeController by inject() From 666fc74d1d89d3af632afacdfac17257321e8a50 Mon Sep 17 00:00:00 2001 From: DAiKi610 <142865060+DAiKi610@users.noreply.github.com> Date: Tue, 22 Jul 2025 13:43:55 +0900 Subject: [PATCH 10/14] remove obsolete version specifications --- docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5e047903..d494897e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,3 @@ -version: "3" services: app: build: ./ From 408fd1261440e7f479ef99d90c0e5833502ab44a Mon Sep 17 00:00:00 2001 From: Daiki Muto Date: Tue, 14 Oct 2025 12:10:08 +0900 Subject: [PATCH 11/14] start the application after waiting for the DB to start --- Dockerfile | 3 +++ docker-compose.yml | 1 + wait-for-it.sh | 17 +++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100755 wait-for-it.sh diff --git a/Dockerfile b/Dockerfile index 29e0f611..e4cdb181 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,5 +12,8 @@ FROM ubuntu:latest RUN apt-get -y update RUN apt-get -y install git RUN apt-get -y install openjdk-17-jdk +RUN apt-get -y install netcat-openbsd COPY --from=build /app/build/libs/*.jar app.jar +COPY wait-for-it.sh /wait-for-it.sh +RUN chmod +x /wait-for-it.sh CMD [ "java", "-jar", "/app.jar" ] diff --git a/docker-compose.yml b/docker-compose.yml index d494897e..377bbb6b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,6 +13,7 @@ services: DATABASE_URL: postgres://rhuser:rhpass@db:5432/refactorhub depends_on: - db + entrypoint: ["/wait-for-it.sh", "db:5432", "--", "java", "-jar", "/app.jar"] db: image: postgres:12 diff --git a/wait-for-it.sh b/wait-for-it.sh new file mode 100755 index 00000000..25d053a8 --- /dev/null +++ b/wait-for-it.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# wait-for-it.sh: Wait until a host and port are available +# (Official: https://github.com/vishnubob/wait-for-it) + +set -e + +HOST=$(echo $1 | cut -d: -f1) +PORT=$(echo $1 | cut -d: -f2) +shift + +while ! nc -z $HOST $PORT; do + echo "Waiting for $HOST:$PORT..." + sleep 1 +done + +exec "$@" + From 50b0551a7c8607156d0b255accdbdc897e8d6a49 Mon Sep 17 00:00:00 2001 From: Daiki Muto Date: Tue, 14 Oct 2025 14:26:32 +0900 Subject: [PATCH 12/14] fix typo --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e4cdb181..51f7ea29 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ WORKDIR /app # cache dependencies COPY build.gradle.kts settings.gradle.kts gradle.properties gradle gradlew gradlew.bat buildSrc /app/ COPY client/package.json client/build.gradle.kts /app/client/ -RUN ./gradlew shadowJar --paralell --no-daemon --continue || true +RUN ./gradlew shadowJar --parallel --no-daemon --continue || true COPY . /app RUN [ "./gradlew", "shadowJar", "--parallel", "--no-daemon" ] From 1a8077f4414153ec45f595c9d2282dcbfe40d25b Mon Sep 17 00:00:00 2001 From: Daiki Muto Date: Tue, 14 Oct 2025 18:52:42 +0900 Subject: [PATCH 13/14] update dependency versions to fix the slf4j version inconsistency --- buildSrc/src/main/kotlin/Versions.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 7036affc..d995f4cb 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -10,14 +10,14 @@ object Versions { const val ktor = "2.3.11" const val koin = "3.5.6" const val exposed = "0.46.0" - const val hikaricp = "3.4.5" + const val hikaricp = "6.3.2" const val flyway = "7.7.0" const val postgresql = "42.2.18" const val h2 = "1.4.200" - const val logback = "1.2.3" + const val logback = "1.4.14" const val janino = "3.1.3" const val jdt = "3.24.0" - const val refminer = "2.0.3" + const val refminer = "2.4.0" const val github = "1.122" const val jackson = "2.12.1" const val junit = "5.7.1" From c9b995d945ca5ee3817225e9d0e3b0bcc6c0a537 Mon Sep 17 00:00:00 2001 From: Daiki Muto Date: Thu, 16 Oct 2025 15:23:05 +0900 Subject: [PATCH 14/14] remove non-existent commits --- src/main/resources/data/experiment-1.ndjson | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/resources/data/experiment-1.ndjson b/src/main/resources/data/experiment-1.ndjson index 337845d1..c96f013e 100644 --- a/src/main/resources/data/experiment-1.ndjson +++ b/src/main/resources/data/experiment-1.ndjson @@ -4,7 +4,6 @@ {"sha":"e19c6874431dc2c3046436c2ac249a0ab2ef3457","owner":"brettwooldridge","repository":"HikariCP"} {"sha":"6abc40ed4850d74ee6c155f5a28f8b34881a0284","owner":"BuildCraft","repository":"BuildCraft"} {"sha":"c76e6e1f27a6697b3b88ad4ed710441b801afb3b","owner":"rackerlabs","repository":"blueflood"} -{"sha":"a896b8bf8f7067e41291eb7771deed76b3621fa0","owner":"VoltDB","repository":"voltdb"} {"sha":"bec15926deb49d2b3f7b979d4cfc819947a434ec","owner":"languagetool-org","repository":"languagetool"} {"sha":"71820e573134be3fad3935035249cd77c4412f4e","owner":"SlimeKnights","repository":"TinkersConstruct"} {"sha":"dd4bc630c3de70204081ab196945d6b55ab03beb","owner":"spring-projects","repository":"spring-framework"} @@ -13,4 +12,3 @@ {"sha":"40e41d11d7847d660bba6691859b0506514bd0ac","owner":"bennidi","repository":"mbassador"} {"sha":"36d1b0717bc5836bba39985caadc2df5f2533ac4","owner":"spring-projects","repository":"spring-data-jpa"} {"sha":"a70ca1d9ad2ea07b19c5e1f9540c809d7a12d3fb","owner":"Activiti","repository":"Activiti"} -{"sha":"cfc54e8afa7ee7d5376525a84559e90b21487ccf","owner":"VoltDB","repository":"voltdb"}