1 /* IPQueueAssignmentPolicy 2 * 3 * $Id: IPQueueAssignmentPolicy.java 4667 2006-09-26 20:38:48Z paul_jack $ 4 * 5 * Created on Oct 5, 2004 6 * 7 * Copyright (C) 2004 Internet Archive. 8 * 9 * 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 38 extends HostnameQueueAssignmentPolicy { 39 public String getClassKey(CrawlController controller, CandidateURI cauri) { 40 CrawlHost host = controller.getServerCache().getHostFor(cauri); 41 if (host == null || host.getIP() == null) { 42 // if no server or no IP, use superclass implementation 43 return super.getClassKey(controller, cauri); 44 } 45 // use dotted-decimal IP address 46 return host.getIP().getHostAddress(); 47 } 48 }