Skip to content

Latest commit

 

History

History
112 lines (101 loc) · 5.63 KB

migration-dev-guide.md

File metadata and controls

112 lines (101 loc) · 5.63 KB

Geonetwork migration in Georchestra

This document aims to help simplify future migration for geonetwork in Georchestra.

Upgrade Process

Simplified guide

This is an ultra-simplified guide to be able to build an upgraded version of georchestra/geonetwork

  • Merge gn-core tag into georchestra/gn wanted branch. Resolve coflicts and get georchestra custom implementions (see below).
  • Copy folders config and data from web/src/main/webapp/WEB-INF/data/ into the repo geonetwork_minimal_datadir and create associated branch with new version name.
  • Build geonetwork (war, docker ...)
  • Delete wro4j cache if necessary (use ?debug can be sometimes useful)
  • Reindex records if necessary

A more detailed guide is available in upgrade_geonetwork.md.

Georchestra custom implementations

All versions in pom.xml files must be updated. E.g. for this version 4.4.5-georchestra. All italic folder just have the pom.xml change.

  • .github
    • workflows linux.yml mvn-dep-tree.yml sonarcloud.yml dependabot.yml are deleted. Only georchestra-gn4.yml is used
  • cachingxslt
  • common
    • ZipUtilTest.java : In assertExampleZip method, assertions which are supposed check folders must check with trailing slash too.
  • core
    • XslUtil.java: Implement georchestra header specific code
    • config-spring-geonetwork.xml : Implement context:property-placeholder for georchestra's datadir
    • src/test/resources/config-spring-geonetwork.xml: Add GeonetworkDataDirectory bean
    • cleanoutdatabase.sql: Delete from settings-ui at the end of the file
  • csw-server
    • CswFilter2Es.java : Keep {@} instead of %s until it is fixed upstream (not supporting some CSW request)
    • CswFilter2EsTest.java : Keep {@} instead of %s
    • SearchController.java : Keep {@} instead of %s with StringUtils.replace, try/catch around Element resultMD, to avoid csw server to crash issue core-gn 6940
  • docker
    • Mandatory, get everything from geOrchestra
  • docs
  • doi
  • domain
    • ExternalGroupLink.java : get file from geOrchestra
    • ExternalUserLink.java : get file from geOrchestra
    • Group.java : set column definition to TEXT (which is PostGreSQL specific) on description and logo
  • es
  • estest
  • events
  • georchestra-integration
    • Mandatory, get everything from geOrchestra
  • harvesters
  • healthmonitor
  • index
  • inspire-atom
  • jmeter
  • listeners
  • messaging
  • oaipmh
  • release
  • schemas
    • iso19139/layout/config-editor.xml: xlinks for contacts reenabled
  • schemas-test
  • sde
  • services
    • config-spring-geonetwork.xml: Implement context:property-placeholder for georchestra's datadir
    • MetadataExtentApiTest.java : Update image signatures if necessary (tests may fail see MetadataExtentApiTest-reference for image reference)
    • BatchOpsMetadatReindexerTest.java : Add PowerMockIgnore
    • pom.xml: version to update and to add to gn-services
    • LogUtils.java: Keep custom configuration in refreshLogConfiguration() method.
  • slave
  • web
    • src/docker: Mandatory, get everything from geOrchestra
    • main/filters/prod.properties: Session timeout variable updated
    • main/filters/java/org/fao/geonet/proxy: Mandatory, get everything from geOrchestra
    • data-db-default.sql : Some data to retrieve: setting-ui, inspire activated, georchestra name, (backported value) sitemapLinkUrl, xlinkresolver enabled by default
    • UpdateMetadataStatus.java: Some fixes
    • config-security.xml: Remove config security add start of file, get end of the file from georchestra.
    • config-geonetwork-georchestra.properties, config-georchestra-geonetwork-datadirs.xml, DKAN-to-ISO19115-3-2018.xsl, GeoIDE-services-OGC.xsl, udata-to-ISO19115-3-2018.xsl
      • Get files from georchestra
    • base-variables.xsl and base-layout.xsl
      • Get header from georchestra
    • defaultJdbcDataSource.xml: Implement context:property-placeholder for georchestra's db
    • config-spring-geonetwork.xml
      • Implement context:property-placeholder for georchestra's datadir
      • Don't forget to import config resource and logging bean
    • spring-servlet.xml: Implement context:property-placeholder for georchestra's datadir
    • postgres-postgis.xml Keep context:property-placeholder for georchestra's datadir
    • pom.xml: Update dockerGnDatadirScmVersion variable accordingly and remove font-awesome/css/ from packagingExclude
    • pom.xml: Keep exclusion of groovy package to avoid two versions of it.
  • web-ui
    • pom.xml: version to update and to add to gn-web-ui
    • CatController.js: Menu bar accessible
    • menu-signin.html: remove the authenticated from the ng-if in first ul tag.
    • src/main/resources/catalog/locales/
      • Get en-georchestra.json and fr-georchestra.json from georchestra
    • src/main/resources/catalog/style/gn-less: remove position fixed from .gn-top-bar to get gn header after georchestra's header.
    • gn_admin_default.less: Same (header position)
    • gn_navbar_default.less: Same (header position)
    • src/main/resources/catalog/views/georchestra/: Get files from georchestra
  • workers
  • wro4j
  • .gitignore
    • add idea and settings to it
  • pom.xml
    • Add georchestra-integration module, set db-type

Process used

4.2.4 -> 4.2.7

A branch has been created from core-geonetwork 4.2.7 tag and merged into georchestra-gn4.2.x. All conflicts files have been resolved with taking gn changes and not grochestra's one. Then changes have been reimplemented.