111 Commits

Author SHA1 Message Date
gojomo 5661658b1b prep for 3.0.0 release
* **/pom.xml
    bump version-id to "3.0.0"
* README.txt
    refer to exactly 3.0.0 release notes
2009-12-05 09:28:19 +00:00
gojomo dd4a8d4705 [HER-1718] misleading "writer subdirectory" shown in webui
* WriterPoolProcessor.java
    change description of WriterPoolProcessor.directory ConfigPath to not imply as strongly that is where writing much be occurring
2009-12-03 08:41:08 +00:00
gojomo ed2061560e Improve Maven build robustness
* UURIFactoryTest.java
    specify stirng literal with escape-encoding, rather than as raw UTF-8
* **/pom.xml
    include 'project.build.sourceEncoding' property to suppress platform-encoding warnings
    (unfortunately, neither this nor similar 'maven.compile.encoding' property actually casues maven build to interpret Java source as UTF-8)
2009-12-02 01:34:40 +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 79fd64a2b5 Post-RC1-build
* **/pom.xml
    revert version name to SNAPSHOT
2009-11-23 10:23:28 +00:00
gojomo 0c7a74bd35 RC1
* **/pom.xml
    rename version to '3.0.0-RC1' for distinguished 'RC1' identified build (instead of SNAPSHOT/timestamp)
2009-11-23 09:57:42 +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 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 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 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 124d1524d9 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
processor-related bean checkpoint support:
* Processor.java
    implement Checkpointable and BeanNameAware; methods to support JSON state-saving
* DispositionChain.java
    implement Checkpointable and during-checkpoint disposition-lockout for state stability
2009-11-19 23:10:13 +00:00
gojomo 2bb65e9200 [HER-1546] Springify(5): Update checkpointing to work smoothly with spring-configured crawls
processor-related bean checkpoint support:
* Processor.java
    implement Checkpointable and BeanNameAware; methods to support JSON state-saving
* DispositionChain.java
    implement Checkpointable and during-checkpoint disposition-lockout for state stability
* **Extractor**.java
    pull common reporting & checkpointing up to Extractor.java
* WriterPoolProcessor.java
    implement Checkpointable; freeze and roll writer-pool during checkpoint
* PersistLogProcessor.java
    roll log on checkpoint
* TextSeedModule.java, SeedModule.java
    eliminate obsolete (and probably unnecessary) checkpoint support
* (others)
    adapt to above changes
2009-11-19 22:52:39 +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 be81d3733a [HER-1710] on problem loading persist log, close reader 2009-11-18 03:02:28 +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 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 df83c093e9 * PersistLogProcessor.java
innerProcess(): persist only "persistent" data, like PersistStoreProcessor
2009-11-13 01:51:56 +00:00
nlevitt 2740cc7bb0 Change the artifactId from commons to heritrix-commons, modules to
heritrix-modules, engine to heritrix-engine.
2009-11-12 02:48:38 +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 da9eb5970c Fix bug preventing preload source from being loaded. 2009-11-12 00:15:31 +00:00
gojomo 91ffdac6d9 [HER-1561] update license to Apache License 2.0
* ScopePlusOneDecideRule.java
    removing, in favor of SurtPrefixedDecideRule's 'alsoCheckVia' option
* RecyclingFastBufferedOutputStream.java
    use library by deriving as subclass (rather than c&p), now that class is available in an included library (fastutil)
2009-11-11 01:40:43 +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 e3f3402213 * DefaultServerCache.java
remove superfluous synchronization
2009-11-10 01:37:04 +00:00
gojomo 9e0584b021 Followup for [HER-1703] convert all maps that operator might want to change on the fly to concurrent maps
* HTTPContentDigest.java
    avoid using null for overlayable KeyedProperty -- fix broken NPE in test
2009-11-07 20:10:19 +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 59003e22ab Fix issues with surt-source, surt-dump file paths
* ConfigPathConfigurer, PathFixupListener
    notify beans when paths fixed
* SurtPrefixedDecideRule.java
    only read source prefixes after path fixup; dump after read or any batch of seeds
* SeedModule.java, TextSeedModule.java, SeedListener.java
    new concludedSeedBatch event 
* AbstractFrontier.java, StatisticsTracker.java
    ignore new concluded-batch event
* AlertThreadGroup.java, JobResource.java
    new mechanism for threads not part of AlertThreadGroup to temporarily redirect their logging to provided (job) logger
2009-10-26 11:27:09 +00:00
gojomo 4a0f809c0d Post-beta-build
* **/pom.xml
    revert version name to SNAPSHOT
2009-10-07 11:54:12 +00:00
gojomo af9345a3be * **/pom.xml
rename version to 'beta' for distinguished 'beta' identified build (instead of SNAPSHOT/timestamp)
2009-10-07 11:25:20 +00:00
gojomo b7631e2b02 Misc fixes from H1-to-H3 testing
* BdbModule.java
    be more robust about 0/-1 as 'don't care' values
* AbstractFrontier.java
    reorder settable properties for ease of discovery
* FetchHTTP.java
    correct type to allow setting property
2009-10-07 04:22:05 +00:00
gojomo 07adde3a73 Fix impoliteness regression
* CrawlURI.java
    return true calculated politeness delay, not 0!
2009-10-07 04:20:11 +00:00
gojomo eb659a9fad more profile cleanup
* profile-crawler-beans.cxml
   add alsoCheckVia
   improve description of commented-out defaults
   add CrawlLimitEnforcer
* SurtPrefixedDecideRule.java
    remove obsolete property
2009-10-07 01:05:59 +00:00
gojomo 258da53d57 [HER-1676] improve bundled profiles to match best-practice, be self-documenting
* profile-crawler-beans.cxml
    add comments for all unstated default values an operator might want to change
* (many) 
    reorder, refactor, rename to better minimize/match simple configuration
2009-10-06 19:35:05 +00:00
gojomo da95932598 * CrawlMetadata.java
set default RobotsHonoringPolicy, making explicit declaration unnecessary
 * RobotsHonoringPolicy.java
    apache license
2009-10-06 04:00:58 +00:00
gojomo 3654e330cc * (many)
harmonize our usage on '[Rr]egex' as the abbrieviation for regular-expression
    (replacing RegExp/etc.; 'regex' is 30-40% more prevalent by google hits)
2009-10-06 03:47:38 +00:00
gojomo d86f5f7403 * (many)
harmonize our usage on '[Rr]egex' as the abbrieviation for regular-expression
    (replacing RegExp/etc.; 'regex' is 30-40% more prevalent by google hits)
2009-10-06 03:45:44 +00:00
gojomo 6769cdb2dc Fix inadvertent build-breaking upward dependency from modules to engine
* modules//ProcessorChain.java
    send updates to ChainStatusReceiver interface
* engine//ToeThread.java
    implement ChainStatusReceiver interface
2009-10-06 01:01:32 +00:00
gojomo 13c9cc1915 [HER-1605] Refactor parameterizable policies out of frontier
* defaults.xml
    update bundled profile for new chains refactoring
* CrawlController.java
    move to three processor-chains rather than one
* Frontier.java
    (loadSeeds) removed
* ToeThread.java
    delegate most processing-loop to FetchChain and DispositionChain
* AbstractFrontier.java, WorkQueueFrontier.java
    move policies/calculation out to processors
* CandidatesProcessor.java
    new processor for DispositionChain that runs every outlink through CandidateChain
* CrawlStateUpdater.java -> DispositionProcessor.java
    rename, expand to prep CrawlURI for frontier
* FrontierScheduler.java
    deleted; use CandidatesProcessor/CandidateChain
* LinksScoper.java
    deprecated; use CandidatesProcessor/CandidateChain/CandidateScoper
    (only temporarily retained for ease of comparison)
* CandidateScoper.java
    simple single-URI scope-testing for CandidateChain
* FrontierPreparer.java
    precalculate all frontier-policies in CandidateChain, before scheduling
* PreconditionEnforcer.java
    ProcessorURI->CrawlURI; take on some prerequisite preparation previously deferred to elsewhere
* ProcessorsReport.java
    update for 3-chains of Processors
* SheetOverlaysManager.java
    (applyOverridesTo) moved here for broader use
* CandidateChain.java, FetchChain.java, DispositionChain.java
    role-specific subclasses of ProcessorChain (suitable for type-based autowiring)
* CrawlURI.java
    new fields/accessors of use to new chains/frontier
* PostProcessor.java
    deleted; skip-to-'postprocessing' is now skip-to-end-of-chain
* ProcessorChain.java
    take-on control loop formerly in ToeThread
* ProcessResult.java
    absorb ProcessStatus
    eliminate problematic STUCK result
2009-10-05 23:41:59 +00:00
gojomo 10275d7fa1 More ProcessorURI -> CrawlURI updates 2009-10-05 23:01:40 +00:00
gojomo 16538f175c Cleanup, refactoring
* (many)
   update license notice to Apache where appropriate
   eliminate ProcessorURI, DefaultProcessorURI in favor of CrawlURI (now in modules package)
   other comment/warning/unused code cleanup
2009-10-05 22:49:19 +00:00
gojomo c05044d51b Eliminate double-database close log messages
* BdbModule.java
   split openDatabase() to openManagedDatabase() (auto-closed) and plain openDatabase() (caller-closes)
   set TempStoredSortedMap to use unmanaged openDatabase
* (others)
   use openManagedDatabase()
2009-10-04 05:06:14 +00:00
szznax 677a816db4 Fix for [HER-1681] FetchFTP module doesn't set content-begin mark correctly.
Bug reported and fix suggested by Tomas Ukkonen.
* FetchFTP.java
    saveToRecorder(): call recorder.markContentBegin() after recorder.outputWrap()
2009-10-01 02:21:17 +00:00
szznax fef7a93bad As part of fix for [HER-1634] verify/port/update latest WARC
implementation in 1.14.3/heritrix2 to latest ISO document,
heritrix3 - in warcinfo record, "robots" field should be
"robots: classic" rather than "robots: CLASSIC"
* WARCWriterProcessor.java
  made robots entry in metadata lower-case
2009-09-30 17:06:53 +00:00
gojomo 99020c4981 [HER-1672] parallelQueues with overlays - prerequisites not landing in right queues (causes massive DNS-fetch repeats)
* PreconditionEnforcer.java, CrawlServer.java
    in testing found some ordering issues affecting robots-scheduling if parallelQueues>1
    reordered/refactored to put more responsibility in CrawlServer to resolve
2009-09-29 00:47:38 +00:00
szznax 1cfcf8e0a5 As part of fix for [HER-1634] verify/port/update latest WARC implementation in $
fold in H3 updates to http transaction constant for revisit records.
* CoreAttributeConstants.java
  removed A_HTTP_TRANSACTION, in favor checking CrawlURI method with isHttpTran$
* ModelAttributeConstants.java
  removed A_HTTP_TRANSACTION, in favor checking CrawlURI method with isHttpTran$
* FetchHistoryProcessor.java
  check for HTTP transaction using CrawlURI.isHttpTransaction()
  use HttpMethod in saveHeader() instead of HttpMethodBase
* WARCWriterProcessor.java
  check for HTTP transaction using CrawlURI.isHttpTransaction()
  use HttpMethod in saveHeader() instead of HttpMethodBase
2009-09-29 00:41:57 +00:00
gojomo c2b71a6f95 * WriterPoolProcessor.java
fix serialization test: make servercache field transient
2009-09-26 04:41:09 +00:00
gojomo 1c1a6501ba [HER-1672] parallelQueues with overlays - prerequisites not landing in right queues (causes massive DNS-fetch repeats)
* CrawlURI.java
    (getPolicyBasisUURI) return either own UURI, or -- for prereqs -- via UURI, as basis for overlays/policy calculations
* URIAuthorityBasedQueueAssignmentPolicy.java
    use getPolicyBasisUURI for queue-name decisions
* SheetOverlaysManager.java
    use getPolicyBasisUURI for surt-based overlay decisions
2009-09-26 04:18:25 +00:00