2020.06 2021.06

Das Konfigurationsverzeichnis

MyCoRe sucht seine Konfigurationen invordefinierten Verzeichnissen. Dies wird hier beschieben.

Das Basisverzeichnis

Da MyCoRe sowohl als Web-Applikation wie auch als Commandline-Tool (parallel zueinander) arbeiten kann, muss zwischen beiden Anwendungsteilen eine gemeinsame Konfiguration vorhanden sein. Hierfüpr haben die Entwickler die nachfolgenden Festlegungen getroffen.

Über das System-Property MCR.Home kann beim Start der MyCoRe-CLI bzw. des Servlet-Containers gesetzt werden. Damit wird das Konfigurations-Basisverzeichnis für die Anwendung expizit festgelegt.

Im Normalfall ist dies jedoch nicht erforderlich, da MyCoRe ein Standardverhalten mitbringt. Ist das Property MCR.Home nicht gesetzt, So wird geschaut, unter welchem OS die Anwendung läuft.

Für Windows

Unter Windows wird das Property LOCALAPPDATA verwendet. Ist dies nicht gesetzt, wird der Wert aus user.home verwendet. In diesem Directory wird als Grundverzeichnis für alle so konfigurierten Anwendungen das Verzeichnis MyCoRe angelegt.

Für Linux

Unter Linux wird der Wert von user.home verwendet. In diesem Directory wird als Grundverzeichnis für alle so konfigurierten Anwendungen das Verzeichnis .mycore angelegt.

Das Applikationsverzeichnis

Unterhalb des Basisverzeichnisses wird nun für jede Anwendung ein Konfigurationsverzeichnis bereitgestellt, welches lokale Konfigurationen der Applikation enthält. Dieses Verzeichnis wird in der Form {prefix+'-'}{appName} gebildet. Dabei kann der prefix weggelassen werden. Die Werte für prefix und appName kommen aus folgenden Konfigurations-Properties:

  • {prefix} can be defined by setting System property MCR.DataPrefix
  • {appName} is always lowercase String determined using this
    1. System property MCR.AppName
    2. System property MCR.NameOfProject
    3. Servlet Context Path (if not root context, {@link ServletContext#getContextPath()})
    4. Servlet Context Name ({@link ServletContext#getServletContextName()}) with space characters removed
    5. base name of jar including this class
    6. the String "default"

Das Verzeichniss kann über das System property MCR.ConfigDir, unabhängig von {prefix} und {appName} festgelegt werden.

Struktur für eine Anwendung

Im oben beschriebene Konfigurationsverzeichnis der Anwendung könne nun lokale Änderungen abgelegt werden. Daneben speichert MyCoRe hier noch einige generierte Daten. Siehe dazu auch den Abschnitt zu MIR .

Generierte Daten

Achtung: diese Dateien dürfen nicht geändert werden!

  • mycore.active (nicht bearbeiten!) listet alle verfügbaren (aktiven) Properties inkl. Kommentaren dazu und kann somit als Vorlage zur Übernahme in die eigenen Properties dienen
  • mycore.resolved (nicht bearbeiten!) die aufgelösten Properties, wie sie in der laufenden Anwendung genutzt werden
  • messages_{lang}.resolved.properties enthält I18N Übersetzungen

Eigene Daten

In dem Verzeichnis könne wie beschieben auch Konfigurationen abgelegt werden, die beim Start von MyCoRe Beachtung finden

  • mycore.properties enthält die lokalen Konfigurationen wie SOLR-URL usw.
  • jwt.secret enthält den Schlüssel für der REST-Authentifizierung und kann mit openssl rand 4096 > jwt.secret erzeugt werden.
  • lib ist das Verzeichnis für zusätzliche Bibliotheken wie z. B. Datenbanktreiber