66c1281301
Cleaning out a lot of old junk from the code, and one thing lead to another... * Build is improved, now constructing docker images with 'jib'. Clean build went from 3 minutes to 50 seconds. * The ProcessService's spawning is smarter. Will now just spawn a java process instead of relying on the application plugin's generated outputs. * Project is migrated to GraalVM * gRPC clients are re-written with a neat fluent/functional style. e.g. ```channelPool.call(grpcStub::method) .async(executor) // <-- optional .run(argument); ``` This change is primarily to allow handling ManagedChannel errors, but it turned out to be a pretty clean API overall. * For now the project is all in on zookeeper * Service discovery is now based on APIs and not services. Theoretically means we could ship the same code either a monolith or a service mesh. * To this end, began modularizing a few of the APIs so that they aren't strongly "living" in a service. WIP! Missing is documentation and testing, and some more breaking apart of code.
67 lines
1.7 KiB
Groovy
67 lines
1.7 KiB
Groovy
plugins {
|
|
id 'java'
|
|
|
|
id 'application'
|
|
id 'jvm-test-suite'
|
|
id 'com.google.cloud.tools.jib' version '3.4.0'
|
|
}
|
|
|
|
application {
|
|
mainClass = 'nu.marginalia.dating.DatingMain'
|
|
applicationName = 'dating-service'
|
|
}
|
|
|
|
tasks.distZip.enabled = false
|
|
|
|
jib {
|
|
from {
|
|
image = image = rootProject.ext.dockerImageBase
|
|
}
|
|
to {
|
|
image = 'marginalia/'+project.name
|
|
tags = ['latest']
|
|
}
|
|
container {
|
|
|
|
mainClass = application.mainClass
|
|
jvmFlags = ['-Dservice.bind-address=0.0.0.0', '-Dservice.useDockerHostname=TRUE', '-Dsystem.homePath=/wmsa']
|
|
volumes = ['/wmsa/conf', '/wmsa/model', '/wmsa/data', '/var/log/wmsa']
|
|
}
|
|
}
|
|
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion.set(JavaLanguageVersion.of(21))
|
|
}
|
|
}
|
|
dependencies {
|
|
implementation project(':code:common:db')
|
|
implementation project(':code:common:model')
|
|
implementation project(':code:common:service')
|
|
implementation project(':code:common:service-discovery')
|
|
implementation project(':code:common:renderer')
|
|
implementation project(':code:features-search:screenshots')
|
|
implementation project(':code:features-search:random-websites')
|
|
implementation project(':code:libraries:language-processing')
|
|
|
|
implementation libs.bundles.slf4j
|
|
|
|
implementation libs.prometheus
|
|
implementation libs.notnull
|
|
implementation libs.guice
|
|
implementation libs.spark
|
|
implementation libs.opencsv
|
|
implementation libs.trove
|
|
implementation libs.fastutil
|
|
implementation libs.bundles.gson
|
|
implementation libs.bundles.mariadb
|
|
|
|
testImplementation libs.bundles.slf4j.test
|
|
testImplementation libs.bundles.junit
|
|
testImplementation libs.mockito
|
|
|
|
}
|
|
|
|
|