From 945632ea8070689996fe499bc2c32696eea2b5f5 Mon Sep 17 00:00:00 2001 From: Joachim Nielandt Date: Tue, 28 Apr 2026 14:23:53 +0200 Subject: [PATCH 1/6] upgrade to 4.4.10 --- README.md | 6 + core-geonetwork-patches/current.patch | 153 +++++++++++++------------- pom.xml | 2 +- utility/Dockerfile | 2 +- 4 files changed, 85 insertions(+), 78 deletions(-) diff --git a/README.md b/README.md index 14233a9b..1cb27b84 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,12 @@ Apply the [patches](core-geonetwork-patches) to the GeoNetwork core. You may nee git am --ignore-space-change --ignore-whitespace --reject --whitespace=fix schemas/dcat-ap/core-geonetwork-patches/*.patch ``` +These patches were generated using `git format-patch -1` after including the necessary changes in one commit. If `core-geonetwork` would clash with the patches, they need to be regenerated: +- After running the above `git am` command, `.json.rej` are generated +- Make sure the unapplied changes are aligned with the new codebase +- Make a new commit that contains all changes generated by the patches and the above fixes +- Generate a new patch using `git format-patch -1`, update the patch file and commit it to `main` + Build and run the application following the [Software Development Documentation](https://github.com/geonetwork/core-geonetwork/tree/main/software_development). You'll need to have Java JDK 11 and [Maven](https://maven.apache.org/install.html) installed. diff --git a/core-geonetwork-patches/current.patch b/core-geonetwork-patches/current.patch index cb30de5c..bf4f5ce7 100644 --- a/core-geonetwork-patches/current.patch +++ b/core-geonetwork-patches/current.patch @@ -1,7 +1,7 @@ -From da9167b24b2a92fc57deaaf7c0c2d3ea5a9c958e Mon Sep 17 00:00:00 2001 -From: Mathieu Chaussier -Date: Thu, 20 Jun 2024 09:48:09 +0200 -Subject: [PATCH] Patch core for DCAT2 plugin +From c6b1547fa1937d92e78db1d5280348066f95ca16 Mon Sep 17 00:00:00 2001 +From: joachimnielandt +Date: Tue, 28 Apr 2026 15:45:57 +0200 +Subject: [PATCH] Patch for 4.4.10 --- .../geonet/kernel/search/EsSearchManager.java | 1 + @@ -12,36 +12,36 @@ Subject: [PATCH] Patch core for DCAT2 plugin .../plugin/iso19139/index-fields/index.xsl | 71 ++++++++++++++++ .../fao/geonet/api/records/MetadataUtils.java | 22 +++-- .../resources/catalog/locales/en-admin.json | 5 +- - .../resources/catalog/locales/fr-admin.json | 5 +- - .../resources/catalog/locales/nl-admin.json | 5 +- + .../resources/catalog/locales/fr-admin.json | 7 +- + .../resources/catalog/locales/nl-admin.json | 7 +- .../templates/admin/harvest/type/csw.html | 17 ++++ .../templates/admin/harvest/type/csw.js | 4 +- .../admin/harvest/type/geonetwork.html | 16 ++++ .../admin/harvest/type/geonetwork.js | 4 +- .../main/webapp/xsl/xml/harvesting/csw.xsl | 3 + .../webapp/xsl/xml/harvesting/geonetwork.xsl | 3 + - 16 files changed, 250 insertions(+), 14 deletions(-) + 16 files changed, 252 insertions(+), 16 deletions(-) diff --git a/core/src/main/java/org/fao/geonet/kernel/search/EsSearchManager.java b/core/src/main/java/org/fao/geonet/kernel/search/EsSearchManager.java -index 432ae3a101..d56f80fe80 100644 +index 204d491..a52e269 100644 --- a/core/src/main/java/org/fao/geonet/kernel/search/EsSearchManager.java +++ b/core/src/main/java/org/fao/geonet/kernel/search/EsSearchManager.java -@@ -120,6 +120,7 @@ public class EsSearchManager implements ISearchManager { +@@ -122,6 +122,7 @@ public class EsSearchManager implements ISearchManager { .add(Geonet.IndexFieldNames.RESOURCEABSTRACT) .add(Geonet.IndexFieldNames.RESOURCEABSTRACT + "Object") .add("operatesOn") + .add("rdfResourceIdentifier") .build(); - + FIELDLIST_RELATED = ImmutableSet.builder() diff --git a/core/src/main/java/org/fao/geonet/util/XslUtil.java b/core/src/main/java/org/fao/geonet/util/XslUtil.java -index 067d3cc4b8..5f1077654f 100644 +index 4e8d5bb..c343754 100644 --- a/core/src/main/java/org/fao/geonet/util/XslUtil.java +++ b/core/src/main/java/org/fao/geonet/util/XslUtil.java @@ -23,6 +23,7 @@ - + package org.fao.geonet.util; - + +import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.elasticsearch.core.search.Hit; import com.fasterxml.jackson.core.JsonProcessingException; @@ -70,8 +70,8 @@ index 067d3cc4b8..5f1077654f 100644 import org.fao.geonet.schema.iso19139.ISO19139Namespaces; import org.fao.geonet.utils.Log; import org.fao.geonet.utils.Xml; -@@ -1622,4 +1622,80 @@ public final class XslUtil { - +@@ -1637,4 +1637,80 @@ public final class XslUtil { + return webAnalyticsConfiguration.getJavascriptCode(); } + @@ -152,7 +152,7 @@ index 067d3cc4b8..5f1077654f 100644 + } } diff --git a/domain/src/main/java/org/fao/geonet/repository/HarvesterSettingRepository.java b/domain/src/main/java/org/fao/geonet/repository/HarvesterSettingRepository.java -index c28295c8b6..88bfc88c97 100644 +index c28295c..88bfc88 100644 --- a/domain/src/main/java/org/fao/geonet/repository/HarvesterSettingRepository.java +++ b/domain/src/main/java/org/fao/geonet/repository/HarvesterSettingRepository.java @@ -74,4 +74,15 @@ public interface HarvesterSettingRepository extends GeonetRepository { @@ -181,17 +181,17 @@ index 6c62c9a34d..af1f4a3061 100644 harvesterSettingsManager.add("id:" + siteId, "sortBy", params.sortBy); + // DCAT custom + harvesterSettingsManager.add("id:" + siteId, "resourceUriPattern", params.resourceUriPattern); - + //--- store dynamic filter nodes String filtersID = harvesterSettingsManager.add(path, "filters", ""); diff --git a/harvesters/src/main/java/org/fao/geonet/kernel/harvest/harvester/csw/CswParams.java b/harvesters/src/main/java/org/fao/geonet/kernel/harvest/harvester/csw/CswParams.java -index 624a62e0f8..e5f677c8b6 100644 +index 624a62e..e5f677c 100644 --- a/harvesters/src/main/java/org/fao/geonet/kernel/harvest/harvester/csw/CswParams.java +++ b/harvesters/src/main/java/org/fao/geonet/kernel/harvest/harvester/csw/CswParams.java @@ -53,6 +53,9 @@ public class CswParams extends AbstractParams { - + public Integer hopCount; - + + // DCAT custom + public String resourceUriPattern; + @@ -199,36 +199,36 @@ index 624a62e0f8..e5f677c8b6 100644 * The filter is a process (see schema/process folder) which depends on the schema. It could be * composed of parameter which will be sent to XSL transformation using the following syntax : @@ -105,6 +108,8 @@ public class CswParams extends AbstractParams { - + bboxFilter = node.getChild("bboxFilter"); - + + // DCAT custom + resourceUriPattern = Util.getParam(site, "resourceUriPattern", ""); } - + /** @@ -136,6 +141,9 @@ public class CswParams extends AbstractParams { } - + bboxFilter = node.getChild("bboxFilter"); + + // DCAT custom + resourceUriPattern = Util.getParam(site, "resourceUriPattern", ""); } - + /** @@ -159,6 +167,9 @@ public class CswParams extends AbstractParams { copy.eltFilters = eltFilters; copy.bboxFilter = bboxFilter; - + + // DCAT custom + copy.resourceUriPattern = resourceUriPattern; + return copy; } - + diff --git a/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl b/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl -index 106ea2a6b5..edcc4efc63 100644 +index 106ea2a..edcc4ef 100644 --- a/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl +++ b/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl @@ -31,6 +31,7 @@ @@ -242,7 +242,7 @@ index 106ea2a6b5..edcc4efc63 100644 @@ -72,6 +73,8 @@ - + + + @@ -322,7 +322,7 @@ index 106ea2a6b5..edcc4efc63 100644 + diff --git a/services/src/main/java/org/fao/geonet/api/records/MetadataUtils.java b/services/src/main/java/org/fao/geonet/api/records/MetadataUtils.java -index 8660f17c83..f3541590ff 100644 +index 8660f17..f354159 100644 --- a/services/src/main/java/org/fao/geonet/api/records/MetadataUtils.java +++ b/services/src/main/java/org/fao/geonet/api/records/MetadataUtils.java @@ -61,6 +61,7 @@ import org.fao.geonet.repository.MetadataValidationRepository; @@ -367,55 +367,56 @@ index 8660f17c83..f3541590ff 100644 && (type == RelatedItemType.siblings || type == RelatedItemType.parent diff --git a/web-ui/src/main/resources/catalog/locales/en-admin.json b/web-ui/src/main/resources/catalog/locales/en-admin.json -index 4657a67f7e..8e5fc1d86d 100644 +index ad660ca..a59f5ef 100644 --- a/web-ui/src/main/resources/catalog/locales/en-admin.json +++ b/web-ui/src/main/resources/catalog/locales/en-admin.json -@@ -1610,6 +1610,9 @@ - "datahubEnabled": "Enable Datahub interface for this portal", - "datahubInfo": "This Datahub interface is accessible here.", - "datahubPluginNotInstalled-help": "The Datahub plugin is not installed. Please refer to the related documentation for more information on installation and usage.", -- "harvesterErrorRetrieveSources": "Error retrieving remote catalogs" -+ "harvesterErrorRetrieveSources": "Error retrieving remote catalogs", +@@ -1638,5 +1638,8 @@ + "anonymousAccessList": "Anonymous access list to unpublished records", + "anonymousAccessListDelete": "Revoke access", + "anonymousAccessListEmpty": "No anonymous access to display", +- "anonymousAccessDeleted": "Anonymous access revoked" ++ "anonymousAccessDeleted": "Anonymous access revoked", + "==== DCAT CUSTOM ====": "", + "resourceUriPattern": "Resource URI pattern", + "resourceUriPatternHelp": "Pattern used to generate URI of the resources during the RDF export. Example of value: https://metadata.vlaanderen.be/srv/resources/{resourceType}/{resourceUuid}" } - diff --git a/web-ui/src/main/resources/catalog/locales/fr-admin.json b/web-ui/src/main/resources/catalog/locales/fr-admin.json -index 97d05fd585..b30f8c94a0 100644 +index d720f9c..99e88df 100644 --- a/web-ui/src/main/resources/catalog/locales/fr-admin.json +++ b/web-ui/src/main/resources/catalog/locales/fr-admin.json -@@ -1610,5 +1610,8 @@ - "datahubEnabled": "Activer le Datahub pour ce portail", - "datahubInfo": "L'interface du Datahub est accessible ici.", - "datahubPluginNotInstalled-help": "Le plugin d'intégration du Datahub n'est pas installé. Veuillez consulter la documentation associée pour plus d'informations sur l'installation et l'utilisation de ce plugin.", -- "harvesterErrorRetrieveSources": "Erreur lors de la récupération des catalogues distants" -+ "harvesterErrorRetrieveSources": "Erreur lors de la récupération des catalogues distants", +@@ -1638,5 +1638,8 @@ + "anonymousAccessList": "Anonymous access list to unpublished records", + "anonymousAccessListDelete": "Revoke access", + "anonymousAccessListEmpty": "No anonymous access to display", +- "anonymousAccessDeleted": "Anonymous access revoked" +-} +\ No newline at end of file ++ "anonymousAccessDeleted": "Anonymous access revoked", + "==== DCAT custom ====": "", + "resourceUriPattern": "Patterne de l'URI des resources", + "resourceUriPatternHelp": "Patterne utilisé pour générer les URI des resources lors de l'export RDF. Exemple de valeur: https://metadata.vlaanderen.be/srv/resources/{resourceType}/{resourceUuid}" - } -\ No newline at end of file ++} diff --git a/web-ui/src/main/resources/catalog/locales/nl-admin.json b/web-ui/src/main/resources/catalog/locales/nl-admin.json -index 1422dbfddd..89cafd7564 100644 +index 6635938..df91d2a 100644 --- a/web-ui/src/main/resources/catalog/locales/nl-admin.json +++ b/web-ui/src/main/resources/catalog/locales/nl-admin.json -@@ -1610,5 +1610,8 @@ - "datahubEnabled": "Enable Datahub interface for this portal", - "datahubInfo": "This Datahub interface is accessible here.", - "datahubPluginNotInstalled-help": "The Datahub plugin is not installed. Please refer to the related documentation for more information on installation and usage.", -- "harvesterErrorRetrieveSources": "Error retrieving remote catalogs" -+ "harvesterErrorRetrieveSources": "Error retrieving remote catalogs", -+ "==== DCAT custom ====": "", -+ "resourceUriPattern": "Resource URI pattern", -+ "resourceUriPatternHelp": "Pattern gebruikt om URI van de bronnen te genereren tijdens de RDF export. Bv: https://metadata.vlaanderen.be/srv/resources/{resourceType}/{resourceUuid}" - } +@@ -1638,5 +1638,8 @@ + "anonymousAccessList": "Lijst van niet-gepubliceerde records met anonieme toegang", + "anonymousAccessListDelete": "Toegang intrekken", + "anonymousAccessListEmpty": "Geen anonieme toegang gevonden", +- "anonymousAccessDeleted": "Anonieme toegang ingetrokken" +-} \ No newline at end of file ++ "anonymousAccessDeleted": "Anonieme toegang ingetrokken", ++ "==== DCAT custom ====": "", ++ "resourceUriPattern": "Resource URI patroon", ++ "resourceUriPatternHelp": "Patroon gebruikt om URI van de bronnen te genereren tijdens de RDF export. Bv: https://metadata.vlaanderen.be/srv/resources/{resourceType}/{resourceUuid}" ++} diff --git a/web-ui/src/main/resources/catalog/templates/admin/harvest/type/csw.html b/web-ui/src/main/resources/catalog/templates/admin/harvest/type/csw.html -index 03bee12552..827103ef87 100644 +index 048ebc0..5570d35 100644 --- a/web-ui/src/main/resources/catalog/templates/admin/harvest/type/csw.html +++ b/web-ui/src/main/resources/catalog/templates/admin/harvest/type/csw.html -@@ -337,6 +337,23 @@ +@@ -366,6 +366,23 @@ data-lang="{{lang}}" data-label="csw-category" > @@ -437,13 +438,13 @@ index 03bee12552..827103ef87 100644 +

resourceUriPatternHelp

+ - +
' + h.site.sortBy + '' + ' ' + h.site.queryScope + '' + ' ' + h.site.hopCount + '' @@ -462,7 +463,7 @@ index bc6eb3e163..e126119172 100644 + gnHarvestercsw.buildResponseCSWBBOXFilter($scope) + gnHarvestercsw.buildResponseCSWFilter($scope) diff --git a/web-ui/src/main/resources/catalog/templates/admin/harvest/type/geonetwork.html b/web-ui/src/main/resources/catalog/templates/admin/harvest/type/geonetwork.html -index d7a36ee29a..c47ddc3f57 100644 +index d7a36ee..c47ddc3 100644 --- a/web-ui/src/main/resources/catalog/templates/admin/harvest/type/geonetwork.html +++ b/web-ui/src/main/resources/catalog/templates/admin/harvest/type/geonetwork.html @@ -266,6 +266,22 @@ @@ -486,10 +487,10 @@ index d7a36ee29a..c47ddc3f57 100644 +

resourceUriPatternHelp

+
- +
diff --git a/web-ui/src/main/resources/catalog/templates/admin/harvest/type/geonetwork.js b/web-ui/src/main/resources/catalog/templates/admin/harvest/type/geonetwork.js -index 8ca175afcd..a3c9441323 100644 +index 8ca175a..a3c9441 100644 --- a/web-ui/src/main/resources/catalog/templates/admin/harvest/type/geonetwork.js +++ b/web-ui/src/main/resources/catalog/templates/admin/harvest/type/geonetwork.js @@ -21,7 +21,8 @@ var gnHarvestergeonetwork = { @@ -511,10 +512,10 @@ index 8ca175afcd..a3c9441323 100644 + ' ' + ' ' diff --git a/web/src/main/webapp/xsl/xml/harvesting/csw.xsl b/web/src/main/webapp/xsl/xml/harvesting/csw.xsl -index afbd470d75..33b6e31d5b 100644 +index 7030f76..1c3a27c 100644 --- a/web/src/main/webapp/xsl/xml/harvesting/csw.xsl +++ b/web/src/main/webapp/xsl/xml/harvesting/csw.xsl -@@ -31,6 +31,9 @@ +@@ -37,6 +37,9 @@ @@ -522,10 +523,10 @@ index afbd470d75..33b6e31d5b 100644 + +
- - + + diff --git a/web/src/main/webapp/xsl/xml/harvesting/geonetwork.xsl b/web/src/main/webapp/xsl/xml/harvesting/geonetwork.xsl -index ecfc880f24..db96a7ca0d 100644 +index ecfc880..db96a7c 100644 --- a/web/src/main/webapp/xsl/xml/harvesting/geonetwork.xsl +++ b/web/src/main/webapp/xsl/xml/harvesting/geonetwork.xsl @@ -22,6 +22,9 @@ @@ -536,8 +537,8 @@ index ecfc880f24..db96a7ca0d 100644 + + - + --- -2.51.0 +-- +2.53.0 diff --git a/pom.xml b/pom.xml index 9d653d08..455278ff 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.9-0 + 4.4.10-0 4.0.0 diff --git a/utility/Dockerfile b/utility/Dockerfile index 2e99134c..fdc7361a 100644 --- a/utility/Dockerfile +++ b/utility/Dockerfile @@ -1,4 +1,4 @@ -ARG GN_VERSION=4.4.9 +ARG GN_VERSION=4.4.10 FROM geonetwork:${GN_VERSION} USER jetty From 2e0ac6fbcbb780df9b7533e1bdac4b28878b276c Mon Sep 17 00:00:00 2001 From: Francois Prunayre Date: Mon, 15 Jun 2026 14:30:18 +0200 Subject: [PATCH 2/6] Update to 4.4.11. --- pom.xml | 2 +- utility/Dockerfile | 2 +- utility/docker-compose.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 455278ff..4edff67a 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.10-0 + 4.4.11-0 4.0.0 diff --git a/utility/Dockerfile b/utility/Dockerfile index fdc7361a..6c2e9889 100644 --- a/utility/Dockerfile +++ b/utility/Dockerfile @@ -1,4 +1,4 @@ -ARG GN_VERSION=4.4.10 +ARG GN_VERSION=4.4.11 FROM geonetwork:${GN_VERSION} USER jetty diff --git a/utility/docker-compose.yml b/utility/docker-compose.yml index 2569a9fd..9c35cb8c 100644 --- a/utility/docker-compose.yml +++ b/utility/docker-compose.yml @@ -15,7 +15,7 @@ services: retries: 5 elasticsearch: - image: elasticsearch:8.14.3 + image: elasticsearch:8.19.13 container_name: es ports: - "9200:9200" From af2881f81f1855e739fd3b6707ad14b4d53f2ac7 Mon Sep 17 00:00:00 2001 From: Francois Prunayre Date: Mon, 15 Jun 2026 16:03:40 +0200 Subject: [PATCH 3/6] Indexing / Handle case where multiple field use the thesaurus picker but with various context. eg. Avoid: Error on line 386 of index.xsl: XPTY0004: A sequence of more than one item is not allowed as the second argument of java:getKeywordValueByUri() ("external.theme.oslo-datastanda...", "external.theme.mobility-data-s...") --- .../plugin/dcat-ap/index-fields/index.xsl | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/plugin/dcat-ap/index-fields/index.xsl b/src/main/plugin/dcat-ap/index-fields/index.xsl index 57ba9045..14438933 100644 --- a/src/main/plugin/dcat-ap/index-fields/index.xsl +++ b/src/main/plugin/dcat-ap/index-fields/index.xsl @@ -366,8 +366,34 @@ Keyword values are pulled from the thesaurus defined in the editor. --> - - + + + + + + + + + + + + + + + @@ -381,6 +407,7 @@ [ + { "default": "", From c519f323fbe89a2fc1d548d278791f4e268b2911 Mon Sep 17 00:00:00 2001 From: Francois Prunayre Date: Mon, 15 Jun 2026 17:00:53 +0200 Subject: [PATCH 4/6] Update to 4.4.11 / Update patch. --- core-geonetwork-patches/current.patch | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core-geonetwork-patches/current.patch b/core-geonetwork-patches/current.patch index bf4f5ce7..016e42f6 100644 --- a/core-geonetwork-patches/current.patch +++ b/core-geonetwork-patches/current.patch @@ -385,13 +385,13 @@ index d720f9c..99e88df 100644 --- a/web-ui/src/main/resources/catalog/locales/fr-admin.json +++ b/web-ui/src/main/resources/catalog/locales/fr-admin.json @@ -1638,5 +1638,8 @@ - "anonymousAccessList": "Anonymous access list to unpublished records", - "anonymousAccessListDelete": "Revoke access", - "anonymousAccessListEmpty": "No anonymous access to display", -- "anonymousAccessDeleted": "Anonymous access revoked" + "anonymousAccessList": "Liste des accès anonymes aux fiches non publiées", + "anonymousAccessListDelete": "Révoquer l'accès", + "anonymousAccessListEmpty": "Aucun accès anonyme à afficher", +- "anonymousAccessDeleted": "Accès anonyme révoqué" -} \ No newline at end of file -+ "anonymousAccessDeleted": "Anonymous access revoked", ++ "anonymousAccessDeleted": "Accès anonyme révoqué", + "==== DCAT custom ====": "", + "resourceUriPattern": "Patterne de l'URI des resources", + "resourceUriPatternHelp": "Patterne utilisé pour générer les URI des resources lors de l'export RDF. Exemple de valeur: https://metadata.vlaanderen.be/srv/resources/{resourceType}/{resourceUuid}" From e7f3611e05fa5cfd830d3e7eefb6f149da623d02 Mon Sep 17 00:00:00 2001 From: Francois Prunayre Date: Mon, 15 Jun 2026 17:10:24 +0200 Subject: [PATCH 5/6] Update to 4.4.11 / Update docker user. --- utility/Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/utility/Dockerfile b/utility/Dockerfile index 6c2e9889..99a545bd 100644 --- a/utility/Dockerfile +++ b/utility/Dockerfile @@ -1,8 +1,6 @@ ARG GN_VERSION=4.4.11 FROM geonetwork:${GN_VERSION} -USER jetty - # Remove the existing vanilla GeoNetwork RUN rm -rf /opt/geonetwork/* From 4548dbc242a47c918513b3883d607e2463885b81 Mon Sep 17 00:00:00 2001 From: Francois Prunayre Date: Mon, 15 Jun 2026 17:43:47 +0200 Subject: [PATCH 6/6] Update to 4.4.11 / Update tomcat config to run as ROOT context. --- utility/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utility/docker-compose.yml b/utility/docker-compose.yml index 9c35cb8c..f0f2c374 100644 --- a/utility/docker-compose.yml +++ b/utility/docker-compose.yml @@ -55,7 +55,7 @@ services: timeout: 5s retries: 20 environment: - WEBAPP_CONTEXT_PATH: / + WEBAPP_CONTEXT_PATH: /ROOT GEONETWORK_DB_TYPE: postgres GEONETWORK_DB_HOST: database GEONETWORK_DB_PORT: 5432