Skip to content

Proposal: Schema plugin improvement

François Prunayre edited this page Aug 20, 2014 · 19 revisions
Date 2014-08-20 Contacts Francois
Status In progress Release 3.0
Resources Available Ticket #
Source code https://github.com/fxprunayre/core-geonetwork/tree/improvement/schema-plugin-bean
Funding Wallonia region (metawal)

Overview

Currently, schema plugins are deployed in a GeoNetwork node by copying the folder in the schema_plugins directory. Therefore, some parts of the application expect to mainly deal with ISO19139 or ISO19139 profiles. Current schema plugin architecture cover most of the needs (viewing, editing, indexing, processing of metadata records) but some other aspects need improvements (eg. search for relations, multilingualism).

The current proposal add a Java bean for each schema plugins which will take care of some actions on the metadata which are currently only working with ISO19139 and are not pluggable with the current mechanism. There is no changes to the schema configuration folder. It only needs to be moved to a maven module. The bean provide support for custom:

Those changes will be required to add the ISO19115-3 plugin (https://github.com/geonetwork/schema-plugins/tree/master/iso19115-3).

Technical Details:

A new maven module named "schemas" is added. The following child modules are defined:

  • schema-core (depending on common): Define SchemaPlugin abstract class
  • one module for each schema plugins.

The schema module

Each schema plugin are migrated to a maven module having the following structure:

A schema plugin in the module

The schema plugin bean is optional and needs to be defined only if the plugin support features like association of resources, multilingualism ...

To register a new schema to the build:

When running the application using mvn jetty:run use the following to update schema to the running web application:

cd web
mvn process-resources

Proposal Type:

  • Type: architecture
  • Module: schema plugins

Voting History

  • Vote Proposed: TBA

Participants

  • All
Clone this wiki locally