diff options
-rw-r--r-- | apps/files_external/tests/Service/StoragesServiceTest.php | 3 | ||||
-rw-r--r-- | apps/files_sharing/lib/Cache.php | 11 | ||||
-rw-r--r-- | apps/files_sharing/lib/SharedStorage.php | 6 | ||||
-rw-r--r-- | lib/private/Files/Cache/CacheDependencies.php | 6 | ||||
-rw-r--r-- | lib/private/Files/Cache/Wrapper/CacheJail.php | 14 | ||||
-rw-r--r-- | lib/private/Files/Cache/Wrapper/CacheWrapper.php | 22 |
6 files changed, 36 insertions, 26 deletions
diff --git a/apps/files_external/tests/Service/StoragesServiceTest.php b/apps/files_external/tests/Service/StoragesServiceTest.php index 4eaf70a8e84..8c38954dee6 100644 --- a/apps/files_external/tests/Service/StoragesServiceTest.php +++ b/apps/files_external/tests/Service/StoragesServiceTest.php @@ -44,6 +44,7 @@ use OCP\Files\Cache\ICache; use OCP\Files\Config\IUserMountCache; use OCP\Files\Mount\IMountPoint; use OCP\Files\Storage\IStorage; +use OCP\IDBConnection; use OCP\IUser; class CleaningDBConfig extends DBConfigService { @@ -315,7 +316,7 @@ abstract class StoragesServiceTest extends \Test\TestCase { // manually trigger storage entry because normally it happens on first // access, which isn't possible within this test - $storageCache = new \OC\Files\Cache\Storage($rustyStorageId); + $storageCache = new \OC\Files\Cache\Storage($rustyStorageId, true, \OC::$server->get(IDBConnection::class)); /** @var IUserMountCache $mountCache */ $mountCache = \OC::$server->get(IUserMountCache::class); diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php index 3011bc64669..5160b7e821a 100644 --- a/apps/files_sharing/lib/Cache.php +++ b/apps/files_sharing/lib/Cache.php @@ -28,12 +28,14 @@ */ namespace OCA\Files_Sharing; +use OC\Files\Cache\CacheDependencies; use OC\Files\Cache\FailedCache; use OC\Files\Cache\Wrapper\CacheJail; use OC\Files\Search\SearchBinaryOperator; use OC\Files\Search\SearchComparison; use OC\Files\Storage\Wrapper\Jail; use OC\User\DisplayNameCache; +use OCP\Files\Cache\ICache; use OCP\Files\Cache\ICacheEntry; use OCP\Files\Search\ISearchBinaryOperator; use OCP\Files\Search\ISearchComparison; @@ -62,18 +64,19 @@ class Cache extends CacheJail { public function __construct( $storage, ICacheEntry $sourceRootInfo, - DisplayNameCache $displayNameCache, + CacheDependencies $dependencies, IShare $share ) { $this->storage = $storage; $this->sourceRootInfo = $sourceRootInfo; $this->numericId = $sourceRootInfo->getStorageId(); - $this->displayNameCache = $displayNameCache; + $this->displayNameCache = $dependencies->getDisplayNameCache(); $this->share = $share; parent::__construct( null, - '' + '', + $dependencies, ); } @@ -98,7 +101,7 @@ class Cache extends CacheJail { return $this->sourceRootInfo->getPath(); } - public function getCache() { + public function getCache(): ICache { if (is_null($this->cache)) { $sourceStorage = $this->storage->getSourceStorage(); if ($sourceStorage) { diff --git a/apps/files_sharing/lib/SharedStorage.php b/apps/files_sharing/lib/SharedStorage.php index de49e3c4294..53e9f60947e 100644 --- a/apps/files_sharing/lib/SharedStorage.php +++ b/apps/files_sharing/lib/SharedStorage.php @@ -32,6 +32,7 @@ */ namespace OCA\Files_Sharing; +use OC\Files\Cache\CacheDependencies; use OC\Files\Cache\FailedCache; use OC\Files\Cache\NullWatcher; use OC\Files\Cache\Watcher; @@ -40,7 +41,6 @@ use OC\Files\Storage\Common; use OC\Files\Storage\FailedStorage; use OC\Files\Storage\Home; use OC\Files\Storage\Wrapper\PermissionsMask; -use OC\User\DisplayNameCache; use OC\User\NoUserException; use OCA\Files_External\Config\ExternalMountPoint; use OCP\Constants; @@ -410,10 +410,10 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto return new FailedCache(); } - $this->cache = new \OCA\Files_Sharing\Cache( + $this->cache = new Cache( $storage, $sourceRoot, - \OC::$server->get(DisplayNameCache::class), + \OC::$server->get(CacheDependencies::class), $this->getShare() ); return $this->cache; diff --git a/lib/private/Files/Cache/CacheDependencies.php b/lib/private/Files/Cache/CacheDependencies.php index bd4d96a6cab..7c51f3ff884 100644 --- a/lib/private/Files/Cache/CacheDependencies.php +++ b/lib/private/Files/Cache/CacheDependencies.php @@ -3,6 +3,7 @@ namespace OC\Files\Cache; use OC\SystemConfig; +use OC\User\DisplayNameCache; use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\IMimeTypeLoader; use OCP\FilesMetadata\IFilesMetadataManager; @@ -18,6 +19,7 @@ class CacheDependencies { private SystemConfig $systemConfig, private LoggerInterface $logger, private IFilesMetadataManager $metadataManager, + private DisplayNameCache $displayNameCache, ) { } @@ -45,6 +47,10 @@ class CacheDependencies { return $this->logger; } + public function getDisplayNameCache(): DisplayNameCache { + return $this->displayNameCache; + } + public function getMetadataManager(): IFilesMetadataManager { return $this->metadataManager; } diff --git a/lib/private/Files/Cache/Wrapper/CacheJail.php b/lib/private/Files/Cache/Wrapper/CacheJail.php index 73c9a017019..f9754e433df 100644 --- a/lib/private/Files/Cache/Wrapper/CacheJail.php +++ b/lib/private/Files/Cache/Wrapper/CacheJail.php @@ -28,8 +28,10 @@ namespace OC\Files\Cache\Wrapper; use OC\Files\Cache\Cache; +use OC\Files\Cache\CacheDependencies; use OC\Files\Search\SearchBinaryOperator; use OC\Files\Search\SearchComparison; +use OCP\Files\Cache\ICache; use OCP\Files\Cache\ICacheEntry; use OCP\Files\Search\ISearchBinaryOperator; use OCP\Files\Search\ISearchComparison; @@ -45,12 +47,12 @@ class CacheJail extends CacheWrapper { protected $root; protected $unjailedRoot; - /** - * @param ?\OCP\Files\Cache\ICache $cache - * @param string $root - */ - public function __construct($cache, $root) { - parent::__construct($cache); + public function __construct( + ?ICache $cache, + string $root, + CacheDependencies $dependencies = null, + ) { + parent::__construct($cache, $dependencies); $this->root = $root; if ($cache instanceof CacheJail) { diff --git a/lib/private/Files/Cache/Wrapper/CacheWrapper.php b/lib/private/Files/Cache/Wrapper/CacheWrapper.php index 59da272787e..a8b1d34c956 100644 --- a/lib/private/Files/Cache/Wrapper/CacheWrapper.php +++ b/lib/private/Files/Cache/Wrapper/CacheWrapper.php @@ -30,33 +30,31 @@ namespace OC\Files\Cache\Wrapper; use OC\Files\Cache\Cache; -use OC\Files\Cache\QuerySearchHelper; +use OC\Files\Cache\CacheDependencies; use OCP\Files\Cache\ICache; use OCP\Files\Cache\ICacheEntry; -use OCP\Files\IMimeTypeLoader; use OCP\Files\Search\ISearchOperator; use OCP\Files\Search\ISearchQuery; -use OCP\IDBConnection; class CacheWrapper extends Cache { /** - * @var \OCP\Files\Cache\ICache + * @var ?ICache */ protected $cache; - /** - * @param \OCP\Files\Cache\ICache $cache - */ - public function __construct($cache) { + public function __construct(?ICache $cache, CacheDependencies $dependencies = null) { $this->cache = $cache; - if ($cache instanceof Cache) { + if (!$dependencies && $cache instanceof Cache) { $this->mimetypeLoader = $cache->mimetypeLoader; $this->connection = $cache->connection; $this->querySearchHelper = $cache->querySearchHelper; } else { - $this->mimetypeLoader = \OC::$server->get(IMimeTypeLoader::class); - $this->connection = \OC::$server->get(IDBConnection::class); - $this->querySearchHelper = \OC::$server->get(QuerySearchHelper::class); + if (!$dependencies) { + $dependencies = \OC::$server->get(CacheDependencies::class); + } + $this->mimetypeLoader = $dependencies->getMimeTypeLoader(); + $this->connection = $dependencies->getConnection(); + $this->querySearchHelper = $dependencies->getQuerySearchHelper(); } } |