public CrawlerConfiguration(final String beginUrl) {
		if ((beginUrl == null) || (beginUrl.trim().length() == 0)) {
			throw new IllegalArgumentException("beginUrl cannot be null or empty");
		}
		if (!Pattern.compile("(?s)^http[s]?://.*$").matcher(beginUrl).matches()) {
			throw new IllegalArgumentException("beginUrl must start with http:// or https://");
		}
		this.beginUrl = beginUrl;
		downloader = new WebDownloader();
		normalizer = new DefaultLinkNormalizer(beginUrl);
		minPoolSize = 30;
		maxPoolSize = 30;
		keepAliveMilliseconds = 30000;
		requestDelayMilliseconds = 1000;
	}