mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-24 05:18:58 +00:00
55 lines
1.7 KiB
Java
55 lines
1.7 KiB
Java
package nu.marginalia.search;
|
|
|
|
import com.google.inject.Guice;
|
|
import com.google.inject.Inject;
|
|
import com.google.inject.Injector;
|
|
import io.jooby.ExecutionMode;
|
|
import io.jooby.Jooby;
|
|
import nu.marginalia.service.MainClass;
|
|
import nu.marginalia.service.ServiceId;
|
|
import nu.marginalia.service.discovery.ServiceRegistryIf;
|
|
import nu.marginalia.service.module.DatabaseModule;
|
|
import nu.marginalia.service.module.ServiceConfiguration;
|
|
import nu.marginalia.service.module.ServiceConfigurationModule;
|
|
import nu.marginalia.service.module.ServiceDiscoveryModule;
|
|
import nu.marginalia.service.server.Initialization;
|
|
|
|
public class SearchMain extends MainClass {
|
|
private final SearchService service;
|
|
|
|
@Inject
|
|
public SearchMain(SearchService service) {
|
|
this.service = service;
|
|
}
|
|
|
|
public static void main(String... args) {
|
|
|
|
init(ServiceId.Search, args);
|
|
|
|
Injector injector = Guice.createInjector(
|
|
new SearchModule(),
|
|
new ServiceConfigurationModule(ServiceId.Search),
|
|
new ServiceDiscoveryModule(),
|
|
new DatabaseModule(false)
|
|
);
|
|
|
|
// Orchestrate the boot order for the services
|
|
var registry = injector.getInstance(ServiceRegistryIf.class);
|
|
var configuration = injector.getInstance(ServiceConfiguration.class);
|
|
orchestrateBoot(registry, configuration);
|
|
|
|
var main = injector.getInstance(SearchMain.class);
|
|
injector.getInstance(Initialization.class).setReady();
|
|
|
|
Jooby.runApp(new String[] { "application.env=prod" }, ExecutionMode.WORKER, () -> new Jooby() {
|
|
{
|
|
main.start(this);
|
|
}
|
|
});
|
|
}
|
|
|
|
public void start(Jooby jooby) {
|
|
service.startJooby(jooby);
|
|
}
|
|
}
|