package focusedCrawler.crawler.async; import java.io.IOException; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class HttpDownloaderConfig { @JsonProperty("crawler_manager.downloader.download_thread_pool_size") private int downloadThreadPoolSize = 100; @JsonProperty("crawler_manager.downloader.connection_pool_size") private int connectionPoolSize = 10000; @JsonProperty("crawler_manager.downloader.max_retry_count") private int maxRetryCount = 2; @JsonProperty("crawler_manager.downloader.valid_mime_types") private String[] validMimeTypes = null; @JsonProperty("crawler_manager.downloader.user_agent.name") private String userAgentName = "ACHE"; @JsonProperty("crawler_manager.downloader.user_agent.url") private String userAgentUrl = "https://github.com/ViDA-NYU/ache"; @JsonProperty("crawler_manager.downloader.torproxy") private String torProxy = null; public HttpDownloaderConfig() { } public HttpDownloaderConfig(JsonNode config, ObjectMapper objectMapper) throws IOException { objectMapper.readerForUpdating(this).readValue(config); } public int getDownloadThreadPoolSize() { return this.downloadThreadPoolSize; } public int getConnectionPoolSize() { return this.connectionPoolSize; } public int getMaxRetryCount() { return this.maxRetryCount; } public String getUserAgentName() { return this.userAgentName; } public String getUserAgentUrl() { return this.userAgentUrl; } public String[] getValidMimeTypes() { return this.validMimeTypes; } public String getTorProxy() { return this.torProxy; } }