diff --git a/core/datamodel.core.xml b/core/datamodel.core.xml
index 9e599eb2b..0aa85dedc 100644
--- a/core/datamodel.core.xml
+++ b/core/datamodel.core.xml
@@ -866,6 +866,18 @@
+
+
+ DBObject
+
+ core/cmdb,view_in_gui
+
+
+
+
+
+
+
Event
diff --git a/core/metamodel.class.php b/core/metamodel.class.php
index 8f9808cc2..08a503065 100644
--- a/core/metamodel.class.php
+++ b/core/metamodel.class.php
@@ -7557,6 +7557,13 @@ abstract class MetaModel
require_once(APPROOT.'core/userrights.class.inc.php');
UserRights::FlushPrivileges();
+
+ // Reset the opcache since otherwise the PHP "model" files may still be cached !!
+ if (function_exists('opcache_reset'))
+ {
+ // Zend opcode cache
+ opcache_reset();
+ }
}
/**
diff --git a/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php b/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php
index 00ad38388..3bfa47ad9 100644
--- a/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php
+++ b/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php
@@ -170,7 +170,7 @@ class DatabaseAnalyzer
$this->CheckHK($sClass, $sAttCode, $aErrorsAndFixes);
}
}
- elseif ($oAttDef->IsDirectField() && !($oAttDef instanceof AttributeTagSet))
+ elseif ($oAttDef->IsDirectField() && !($oAttDef instanceof AttributeSet))
{
$this->CheckAllowedValues($sClass, $sAttCode, $oAttDef, $sTable, $sKeyField, $aErrorsAndFixes);
}
diff --git a/tests/php-unit-tests/src/Service/UnitTestRunTimeEnvironment.php b/tests/php-unit-tests/src/Service/UnitTestRunTimeEnvironment.php
index 478bf27fa..f7efa4211 100644
--- a/tests/php-unit-tests/src/Service/UnitTestRunTimeEnvironment.php
+++ b/tests/php-unit-tests/src/Service/UnitTestRunTimeEnvironment.php
@@ -13,6 +13,7 @@ use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;
use ReflectionClass;
use RunTimeEnvironment;
+use SetupUtils;
use utils;
@@ -47,11 +48,23 @@ class UnitTestRunTimeEnvironment extends RunTimeEnvironment
return $this->sFinalEnv;
}
+ public function CompileFrom($sSourceEnv, $bUseSymLinks = null)
+ {
+ $sDestModulesDir = APPROOT.'data/'.$this->sTargetEnv.'-modules/';
+ if (is_dir($sDestModulesDir)) {
+ SetupUtils::rrmdir($sDestModulesDir);
+ }
+
+ SetupUtils::copydir(APPROOT.'/data/'.$sSourceEnv.'-modules', $sDestModulesDir, $bUseSymLinks);
+
+ parent::CompileFrom($sSourceEnv, $bUseSymLinks);
+ }
+
public function IsUpToDate()
{
clearstatcache();
$fLastCompilationTime = filemtime(APPROOT.'env-'.$this->sFinalEnv);
- $aModifiedFiles = [];
+ $aModifiedFiles = [];
$this->FindFilesModifiedAfter($fLastCompilationTime, APPROOT.'datamodels/2.x', $aModifiedFiles);
$this->FindFilesModifiedAfter($fLastCompilationTime, APPROOT.'extensions', $aModifiedFiles);
$this->FindFilesModifiedAfter($fLastCompilationTime, APPROOT.'data/production-modules', $aModifiedFiles);
@@ -63,11 +76,11 @@ class UnitTestRunTimeEnvironment extends RunTimeEnvironment
if (count($aModifiedFiles) > 0) {
echo "The following files have been modified after the last compilation:\n";
foreach ($aModifiedFiles as $sFile) {
- echo " - $sFile\n";
- }
+ echo " - $sFile\n";
+ }
}
return (count($aModifiedFiles) === 0);
- }
+ }
/**
* @inheritDoc
@@ -131,7 +144,6 @@ class UnitTestRunTimeEnvironment extends RunTimeEnvironment
continue;
}
if (in_array($sClass, $aLoadedTestClasses)) {
- echo "class $sClass already loaded somehow \n";
continue;
}
$aLoadedTestClasses[]=$sClass;