(query-service) Create new empty 'query-service' service

This commit is contained in:
Viktor Lofgren 2023-10-08 17:31:50 +02:00
parent cf366c602f
commit 89c6d85f2f
8 changed files with 110 additions and 0 deletions

View File

@ -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),

View File

@ -6,6 +6,7 @@ public enum ServiceId {
Api("api-service"),
Search("search-service"),
Index("index-service"),
Query("query-service"),
Control("control-service"),

View File

@ -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
}

View File

@ -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();
}
}

View File

@ -0,0 +1,6 @@
package nu.marginalia.query;
import com.google.inject.AbstractModule;
public class QueryModule extends AbstractModule {
}

View File

@ -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);
}
}

View File

@ -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"

View File

@ -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'