diff --git a/.gitignore b/.gitignore index ce5c20c..a8afa40 100644 --- a/.gitignore +++ b/.gitignore @@ -125,8 +125,8 @@ data/ letsencrypt/ # generated resources -app/src/main/resources/css-manifest.json -app/src/main/resources/static/styles* +simplenotes-app/src/main/resources/css-manifest.json +simplenotes-app/src/main/resources/static/styles* # h2 db *.db diff --git a/Dockerfile b/Dockerfile index 9f26464..1f5c8ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,19 +4,23 @@ WORKDIR /tmp # Cache dependencies COPY pom.xml . -COPY app/pom.xml app/pom.xml -COPY domain/pom.xml domain/pom.xml -COPY persistance/pom.xml persistance/pom.xml -COPY shared/pom.xml shared/pom.xml -COPY search/pom.xml search/pom.xml +COPY simplenotes-test-resources/pom.xml simplenotes-test-resources/pom.xml +COPY simplenotes-types/pom.xml simplenotes-types/pom.xml +COPY simplenotes-config/pom.xml simplenotes-config/pom.xml +COPY simplenotes-persistance/pom.xml simplenotes-persistance/pom.xml +COPY simplenotes-search/pom.xml simplenotes-search/pom.xml +COPY simplenotes-domain/pom.xml simplenotes-domain/pom.xml +COPY simplenotes-app/pom.xml simplenotes-app/pom.xml RUN mvn verify clean --fail-never -COPY app/src app/src -COPY domain/src domain/src -COPY persistance/src persistance/src -COPY shared/src shared/src -COPY search/src search/src +COPY simplenotes-test-resources/src simplenotes-test-resources/src +COPY simplenotes-types/src simplenotes-types/src +COPY simplenotes-config/src simplenotes-config/src +COPY simplenotes-persistance/src simplenotes-persistance/src +COPY simplenotes-search/src simplenotes-search/src +COPY simplenotes-domain/src simplenotes-domain/src +COPY simplenotes-app/src simplenotes-app/src RUN mvn -Dstyle.color=always package @@ -42,8 +46,8 @@ RUN chown -R $APPLICATION_USER /app USER $APPLICATION_USER -COPY --from=builder /tmp/app/target/app-*.jar /app/app.jar +COPY --from=builder /tmp/simplenotes-app/target/simplenotes-app-*.jar /app/simplenotes.jar COPY --from=jdkbuilder /myjdk /myjdk WORKDIR /app -CMD ["/myjdk/bin/java", "-server", "-XX:+UnlockExperimentalVMOptions", "-Xms64m", "-Xmx256m", "-XX:+UseG1GC", "-XX:MaxGCPauseMillis=100", "-XX:+UseStringDeduplication", "-jar", "app.jar"] +CMD ["/myjdk/bin/java", "-server", "-XX:+UnlockExperimentalVMOptions", "-Xms64m", "-Xmx256m", "-XX:+UseG1GC", "-XX:MaxGCPauseMillis=100", "-XX:+UseStringDeduplication", "-jar", "simplenotes.jar"] diff --git a/app/src/test/kotlin/Empty.kt b/app/src/test/kotlin/Empty.kt deleted file mode 100644 index 59900e4..0000000 --- a/app/src/test/kotlin/Empty.kt +++ /dev/null @@ -1 +0,0 @@ -package be.simplenotes.app diff --git a/css/package.json b/css/package.json index 200eea4..62b51dc 100644 --- a/css/package.json +++ b/css/package.json @@ -2,8 +2,8 @@ "name": "css", "version": "1.0.0", "scripts": { - "css": "NODE_ENV=dev MANIFEST=../app/src/main/resources/css-manifest.json postcss build src/styles.pcss --output ../app/src/main/resources/static/styles.css", - "css-purge": "NODE_ENV=production MANIFEST=../app/src/main/resources/css-manifest.json postcss build src/styles.pcss --output ../app/src/main/resources/static/styles.css" + "css": "NODE_ENV=dev MANIFEST=../simplenotes-app/src/main/resources/css-manifest.json postcss build src/styles.pcss --output ../simplenotes-app/src/main/resources/static/styles.css", + "css-purge": "NODE_ENV=production MANIFEST=../simplenotes-app/src/main/resources/css-manifest.json postcss build src/styles.pcss --output ../simplenotes-app/src/main/resources/static/styles.css" }, "dependencies": { "autoprefixer": "^9.8.6", diff --git a/css/tailwind.config.js b/css/tailwind.config.js index 5e25447..89b9bb2 100644 --- a/css/tailwind.config.js +++ b/css/tailwind.config.js @@ -1,7 +1,7 @@ module.exports = { purge: { content: [ - '../app/src/main/kotlin/views/**/*.kt' + '../simplenotes-app/src/main/kotlin/be/simplenotes/app/views/**/*.kt' ] }, theme: { diff --git a/deploy-docker-hub.sh b/deploy-docker-hub.sh index 1778647..ed7be34 100755 --- a/deploy-docker-hub.sh +++ b/deploy-docker-hub.sh @@ -1,7 +1,7 @@ #!/bin/sh -rm app/src/main/resources/css-manifest.json -rm app/src/main/resources/static/styles* +rm simplenotes-app/src/main/resources/css-manifest.json +rm simplenotes-app/src/main/resources/static/styles* yarn --cwd css run css-purge \ && docker build -t hubv/simplenotes:latest . \ diff --git a/domain/src/test/kotlin/Empty.kt b/domain/src/test/kotlin/Empty.kt deleted file mode 100644 index 8c13eef..0000000 --- a/domain/src/test/kotlin/Empty.kt +++ /dev/null @@ -1,5 +0,0 @@ -package be.simplenotes.domain - -/** - * Empty file @see [root-package-declaration](https://discuss.kotlinlang.org/t/root-package-declaration-to-reduce-folder-clutter/2247/4) - */ diff --git a/persistance/src/test/kotlin/Empty.kt b/persistance/src/test/kotlin/Empty.kt deleted file mode 100644 index b98b168..0000000 --- a/persistance/src/test/kotlin/Empty.kt +++ /dev/null @@ -1 +0,0 @@ -package be.simplenotes.persistance diff --git a/pom.xml b/pom.xml index f2e9b0d..b2ec063 100644 --- a/pom.xml +++ b/pom.xml @@ -4,15 +4,17 @@ 4.0.0 be.simplenotes - parent + simplenotes-parent 1.0-SNAPSHOT - persistance - app - domain - shared - search + simplenotes-persistance + simplenotes-app + simplenotes-domain + simplenotes-search + simplenotes-types + simplenotes-config + simplenotes-test-resources pom @@ -179,7 +181,7 @@ io.arrow-kt arrow-core - 0.10.5 + 0.11.0 org.slf4j diff --git a/shared/src/test/kotlin/Empty.kt b/shared/src/test/kotlin/Empty.kt deleted file mode 100644 index db52774..0000000 --- a/shared/src/test/kotlin/Empty.kt +++ /dev/null @@ -1 +0,0 @@ -package be.simplenotes.shared diff --git a/app/pom.xml b/simplenotes-app/pom.xml similarity index 87% rename from app/pom.xml rename to simplenotes-app/pom.xml index b39affb..29e7a4d 100644 --- a/app/pom.xml +++ b/simplenotes-app/pom.xml @@ -2,13 +2,13 @@ - parent + simplenotes-parent be.simplenotes 1.0-SNAPSHOT 4.0.0 - app + simplenotes-app 3.268.0 @@ -17,38 +17,54 @@ be.simplenotes - persistance + simplenotes-persistance 1.0-SNAPSHOT be.simplenotes - search + simplenotes-search 1.0-SNAPSHOT be.simplenotes - domain + simplenotes-domain 1.0-SNAPSHOT be.simplenotes - shared + simplenotes-config 1.0-SNAPSHOT org.http4k http4k-core + + + + org.eclipse.jetty + jetty-server + 9.4.32.v20200930 + compile + + + org.eclipse.jetty + jetty-servlet + 9.4.32.v20200930 + compile + + + javax.servlet + javax.servlet-api + 4.0.1 + compile + + org.jetbrains.kotlinx kotlinx-html-jvm @@ -81,7 +97,7 @@ be.simplenotes - shared + simplenotes-test-resources 1.0-SNAPSHOT test-jar test diff --git a/app/src/main/kotlin/Config.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/Config.kt similarity index 89% rename from app/src/main/kotlin/Config.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/Config.kt index b391ccd..c714f7e 100644 --- a/app/src/main/kotlin/Config.kt +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/Config.kt @@ -1,8 +1,8 @@ package be.simplenotes.app -import be.simplenotes.shared.config.DataSourceConfig -import be.simplenotes.shared.config.JwtConfig -import be.simplenotes.shared.config.ServerConfig +import be.simplenotes.config.DataSourceConfig +import be.simplenotes.config.JwtConfig +import be.simplenotes.config.ServerConfig import java.util.* import java.util.concurrent.TimeUnit diff --git a/app/src/main/kotlin/Server.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/Server.kt similarity index 87% rename from app/src/main/kotlin/Server.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/Server.kt index 817db49..5b5a01a 100644 --- a/app/src/main/kotlin/Server.kt +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/Server.kt @@ -2,7 +2,7 @@ package be.simplenotes.app import org.http4k.server.Http4kServer import org.slf4j.LoggerFactory -import be.simplenotes.shared.config.ServerConfig as SimpleNotesServerConfig +import be.simplenotes.config.ServerConfig as SimpleNotesServerConfig class Server( private val config: SimpleNotesServerConfig, diff --git a/app/src/main/kotlin/SimpleNotes.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/SimpleNotes.kt similarity index 100% rename from app/src/main/kotlin/SimpleNotes.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/SimpleNotes.kt diff --git a/app/src/main/kotlin/api/ApiNoteController.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/api/ApiNoteController.kt similarity index 96% rename from app/src/main/kotlin/api/ApiNoteController.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/api/ApiNoteController.kt index ef300e2..c874389 100644 --- a/app/src/main/kotlin/api/ApiNoteController.kt +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/api/ApiNoteController.kt @@ -2,8 +2,8 @@ package be.simplenotes.app.api import be.simplenotes.app.extensions.auto import be.simplenotes.app.utils.parseSearchTerms -import be.simplenotes.domain.model.PersistedNote -import be.simplenotes.domain.model.PersistedNoteMetadata +import be.simplenotes.types.PersistedNote +import be.simplenotes.types.PersistedNoteMetadata import be.simplenotes.domain.security.JwtPayload import be.simplenotes.domain.usecases.NoteService import kotlinx.serialization.Contextual diff --git a/app/src/main/kotlin/api/ApiUserController.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/api/ApiUserController.kt similarity index 100% rename from app/src/main/kotlin/api/ApiUserController.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/api/ApiUserController.kt diff --git a/app/src/main/kotlin/controllers/BaseController.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/BaseController.kt similarity index 100% rename from app/src/main/kotlin/controllers/BaseController.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/BaseController.kt diff --git a/app/src/main/kotlin/controllers/HealthCheckController.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/HealthCheckController.kt similarity index 100% rename from app/src/main/kotlin/controllers/HealthCheckController.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/HealthCheckController.kt diff --git a/app/src/main/kotlin/controllers/NoteController.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/NoteController.kt similarity index 100% rename from app/src/main/kotlin/controllers/NoteController.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/NoteController.kt diff --git a/app/src/main/kotlin/controllers/SettingsController.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/SettingsController.kt similarity index 100% rename from app/src/main/kotlin/controllers/SettingsController.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/SettingsController.kt diff --git a/app/src/main/kotlin/controllers/UserController.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/UserController.kt similarity index 98% rename from app/src/main/kotlin/controllers/UserController.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/UserController.kt index 49925ca..d223955 100644 --- a/app/src/main/kotlin/controllers/UserController.kt +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/controllers/UserController.kt @@ -10,7 +10,7 @@ import be.simplenotes.domain.usecases.users.login.* import be.simplenotes.domain.usecases.users.register.InvalidRegisterForm import be.simplenotes.domain.usecases.users.register.RegisterForm import be.simplenotes.domain.usecases.users.register.UserExists -import be.simplenotes.shared.config.JwtConfig +import be.simplenotes.config.JwtConfig import org.http4k.core.Method.GET import org.http4k.core.Request import org.http4k.core.Response diff --git a/app/src/main/kotlin/extensions/Http4kExtensions.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/extensions/Http4kExtensions.kt similarity index 100% rename from app/src/main/kotlin/extensions/Http4kExtensions.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/extensions/Http4kExtensions.kt diff --git a/app/src/main/kotlin/extensions/KoinExtensions.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/extensions/KoinExtensions.kt similarity index 100% rename from app/src/main/kotlin/extensions/KoinExtensions.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/extensions/KoinExtensions.kt diff --git a/app/src/main/kotlin/extensions/KotlinxHtmlExtensions.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/extensions/KotlinxHtmlExtensions.kt similarity index 100% rename from app/src/main/kotlin/extensions/KotlinxHtmlExtensions.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/extensions/KotlinxHtmlExtensions.kt diff --git a/app/src/main/kotlin/filters/AuthFilter.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/AuthFilter.kt similarity index 100% rename from app/src/main/kotlin/filters/AuthFilter.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/AuthFilter.kt diff --git a/app/src/main/kotlin/filters/ErrorFilter.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/ErrorFilter.kt similarity index 100% rename from app/src/main/kotlin/filters/ErrorFilter.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/ErrorFilter.kt diff --git a/app/src/main/kotlin/filters/ImmutableFilter.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/ImmutableFilter.kt similarity index 100% rename from app/src/main/kotlin/filters/ImmutableFilter.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/ImmutableFilter.kt diff --git a/app/src/main/kotlin/filters/SecurityFilter.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/SecurityFilter.kt similarity index 100% rename from app/src/main/kotlin/filters/SecurityFilter.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/SecurityFilter.kt diff --git a/app/src/main/kotlin/filters/TransactionFilter.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/TransactionFilter.kt similarity index 100% rename from app/src/main/kotlin/filters/TransactionFilter.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/filters/TransactionFilter.kt diff --git a/simplenotes-app/src/main/kotlin/be/simplenotes/app/jetty/Jetty.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/jetty/Jetty.kt new file mode 100644 index 0000000..644ebec --- /dev/null +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/jetty/Jetty.kt @@ -0,0 +1,40 @@ +package be.simplenotes.app.jetty + +import org.eclipse.jetty.server.Server +import org.eclipse.jetty.server.ServerConnector +import org.eclipse.jetty.servlet.ServletContextHandler +import org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS +import org.eclipse.jetty.servlet.ServletHolder +import org.http4k.core.HttpHandler +import org.http4k.server.Http4kServer +import org.http4k.server.ServerConfig +import org.http4k.servlet.asServlet + +class Jetty(private val port: Int, private val server: Server) : ServerConfig { + constructor(port: Int = 8000) : this(port, http(port)) + constructor(port: Int, vararg inConnectors: ConnectorBuilder) : this(port, Server().apply { + inConnectors.forEach { addConnector(it(this)) } + }) + + override fun toServer(httpHandler: HttpHandler): Http4kServer { + server.insertHandler(httpHandler.toJettyHandler()) + + return object : Http4kServer { + override fun start(): Http4kServer = apply { + server.start() + } + + override fun stop(): Http4kServer = apply { server.stop() } + + override fun port(): Int = if (port > 0) port else server.uri.port + } + } +} + +fun HttpHandler.toJettyHandler() = ServletContextHandler(SESSIONS).apply { + addServlet(ServletHolder(this@toJettyHandler.asServlet()), "/*") +} + +typealias ConnectorBuilder = (Server) -> ServerConnector + +fun http(httpPort: Int): ConnectorBuilder = { server: Server -> ServerConnector(server).apply { port = httpPort } } diff --git a/app/src/main/kotlin/modules/ApiModule.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/ApiModule.kt similarity index 100% rename from app/src/main/kotlin/modules/ApiModule.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/ApiModule.kt diff --git a/app/src/main/kotlin/modules/ConfigModule.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/ConfigModule.kt similarity index 100% rename from app/src/main/kotlin/modules/ConfigModule.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/ConfigModule.kt diff --git a/app/src/main/kotlin/modules/CoreModules.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/CoreModules.kt similarity index 100% rename from app/src/main/kotlin/modules/CoreModules.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/CoreModules.kt diff --git a/app/src/main/kotlin/modules/JsonModule.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/JsonModule.kt similarity index 100% rename from app/src/main/kotlin/modules/JsonModule.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/JsonModule.kt diff --git a/app/src/main/kotlin/modules/ServerModule.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/ServerModule.kt similarity index 94% rename from app/src/main/kotlin/modules/ServerModule.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/ServerModule.kt index 0c732ed..421fa9f 100644 --- a/app/src/main/kotlin/modules/ServerModule.kt +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/modules/ServerModule.kt @@ -5,17 +5,17 @@ import be.simplenotes.app.filters.AuthFilter import be.simplenotes.app.filters.AuthType import be.simplenotes.app.filters.ErrorFilter import be.simplenotes.app.filters.TransactionFilter +import be.simplenotes.app.jetty.ConnectorBuilder +import be.simplenotes.app.jetty.Jetty import be.simplenotes.app.routes.Router import be.simplenotes.app.utils.StaticFileResolver import be.simplenotes.app.utils.StaticFileResolverImpl import be.simplenotes.app.views.ErrorView -import be.simplenotes.shared.config.ServerConfig +import be.simplenotes.config.ServerConfig import org.eclipse.jetty.server.ServerConnector import org.http4k.core.Filter import org.http4k.core.RequestContexts import org.http4k.routing.RoutingHttpHandler -import org.http4k.server.ConnectorBuilder -import org.http4k.server.Jetty import org.http4k.server.asServer import org.koin.core.qualifier.named import org.koin.core.qualifier.qualifier diff --git a/app/src/main/kotlin/routes/Router.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/routes/Router.kt similarity index 100% rename from app/src/main/kotlin/routes/Router.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/routes/Router.kt diff --git a/app/src/main/kotlin/serialization/LocaleDateTimeSerializer.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/serialization/LocaleDateTimeSerializer.kt similarity index 100% rename from app/src/main/kotlin/serialization/LocaleDateTimeSerializer.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/serialization/LocaleDateTimeSerializer.kt diff --git a/app/src/main/kotlin/serialization/UuidSerializer.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/serialization/UuidSerializer.kt similarity index 100% rename from app/src/main/kotlin/serialization/UuidSerializer.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/serialization/UuidSerializer.kt diff --git a/app/src/main/kotlin/utils/PrettyDate.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/utils/PrettyDate.kt similarity index 100% rename from app/src/main/kotlin/utils/PrettyDate.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/utils/PrettyDate.kt diff --git a/app/src/main/kotlin/utils/SearchTermsParser.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/utils/SearchTermsParser.kt similarity index 95% rename from app/src/main/kotlin/utils/SearchTermsParser.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/utils/SearchTermsParser.kt index 3cd38aa..3e2a0aa 100644 --- a/app/src/main/kotlin/utils/SearchTermsParser.kt +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/utils/SearchTermsParser.kt @@ -1,6 +1,6 @@ package be.simplenotes.app.utils -import be.simplenotes.domain.usecases.search.SearchTerms +import be.simplenotes.search.SearchTerms private fun innerRegex(name: String) = """$name:['"](.*?)['"]""".toRegex() diff --git a/app/src/main/kotlin/utils/StaticFilesResolver.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/utils/StaticFilesResolver.kt similarity index 100% rename from app/src/main/kotlin/utils/StaticFilesResolver.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/utils/StaticFilesResolver.kt diff --git a/app/src/main/kotlin/views/BaseView.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/BaseView.kt similarity index 100% rename from app/src/main/kotlin/views/BaseView.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/BaseView.kt diff --git a/app/src/main/kotlin/views/ErrorView.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/ErrorView.kt similarity index 100% rename from app/src/main/kotlin/views/ErrorView.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/ErrorView.kt diff --git a/app/src/main/kotlin/views/NoteView.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/NoteView.kt similarity index 98% rename from app/src/main/kotlin/views/NoteView.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/NoteView.kt index b7d0f88..ccfadb0 100644 --- a/app/src/main/kotlin/views/NoteView.kt +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/NoteView.kt @@ -2,8 +2,8 @@ package be.simplenotes.app.views import be.simplenotes.app.utils.StaticFileResolver import be.simplenotes.app.views.components.* -import be.simplenotes.domain.model.PersistedNote -import be.simplenotes.domain.model.PersistedNoteMetadata +import be.simplenotes.types.PersistedNote +import be.simplenotes.types.PersistedNoteMetadata import be.simplenotes.domain.security.JwtPayload import io.konform.validation.ValidationError import kotlinx.html.* diff --git a/app/src/main/kotlin/views/SettingView.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/SettingView.kt similarity index 100% rename from app/src/main/kotlin/views/SettingView.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/SettingView.kt diff --git a/app/src/main/kotlin/views/UserView.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/UserView.kt similarity index 100% rename from app/src/main/kotlin/views/UserView.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/UserView.kt diff --git a/app/src/main/kotlin/views/View.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/View.kt similarity index 100% rename from app/src/main/kotlin/views/View.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/View.kt diff --git a/app/src/main/kotlin/views/components/Alerts.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/Alerts.kt similarity index 100% rename from app/src/main/kotlin/views/components/Alerts.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/Alerts.kt diff --git a/app/src/main/kotlin/views/components/DeletedNoteTable.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/DeletedNoteTable.kt similarity index 96% rename from app/src/main/kotlin/views/components/DeletedNoteTable.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/DeletedNoteTable.kt index bbda3a2..ee00851 100644 --- a/app/src/main/kotlin/views/components/DeletedNoteTable.kt +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/DeletedNoteTable.kt @@ -1,7 +1,7 @@ package be.simplenotes.app.views.components import be.simplenotes.app.utils.toTimeAgo -import be.simplenotes.domain.model.PersistedNoteMetadata +import be.simplenotes.types.PersistedNoteMetadata import kotlinx.html.* import kotlinx.html.ButtonType.submit import kotlinx.html.FormMethod.post diff --git a/app/src/main/kotlin/views/components/Forms.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/Forms.kt similarity index 100% rename from app/src/main/kotlin/views/components/Forms.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/Forms.kt diff --git a/app/src/main/kotlin/views/components/Navbar.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/Navbar.kt similarity index 100% rename from app/src/main/kotlin/views/components/Navbar.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/Navbar.kt diff --git a/app/src/main/kotlin/views/components/NoteListHeader.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/NoteListHeader.kt similarity index 100% rename from app/src/main/kotlin/views/components/NoteListHeader.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/NoteListHeader.kt diff --git a/app/src/main/kotlin/views/components/NoteTable.kt b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/NoteTable.kt similarity index 95% rename from app/src/main/kotlin/views/components/NoteTable.kt rename to simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/NoteTable.kt index 3133365..a44bb62 100644 --- a/app/src/main/kotlin/views/components/NoteTable.kt +++ b/simplenotes-app/src/main/kotlin/be/simplenotes/app/views/components/NoteTable.kt @@ -1,7 +1,7 @@ package be.simplenotes.app.views.components import be.simplenotes.app.utils.toTimeAgo -import be.simplenotes.domain.model.PersistedNoteMetadata +import be.simplenotes.types.PersistedNoteMetadata import kotlinx.html.* import kotlinx.html.ThScope.col diff --git a/app/src/main/resources/application.properties b/simplenotes-app/src/main/resources/application.properties similarity index 100% rename from app/src/main/resources/application.properties rename to simplenotes-app/src/main/resources/application.properties diff --git a/app/src/main/resources/static/android-chrome-192x192.png b/simplenotes-app/src/main/resources/static/android-chrome-192x192.png similarity index 100% rename from app/src/main/resources/static/android-chrome-192x192.png rename to simplenotes-app/src/main/resources/static/android-chrome-192x192.png diff --git a/app/src/main/resources/static/android-chrome-512x512.png b/simplenotes-app/src/main/resources/static/android-chrome-512x512.png similarity index 100% rename from app/src/main/resources/static/android-chrome-512x512.png rename to simplenotes-app/src/main/resources/static/android-chrome-512x512.png diff --git a/app/src/main/resources/static/apple-touch-icon.png b/simplenotes-app/src/main/resources/static/apple-touch-icon.png similarity index 100% rename from app/src/main/resources/static/apple-touch-icon.png rename to simplenotes-app/src/main/resources/static/apple-touch-icon.png diff --git a/app/src/main/resources/static/browserconfig.xml b/simplenotes-app/src/main/resources/static/browserconfig.xml similarity index 100% rename from app/src/main/resources/static/browserconfig.xml rename to simplenotes-app/src/main/resources/static/browserconfig.xml diff --git a/app/src/main/resources/static/favicon-16x16.png b/simplenotes-app/src/main/resources/static/favicon-16x16.png similarity index 100% rename from app/src/main/resources/static/favicon-16x16.png rename to simplenotes-app/src/main/resources/static/favicon-16x16.png diff --git a/app/src/main/resources/static/favicon-32x32.png b/simplenotes-app/src/main/resources/static/favicon-32x32.png similarity index 100% rename from app/src/main/resources/static/favicon-32x32.png rename to simplenotes-app/src/main/resources/static/favicon-32x32.png diff --git a/app/src/main/resources/static/favicon.ico b/simplenotes-app/src/main/resources/static/favicon.ico similarity index 100% rename from app/src/main/resources/static/favicon.ico rename to simplenotes-app/src/main/resources/static/favicon.ico diff --git a/app/src/main/resources/static/highlight.10.1.2.js b/simplenotes-app/src/main/resources/static/highlight.10.1.2.js similarity index 100% rename from app/src/main/resources/static/highlight.10.1.2.js rename to simplenotes-app/src/main/resources/static/highlight.10.1.2.js diff --git a/app/src/main/resources/static/init-highlight.0.0.1.js b/simplenotes-app/src/main/resources/static/init-highlight.0.0.1.js similarity index 100% rename from app/src/main/resources/static/init-highlight.0.0.1.js rename to simplenotes-app/src/main/resources/static/init-highlight.0.0.1.js diff --git a/app/src/main/resources/static/mstile-144x144.png b/simplenotes-app/src/main/resources/static/mstile-144x144.png similarity index 100% rename from app/src/main/resources/static/mstile-144x144.png rename to simplenotes-app/src/main/resources/static/mstile-144x144.png diff --git a/app/src/main/resources/static/mstile-150x150.png b/simplenotes-app/src/main/resources/static/mstile-150x150.png similarity index 100% rename from app/src/main/resources/static/mstile-150x150.png rename to simplenotes-app/src/main/resources/static/mstile-150x150.png diff --git a/app/src/main/resources/static/mstile-310x150.png b/simplenotes-app/src/main/resources/static/mstile-310x150.png similarity index 100% rename from app/src/main/resources/static/mstile-310x150.png rename to simplenotes-app/src/main/resources/static/mstile-310x150.png diff --git a/app/src/main/resources/static/mstile-310x310.png b/simplenotes-app/src/main/resources/static/mstile-310x310.png similarity index 100% rename from app/src/main/resources/static/mstile-310x310.png rename to simplenotes-app/src/main/resources/static/mstile-310x310.png diff --git a/app/src/main/resources/static/mstile-70x70.png b/simplenotes-app/src/main/resources/static/mstile-70x70.png similarity index 100% rename from app/src/main/resources/static/mstile-70x70.png rename to simplenotes-app/src/main/resources/static/mstile-70x70.png diff --git a/app/src/main/resources/static/recursive-0.0.1.woff2 b/simplenotes-app/src/main/resources/static/recursive-0.0.1.woff2 similarity index 100% rename from app/src/main/resources/static/recursive-0.0.1.woff2 rename to simplenotes-app/src/main/resources/static/recursive-0.0.1.woff2 diff --git a/app/src/main/resources/static/robots.txt b/simplenotes-app/src/main/resources/static/robots.txt similarity index 100% rename from app/src/main/resources/static/robots.txt rename to simplenotes-app/src/main/resources/static/robots.txt diff --git a/app/src/main/resources/static/safari-pinned-tab.svg b/simplenotes-app/src/main/resources/static/safari-pinned-tab.svg similarity index 100% rename from app/src/main/resources/static/safari-pinned-tab.svg rename to simplenotes-app/src/main/resources/static/safari-pinned-tab.svg diff --git a/app/src/main/resources/static/site.webmanifest b/simplenotes-app/src/main/resources/static/site.webmanifest similarity index 100% rename from app/src/main/resources/static/site.webmanifest rename to simplenotes-app/src/main/resources/static/site.webmanifest diff --git a/app/src/test/kotlin/filters/AuthFilterTest.kt b/simplenotes-app/src/test/kotlin/be/simplenotes/app/filters/AuthFilterTest.kt similarity index 98% rename from app/src/test/kotlin/filters/AuthFilterTest.kt rename to simplenotes-app/src/test/kotlin/be/simplenotes/app/filters/AuthFilterTest.kt index d3ce561..929542d 100644 --- a/app/src/test/kotlin/filters/AuthFilterTest.kt +++ b/simplenotes-app/src/test/kotlin/be/simplenotes/app/filters/AuthFilterTest.kt @@ -3,7 +3,7 @@ package be.simplenotes.app.filters import be.simplenotes.domain.security.JwtPayload import be.simplenotes.domain.security.JwtPayloadExtractor import be.simplenotes.domain.security.SimpleJwt -import be.simplenotes.shared.config.JwtConfig +import be.simplenotes.config.JwtConfig import com.natpryce.hamkrest.assertion.assertThat import org.http4k.core.* import org.http4k.core.Method.GET diff --git a/app/src/test/kotlin/utils/SearchTermsParserKtTest.kt b/simplenotes-app/src/test/kotlin/be/simplenotes/app/utils/SearchTermsParserKtTest.kt similarity index 97% rename from app/src/test/kotlin/utils/SearchTermsParserKtTest.kt rename to simplenotes-app/src/test/kotlin/be/simplenotes/app/utils/SearchTermsParserKtTest.kt index 69e6acd..8a22d2d 100644 --- a/app/src/test/kotlin/utils/SearchTermsParserKtTest.kt +++ b/simplenotes-app/src/test/kotlin/be/simplenotes/app/utils/SearchTermsParserKtTest.kt @@ -1,6 +1,6 @@ package be.simplenotes.app.utils -import be.simplenotes.domain.usecases.search.SearchTerms +import be.simplenotes.search.SearchTerms import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.MethodSource diff --git a/simplenotes-config/pom.xml b/simplenotes-config/pom.xml new file mode 100644 index 0000000..1fc19b6 --- /dev/null +++ b/simplenotes-config/pom.xml @@ -0,0 +1,15 @@ + + + + simplenotes-parent + be.simplenotes + 1.0-SNAPSHOT + + 4.0.0 + + simplenotes-config + + + diff --git a/shared/src/main/kotlin/Config.kt b/simplenotes-config/src/main/kotlin/be/simplenotes/config/Config.kt similarity index 95% rename from shared/src/main/kotlin/Config.kt rename to simplenotes-config/src/main/kotlin/be/simplenotes/config/Config.kt index 424eee5..963d4e4 100644 --- a/shared/src/main/kotlin/Config.kt +++ b/simplenotes-config/src/main/kotlin/be/simplenotes/config/Config.kt @@ -1,4 +1,4 @@ -package be.simplenotes.shared.config +package be.simplenotes.config import java.util.concurrent.TimeUnit diff --git a/domain/pom.xml b/simplenotes-domain/pom.xml similarity index 78% rename from domain/pom.xml rename to simplenotes-domain/pom.xml index e004456..a41855a 100644 --- a/domain/pom.xml +++ b/simplenotes-domain/pom.xml @@ -2,36 +2,38 @@ - parent + simplenotes-parent be.simplenotes 1.0-SNAPSHOT 4.0.0 - domain + simplenotes-domain be.simplenotes - shared + simplenotes-config 1.0-SNAPSHOT be.simplenotes - shared + simplenotes-test-resources 1.0-SNAPSHOT test-jar test - - io.arrow-kt - arrow-core - org.koin koin-core + + + io.arrow-kt + arrow-core + + com.natpryce hamkrest @@ -83,15 +85,29 @@ owasp-java-html-sanitizer 20200713.1 - - org.jetbrains.kotlinx - kotlinx-serialization-json-jvm - org.apache.commons commons-compress 1.20 + + be.simplenotes + simplenotes-types + 1.0-SNAPSHOT + compile + + + be.simplenotes + simplenotes-persistance + 1.0-SNAPSHOT + compile + + + be.simplenotes + simplenotes-search + 1.0-SNAPSHOT + compile + diff --git a/domain/src/main/kotlin/DomainModule.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/DomainModule.kt similarity index 100% rename from domain/src/main/kotlin/DomainModule.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/DomainModule.kt diff --git a/domain/src/main/kotlin/security/HtmlSanitizer.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/HtmlSanitizer.kt similarity index 95% rename from domain/src/main/kotlin/security/HtmlSanitizer.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/HtmlSanitizer.kt index 85ec1b0..4e1b87d 100644 --- a/domain/src/main/kotlin/security/HtmlSanitizer.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/HtmlSanitizer.kt @@ -2,7 +2,7 @@ package be.simplenotes.domain.security import org.owasp.html.HtmlPolicyBuilder -object HtmlSanitizer { +internal object HtmlSanitizer { private val htmlPolicy = HtmlPolicyBuilder() .allowElements("a") .allowCommonBlockElements() diff --git a/domain/src/main/kotlin/security/JwtPayload.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/JwtPayload.kt similarity index 93% rename from domain/src/main/kotlin/security/JwtPayload.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/JwtPayload.kt index 62e939f..b90f2ff 100644 --- a/domain/src/main/kotlin/security/JwtPayload.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/JwtPayload.kt @@ -1,6 +1,6 @@ package be.simplenotes.domain.security -import be.simplenotes.domain.model.PersistedUser +import be.simplenotes.types.PersistedUser import com.auth0.jwt.exceptions.JWTVerificationException data class JwtPayload(val userId: Int, val username: String) { diff --git a/domain/src/main/kotlin/security/PasswordHash.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/PasswordHash.kt similarity index 100% rename from domain/src/main/kotlin/security/PasswordHash.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/PasswordHash.kt diff --git a/domain/src/main/kotlin/security/SimpleJwt.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/SimpleJwt.kt similarity index 94% rename from domain/src/main/kotlin/security/SimpleJwt.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/SimpleJwt.kt index fc4eb99..0fde615 100644 --- a/domain/src/main/kotlin/security/SimpleJwt.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/security/SimpleJwt.kt @@ -1,6 +1,6 @@ package be.simplenotes.domain.security -import be.simplenotes.shared.config.JwtConfig +import be.simplenotes.config.JwtConfig import com.auth0.jwt.JWT import com.auth0.jwt.JWTVerifier import com.auth0.jwt.algorithms.Algorithm diff --git a/domain/src/main/kotlin/usecases/NoteService.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/NoteService.kt similarity index 89% rename from domain/src/main/kotlin/usecases/NoteService.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/NoteService.kt index 7efe8ef..498768d 100644 --- a/domain/src/main/kotlin/usecases/NoteService.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/NoteService.kt @@ -2,16 +2,16 @@ package be.simplenotes.domain.usecases import arrow.core.Either import arrow.core.extensions.fx -import be.simplenotes.domain.model.Note -import be.simplenotes.domain.model.PersistedNote -import be.simplenotes.domain.model.PersistedNoteMetadata +import be.simplenotes.types.Note +import be.simplenotes.types.PersistedNote +import be.simplenotes.types.PersistedNoteMetadata import be.simplenotes.domain.security.HtmlSanitizer import be.simplenotes.domain.usecases.markdown.MarkdownConverter import be.simplenotes.domain.usecases.markdown.MarkdownParsingError -import be.simplenotes.domain.usecases.repositories.NoteRepository -import be.simplenotes.domain.usecases.repositories.UserRepository -import be.simplenotes.domain.usecases.search.NoteSearcher -import be.simplenotes.domain.usecases.search.SearchTerms +import be.simplenotes.persistance.repositories.NoteRepository +import be.simplenotes.persistance.repositories.UserRepository +import be.simplenotes.search.NoteSearcher +import be.simplenotes.search.SearchTerms import java.util.* class NoteService( diff --git a/domain/src/main/kotlin/usecases/UserService.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/UserService.kt similarity index 100% rename from domain/src/main/kotlin/usecases/UserService.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/UserService.kt diff --git a/domain/src/main/kotlin/usecases/export/ExportUseCase.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/export/ExportUseCase.kt similarity index 100% rename from domain/src/main/kotlin/usecases/export/ExportUseCase.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/export/ExportUseCase.kt diff --git a/domain/src/main/kotlin/usecases/export/ExportUseCaseImpl.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/export/ExportUseCaseImpl.kt similarity index 93% rename from domain/src/main/kotlin/usecases/export/ExportUseCaseImpl.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/export/ExportUseCaseImpl.kt index 05991af..2513e2c 100644 --- a/domain/src/main/kotlin/usecases/export/ExportUseCaseImpl.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/export/ExportUseCaseImpl.kt @@ -1,7 +1,7 @@ package be.simplenotes.domain.usecases.export -import be.simplenotes.domain.model.ExportedNote -import be.simplenotes.domain.usecases.repositories.NoteRepository +import be.simplenotes.types.ExportedNote +import be.simplenotes.persistance.repositories.NoteRepository import kotlinx.serialization.builtins.ListSerializer import kotlinx.serialization.json.Json import org.apache.commons.compress.archivers.zip.ZipArchiveEntry diff --git a/domain/src/main/kotlin/usecases/markdown/MarkdownConverter.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/markdown/MarkdownConverter.kt similarity index 98% rename from domain/src/main/kotlin/usecases/markdown/MarkdownConverter.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/markdown/MarkdownConverter.kt index a6adb1f..a0b28a5 100644 --- a/domain/src/main/kotlin/usecases/markdown/MarkdownConverter.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/markdown/MarkdownConverter.kt @@ -4,7 +4,7 @@ import arrow.core.Either import arrow.core.extensions.fx import arrow.core.left import arrow.core.right -import be.simplenotes.domain.model.NoteMetadata +import be.simplenotes.types.NoteMetadata import be.simplenotes.domain.validation.NoteValidations import com.vladsch.flexmark.ext.gfm.tasklist.TaskListExtension import com.vladsch.flexmark.html.HtmlRenderer diff --git a/domain/src/main/kotlin/usecases/users/delete/DeleteUseCaseImpl.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/delete/DeleteUseCaseImpl.kt similarity index 89% rename from domain/src/main/kotlin/usecases/users/delete/DeleteUseCaseImpl.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/delete/DeleteUseCaseImpl.kt index 12c26e2..037f4d4 100644 --- a/domain/src/main/kotlin/usecases/users/delete/DeleteUseCaseImpl.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/delete/DeleteUseCaseImpl.kt @@ -4,9 +4,9 @@ import arrow.core.Either import arrow.core.extensions.fx import arrow.core.rightIfNotNull import be.simplenotes.domain.security.PasswordHash -import be.simplenotes.domain.usecases.repositories.UserRepository -import be.simplenotes.domain.usecases.search.NoteSearcher +import be.simplenotes.persistance.repositories.UserRepository import be.simplenotes.domain.validation.UserValidations +import be.simplenotes.search.NoteSearcher internal class DeleteUseCaseImpl( private val userRepository: UserRepository, diff --git a/domain/src/main/kotlin/usecases/users/delete/DeleteUsecase.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/delete/DeleteUsecase.kt similarity index 100% rename from domain/src/main/kotlin/usecases/users/delete/DeleteUsecase.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/delete/DeleteUsecase.kt diff --git a/domain/src/main/kotlin/usecases/users/login/LoginUseCaseImpl.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/login/LoginUseCaseImpl.kt similarity index 93% rename from domain/src/main/kotlin/usecases/users/login/LoginUseCaseImpl.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/login/LoginUseCaseImpl.kt index 268d125..cfef653 100644 --- a/domain/src/main/kotlin/usecases/users/login/LoginUseCaseImpl.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/login/LoginUseCaseImpl.kt @@ -7,8 +7,8 @@ import arrow.core.rightIfNotNull import be.simplenotes.domain.security.JwtPayload import be.simplenotes.domain.security.PasswordHash import be.simplenotes.domain.security.SimpleJwt -import be.simplenotes.domain.usecases.repositories.UserRepository import be.simplenotes.domain.validation.UserValidations +import be.simplenotes.persistance.repositories.UserRepository internal class LoginUseCaseImpl( private val userRepository: UserRepository, diff --git a/domain/src/main/kotlin/usecases/users/login/LoginUsecase.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/login/LoginUsecase.kt similarity index 100% rename from domain/src/main/kotlin/usecases/users/login/LoginUsecase.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/login/LoginUsecase.kt diff --git a/domain/src/main/kotlin/usecases/users/register/RegisterUseCaseImpl.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/register/RegisterUseCaseImpl.kt similarity index 87% rename from domain/src/main/kotlin/usecases/users/register/RegisterUseCaseImpl.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/register/RegisterUseCaseImpl.kt index 6476f46..11e2139 100644 --- a/domain/src/main/kotlin/usecases/users/register/RegisterUseCaseImpl.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/register/RegisterUseCaseImpl.kt @@ -3,10 +3,10 @@ package be.simplenotes.domain.usecases.users.register import arrow.core.Either import arrow.core.filterOrElse import arrow.core.leftIfNull -import be.simplenotes.domain.model.PersistedUser +import be.simplenotes.types.PersistedUser import be.simplenotes.domain.security.PasswordHash -import be.simplenotes.domain.usecases.repositories.UserRepository import be.simplenotes.domain.validation.UserValidations +import be.simplenotes.persistance.repositories.UserRepository internal class RegisterUseCaseImpl( private val userRepository: UserRepository, diff --git a/domain/src/main/kotlin/usecases/users/register/RegisterUsecase.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/register/RegisterUsecase.kt similarity index 90% rename from domain/src/main/kotlin/usecases/users/register/RegisterUsecase.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/register/RegisterUsecase.kt index 3bb748d..c9d635a 100644 --- a/domain/src/main/kotlin/usecases/users/register/RegisterUsecase.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/usecases/users/register/RegisterUsecase.kt @@ -1,7 +1,7 @@ package be.simplenotes.domain.usecases.users.register import arrow.core.Either -import be.simplenotes.domain.model.PersistedUser +import be.simplenotes.types.PersistedUser import be.simplenotes.domain.usecases.users.login.LoginForm import io.konform.validation.ValidationErrors diff --git a/domain/src/main/kotlin/validation/NoteValidations.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/validation/NoteValidations.kt similarity index 96% rename from domain/src/main/kotlin/validation/NoteValidations.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/validation/NoteValidations.kt index ee60422..0a25b0a 100644 --- a/domain/src/main/kotlin/validation/NoteValidations.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/validation/NoteValidations.kt @@ -1,7 +1,7 @@ package be.simplenotes.domain.validation import arrow.core.* -import be.simplenotes.domain.model.NoteMetadata +import be.simplenotes.types.NoteMetadata import be.simplenotes.domain.usecases.markdown.ValidationError import io.konform.validation.Validation import io.konform.validation.jsonschema.maxItems diff --git a/domain/src/main/kotlin/validation/UserValidations.kt b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/validation/UserValidations.kt similarity index 98% rename from domain/src/main/kotlin/validation/UserValidations.kt rename to simplenotes-domain/src/main/kotlin/be/simplenotes/domain/validation/UserValidations.kt index d46f490..59bf6da 100644 --- a/domain/src/main/kotlin/validation/UserValidations.kt +++ b/simplenotes-domain/src/main/kotlin/be/simplenotes/domain/validation/UserValidations.kt @@ -3,7 +3,7 @@ package be.simplenotes.domain.validation import arrow.core.Either import arrow.core.left import arrow.core.right -import be.simplenotes.domain.model.User +import be.simplenotes.types.User import be.simplenotes.domain.usecases.users.delete.DeleteError import be.simplenotes.domain.usecases.users.delete.DeleteForm import be.simplenotes.domain.usecases.users.login.InvalidLoginForm diff --git a/domain/src/test/kotlin/security/JwtPayloadExtractorTest.kt b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/security/JwtPayloadExtractorTest.kt similarity index 97% rename from domain/src/test/kotlin/security/JwtPayloadExtractorTest.kt rename to simplenotes-domain/src/test/kotlin/be/simplenotes/domain/security/JwtPayloadExtractorTest.kt index 6608696..0f09b32 100644 --- a/domain/src/test/kotlin/security/JwtPayloadExtractorTest.kt +++ b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/security/JwtPayloadExtractorTest.kt @@ -1,7 +1,7 @@ package be.simplenotes.domain.security import be.simplenotes.domain.usecases.users.login.Token -import be.simplenotes.shared.config.JwtConfig +import be.simplenotes.config.JwtConfig import com.auth0.jwt.JWT import com.auth0.jwt.algorithms.Algorithm import com.natpryce.hamkrest.absent diff --git a/shared/src/test/kotlin/testutils/assertions/ArrowAssertions.kt b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/testutils/ArrowAssertions.kt similarity index 96% rename from shared/src/test/kotlin/testutils/assertions/ArrowAssertions.kt rename to simplenotes-domain/src/test/kotlin/be/simplenotes/domain/testutils/ArrowAssertions.kt index 241ba13..e66e53b 100644 --- a/shared/src/test/kotlin/testutils/assertions/ArrowAssertions.kt +++ b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/testutils/ArrowAssertions.kt @@ -1,4 +1,4 @@ -package be.simplenotes.shared.testutils.assertions +package be.simplenotes.domain.testutils import arrow.core.Either import com.natpryce.hamkrest.MatchResult diff --git a/domain/src/test/kotlin/usecases/users/login/LoginUseCaseImplTest.kt b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/usecases/users/login/LoginUseCaseImplTest.kt similarity index 88% rename from domain/src/test/kotlin/usecases/users/login/LoginUseCaseImplTest.kt rename to simplenotes-domain/src/test/kotlin/be/simplenotes/domain/usecases/users/login/LoginUseCaseImplTest.kt index e869ad1..e401cc3 100644 --- a/domain/src/test/kotlin/usecases/users/login/LoginUseCaseImplTest.kt +++ b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/usecases/users/login/LoginUseCaseImplTest.kt @@ -1,12 +1,12 @@ package be.simplenotes.domain.usecases.users.login -import be.simplenotes.domain.model.PersistedUser +import be.simplenotes.types.PersistedUser import be.simplenotes.domain.security.BcryptPasswordHash import be.simplenotes.domain.security.SimpleJwt -import be.simplenotes.domain.usecases.repositories.UserRepository -import be.simplenotes.shared.config.JwtConfig -import be.simplenotes.shared.testutils.assertions.isLeftOfType -import be.simplenotes.shared.testutils.assertions.isRight +import be.simplenotes.persistance.repositories.UserRepository +import be.simplenotes.config.JwtConfig +import be.simplenotes.domain.testutils.isLeftOfType +import be.simplenotes.domain.testutils.isRight import com.natpryce.hamkrest.assertion.assertThat import io.mockk.* import org.junit.jupiter.api.BeforeEach diff --git a/domain/src/test/kotlin/usecases/users/register/RegisterUseCaseImplTest.kt b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/usecases/users/register/RegisterUseCaseImplTest.kt similarity index 87% rename from domain/src/test/kotlin/usecases/users/register/RegisterUseCaseImplTest.kt rename to simplenotes-domain/src/test/kotlin/be/simplenotes/domain/usecases/users/register/RegisterUseCaseImplTest.kt index 3c7140d..6e23345 100644 --- a/domain/src/test/kotlin/usecases/users/register/RegisterUseCaseImplTest.kt +++ b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/usecases/users/register/RegisterUseCaseImplTest.kt @@ -1,10 +1,10 @@ package be.simplenotes.domain.usecases.users.register -import be.simplenotes.domain.model.PersistedUser +import be.simplenotes.types.PersistedUser import be.simplenotes.domain.security.BcryptPasswordHash -import be.simplenotes.domain.usecases.repositories.UserRepository -import be.simplenotes.shared.testutils.assertions.isLeftOfType -import be.simplenotes.shared.testutils.assertions.isRight +import be.simplenotes.domain.testutils.isLeftOfType +import be.simplenotes.domain.testutils.isRight +import be.simplenotes.persistance.repositories.UserRepository import com.natpryce.hamkrest.assertion.assertThat import com.natpryce.hamkrest.equalTo import io.mockk.* diff --git a/domain/src/test/kotlin/validation/UserValidationsTest.kt b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/validation/UserValidationsTest.kt similarity index 95% rename from domain/src/test/kotlin/validation/UserValidationsTest.kt rename to simplenotes-domain/src/test/kotlin/be/simplenotes/domain/validation/UserValidationsTest.kt index f351d77..0659157 100644 --- a/domain/src/test/kotlin/validation/UserValidationsTest.kt +++ b/simplenotes-domain/src/test/kotlin/be/simplenotes/domain/validation/UserValidationsTest.kt @@ -1,10 +1,10 @@ package be.simplenotes.domain.validation +import be.simplenotes.domain.testutils.isLeftOfType +import be.simplenotes.domain.testutils.isRight import be.simplenotes.domain.usecases.users.login.InvalidLoginForm import be.simplenotes.domain.usecases.users.login.LoginForm import be.simplenotes.domain.usecases.users.register.RegisterForm -import be.simplenotes.shared.testutils.assertions.isLeftOfType -import be.simplenotes.shared.testutils.assertions.isRight import com.natpryce.hamkrest.assertion.assertThat import org.junit.jupiter.api.Nested import org.junit.jupiter.params.ParameterizedTest diff --git a/persistance/pom.xml b/simplenotes-persistance/pom.xml similarity index 83% rename from persistance/pom.xml rename to simplenotes-persistance/pom.xml index cd47ef7..80a6a3c 100644 --- a/persistance/pom.xml +++ b/simplenotes-persistance/pom.xml @@ -2,13 +2,13 @@ - parent + simplenotes-parent be.simplenotes 1.0-SNAPSHOT 4.0.0 - persistance + simplenotes-persistance @@ -17,22 +17,27 @@ be.simplenotes - domain + simplenotes-types 1.0-SNAPSHOT be.simplenotes - shared + simplenotes-config 1.0-SNAPSHOT be.simplenotes - shared + simplenotes-test-resources 1.0-SNAPSHOT test-jar test + + org.koin + koin-core + + org.assertj assertj-core @@ -59,11 +64,13 @@ flyway-core 6.5.4 + com.zaxxer HikariCP - 3.4.5 + 3.4.3 + me.liuwj.ktorm ktorm-core diff --git a/persistance/src/main/kotlin/HealthCheck.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/HealthCheck.kt similarity index 94% rename from persistance/src/main/kotlin/HealthCheck.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/HealthCheck.kt index 063646a..97e3928 100644 --- a/persistance/src/main/kotlin/HealthCheck.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/HealthCheck.kt @@ -2,7 +2,7 @@ package be.simplenotes.persistance import be.simplenotes.persistance.utils.DbType import be.simplenotes.persistance.utils.type -import be.simplenotes.shared.config.DataSourceConfig +import be.simplenotes.config.DataSourceConfig import me.liuwj.ktorm.database.Database import me.liuwj.ktorm.database.asIterable import java.sql.SQLTransientException diff --git a/persistance/src/main/kotlin/Migrations.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/Migrations.kt similarity index 93% rename from persistance/src/main/kotlin/Migrations.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/Migrations.kt index 3938ded..dcd9add 100644 --- a/persistance/src/main/kotlin/Migrations.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/Migrations.kt @@ -2,7 +2,7 @@ package be.simplenotes.persistance import be.simplenotes.persistance.utils.DbType import be.simplenotes.persistance.utils.type -import be.simplenotes.shared.config.DataSourceConfig +import be.simplenotes.config.DataSourceConfig import org.flywaydb.core.Flyway import javax.sql.DataSource diff --git a/persistance/src/main/kotlin/PersistanceModule.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/PersistanceModule.kt similarity index 89% rename from persistance/src/main/kotlin/PersistanceModule.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/PersistanceModule.kt index 0769295..3238e4a 100644 --- a/persistance/src/main/kotlin/PersistanceModule.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/PersistanceModule.kt @@ -1,14 +1,14 @@ package be.simplenotes.persistance -import be.simplenotes.domain.usecases.repositories.NoteRepository -import be.simplenotes.domain.usecases.repositories.UserRepository +import be.simplenotes.config.DataSourceConfig import be.simplenotes.persistance.converters.NoteConverter import be.simplenotes.persistance.converters.NoteConverterImpl import be.simplenotes.persistance.converters.UserConverter import be.simplenotes.persistance.converters.UserConverterImpl import be.simplenotes.persistance.notes.NoteRepositoryImpl +import be.simplenotes.persistance.repositories.NoteRepository +import be.simplenotes.persistance.repositories.UserRepository import be.simplenotes.persistance.users.UserRepositoryImpl -import be.simplenotes.shared.config.DataSourceConfig import com.zaxxer.hikari.HikariConfig import com.zaxxer.hikari.HikariDataSource import me.liuwj.ktorm.database.Database diff --git a/persistance/src/main/kotlin/converters/NoteConverter.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/converters/NoteConverter.kt similarity index 98% rename from persistance/src/main/kotlin/converters/NoteConverter.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/converters/NoteConverter.kt index 1939a52..8fbc6fc 100644 --- a/persistance/src/main/kotlin/converters/NoteConverter.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/converters/NoteConverter.kt @@ -1,6 +1,6 @@ package be.simplenotes.persistance.converters -import be.simplenotes.domain.model.* +import be.simplenotes.types.* import be.simplenotes.persistance.notes.NoteEntity import me.liuwj.ktorm.entity.Entity import org.mapstruct.Mapper diff --git a/persistance/src/main/kotlin/converters/UserConverter.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/converters/UserConverter.kt similarity index 85% rename from persistance/src/main/kotlin/converters/UserConverter.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/converters/UserConverter.kt index 6520003..4309e92 100644 --- a/persistance/src/main/kotlin/converters/UserConverter.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/converters/UserConverter.kt @@ -1,7 +1,7 @@ package be.simplenotes.persistance.converters -import be.simplenotes.domain.model.PersistedUser -import be.simplenotes.domain.model.User +import be.simplenotes.types.PersistedUser +import be.simplenotes.types.User import be.simplenotes.persistance.users.UserEntity import me.liuwj.ktorm.entity.Entity import org.mapstruct.Mapper diff --git a/persistance/src/main/kotlin/extensions/KtormExtensions.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/extensions/KtormExtensions.kt similarity index 100% rename from persistance/src/main/kotlin/extensions/KtormExtensions.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/extensions/KtormExtensions.kt diff --git a/persistance/src/main/kotlin/notes/NoteRepositoryImpl.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/notes/NoteRepositoryImpl.kt similarity index 96% rename from persistance/src/main/kotlin/notes/NoteRepositoryImpl.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/notes/NoteRepositoryImpl.kt index 3b65189..c2297e4 100644 --- a/persistance/src/main/kotlin/notes/NoteRepositoryImpl.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/notes/NoteRepositoryImpl.kt @@ -1,11 +1,11 @@ package be.simplenotes.persistance.notes -import be.simplenotes.domain.model.ExportedNote -import be.simplenotes.domain.model.Note -import be.simplenotes.domain.model.PersistedNote -import be.simplenotes.domain.model.PersistedNoteMetadata -import be.simplenotes.domain.usecases.repositories.NoteRepository +import be.simplenotes.types.ExportedNote +import be.simplenotes.types.Note +import be.simplenotes.types.PersistedNote +import be.simplenotes.types.PersistedNoteMetadata import be.simplenotes.persistance.converters.NoteConverter +import be.simplenotes.persistance.repositories.NoteRepository import me.liuwj.ktorm.database.Database import me.liuwj.ktorm.dsl.* import me.liuwj.ktorm.entity.* diff --git a/persistance/src/main/kotlin/notes/Notes.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/notes/Notes.kt similarity index 100% rename from persistance/src/main/kotlin/notes/Notes.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/notes/Notes.kt diff --git a/persistance/src/main/kotlin/notes/Tags.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/notes/Tags.kt similarity index 100% rename from persistance/src/main/kotlin/notes/Tags.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/notes/Tags.kt diff --git a/domain/src/main/kotlin/usecases/repositories/NoteRepository.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/repositories/NoteRepository.kt similarity index 80% rename from domain/src/main/kotlin/usecases/repositories/NoteRepository.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/repositories/NoteRepository.kt index e312d8f..a4edeac 100644 --- a/domain/src/main/kotlin/usecases/repositories/NoteRepository.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/repositories/NoteRepository.kt @@ -1,9 +1,9 @@ -package be.simplenotes.domain.usecases.repositories +package be.simplenotes.persistance.repositories -import be.simplenotes.domain.model.ExportedNote -import be.simplenotes.domain.model.Note -import be.simplenotes.domain.model.PersistedNote -import be.simplenotes.domain.model.PersistedNoteMetadata +import be.simplenotes.types.ExportedNote +import be.simplenotes.types.Note +import be.simplenotes.types.PersistedNote +import be.simplenotes.types.PersistedNoteMetadata import java.util.* interface NoteRepository { diff --git a/domain/src/main/kotlin/usecases/repositories/UserRepository.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/repositories/UserRepository.kt similarity index 67% rename from domain/src/main/kotlin/usecases/repositories/UserRepository.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/repositories/UserRepository.kt index 1f52f34..f0abf52 100644 --- a/domain/src/main/kotlin/usecases/repositories/UserRepository.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/repositories/UserRepository.kt @@ -1,7 +1,7 @@ -package be.simplenotes.domain.usecases.repositories +package be.simplenotes.persistance.repositories -import be.simplenotes.domain.model.PersistedUser -import be.simplenotes.domain.model.User +import be.simplenotes.types.PersistedUser +import be.simplenotes.types.User interface UserRepository { fun create(user: User): PersistedUser? diff --git a/persistance/src/main/kotlin/users/UserRepositoryImpl.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/users/UserRepositoryImpl.kt similarity index 89% rename from persistance/src/main/kotlin/users/UserRepositoryImpl.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/users/UserRepositoryImpl.kt index 5e20ba0..b99c830 100644 --- a/persistance/src/main/kotlin/users/UserRepositoryImpl.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/users/UserRepositoryImpl.kt @@ -1,9 +1,9 @@ package be.simplenotes.persistance.users -import be.simplenotes.domain.model.PersistedUser -import be.simplenotes.domain.model.User -import be.simplenotes.domain.usecases.repositories.UserRepository +import be.simplenotes.types.PersistedUser +import be.simplenotes.types.User import be.simplenotes.persistance.converters.UserConverter +import be.simplenotes.persistance.repositories.UserRepository import me.liuwj.ktorm.database.Database import me.liuwj.ktorm.dsl.* import me.liuwj.ktorm.entity.any diff --git a/persistance/src/main/kotlin/users/Users.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/users/Users.kt similarity index 100% rename from persistance/src/main/kotlin/users/Users.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/users/Users.kt diff --git a/persistance/src/main/kotlin/utils/DataSourceConfigUtils.kt b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/utils/DataSourceConfigUtils.kt similarity index 77% rename from persistance/src/main/kotlin/utils/DataSourceConfigUtils.kt rename to simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/utils/DataSourceConfigUtils.kt index c683027..36f4450 100644 --- a/persistance/src/main/kotlin/utils/DataSourceConfigUtils.kt +++ b/simplenotes-persistance/src/main/kotlin/be/simplenotes/persistance/utils/DataSourceConfigUtils.kt @@ -1,6 +1,6 @@ package be.simplenotes.persistance.utils -import be.simplenotes.shared.config.DataSourceConfig +import be.simplenotes.config.DataSourceConfig enum class DbType { H2, MariaDb } diff --git a/persistance/src/main/resources/db/migration/mariadb/V1__Create_tables.sql b/simplenotes-persistance/src/main/resources/db/migration/mariadb/V1__Create_tables.sql similarity index 100% rename from persistance/src/main/resources/db/migration/mariadb/V1__Create_tables.sql rename to simplenotes-persistance/src/main/resources/db/migration/mariadb/V1__Create_tables.sql diff --git a/persistance/src/main/resources/db/migration/mariadb/V2__Add_deleted_column.sql b/simplenotes-persistance/src/main/resources/db/migration/mariadb/V2__Add_deleted_column.sql similarity index 100% rename from persistance/src/main/resources/db/migration/mariadb/V2__Add_deleted_column.sql rename to simplenotes-persistance/src/main/resources/db/migration/mariadb/V2__Add_deleted_column.sql diff --git a/persistance/src/main/resources/db/migration/mariadb/V3__Add_public_column.sql b/simplenotes-persistance/src/main/resources/db/migration/mariadb/V3__Add_public_column.sql similarity index 100% rename from persistance/src/main/resources/db/migration/mariadb/V3__Add_public_column.sql rename to simplenotes-persistance/src/main/resources/db/migration/mariadb/V3__Add_public_column.sql diff --git a/persistance/src/main/resources/db/migration/other/V1__Create_tables.sql b/simplenotes-persistance/src/main/resources/db/migration/other/V1__Create_tables.sql similarity index 100% rename from persistance/src/main/resources/db/migration/other/V1__Create_tables.sql rename to simplenotes-persistance/src/main/resources/db/migration/other/V1__Create_tables.sql diff --git a/persistance/src/main/resources/db/migration/other/V2__Add_deleted_column.sql b/simplenotes-persistance/src/main/resources/db/migration/other/V2__Add_deleted_column.sql similarity index 100% rename from persistance/src/main/resources/db/migration/other/V2__Add_deleted_column.sql rename to simplenotes-persistance/src/main/resources/db/migration/other/V2__Add_deleted_column.sql diff --git a/persistance/src/main/resources/db/migration/other/V3__Add_public_column.sql b/simplenotes-persistance/src/main/resources/db/migration/other/V3__Add_public_column.sql similarity index 100% rename from persistance/src/main/resources/db/migration/other/V3__Add_public_column.sql rename to simplenotes-persistance/src/main/resources/db/migration/other/V3__Add_public_column.sql diff --git a/persistance/src/main/resources/logback.xml b/simplenotes-persistance/src/main/resources/logback.xml similarity index 100% rename from persistance/src/main/resources/logback.xml rename to simplenotes-persistance/src/main/resources/logback.xml diff --git a/persistance/src/test/kotlin/converters/NoteConverterTest.kt b/simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/converters/NoteConverterTest.kt similarity index 99% rename from persistance/src/test/kotlin/converters/NoteConverterTest.kt rename to simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/converters/NoteConverterTest.kt index 2e2db90..1711494 100644 --- a/persistance/src/test/kotlin/converters/NoteConverterTest.kt +++ b/simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/converters/NoteConverterTest.kt @@ -1,7 +1,7 @@ package be.simplenotes.persistance.converters -import be.simplenotes.domain.model.* import be.simplenotes.persistance.notes.NoteEntity +import be.simplenotes.types.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested diff --git a/persistance/src/test/kotlin/converters/UserConverterTest.kt b/simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/converters/UserConverterTest.kt similarity index 94% rename from persistance/src/test/kotlin/converters/UserConverterTest.kt rename to simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/converters/UserConverterTest.kt index c8fd91f..9b42f1e 100644 --- a/persistance/src/test/kotlin/converters/UserConverterTest.kt +++ b/simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/converters/UserConverterTest.kt @@ -1,7 +1,7 @@ package be.simplenotes.persistance.converters -import be.simplenotes.domain.model.PersistedUser -import be.simplenotes.domain.model.User +import be.simplenotes.types.PersistedUser +import be.simplenotes.types.User import be.simplenotes.persistance.users.UserEntity import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test diff --git a/persistance/src/test/kotlin/notes/NoteRepositoryImplTest.kt b/simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/notes/NoteRepositoryImplTest.kt similarity index 97% rename from persistance/src/test/kotlin/notes/NoteRepositoryImplTest.kt rename to simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/notes/NoteRepositoryImplTest.kt index 577ccb9..73198b6 100644 --- a/persistance/src/test/kotlin/notes/NoteRepositoryImplTest.kt +++ b/simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/notes/NoteRepositoryImplTest.kt @@ -1,13 +1,14 @@ package be.simplenotes.persistance.notes -import be.simplenotes.domain.model.* -import be.simplenotes.domain.usecases.repositories.NoteRepository -import be.simplenotes.domain.usecases.repositories.UserRepository import be.simplenotes.persistance.DbMigrations import be.simplenotes.persistance.converters.NoteConverter import be.simplenotes.persistance.migrationModule import be.simplenotes.persistance.persistanceModule -import be.simplenotes.shared.config.DataSourceConfig +import be.simplenotes.config.DataSourceConfig +import be.simplenotes.persistance.repositories.NoteRepository +import be.simplenotes.persistance.repositories.UserRepository +import be.simplenotes.types.* +import be.simplenotes.types.* import me.liuwj.ktorm.database.Database import me.liuwj.ktorm.dsl.eq import me.liuwj.ktorm.entity.filter diff --git a/persistance/src/test/kotlin/users/UserRepositoryImplTest.kt b/simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/users/UserRepositoryImplTest.kt similarity index 95% rename from persistance/src/test/kotlin/users/UserRepositoryImplTest.kt rename to simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/users/UserRepositoryImplTest.kt index c888f1d..cd9909c 100644 --- a/persistance/src/test/kotlin/users/UserRepositoryImplTest.kt +++ b/simplenotes-persistance/src/test/kotlin/be/simplenotes/persistance/users/UserRepositoryImplTest.kt @@ -1,11 +1,11 @@ package be.simplenotes.persistance.users -import be.simplenotes.domain.model.User -import be.simplenotes.domain.usecases.repositories.UserRepository +import be.simplenotes.types.User +import be.simplenotes.persistance.repositories.UserRepository import be.simplenotes.persistance.DbMigrations import be.simplenotes.persistance.migrationModule import be.simplenotes.persistance.persistanceModule -import be.simplenotes.shared.config.DataSourceConfig +import be.simplenotes.config.DataSourceConfig import me.liuwj.ktorm.database.* import me.liuwj.ktorm.dsl.* import me.liuwj.ktorm.entity.* diff --git a/search/pom.xml b/simplenotes-search/pom.xml similarity index 84% rename from search/pom.xml rename to simplenotes-search/pom.xml index 5e98a72..966bce0 100644 --- a/search/pom.xml +++ b/simplenotes-search/pom.xml @@ -3,13 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - parent + simplenotes-parent be.simplenotes 1.0-SNAPSHOT 4.0.0 - search + simplenotes-search 8.6.1 @@ -18,9 +18,10 @@ be.simplenotes - domain + simplenotes-types 1.0-SNAPSHOT + org.apache.lucene lucene-core @@ -41,6 +42,10 @@ org.slf4j slf4j-api + + org.koin + koin-core + org.junit.jupiter @@ -55,7 +60,7 @@ be.simplenotes - shared + simplenotes-test-resources 1.0-SNAPSHOT test-jar test diff --git a/search/src/main/kotlin/Constants.kt b/simplenotes-search/src/main/kotlin/be/simplenotes/search/Constants.kt similarity index 100% rename from search/src/main/kotlin/Constants.kt rename to simplenotes-search/src/main/kotlin/be/simplenotes/search/Constants.kt diff --git a/search/src/main/kotlin/Extractors.kt b/simplenotes-search/src/main/kotlin/be/simplenotes/search/Extractors.kt similarity index 91% rename from search/src/main/kotlin/Extractors.kt rename to simplenotes-search/src/main/kotlin/be/simplenotes/search/Extractors.kt index 256b343..a45a7ab 100644 --- a/search/src/main/kotlin/Extractors.kt +++ b/simplenotes-search/src/main/kotlin/be/simplenotes/search/Extractors.kt @@ -1,7 +1,7 @@ package be.simplenotes.search -import be.simplenotes.domain.model.PersistedNote -import be.simplenotes.domain.model.PersistedNoteMetadata +import be.simplenotes.types.PersistedNote +import be.simplenotes.types.PersistedNoteMetadata import org.apache.lucene.document.Document import org.apache.lucene.document.Field import org.apache.lucene.document.StringField diff --git a/search/src/main/kotlin/FieldConverters.kt b/simplenotes-search/src/main/kotlin/be/simplenotes/search/FieldConverters.kt similarity index 100% rename from search/src/main/kotlin/FieldConverters.kt rename to simplenotes-search/src/main/kotlin/be/simplenotes/search/FieldConverters.kt diff --git a/search/src/main/kotlin/LuceneDsl.kt b/simplenotes-search/src/main/kotlin/be/simplenotes/search/LuceneDsl.kt similarity index 77% rename from search/src/main/kotlin/LuceneDsl.kt rename to simplenotes-search/src/main/kotlin/be/simplenotes/search/LuceneDsl.kt index ae5c2cc..0a5827e 100644 --- a/search/src/main/kotlin/LuceneDsl.kt +++ b/simplenotes-search/src/main/kotlin/be/simplenotes/search/LuceneDsl.kt @@ -7,7 +7,7 @@ import org.slf4j.LoggerFactory private val logger = LoggerFactory.getLogger("be.simplenotes.search.dsl") -fun IndexSearcher.query(receiver: LuceneDsl.() -> Unit): List { +internal fun IndexSearcher.query(receiver: LuceneDsl.() -> Unit): List { val indexSearcher = this val builder = BooleanQuery.Builder() val dsl = LuceneDsl() @@ -23,7 +23,7 @@ fun IndexSearcher.query(receiver: LuceneDsl.() -> Unit): List { return topDocs.scoreDocs.map { indexSearcher.doc(it.doc) } } -class LuceneDsl { +internal class LuceneDsl { val clauses = mutableListOf() var count: Int = 10 @@ -38,10 +38,10 @@ class LuceneDsl { } } -fun LuceneDsl.or(booleanExpression: () -> BooleanExpression) { +internal fun LuceneDsl.or(booleanExpression: () -> BooleanExpression) { addBooleanClause(booleanExpression()) } -infix fun String.eq(query: String?) = BooleanExpression(this, query) +internal infix fun String.eq(query: String?) = BooleanExpression(this, query) -data class BooleanExpression(val term: String, val query: String?) +internal data class BooleanExpression(val term: String, val query: String?) diff --git a/search/src/main/kotlin/NoteSearcherImpl.kt b/simplenotes-search/src/main/kotlin/be/simplenotes/search/NoteSearcherImpl.kt similarity index 92% rename from search/src/main/kotlin/NoteSearcherImpl.kt rename to simplenotes-search/src/main/kotlin/be/simplenotes/search/NoteSearcherImpl.kt index 9c3c121..a0debab 100644 --- a/search/src/main/kotlin/NoteSearcherImpl.kt +++ b/simplenotes-search/src/main/kotlin/be/simplenotes/search/NoteSearcherImpl.kt @@ -1,8 +1,6 @@ package be.simplenotes.search -import be.simplenotes.domain.model.PersistedNote -import be.simplenotes.domain.usecases.search.NoteSearcher -import be.simplenotes.domain.usecases.search.SearchTerms +import be.simplenotes.types.PersistedNote import be.simplenotes.search.utils.rmdir import org.apache.lucene.analysis.standard.StandardAnalyzer import org.apache.lucene.document.Document @@ -16,7 +14,7 @@ import java.io.File import java.nio.file.Path import java.util.* -class NoteSearcherImpl(basePath: Path = Path.of("/tmp", "lucene")) : NoteSearcher { +internal class NoteSearcherImpl(basePath: Path = Path.of("/tmp", "lucene")) : NoteSearcher { private val baseFile = basePath.toFile() private val logger = LoggerFactory.getLogger(javaClass) diff --git a/search/src/main/kotlin/SeachModule.kt b/simplenotes-search/src/main/kotlin/be/simplenotes/search/SeachModule.kt similarity index 75% rename from search/src/main/kotlin/SeachModule.kt rename to simplenotes-search/src/main/kotlin/be/simplenotes/search/SeachModule.kt index d86f399..5fd12e9 100644 --- a/search/src/main/kotlin/SeachModule.kt +++ b/simplenotes-search/src/main/kotlin/be/simplenotes/search/SeachModule.kt @@ -1,6 +1,5 @@ package be.simplenotes.search -import be.simplenotes.domain.usecases.search.NoteSearcher import org.koin.dsl.module import java.nio.file.Path diff --git a/domain/src/main/kotlin/usecases/search/SearchUseCase.kt b/simplenotes-search/src/main/kotlin/be/simplenotes/search/SearchUseCase.kt similarity index 76% rename from domain/src/main/kotlin/usecases/search/SearchUseCase.kt rename to simplenotes-search/src/main/kotlin/be/simplenotes/search/SearchUseCase.kt index aae7896..3a76f01 100644 --- a/domain/src/main/kotlin/usecases/search/SearchUseCase.kt +++ b/simplenotes-search/src/main/kotlin/be/simplenotes/search/SearchUseCase.kt @@ -1,7 +1,7 @@ -package be.simplenotes.domain.usecases.search +package be.simplenotes.search -import be.simplenotes.domain.model.PersistedNote -import be.simplenotes.domain.model.PersistedNoteMetadata +import be.simplenotes.types.PersistedNote +import be.simplenotes.types.PersistedNoteMetadata import java.util.* data class SearchTerms(val title: String?, val tag: String?, val content: String?, val all: String?) diff --git a/search/src/main/kotlin/utils/PathUtils.kt b/simplenotes-search/src/main/kotlin/be/simplenotes/search/utils/PathUtils.kt similarity index 100% rename from search/src/main/kotlin/utils/PathUtils.kt rename to simplenotes-search/src/main/kotlin/be/simplenotes/search/utils/PathUtils.kt diff --git a/search/src/test/kotlin/NoteSearcherImplTest.kt b/simplenotes-search/src/test/kotlin/be/simplenotes/search/NoteSearcherImplTest.kt similarity index 95% rename from search/src/test/kotlin/NoteSearcherImplTest.kt rename to simplenotes-search/src/test/kotlin/be/simplenotes/search/NoteSearcherImplTest.kt index 2fdd159..9945fd8 100644 --- a/search/src/test/kotlin/NoteSearcherImplTest.kt +++ b/simplenotes-search/src/test/kotlin/be/simplenotes/search/NoteSearcherImplTest.kt @@ -1,9 +1,8 @@ package be.simplenotes.search -import be.simplenotes.domain.model.NoteMetadata -import be.simplenotes.domain.model.PersistedNote -import be.simplenotes.domain.model.PersistedNoteMetadata -import be.simplenotes.domain.usecases.search.SearchTerms +import be.simplenotes.types.NoteMetadata +import be.simplenotes.types.PersistedNote +import be.simplenotes.types.PersistedNoteMetadata import org.assertj.core.api.Assertions.assertThat import org.intellij.lang.annotations.Language import org.junit.jupiter.api.AfterAll diff --git a/search/src/test/kotlin/TagsFieldConverterTest.kt b/simplenotes-search/src/test/kotlin/be/simplenotes/search/TagsFieldConverterTest.kt similarity index 100% rename from search/src/test/kotlin/TagsFieldConverterTest.kt rename to simplenotes-search/src/test/kotlin/be/simplenotes/search/TagsFieldConverterTest.kt diff --git a/shared/pom.xml b/simplenotes-test-resources/pom.xml similarity index 66% rename from shared/pom.xml rename to simplenotes-test-resources/pom.xml index e162a39..ea6766a 100644 --- a/shared/pom.xml +++ b/simplenotes-test-resources/pom.xml @@ -2,26 +2,13 @@ - parent + simplenotes-parent be.simplenotes 1.0-SNAPSHOT 4.0.0 - shared - - - - io.arrow-kt - arrow-core - test - - - com.natpryce - hamkrest - test - - + simplenotes-test-resources diff --git a/shared/src/test/resources/junit-platform.properties b/simplenotes-test-resources/src/test/resources/junit-platform.properties similarity index 100% rename from shared/src/test/resources/junit-platform.properties rename to simplenotes-test-resources/src/test/resources/junit-platform.properties diff --git a/simplenotes-types/pom.xml b/simplenotes-types/pom.xml new file mode 100644 index 0000000..fba64c7 --- /dev/null +++ b/simplenotes-types/pom.xml @@ -0,0 +1,21 @@ + + + + simplenotes-parent + be.simplenotes + 1.0-SNAPSHOT + + 4.0.0 + + simplenotes-types + + + + org.jetbrains.kotlinx + kotlinx-serialization-json-jvm + + + + diff --git a/domain/src/main/kotlin/model/Note.kt b/simplenotes-types/src/main/kotlin/be/simplenotes/types/Note.kt similarity index 96% rename from domain/src/main/kotlin/model/Note.kt rename to simplenotes-types/src/main/kotlin/be/simplenotes/types/Note.kt index c2697b4..75936b1 100644 --- a/domain/src/main/kotlin/model/Note.kt +++ b/simplenotes-types/src/main/kotlin/be/simplenotes/types/Note.kt @@ -1,4 +1,4 @@ -package be.simplenotes.domain.model +package be.simplenotes.types import kotlinx.serialization.Contextual import kotlinx.serialization.Serializable diff --git a/domain/src/main/kotlin/model/User.kt b/simplenotes-types/src/main/kotlin/be/simplenotes/types/User.kt similarity index 79% rename from domain/src/main/kotlin/model/User.kt rename to simplenotes-types/src/main/kotlin/be/simplenotes/types/User.kt index ce87914..bd93f58 100644 --- a/domain/src/main/kotlin/model/User.kt +++ b/simplenotes-types/src/main/kotlin/be/simplenotes/types/User.kt @@ -1,4 +1,4 @@ -package be.simplenotes.domain.model +package be.simplenotes.types data class User(val username: String, val password: String) data class PersistedUser(val username: String, val password: String, val id: Int)