From 230866e79e68722673f71b078bac19805751f32c Mon Sep 17 00:00:00 2001 From: Jim Balhoff Date: Mon, 28 Mar 2022 14:23:00 -0400 Subject: [PATCH] Include git revision and ontology version IRI in status service. --- minerva-server/pom.xml | 20 +++++++++++++++++++ .../minerva/server/StartUpTool.java | 9 ++++++++- .../minerva/server/handler/StatusHandler.java | 9 ++++++++- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/minerva-server/pom.xml b/minerva-server/pom.xml index 03e7df10..bf7b21ea 100644 --- a/minerva-server/pom.xml +++ b/minerva-server/pom.xml @@ -11,6 +11,26 @@ + + pl.project13.maven + git-commit-id-plugin + 4.0.3 + + + git-commit-id + + revision + + validate + + false + + false + + + + + org.apache.maven.plugins maven-surefire-plugin diff --git a/minerva-server/src/main/java/org/geneontology/minerva/server/StartUpTool.java b/minerva-server/src/main/java/org/geneontology/minerva/server/StartUpTool.java index 8de4b403..afa8a6a3 100644 --- a/minerva-server/src/main/java/org/geneontology/minerva/server/StartUpTool.java +++ b/minerva-server/src/main/java/org/geneontology/minerva/server/StartUpTool.java @@ -21,7 +21,9 @@ import org.geneontology.minerva.server.validation.MinervaShexValidator; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.servlet.ServletContainer; +import org.semanticweb.owlapi.apibinding.OWLManager; import org.semanticweb.owlapi.model.*; +import org.semanticweb.owlapi.vocab.OWLRDFVocabulary; import owltools.cli.Opts; import owltools.gaf.eco.EcoMapperFactory; import owltools.gaf.eco.SimpleEcoMapper; @@ -303,8 +305,13 @@ public static Server startUp(final MinervaStartUpConfig conf) //grab ontology metadata and store for status service Map> ont_annos = new HashMap>(); + OWLDataFactory factory = OWLManager.getOWLDataFactory(); + OWLAnnotationProperty versionIRI = factory.getOWLAnnotationProperty(OWLRDFVocabulary.OWL_VERSION_IRI.getIRI()); for (OWLOntology ont : graph.getAllOntologies()) { - ont_annos.put(ont.getOWLOntologyManager().getOntologyDocumentIRI(ont), ont.getAnnotations()); + Set maybeVersionAnnotation = ont.getOntologyID().getVersionIRI().transform(iri -> factory.getOWLAnnotation(versionIRI, iri)).asSet(); + Set annotations = ont.getAnnotations(); + annotations.addAll(maybeVersionAnnotation); + ont_annos.put(ont.getOWLOntologyManager().getOntologyDocumentIRI(ont), annotations); } OWLOntology full_tbox = forceMergeImports(graph.getSourceOntology(), graph.getAllOntologies()); diff --git a/minerva-server/src/main/java/org/geneontology/minerva/server/handler/StatusHandler.java b/minerva-server/src/main/java/org/geneontology/minerva/server/handler/StatusHandler.java index 45170334..865b404a 100644 --- a/minerva-server/src/main/java/org/geneontology/minerva/server/handler/StatusHandler.java +++ b/minerva-server/src/main/java/org/geneontology/minerva/server/handler/StatusHandler.java @@ -9,6 +9,7 @@ import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import java.util.Map; +import java.util.Optional; import java.util.Set; @@ -24,6 +25,7 @@ public class StatusHandler { public class Status { public String startup_date = started_at; + public String gitRevision; // data configuration public String ontology; public String catalog; @@ -80,10 +82,15 @@ public Status(MinervaStartUpConfig conf) { this.sparqlEndpointTimeout = conf.sparqlEndpointTimeout; this.shexFileUrl = conf.shexFileUrl; this.goshapemapFileUrl = conf.goshapemapFileUrl; - + this.gitRevision = getManifestVersionEntry("git-revision-sha1").orElse("UNKNOWN"); } } + private static Optional getManifestVersionEntry(String key) { + String value = owltools.version.VersionInfo.getManifestVersion(key); + return Optional.ofNullable(value); + } + /** * @param ont_annos * @param started_at