1Revision history for Perl extension Net::OAI::Harvester 2 3 41.20 Mon, Jan 25 00:20:05 CET 2016 5!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6!! INCOMPATIBLE CHANGE introduced with version 1.20 !! 7!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 8 9Up to version 1.15 the metadataHandler was inconsistently fed with input: 10 11 - GetRecord exposed the almost complete XML response to the Handler 12 (including start_document/end_document events) 13 - ListRecords exposed the (OAI)record element (header, metadata and 14 optional about containers) but did not propagate start_document or 15 end_document events. 16 17In both cases the events for the header tags itself and for the optional 18setSpec subelements had not been forwarded 19 20Version 1.20 introduces a modified behavior for metadataHandler and an 21additional recordHandler: 22 - a metadataHandler will see only the (single) subelement of the OAI metadata 23 element (so for an deleted record it might never be invoced at all) 24 - a recordHandler will see the OAI record element and its subelements 25 26Therefore a metadataHandler will now be confined to the metadata fragment(s) 27of the response, and the new recordHandler approximates the old behavior of 28ListRecords, however OAI-PMH:identifier and OAI-PMH:datestamp will now be 29properly encapsulated within their OAI-PMH:header element. 30 31Additionally, two new methods responseDate() and request() allow access 32to the corresponding top-level OAI-PMH elements in all response types. 33A SAX filter of class Net::OAI::Record::DocumentHelper may be used to inject 34start_document and end_document events into the chain if they are needed. 35 36As a temporary measure, you may set $Net::OAI::Harvester::OLDmetadataHandler =1 37to change the behavior of handlers passed as "metadataHandler" into that of 38a recordHandler. 39 40 411.16_12 Tue, Jan 12 00:20:05 CET 2016 42 - dealing with CPANTS Kwalitee issues, esp. version number mess 43 - new filter class Net::OAI::Record::DocumentHelper for tweaking 44 451.16_11 Tue, Jan 12 00:20:05 CET 2016 46 - minor cleanup 47 481.16_10 Mon, Jan 11 01:29:46 CET 2016 49 - renamed alldata() method for accessing recordHandler results 50 to recorddata() 51 - better propagation of namespace prefix mapping events 52 - Net::OAI::NamespaceFilter with a result() method 53 - Net::OAI::NamespaceFilter tested with XML::SAX::Writer 54 - AUTHOR formatting 55 561.16_09 Sun, Feb 14 17:29:39 CET 2014 57 - Net::OAI::NamespaceFilter as kind of generic metadata handler 58 - Queries are now constructed basing on a copy of the Harvester's baseURL 59 - pass parameters to URI->query_form() more reproducably, 60 (esp. "verb" should now always be first to accommodate some 61 allegedly broken repositories) 62 - temporary? tests for correctness of LWP operations 63 641.16_07 Tue, Apr 30 01:26:40 CEST 2013 65 - added new methods: response(), responseDate(), error() 66 - Smoke still tests failed on 'Bad Host' tests (wrong error codes 67 induced by HTTP proxies?) 68 - aligned behavior of metadataHandler for listRecords() and 69 getRecord() 70 - introducing alternative recordHandler for listRecords() and 71 getRecord() 72 - removed erroneous resumptionToken handling for identify() 73 741.16_04 Fri Dec 7 09:49:03 CET 2012 75 - consider HTTP proxies in design of t/003.error.t 76 - 'Bad Host' tests failing b/c error code 500 is not the expected 77 code 404 (due to some recent change in LWP)? 78 791.16_01 Mon Apr 2 23:14:35 CEST 2012 80 - Modules were not namespace aware. 81 - Add HTTPRetryAfter() method (catches HTTP Retry-After header) 82 - Check responses for Content-Type and charset before parsing 83 - Net::OAI::Header handed up (empty) header elements and other stuff 84 to the request's metadataHandler 85 - SKIP tests when HTTP errors are encountered 86 871.15 Thu Feb 02 16:29:31 CEST 2011 88 - one repository used for tests changed identifiers 89 901.14b Wed May 18 16:29:31 CEST 2011 91 - Explicit fallback to XML::SAX::PurePerl if we don't get a parser 92 (we know that XML::SAX::PurePerl has the required features and 93 does exist): Warn about probably broken XML::SAX installation and 94 issues with ParserDetails.ini [Fix mainly motivated by reputation 95 management: Far too many smoke tests failing because of automated 96 (=> no ParserDetails.ini => broken) installs of XML::SAX] 971.14a Tue May 17 18:50:03 CEST 2011 98 - Record::OAI_DC: asString() now returns the string and does not print 99 any more 100 - Dependencies: XML::SAX::Base 1.04 (as per XML-SAX since 0.11 101 and opposed to the standalone version on CPAN) is really a necessary 102 prerequisite! (Thanks to Dave Sheroman for testing this out) 1031.14 Mon May 16 22:57:24 CEST 2011 104 - Installation: Makefile.PL and Build.PL failed if XML::SAX::Expat 105 was installed and XML::SAX not (probably a border case only with 106 "standalone" versions of XML::SAX::Base) 107 - Changed messages: ExpatXS should give the mentioned "performance 108 boost" 109 - Tests: Check if XML::SAX::ParserFactory delivered a parser 110 introduce NOH_ParserPackage environment variable 111 1121.13 Fri May 9 17:34:15 WEDT 2008 (Thomas Berger <THB at cpan dot org>) 113 - ListMetadataFormats: namespaces() glued previous names with current; 114 new methods: namespaces_byprefix() and schemas_byprefix() 115 - added HTTPError() method for access to underlying HTTP::Response 116 object (in case of HTTP errors only) 117 NOTE: file() now will yield undef in this case (was: name of 118 non-existing file) 119 - baseURL() had trailing garbage when called after a request 120 - enforce tempfile cleanup by adding UNLINK=>1 to all tempfile() calls 121 - Base.pm: avoid tempfile pollution on Win32 when using xml() method 122 - Module::Build support 123 - Tests: Fixed broken nsdl repository URL 124 1251.12 Tue Aug 7 21:48:50 EDT 2007 126 - modified t/055.listallrecords.t to not iterate over records 127 that are known to cause problems for XML::SAX::PurePerl 128 1291.11 Fri Jul 27 11:47:21 EDT 2007 130 - added oai-dump to MANIFEST 131 1321.1 Fri Jul 27 09:16:35 EDT 2007 133 - added the ability to dump xml files to a directory 134 - trapped xml parsing errors are now always printed to STDERR 135 - added oai-dump utility 136 1371.0 Wed Jul 27 22:52:42 CDT 2005 138 - resumption token handling now respects custom metadata handlers 139 (thanks Thorsten Schwander) 140 1410.991 Thu Feb 24 22:07:05 CST 2005 142 - fixed namespaces() so it works 143 1440.99 Tue Feb 22 21:38:16 CST 2005 145 - added namespaces() and schemas() to Net::OAI::ListMetadataFormats 146 and suitable tests. 147 1480.98 Fri Nov 19 09:41:32 CST 2004 149 - docfix thanks Brian Cassidy 150 1510.97 Tue Aug 30 21:07:05 2004 152 - deprecated Net::OAI::Haverster::debug() in favor of setting 153 Net::OAI::Harvester::DEBUG. This allows for other packages 154 to easily report diagnostics. 155 - fixed test count in identify 010-identify.t 156 - fixed names of utilities in bin 157 - added some docs concerning Net::OAI::Base and passing in 158 LWP::UserAgent to Net::OAI::Harvester::new(). 159 1600.96 Mon Jul 19 22:12:04 2004 161 - Fixed Net::OAI::Harvester to return HTTP level errors 162 - Fixed Net::OAI::Identity to not run together sub descriptions into 163 the overall repositoryName. 164 1650.95 Thu Apr 1 13:48:54 2004 166 - Fixed behavior of Net::OAI::Record::Header::status() 167 which wasn't pulling out the status attribute properly. Thanks 168 Darin Burleigh at wisc.edu. Also added test of status() to 169 t/005.header.t 170 1710.94 Thu Dec 11 14:04:12 2003 172 - added listAllIdentifiers() and listAllRecords() which automatically 173 handle resumption tokens. 174 1750.9 Sun Dec 07 08:45:28 2003 176 - Net::OAI::ListRecords now uses Storable rather than YAML since 177 YAML cannot handle utf8 at this time. Also Storable is 178 significantly faster. 179 - Modified listRecords() to accept metadataHandler parameter for 180 specifying a custom metadata SAX handler. 181 - Brought getRecord() into synch with listRecords() so that 182 metadataHandler specifies the package name of the custom metadata 183 handler, rather than an actual instance of that class. 184 1850.86 Wed Nov 26 14:01:21 2003 186 - fixed 5/002.error to not skip ALL THE TIME! 187 1880.85 Wed Nov 26 13:45:23 2003 189 - added note to Net::OAI::Record::OAI_DC.pm to indicate the 190 return values in list and scalar contexts. Thanks Jose 191 Barrueco @ University of Valencia. 192 - beefed up docs in Net::OAI::Identify 193 - modified t/002.error to check parser so that test doesn't fail 194 under XML::LibXML 195 - added output message to Makefile.PL encouraging folks to 196 use libxml2 parser for increased speed. 197 1980.82 Sat Nov 01 07:40:53 2003 199 - require at least 5.8.0 for installation since this is the recommended 200 baseline for processing unicode. 201 2020.81 Fri Oct 24 01:51:03 2003 203 - fixed passing of empty metadataFormat name/value pair when 204 listRecords() and listIdentifiers() use a resumption token. 205 Thanks Patrick Hochstenbach @ LANL. 206 2070.8 Fri Oct 24 09:16:12 2003 208 - better catching of XML errors 209 - added debug() method 210 - added --debug switch to oai-listrecords 211 2120.75 Wed Oct 22 21:51:08 2003 213 - wrapped XML parsing in eval block to trap fatal errors. 214 2150.7 Wed Oct 22 09:58:55 2003 216 - more doc fixes (thanks Martin) 217 - resumptionToken() now returns undef when no resumption token 218 was present in the response. 219 - modified bin/oai-listrecords to take advantage of the new return 220 convention of resumptionToken(). 221 - fixed custom userAgent getting/setting (thanks Martin). 222 2230.6 Tue Oct 21 17:12:31 2003 224 - fixed several doc errors (thanks Martin Emmerich) 225 - modified list verbs to work with resumption tokens 226 - modified oai-listrecords utility to automatically fetch all 227 records using resumption tokens. 228 2290.5 Wed Aug 28 16:57:03 2003 230 - more doc fixes 231 2320.4 Thu Aug 07 17:22:12 2003 233 - fixed doc error (thanks Tajoli Zeno) 234 - fixed warnings that run under new Test::Harness. 235 - explicitly use IO::File 236 2370.3 Mon Jul 28 11:35:37 2003 238 - added asString() method to Net::OAI::Record::OAI_DC 239 - added oai-listrecords utility 240 - modified Makefile.PL to put oai-listsets and oai-listrecords in bin 241 2420.2 Tue Jul 08 09:59:34 2003 243 - updated docs 244 2450.1 Thu May 15 22:37:02 2003 246 - original version 247 248