Commit Graph
489 Commits
Author SHA1 Message Date
gojomo 54e7e28fa6 remove stray imports breaking build 2010-11-05 23:31:36 +00:00
gojomo c56eb5d343 Experiment to assist large seed-loads
* TextSeedModule.java
     in large seed loads, try to force finalization, just in case it's lagging
2010-11-05 23:27:43 +00:00
gojomo 0627a67dce Minimize transient garbage volume by optimized serialization based on the 'Kryo' library
* AutoKryo
    extension of Kryo to allow classes to control their own registration, trigger registration of associated classes, and deserialize classes without no-arg constructors
* KryoBinding
    binding for use with BDB that uses AutoKryo serialization for a 2X-4X reduction in byte[] size
* UURI
    improved serialization via Externalizable and Kryo's CustomSerialization methods
* BdbModule
    discard deprecated CachedBDBMap option
    (getObjectCache) extend with both declaredClass and valueClass (for when map values are specializations of the declared type, as with frontier.allQueues)
    adjust type declarations
* ObjectIdentityBdbCache
    use KryoBinding rather than SerialBinding
* CachedBdbMapTest
    discarded
* BdbFrontier, BdbServerCache, StatisticsTracker
    adjust type declarations, objectCache creation
* BdbMultipleWorkQueues
    use KryoBinding rather than (Recycling)SerialBinding
* BdbWorkQueue, CrawlServer, CrawlHost, CrawlURI
    add autoregister support
* LinkContext
    public for kryo registration
2010-11-05 23:23:58 +00:00
gojomo f4a01f1155 remove outdated adler32 workaround 2010-11-05 22:42:27 +00:00
gojomo 4b7ada3930 [HER-1839] Upgrade BDB to 4.1.6; ensure HER-1628 really fixed
* commons/pom.xml, .classpath
    update BDB jar to 4.1.6
2010-11-05 22:33:47 +00:00
gojomo 6164939fc4 Minimize transient garbage creation identified by allocation profiling
* CrawlURI
    use ArrayList and indexed access rather than LinkedList and iterator instances for overlays
2010-11-05 22:32:05 +00:00
gojomo f4d69b37da Minimize transient garbage creation identified by allocation profiling
* UURIFactory, canonicalize/**, PathologicalPathDecideRule, ExtractorHTML
    use recycled matchers via TextUtils
* CrawlURI, KeyedProperties, OverlayContext, SheetOverlaysManager
    use ArrayList and indexed access rather than LinkedList and iterator instances
2010-11-05 21:34:53 +00:00
nlevitt acedca1788 Part of [HER-1836] let more than one extractor run on a single url - new
setting "independentExtractors" - when enabled, extractors run regardless of
whether other extractors have run
* profile-crawler-beans.cxml, AbstractFrontier.java, ExtractorParameters.java,
  Extractor.java
    new setting independentExtractors
* ContentExtractor.java
    shouldProcess() - respect independentExtractors
2010-10-26 23:49:42 +00:00
gojomo dc056d73f4 [HER-1832] URI without fetch-attempt causes either RuntimeException (H1) or nonsensical history info (H3) in FetchHistoryProcessor
* FetchHistoryProcessor.java
    skip history-storage if no evidence of fetch-attempt (A_FETCH_START_TIME data)
2010-10-26 00:32:18 +00:00
gojomo 3a362002c7 [HER-1833] many crawls want to suppress DNS-server's provision of a default local domain
* FetchDNS.java
    append '.' to domain name for lookup, anchoring it as FQDN
2010-10-25 23:50:12 +00:00
nlevitt d392341141 * ExtractorXML.java
shouldExtract() - choose to extract also if content starts with <?xml ...
2010-10-19 02:53:07 +00:00
nlevitt b75f604bf9 [HER-1836] let more than one extractor run on a single url?
* ContentExtractor.java
    shouldProcess() - do not check uri.hasBeenLinkExtracted()
* CrawlURI.java
    update javadoc comments on hasLinkBeenExtracted()
2010-10-19 02:08:54 +00:00
gojomo d72e6cd1d0 [HER-1830] H3: improve sheet examples in default configuration CXML
* **/profile-crawler-beans.xml
    only 1 example SurPrefixesSheetAssociation
2010-10-01 00:16:23 +00:00
gojomo 13d8c4f851 [HER-1830] H3: improve sheet examples in default configuration CXML
* **/profile-crawler-beans.xml
    example SurPrefixesSheetAssociation
2010-09-30 23:01:25 +00:00
gojomo a757140cf6 [HER-1831] change version numbering convention to be less confusing
* **/pom.xml
    change 3.1.1-SNAPSHOT to 3.0.1-SNAPSHOT
2010-09-30 19:48:35 +00:00
gojomo f1cd7dd527 [HER-1827] Have Frontier report include top X longest queues
* WorkQueueFrontier.java
    improve effective precision of top-n-queues by also updating on dequeues
2010-09-28 22:42:22 +00:00
gojomo 8f28d493a2 [HER-1827] Have Frontier report include top X longest queues
* Histotable.java
    expose static method useful for frequency-reporting
* TopNSet.java, TopNSet.java
    improve handling of case where updates may decrease frequency counts
    add convenience methods for common needs
* WorkQueueFrontier.java
    replace single longestActiveQueue with largestQueues TopNSet, of configurable size
    make max-queues-to-report-per-category configurable
2010-09-28 22:12:28 +00:00
nlevitt 74d3fb54ce HER-1828 ExtractorXML misses https urls
* ExtractorXml.java
    adjust XML_URI_EXTRACTOR regex to also look for https urls
2010-09-25 07:48:46 +00:00
gojomo de32bdb053 [HER-1825] H3: make default base queue precedence a more useful default
* BaseQueuePrecedencePolicy.java
    make default '3' (leaving space for 2 'higher') rather than '1'
2010-09-24 04:34:20 +00:00
nlevitt 63c8de4045 fix for [HER-1824] ExtractorXML doesn't properly unescape
* ExtractorXML.java
    processXML() - unescape extracted urls with commons-lang unescapeXml()
2010-09-23 02:03:48 +00:00
gojomo 7909954b8f [HER-1823] H3: adding SheetAssociations mid-crawl won't affect already queued CrawlURIs (sheet liveness)
* SheetsOverlayManager.java
    (applyOverlaysTo) clear previous info so redundant sheets don't accrete
2010-09-21 11:07:33 +00:00
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 966646871c [HER-1727] (W)ARC filename uniqueness guarantees: adminport option, process_id option(?), JVM-global-repeat-suppression
* ArchiveUtilsTest.java
    tests for new HER-1727 guaranteed-no-repeat-timestamp functionality
2010-09-20 13:51:13 +00:00
gojomo 153e709fe5 * WriterPoolProcessor.java
eliminate nonsensical type check
2010-09-15 03:52:11 +00:00
gojomo 1aca427447 * BdbModule.java
change exception-throw to log WARNING during DB-cleanup
2010-09-10 21:15:20 +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 3e43cf7bd5 * LinkContext.java
undo inadvertent introduction of class-serialization-format incompatibility
2010-09-09 23:22:15 +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 dbf22ad574 [HER-1480] URIs logged (as -6 or -7) that should never be scheduled
* Extractor.java
    discard special-casing of URI-ignored-scheme
2010-09-03 00:29:05 +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 b9b592e286 * jndi.properties
remove obsolete file
2010-09-02 23:57:31 +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 790469280e [HER-1814] remove dependency on apache commons-pool/GenericObjectPool
* WriterPoolMember.java
    fix ops broken by removal of checkSize at preWriteRecordTasks -- still create if out == null
2010-08-26 21:19:56 +00:00
gojomo 8d1083922d [HER-1814] remove dependency on apache commons-pool/GenericObjectPool
* .classpath, pom.xml, org/apache/commons/pool/impl/*
    remove references to and patched classes based on commons-pool
* WriterPool.java
    move instance creation/round-robin-pool/dispose into this class
    close (rather then recycle) extra writers when crawl slows (via tracking time of last need/rollover)
* WriterPoolMember.java
    add isOversize() for external check of ready-to-rollover file
    avoid rollover before every record (so that set of related WARC records aren't split between files)
* ARCWriterPool.java, WARCWriterPool.java
    remove BasePoolableObjectFactory reference, implement class-appropriate makeWriter()
* ARCWriterPoolTest.java
    adjust for new never-timeout behavior
* ARCWriterPoolProcessor.java WARCWriterPoolProcessor.java
    adjust constructor calls
* WriterPoolProcessor.java
    replace poolMaxWaitMs (which caused eventual complete timeout from waiting for writer) with maxWaitForIdleMs, a much smaller value which only controls how long a thread waits for an reusable writer before considering creating a new one. (If creation isn't allowed, threads will now wait indefinitely for a writer to become available.)
2010-08-25 23:25:26 +00:00
gojomo 03778ff943 [HER-1727] (W)ARC filename uniqueness guarantees: adminport option, process_id option(?), JVM-global-repeat-suppression
* WriterPoolMember.java
    use '~' rather than '@' and '#' as pid~hostname~port separators, for less risk in shell scripts and URLs
2010-08-23 22:17:39 +00:00
gojomo e3023218e1 null check; fix broken test 2010-08-20 04:08:07 +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 afc2a55e49 fix for [HER-1808] uncaught URLDecoder IllegalArgumentException in ExtractorHTML
* ExtractorHTML.java
    still consider values rejected by URLDecoder
2010-08-13 00:37:55 +00:00