01: /* IPQueueAssignmentPolicy
02: *
03: * $Id: IPQueueAssignmentPolicy.java 4667 2006-09-26 20:38:48Z paul_jack $
04: *
05: * Created on Oct 5, 2004
06: *
07: * Copyright (C) 2004 Internet Archive.
08: *
09: * This file is part of the Heritrix web crawler (crawler.archive.org).
10: *
11: * Heritrix is free software; you can redistribute it and/or modify
12: * it under the terms of the GNU Lesser Public License as published by
13: * the Free Software Foundation; either version 2.1 of the License, or
14: * any later version.
15: *
16: * Heritrix is distributed in the hope that it will be useful,
17: * but WITHOUT ANY WARRANTY; without even the implied warranty of
18: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19: * GNU Lesser Public License for more details.
20: *
21: * You should have received a copy of the GNU Lesser Public License
22: * along with Heritrix; if not, write to the Free Software
23: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24: */
25: package org.archive.crawler.frontier;
26:
27: import org.archive.crawler.datamodel.CandidateURI;
28: import org.archive.crawler.datamodel.CrawlHost;
29: import org.archive.crawler.framework.CrawlController;
30:
31: /**
32: * Uses target IP as basis for queue-assignment, unless it is unavailable,
33: * in which case it behaves as HostnameQueueAssignmentPolicy.
34: *
35: * @author gojomo
36: */
37: public class IPQueueAssignmentPolicy extends
38: HostnameQueueAssignmentPolicy {
39: public String getClassKey(CrawlController controller,
40: CandidateURI cauri) {
41: CrawlHost host = controller.getServerCache().getHostFor(cauri);
42: if (host == null || host.getIP() == null) {
43: // if no server or no IP, use superclass implementation
44: return super .getClassKey(controller, cauri);
45: }
46: // use dotted-decimal IP address
47: return host.getIP().getHostAddress();
48: }
49: }
|