Dieser Abschnitt beschreibt von MyCoRe bereitgestellte Komponenten und Werkzeuge, die die Entwicklung vereinfachen sollen.
Der Developer-Modus bietet die Möglichkeit, verschiedene Ressourcen zur Laufzeit zu überschreiben, ohne MyCoRe oder die Anwendung neu zu bauen.
Zusammengefasst sieht eine mögliche Konfiguration z.B. für die Viewer- und MIR-Entwicklung wie folgt aus:
|
|
Im Property MCR.Developer.Resource.Override
kann eine Liste von Ordnern angegeben werden,
die beim Laden der Template- und Konfigurationsdateien zuerst ausgelesen werden.
Dadurch ist es möglich, Templates zu editieren und die Änderungen unmittelbar (ohne erneutes Kompilieren
und Bauen der JAR-Datei) in der gestarteten Anwendung zu nutzen. Gleich benannte Templates in den JAR-Dateien
werden überschrieben. Die Pfade die als erstes aufgelistet werden haben eine höhere Priorität.
Das Überschreiben von Ressourcen funktioniert für folgende Ressource-Typen:
Damit das Überschreiben von XSL-Stylesheets funktioniert, muss mittels MCR.UseXSLTemplateCache=false
das Caching der XSLT-Templates deaktiviert und mit MCR.LayoutService.LastModifiedCheckPeriod=0
das Caching für den Layout-Service ausgeschaltet werden.
Im MyCoRe-Standardbetrieb werden Sass-Stylesheets nur einmal in CSS übersetzt und das Ergebnis gespeichert.
Wünscht man eine permanente CSS-Übersetzung, kann man mit mit MCR.SASS.DeveloperMode=true
den Sass-Entwickler-Modus einschalten.
Diese Properties sollten nur im Entwicklungssystem und nicht im Produktivsystem gesetzt werden!!!
Der beste Ort dafür ist die mycore.properties
-Datei im
Benutzerverzeichnis des Entwicklungssystems.
Um die Developer-Kommandos nutzen zu können, müssen diese in der Konfiguration eingebunden werden:
|
|
show message {0} for {1}
show all messages for {0}
, zeigt aber nur den Schlüssel und Wert dessen Schlüssel mit dem als
{1}
gegebenem Wert übereinstimmt.
show messages {0} for {1}
show all messages for {0}
, zeigt aber nur die Schlüssel und Werte deren Schlüssel
mit dem als {1}
gegebenem Wert beginnen.
show all messages for {0}
{0}
gegebene Sprache verwendeten Werte.
Dies erspart einen Blick in die Datei messages_XX.resolved.properties
.
show property {0}
show all properties
, zeigt aber nur das Schlüssel-Werte-Paar, dessen Schlüssel mit dem als
{0}
gegebenem Wert übereinstimmt.
show properties {0}
show all properties
, zeigt aber nur die Schlüssel-Werte-Paare, deren Schlüssel mit dem als
{0}
gegebenen Wert beginnen.
show all properties
mycore.resolved.properties
und berücksichtigt auch zur Laufzeit getätigte Änderungen der Konfiguration.
check permission {0} on {1} as {2}
{2}
das gegebene Recht {0}
für das gegebene Ziel {1}
hat.
Der Nutzer wird dabei mit dem MCRUserInformationResolver
ermittelt (z.B. system:JANITOR
oder user:username@realm
).
resolve uri {0}
{0}
. Hierzu wird der MCRURIResolver
verwendet.
resolve uri {0} as {1}
{0}
für den gegebenen Benutzer 1
.
Hierzu wird der MCRURIResolver
verwendet. Der Nutzer wird dabei mit dem MCRUserInformationResolver
ermittelt (z.B. system:JANITOR
oder user:username@realm
).
touch object {0}
modifydate
) ausgeführt.
touch derivate {0}
modifydate
) ausgeführt.
Für den Fall, dass Datenbankverbindungen nicht ordentlich geschlossen werden (und damit nicht in den ggf. konfigurierten Connection-Pool zurückgegeben werden),
kann es zur Problembehebung hilfreich sein, die geöffneten Datenbankverbindungen zu tracken. Hierzu stellt MyCoRe den MCRTrackingConnectionProvider
,
eine Erweiterung des HikariCPConnectionProvider
, bereit. Zum Verwenden muss der Connection-Provider von Hikari normal konfiguriert werden.
Anschließend kann MCRTrackingConnectionProvider
als Alternative verwendet werden.
Der alternative Connection-Provider legt in der verwendeten Datenbank initial eine Tabelle mit Namen connection_log
an.
Wenn eine Datenbankverbindung aus dem Pool herausgegeben wird, werden Informationen zum Verursacher (z.B. Thread-Name und Stacktrace)
in dieser Tabelle gespeichert. Wenn die Verbindung zurückgegeben wird, wird der zugehörige Eintrag wieder gelöscht.
Einträge über nicht-zurückgegebene Verbindungen bleiben dementsprechend erhalten. Die Tabelle wird beim Start der MyCoRe-Anwendung geleert.
Wenn Einträge dauerhaft erhalten bleiben sollen, so kann dies mit MCR.JPA.TrackingConnectionProvider.PersistDataAcrossRestarts=true
erreicht werden.
Um den alternativen Connection-Provider zu verwenden, muss je nach Art der JPA-Konfiguration entweder
|
|
oder
|
|
oder z.B.
|
|
in die entsprechende Konfiguration aufgenommen werden.