refactor: move application services to their own package

This commit is contained in:
Gauthier Roebroeck 2020-01-08 13:31:11 +08:00
parent f19d03903c
commit dd71e821fc
12 changed files with 26 additions and 22 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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")

View file

@ -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