MyCoRe-Properties beginnen immer mit MCR, darauf folgt ein Punkt und dann der Komponentenname (z.B. ACL, IFS ...). Alle weiteren Bezeichner sind mit Punkt voneinander getrennt und beginnen mit einem Grossbuchstaben.
Beispiel:
MCR.IFS.FileMetadataStore.Class
Ausgenommen von diesem Namenskonzept sind Properties von konfigurierbaren Klasseninstanzen und solche von Drittanbietern (z.B. Log4j, Hibernate). Diese behalten jeweils ihre Konventionen bei.
| Komponente | Property-KĂĽrzel | Kommentar |
|---|---|---|
| allgemeine Konfiguration | MCR.ConfigurationMCR.XMLParser | |
| ACL | MCR.Access | |
| Classification Browser | MCR.ClassificationBrowser | |
| Classification Editor | MCR.ClassificationEditor | |
| Commandline Tool | MCR.CLI | |
| Editor | MCR.EditorFramework / MCR.Editor | |
| Event Handler / Searcher | MCR.EventHandler / MCR.Searcher | |
| File Upload | MCR.FileUpload | |
| Goggle Indexer | MCR.GoogleSitemap | |
| IFS | MCR.IFS | |
| Index Browser | MCR.IndexBrowser | |
| Layout Service | MCR.Request | |
| Mail System | MCR.Mail | |
| Metadaten-Modell | MCR.Metadata | |
| OAI | MCR.OAI | |
| REST API | MCR.RestAPI | |
| SOLR | MCR.Solr | |
| Stores und Manager | MCR.Persistence | |
| Textextrakter | MCR.TextFilterPlugin | |
| URI Resolver | MCR.URIResolver | |
| User Administration | MCR.Useradmin | |
| User Kernsystem | MCR.Users | |
| WebService | MCR.WebService | |
| Zip Tool | MCR.Zip |
Alle Übersetzungsvariablen erhalten ein einheitliches Namensschema. Alle Übersetzungen von Texten des Kerns und häufig benutzte Texte erhalten den Anfang common., Variablen der Module den Modulnamen und Teile der Anwendung den Anwendungsnamen.
Beispiel:
common.cancel = Abbrechen
mods.object.edit = Editieren Objekt
myapp.title.label = Titel
Stylesheets in MyCoRe und DocPortal sind einheitlich zu benennen. Sie sollten (wenn möglich) komplett klein geschrieben werden. Die Verwendung eines Präfix wie mcr, MyCoRe oder mycore entfällt, auch werden keine Unterstriche genutzt.
Beispiele:
results.xsl
user.xsl
editor.xsl
Stylesheets fĂĽr das Layout der Webseiten ...
[ToDo: Thomas] Namenskonvention bzgl. RootTag
Statische Facory-Methoden sind als static markierte Methoden innerhalb einer Klasse,
die eine Instanz dieser Klasse zurĂĽckliefern. FĂĽr derartige Methoden gibt es in MyCoRe
die folgende Namenskonvention:
getInstance() ausschlielich fĂĽr echte Singeltons
createInstance(…) für statische Methoden
mit Garantie, dass bei jedem Aufruf eine neue Instanz erzeugt wird
(wenn diese Garantie fĂĽr die Semantik der API relevant ist)
obtainInstance(…) für statische Methoden
ohne Garantie, dass bei jedem Aufruf eine neue Instanz erzeugt wird
(auch wenn die aktuelle Implementierung immer eine neue Instanz erzeugen sollte,
dies aber für die Semantik der API nicht relevant ist und sich daher in Zukunft ändern darf)
of(…) oder ofXXX(…) für Records und Value/Record-artige Klassen
from(…) oder fromXXX(…) für Enums und Enum-artige Klassen
now(), parse(), parseXml())
wenn eine eindeutig passende Bennennung existiert
Datenmodelle nach dem MyCoRe-Datenmodel-Schema 2 mĂĽssen im Maven-Modul unter src/main/datamodel/def
stehen und den Namen {datenmodel}.xml haben. Dabei wird {datenmodel} dann in die Schemadatei
{datenmodel}.xsd umgewandelt und so referenziert.
Die SOLR-Konfiguration wurde mit Release 2018.06 modularisiert. Somit enthält jedes Modul nur noch die
SOLR-Konfigurationsdefinitionen, die es benötigt. Um Namensdopplungen zu vermeiden, haben alle Typ- und
Felddefinitionen einen Modulprefix in der Form {prefix}.{name}, Beispiel mods.identifier.
Lediglich die MyCoRe-Basisfelder in mycore-base entsprechen nicht diese Konvention, da sie immer
vorhanden sind.
Auch die RequestHandler sollten mit einem Präfix versehen sein. Ansonsten folgt die Benennung der RequestHandler
entsprechend der Solr-Namenskonventionen in Kamelhöckerschreibweise: prefixMyRequestHandlerName, Beispiel
uboExport.