Commit Graph
207 Commits
Author SHA1 Message Date
gojomo e1bbbf5a59 [HER-1704] WorkQueueFrontier.snoozedClassQueues not bounded in size, not reported in useful order
* WorkQueueFrontier.java
    add snoozedOverflow map of (wakeTime)->(DelayedWorkQueue) for snoozes over a capped size
    maintain in parallel to snoozedClassQueues DelayQueue, maintain atomic size count
    in standard report, presort snoozedClassQueues before displaying
* DelayedWorkQueue.java
    move to top-level so serialization doesn't pull out whole frontier
* BdbFrontier.java
    initialize snoozedOverflow
* BdbMultipleWorkQueues.java
    improve error message seen on problematic checkpoint-recovery
2009-12-03 19:37:27 +00:00
gojomo 950e68091c UI touchup
* EngineResource.java
    give add-job options their own header, reorder/reword for clarity
* JobResource.java
    return to always showing 'checkpoint' button, disable if necessary, so main control buttons aren't appearing/disappearing or moving
2009-12-03 18:28:21 +00:00
gojomo 757dbf3f19 Output/UI touchup
* CheckpointService.java
    list checkpoint directories in reverse-last-modified order
    disable dubugging output to System.err
2009-12-03 18:24:17 +00:00
gojomo f3f7a98240 [HER-1708] h3 - crawl summary report byte totals off somehow
* CrawlSummaryReport.java
    relabel, reorder, regroup displayed values for simplicity/consistency
2009-12-03 03:12:38 +00:00
nlevitt 19b9833fb4 Fix (harmless?) stack trace from closing output too early. It looked like this:
==========
2009-12-03 01:36:16.726 SEVERE thread-10 com.noelios.restlet.http.HttpServerConverter.commit() An exception occured writing the response entity
java.io.IOException: Stream closed
        at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:26)
        [...]
2009-12-03 01:36:16.733::WARN:  Committed before 500 An exception occured writing the response entity
2009-12-03 01:36:16.735 WARNING thread-10 com.noelios.restlet.http.HttpServerHelper.handle() Error while handling an HTTP server call: 
==========
* JobResource.java
    writeHtml(Writer) - do not close writer
2009-12-03 01:40:42 +00:00
nlevitt 6edbc5181e [HER-1721] pressing build immediately after adding or creating a new job gives
IOE
* JobResource.java
   presentablify(), writeHtml() - make sure crawl log exists before attempting
   to read and serve it
2009-12-03 01:26:26 +00:00
gojomo e15f49dd60 [HER-1708] h3 - crawl summary report byte totals off somehow
* CrawlController.java
    send event of crawl-end before appCtx.stop()
* StatisticsTracker.java
    force final progressStatisticsEvent and dumpReports at crawlEnded() before stop()
    add force-dump of reports (so dumpReports never reuses prior reports)
* CrawledBytesHistotable.java
    add getTotalBytes(), a total of just the byte-counts (getTotal() includes URI counts)
* CrawlStatSnapshot.java
    use getTotalBytes()
2009-12-02 06:25:23 +00:00
nlevitt e3fc474ca4 Return http 404 when appropriate.
* BeanBrowseResource.java
* JobResource.java
2009-12-02 03:24:11 +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 18e165f21e [HER-1714] fixed-interval rescheduling
* AbstractFrontier.java, WorkQueueFrontier.java, BdbFrontier.java
    add 'futureUris' map of CrawlURIs to be reenqueued at specific future dates
    the usual findEligibleUri also checks for newly-eligible rescheduled URIs
    the frontier is no longer empty unless the future count is also 0
* CrawlURI.java
    add rescheduleTime property
* ReschedulingProcessor.java
    optional post-processor to set a CrawlURI's reschedulingTime
* CrawlStatSnapshot.java, CrawlJob.java
    add futureUriCount to stats/uriTotalsReport
2009-11-23 08:47:14 +00:00
gojomo 3c9df9a8c6 BDBJE updates, refactoring
* BdbFrontier.java
    use BdbModule.openDatabase()
2009-11-23 08:24:54 +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 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 8251620481 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
* profile-crawler-beans.cxml*2, migrate-template-crawler-beans.cxml
    add CheckpointService as recommended bean
2009-11-20 18:35:13 +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 dfacba51e5 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
UI support
* JobResource.java
    enable 'checkpoint' button as appropriate
    display active recovery-checkpoint or select bos of recovery-options when available
* CrawlJob.java
    (getCheckpointService) accessor
2009-11-20 01:02:14 +00:00
gojomo 50ee78f6d2 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
* BdbFrontier.java
    implement Checkpointable; save state via JSON or BDB; restore queues-of-queues on recovery
* WorkQueueFrontier.java
    (deactivateQueue) (retireQueue) protected
* BdbUriUniqFilter.java
    implement Checkpointable; save state via JSON or BDB; restore
* WorkQueue.java
    make peekItem transient -- should not be held through checkpoint
    make retired protected
* Frontier.java, AbstractFrontier.java
    remove/update obsolete code
2009-11-20 00:59:00 +00:00
gojomo be17d5ed33 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
* CrawlController.java
    remove older checkpoint-functionality passthrough
    implement Checkpointable so behavior can vary during recovery
    only trigger annnounce of seeds on 'cold' (non-recovery) start
2009-11-20 00:51:59 +00:00
gojomo ac6b58cb0e [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
* Checkpoint.java
    (generateFrom) version more suitable for unit testing
2009-11-20 00:49:31 +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 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 b63c2bdc77 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
processor-related bean checkpoint support:
* ToeThread.java
    use getBeanName
2009-11-19 23:12:47 +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 300ce15a06 * EditRepresentation.java
add filename to TITLE to help identify browser tabs
2009-11-19 21:58:12 +00:00
gojomo b97319fb07 reformat 2009-11-19 21:57:05 +00:00
gojomo f9e1191144 Fix build - cleanup leak of incomplete code to prior commit 2009-11-18 20:53:41 +00:00
gojomo 56055d8236 [HER-1709] h3 - dumpPendingAtClose doesn't work
* CrawlController.java
    avoid unnecessarily early/redundant close of logs files (and checkpointer cleanup)
* WorkQueueFrontier.java
    add stop() that does close()
* BdbMultipleWorkQueues.java
    add cursor.close()
* AbstractFrontier.java, BdbFrontier.java
    use closeQuietly
2009-11-18 00:29:37 +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 e57ad68230 * AbstractFrontier.java
implement ApplicationListener like it seems to want to, being that it has a
    method onApplicationEvent()
2009-11-17 04:53:11 +00:00
szznax 92f3bfe0ec check for exactly 2 args, tightened up SAXException handling by making sourceOrderXmlDom
a protected field, cleaned up unused import and whitespace.
2009-11-16 23:45:04 +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
szznax 69bedb8240 a bit more error-handling for input args 2009-11-16 19:31:30 +00:00
szznax 24463da8bc Fix for [HER-1689] build, launch buttons remain enabled after problem building
* CrawlJob.java
  renamed isContainerOk() to hasApplicationContext()
  increased granularity of isLaunchable() to offer launch button
* JobResource.java
  more coarse check for hasApplicationContext() to disable build button
2009-11-13 23:23:52 +00:00
nlevitt f6b2066d6e [HER-1693] dedup numbers in crawl,host reports - patch contributed by Matt
Warhaftig
2009-11-12 01:38:28 +00:00
nlevitt 9743be5d8c Fix for [HER-1683] h3: inconsistent host classification for dns: urls
* DefaultServerCache.java
    getHostFor(UURI): special case dns uris
* ServerCache.java
    add getHostFor(UURI) to public interface
* ServerCacheUtil.java
    remove now redundant wrapper method
* DispositionProcessor.java AbstractFrontier.java IPQueueAssignmentPolicy.java
  BucketQueueAssignmentPolicy.java PreconditionEnforcer.java QuotaEnforcer.java
  StatisticsTracker.java ServerCacheTest.java FetchHTTP.java
  Kw3WriterProcessor.java WriterPoolProcessor.java 
    changed to use serverCache.getHostFor(UURI) (a few cases remain that use
    getHostFor(String))
2009-11-12 01:28:22 +00:00
nlevitt c77de5fc08 [HER-1561] put apache license boilerplate on a couple of stragglers 2009-11-11 03:19:06 +00:00
gojomo ce79e8a76e [HER-1561] update license to Apache License 2.0
* SeekReader.java
   update to Apache
* RecoveryLogMapper.java
   revert to LGPL pending verification of authors' approval for relicensing
2009-11-11 00:28:03 +00:00
gojomo dd0ca367c3 [HER-1706] PersistLoadProcessor and PersistStoreProcessor can't share same BdbModule
* BdbModule.java
    allow Database instance reuse if BdbConfig is identical instance
* PersistProcessor.java
    convert shared BdbConfig for history db to static constant HISTORY_DB_CONFIG
* PersistOnlineProcessor.java
    use HISTORY_DB_CONFIG, don't close possibly-shared DB on stop()
* PrecedenceLoader.java, PreloadedUriPrecedencePolicy.java
    use HISTORY_DB_CONFIG
2009-11-10 23:48:10 +00:00
gojomo 0497efbb32 [HER-1561] update license to Apache License 2.0
* (many)
    update license boilerplate
* (few)
    delete no-longer used classes
2009-11-10 21:03:27 +00:00
gojomo f5e0d333a2 [HER-1702] console rates (eg URIs/sec) sometimes way off, infinite, NaN (�)
* CrawlStatSnapshot.java
    force double math, preventing premature loss of precision, zeros in denominators
2009-11-07 20:13:00 +00:00
gojomo 11048de24c [HER-1703] convert all maps that operator might want to change on the fly to concurrent maps
* KeyedProperties.java
    derive from ConcurrentHashMap
* Sheet.java
    ensure internal map is always a concurrent-map (even when setMap is passed something else)
* SheetOverlaysManager.java
    convert ruleAssociations, sheetNamesBySurt, sheetsByName to concurrent implementation classes
* ScriptedProcessor.java, ScriptedDecideRule.java
    convert sharedMap to concurrent implementation
* DecideRuledSheetAssociation.java
    ensure non-equal associations don't compareTo()==0 (implying equals, causing problems in sorted maps/sets)
2009-11-07 03:07:51 +00:00
gojomo 06c63ffc5b * FrontierSummaryReport.java
allow report even on empty frontier (as at pasue-at-end)
2009-11-07 03:02:09 +00:00
gojomo bda89f5617 * JobResource.java
add descriptive status to TITLE
2009-11-07 03:00:49 +00:00
gojomo 9b211165df [HER-1698] report generation gives text of path, without showing report
* JobResource.java
    make getHrefPath public static utility method
* ReportGenResource.java
    use getHrefPath so '/anypath/' URLs are used where needed
2009-11-06 22:18:47 +00:00
gojomo a7a990b638 [HER-1699] pause-at-finish leaves crawl in 'pausing' not 'paused' state
* CrawlController.java
    if frontier pauses and pauseAtFinish is true; enter PAUSED immediately
2009-11-05 23:19:00 +00:00
gojomo 7cf25a844e * StatisticsTracker.java
make expensive seeds-result tracking optional
2009-10-26 12:08:49 +00:00