Skip to content
Snippets Groups Projects
Commit 1e6e979e authored by gwen-soleil's avatar gwen-soleil
Browse files

refactoring of builders

parent 8ecd306a
Branches
Tags
No related merge requests found
......@@ -36,13 +36,15 @@ import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
import fr.soleil.tango.archiving.exception.TangoTimeseriesException;
import fr.soleil.tango.archiving.infra.injection.MySqlDBModuleInjector;
import fr.soleil.tango.archiving.infra.db.DataSourceConnection;
import fr.soleil.tango.archiving.infra.injection.MySqlModuleInjector;
import fr.soleil.tango.archiving.infra.injection.TimeScaleModuleInjector;
import fr.soleil.tango.archiving.services.MultiTangoArchivingFetcherService;
import fr.soleil.tango.archiving.services.TangoArchivingConfigService;
import fr.soleil.tango.archiving.services.TangoArchivingFetcherService;
import fr.soleil.tango.archiving.services.TangoArchivingInserterService;
import fr.soleil.tango.archiving.services.mulitdb.MultiArchivingFetcherDataSources;
import org.jdbi.v3.core.Jdbi;
import java.util.HashMap;
import java.util.List;
......@@ -60,10 +62,16 @@ public class TangoArchivingServicesBuilder {
* @return {@link TangoArchivingFetcherService}
*/
public TangoArchivingFetcherService buildFetcher(DatabaseConnectionConfig config) {
Injector injector = Guice.createInjector(new TimeScaleModuleInjector(getDataSource(config)));
Injector injector = Guice.createInjector(new TimeScaleModuleInjector(buildJdbi(config)));
return injector.getInstance(TangoArchivingFetcherService.class);
}
private Jdbi buildJdbi(DatabaseConnectionConfig config) {
Jdbi jdbi = Jdbi.create(getDataSource(config));
DataSourceConnection connection = new DataSourceConnection();
connection.configureJdbi(jdbi);
return jdbi;
}
/**
* Create a cached service to insert tango attributes into a PostGreSQL/Timescale database
......@@ -73,11 +81,10 @@ public class TangoArchivingServicesBuilder {
* @return {@link TangoArchivingConfigService}
*/
public TangoArchivingConfigService buildConfigFetcher(DatabaseConnectionConfig config) {
Injector injector = Guice.createInjector(new TimeScaleModuleInjector(getDataSource(config)));
Injector injector = Guice.createInjector(new TimeScaleModuleInjector(buildJdbi(config)));
return injector.getInstance(TangoArchivingConfigService.class);
}
public MultiTangoArchivingFetcherService buildMultiConfigFetcher(List<DatabaseSelector> databaseSelector) {
Map<String, DatabaseSelector> databaseSelectorMap = new HashMap<>();
Map<String, TangoArchivingFetcherService> attributeFetcherMap = new HashMap<>();
......@@ -85,9 +92,9 @@ public class TangoArchivingServicesBuilder {
DatabaseConnectionConfig config = selector.getConfig();
Injector injector;
if (config.getDbType() == DatabaseConnectionConfig.DataBaseType.POSTGRESQL) {
injector = Guice.createInjector(new TimeScaleModuleInjector(getDataSource(config)));
injector = Guice.createInjector(new TimeScaleModuleInjector(buildJdbi(config)));
} else if (config.getDbType() == DatabaseConnectionConfig.DataBaseType.MYSQL) {
injector = Guice.createInjector(new MySqlDBModuleInjector(getDataSource(config)));
injector = Guice.createInjector(new MySqlModuleInjector(buildJdbi(config)));
} else {
throw new TangoTimeseriesException("DB type not supported");
}
......@@ -114,9 +121,7 @@ public class TangoArchivingServicesBuilder {
* @return
*/
public TangoArchivingInserterService buildInserter(DatabaseConnectionConfig config) {
Injector injector = Guice.createInjector(new TimeScaleModuleInjector(getDataSource(config)));
Injector injector = Guice.createInjector(new TimeScaleModuleInjector(buildJdbi(config)));
return injector.getInstance(TangoArchivingInserterService.class);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment