Keystone-Resolver

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

1.23  Thu May  1 10:26:03 BST 2008
	- Same as 1.22, except that it is properly date-stamped.

1.22  (IN PROGRESS)
	- Oracle back-end now fully functional and tested, both with
	  the resolver itself and the Admin UI.  See db/README for
	  instructions on making a toy Oracle resource database, and
	  the top-level README for instructions on running the
	  test-suite against this.
	- Various changes to canonicalise the order of things like
	  equal-priority results in the XML returned from
	  resolve_to_xml(), required so that the same regression-test
	  suite can be used with both MySQL and Oracle.
	- Add a test-script that invokes the actual "resolve" script.
	  The absence of this was responsible for 1.20 going out while
	  "resolve" itself was still not making its own $resolver
	  object, while the various test-scripts were.
	- It is now mandatory to pass a $resolver into
	  OpenURL::newFromCGI(), since memory problems will always
	  result if it is allowed to allocate its own.
	- Change API of OpenURL::newFromCGI() to reflect mandatory
	  $resolver and better match the default constructor, new().
	- Add Makefile.PL dependency on Scalar::Util.pm

1.21  Thu Apr 10 15:23:53 BST 2008
	- URGENT BUGFIX RELEASE: the resolve script now makes its own
	  $resolver object rather than allowing newFromCGI() to make
	  one on its behalf.  This ensures that the resolver stays
	  referenced (not only by the OpenURL's weak reference) until
	  the resolution is complete.

1.20  Thu Apr 10 12:36:28 BST 2008
	- Changes to memory management: since the Resolver, Database,
	  OpenURL and  ContextObject classes all contain references
	  back and forth, the next of mutually referencing objects was
	  not getting destructed when it went out of scope, leading to
	  memory exhaustion in long-running processes such as Apache
	  servers under heavy load.  That is now fixed through the use
	  of weak references back to the "owning" objects.  Tests show
	  that resolving 50,000 OpenURLs does not cause noticable
	  process growth.
	- Changes to regression-test suite to facilitate running when
	  not connected to network.
	- Added new test script, admin.t, testing the code that
	  underlies the web-based admin interface.
	- Refactored database-access code in Database.pm, greatly
	  reducing the number of similar functions and unifying
	  logging.
	- Add support for the Serial Alias object type, both in the
	  code and in the Admin web UI.  (Admin support for this is
	  not very useful yet, since, as with other kinds of link,
	  there is no way to maintain the links between an alias
	  object and the serial that it is an alias of.)
	- Added low-level object-API support for the service-to-serial
	  and genre-to-servicetype link tables.  (There's no point in
	  wiring them into the Admin UI, since they contain no
	  information other than link IDs.)
	- Search-result listing in Admin web UI does not offer links
	  to sort on virtual fields.
	- Search-result listing in Admin web UI restored to being
	  valid XHTML 1.0.
	- Top-level "resolve" script runs within a scoped block, to
	  ensure that all local ("my") variables go out of scope when
	  the script ends, whatever Apache's memory management regime
	  may be.  This contributes to fixing a memory-exhaustion
	  problem.

1.19  Wed Mar 26 17:22:50 GMT 2008
	- Use the DBI module's connect_cached() method to pool similar
	  connections.  This is important when running the resolver as
	  a web-service, since (currently) each invocation makes a new
	  Resolver object, which in turn makes its own Database
	  object, which until this change made its own DBI
	  connection.  Due to Perl's lazy garbage-collection, each
	  Apache process can accumulate a lot of these connections
	  before they get tidied up, and when (as is usually the case)
	  many Apache processes are used, they can exhaust the
	  back-end database's connection pool.
	- Log-levels (as specified for example by the opt_loglevel
	  query parameter) can now be specified symbolically, as a
	  comma-separated list of level names, as well as numerically.
	- New logging level, LIFECYCLE, notes the creation and
	  destruction of Resolver, OpenURL and Database objects.
	- The DBI logging level can now also be set, using the
	  opt_dbi_trace query parameter.
	- New function LogLevel::num() that converts a logging-level
	  string into a numeric value, complementing the existing
	  label().  Both these functions now handle composite values
	  (e.g. CONVERT01|LIFECYCLE).
	- New test-script for log-level utility functions.
	- Add brief documentation of logging (doc/logging).
	- Option setting is now always done via the option() method
	  rather than, as previously at Resolver creation time, via
	  direct assignment.  This ensures that the logging-related
	  special cases are handled uniformly.
	- Add static_log() function (not method) to the Resolver
	  class, for use in contexts where no Resolver object is
	  available to invoke the method on.
	- Copies are included (web/htdocs/1cate-test/) of the KEV
	  context-objects that were part of Openly's OpenURL 1.0 test
	  suite.  These will be useful one day for local testing.
	- More explicit diagnostics for some database problems.
	- Steps towards support for Oracle as the back-end database:
	  NOT YET COMPLETE.

1.18  Mon Feb 11 11:05:16 GMT 2008
	- Add the ability to delete resource database objects from the
	  Admin UI.

1.17  Thu Feb  7 16:26:37 CET 2008
	- Fix character-set handling AGAIN :-) The resolver library
	  was correcting accepting any specified character encoding
	  and correctly outputting UTF-8 with the necessary XML and
	  HTML specifications to sayt that's what it was doing, but
	  the top level resolver script was telling Perl to do UTF-8
	  encoding on output.  (Why didn't that cause problems when
	  running under Apache 1/mod_perl 1?  Because of the
	  character-set faries.)
	- Generalise rewrite rule so that /resolve/<dbname> URLs are
	  correctly interpreted.  This provides an easy means for
	  running against alternative resource databases.



( run in 0.572 second using v1.01-cache-2.11-cpan-119454b85a5 )