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)