2023-03-04 13:19:01 +01:00
|
|
|
package nu.marginalia.api;
|
|
|
|
|
|
|
|
import com.google.inject.Guice;
|
|
|
|
import com.google.inject.Inject;
|
|
|
|
import com.google.inject.Injector;
|
|
|
|
import nu.marginalia.service.MainClass;
|
2024-04-25 15:08:33 +02:00
|
|
|
import nu.marginalia.service.discovery.ServiceRegistryIf;
|
2024-05-01 12:39:48 +02:00
|
|
|
import nu.marginalia.service.module.ServiceConfiguration;
|
2024-03-03 10:49:23 +01:00
|
|
|
import nu.marginalia.service.module.ServiceDiscoveryModule;
|
|
|
|
import nu.marginalia.service.ServiceId;
|
2023-10-10 12:32:22 +02:00
|
|
|
import nu.marginalia.service.module.ServiceConfigurationModule;
|
2023-03-04 13:19:01 +01:00
|
|
|
import nu.marginalia.service.module.DatabaseModule;
|
|
|
|
import nu.marginalia.service.server.Initialization;
|
|
|
|
|
|
|
|
public class ApiMain extends MainClass {
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
public ApiMain(ApiService service) {
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void main(String... args) {
|
|
|
|
init(ServiceId.Api, args);
|
|
|
|
|
|
|
|
Injector injector = Guice.createInjector(
|
2024-01-11 12:40:03 +01:00
|
|
|
new DatabaseModule(false),
|
2024-02-20 15:41:04 +01:00
|
|
|
new ServiceDiscoveryModule(),
|
2024-02-20 11:41:14 +01:00
|
|
|
new ServiceConfigurationModule(ServiceId.Api));
|
2024-04-25 15:08:33 +02:00
|
|
|
|
2024-05-01 12:39:48 +02:00
|
|
|
// Orchestrate the boot order for the services
|
|
|
|
var registry = injector.getInstance(ServiceRegistryIf.class);
|
|
|
|
var configuration = injector.getInstance(ServiceConfiguration.class);
|
|
|
|
orchestrateBoot(registry, configuration);
|
2024-04-25 15:08:33 +02:00
|
|
|
|
2023-03-04 13:19:01 +01:00
|
|
|
injector.getInstance(ApiMain.class);
|
|
|
|
injector.getInstance(Initialization.class).setReady();
|
|
|
|
}
|
|
|
|
}
|