The HoldingsPlugin must be executed as part of a 'record' chain, after the Pazpar2RelayPlugin.
The request syntax is thus that of a Pazpar2 record request. See Pazpar2 protocol
The response will likewise be a record document of the same format as a regular record from Pazpar2, but with holdings information added for each location.
This plug-in is configured in service-proxy.properties or equivalent.
The holdings plug-in must follow a plug-in that produces a Pazpar2 record, like the relay plug-in does.
It can choose to use a regular Pazpar2 record or an ACE record to pick up holdings for.
For example:
chains.record = relay,ace,holdings
holdings.PULL!PZ2_ACE_CLIENT = record # Needed if holdings are to picked # up from an ACE record holdings.PUSH!ACE_RESPONSE : record # Pushes the record response (which is NOT always # an ACE record anymore. Naming should be changed # here and downstream) holdings.TYPE!ACE_RESPONSE = org.w3c.dom.Document # Type of the above holdings.PAZPAR2_URL = REF:relay.PAZPAR2_URL # What URL to do record requests against. Should # be the same URL as the Relay plug-in uses # (thus the suggested REF: syntax)
In order to enable the Holdings plug-in to pick up holdings from an ACE record (which is not mandatory) the ACE plug-in must push the client, as in: ace.PUSH!PZ2_ACE_CLIENT = record ace.TYPE!PZ2_ACE_CLIENT = com.indexdata.serviceproxy.plugins.Pz2ProxyClient
holdings.RECORD_TIME_OUT = 1500 # How long the proxy waits for a record request to return # Optional, default 2000 msecs holdings.DUMP_RECORDS_TO_CONSOLE = true # For debugging # Optional, default false holdings.DUMP_TARGET_SETTINGS_TO_CONSOLE = false # For debugging # Optional, default false