
io.mstream.trader.datafeed.config.ServiceModule Maven / Gradle / Ivy
The newest version!
package io.mstream.trader.datafeed.config;
import com.google.inject.AbstractModule;
import com.google.inject.TypeLiteral;
import io.mstream.trader.commons.config.ConfigModule;
import io.mstream.trader.commons.config.model.DownstreamService;
import io.mstream.trader.commons.config.supplier.ConfigSupplier;
import io.mstream.trader.commons.guice.scope.ThreadScopeModule;
import io.mstream.trader.commons.http.HttpModule;
import io.mstream.trader.commons.ratpack.exception.RatpackModule;
import io.mstream.trader.commons.utils.cache.CacheModule;
import io.mstream.trader.commons.validation.ValidationModule;
import io.mstream.trader.datafeed.cache.repository.RepositoryCacheModule;
import io.mstream.trader.datafeed.handlers.HandlersModule;
import io.mstream.trader.datafeed.stocks.StocksModule;
import io.mstream.trader.datafeed.stocks.quandl.Quandl;
import java.util.function.Supplier;
public class ServiceModule extends AbstractModule {
private static final TypeLiteral>
CONFIG_SUPPLIER_TYPE =
new TypeLiteral>() {
};
private static final TypeLiteral>
STRING_SUPPLIER_TYPE =
new TypeLiteral>() {
};
private static final TypeLiteral>
DOWNSTREAM_SERVICE_SUPPLIER_TYPE =
new TypeLiteral>() {
};
@Override
protected void configure() {
install(
new ConfigModule(
"data-feed",
CONFIG_SUPPLIER_TYPE
)
);
install(new RatpackModule());
install(new ValidationModule());
install(new ThreadScopeModule());
install(new StocksModule());
install(new HandlersModule());
install(new HttpModule());
install(new CacheModule());
install(new RepositoryCacheModule());
bind(DOWNSTREAM_SERVICE_SUPPLIER_TYPE)
.annotatedWith(Quandl.class)
.to(QuandlConfigSupplier.class);
bind(STRING_SUPPLIER_TYPE)
.to(QuandlApiKeySupplier.class);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy