package com.widowcrawler.parse.module;
import com.google.inject.AbstractModule;
import com.netflix.archaius.Config;
import com.netflix.governator.annotations.Modules;
import com.widowcrawler.core.module.WidowCoreModule;
import com.widowcrawler.core.worker.WorkerProvider;
import com.widowcrawler.parse.LinkNormalizer;
import com.widowcrawler.parse.ParseWorkerProvider;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import javax.inject.Inject;
/**
* @author Scott Mansfield
*/
@Modules(include={WidowCoreModule.class})
public class WidowParseModule extends AbstractModule {
private static final String CACHE_ENDPOINT_CONFIG_KEY = "com.widowcrawler.cache.endpoint";
private static final String CACHE_PORT_CONFIG_KEY = "com.widowcrawler.cache.port";
@Inject
Config config;
@Override
protected void configure() {
String cacheHostName = config.getString(CACHE_ENDPOINT_CONFIG_KEY);
Integer port = config.getInteger(CACHE_PORT_CONFIG_KEY, 6379);
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(100);
jedisPoolConfig.setMaxIdle(100);
jedisPoolConfig.setMinIdle(100);
JedisPool pool = new JedisPool(jedisPoolConfig, cacheHostName);
bind(JedisPool.class).toInstance(pool);
bind(LinkNormalizer.class).asEagerSingleton();
bind(WorkerProvider.class).to(ParseWorkerProvider.class).asEagerSingleton();
}
}