X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=crawler%2Fbasic%2Fsrc%2Forg%2Fwamblee%2Fcrawler%2Fimpl%2FConfigurationParser.java;h=e88f4007a1dbe8d5b0c38e6b93ae816a482fbfb8;hb=5693cee5e48f72bf1f054feadb2bc7a6045f99e5;hp=7e15d4a3ae90c151a371f98214f48c3a78caf2ca;hpb=77ec7c5daa6c54d447ba6b58dde246cea9586173;p=utils diff --git a/crawler/basic/src/org/wamblee/crawler/impl/ConfigurationParser.java b/crawler/basic/src/org/wamblee/crawler/impl/ConfigurationParser.java index 7e15d4a3..e88f4007 100644 --- a/crawler/basic/src/org/wamblee/crawler/impl/ConfigurationParser.java +++ b/crawler/basic/src/org/wamblee/crawler/impl/ConfigurationParser.java @@ -48,6 +48,8 @@ public class ConfigurationParser { private static final String ELEM_XSLT = "xslt"; private static final String ELEM_PARAM = "param"; + + private static final String ELEM_HEADER = "header"; private static final String AT_NAME = "name"; @@ -59,7 +61,7 @@ public class ConfigurationParser { private static final int MAX_TRIES = 3; - private static final int MAX_DELAY = 100; + private static final int MAX_DELAY = 10000; private XslTransformer _transformer; @@ -149,20 +151,17 @@ public class ConfigurationParser { private PageRequest parseRequestConfig(Element aElem) { String method = aElem.elementText(ELEM_METHOD); String xslt = aElem.elementText(ELEM_XSLT); - List params = new ArrayList(); - for (Iterator i = aElem.elementIterator(ELEM_PARAM); i.hasNext();) { - Element paramElem = (Element) i.next(); - NameValuePair param = parseParameter(paramElem); - params.add(param); - } - + List params = parseNameValuePairs(aElem, ELEM_PARAM); + List headers = parseNameValuePairs(aElem, ELEM_HEADER); + NameValuePair[] paramsArray = params.toArray(new NameValuePair[0]); + NameValuePair[] headersArray = headers.toArray(new NameValuePair[0]); PageRequest request; if (METHOD_POST.equals(method)) { - request = new PostPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, + request = new PostPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, headersArray, xslt, _transformer); } else if (METHOD_GET.equals(method) || method == null) { - request = new GetPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, + request = new GetPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, headersArray, xslt, _transformer); } else { throw new RuntimeException("Unknown request method '" + method @@ -172,6 +171,20 @@ public class ConfigurationParser { return request; } + /** + * @param aElem + * @return + */ + private List parseNameValuePairs(Element aElem, String aElemName) { + List headers = new ArrayList(); + for (Iterator i = aElem.elementIterator(aElemName); i.hasNext();) { + Element paramElem = (Element) i.next(); + NameValuePair header = parseParameter(paramElem); + headers.add(header); + } + return headers; + } + /** * Parses a parameter definition. * @param aParam Parameter.