Go to file
2024-11-28 13:47:58 +01:00
src MMKB-5027: improve old semver update handling 2024-11-28 13:47:58 +01:00
.gitignore MMKB-5027: Adapts magnolia update mechanism 2024-11-22 17:20:04 +01:00
pom.xml MMKB-5027: improve old semver update handling 2024-11-28 13:47:58 +01:00
Readme.md MMKB-5027: do some refactorings + tests 2024-11-25 15:04:22 +01:00

Synopsis

Maven Module um Magnolia Update Tasks auszuführen. Diese Update Tasks sind in ModuleUpdates gebundelt. Magnolia Bundles welche diese Funktionalität implementieren wollen, müssen IntranetUpdateModuleVersionHandler implementieren und als Version Handler setzten. In den meisten Fällen reicht es hierfür IntranetUpdateModuleVersionHandler#getModuleConfig() zu implementieren und ein Object von Typ IntranetUpdateModuleConfig zurückzugeben.

In IntranetUpdateModuleConfig können 3 Konfigurationen gesetzt werden:

  • List getInitialUpdateTasks()
    • Eine Liste von Tasks die bei einem ersten Startup ausgeführt werden sollen
  • String getYamlUpdateDir()
    • Filepath in von dem Bootstrap Yamls ausgelesen werden sollen
  • String getUpdateTaskPackage()
    • Java Package aus den Implementierungen von ModuleUpdate ausgelesen werden sollen

Module Update

Module Updates funktionieren hierbei genauso wie SimpleUpdates. Es gibt 3 verschiedene Arten von Tasks.

  • Generelle Tasks die ausgeführt werden sollen
  • Yaml Bootstrap Files
  • Tasks die nachdem Bootstrap ausgeführt werden sollen

Jedes ModuleUpdate File muss der folgenden NamingConvention entsprechen V<yyyyMMddHHmmss>_<SomeDescription>.java.

Allgemeine Funktionsweise

  1. Tasks aus List getInitialUpdateTasks() werden ausgeführt, falls das Module initial installiert wird
  2. ModuleUpdates werden über Reflection aus dem angegebenen Path initiiert und ausgeführt
    1. Sollte ein Task aus dem ModuleUpdate erfolgreich durchgeführt werden, dann wird ein Eintrag in JCR unter der Module Config in einem Version Node gespeichert
    2. Falls diese Version in diesem Task schon vorhanden ist, wird dieser Task ignoriert