MarginaliaSearch/code/processes/loading-process/java/nu/marginalia/loading/LoaderModule.java

64 lines
2.0 KiB
Java
Raw Normal View History

2023-03-04 12:19:01 +00:00
package nu.marginalia.loading;
import com.google.gson.Gson;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.google.inject.Provides;
import com.google.inject.Singleton;
2023-03-04 12:19:01 +00:00
import com.google.inject.name.Names;
import nu.marginalia.LanguageModels;
import nu.marginalia.WmsaHome;
import nu.marginalia.IndexLocations;
import nu.marginalia.linkgraph.io.DomainLinksWriter;
import nu.marginalia.storage.FileStorageService;
import nu.marginalia.linkdb.docs.DocumentDbWriter;
2023-03-04 12:19:01 +00:00
import nu.marginalia.model.gson.GsonFactory;
import java.io.IOException;
import java.nio.file.Files;
2023-03-04 12:19:01 +00:00
import java.nio.file.Path;
import java.sql.SQLException;
2023-03-04 12:19:01 +00:00
import static nu.marginalia.linkdb.LinkdbFileNames.DOCDB_FILE_NAME;
import static nu.marginalia.linkdb.LinkdbFileNames.DOMAIN_LINKS_FILE_NAME;
2023-03-04 12:19:01 +00:00
public class LoaderModule extends AbstractModule {
2023-07-14 15:08:10 +00:00
public LoaderModule() {
2023-03-04 12:19:01 +00:00
}
public void configure() {
bind(Gson.class).toProvider(this::createGson);
2023-03-04 12:19:01 +00:00
bind(Path.class).annotatedWith(Names.named("local-index-path")).toInstance(Path.of(System.getProperty("local-index-path", "/vol")));
bind(LanguageModels.class).toInstance(WmsaHome.getLanguageModels());
}
@Inject @Provides @Singleton
private DocumentDbWriter createLinkdbWriter(FileStorageService service) throws SQLException, IOException {
// Migrate
Path dbPath = IndexLocations.getLinkdbWritePath(service).resolve(DOCDB_FILE_NAME);
if (Files.exists(dbPath)) {
Files.delete(dbPath);
}
return new DocumentDbWriter(dbPath);
}
@Inject @Provides @Singleton
private DomainLinksWriter createDomainLinkdbWriter(FileStorageService service) throws SQLException, IOException {
Path dbPath = IndexLocations.getLinkdbWritePath(service).resolve(DOMAIN_LINKS_FILE_NAME);
if (Files.exists(dbPath)) {
Files.delete(dbPath);
}
return new DomainLinksWriter(dbPath);
}
2023-03-04 12:19:01 +00:00
private Gson createGson() {
return GsonFactory.get();
}
}