Commit Graph

267 Commits

Author SHA1 Message Date
gojomo 1ce23ecbcd [HER-747] Ensure 'retired' status for queues is operator-controllable
[HER-1768] Changing queue totalBudget not retiring queue as expected
* CrawlURI.java
    (includesRetireDirective) internalize to CrawlURI
* AbstractFrontier.java
    allow re-enqueuing of untried URI with retire-driective
    clean up terminology/method-names
* WorkQueue.java, WorkQueueFrontier.java, BdbFrontier.java
    adjust budget/sessionBalance handling to always count up, always consult latest values, always refresh values from latest URI
    (processFinish) reorganize to reduce redundancy
* DispositionProcessor.java
    offer forceRetire setting
* QuotaEnforcer.java
    set failed-status *or* forceRetire, not both
[HER-1823] H3: adding SheetAssociations mid-crawl won't affect already queued CrawlURIs (sheet liveness) 
* SheetsOverlayManager.java
    (applyOverlaysTo) rename, unify, reapply whenever called to ensure liveness
* CandidatesProcessor.java
    adjust to rename
2010-09-21 10:55:07 +00:00
gojomo c701cd391a [HER-1822] H3: bean browser in non-paused crawl sometimes raises exceptions, doesn't work
* JobRelatedResource.java
    add more property names to blacklist
    route all relevant requests through new utilitiy getPropertyDescriptors method that patches instances as necessary to suppress problems
2010-09-21 10:28:29 +00:00
gojomo 1f08c114bb * ToeThread.java
tighten INFO logging to FINE
2010-09-10 21:12:48 +00:00
gojomo 4166316113 * AbstractFrontier.java
remove Serializable & related transient declarations -- serialization no longer used for checkpointing nor advisable
2010-09-10 01:00:19 +00:00
gojomo d6a4d158b0 [HER-1803] H3: make it easier to change robots settings
* RobotsPolicy.java
    simplified unification of RobotsHonoring and RobotsExclusion policy classes; subclasses specialize
* ObeyRobotsPolicy.java
    classic obey-robots-as-declared policy
* IgnoreRobotsPolicy.java
    ignore declared robots policy
* CustomRobotsPolicy.java
    follow custom-crafted policy in robots.txt format
* MostFavoredRobotsPolicy.java
    follow the most-permissive policy available to a set of user-agents; optionally adopt ('masquerade') the user-agent whose rules are chosen
* RobotsExclusionPolicy.java, RobotsHonoringPolicy.java
    deleted
* CrawlMetadata.java
    use new string robotsPolicyName as main determinant of policy
    maintain map of available policies ('obey','ignore', and any the operator added)
* CrawlServer.java
    retain Robotstxt instance rather than customized RobotsExclusionPolicy
* PreconditionEnforcer.java
    use full CrawlMetadata rather than just UserAgentProvider subset
    consult RobotsPolicy looked up through CrawlMetadata for allow/disallow decision
* DispositionProcessor.java
    update CrawlServer with Robotstxt only
    consult Robotstxt for crawl-delay
* profile-crawler-beans.cxml (*2), migrate-template-crawler-beans.cxml, selftest-crawler-beans.cxml
    remove old declarations/examples; add new
* ExtractorHTML.java, JerichoExtractorHTML.java
    consult RobotsPolicy.obeyMetaRobotsNofollow for NOFOLLOW
* Robotstxt.java
    new constructors for new use patterns
* **/*Test.java
    update/remove to match new use patterns
2010-09-10 00:27:20 +00:00
gojomo bce841be5f * JobResource.java
improve message for checkpoint-not-made flash
2010-09-09 23:21:28 +00:00
gojomo 3861c8caa4 * BdbMultipleWorkQueues.java
improve detail of logging of error that's been seen in some checkpoint-resume situations
2010-09-09 23:20:47 +00:00
gojomo de551ced58 [HER-1801] H3: Unreleased lock causes deadlock when checkpointing
* Frontier.java
    add beginDisposition(), endDisposition() methods
* AbstractFrontier.java
    implement beginDisposition(), endDisposition() methods to maintain dispositions-in-progress lock
* BdbFrontier.java
    acquire exclusive dispositionInProgressLock before allowing checkpoint to begin; release at completion of checkpoint
* ToeThread.java
    call beginDisposition before dispositionChain/finished(); call endDisposition after finished() and on exceptions
* DispositionChain.java
    shed all prior relation to locking/checkpointing
2010-09-03 02:14:41 +00:00
gojomo d12d078a07 [HER-1800] H3: Incomplete checkpoint listed in combo box
* Checkpoint.java
    remove previous attempt to use Lifecycle to catch error
* Checkpointable.java
    @Autowired(required=false) annotation for setRecoveryCheckpoint
* CheckpointService.java
    HasValidator implementation for post-build validity check; also check at launch (probably redundant)
* CheckpointValidator.java
    ensure validity stamp exists on any present Checkpoint
2010-09-03 01:03:01 +00:00
gojomo 99ce106a9d * CrawlJob.java
tighten logging
2010-09-03 00:30:33 +00:00
gojomo bc698c09fc [HER-1480] URIs logged (as -6 or -7) that should never be scheduled
* LaxURI.java
    increase tolerance with regard to path-segments
* UURIFactory.java
    allow digits in scheme regex
    discard old supported-schemes code
* UURIFactoryTest.java
    tests for roundtrip serialization of problematic hostlike-scheme and bars-in-path
* CrawlerLoggerModule.java
    discard special-casing of URI scheme errors
* SchemeNotInSetDecideRule.java
    rule to apply to URIs of unknown schemes; by default REJECTs those not usually handled by Heritrix
* **/profile-crawler-beans.cxml
    add REJECT SchemeNotInSetDecideRule
2010-09-03 00:24:13 +00:00
gojomo 0347269785 [HER-1817] cleanup logging.properties / WARNING+ for most 3rd party; SEVERE+ for HttpClient; INFO for project classes
* logging.properties
    streamline to bare essentials; allow INFO for org.archive classes
* GenericReplayCharSequence.java, BdbUriUniqFilter.java
    demote some INFO logging to FINE
2010-09-03 00:00:46 +00:00
gojomo 9bfa8fc1db * JobResource.java
remove stray whitespace
2010-09-02 23:56:52 +00:00
gojomo ad8941fa23 1-liner fixing argument display for usage help argument echo
* Heritrix.java
    (usage) StringUtils.join the String[] args
    commit in honor of Travis, who suggested fix
2010-08-27 00:56:42 +00:00
gojomo 2f78980e5d [HER-1814] remove dependency on apache commons-pool/GenericObjectPool
* SelfTestBase.java
    don't try to UURIify 'fieldesc:' ad-hoc URIs
2010-08-26 21:56:50 +00:00
gojomo 47b28f92f8 fix class reference (and build) 2010-08-20 00:47:55 +00:00
gojomo b388479d32 [HER-1727] (W)ARC filename uniqueness guarantees: adminport option, process_id option(?), JVM-global-repeat-suppression
* Heritrix.java
    make heritrix.hostname, heritrix.pid, heritrix.port available as global properties
* PropertyUtils.java, PropertyUtilsTest.java
    utility methods to interpolate string values from one or several supplied Properties instances
* ArchiveUtils.java
    utility methods to give timestamps guaranteed larger/different than any previously-issued timestamp

* WriterPoolSettings.java, WriterPool.java, ARCWriterPool.java, WARCWriterPool.java, ARCWriterPoolTest.java
    improve field names, change 'suffix' to more general 'template'
* WriterPoolMember.java
    replace 'suffix' with 'template' which is interpolated when specific name is needed
    set default template to pattern extremely unlikely to generate duplicate filenames
    change default prefix to 'WEB'
    centralize creation of new basenames into generateNewBasename() method, which internalizes timetamp/serialNo minting and interpolation
* WriterPoolProcessor.java, ARCWriterProcessor.java, WARCWriterProcessor.java
    serve as own WriterPoolSettings instance
    replace 'suffix' with 'template' 
    
* ARCWriter.java
    accept (but truncate) 17-digit timestamps at creation
* DefaultWriterPoolSettings.java, TimestampSerialNo.java
    delete as superfluous
2010-08-20 00:21:43 +00:00
kristinn_sig c410c90b76 Implementation of [HER-1811] Replace the LowDiskPauseProcessor with something that works
* profile-crawler-beans.cxml
    Added a commented-out configuration for new DiskSpaceMonitor
* DiskSpaceMonitor.java
    Implements the required functionality
* package-info.java
    Description of new package for monitoring utilities
* LowDiskPauseProcessor.java
    Now marked as deprecated
2010-08-19 10:47:22 +00:00
szznax dd4bf9a910 correct canonicalizationPolicy bean template per archive-crawler msg 6649
* profile-crawler-beans.cxml, migrate-template-crawler-beans.cxml
    surround canonicalizationPolicy list with property element
2010-08-09 21:22:50 +00:00
gojomo a729c041e1 * URIAuthorityBasedQueueAssignmentPolicy.java
* SurtAuthorityQueueAssignmentPolicy.java
* HostnameQueueAssignmentPolicy.java
    correct inadvertent 'default' access rather than 'protected' allowing overriding
2010-08-04 20:26:22 +00:00
gojomo be954bc9b9 [HER-1804] H3: avoid echoing admin credentials to (possibly world-readable) _out log
* Heritrix.java
    replace echo of exact login/pw with note about whether it came from cmd-line or @file
2010-07-22 22:55:56 +00:00
gojomo 5f76c7ef56 [HER-1800] H3: Incomplete checkpoint listed in combo box
* CheckpointService.java
    use static method on Checkpoint for validity check
* Checkpoint.java 
    throw early-startup exception if attempting resumption of invalid checkpoint
2010-07-13 02:59:47 +00:00
gojomo 899fb6f404 [HER-1800] H3: Incomplete checkpoint listed in combo box
* CheckpointService.java
    (getAvailableCheckpointDirectories) return List, filtered to leave out directories without a 'valid' stamp; log WARNING to _out so that the attentive operator can manually clean-up/investigate
2010-07-13 01:19:10 +00:00
gojomo b4485b05b1 * EngineResource.java
show proper separator in path prompt
2010-07-09 21:55:13 +00:00
gojomo cfc4b347a6 [HER-1796] H3: interval rescheduling becomes erratic after URI rescheduled more than maxRetries times
* CrawlURI.java
    improve comments for fetchAttempts methods
    (resetForRescheduling) added to clear per-scheduling state
* WorkQueueFrontier.java
    call resetForRescheduling just before scheduling-at-specific-time
* FrontierJournal.java, AbstractFrontier.java
    renamings: prefer 'reenqueue' instead of 'reschedule' for describing simple (non-timed) retries
2010-07-09 01:45:26 +00:00
gojomo f75f95648a [HER-1795] H3: Wrong schemaLocation in .cxml
* **/*crawler-beans.cxml
    update all 2.0 spring schema refs to 2.5
2010-07-02 00:58:23 +00:00
nlevitt a68293982f Fix a couple of thinkos to really reserve RESERVE_BLOCKS of the intended
RESERVE_BLOCK_SIZE
2010-06-24 04:24:31 +00:00
gojomo 4c10d4b54f * engine/pom.xml
after test OOMEs on build machine, make sure tests use -server and a 256M heap
2010-06-23 00:47:24 +00:00
gojomo bdc1e078ad * Flash.java
protect against empty string, whitespace as well
2010-06-21 22:08:46 +00:00
gojomo 943ecf3088 [HER-1762] H3 performance tuning
* AbstractFrontier.java
    change config and defaults for 'inbound' and 'outbound': allowing any BlockinqQueue bean, of any size, to be specified if desired
* **/profile-crawler-beans.cxml
    changed commented-out descriptions of defaults to reflect what's used if nothing is specified for 'outbound' and 'inbound'
2010-06-18 21:17:40 +00:00
szznax e83a6eceed follow-up patch for [HER-1764] H3 needs in-UI quit/shutdown option
* Flash.java
    avoid NPE when "flashdrop" cookie not set
2010-06-16 22:02:41 +00:00
gojomo 2e03aa8cb7 [HER-1764] H3 needs in-UI quit/shutdown option
* EngineResource.java
    add 'exit' control area at bottom of page
    allow JVM-exit if confirm-box checked and either no jobs built/running or extra confirm boxes for each built job checked
* Flash.java
    fix to allow multiple flashes per page load
* JobResource.java, CrawlJob.java
    move useful status string method to CrawlJob
2010-06-16 00:51:58 +00:00
gojomo 6be649b286 [HER-1783] BloomFilter64bit bit-length bug prevents full bitfield from being used; premature saturation
* BloomFilter64bit.java
    include the split-to-subarrays (for larger bitfields) and round-up-to-power-of-2 (for performance) options previously in largely-redundant classes
    fit a number of problems with int/long overflow and bitwise ops
    add methods for reporting/testing
* BloomFilter.java
    add methods for reporting/testing
* BloomFilterTest.java, BloomFilter64bitTest.java
    more extensive tests, including two lengthy tests of default/oversized blooms usually disabled by renaming
* BloomFilter32bit.java, BloomFilter32bitSplit.java, BloomFilter32bp2.java, BloomFilter32bp2Split.java
    deleted as buggy or redundant
* BenchmarkBlooms.java
    move to test source dir
* BloomUriUniqFilter.java
    change to accept filter instance (rather than parameters) for added configuration flexibility
    fix comments
* BloomUriUniqFilterTest.java
    supply filter not paramters
2010-06-15 21:30:34 +00:00
gojomo e1f76dbc07 [HER-1784] default profile MatchesListRegexDecideRule intended to REJECT doesn't
* dist/src/main/conf/jobs/profile-defaults/profile-crawler-beans.cxml
* engine/src/main/resources/org/archive/crawler/restlet/profile-crawler-beans.cxml
    add intended REJECT decision for the late (rules[4]) MatchesListRegexDecideRule
2010-06-14 22:22:34 +00:00
gojomo e673c7d781 * WorkQueueFrontier.java
experimental utility method to force-wake all snoozed (politeness and retry-delayed) queues
2010-06-04 22:31:16 +00:00
gojomo 5f83fe75a2 HER-1010 crawl favicon.ico
* (self tests)
    correct expectations to now include /favicon.ico
2010-06-03 00:31:32 +00:00
szznax d1f27aaecd removed no-longer-referenced "recoveryDir" property from "frontier" bean 2010-05-27 17:46:44 +00:00
gojomo 95bf82e2d3 followup for HER-1688 remember external job directories
* Engine.java
    suppress WARNING for common case of harmless failure during rescans: job already exists
* EngineResource.java
    suppress rescan on each reload (ODD: steve had already committed this change -- I got the commit email -- but now the repo version is missing it. Sourceforge problems?)
2010-04-29 23:20:22 +00:00
gojomo fcd0ec6699 HER-1762 H3 performance tuning
* WorkQueueFrontier.java
    override schedule() to keep unique-testing in calling thread; may remove bottleneck shown by time-profiling and thread-observation (most ToeThreads stuck in candidatesProcessor, schedule()ing to frontier)
* AbstractFrontier.java
    add comment about implementation vs. subclass override
2010-04-27 21:37:24 +00:00
gojomo e10a14df54 HER-1753 offer means of setting login/password that doesn't leak to process info (as when literally specified to '-a' option)
* Heritrix.java
    allow [username:]password to come from file, supplied to '-a' with '@' prefix
    also, clean up options names/help text to match current behavior
    also, offer warning about particularly weak (<8 characters, all letters, all numbers) passwords
2010-04-27 01:36:38 +00:00
gojomo b639873dae Fix broken test
* Engine.java
    tolerate (with return-false-forfailure rather than NPE) non-job directories
* EngineTest.java
    use empty temp job directory rather than (possibly full-of-junk) general junit-tests directory
2010-04-27 00:44:36 +00:00
szznax 57c857d5c6 Refinement of fixes for HER-1688 remember external job directories
* EngineResource.java
    avoid calling findJobConfigs() on each page load
2010-04-26 23:33:40 +00:00
gojomo 5034c7d96e correct spaces-for-tabs 2010-04-26 22:28:43 +00:00
gojomo c4946d04d0 HER-1688 remember external job directories
* EngineResource.java, Engine.java
    refactor for less branching/redundancy
2010-04-26 22:22:09 +00:00
gojomo 67bf73026f remove obsolete/moved example properties 2010-04-23 04:05:31 +00:00
gojomo cb5ec19b6c HER-1765 quiet excessive INFO level logging
* GenericReplayCharSequence.java
* Scoper.java
* FetchFTP.java
* FetchHTTP.java
    demote a bunch of INFO logging to FINE so that be default, console isn't filled with output for every URI handled by a busy crawl
2010-04-23 00:44:25 +00:00
gojomo 3f0059c8a8 * BeanBrowseResource.java
remove extraneous close() that seemed to be causing (harmless but distracting) console error stacks after web hits
2010-04-23 00:41:25 +00:00
gojomo 9fd648f3ef HER-1467 Allow periodic checkpointing and checkpoint-copy-logs to be set/unset during crawl
* CheckpointService.java
    reorganize so that checkpoint timedTask is reset whenever interval is reset on a running crawl
* CheckpointSuccessEvent.java, CrawlJob.java
    report successes as new kind of ApplicationEvent; propagagte to job log
* BdbModule.java
    remove obsolete unconsulted checkpointCopyLogs setting
2010-04-23 00:15:44 +00:00
gojomo ca32d0d448 HER-1692 Cannot create profile with same name as job
* JobResource.java
    if destination of copy-job fails, show flash error
2010-04-22 01:59:41 +00:00
gojomo f018a2e6f1 * StatisticsTracker.java
correct outdated comment
2010-04-13 22:47:19 +00:00