Commit Graph
140 Commits
Author SHA1 Message Date
gojomo 274e522f85 [HER-1793] BOM in seeds.txt confuses heritrix
* RegexpLineIterator.java
    ignore \ufeff along with leading whitespace
2010-07-02 17:47:41 +00:00
gojomo 4875135dc9 [HER-1762] H3 performance tuning
* KeyedProperties.java
    avoid allocation hotspot shown by profiling (creating iterator for empty collection)
2010-06-18 02:37:42 +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 e9a11e56c6 HER-1783 BloomFilter64bit bit-length bug prevents full bitfield from being used; premature saturation
* BloomFilter64bit.java
    fix long arithmetic calculating bit-length m in constructor
    slight optimization of add()
* BloomFilterTest.java
    abstract superclass for bloom impl class tests
* BloomFilter64bitTest.java
    sanity check that set bits, after a handful of adds into default-sized filter, occupy top and bottom 20% of range (which would have caught this bug earlier)
2010-06-08 02:39:35 +00:00
szznax 14b8649aa9 minor cleanup/clarification on review 2010-04-26 21:49:41 +00:00
gojomo 27cca4da60 Refinement of HER-1737 excessive job.log WARNINGs for misreported encoding (FLV reported as text/html;charset=UTF-8
* ReplayCharSequence.java, GenericReplayCharSequence.java, InMemoryReplayCharSequence.java
    store actual first exception for reference
* ExtractorHTML.java
    report exception in nonfatal-log, rather than WARNING (which was still polluting job log more than desired -- but should still be logged to allow future investigation of sites where encoding issues may exist)
2010-04-24 02:22:24 +00:00
gojomo 9fc5e42cfe Fix failing test
* InMemoryReplayCharSequence.java
    ensure redecode after problem restarts at right position
2010-04-23 22:57:50 +00:00
gojomo a7caceb8ad HER-1737 excessive job.log WARNINGs for misreported encoding (FLV reported as text/html;charset=UTF-8
* ReplayCharSequence.java
    new interface method: getDecoderExceptionCount(), reporting >0 if any decoding problems were encountered and silently replaced
* GenericReplayCharSequence.java
    count decoding problems, and only log as FINE rather than WARNING
* InMemoryReplayCharSequence.java
    try decoding with reporting; if any problems note at least one then decode without reporting errors
* ExtractorHTML.java
    after using ReplayCharSequence, log WARNING if nonzero decoding errors
2010-04-23 04:11:53 +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 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 f933dc922d HER-1763 unify/improve/document likely-URI string tests
* UriUtils.java
    move likely-URI heuristics here for better consistency, reuse, testing, improvement
* UriUtilsTest.java
    testing for UriUtils
* ExtractorJS.java
    move likely-URI support to UriUtils; use new test
* ExtractoSWF.java
    use new UriUtils likely-URI testing
* ExtractorHTML.java
    move likely-URI testing to UriUtils, use new test
* JerichoExtractorHTML.java
    use new UriUtils likely-URI testing
2010-04-22 01:08:14 +00:00
gojomo 72fb1c55bd Move TLD list to resource file for easier drop-in updating
* ArchiveUtils.java
    read TLDs from tlds-alpha-by-domain.txt
* ArchiveUtilsTest.java
    verify TLDs read
* tlds-alpha-by-domain.txt
    from http://data.iana.org/TLD/tlds-alpha-by-domain.txt
2010-04-22 01:05:23 +00:00
gojomo 9e12e4abe5 test/deprecation cleanup
* CachedBdbMap.java
   @deprecated
* BdbModule.java
   note (unused) 'CBM' option is deprecated
* ObjectIdentityBdbCache.java
   tighten logging to FINE
* ObjectIdentityBdbCacheTest.java
   fix test that was only trying to log, rather than fail, problems
2010-04-13 02:15:53 +00:00
szznax cc6fb841d9 part of fix for [HER-1450] Reading at EOF using read(byte[]) causes position pointer to decrement.
* ArchiveRecord.java
    do not decrement position after EOR, port from H1
* ARCWriterTest.java
    added testArchiveRecordEORConsistent(), testArchiveRecordMarkSupport()
        port from H1
2010-04-09 18:25:16 +00:00
szznax 9f77412581 part of fix for HER-1627 incorrect source tag in crawl.log (of persist-loaded crawl)
* EnhancedEnvironment.java
    in getClassCatalog(), when read-only env, insist on read-only catalog
* PersistLoadProcessor.java
    remove existing curi members from prior to prevent clobbering source
* PersistProcessor.java
    set historyDbConfig read-only, set je.log.faultReadSize for
        compatability with BDBModule.setup()
2010-03-23 20:52:40 +00:00
szznax af85fed7f4 part of fix for HER-1748 Arc2Warc should generally write WARC "response" records for ARC HTTP responses
* Arc2Warc.java
    reverted writing ARC namedFields, deferred for further analysis as part of HER-1750
2010-03-12 23:44:07 +00:00
szznax cc8ea6494a changed namedField "ARC-Compressed-Offset" to "ARC-Gzip-Offset" for even more clarity 2010-03-11 15:59:10 +00:00
szznax 4802e5093e part of fix for HER-1748 Arc2Warc should generally write WARC "response" records for ARC HTTP responses
* Arc2Warc.java
    changed namedField "ARC-Offset" to "ARC-Compressed-Offset" for clarity
2010-03-11 01:45:49 +00:00
szznax 8a567c9bc0 part of fix for HER-1748 Arc2Warc should generally write WARC "response" records for ARC HTTP responses
* Arc2Warc.java
    removed unnecessary URISyntaxException import
    moved ARC named fields outside of check for IP in header field
2010-03-10 00:33:38 +00:00
szznax 65f962dc25 whitespace corrections 2010-03-08 18:07:30 +00:00
szznax 65d552ce5c fix for HER-1748 Arc2Warc should generally write WARC "response" records for ARC HTTP responses
* Arc2Warc.java
    when HTTP response, write response record rather than resource
    enable reconstruction of ARC from WARC via namedFields
* ARCRecord.java
    added headerString and accessor to save verbatim ARC header string
2010-03-08 17:43:42 +00:00
szznax 3e5cf29315 nit correction in javadoc 2010-03-08 17:35:47 +00:00
nlevitt 86268def97 * LongToIntConsistentHash.java
Skip unnecessary conversion from CharSequence to String
2010-02-25 18:19:46 +00:00
gojomo 1a95e530e8 Clean-up where assumption of serializability no longer appropriate 2010-01-26 01:25:47 +00:00
gojomo 248f720cab Make Recorder facility usable independent of special crawler threads
* Recorder.java
    store reusable per-thread Recorder instance in Recorder static thread-local
* ToeThread.java
    setup reusable instance into Recorder
* RecorderMarker.java
    deleted -- unnecessary
2010-01-26 01:21:59 +00:00
nlevitt df6e31697d Rename short report methods:
- singleLineReport() -> shortReportLine()
 - singleLineReportTo() -> shortReportLineTo()
 - singleLineReportData() -> shortReportMap()
2009-12-09 02:53:02 +00:00
gojomo 04012279fc Misc logging-cleanup/refactoring
* CrawlerJournal.java
    improve exception logging
    combine writeLine() methods to use varargs
* FrontierJournal.java
    improve exception logging
* ArchiveUtils.java
    replace ignored  count parameter with meaingful boolean one
* CrawlURI.java
    use updated ArchiveUtils method
2009-12-04 22:23:48 +00:00
nlevitt 8ba641ed4b Part of [HER-1603] Restletify: xml representations of all resources that also
offer html
* XmlMarshaller.java
    new class to write xml based on nested map structure
* BeanBrowseResource.java ScriptResource.java EngineResource.java
  JobResource.java JobRelatedResource.java
    support xml representation
* WorkQueueFrontier.java PrecedenceProvider.java WorkQueue.java ToeThread.java
  ToePool.java CrawlJob.java Engine.java Frontier.java CrawlController.java
  StatisticsTracker.java CrawledBytesHistotable.java FetchStats.java
  ProcessorChain.java CrawlURI.java Reporter.java
    offer same data that is returned in the single line reports in a map
    suitable for use with XmlMarshaller
* FileUtils.java
    new method tryToCanonicalize(File)
2009-11-25 01:43:57 +00:00
gojomo a1022c8246 [HER-1711] Some Internationalized Domain Name seeds ignored by Heritrix
* EnhDirectoryResource.java
    ensure files shown for edit or written-back to disk handled as UTF-8
* ConfigFile.java
    read file as UTF-8
2009-11-25 01:14:59 +00:00
gojomo 5d843d46c1 * CachedBdbMap.java
remove unnecessary/build-breaking ServerCache import
2009-11-23 09:36:56 +00:00
gojomo faa8e899db * CachedBdbMap.java
remove unnecessary/build-breaking CrawlController import
2009-11-23 09:26:08 +00:00
gojomo 5b6b2fe954 BDBJE updates, refactoring
* BdbModule.java
    (openDatabase) all databases now 'managed'
    (getStoredMap) all reuse of prior data as for checkpoints
* (others)
    match above changes
2009-11-23 08:18:41 +00:00
gojomo 4127286a1c Checkpoint cleanup
* Checkpoint.java
    calculate shortName correctly
* CrawlerLoggerModule.java
    use full checkpoint-name for log-rotation-suffix
2009-11-23 08:10:07 +00:00
gojomo d93129115e BDBJE updates, refactoring
* CachedBdbMap.java
    update for BDB-JE 4.0.71 exception changes
2009-11-23 08:03:30 +00:00
gojomo eb9bf5a8e2 BDBJE updates, refactoring
* commons/pom.xml, .classpath
    update to BDB-JE 4.0.71
* BdbModule.java
    (getStoredQueue) added
    (getStoredMap) made more general
    (openDatabase) all databases now 'managed'
* TempStoredSortedMap.java -> DisposableStoredSortedMap.java
    renamed
* StatisticsTracker.java, **Report.java
    use new name
* StoredQueue.java, StoredQueueTest.java
    move to org.archive.bdb package
* BdbMultipleWorkQueues.java, PrefixFinderTest.java
    update for BDB-JE 4 changes
* BdbFrontier.java
    use getStoredQueue 
    drop unneeded custom serialization support
* WorkQueueFrontier.java
    drop unneeded custom serialization support
2009-11-23 04:41:32 +00:00
gojomo 25a568fff7 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
* JobResource.java
    suppress checkpoint-selector after terminate
* Checkpoint.java
    adapt to work without direct reference to CheckpointService
* CheckpointService.java
    configure Checkpoint without making it dependent on CheckpointService
2009-11-20 01:24:57 +00:00
gojomo daab317c94 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
processor-related bean checkpoint support:
* Checkpoint.java
    move to commons for proper dependency graph
* (others) 
    recognize above
2009-11-20 01:10:32 +00:00
gojomo 6481081697 * DefaultWriterPoolSettings.java
remove obsolete serialization/checkpoint support
2009-11-20 00:50:17 +00:00
gojomo fbd3af35ac [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
* PersistLogProcessor.java
    rotate logs on checkpoint
* CrawlerJournal.java, FrontierJournal.java
    rotate for checkpoint support without full Checkpointable
2009-11-20 00:47:54 +00:00
gojomo 8591002573 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
* BdbModule.java
    implement Checkpointable; save/restore consistent sets of jdb log files
* BdbModuleTest.java
    testDoCheckpoint
2009-11-20 00:45:07 +00:00
gojomo f01ad9ada8 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
stats & logging checkpoint support
* StatisticsTracker.java
    implement Checkpointable; save small state in JSON, recycle BDB data when recovering
* CrawlerLoggerModule.java
    implement Checkpointable; rotate logs on checkpoint
* GenerationFileHandler.java
    avoid clobbering leftover logs from earlier futures via moveAside
* CrawlStatSnapshot.java
    (sameProgressAs) test for lack-of-progress
* ObjectIdentityMemCache.java, TopNSet.java
    offer deeper access to assist checkpoint/resume
2009-11-19 23:18:15 +00:00
gojomo bdf4437ca2 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
core checkpointing system classes:
* Checkpointable.java
    basic interface for checkpoint aware/capable beans
* Checkpoint.java
    one Checkpoint, either in progress or recovery -- a name + storage directory
* CheckpointService.java
    helper bean to enable, trigger checkpoints and recovery 
* Checkpointer.java(*2), CheckpointInputStream.java, CheckpointRecovery.java DefaultCheckpointRecovery.java, RecoverAction.java
    (deleted) no longer used
2009-11-19 22:45:07 +00:00
gojomo e42e2ed7f6 Cleanup/consolidation/expansion of *Utils classes
* IoUtils.java
    remove class that confusingly-overlaps with commons IOUtils; move remaining methods to ArchiveUtils or archive's FileUtils
* ArchiveUtils.java, FileUtils.java
    receive relocated methods; eliminated deprecated or unused methods
* JSONUtils.java
    new class to collect common JSON actions
* Iteratorable.java
    wrap Iterator as Iterable for foreach usage
* (many)
    update to use alternate utils methods
2009-11-19 22:39:53 +00:00
gojomo 2cb91e33f5 Fix or suppress warnings 2009-11-19 21:55:43 +00:00
nlevitt 148c7332c4 Merge ServerCache+ServerCacheUtil abstract superclass ServerCache
* ServerCache.java
    make abstract, implement getHostFor(UURI) and getServerFor(UURI)
* DefaultServerCache.java
    extend ServerCache, remove getHostFor(UURI) and getServerFor(UURI)
* ServerCacheUtil.java
    removed
* other classes
    change usage of ServerCacheUtil to ServerCache
2009-11-17 06:10:42 +00:00
nlevitt f9843974bc Update commons-net to 2.0 to incorporate fix to this bug -
http://issues.apache.org/jira/browse/NET-36 - we saw the problem manifest in an
archive-it crawl.
* ClientFTP.java
    override buggy org.apache.commons.net.ftp.FTP.getReplyStrings() with fixed
    version, see https://issues.apache.org/jira/browse/NET-257
* .classpath, commons/pom.xml
    update dependency to 2.0 jar
2009-11-17 02:49:57 +00:00
gojomo 9059395617 Make Bloom size configurable without system properties
* BloomUriUniqFilter.java
    make bloom size configurable via bean properties
    change implementing class to BloomFilter64bit (given growing prevalance of 64bit JVMs and larger heaps)
* BloomUriUniqFilterTest.java
    update test for property-set sizing
* BloomFilter64bit.java
    improve comment
2009-11-16 22:42:18 +00:00
nlevitt b72750691f [HER-1694] support for storing ftp fetches in warcs, along with improvements to
ftp fetching, to match h1 ftp competency
2009-11-13 02:58:56 +00:00
nlevitt 3b5e9f7c45 Improve pretty printing of arrays, in particular the fetch-history array. 2009-11-13 02:21:38 +00:00
nlevitt 671f21ede6 Include thread id in log line format 2009-11-12 02:50:13 +00:00