From dd71e821fc6c19f935b051d8d25d85115616a2e6 Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Wed, 8 Jan 2020 13:31:11 +0800 Subject: [PATCH] refactor: move application services to their own package --- .../service/AsyncOrchestrator.kt | 3 ++- .../service/BookLifecycle.kt | 9 +++++---- .../service/LibraryLifecycle.kt | 2 +- .../gotson/komga/domain/service/LibraryScanner.kt | 1 + .../gotson/komga/interfaces/rest/AdminController.kt | 2 +- .../gotson/komga/interfaces/rest/BookController.kt | 4 ++-- .../komga/interfaces/rest/LibraryController.kt | 4 ++-- .../komga/interfaces/rest/SeriesController.kt | 2 +- .../scheduler/PeriodicScannerController.kt | 2 +- .../service/LibraryLifecycleTest.kt | 2 +- .../komga/architecture/NamingConventionTest.kt | 4 ++-- .../komga/domain/service/LibraryScannerTest.kt | 13 +++++++------ 12 files changed, 26 insertions(+), 22 deletions(-) rename komga/src/main/kotlin/org/gotson/komga/{domain => application}/service/AsyncOrchestrator.kt (96%) rename komga/src/main/kotlin/org/gotson/komga/{domain => application}/service/BookLifecycle.kt (93%) rename komga/src/main/kotlin/org/gotson/komga/{domain => application}/service/LibraryLifecycle.kt (98%) rename komga/src/test/kotlin/org/gotson/komga/{domain => application}/service/LibraryLifecycleTest.kt (98%) diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/AsyncOrchestrator.kt b/komga/src/main/kotlin/org/gotson/komga/application/service/AsyncOrchestrator.kt similarity index 96% rename from komga/src/main/kotlin/org/gotson/komga/domain/service/AsyncOrchestrator.kt rename to komga/src/main/kotlin/org/gotson/komga/application/service/AsyncOrchestrator.kt index 7f48e5d42..59da836c0 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/AsyncOrchestrator.kt +++ b/komga/src/main/kotlin/org/gotson/komga/application/service/AsyncOrchestrator.kt @@ -1,4 +1,4 @@ -package org.gotson.komga.domain.service +package org.gotson.komga.application.service import mu.KotlinLogging import org.apache.commons.lang3.time.DurationFormatUtils @@ -6,6 +6,7 @@ import org.gotson.komga.domain.model.Book import org.gotson.komga.domain.model.Library import org.gotson.komga.domain.persistence.BookRepository import org.gotson.komga.domain.persistence.LibraryRepository +import org.gotson.komga.domain.service.LibraryScanner import org.springframework.scheduling.annotation.Async import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/BookLifecycle.kt b/komga/src/main/kotlin/org/gotson/komga/application/service/BookLifecycle.kt similarity index 93% rename from komga/src/main/kotlin/org/gotson/komga/domain/service/BookLifecycle.kt rename to komga/src/main/kotlin/org/gotson/komga/application/service/BookLifecycle.kt index 1818aebfc..e98e2b550 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/BookLifecycle.kt +++ b/komga/src/main/kotlin/org/gotson/komga/application/service/BookLifecycle.kt @@ -1,4 +1,4 @@ -package org.gotson.komga.domain.service +package org.gotson.komga.application.service import mu.KotlinLogging import org.apache.commons.lang3.time.DurationFormatUtils @@ -8,6 +8,7 @@ import org.gotson.komga.domain.model.ImageConversionException import org.gotson.komga.domain.model.Media import org.gotson.komga.domain.model.MediaNotReadyException import org.gotson.komga.domain.persistence.BookRepository +import org.gotson.komga.domain.service.BookAnalyzer import org.gotson.komga.infrastructure.image.ImageConverter import org.gotson.komga.infrastructure.image.ImageType import org.springframework.scheduling.annotation.Async @@ -21,9 +22,9 @@ private val logger = KotlinLogging.logger {} @Service class BookLifecycle( - private val bookRepository: BookRepository, - private val bookAnalyzer: BookAnalyzer, - private val imageConverter: ImageConverter + private val bookRepository: BookRepository, + private val bookAnalyzer: BookAnalyzer, + private val imageConverter: ImageConverter ) { @Transactional diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryLifecycle.kt b/komga/src/main/kotlin/org/gotson/komga/application/service/LibraryLifecycle.kt similarity index 98% rename from komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryLifecycle.kt rename to komga/src/main/kotlin/org/gotson/komga/application/service/LibraryLifecycle.kt index 0685c3df2..8db2fa0dc 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryLifecycle.kt +++ b/komga/src/main/kotlin/org/gotson/komga/application/service/LibraryLifecycle.kt @@ -1,4 +1,4 @@ -package org.gotson.komga.domain.service +package org.gotson.komga.application.service import mu.KotlinLogging import org.gotson.komga.domain.model.DirectoryNotFoundException diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryScanner.kt b/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryScanner.kt index d3a756eaa..d0b87ae10 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryScanner.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/service/LibraryScanner.kt @@ -2,6 +2,7 @@ package org.gotson.komga.domain.service import mu.KotlinLogging import org.apache.commons.lang3.time.DurationFormatUtils +import org.gotson.komga.application.service.BookLifecycle import org.gotson.komga.domain.model.Library import org.gotson.komga.domain.model.Media import org.gotson.komga.domain.persistence.BookRepository diff --git a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/AdminController.kt b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/AdminController.kt index dd507a9e1..0fdb0fef2 100644 --- a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/AdminController.kt +++ b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/AdminController.kt @@ -1,7 +1,7 @@ package org.gotson.komga.interfaces.rest import mu.KotlinLogging -import org.gotson.komga.domain.service.AsyncOrchestrator +import org.gotson.komga.application.service.AsyncOrchestrator import org.springframework.http.HttpStatus import org.springframework.security.access.prepost.PreAuthorize import org.springframework.web.bind.annotation.PostMapping diff --git a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/BookController.kt b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/BookController.kt index 74260eae5..5b9102898 100644 --- a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/BookController.kt +++ b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/BookController.kt @@ -3,14 +3,14 @@ package org.gotson.komga.interfaces.rest import com.github.klinq.jpaspec.`in` import com.github.klinq.jpaspec.likeLower import mu.KotlinLogging +import org.gotson.komga.application.service.AsyncOrchestrator +import org.gotson.komga.application.service.BookLifecycle import org.gotson.komga.domain.model.Book import org.gotson.komga.domain.model.ImageConversionException import org.gotson.komga.domain.model.Media import org.gotson.komga.domain.model.MediaNotReadyException import org.gotson.komga.domain.persistence.BookRepository import org.gotson.komga.domain.persistence.SeriesRepository -import org.gotson.komga.domain.service.AsyncOrchestrator -import org.gotson.komga.domain.service.BookLifecycle import org.gotson.komga.infrastructure.image.ImageType import org.gotson.komga.infrastructure.security.KomgaPrincipal import org.gotson.komga.interfaces.rest.dto.BookDto diff --git a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/LibraryController.kt b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/LibraryController.kt index a47fa3797..286f2f8ec 100644 --- a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/LibraryController.kt +++ b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/LibraryController.kt @@ -1,14 +1,14 @@ package org.gotson.komga.interfaces.rest import mu.KotlinLogging +import org.gotson.komga.application.service.AsyncOrchestrator +import org.gotson.komga.application.service.LibraryLifecycle import org.gotson.komga.domain.model.DirectoryNotFoundException import org.gotson.komga.domain.model.DuplicateNameException import org.gotson.komga.domain.model.Library import org.gotson.komga.domain.model.PathContainedInPath import org.gotson.komga.domain.persistence.BookRepository import org.gotson.komga.domain.persistence.LibraryRepository -import org.gotson.komga.domain.service.AsyncOrchestrator -import org.gotson.komga.domain.service.LibraryLifecycle import org.gotson.komga.infrastructure.security.KomgaPrincipal import org.springframework.data.domain.Sort import org.springframework.data.repository.findByIdOrNull diff --git a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt index 04bd86a6d..82f614f7c 100644 --- a/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt +++ b/komga/src/main/kotlin/org/gotson/komga/interfaces/rest/SeriesController.kt @@ -3,12 +3,12 @@ package org.gotson.komga.interfaces.rest import com.github.klinq.jpaspec.`in` import com.github.klinq.jpaspec.likeLower import mu.KotlinLogging +import org.gotson.komga.application.service.AsyncOrchestrator import org.gotson.komga.domain.model.Media import org.gotson.komga.domain.model.Series import org.gotson.komga.domain.persistence.BookRepository import org.gotson.komga.domain.persistence.LibraryRepository import org.gotson.komga.domain.persistence.SeriesRepository -import org.gotson.komga.domain.service.AsyncOrchestrator import org.gotson.komga.infrastructure.security.KomgaPrincipal import org.gotson.komga.interfaces.rest.dto.BookDto import org.gotson.komga.interfaces.rest.dto.SeriesDto diff --git a/komga/src/main/kotlin/org/gotson/komga/interfaces/scheduler/PeriodicScannerController.kt b/komga/src/main/kotlin/org/gotson/komga/interfaces/scheduler/PeriodicScannerController.kt index 2df0bcff9..9f764c479 100644 --- a/komga/src/main/kotlin/org/gotson/komga/interfaces/scheduler/PeriodicScannerController.kt +++ b/komga/src/main/kotlin/org/gotson/komga/interfaces/scheduler/PeriodicScannerController.kt @@ -1,7 +1,7 @@ package org.gotson.komga.interfaces.scheduler import mu.KotlinLogging -import org.gotson.komga.domain.service.AsyncOrchestrator +import org.gotson.komga.application.service.AsyncOrchestrator import org.springframework.boot.context.event.ApplicationReadyEvent import org.springframework.context.annotation.Profile import org.springframework.context.event.EventListener diff --git a/komga/src/test/kotlin/org/gotson/komga/domain/service/LibraryLifecycleTest.kt b/komga/src/test/kotlin/org/gotson/komga/application/service/LibraryLifecycleTest.kt similarity index 98% rename from komga/src/test/kotlin/org/gotson/komga/domain/service/LibraryLifecycleTest.kt rename to komga/src/test/kotlin/org/gotson/komga/application/service/LibraryLifecycleTest.kt index 1208b933a..1b233e7a1 100644 --- a/komga/src/test/kotlin/org/gotson/komga/domain/service/LibraryLifecycleTest.kt +++ b/komga/src/test/kotlin/org/gotson/komga/application/service/LibraryLifecycleTest.kt @@ -1,4 +1,4 @@ -package org.gotson.komga.domain.service +package org.gotson.komga.application.service import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.catchThrowable diff --git a/komga/src/test/kotlin/org/gotson/komga/architecture/NamingConventionTest.kt b/komga/src/test/kotlin/org/gotson/komga/architecture/NamingConventionTest.kt index bb7815dbf..5fdeadb88 100644 --- a/komga/src/test/kotlin/org/gotson/komga/architecture/NamingConventionTest.kt +++ b/komga/src/test/kotlin/org/gotson/komga/architecture/NamingConventionTest.kt @@ -21,9 +21,9 @@ class NamingConventionTest { .should().haveNameMatching(".*Repository") @ArchTest - val domain_service_should_not_have_names_containing_service_or_manager: ArchRule = + val services_should_not_have_names_containing_service_or_manager: ArchRule = noClasses() - .that().resideInAPackage("..domain.service..") + .that().resideInAnyPackage("..domain..service..", "..application..service..") .should().haveSimpleNameContaining("service") .orShould().haveSimpleNameContaining("Service") .orShould().haveSimpleNameContaining("manager") diff --git a/komga/src/test/kotlin/org/gotson/komga/domain/service/LibraryScannerTest.kt b/komga/src/test/kotlin/org/gotson/komga/domain/service/LibraryScannerTest.kt index 00cfd5ccf..a5541b677 100644 --- a/komga/src/test/kotlin/org/gotson/komga/domain/service/LibraryScannerTest.kt +++ b/komga/src/test/kotlin/org/gotson/komga/domain/service/LibraryScannerTest.kt @@ -4,6 +4,7 @@ import com.ninjasquad.springmockk.MockkBean import io.mockk.every import io.mockk.verify import org.assertj.core.api.Assertions.assertThat +import org.gotson.komga.application.service.BookLifecycle import org.gotson.komga.domain.model.Media import org.gotson.komga.domain.model.makeBook import org.gotson.komga.domain.model.makeBookPage @@ -28,12 +29,12 @@ import java.nio.file.Paths @SpringBootTest @AutoConfigureTestDatabase class LibraryScannerTest( - @Autowired private val seriesRepository: SeriesRepository, - @Autowired private val libraryRepository: LibraryRepository, - @Autowired private val bookRepository: BookRepository, - @Autowired private val libraryScanner: LibraryScanner, - @Autowired private val bookLifecycle: BookLifecycle, - @Autowired private val transactionManager: PlatformTransactionManager + @Autowired private val seriesRepository: SeriesRepository, + @Autowired private val libraryRepository: LibraryRepository, + @Autowired private val bookRepository: BookRepository, + @Autowired private val libraryScanner: LibraryScanner, + @Autowired private val bookLifecycle: BookLifecycle, + @Autowired private val transactionManager: PlatformTransactionManager ) { @MockkBean