catalogue

Introduction to the catalogue

Functionality

Concepts

Architecture, Technology & code

Architecture

A number of Docker containers deployed to an EIP server or a Kubernetes cluster.

Containers:

Deployments:

Serverside Technology

Some of the major libraries used, build.gradle list all dependencies.

Testing

Mainly unit testing with JUnit, Mockito and Spring. Isolate one class and test. Some integration tests testing the whole application in the Browser and Rest API using Selenium.

Build Technology

Clientside technology

All dependencies are in bower.json, some of the major ones are:

Testing

Build Technology

Code

Spring Framework Concepts

Java packages

config

Directly instantiated components (Beans)

controllers

HTTP endpoints

converters

Conversion from XML to Java objects.

Annotation code to specify which Freemarker template to use to convert Java object to HTML, XML, etc

ef

Java classes representing Environmental Facilities i.e Activities, Facilities, Programmes, Networks

gemini

Java classes representing INSPIRE ISO19115 datasets and services

imp

Java classes representing IMP models and applications

indexing

Solr and Jena indexing - extracting data from the documentTypes to put into Solr index for searching or Jena for links between documents.

model

Classes representing catalogue wide information, general dumping ground for documentType classes without a home elsewhere.

ogc

Web Map Service (WMS) model code

postprocess

Adding information to the Java object in the HTTP request/response cycle. After the controller has retrieved the metadata document but before sent back to the client, adds things like citation information, uses services to add e.g. citation information and links to the object so can be used by Freemarker to render HTML, XML templates

publication

Controls how a metadata document can be moved through the publication workflow, i.e. draft -> pending -> published

quality

Metadata quality checker, applies rules to the metadata document especially Gemini documents, reports errors with the document

repository

How metadata documents are stored and retrieved from a Git repository

sa

Sample Archive model documents

Create search queries to send to Solr, format results returned from Solr

services

Lots of services that do stuff.

Decoupling the work of actually doing something from the HTTP code to ease testing and developer comprehension.

sparql

Retrieve vocabularies from a SPARQL endpoint like the UKCEH Vocabulary Service

upload

Upload data to the Storage Area Network (SAN), interacts with Hubbub to specify where files should be moved to.

util

stuff!

validation

Validates Gemini documents against the ISO19115 XSD schema

Solr

solr/documents/conf/managed-schema the Solr index configuration i.e what fields are indexed by the catalogue.

Client-side

less

LESS css for different catalogues, most just import style-ceh.less and change a few colours.

Apps