Keystone-Resolver
view release on metacpan or search on metacpan
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.
- Fix sorting in Admin UI such that it works through
successive pages of results.
- When editing an object in the web-based Admin UI, drop-down
option lists that are populated from the database (e.g. the
service-types that a service can belong to) are now sorted.
- Fix a bug in editable_fields(), which was omitting from its
output those fields used as links to non-dependent sets
(e.g. the set of services implementing a service-type)
rather than dependent sets (e.g. the one service-type to
which a service belongs). The result of that bug was that,
for example, the raw numeric service_type_id was included on
the service editing page as well as the service-type name.
No more.
- The resolver now responds more politely if an attempt is
made to access a virtual site not supported by the database,
and points the user at a new README file that explains the
situation.
- The service_type table now includes a new "plugin" field
which can be used to explicitly specify the name of the Perl
plugin to use to implement services of that type, if the
required plugin is not named the same as the tag of the
service-type. This allows multiple service-types to share
the same plugin. (When this field is empty, the plugin
named after the service-type's tag is used, as before. Thus
the new field is only an override mechanism, and the new
arrangement is backwards compatible.)
- A database patch script is made available to support the
new service_type.plugin field: see db/updates/
- When building URIs from recipes, the resolver now,
correctly, accepts the first of several slash-separated
candidate fields whose value is defined and non-empty,
whereas before it would accept defined but empty values.
1.16 Tue Feb 5 02:57:05 GMT 2008
- Remove advisory dependency on Apache module from
Makefile.PL, as the true dependency is now on EITHER Apache
or Apache2, and there is no way to specify that in the
PREREQ_PM clause.
- Modification to how the sample database is built result in a
more flexible configuration.
- Both the resolver itself and the Admin UI issue more a
polite, informative message if the Resource Database is not
there.
- Documentation tweaks arising from merge of Apache2 CVS
branch back into head.
- README describes public CVS archive, Debian installation
procedure and service-names in the default resource
database.
( run in 2.332 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )