Thema dieser Dokumentation / FirstSpirit Modul-Grundkonzeption / Classloading / Hierarchie

Hierarchie

Um Konflikte zwischen verschiedenen Modulen und dessen Komponenten zu vermeiden, werden die Klassen – soweit wie möglich – über einzelne, voneinander getrennte Classloader geladen. Hierbei gilt die folgende Classloader-Hierarchie:

Die nachfolgende Grafik zeigt die Modul-Ressourcen-Aufteilung in die einzelnen Classloader. Das Beispiel-Modul in der folgenden Grafik enthält eine Projekt- und eine Web-Komponente (lokal), einen Editor (global) sowie eine Library und einen Service (global). Außerdem sind noch Modul-Ressourcen für die Modul-Steuerungs-Klasse definiert.

Alle lokalen Komponenten werden zusammen mit den Modul-Ressourcen im Local Module-Classloader zusammengefasst.

Die serverweiten Ressourcen der Library und des Services gelangen in den Global Module-Classloader. Dieser ist nicht direkt, sondern nur über den FirstSpirit-Server-Classloader erreichbar. Dieser delegiert alle findClass()- und findResource()-Aufrufe an die Module weiter. Die Classloading-Hierarchie ermöglicht, dass die lokalen Klassen (wie die Konfigurations-GUI) globale Klassen (beispielsweise einen Service) verwenden können.

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.5 | Datenschutz