From 89c6d85f2f4da79e74ce4db036ae10ef4c8a9338 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Sun, 8 Oct 2023 17:31:50 +0200 Subject: [PATCH] (query-service) Create new empty 'query-service' service --- .../service/SearchServiceDescriptors.java | 1 + .../nu/marginalia/service/id/ServiceId.java | 1 + code/services-core/query-service/build.gradle | 45 +++++++++++++++++++ .../java/nu/marginalia/query/QueryMain.java | 34 ++++++++++++++ .../java/nu/marginalia/query/QueryModule.java | 6 +++ .../nu/marginalia/query/QueryService.java | 12 +++++ docker-compose.yml | 10 +++++ settings.gradle | 1 + 8 files changed, 110 insertions(+) create mode 100644 code/services-core/query-service/build.gradle create mode 100644 code/services-core/query-service/src/main/java/nu/marginalia/query/QueryMain.java create mode 100644 code/services-core/query-service/src/main/java/nu/marginalia/query/QueryModule.java create mode 100644 code/services-core/query-service/src/main/java/nu/marginalia/query/QueryService.java diff --git a/code/common/service-discovery/src/main/java/nu/marginalia/service/SearchServiceDescriptors.java b/code/common/service-discovery/src/main/java/nu/marginalia/service/SearchServiceDescriptors.java index c082bedb..9fbdf9fd 100644 --- a/code/common/service-discovery/src/main/java/nu/marginalia/service/SearchServiceDescriptors.java +++ b/code/common/service-discovery/src/main/java/nu/marginalia/service/SearchServiceDescriptors.java @@ -10,6 +10,7 @@ public class SearchServiceDescriptors { public static ServiceDescriptors descriptors = new ServiceDescriptors( List.of(new ServiceDescriptor(ServiceId.Api, 5004), new ServiceDescriptor(ServiceId.Index, 5021), + new ServiceDescriptor(ServiceId.Query, 5022), new ServiceDescriptor(ServiceId.Search, 5023), new ServiceDescriptor(ServiceId.Assistant, 5025), new ServiceDescriptor(ServiceId.Dating, 5070), diff --git a/code/common/service-discovery/src/main/java/nu/marginalia/service/id/ServiceId.java b/code/common/service-discovery/src/main/java/nu/marginalia/service/id/ServiceId.java index ad459d36..d24441b5 100644 --- a/code/common/service-discovery/src/main/java/nu/marginalia/service/id/ServiceId.java +++ b/code/common/service-discovery/src/main/java/nu/marginalia/service/id/ServiceId.java @@ -6,6 +6,7 @@ public enum ServiceId { Api("api-service"), Search("search-service"), Index("index-service"), + Query("query-service"), Control("control-service"), diff --git a/code/services-core/query-service/build.gradle b/code/services-core/query-service/build.gradle new file mode 100644 index 00000000..03965dba --- /dev/null +++ b/code/services-core/query-service/build.gradle @@ -0,0 +1,45 @@ +plugins { + id 'java' + + id 'com.palantir.docker' version '0.35.0' + id 'application' + id 'jvm-test-suite' +} + +application { + mainClass = 'nu.marginalia.query.QueryMain' + applicationName = 'query-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:service') + implementation project(':code:api:index-api') + implementation project(':code:common:service-discovery') + + implementation libs.bundles.slf4j + + implementation libs.prometheus + implementation libs.notnull + implementation libs.guice + implementation libs.protobuf + implementation libs.rxjava + + testImplementation libs.bundles.slf4j.test + testImplementation libs.bundles.junit + testImplementation libs.mockito + +} + diff --git a/code/services-core/query-service/src/main/java/nu/marginalia/query/QueryMain.java b/code/services-core/query-service/src/main/java/nu/marginalia/query/QueryMain.java new file mode 100644 index 00000000..c100cb2f --- /dev/null +++ b/code/services-core/query-service/src/main/java/nu/marginalia/query/QueryMain.java @@ -0,0 +1,34 @@ +package nu.marginalia.query; + +import com.google.inject.Guice; +import com.google.inject.Inject; +import com.google.inject.Injector; +import nu.marginalia.service.MainClass; +import nu.marginalia.service.SearchServiceDescriptors; +import nu.marginalia.service.id.ServiceId; +import nu.marginalia.service.module.ConfigurationModule; +import nu.marginalia.service.module.DatabaseModule; +import nu.marginalia.service.server.Initialization; + +public class QueryMain extends MainClass { + private final QueryService service; + + @Inject + public QueryMain(QueryService service) { + this.service = service; + } + + public static void main(String... args) { + init(ServiceId.Query, args); + + Injector injector = Guice.createInjector( + new QueryModule(), + new DatabaseModule(), + new ConfigurationModule(SearchServiceDescriptors.descriptors, ServiceId.Query) + ); + + injector.getInstance(QueryMain.class); + injector.getInstance(Initialization.class).setReady(); + } + +} diff --git a/code/services-core/query-service/src/main/java/nu/marginalia/query/QueryModule.java b/code/services-core/query-service/src/main/java/nu/marginalia/query/QueryModule.java new file mode 100644 index 00000000..eec1eb29 --- /dev/null +++ b/code/services-core/query-service/src/main/java/nu/marginalia/query/QueryModule.java @@ -0,0 +1,6 @@ +package nu.marginalia.query; + +import com.google.inject.AbstractModule; + +public class QueryModule extends AbstractModule { +} diff --git a/code/services-core/query-service/src/main/java/nu/marginalia/query/QueryService.java b/code/services-core/query-service/src/main/java/nu/marginalia/query/QueryService.java new file mode 100644 index 00000000..c2ed42b5 --- /dev/null +++ b/code/services-core/query-service/src/main/java/nu/marginalia/query/QueryService.java @@ -0,0 +1,12 @@ +package nu.marginalia.query; + +import com.google.inject.Inject; +import nu.marginalia.service.server.BaseServiceParams; +import nu.marginalia.service.server.Service; + +public class QueryService extends Service { + @Inject + public QueryService(BaseServiceParams params) { + super(params); + } +} diff --git a/docker-compose.yml b/docker-compose.yml index 947ae12f..7b598755 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -54,6 +54,16 @@ services: - "127.0.0.1:7004:4000" depends_on: - mariadb + query-service: + <<: *service + image: "marginalia.nu/query-service" + container_name: "query-service" + ports: + - "127.0.0.1:5022:5022" + - "127.0.0.1:4022:5000" + - "127.0.0.1:7022:4000" + depends_on: + - mariadb dating-service: <<: *service image: "marginalia.nu/dating-service" diff --git a/settings.gradle b/settings.gradle index f33cf767..9aa4b086 100644 --- a/settings.gradle +++ b/settings.gradle @@ -4,6 +4,7 @@ include 'code:services-core:index-service' include 'code:services-core:assistant-service' include 'code:services-core:search-service' include 'code:services-core:control-service' +include 'code:services-core:query-service' include 'code:services-satellite:api-service' include 'code:services-satellite:dating-service'