]> source.dussan.org Git - nextcloud-server.git/commitdiff
also improe cache ci for shared cache
authorRobin Appelman <robin@icewind.nl>
Wed, 16 Aug 2023 10:34:18 +0000 (12:34 +0200)
committerRobin Appelman <robin@icewind.nl>
Fri, 9 Feb 2024 13:00:26 +0000 (14:00 +0100)
Signed-off-by: Robin Appelman <robin@icewind.nl>
apps/files_external/tests/Service/StoragesServiceTest.php
apps/files_sharing/lib/Cache.php
apps/files_sharing/lib/SharedStorage.php
lib/private/Files/Cache/CacheDependencies.php
lib/private/Files/Cache/Wrapper/CacheJail.php
lib/private/Files/Cache/Wrapper/CacheWrapper.php

index 4eaf70a8e84a09e69c62c89a0b5c29a29ff56056..8c38954dee6e852e4cd3712fafd70733d882ecce 100644 (file)
@@ -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);
index 3011bc6466975689e571ac781759ae8f502efaa8..5160b7e821a4fa0955c8e14e571215643f683f4b 100644 (file)
  */
 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) {
index de49e3c4294749eb8fe52d0bced497f388a675be..53e9f60947e0b42bc8a4efd2c921aa2399c5ea18 100644 (file)
@@ -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;
index bd4d96a6cab9991c723e348f41033dd31fcee745..7c51f3ff884215b52e844fd1fef05a91568c0db7 100644 (file)
@@ -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;
        }
index 73c9a0170197d04a209c79f99ab07b95e8a6a7f2..f9754e433df276ea361a7f1332e2a063375634c6 100644 (file)
 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) {
index 59da272787e82e7117f44f0180d8eb1b6edaf7be..a8b1d34c956466a58c69a5380f84d1a28d58275b 100644 (file)
 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();
                }
        }