Move packages + remove circular dependencies
This commit is contained in:
parent
ee026ec829
commit
38750a588c
28
Dockerfile
28
Dockerfile
@ -4,19 +4,23 @@ WORKDIR /tmp
|
|||||||
|
|
||||||
# Cache dependencies
|
# Cache dependencies
|
||||||
COPY pom.xml .
|
COPY pom.xml .
|
||||||
COPY app/pom.xml app/pom.xml
|
COPY simplenotes-test-resources/pom.xml simplenotes-test-resources/pom.xml
|
||||||
COPY domain/pom.xml domain/pom.xml
|
COPY simplenotes-types/pom.xml simplenotes-types/pom.xml
|
||||||
COPY persistance/pom.xml persistance/pom.xml
|
COPY simplenotes-config/pom.xml simplenotes-config/pom.xml
|
||||||
COPY shared/pom.xml shared/pom.xml
|
COPY simplenotes-persistance/pom.xml simplenotes-persistance/pom.xml
|
||||||
COPY search/pom.xml search/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
|
RUN mvn verify clean --fail-never
|
||||||
|
|
||||||
COPY app/src app/src
|
COPY simplenotes-test-resources/src simplenotes-test-resources/src
|
||||||
COPY domain/src domain/src
|
COPY simplenotes-types/src simplenotes-types/src
|
||||||
COPY persistance/src persistance/src
|
COPY simplenotes-config/src simplenotes-config/src
|
||||||
COPY shared/src shared/src
|
COPY simplenotes-persistance/src simplenotes-persistance/src
|
||||||
COPY search/src search/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
|
RUN mvn -Dstyle.color=always package
|
||||||
|
|
||||||
@ -42,8 +46,8 @@ RUN chown -R $APPLICATION_USER /app
|
|||||||
|
|
||||||
USER $APPLICATION_USER
|
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
|
COPY --from=jdkbuilder /myjdk /myjdk
|
||||||
WORKDIR /app
|
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"]
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
"name": "css",
|
"name": "css",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"scripts": {
|
"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": "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=../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=../simplenotes-app/src/main/resources/css-manifest.json postcss build src/styles.pcss --output ../simplenotes-app/src/main/resources/static/styles.css"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"autoprefixer": "^9.8.6",
|
"autoprefixer": "^9.8.6",
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
purge: {
|
purge: {
|
||||||
content: [
|
content: [
|
||||||
'../app/src/main/kotlin/views/**/*.kt'
|
'../simplenotes-app/src/main/kotlin/be/simplenotes/app/views/**/*.kt'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
theme: {
|
theme: {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
rm app/src/main/resources/css-manifest.json
|
rm simplenotes-app/src/main/resources/css-manifest.json
|
||||||
rm app/src/main/resources/static/styles*
|
rm simplenotes-app/src/main/resources/static/styles*
|
||||||
|
|
||||||
yarn --cwd css run css-purge \
|
yarn --cwd css run css-purge \
|
||||||
&& docker build -t hubv/simplenotes:latest . \
|
&& docker build -t hubv/simplenotes:latest . \
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@ -181,7 +181,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.arrow-kt</groupId>
|
<groupId>io.arrow-kt</groupId>
|
||||||
<artifactId>arrow-core</artifactId>
|
<artifactId>arrow-core</artifactId>
|
||||||
<version>0.10.5</version>
|
<version>0.11.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
|
|||||||
@ -39,16 +39,32 @@
|
|||||||
<groupId>org.http4k</groupId>
|
<groupId>org.http4k</groupId>
|
||||||
<artifactId>http4k-core</artifactId>
|
<artifactId>http4k-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.http4k</groupId>
|
<groupId>org.http4k</groupId>
|
||||||
<artifactId>http4k-server-jetty</artifactId>
|
<artifactId>http4k-server-jetty</artifactId>
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.eclipse.jetty.websocket</groupId>
|
|
||||||
<artifactId>javax-websocket-server-impl</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
|
<artifactId>jetty-server</artifactId>
|
||||||
|
<version>9.4.32.v20200930</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
|
<artifactId>jetty-servlet</artifactId>
|
||||||
|
<version>9.4.32.v20200930</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.servlet</groupId>
|
||||||
|
<artifactId>javax.servlet-api</artifactId>
|
||||||
|
<version>4.0.1</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jetbrains.kotlinx</groupId>
|
<groupId>org.jetbrains.kotlinx</groupId>
|
||||||
<artifactId>kotlinx-html-jvm</artifactId>
|
<artifactId>kotlinx-html-jvm</artifactId>
|
||||||
|
|||||||
@ -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 } }
|
||||||
@ -5,6 +5,8 @@ import be.simplenotes.app.filters.AuthFilter
|
|||||||
import be.simplenotes.app.filters.AuthType
|
import be.simplenotes.app.filters.AuthType
|
||||||
import be.simplenotes.app.filters.ErrorFilter
|
import be.simplenotes.app.filters.ErrorFilter
|
||||||
import be.simplenotes.app.filters.TransactionFilter
|
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.routes.Router
|
||||||
import be.simplenotes.app.utils.StaticFileResolver
|
import be.simplenotes.app.utils.StaticFileResolver
|
||||||
import be.simplenotes.app.utils.StaticFileResolverImpl
|
import be.simplenotes.app.utils.StaticFileResolverImpl
|
||||||
@ -14,8 +16,6 @@ import org.eclipse.jetty.server.ServerConnector
|
|||||||
import org.http4k.core.Filter
|
import org.http4k.core.Filter
|
||||||
import org.http4k.core.RequestContexts
|
import org.http4k.core.RequestContexts
|
||||||
import org.http4k.routing.RoutingHttpHandler
|
import org.http4k.routing.RoutingHttpHandler
|
||||||
import org.http4k.server.ConnectorBuilder
|
|
||||||
import org.http4k.server.Jetty
|
|
||||||
import org.http4k.server.asServer
|
import org.http4k.server.asServer
|
||||||
import org.koin.core.qualifier.named
|
import org.koin.core.qualifier.named
|
||||||
import org.koin.core.qualifier.qualifier
|
import org.koin.core.qualifier.qualifier
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package be.simplenotes.app.utils
|
package be.simplenotes.app.utils
|
||||||
|
|
||||||
import be.simplenotes.domain.usecases.search.SearchTerms
|
import be.simplenotes.search.SearchTerms
|
||||||
|
|
||||||
private fun innerRegex(name: String) =
|
private fun innerRegex(name: String) =
|
||||||
"""$name:['"](.*?)['"]""".toRegex()
|
"""$name:['"](.*?)['"]""".toRegex()
|
||||||
25
simplenotes-app/src/main/kotlin/module-info.java
Normal file
25
simplenotes-app/src/main/kotlin/module-info.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
module simplenotes.app {
|
||||||
|
requires java.sql;
|
||||||
|
requires kotlin.stdlib;
|
||||||
|
|
||||||
|
requires simplenotes.config;
|
||||||
|
requires simplenotes.persistance;
|
||||||
|
requires simplenotes.domain;
|
||||||
|
requires simplenotes.search;
|
||||||
|
requires simplenotes.types;
|
||||||
|
|
||||||
|
requires http4k.core;
|
||||||
|
requires org.eclipse.jetty.server;
|
||||||
|
requires org.eclipse.jetty.servlet;
|
||||||
|
requires org.eclipse.jetty.util;
|
||||||
|
|
||||||
|
requires slf4j.api;
|
||||||
|
requires koin.core;
|
||||||
|
requires arrow.module;
|
||||||
|
requires kotlinx.html.jvm;
|
||||||
|
requires kotlinx.serialization.core.jvm;
|
||||||
|
requires kotlinx.serialization.json.jvm;
|
||||||
|
requires konform.jvm;
|
||||||
|
requires prettytime;
|
||||||
|
requires ktorm.core;
|
||||||
|
}
|
||||||
@ -1 +0,0 @@
|
|||||||
package be.simplenotes.app
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package be.simplenotes.app.utils
|
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.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.jupiter.params.ParameterizedTest
|
import org.junit.jupiter.params.ParameterizedTest
|
||||||
import org.junit.jupiter.params.provider.MethodSource
|
import org.junit.jupiter.params.provider.MethodSource
|
||||||
5
simplenotes-config/src/main/kotlin/module-info.java
Normal file
5
simplenotes-config/src/main/kotlin/module-info.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
module simplenotes.config {
|
||||||
|
requires kotlin.stdlib;
|
||||||
|
|
||||||
|
exports be.simplenotes.config;
|
||||||
|
}
|
||||||
@ -28,10 +28,12 @@
|
|||||||
<groupId>org.koin</groupId>
|
<groupId>org.koin</groupId>
|
||||||
<artifactId>koin-core</artifactId>
|
<artifactId>koin-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.arrow-kt</groupId>
|
<groupId>io.arrow-kt</groupId>
|
||||||
<artifactId>arrow-core</artifactId>
|
<artifactId>arrow-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.natpryce</groupId>
|
<groupId>com.natpryce</groupId>
|
||||||
<artifactId>hamkrest</artifactId>
|
<artifactId>hamkrest</artifactId>
|
||||||
@ -94,6 +96,18 @@
|
|||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>be.simplenotes</groupId>
|
||||||
|
<artifactId>simplenotes-persistance</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>be.simplenotes</groupId>
|
||||||
|
<artifactId>simplenotes-search</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@ -2,7 +2,7 @@ package be.simplenotes.domain.security
|
|||||||
|
|
||||||
import org.owasp.html.HtmlPolicyBuilder
|
import org.owasp.html.HtmlPolicyBuilder
|
||||||
|
|
||||||
object HtmlSanitizer {
|
internal object HtmlSanitizer {
|
||||||
private val htmlPolicy = HtmlPolicyBuilder()
|
private val htmlPolicy = HtmlPolicyBuilder()
|
||||||
.allowElements("a")
|
.allowElements("a")
|
||||||
.allowCommonBlockElements()
|
.allowCommonBlockElements()
|
||||||
@ -8,10 +8,10 @@ import be.simplenotes.types.PersistedNoteMetadata
|
|||||||
import be.simplenotes.domain.security.HtmlSanitizer
|
import be.simplenotes.domain.security.HtmlSanitizer
|
||||||
import be.simplenotes.domain.usecases.markdown.MarkdownConverter
|
import be.simplenotes.domain.usecases.markdown.MarkdownConverter
|
||||||
import be.simplenotes.domain.usecases.markdown.MarkdownParsingError
|
import be.simplenotes.domain.usecases.markdown.MarkdownParsingError
|
||||||
import be.simplenotes.domain.usecases.repositories.NoteRepository
|
import be.simplenotes.persistance.repositories.NoteRepository
|
||||||
import be.simplenotes.domain.usecases.repositories.UserRepository
|
import be.simplenotes.persistance.repositories.UserRepository
|
||||||
import be.simplenotes.domain.usecases.search.NoteSearcher
|
import be.simplenotes.search.NoteSearcher
|
||||||
import be.simplenotes.domain.usecases.search.SearchTerms
|
import be.simplenotes.search.SearchTerms
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class NoteService(
|
class NoteService(
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package be.simplenotes.domain.usecases.export
|
package be.simplenotes.domain.usecases.export
|
||||||
|
|
||||||
import be.simplenotes.types.ExportedNote
|
import be.simplenotes.types.ExportedNote
|
||||||
import be.simplenotes.domain.usecases.repositories.NoteRepository
|
import be.simplenotes.persistance.repositories.NoteRepository
|
||||||
import kotlinx.serialization.builtins.ListSerializer
|
import kotlinx.serialization.builtins.ListSerializer
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry
|
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry
|
||||||
@ -4,9 +4,9 @@ import arrow.core.Either
|
|||||||
import arrow.core.extensions.fx
|
import arrow.core.extensions.fx
|
||||||
import arrow.core.rightIfNotNull
|
import arrow.core.rightIfNotNull
|
||||||
import be.simplenotes.domain.security.PasswordHash
|
import be.simplenotes.domain.security.PasswordHash
|
||||||
import be.simplenotes.domain.usecases.repositories.UserRepository
|
import be.simplenotes.persistance.repositories.UserRepository
|
||||||
import be.simplenotes.domain.usecases.search.NoteSearcher
|
|
||||||
import be.simplenotes.domain.validation.UserValidations
|
import be.simplenotes.domain.validation.UserValidations
|
||||||
|
import be.simplenotes.search.NoteSearcher
|
||||||
|
|
||||||
internal class DeleteUseCaseImpl(
|
internal class DeleteUseCaseImpl(
|
||||||
private val userRepository: UserRepository,
|
private val userRepository: UserRepository,
|
||||||
@ -7,8 +7,8 @@ import arrow.core.rightIfNotNull
|
|||||||
import be.simplenotes.domain.security.JwtPayload
|
import be.simplenotes.domain.security.JwtPayload
|
||||||
import be.simplenotes.domain.security.PasswordHash
|
import be.simplenotes.domain.security.PasswordHash
|
||||||
import be.simplenotes.domain.security.SimpleJwt
|
import be.simplenotes.domain.security.SimpleJwt
|
||||||
import be.simplenotes.domain.usecases.repositories.UserRepository
|
|
||||||
import be.simplenotes.domain.validation.UserValidations
|
import be.simplenotes.domain.validation.UserValidations
|
||||||
|
import be.simplenotes.persistance.repositories.UserRepository
|
||||||
|
|
||||||
internal class LoginUseCaseImpl(
|
internal class LoginUseCaseImpl(
|
||||||
private val userRepository: UserRepository,
|
private val userRepository: UserRepository,
|
||||||
@ -5,8 +5,8 @@ import arrow.core.filterOrElse
|
|||||||
import arrow.core.leftIfNull
|
import arrow.core.leftIfNull
|
||||||
import be.simplenotes.types.PersistedUser
|
import be.simplenotes.types.PersistedUser
|
||||||
import be.simplenotes.domain.security.PasswordHash
|
import be.simplenotes.domain.security.PasswordHash
|
||||||
import be.simplenotes.domain.usecases.repositories.UserRepository
|
|
||||||
import be.simplenotes.domain.validation.UserValidations
|
import be.simplenotes.domain.validation.UserValidations
|
||||||
|
import be.simplenotes.persistance.repositories.UserRepository
|
||||||
|
|
||||||
internal class RegisterUseCaseImpl(
|
internal class RegisterUseCaseImpl(
|
||||||
private val userRepository: UserRepository,
|
private val userRepository: UserRepository,
|
||||||
33
simplenotes-domain/src/main/kotlin/module-info.java
Normal file
33
simplenotes-domain/src/main/kotlin/module-info.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
module simplenotes.domain {
|
||||||
|
requires kotlin.stdlib;
|
||||||
|
requires kotlin.stdlib.jdk7;
|
||||||
|
|
||||||
|
requires simplenotes.config;
|
||||||
|
requires simplenotes.types;
|
||||||
|
requires simplenotes.persistance;
|
||||||
|
|
||||||
|
exports be.simplenotes.domain to simplenotes.app;
|
||||||
|
exports be.simplenotes.domain.security to simplenotes.app;
|
||||||
|
exports be.simplenotes.domain.usecases to simplenotes.app;
|
||||||
|
exports be.simplenotes.domain.usecases.markdown to simplenotes.app;
|
||||||
|
exports be.simplenotes.domain.usecases.users.login to simplenotes.app;
|
||||||
|
exports be.simplenotes.domain.usecases.users.delete to simplenotes.app;
|
||||||
|
exports be.simplenotes.domain.usecases.users.register to simplenotes.app;
|
||||||
|
|
||||||
|
requires arrow.module;
|
||||||
|
|
||||||
|
requires flexmark;
|
||||||
|
requires flexmark.util.data;
|
||||||
|
requires flexmark.ext.gfm.tasklist;
|
||||||
|
|
||||||
|
requires koin.core;
|
||||||
|
requires konform.jvm;
|
||||||
|
requires org.yaml.snakeyaml;
|
||||||
|
requires java.jwt;
|
||||||
|
requires kotlinx.serialization.core.jvm;
|
||||||
|
requires org.apache.commons.compress;
|
||||||
|
requires kotlinx.serialization.json.jvm;
|
||||||
|
requires owasp.java.html.sanitizer;
|
||||||
|
requires jbcrypt;
|
||||||
|
requires simplenotes.search;
|
||||||
|
}
|
||||||
@ -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)
|
|
||||||
*/
|
|
||||||
@ -3,7 +3,7 @@ package be.simplenotes.domain.usecases.users.login
|
|||||||
import be.simplenotes.types.PersistedUser
|
import be.simplenotes.types.PersistedUser
|
||||||
import be.simplenotes.domain.security.BcryptPasswordHash
|
import be.simplenotes.domain.security.BcryptPasswordHash
|
||||||
import be.simplenotes.domain.security.SimpleJwt
|
import be.simplenotes.domain.security.SimpleJwt
|
||||||
import be.simplenotes.domain.usecases.repositories.UserRepository
|
import be.simplenotes.persistance.repositories.UserRepository
|
||||||
import be.simplenotes.config.JwtConfig
|
import be.simplenotes.config.JwtConfig
|
||||||
import be.simplenotes.domain.testutils.isLeftOfType
|
import be.simplenotes.domain.testutils.isLeftOfType
|
||||||
import be.simplenotes.domain.testutils.isRight
|
import be.simplenotes.domain.testutils.isRight
|
||||||
@ -4,7 +4,7 @@ import be.simplenotes.types.PersistedUser
|
|||||||
import be.simplenotes.domain.security.BcryptPasswordHash
|
import be.simplenotes.domain.security.BcryptPasswordHash
|
||||||
import be.simplenotes.domain.testutils.isLeftOfType
|
import be.simplenotes.domain.testutils.isLeftOfType
|
||||||
import be.simplenotes.domain.testutils.isRight
|
import be.simplenotes.domain.testutils.isRight
|
||||||
import be.simplenotes.domain.usecases.repositories.UserRepository
|
import be.simplenotes.persistance.repositories.UserRepository
|
||||||
import com.natpryce.hamkrest.assertion.assertThat
|
import com.natpryce.hamkrest.assertion.assertThat
|
||||||
import com.natpryce.hamkrest.equalTo
|
import com.natpryce.hamkrest.equalTo
|
||||||
import io.mockk.*
|
import io.mockk.*
|
||||||
@ -15,11 +15,6 @@
|
|||||||
<groupId>org.mapstruct</groupId>
|
<groupId>org.mapstruct</groupId>
|
||||||
<artifactId>mapstruct</artifactId>
|
<artifactId>mapstruct</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>be.simplenotes</groupId>
|
|
||||||
<artifactId>simplenotes-domain</artifactId>
|
|
||||||
<version>1.0-SNAPSHOT</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>be.simplenotes</groupId>
|
<groupId>be.simplenotes</groupId>
|
||||||
<artifactId>simplenotes-types</artifactId>
|
<artifactId>simplenotes-types</artifactId>
|
||||||
@ -69,11 +64,13 @@
|
|||||||
<artifactId>flyway-core</artifactId>
|
<artifactId>flyway-core</artifactId>
|
||||||
<version>6.5.4</version>
|
<version>6.5.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.zaxxer</groupId>
|
<groupId>com.zaxxer</groupId>
|
||||||
<artifactId>HikariCP</artifactId>
|
<artifactId>HikariCP</artifactId>
|
||||||
<version>3.4.5</version>
|
<version>3.4.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>me.liuwj.ktorm</groupId>
|
<groupId>me.liuwj.ktorm</groupId>
|
||||||
<artifactId>ktorm-core</artifactId>
|
<artifactId>ktorm-core</artifactId>
|
||||||
|
|||||||
@ -1,19 +1,20 @@
|
|||||||
package be.simplenotes.persistance
|
package be.simplenotes.persistance
|
||||||
|
|
||||||
import be.simplenotes.domain.usecases.repositories.NoteRepository
|
|
||||||
import be.simplenotes.domain.usecases.repositories.UserRepository
|
|
||||||
import be.simplenotes.persistance.converters.NoteConverter
|
|
||||||
import be.simplenotes.persistance.converters.UserConverter
|
|
||||||
import be.simplenotes.persistance.notes.NoteRepositoryImpl
|
|
||||||
import be.simplenotes.persistance.users.UserRepositoryImpl
|
|
||||||
import be.simplenotes.config.DataSourceConfig
|
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 com.zaxxer.hikari.HikariConfig
|
import com.zaxxer.hikari.HikariConfig
|
||||||
import com.zaxxer.hikari.HikariDataSource
|
import com.zaxxer.hikari.HikariDataSource
|
||||||
import me.liuwj.ktorm.database.Database
|
import me.liuwj.ktorm.database.Database
|
||||||
import org.koin.dsl.bind
|
import org.koin.dsl.bind
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
import org.koin.dsl.onClose
|
import org.koin.dsl.onClose
|
||||||
import org.mapstruct.factory.Mappers
|
|
||||||
import javax.sql.DataSource
|
import javax.sql.DataSource
|
||||||
|
|
||||||
private fun hikariDataSource(conf: DataSourceConfig): HikariDataSource {
|
private fun hikariDataSource(conf: DataSourceConfig): HikariDataSource {
|
||||||
@ -33,8 +34,8 @@ val migrationModule = module {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val persistanceModule = module {
|
val persistanceModule = module {
|
||||||
single { Mappers.getMapper(NoteConverter::class.java) }
|
single<NoteConverter> { NoteConverterImpl() }
|
||||||
single { Mappers.getMapper(UserConverter::class.java) }
|
single<UserConverter> { UserConverterImpl() }
|
||||||
single<UserRepository> { UserRepositoryImpl(get(), get()) }
|
single<UserRepository> { UserRepositoryImpl(get(), get()) }
|
||||||
single<NoteRepository> { NoteRepositoryImpl(get(), get()) }
|
single<NoteRepository> { NoteRepositoryImpl(get(), get()) }
|
||||||
single { hikariDataSource(get()) } bind DataSource::class onClose { it?.close() }
|
single { hikariDataSource(get()) } bind DataSource::class onClose { it?.close() }
|
||||||
@ -4,8 +4,8 @@ import be.simplenotes.types.ExportedNote
|
|||||||
import be.simplenotes.types.Note
|
import be.simplenotes.types.Note
|
||||||
import be.simplenotes.types.PersistedNote
|
import be.simplenotes.types.PersistedNote
|
||||||
import be.simplenotes.types.PersistedNoteMetadata
|
import be.simplenotes.types.PersistedNoteMetadata
|
||||||
import be.simplenotes.domain.usecases.repositories.NoteRepository
|
|
||||||
import be.simplenotes.persistance.converters.NoteConverter
|
import be.simplenotes.persistance.converters.NoteConverter
|
||||||
|
import be.simplenotes.persistance.repositories.NoteRepository
|
||||||
import me.liuwj.ktorm.database.Database
|
import me.liuwj.ktorm.database.Database
|
||||||
import me.liuwj.ktorm.dsl.*
|
import me.liuwj.ktorm.dsl.*
|
||||||
import me.liuwj.ktorm.entity.*
|
import me.liuwj.ktorm.entity.*
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package be.simplenotes.domain.usecases.repositories
|
package be.simplenotes.persistance.repositories
|
||||||
|
|
||||||
import be.simplenotes.types.ExportedNote
|
import be.simplenotes.types.ExportedNote
|
||||||
import be.simplenotes.types.Note
|
import be.simplenotes.types.Note
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package be.simplenotes.domain.usecases.repositories
|
package be.simplenotes.persistance.repositories
|
||||||
|
|
||||||
import be.simplenotes.types.PersistedUser
|
import be.simplenotes.types.PersistedUser
|
||||||
import be.simplenotes.types.User
|
import be.simplenotes.types.User
|
||||||
@ -2,8 +2,8 @@ package be.simplenotes.persistance.users
|
|||||||
|
|
||||||
import be.simplenotes.types.PersistedUser
|
import be.simplenotes.types.PersistedUser
|
||||||
import be.simplenotes.types.User
|
import be.simplenotes.types.User
|
||||||
import be.simplenotes.domain.usecases.repositories.UserRepository
|
|
||||||
import be.simplenotes.persistance.converters.UserConverter
|
import be.simplenotes.persistance.converters.UserConverter
|
||||||
|
import be.simplenotes.persistance.repositories.UserRepository
|
||||||
import me.liuwj.ktorm.database.Database
|
import me.liuwj.ktorm.database.Database
|
||||||
import me.liuwj.ktorm.dsl.*
|
import me.liuwj.ktorm.dsl.*
|
||||||
import me.liuwj.ktorm.entity.any
|
import me.liuwj.ktorm.entity.any
|
||||||
18
simplenotes-persistance/src/main/kotlin/module-info.java
Normal file
18
simplenotes-persistance/src/main/kotlin/module-info.java
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
module simplenotes.persistance {
|
||||||
|
requires kotlin.stdlib;
|
||||||
|
|
||||||
|
exports be.simplenotes.persistance to simplenotes.app;
|
||||||
|
exports be.simplenotes.persistance.repositories to simplenotes.domain;
|
||||||
|
|
||||||
|
requires simplenotes.types;
|
||||||
|
|
||||||
|
requires ktorm.core;
|
||||||
|
requires java.sql;
|
||||||
|
requires simplenotes.config;
|
||||||
|
requires kotlin.stdlib.jdk7;
|
||||||
|
requires java.compiler;
|
||||||
|
requires org.mapstruct;
|
||||||
|
requires org.flywaydb.core;
|
||||||
|
requires com.zaxxer.hikari;
|
||||||
|
requires koin.core;
|
||||||
|
}
|
||||||
@ -1 +0,0 @@
|
|||||||
package be.simplenotes.persistance
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package be.simplenotes.persistance.converters
|
package be.simplenotes.persistance.converters
|
||||||
|
|
||||||
import be.simplenotes.types.*
|
|
||||||
import be.simplenotes.persistance.notes.NoteEntity
|
import be.simplenotes.persistance.notes.NoteEntity
|
||||||
|
import be.simplenotes.types.*
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.jupiter.api.DisplayName
|
import org.junit.jupiter.api.DisplayName
|
||||||
import org.junit.jupiter.api.Nested
|
import org.junit.jupiter.api.Nested
|
||||||
@ -1,13 +1,14 @@
|
|||||||
package be.simplenotes.persistance.notes
|
package be.simplenotes.persistance.notes
|
||||||
|
|
||||||
import be.simplenotes.types.*
|
|
||||||
import be.simplenotes.domain.usecases.repositories.NoteRepository
|
|
||||||
import be.simplenotes.domain.usecases.repositories.UserRepository
|
|
||||||
import be.simplenotes.persistance.DbMigrations
|
import be.simplenotes.persistance.DbMigrations
|
||||||
import be.simplenotes.persistance.converters.NoteConverter
|
import be.simplenotes.persistance.converters.NoteConverter
|
||||||
import be.simplenotes.persistance.migrationModule
|
import be.simplenotes.persistance.migrationModule
|
||||||
import be.simplenotes.persistance.persistanceModule
|
import be.simplenotes.persistance.persistanceModule
|
||||||
import be.simplenotes.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.database.Database
|
||||||
import me.liuwj.ktorm.dsl.eq
|
import me.liuwj.ktorm.dsl.eq
|
||||||
import me.liuwj.ktorm.entity.filter
|
import me.liuwj.ktorm.entity.filter
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user