Virtual CSW endpoints
Date | 2011/11/17 |
Contact(s) | Jose García |
Last edited | |
Status | done |
Assigned to release | 2.7.0 |
Resources | Available |
Ticket # | #660 |
Overview
This proposal aim to add the capability to define custom CSW entry points that applies extra criteria to the CSW request. A useful use case is to define an INSPIRE CSW endpoint to deliver only the INSPIRE related metadata stored in the catalog.
Proposal Type
- Type: Core Change
- App: GeoNetwork
- Module: CSW server
Links
- Documents:
- Email discussions:
- Other wiki discussions:
Voting History
- Vote proposed by Jose García on 2011/11/17, result was +1 Francois, Simon, Jeroen
Motivations
A use case of this proposal is to allow define an INSPIRE CSW end-point to deliver only the INSPIRE related metadata stored in the catalog. Other use cases can be useful to create CSW end-points for metadata related to specific theme/s: climate, boundaries, etc.
Proposal
Add the capability to have custom CSW entry points that apply extra criteria to the CSW request. A new CSW service entry point is defined in a configuration file config-csw-servers.xml
using the following syntax:
<service name="csw-with-my-filter"> <class name=".services.main.CswDispatcher" > <param name="filter" value="+inspirerelated:on +themekey:environment"/> </class> </service>
The "filter" parameter value is the filter to apply to Lucene query using Lucene query syntax ( http://lucene.apache.org/java/2_9_1/queryparsersyntax.html). Allows OR and AND operators.
The "filter" is applied in these CSW operations:
- GetRecords
- GetRecordById
- GetDomain
- GetCapabilities (keywords section)
It's possible to define several services for CSW end-points that apply different filter criteria:
<service name="csw-with-my-filter-environment"> <class name=".services.main.CswDispatcher" > <param name="filter" value="+inspirerelated:on +themekey:environment"/> </class> </service> <service name="csw-with-my-filter-climate"> <class name=".services.main.CswDispatcher" > <param name="filter" value="+inspirerelated:on +themekey:climate"/> </class> </service>
Adding new services require:
- Create the service definition in a configuration file
config-csw-servers.xml
with the custom filter criteria. - Define permissions for the service in
user-profiles.xml
file. - Restart of the application.
The issue #660 contains a patch to review with the implementation of this proposal.
Backwards Compatibility Issues
The default CSW endpoint behavior is not changed, working as in actual version.
Risks
Participants
- Francois Prunayre
- Heikki Doeleman
- Jose García
Funded by EEA