N°8806 - Installation multiple extension with dependence via ITSM Designer (#879)

* N°8806 - Installation multiple extension with dependence via ITSM Designer

* N°8806 - fix tests

* N°8806 - improve GetMFModulesToCompile to handle extensions and installation choices on all setup that use compileFrom (MTP, CoreUpdate, Hub, DryRemoval)

* N°8806 - add log when loading MFModule

* N°8806 - code cleanup + test cover

* N°8806 - typo

* N°8806 - log removal
This commit is contained in:
odain-cbd
2026-04-21 10:52:23 +02:00
committed by GitHub
parent 3b0832781a
commit de0e94800a
9 changed files with 222 additions and 103 deletions

View File

@@ -1073,15 +1073,23 @@ class ModelFactory
*/
public function LoadModule(MFModule $oModule, $aLanguages = [])
{
$sRootDir = null;
$sModuleName = null;
$sModuleVersion = null;
try {
$aDataModels = $oModule->GetDataModelFiles();
$sRootDir = $oModule->GetRootDir();
$sModuleVersion = $oModule->GetVersion();
$sModuleName = $oModule->GetName();
SetupLog::Debug("Loading module", null, [ $sModuleName, $sModuleVersion, $sRootDir]);
$aDataModels = $oModule->GetDataModelFiles();
self::$aLoadedModules[] = $oModule;
// For persistence in the cache
$oModuleNode = $this->oDOMDocument->CreateElement('module');
$oModuleNode->setAttribute('id', $oModule->GetId());
$oModuleNode->appendChild($this->oDOMDocument->CreateElement('root_dir', $oModule->GetRootDir()));
$oModuleNode->appendChild($this->oDOMDocument->CreateElement('root_dir', $sRootDir));
$oModuleNode->appendChild($this->oDOMDocument->CreateElement('label', $oModule->GetLabel()));
$oModules = $this->oRoot->getElementsByTagName('loaded_modules')->item(0);
@@ -1170,6 +1178,7 @@ class ModelFactory
]);
}
} catch (Exception $e) {
SetupLog::Exception("Cannot load module", $e, null, [ $sModuleName, $sModuleVersion, $sRootDir]);
$aLoadedModuleNames = [];
foreach (self::$aLoadedModules as $oLoadedModule) {
$aLoadedModuleNames[] = $oLoadedModule->GetName().':'.$oLoadedModule->GetVersion();