Commit Graph
369 Commits
Author SHA1 Message Date
nlevitt 347a25e417 Prep for 3.1.0-RC1 release
* pom.xml, */pom.xml
    bump version number to 3.1.0-RC1
2011-07-26 02:57:48 +00:00
nlevitt efff6feed6 * CrawlJob.java
avoid NPE on build-then-terminate without a launch
2011-07-25 19:16:31 +00:00
nlevitt e2f29992d4 Put hard limit of 5 on seed redirects being treated as new seeds, to avoid
endless recrawling of the same url(s) in case of a redirect loop.  
* CandidatesProcessor.java
2011-07-23 02:20:35 +00:00
gojomo a490737b59 * StatisticsTracker
add 'trackSources' to make hosts-by-source-tag report optional in large crawls, where it is very expensive (and an OOME risk until other changes are also made)
2011-07-20 23:36:19 +00:00
nlevitt b3e35499ca HER-1812 Spring-ify how reports are handled - based partly on patch from Kristinn Sigurðsson
* Report.java
    make StatisticsTracker stats an argument to write() instead of a field; new properties shouldReportAtEndOfCrawl and shouldReportDuringCrawl, both default true, but configurable if desired, replacing the LIVE_REPORTS/END_REPORTS stuff in StatisticsTracker
* StatisticsTracker.java
    new property "reports", a List<Report>, which defaults (with lazy initialization) to the same reports we've always had, replacing hard-coded lists of reports classes and related code
* profile-crawler-beans.cxml
    default reports list, commented out
* SeedsReport.java FrontierSummaryReport.java MimetypesReport.java SourceTagsReport.java FrontierNonemptyReport.java CrawlSummaryReport.java ResponseCodeReport.java HostsReport.java ProcessorsReport.java ToeThreadsReport.java
    update write(PrintWriter, StatisticsTracker) arguments
* JobResource.java
    replace use of StatisticsTracker.LIVE_REPORTS
2011-07-20 17:05:12 +00:00
nlevitt 0676ded3f2 * CrawlJob.java
fix logging of job events
2011-07-16 00:48:14 +00:00
gojomo e819d197fe [HER-915] (contrib) add http proxy authentication
contributed by Adam Wilmer
* FetchHTTP.java
    properties, setup for http proxy user/password
* profile-crawler-beans.cxml
    commented-out example settings for proxy auth properties
2011-07-15 21:57:20 +00:00
gojomo 4221aee537 fix selftests
* selftest-crawler-beans.cxml
    write logs, arcs to old constant locations, for ease of post-test verification
2011-07-15 21:34:59 +00:00
nlevitt b90aa89e4b More on HER-1901 - fix build by refactoring launch dir initialization into PathSharingContext; refactor config path interpolation mostly into ConfigPathConfigurer; various tweaks
* ActionDirectory.java, CrawlerLoggerModule.java, StatisticsTracker.java, SurtPrefixedDecideRule.java, WriterPoolProcessor.java, profile-crawler-beans.cxml
    use camelcase ${launchId} 
* CheckpointService.java, JobResource.java
    rename getAvailableCheckpointDirectories() to findAvailableCheckpointDirectories() so that it's not treated as a bean property
* WriterPoolProcessor.java, WriterPoolSettingsData.java, WriterPoolMember.java
    rename getOutputDirs() to calcOutputDirs() so that it's not treated as a bean property
* ConfigPath.java
    let ConfigPathConfigurer to do interpolation of ${launchId}
* ConfigFile.java
    let ConfigPathConfigurer do the snapshotting of config file
* CrawlJob.java, PathSharingContext.java
    remove launchDir initialization out of CrawlJob into PathSharingContext
* ConfigPathConfigurer.java
    - remove special handling of WriterPoolProcessor store paths; instead, look in beans for ConfigPaths within Iterables
    - have each ConfigPath hold reference to this ConfigPathConfigurer to use for interpolating ${launchId} and snapshotting config files
2011-07-15 19:39:32 +00:00
gojomo 1bfbec8772 fix build; move Preformatter to package (commons) where first referenced 2011-07-15 19:02:14 +00:00
nlevitt 9eb0c137e8 HER-1901 twiddles
* CrawlJob.java
    decided to go with plain timestamp17 as launch id, no "launch-" prefix
* ConfigPathConfigurer.java
    refactored special remembering of WriterPoolProcessor storePaths out of fixupPaths()
2011-07-14 02:03:01 +00:00
gojomo 6a3072ef46 more rapidly release refs for finished CrawlURIs
* UriProcessingFormatter, Preformatter, GenerationFileHandler
    improve preformat-outside-synchronized optimization so that the LogRecord/CrawlURI doesn't linger until next displaces it
* CrawlURI
    (processingCleanup) null more of last-processing-run collected values
2011-07-14 01:14:04 +00:00
nlevitt c84e87c648 More HER-1901
* CrawlJob.java 
    job log in launch dir covering just that launch
2011-07-13 20:47:08 +00:00
nlevitt d5b299d1ef * CrawlJob.java
initLaunchId() - didn't mean for this method to be public
2011-07-13 20:13:13 +00:00
nlevitt c39c927447 * profile-crawler-beans.cxml
runWhileEmpty defaults to false
2011-07-13 19:20:45 +00:00
nlevitt 4250e07de9 HER-1901 timestamped subdirectory for each launch
* HardLinker.java
    renamed FilesystemLinkMaker.java
* FilesystemLinkMaker.java
    add support for symbolic links
* CLibrary.java
    new method symlink()
* BdbModule.java
    use new class name FilesystemLinkMaker
* CrawlJob.java
    at crawl launch, create launch directory launch-{timestamp17}, copy cxml there, symlink "current" to launch dir, inform ConfigPaths
* ConfigPath.java
    interpolate ${launch-id} in configured paths
* ConfigFile.java
    obtainReader() - snapshot config files to launch dir when they are read
* ActionDirectory.java
    default doneDir now ${launch-id}/actions-done
    actOn() - symlink from old style done dir action/done to done files
* SurtPrefixedDecideRule.java
    default surtsDumpFile now ${launch-id}/surts.dump
    pathsFixedUp() - this gets called at build time, but we don't want anything written to disk until launch time, so remove call to dumpSurtPrefixSet() here
* CrawlerLoggerModule.java
    default logs dir now ${launch-id}/logs
* StatisticsTracker.java 
    default reports dir now ${launch-id}/reports
* WriterPoolProcessor.java
    default writer base path now ${launch-id} 
* profile-crawler-beans.cxml
    update to reflect new default paths under launch dirs
* PropertyUtils.java
    fix javadoc typo
2011-07-13 19:18:55 +00:00
gojomo a41809b8a7 [HER-1908] H3: upgrade to Spring 3
* pom.xml, .classpath
    update references to necessary spring-3.0.5 packages
* SeedModule
    merge rather than replace event listeners, so that (now later) autowiring doesn't clobber the self-insertion done by anonymous (non-top-level) SurtPrefixedDecideRule bean
* HeritrixLifecycleProcessor, PathScharingContext
    use this new non-default LifecycleProcessor to avoid new Spring3 behavior of auto-start()ing context on refresh(build)
* CrawlController
    example of using @Value annotation to set default value: will offer benefits for auto-discovery of defaults for configuration interface, or enforcing maximally-explicit configurations (see [HER-1897])
* profile-crawler-beans.cxml, selftest-crawler-beans.cxml
    update templates with spring3 preamble/boilerplate
2011-07-08 04:31:54 +00:00
gojomo aa15d293e8 [HER-1909] H3: slow checkpoint resume, locking out web UI during resume
[HER-1910] H3: job-related pages very slow to render (pause mid-way through) in large crawls
* BdbModule
    option to reuse bdb data on StoredQueue-creation
* Checkpoint
    new saveWriter, loadReader utilities for creating extra checkpoint files (for the long list of ready queues)
* BdbFrontier
    on checkpoint, remember ordered list of inProcess/ready/snoozed queues (so same queues are active upon resume)
    on resume, reuse old retired/inactive StoredQueue data, and reload active queues from newly-saved list
* StoredQueue
    restore tailIndex properly when resuing old data
    more-efficient size() calculation (for HER-1910)
2011-07-08 04:30:32 +00:00
gojomo 2b0d967b32 Resolve 'Browse Beans' issue after built, pre-launch
* JobRelatedResource
    catch InvalidPropertyException, render as red error message rather than fouling entire trace of beans to web UI
* StatisticsTracker
    rename getSnapshots to listSnapshots to prevent interpretation as (invalid) bean-property
2011-06-27 22:25:12 +00:00
gojomo 842f495ee9 [HER-1905] H3: allow crawling to begin while large seed list still loading
* TextSeedModule
    refactor announceSeeds to occur in background thread if non-default blockAwaitingSeedLines value is set
    signal CountDownLatch on each line, allowing calling thread to proceed at right count
* profile-crawler-beans.cxml
    commented-out blockAwaitingSeedLines default settings (-1, meaning wait for all seed lines)
2011-06-22 21:21:26 +00:00
gojomo b9b64a6029 [HER-1776] H3: holding empty crawl for more URIs (other than 'paused')
* profile-crawler-beans.cxml
    replace obsolete pauseAtEmpty example property with replacement runWhileEmpty
2011-06-22 21:16:39 +00:00
nlevitt d3475fadbf * BdbMultipleWorkQueues.java
getFrom() - support null marker to start from first key, as appeared to be the intention
2011-06-20 18:06:41 +00:00
nlevitt d57b7751ae * SelfTestBase.java
verifyProgressStatistics() - expect "RUNNING" instead of "RESUMED" per r7180
2011-06-15 18:10:37 +00:00
gojomo 45a59d3a19 [HER-1776] H3: holding empty crawl for more URIs (other than 'paused')
* CrawlController
    change pauseAtFinish to runWhileEmpty
    add EMPTY state
    replace isStateRunning() with isActive() (RUNNING or EMPTY)
    trigger finish-test off frontier EMPTY rather than PAUSE
    in logging say 'running' rather than 'resumed' 
* Frontier
    add EMPTY state
* AbstractFrontier
    handle EMPTY like RUNNING, transition EMPTY<->RUNNING when appropriate
* StatisticsTracker
    handle EMPTY analogous to RUNNING
    in logging say 'running' rather than 'resumed' 
* CrawlJob, DiskSpaceMonitor
    replace isStateRunning() with isActive()
2011-06-15 06:01:49 +00:00
gojomo d9a53ff584 * JobRelatedResource
(writeNestedNames) use local getPropertyDescriptors(bwrap) to only show safely-displayable properties
2011-06-14 22:39:21 +00:00
gojomo 4ef6c5dc24 [HER-1899] scripting console comes back as XML in webkit browsers (Chrome, Safari)
* JobRelatedResource
    derive from BaseResource for webkit-XML-workaround
2011-06-13 23:31:36 +00:00
gojomo 99a49b2df7 Avoid treating temporarily-DEFERRED robots.txt handling as-if a failure-to-ignore in robots-ignored case
* DispositionProcessor
    treat S_DEFERRED different from other negative error statuses
2011-05-27 01:24:49 +00:00
nlevitt 3acedc86a2 Different fix for HER-1891 which also fixes HER-1890, two cases of "seed
redirect url sometimes '0 NOTCRAWLED' in seeds-report.txt even when crawled"
* CandidatesProcessor.java 
    innerProcess() - set force-fetch on outlinks promoted to seeds
2011-05-26 16:07:28 +00:00
nlevitt 39d6caad8b Revert last fix (r7154,r7155) for HER-1891 in preparation for applying
different fix (see discussion on jira issue).
* CandidatesProcessor.java
2011-05-26 16:04:41 +00:00
nlevitt 5e1571f8dd HER-1790 - record warc where url was saved in crawl.log
* CrawlURI.java
    new field JSONObject extraInfo, methods getExtraInfo() and addExtraInfo()
* WARCWriterProcessor.java
    write() - on success, add warcFilename to CrawlURI extraInfo
* CrawlerLoggerModule.java
    new config option logExtraInfo, default false 
* UriProcessingFormatter.java
    new field logExtraInfo
    format() - include CrawlURI extraInfo if logExtraInfo is enabled
               also include "-" if CrawlURI has no annotations, since this is no longer the last field on the line
* profile-crawler-beans.cxml
    <!-- <property name="logExtraInfo" value="false" /> -->
* NonFatalErrorFormatter.java, RuntimeErrorFormatter.java
    new constructor to handle logExtraInfo since these subclass UriProcessingFormatter
2011-05-25 22:11:18 +00:00
nlevitt 6827ad4a84 Fix bug introduced in r7154 and revealed by unit tests.
* CandidatesProcessor.java
    innerProcess() - do KeyedProperties overrides at the right time
2011-05-25 19:43:12 +00:00
nlevitt 29fa5f6563 Fix for HER-1891 seed redirect url sometimes "0 NOTCRAWLED" in seeds-report.txt
even when crawled, when original seed also has a regular link to the redirect
url
* CandidatesProcessor.java
    innerProcess() - present seed outlinks to the frontier ahead of non-seed outlinks, so that seed version of any duplicated outlink is always the one that's crawled
2011-05-25 04:16:53 +00:00
nlevitt c2c24d1939 Move "implements CrawlUriReceiver" from WorkQueueFrontier to superclass
AbstractFrontier where the method CrawlUriReceiver.receive() is implemented.
2011-05-23 22:31:56 +00:00
gojomo f7712cc0bf Clarification to help [HER-1885] source-report.txt empty
* SourceTagsReport
    informative note if there's none of the info needed for this report
2011-04-29 22:21:54 +00:00
nlevitt 26f34c1b8c HER-1547 some sites may require an 'Accept' header
* FetchHTTP.java
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
    by default - this is what my firefox 4.0 for mac sends
* profile-crawler-beans.cxml
    commented-out default value
2011-04-25 20:43:17 +00:00
nlevitt c4595fdcc9 * profile-crawler-beans.cxml
-  <!-- <property name="independentExtractors" value="false" /> -->
    +  <!-- <property name="extractIndependently" value="false" /> -->
2011-04-20 20:54:21 +00:00
nlevitt 6d6c1059a5 Use Recorder.getContentReplayCharSequence() instead of deprecated
getReplayCharSequence()
2011-04-20 19:38:12 +00:00
gojomo 630ddb4deb [HER-1883] seeds result info (for seeds report, crawl report tally) lost after checkpoint & resume
* SeedRecord.java
    ensure makeDirty() is called after every updateWith() (but not the initial instantiation)
2011-04-20 02:38:26 +00:00
gojomo 991a67e0e4 Post 3.1.0-beta
* **/pom.xml
    chnge version-identifier to "3.1.0-SNAPSHOT"
2011-04-15 22:28:52 +00:00
gojomo 52d00a9917 Prep for 3.1.0-beta
* **/pom.xml
    increment declared version
2011-04-15 18:09:43 +00:00
gojomo 1a2ec76805 comment typo, missing serialization ID 2011-04-15 18:08:12 +00:00
nlevitt e60fd8b0e1 * XmlMarshaller.java
marshalDocument() - SAXException can wrap other exceptions, e.g.
    EOFException when tcp connection is broken; thus, in case of IOException,
    rather than throwing a RuntimeException, re-throw the wrapped IOException
    (unfortunately in that case we still get a massive stack trace in the log,
    but at least it comes from the appropriate spot and is not too misleading)
2011-03-02 01:34:19 +00:00
nlevitt 17b12ca19b * HostsReport.java
url-encode hosts (other than "dns:") in host report, in case of hostname
    containing whitespace or other unusual characters, which can happen
2011-03-01 23:43:58 +00:00
nlevitt f03b1ac689 * URIAuthorityBasedQueueAssignmentPolicy.java
rename "whois" queue to "whois..." to avoid conflicting with queue for
    theoretical hostname "whois"
2011-02-19 02:10:39 +00:00
nlevitt 4991b295bc HER-1645 whois fetcher
* URIAuthorityBasedQueueAssignmentPolicy.java
    whois urls all go in special "whois" queue
* PreconditionEnforcer.java, CrawlURI.java
    move markPrerequisite() method from PreconditionEnforcer to CrawlURI
* profile-crawler-beans.cxml
    commented-out whois fetcher clause
* FetchStatusCodes.java
    new status codes for whois
* ServerCache.java
    getHostFor() - return "whois:" for whois urls, following dns: convention
* UURIFactory.java
    ugly hack for whois urls
* SchemeNotInSetDecideRule.java
    add whois to list of supported schemes
* WriterPoolProcessor.java
    shouldWrite() - we should write successful whois fetches
* WARCWriterProcessor.java
    write whois records
* FetchWhois.java
    the fetcher
2011-02-17 22:33:28 +00:00
gojomo 61dc661f47 * TopNSet
resolve strange type complaint in my Windows Eclipse JDK6u24 setup
2011-02-17 01:13:37 +00:00
gojomo 9e53f8be7c [HER-1867] make H3 ssl adhoc self-signed certificate valid for longer (appears to expire after 90 days)
* Heritrix
    pass '-validity 3650' to KeyTool
2011-02-14 22:07:10 +00:00
nlevitt 9468cb0c1f Report total bytes, as well as breakdown, in xml version of job page, to match
html.
* CrawlJob.java
    sizeTotalsReportData() - add "total" (bytes) and "total-count" (urls) to map
* CrawledBytesHistotable.java
    new method getTotalUrls() to complement getTotalBytes()
2011-02-09 01:17:26 +00:00
gojomo f58fdcdba4 * Heritrix
use heritrix.home, if available, to find default logging.properties (to let those who launch Heritrix from elsewhere save themselves from HttpClient's copious logging)
2011-02-05 03:26:02 +00:00
nlevitt 244c1cf563 Update to latest restlet 1.1.10. It includes Daniel Truemper's fix for the
restlet bug he discovered while using heritrix, which I ran into.
http://tech.dir.groups.yahoo.com/group/archive-crawler/message/6338
http://restlet.tigris.org/issues/show_bug.cgi?id=1018
http://restlet.tigris.org/source/browse/restlet?view=rev&revision=6135
* .classpath
* engine/pom.xml
2011-02-05 00:36:11 +00:00