0307c55f9f
To avoid having to either hard-code or manually configure service addresses (possibly several dozen), and to reduce the project's dependency on docker to deal with routing and discovery, the option to use [Zookeeper](https://zookeeper.apache.org/) to manage services and discovery has been added. A service registry interface was added, with a Zookeeper implementation and a basic implementation that only works on docker and hard-codes everything. The last remaining REST service, the assistant-service, has been migrated to gRPC. This also proved a good time to clear out primordial technical debt from the root of the codebase. The 'service-client' library has been taken behind the barn and given a last farewell. It's replaced by a small library for managing gRPC channels. Since it's no longer used by anything, RxJava has been removed as a dependency from the project. Although the current state seems reasonably stable, this is a work-in-progress commit.
67 lines
2.1 KiB
Groovy
67 lines
2.1 KiB
Groovy
plugins {
|
|
id 'java'
|
|
|
|
id 'com.palantir.docker' version '0.35.0'
|
|
id 'application'
|
|
id 'jvm-test-suite'
|
|
}
|
|
|
|
application {
|
|
mainClass = 'nu.marginalia.index.IndexMain'
|
|
applicationName = 'index-service'
|
|
}
|
|
|
|
tasks.distZip.enabled = false
|
|
|
|
apply from: "$rootProject.projectDir/docker-service.gradle"
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion.set(JavaLanguageVersion.of(21))
|
|
}
|
|
}
|
|
dependencies {
|
|
implementation project(':code:common:config')
|
|
implementation project(':code:common:model')
|
|
implementation project(':code:common:db')
|
|
implementation project(':code:common:linkdb')
|
|
implementation project(':code:common:service')
|
|
implementation project(':code:api:index-api')
|
|
implementation project(':code:common:service-discovery')
|
|
|
|
implementation project(':code:libraries:array')
|
|
implementation project(':code:libraries:btree')
|
|
|
|
implementation project(':code:features-index:index-journal')
|
|
implementation project(':code:features-index:index-query')
|
|
implementation project(':code:features-index:index-forward')
|
|
implementation project(':code:features-index:index-reverse')
|
|
implementation project(':code:features-index:domain-ranking')
|
|
implementation project(':code:features-index:result-ranking')
|
|
implementation project(':third-party:commons-codec')
|
|
testImplementation project(path: ':code:services-core:control-service')
|
|
testImplementation project(':code:common:process')
|
|
|
|
implementation libs.bundles.slf4j
|
|
|
|
implementation libs.prometheus
|
|
implementation libs.notnull
|
|
implementation libs.guice
|
|
implementation libs.protobuf
|
|
implementation libs.bundles.httpcomponents
|
|
implementation libs.roaringbitmap
|
|
implementation libs.snakeyaml
|
|
implementation libs.spark
|
|
implementation libs.opencsv
|
|
implementation libs.trove
|
|
implementation libs.fastutil
|
|
implementation libs.bundles.gson
|
|
implementation libs.bundles.grpc
|
|
implementation libs.bundles.mariadb
|
|
|
|
testImplementation libs.bundles.slf4j.test
|
|
testImplementation libs.bundles.junit
|
|
testImplementation libs.mockito
|
|
|
|
}
|
|
|