About

Record Relay plugin defers Pazpar2 record commands with offset or checksum or binary parameters to later in the record chain. Subsequent plug-ins in the chain will thus be responsible for processing the command, i.e. run the record request against Pazpar2.

The plug-in is necessary to have on a record chain with ACE if record offset requests must also be supported, since ACE potentially changes both offsets and checksums of the record after the fact, in ways that cannot be known to or handled by the Relay plugin in advance.

A record chain with other plug-ins but no ACE should not need to use RecordRelay. At any rate the given plug-in would have to support running the record offset request when RecordRelay is enabled and only the ACE plug-in supports that at the time of writing.

The plug-in will let the general Relay plug-in handle all other record requests that do not have offset or checksum or binary parameters.

Protocol

command=record&id=some-rec-id&offset=0

command=record&id=some-rec-id&checksum=10101010

Configuration

This plug-in is configured in service-proxy.properties or equivalent. It generally needs the basic settings that the general Pazpar2 Relay plug-in uses. One way to accomplish that is to simply reference the general settings directly (see below)

Registration

Plugin class is registered with the following (name is arbitrary):

plugins.recordrelay = com.indexdata.serviceproxy.plugins.RecordRelayPlugin

Usage in chain

record = recordrelay,ace,holdings,contentproxy,statistics

Properties

Mandatory, no default

The record relay plug-in should use the properties of the general relay plug-in - for instance:

  recordrelay.PROXY_MODE = REF:relay.PROXY_MODE
  recordrelay.PAZPAR2_URL = REF:relay.PAZPAR2_URL
  recordrelay.PAZPAR2_SERVICE_ID = REF:relay.PAZPAR2_SERVICE_ID
  recordrelay.TORUS_BASEURL = REF:relay.TORUS_BASEURL
  recordrelay.TORUS_REALM = REF:relay.TORUS_REALM
  recordrelay.TORUS_PARAMS = REF:relay.TORUS_PARAMS
  recordrelay.STREAMBUFF_SIZE = REF:relay.STREAMBUFF_SIZE
  recordrelay.PARSE_RESPONSES = REF:relay.PARSE_RESPONSES
  recordrelay.SERIALIZE_REQUESTS = REF:relay.SERIALIZE_REQUESTS
  recordrelay.USE_OPAQUE_ID = REF:relay.USE_OPAQUE_ID