wiki:proposals/VirtualCSW

Version 3 (modified by josegar74, 13 years ago) ( diff )

--

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
  • 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
Note: See TracWiki for help on using the wiki.