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