Commit Graph
182 Commits
Author SHA1 Message Date
gojomo 8f7ad4eae4 work for [HER-1605] Refactor parameterizable policies out of frontier
* QueueAssignmentPolicy.java, URIAuthorityBasedQueueAssignmentPolicy.java
    move 'force-queue-assignment' setting from frontier to policy
2009-10-05 23:04:37 +00:00
gojomo 10275d7fa1 More ProcessorURI -> CrawlURI updates 2009-10-05 23:01:40 +00:00
gojomo c7ed3e775d Misc
* ArchiveUtils.java
   (checkContinue) utility method relocated from ToeThread for converting interrupt status to exception
* ClassKeyMatchesRegExpDecideRule.java
   properly set up crawlController property for auto-wiring
2009-10-05 22:59:46 +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 c04c5dbdbc Improve test robustness
* Engine.java
    wait another second before testing for job wrap-up
2009-10-05 22:25:44 +00:00
szznax 62690268b7 Initial checkin for [HER-1641] migration tool to convert Heritrix 1.14.x order.xml to H3 crawler-beans.cxml 2009-10-05 20:00:56 +00:00
szznax ba5bc1a20c Fix unit tests (carried over from H1)
* WARCWriterTest.java
    (testSpaceInUrl),(testTabInURL): don't expect exception; expect nothing-written
2009-10-05 18:35:06 +00:00
gojomo 86974e2e1d Cleanup post-fix
* ObjectIdentityBdbCache.java
    with late ref-enqueuing confirmed as cause of problems, cleaning out unnecessary steps, improving comments
2009-10-04 06:15:35 +00:00
gojomo 75676ac905 Attempt at fixing build-box-only warnings
* ObjectIdentityBdbCache.java
    explicitly page-out lingering entry; 
    temporary System.err logging to see if problem is momentary lag in RefQueue-appearance
2009-10-04 05:14:59 +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
gojomo c3914ea943 Attempt at fixing build-box-only warnings
* ObjectIdentityBdbCache.java
    add earlier check/better logging for error state
2009-10-04 03:31:45 +00:00
gojomo 839e895a8d Attempt at fixing build-box-only warnings
* ObjectIdentityBdbCache.java
    synchronize critical sections on memMap, diskMap rather than enclosing object
2009-10-03 23:55:59 +00:00
gojomo 3cb6b59b8c [HER-769] Support case where millions of seeds.
* BdbModule.java
    add temp-stored-map service method
    remove unused secondary-db support
* TempStoredSortedMap.java
    StoredSortedMap that can destroy its underlying database after temporary use
* StatisticsTracker.java
    update various sorted-by-decreasing-frequency methods to use temp StoredMaps, with duplicate keys that are negative counts
* (Multiple)Report.java
    update to use new duplicate-keyed frequency maps
2009-10-03 23:28:11 +00:00
szznax 97778493e2 As part of fix for [HER-1671] WARCWriterProcessor error when writing
problematic (illegal control character?) outlink
catch IllegalArgumentException in ANVLRecord.addLabelValue() to allow
WARCWriter to continue processing, and move
WARCWriter.createRecordHeader() into its own try-catch block to with
logging prevent fouling record when problems occur creating header.
* ANVLRecord.java
    catch IllegalArgumentException in addLabelValue and log warning to
    give WARCWriter to continue processing
* WARCWriter.java
    move createRecordHeader() into its own try-catch block to log
    severe problem writing record without fouling the WARC, and have
    baseCharacterCheck() throw IllegalArgumentException in accord with
    ANVLRecord.addLabelValue
* WARCWriterTest.java
    throw IllegalArgumentException in accord with
    WARCWriter.createRecordHeader()
2009-10-03 00:41:59 +00:00
szznax 03df2a9a99 As part of fix for [HER-1671] WARCWriterProcessor error when writing problematic (illegal control character?) outlink - percent encode control-characters in 'userinfo' part of URI as we do for uriPath and uriQuery, so we don't raise exception when adding outlinks to metadata record
* UURIFactory.java
  ensureMinimalEscaping() on 'userinfo' in UURIFactory.fixupAuthority()
2009-10-02 01:39:44 +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
szznax 3e65e09927 As part of fix for [HER-1634] verify/port/update latest WARC
implementation in 1.14.3/heritrix2 to latest ISO document,
heritrix3 - update REVISIT profile URIs per WARC spec (May 2009)
* WARCConstants.java
  PROFILE_REVISIT_IDENTICAL_DIGEST =
    "http://netpreserve.org/warc/1.0/revisit/identical-payload-digest"
  PROFILE_REVISIT_NOT_MODIFIED =
    "http://netpreserve.org/warc/1.0/revisit/server-not-modified"
2009-09-29 21:52:33 +00:00
gojomo 1951930842 Improve test robustness in face of unpredictable GC
* ObjectIdentityBdbCache.java
   (pageOutStaleEntries) package-protection for unit-test visibility
* ObjectIdentityBdbCacheTest.java
   explicit pageOutStaleEntries, better assert-fail message
2009-09-29 20:20:14 +00:00
gojomo 5a0fe30366 Quiet JUnite test issues
* BdbModuleTest.java, CachedBdbMapTest.java
    use putIfAbsent() in preference to put() (which logs warning)
* BdbModule.java
    register big-cache DBs in implementation-specific methods, so always auto-closed on env close
2009-09-29 19:22:23 +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
gojomo 7bd6017448 * ObjectIdentityBdbCache.java
avoid error if size() called after close()
2009-09-26 04:12:23 +00:00
gojomo 71aa2ad51d * StatisticsTracker.java, HostsReport.java
rename getReverseSortedHostsDistribution() so it isn't misinterpreted as beans property
2009-09-26 04:09:20 +00:00
gojomo a285a65576 * CachedBdbMap.java
remove superfluous (build-breaking) imports
2009-09-25 22:50:43 +00:00
gojomo 7521375128 [HER-1677] threads stuck in CachedBdbMap.get/_getMem
alternate simplified implementation of our object-cache need
* ObjectIdentityCache.java
    new interface, far less than (Concurrent)Map, for big seems-like-in-memory object-cache
* Supplier.java
    trivial interface for deferred-provision of new instance
* CachedBdbMap.java
    implement ObjectIdentityCache, mainly via getOrUse()
* ObjectIdentityMemCache.java
    trivial ConcurrentHashMap-based all-in-memory ObjectIdentityCache implementation
* ObjectIdentityBdbCache.java
    BDB-backed ObjectIdentityCache implementation, carved from CachedBdbMap
* BdbModule.java
    refactor utility methods to offer CachedBdbMap or ObjectIdentityBdbCache instances, via source toggle
* EnhancedEnvironment.java
    convenience test-environment method
* (others)
    update to use ObjectIdentityCache/ObjectIdentityMemCache in place of ConcurrentMap/ConcurrentHashMap
2009-09-25 21:18:14 +00:00
gojomo e7ab73dd5d [HER-1677] threads stuck in CachedBdbMap.get/_getMem
alternate simplified implementation of our object-cache need
* ObjectIdentityCache.java
    new interface, far less than (Concurrent)Map, for big seems-like-in-memory object-cache
* Supplier.java
    trivial interface for deferred-provision of new instance
* CachedBdbMap.java
    implement ObjectIdentityCache, mainly via getOrUse()
* ObjectIdentityMemCache.java
    trivial ConcurrentHashMap-based all-in-memory ObjectIdentityCache implementation
* ObjectIdentityBdbCache.java
    BDB-backed ObjectIdentityCache implementation, carved from CachedBdbMap
* BdbModule.java
    refactor utility methods to offer CachedBdbMap or ObjectIdentityBdbCache instances, via source toggle
* EnhancedEnvironment.java
    convenience test-environment method
* (others)
    update to use ObjectIdentityCache/ObjectIdentityMemCache in place of ConcurrentMap/ConcurrentHashMap
2009-09-25 21:16:53 +00:00
szznax 78dd7f2086 Fix for [HER-1648] harmonize declared WARC versions in protocol, warcinfo record metadata
WARConstants.java
  update WARC_VERSION=1.0 according to ISO 28500:2009 as of May 2009
WARCWriterProcessor.java
  update format and conformsTo fields according to ISO 28500:2009,
  as of May 2009, as described at http://bibnum.bnf.fr/WARC/,
  latest draft as of November 2008
  format: WARC File Format 1.0
  conformsTo: http://bibnum.bnf.fr/WARC/WARC_ISO_28500_version1_latestdraft.pdf
2009-09-23 18:42:25 +00:00
gojomo 2bd9334627 [HER-1677] threads stuck in CachedBdbMap.get/_getMem
* CachedBdbMap.java
    make all WARNING logs include stacks
    add WARNINGs if memMap.remove() has no expected effect
    verify reported expunction, WARN and try to fix if memMap expunction not evident
    adjust indentation/bracketing
2009-09-22 21:16:21 +00:00
gojomo 142c72fc04 [HER-1668] support '-' SURT directives in seed files analogous to '+' (if a REJECTing SurtPrefixedDecideRule is present)
* SurtPrefixedDecideRule.java
    pass only portion after directive ('+' or '-') to SurtPrefixSet
* SurtPrefixSet.java
    better comment/param name
2009-09-16 01:05:23 +00:00
gojomo ee1c9e2ce4 [HER-1607] handle persist state when crawl starts up
* PersistProcessor.java
    add readOnly option for environment only opened for copying-from
* PersistLoadProcessor.java
    make start() safe to call redundantly (per Lifecycle contract)
2009-09-12 00:22:06 +00:00
gojomo 163dcb7826 [HER-1607] handle persist state when crawl starts up
* BdbModule.java
    fail-fast if not started properly; stop with fewer errors in problem situations
* CrawlController.java
    continue past runtimeException on stop
* CrawlJob.java
    less redundant error-reporting
* AbstractFrontier.java
    consider PAUSE or FINISH valid targets after unexpected exception 
* StatisticsTracker.java
    avoid promoting runtimeException in report-generating up
* PersistOnlineProcessor.java
    delegate DB-closing to BdbModule to avoid double-close
2009-09-11 02:26:04 +00:00
gojomo d5e088ed6a * WorkQueueFrontier.java
improve frontier report: move longest-queue to top, add labels/counters to long lists of queue groups
2009-09-10 22:40:30 +00:00
gojomo d955e31963 [HER-1676] improve bundled profiles to match best-practice, be self-documenting
* defaults.xml
    add REJECTing SurtPrefixedDecideRule and MatchesListRegExpDecideRule
2009-09-10 22:39:26 +00:00
gojomo 1c451021d1 * PagedRepresentation.java
make 'end' link go to true end, not end-as-of-moment-of-rendering
2009-09-10 21:57:21 +00:00
gojomo 1e3ec9fe35 * SheetAssociation.java
initialize list of names for easier in-crawl construction/insertion
2009-09-10 21:56:44 +00:00
gojomo a564b7a867 [HER-1675] FetchStats/CrawlSubstats not tallying fetchResponses correctly; as a result QuotaEnforcer doesn't work
* FetchStats.java
    increment fetchResponses appropriately
2009-09-09 00:12:54 +00:00
gojomo 0b10862c8d Make during-crawl sheets/overlay changes easier
* SheetOverlaysManager.java
    convenience methods for during-crawl changes:
    (getOrCreateSheet)
    (deleteSheet)
    (putSheetOverlay)
    (removeSheetOverlay)
* Sheet.java
    improved comments
2009-09-03 06:33:25 +00:00
gojomo c88744ab27 Improve bean-browse UI
* BeanBrowseResource.java
    coerce edits to type of value they're replacing; makes for safer mid-crawl edits of values in maps
* JobRelatedResource.java
    improve rendering/clickability of map, indexed objects
2009-09-03 03:32:07 +00:00
gojomo f26803bd4f UI tweaks
* JobResource.java
    make jaob main page begin with job title -- easier to distinguish tabs with different jobs in them
2009-09-03 03:27:05 +00:00
gojomo 635d27b390 More action directory capabilities
* ActionDirectory.java
    execute scripts found in action directory, determining language by their suffix
2009-09-03 03:15:54 +00:00
gojomo e03329a035 [HER-1668] support '-' SURT directives in seed files analogous to '+' (if a REJECTing SurtPrefixedDecideRule is present)
* SurtPrefixedDecideRule.java
    allow seeds to be null (as when rule is intentionally completely 
    independent of seeds; may also need to disqualify rule from
    Spring autowiring in such a case)
2009-09-02 23:24:30 +00:00
gojomo 21d90f2a3a UI annoyances
* ReportGenResource.java
    ensure redirect after regeneration of report doesn't show stale cached version
2009-09-02 23:15:18 +00:00
gojomo d4eabb9631 Improve log display
* JobResource.java
    form proper alerts-rev-tail link
    for any file ending ".log", use rev-tail-paged view
2009-09-01 22:42:52 +00:00
gojomo 81a658daa3 Update BDB-JE to 3.3.87
* commons/pom.xml, .classpath
    update version reference
2009-09-01 22:40:21 +00:00
gojomo f0421e1f13 * ActionDirectory.java
also include 'Fi ' lines -- for recoveries of recoveries
2009-08-28 17:08:59 +00:00
gojomo ad937c58e5 [HER-1662] use fully qualified hostname
* FetchHTTP.java
    replace one more InetAddress.getHostName() with InetAddress.getCanonicalHostName() (for consistency)
2009-08-28 06:56:20 +00:00
gojomo d253ff1ace [HER-1662] use fully qualified hostname
* WriterPoolProcessor.java, ARCWriterProcessor.java, WARCWriterProcessor.java, InetAddressUtil.java 
    replace all InetAddress.getHostName() with InetAddress.getCanonicalHostName() (for consistency)
2009-08-27 23:35:07 +00:00