From 865cf5f2a7726be8a718e73881abc53b1dc1cee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Mon, 11 May 2026 12:09:17 +0200 Subject: [PATCH 1/7] fix(files): Use proper DI for ApiController MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- apps/files/lib/AppInfo/Application.php | 34 ------------------- apps/files/lib/Controller/ApiController.php | 7 +++- .../tests/Controller/ApiControllerTest.php | 4 ++- 3 files changed, 9 insertions(+), 36 deletions(-) diff --git a/apps/files/lib/AppInfo/Application.php b/apps/files/lib/AppInfo/Application.php index ca05d506993..ae58e9b73f1 100644 --- a/apps/files/lib/AppInfo/Application.php +++ b/apps/files/lib/AppInfo/Application.php @@ -14,7 +14,6 @@ use OCA\Files\Capabilities; use OCA\Files\Collaboration\Resources\Listener; use OCA\Files\Collaboration\Resources\ResourceProvider; use OCA\Files\ConfigLexicon; -use OCA\Files\Controller\ApiController; use OCA\Files\Dashboard\FavoriteWidget; use OCA\Files\DirectEditingCapabilities; use OCA\Files\Event\LoadSearchPlugins; @@ -29,8 +28,6 @@ use OCA\Files\Listener\UserFirstTimeLoggedInListener; use OCA\Files\Notification\Notifier; use OCA\Files\Search\FilesSearchProvider; use OCA\Files\Service\TagService; -use OCA\Files\Service\UserConfig; -use OCA\Files\Service\ViewConfig; use OCP\Activity\IManager as IActivityManager; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; @@ -45,19 +42,12 @@ use OCP\Files\Events\Node\BeforeNodeRenamedEvent; use OCP\Files\Events\Node\NodeCopiedEvent; use OCP\Files\Events\NodeAddedToFavorite; use OCP\Files\Events\NodeRemovedFromFavorite; -use OCP\Files\IRootFolder; -use OCP\IConfig; -use OCP\IL10N; -use OCP\IPreview; -use OCP\IRequest; use OCP\IServerContainer; use OCP\ITagManager; use OCP\IUserSession; -use OCP\Share\IManager as IShareManager; use OCP\User\Events\UserFirstTimeLoggedInEvent; use OCP\Util; use Psr\Container\ContainerInterface; -use Psr\Log\LoggerInterface; class Application extends App implements IBootstrap { public const APP_ID = 'files'; @@ -68,30 +58,6 @@ class Application extends App implements IBootstrap { #[\Override] public function register(IRegistrationContext $context): void { - /** - * Controllers - */ - $context->registerService('APIController', function (ContainerInterface $c) { - /** @var IServerContainer $server */ - $server = $c->get(IServerContainer::class); - - return new ApiController( - $c->get('AppName'), - $c->get(IRequest::class), - $c->get(IUserSession::class), - $c->get(TagService::class), - $c->get(IPreview::class), - $c->get(IShareManager::class), - $c->get(IConfig::class), - $server->getUserFolder(), - $c->get(UserConfig::class), - $c->get(ViewConfig::class), - $c->get(IL10N::class), - $c->get(IRootFolder::class), - $c->get(LoggerInterface::class), - ); - }); - /** * Services */ diff --git a/apps/files/lib/Controller/ApiController.php b/apps/files/lib/Controller/ApiController.php index 03c4bcf49a7..20eb7dba5de 100644 --- a/apps/files/lib/Controller/ApiController.php +++ b/apps/files/lib/Controller/ApiController.php @@ -53,6 +53,8 @@ use Throwable; * @package OCA\Files\Controller */ class ApiController extends Controller { + private ?Folder $userFolder = null; + public function __construct( string $appName, IRequest $request, @@ -61,7 +63,6 @@ class ApiController extends Controller { private IPreview $previewManager, private IManager $shareManager, private IConfig $config, - private ?Folder $userFolder, private UserConfig $userConfig, private ViewConfig $viewConfig, private IL10N $l10n, @@ -69,6 +70,10 @@ class ApiController extends Controller { private LoggerInterface $logger, ) { parent::__construct($appName, $request); + $user = $this->userSession->getUser(); + if ($user) { + $this->userFolder = $this->rootFolder->getUserFolder($user->getUID()); + } } /** diff --git a/apps/files/tests/Controller/ApiControllerTest.php b/apps/files/tests/Controller/ApiControllerTest.php index 12b584fc56d..1bc0af3de50 100644 --- a/apps/files/tests/Controller/ApiControllerTest.php +++ b/apps/files/tests/Controller/ApiControllerTest.php @@ -77,6 +77,9 @@ class ApiControllerTest extends TestCase { $this->viewConfig = $this->createMock(ViewConfig::class); $this->l10n = $this->createMock(IL10N::class); $this->rootFolder = $this->createMock(IRootFolder::class); + $this->rootFolder->expects($this->any()) + ->method('getUserFolder') + ->willReturn($this->userFolder); $this->logger = $this->createMock(LoggerInterface::class); $this->apiController = new ApiController( @@ -87,7 +90,6 @@ class ApiControllerTest extends TestCase { $this->preview, $this->shareManager, $this->config, - $this->userFolder, $this->userConfig, $this->viewConfig, $this->l10n, From c853d8f96ec2ceebd1b4c1068771d0e0c15a4d8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Mon, 11 May 2026 12:19:36 +0200 Subject: [PATCH 2/7] fix(files): Use proper DI for TagService class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- apps/files/lib/AppInfo/Application.php | 21 --------------------- apps/files/lib/Service/TagService.php | 14 ++++++++++++-- apps/files/tests/Service/TagServiceTest.php | 13 +++++++++++-- 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/apps/files/lib/AppInfo/Application.php b/apps/files/lib/AppInfo/Application.php index ae58e9b73f1..54e6b2c678a 100644 --- a/apps/files/lib/AppInfo/Application.php +++ b/apps/files/lib/AppInfo/Application.php @@ -27,8 +27,6 @@ use OCA\Files\Listener\SyncLivePhotosListener; use OCA\Files\Listener\UserFirstTimeLoggedInListener; use OCA\Files\Notification\Notifier; use OCA\Files\Search\FilesSearchProvider; -use OCA\Files\Service\TagService; -use OCP\Activity\IManager as IActivityManager; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; @@ -42,12 +40,8 @@ use OCP\Files\Events\Node\BeforeNodeRenamedEvent; use OCP\Files\Events\Node\NodeCopiedEvent; use OCP\Files\Events\NodeAddedToFavorite; use OCP\Files\Events\NodeRemovedFromFavorite; -use OCP\IServerContainer; -use OCP\ITagManager; -use OCP\IUserSession; use OCP\User\Events\UserFirstTimeLoggedInEvent; use OCP\Util; -use Psr\Container\ContainerInterface; class Application extends App implements IBootstrap { public const APP_ID = 'files'; @@ -58,21 +52,6 @@ class Application extends App implements IBootstrap { #[\Override] public function register(IRegistrationContext $context): void { - /** - * Services - */ - $context->registerService(TagService::class, function (ContainerInterface $c) { - /** @var IServerContainer $server */ - $server = $c->get(IServerContainer::class); - - return new TagService( - $c->get(IUserSession::class), - $c->get(IActivityManager::class), - $c->get(ITagManager::class)->load(self::APP_ID), - $server->getUserFolder(), - ); - }); - /* * Register capabilities */ diff --git a/apps/files/lib/Service/TagService.php b/apps/files/lib/Service/TagService.php index 95176ce95fa..9e5661eef6f 100644 --- a/apps/files/lib/Service/TagService.php +++ b/apps/files/lib/Service/TagService.php @@ -7,9 +7,12 @@ */ namespace OCA\Files\Service; +use OCA\Files\AppInfo\Application; use OCP\Activity\IManager; use OCP\Files\Folder; +use OCP\Files\IRootFolder; use OCP\Files\NotFoundException; +use OCP\ITagManager; use OCP\ITags; use OCP\IUserSession; @@ -17,13 +20,20 @@ use OCP\IUserSession; * Service class to manage tags on files. */ class TagService { + private ?Folder $homeFolder = null; + private ?ITags $tagger; public function __construct( private IUserSession $userSession, private IManager $activityManager, - private ?ITags $tagger, - private ?Folder $homeFolder, + ITagManager $tagManager, + IRootFolder $rootFolder, ) { + $user = $this->userSession->getUser(); + if ($user) { + $this->homeFolder = $rootFolder->getUserFolder($user->getUID()); + } + $this->tagger = $tagManager->load(Application::APP_ID); } /** diff --git a/apps/files/tests/Service/TagServiceTest.php b/apps/files/tests/Service/TagServiceTest.php index 1b3e0898b33..b914489053f 100644 --- a/apps/files/tests/Service/TagServiceTest.php +++ b/apps/files/tests/Service/TagServiceTest.php @@ -44,6 +44,9 @@ class TagServiceTest extends \Test\TestCase { \OC_User::setUserId($this->user); \OC_Util::setupFS($this->user); $user = $this->createMock(IUser::class); + $user->expects($this->any()) + ->method('getUID') + ->willReturn($this->user); $this->userSession = $this->createMock(IUserSession::class); $this->userSession->expects($this->any()) ->method('getUser') @@ -61,8 +64,8 @@ class TagServiceTest extends \Test\TestCase { ->setConstructorArgs([ $this->userSession, $this->activityManager, - $this->tagger, - $this->root, + Server::get(ITagManager::class), + Server::get(IRootFolder::class), ]) ->onlyMethods($methods) ->getMock(); @@ -91,16 +94,22 @@ class TagServiceTest extends \Test\TestCase { // set tags $this->tagService->updateFileTags('subdir/test.txt', [$tag1, $tag2]); + // Sync to reload tags + $this->tagger->addMultiple([], sync:true); $this->assertEquals([$fileId], $this->tagger->getIdsForTag($tag1)); $this->assertEquals([$fileId], $this->tagger->getIdsForTag($tag2)); // remove tag $this->tagService->updateFileTags('subdir/test.txt', [$tag2]); + // Sync to reload tags + $this->tagger->addMultiple([], sync:true); $this->assertEquals([], $this->tagger->getIdsForTag($tag1)); $this->assertEquals([$fileId], $this->tagger->getIdsForTag($tag2)); // clear tags $this->tagService->updateFileTags('subdir/test.txt', []); + // Sync to reload tags + $this->tagger->addMultiple([], sync:true); $this->assertEquals([], $this->tagger->getIdsForTag($tag1)); $this->assertEquals([], $this->tagger->getIdsForTag($tag2)); From db49744e49d5a968d8df89eea8e34977fdde3aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Mon, 11 May 2026 12:21:34 +0200 Subject: [PATCH 3/7] fix(files_version): Rely on DI for principalBackend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- .../lib/AppInfo/Application.php | 28 +------------------ 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/apps/files_versions/lib/AppInfo/Application.php b/apps/files_versions/lib/AppInfo/Application.php index 4301880b527..6d1aa6c21ba 100644 --- a/apps/files_versions/lib/AppInfo/Application.php +++ b/apps/files_versions/lib/AppInfo/Application.php @@ -7,8 +7,6 @@ */ namespace OCA\Files_Versions\AppInfo; -use OC\KnownUser\KnownUserService; -use OCA\DAV\CalDAV\Proxy\ProxyMapper; use OCA\DAV\Connector\Sabre\Principal; use OCA\Files\Event\LoadAdditionalScriptsEvent; use OCA\Files\Event\LoadSidebar; @@ -22,7 +20,6 @@ use OCA\Files_Versions\Listener\VersionAuthorListener; use OCA\Files_Versions\Listener\VersionStorageMoveListener; use OCA\Files_Versions\Versions\IVersionManager; use OCA\Files_Versions\Versions\VersionManager; -use OCP\Accounts\IAccountManager; use OCP\App\IAppManager; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; @@ -39,14 +36,6 @@ use OCP\Files\Events\Node\NodeDeletedEvent; use OCP\Files\Events\Node\NodeRenamedEvent; use OCP\Files\Events\Node\NodeTouchedEvent; use OCP\Files\Events\Node\NodeWrittenEvent; -use OCP\IConfig; -use OCP\IGroupManager; -use OCP\IServerContainer; -use OCP\IUserManager; -use OCP\IUserSession; -use OCP\L10N\IFactory; -use OCP\Server; -use OCP\Share\IManager as IShareManager; use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; @@ -67,22 +56,7 @@ class Application extends App implements IBootstrap { /** * Register $principalBackend for the DAV collection */ - $context->registerService('principalBackend', function (ContainerInterface $c) { - /** @var IServerContainer $server */ - $server = $c->get(IServerContainer::class); - return new Principal( - $server->get(IUserManager::class), - $server->get(IGroupManager::class), - Server::get(IAccountManager::class), - $server->get(IShareManager::class), - $server->get(IUserSession::class), - $server->get(IAppManager::class), - $server->get(ProxyMapper::class), - $server->get(KnownUserService::class), - $server->get(IConfig::class), - $server->get(IFactory::class), - ); - }); + $context->registerServiceAlias('principalBackend', Principal::class); $context->registerServiceAlias(IVersionManager::class, VersionManager::class); From 3e4a1415c4826630e9a88b9acbd23e78315b66b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Mon, 11 May 2026 12:29:51 +0200 Subject: [PATCH 4/7] chore(provisioning_api): Remove unused file referencing obsolete interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- .../composer/composer/autoload_classmap.php | 1 - .../composer/composer/autoload_static.php | 1 - .../lib/FederatedShareProviderFactory.php | 24 ------------------- 3 files changed, 26 deletions(-) delete mode 100644 apps/provisioning_api/lib/FederatedShareProviderFactory.php diff --git a/apps/provisioning_api/composer/composer/autoload_classmap.php b/apps/provisioning_api/composer/composer/autoload_classmap.php index 7a007f4577d..6322f7ae770 100644 --- a/apps/provisioning_api/composer/composer/autoload_classmap.php +++ b/apps/provisioning_api/composer/composer/autoload_classmap.php @@ -16,7 +16,6 @@ return array( 'OCA\\Provisioning_API\\Controller\\PreferencesController' => $baseDir . '/../lib/Controller/PreferencesController.php', 'OCA\\Provisioning_API\\Controller\\UsersController' => $baseDir . '/../lib/Controller/UsersController.php', 'OCA\\Provisioning_API\\Controller\\VerificationController' => $baseDir . '/../lib/Controller/VerificationController.php', - 'OCA\\Provisioning_API\\FederatedShareProviderFactory' => $baseDir . '/../lib/FederatedShareProviderFactory.php', 'OCA\\Provisioning_API\\Listener\\UserDeletedListener' => $baseDir . '/../lib/Listener/UserDeletedListener.php', 'OCA\\Provisioning_API\\Middleware\\Exceptions\\NotSubAdminException' => $baseDir . '/../lib/Middleware/Exceptions/NotSubAdminException.php', 'OCA\\Provisioning_API\\Middleware\\ProvisioningApiMiddleware' => $baseDir . '/../lib/Middleware/ProvisioningApiMiddleware.php', diff --git a/apps/provisioning_api/composer/composer/autoload_static.php b/apps/provisioning_api/composer/composer/autoload_static.php index 537203fb53d..7b3effb103c 100644 --- a/apps/provisioning_api/composer/composer/autoload_static.php +++ b/apps/provisioning_api/composer/composer/autoload_static.php @@ -31,7 +31,6 @@ class ComposerStaticInitProvisioning_API 'OCA\\Provisioning_API\\Controller\\PreferencesController' => __DIR__ . '/..' . '/../lib/Controller/PreferencesController.php', 'OCA\\Provisioning_API\\Controller\\UsersController' => __DIR__ . '/..' . '/../lib/Controller/UsersController.php', 'OCA\\Provisioning_API\\Controller\\VerificationController' => __DIR__ . '/..' . '/../lib/Controller/VerificationController.php', - 'OCA\\Provisioning_API\\FederatedShareProviderFactory' => __DIR__ . '/..' . '/../lib/FederatedShareProviderFactory.php', 'OCA\\Provisioning_API\\Listener\\UserDeletedListener' => __DIR__ . '/..' . '/../lib/Listener/UserDeletedListener.php', 'OCA\\Provisioning_API\\Middleware\\Exceptions\\NotSubAdminException' => __DIR__ . '/..' . '/../lib/Middleware/Exceptions/NotSubAdminException.php', 'OCA\\Provisioning_API\\Middleware\\ProvisioningApiMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/ProvisioningApiMiddleware.php', diff --git a/apps/provisioning_api/lib/FederatedShareProviderFactory.php b/apps/provisioning_api/lib/FederatedShareProviderFactory.php deleted file mode 100644 index 3da76102c4a..00000000000 --- a/apps/provisioning_api/lib/FederatedShareProviderFactory.php +++ /dev/null @@ -1,24 +0,0 @@ -serverContainer->query(FederatedShareProvider::class); - } -} From 9680004b58481b08b152e5183bcfe7a2b8892204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Mon, 11 May 2026 15:16:05 +0200 Subject: [PATCH 5/7] chore: Remove almost all uses of deprecated IServerContainer in lib/private MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- .../AppFramework/Bootstrap/Coordinator.php | 12 +++--- lib/private/Calendar/Resource/Manager.php | 6 +-- lib/private/Calendar/Room/Manager.php | 6 +-- .../Resources/ProviderManager.php | 6 +-- lib/private/Comments/ManagerFactory.php | 20 ++-------- .../ContactsMenu/ActionProviderStore.php | 4 +- lib/private/Http/WellKnown/RequestManager.php | 4 +- lib/private/LDAP/NullLDAPProviderFactory.php | 4 +- lib/private/Server.php | 20 ++-------- lib/private/Settings/Manager.php | 4 +- .../SpeechToText/SpeechToTextManager.php | 4 +- lib/private/SystemTag/ManagerFactory.php | 4 +- lib/private/Talk/Broker.php | 4 +- lib/private/TaskProcessing/Manager.php | 4 +- lib/private/TextProcessing/Manager.php | 4 +- lib/private/TextToImage/Manager.php | 4 +- .../Translation/TranslationManager.php | 4 +- .../Bootstrap/CoordinatorTest.php | 12 +++--- tests/lib/Calendar/Resource/ManagerTest.php | 39 ++++++++----------- tests/lib/Calendar/Room/ManagerTest.php | 26 ++++++------- .../Resources/ProviderManagerTest.php | 12 +++--- tests/lib/Comments/FakeFactory.php | 4 +- .../ContactsMenu/ActionProviderStoreTest.php | 12 ++---- .../lib/Http/WellKnown/RequestManagerTest.php | 19 +++------ tests/lib/InitialStateServiceTest.php | 10 ++--- tests/lib/Settings/ManagerTest.php | 33 ++++++---------- tests/lib/Share20/LegacyHooksTest.php | 4 +- tests/lib/Share20/ManagerTest.php | 14 +++---- tests/lib/Talk/BrokerTest.php | 6 +-- .../lib/TaskProcessing/TaskProcessingTest.php | 6 +-- .../lib/TextProcessing/TextProcessingTest.php | 6 +-- 31 files changed, 130 insertions(+), 187 deletions(-) diff --git a/lib/private/AppFramework/Bootstrap/Coordinator.php b/lib/private/AppFramework/Bootstrap/Coordinator.php index a31dd6a05e1..d68afcfe5d5 100644 --- a/lib/private/AppFramework/Bootstrap/Coordinator.php +++ b/lib/private/AppFramework/Bootstrap/Coordinator.php @@ -19,8 +19,8 @@ use OCP\AppFramework\QueryException; use OCP\Dashboard\IManager; use OCP\Diagnostics\IEventLogger; use OCP\EventDispatcher\IEventDispatcher; -use OCP\IServerContainer; use Psr\Container\ContainerExceptionInterface; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Throwable; use function class_exists; @@ -35,7 +35,7 @@ class Coordinator { private array $bootedApps = []; public function __construct( - private IServerContainer $serverContainer, + private ContainerInterface $serverContainer, private Registry $registry, private IManager $dashboardManager, private IEventDispatcher $eventDispatcher, @@ -99,7 +99,7 @@ class Coordinator { $this->eventLogger->start("bootstrap:register_app:$appId:application", "Load `Application` instance for $appId"); try { /** @var IBootstrap&App $application */ - $application = $this->serverContainer->query($applicationClassName); + $application = $this->serverContainer->get($applicationClassName); $apps[$appId] = $application; } catch (ContainerExceptionInterface $e) { // Weird, but ok @@ -162,10 +162,8 @@ class Coordinator { */ $this->eventLogger->start('bootstrap:boot_app:' . $appId, "Call `Application::boot` for $appId"); try { - /** @var App $application */ - $application = $this->serverContainer->query($applicationClassName); - if ($application instanceof IBootstrap) { - /** @var BootContext $context */ + $application = $this->serverContainer->get($applicationClassName); + if ($application instanceof IBootstrap && $application instanceof App) { $context = new BootContext($application->getContainer()); $application->boot($context); } diff --git a/lib/private/Calendar/Resource/Manager.php b/lib/private/Calendar/Resource/Manager.php index 4c5154ddbb9..ace6e5a219c 100644 --- a/lib/private/Calendar/Resource/Manager.php +++ b/lib/private/Calendar/Resource/Manager.php @@ -13,7 +13,7 @@ use OC\Calendar\ResourcesRoomsUpdater; use OCP\AppFramework\QueryException; use OCP\Calendar\Resource\IBackend; use OCP\Calendar\Resource\IManager; -use OCP\IServerContainer; +use Psr\Container\ContainerInterface; class Manager implements IManager { private bool $bootstrapBackendsLoaded = false; @@ -29,7 +29,7 @@ class Manager implements IManager { public function __construct( private Coordinator $bootstrapCoordinator, - private IServerContainer $server, + private ContainerInterface $container, private ResourcesRoomsUpdater $updater, ) { } @@ -84,7 +84,7 @@ class Manager implements IManager { continue; } - $this->initializedBackends[$backend] = $this->server->query($backend); + $this->initializedBackends[$backend] = $this->container->get($backend); } return array_values($this->initializedBackends); diff --git a/lib/private/Calendar/Room/Manager.php b/lib/private/Calendar/Room/Manager.php index b19727054e3..a31127068a4 100644 --- a/lib/private/Calendar/Room/Manager.php +++ b/lib/private/Calendar/Room/Manager.php @@ -13,7 +13,7 @@ use OC\Calendar\ResourcesRoomsUpdater; use OCP\AppFramework\QueryException; use OCP\Calendar\Room\IBackend; use OCP\Calendar\Room\IManager; -use OCP\IServerContainer; +use Psr\Container\ContainerInterface; class Manager implements IManager { private bool $bootstrapBackendsLoaded = false; @@ -29,7 +29,7 @@ class Manager implements IManager { public function __construct( private Coordinator $bootstrapCoordinator, - private IServerContainer $server, + private ContainerInterface $container, private ResourcesRoomsUpdater $updater, ) { } @@ -91,7 +91,7 @@ class Manager implements IManager { * The backend might have services injected that can't be build from the * server container. */ - $this->initializedBackends[$backend] = $this->server->query($backend); + $this->initializedBackends[$backend] = $this->container->get($backend); } return array_values($this->initializedBackends); diff --git a/lib/private/Collaboration/Resources/ProviderManager.php b/lib/private/Collaboration/Resources/ProviderManager.php index 72155cf7fa4..839aef847ed 100644 --- a/lib/private/Collaboration/Resources/ProviderManager.php +++ b/lib/private/Collaboration/Resources/ProviderManager.php @@ -11,7 +11,7 @@ namespace OC\Collaboration\Resources; use OCP\AppFramework\QueryException; use OCP\Collaboration\Resources\IProvider; use OCP\Collaboration\Resources\IProviderManager; -use OCP\IServerContainer; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; class ProviderManager implements IProviderManager { @@ -22,7 +22,7 @@ class ProviderManager implements IProviderManager { protected array $providerInstances = []; public function __construct( - protected IServerContainer $serverContainer, + protected ContainerInterface $serverContainer, protected LoggerInterface $logger, ) { } @@ -32,7 +32,7 @@ class ProviderManager implements IProviderManager { if ($this->providers !== []) { foreach ($this->providers as $provider) { try { - $this->providerInstances[] = $this->serverContainer->query($provider); + $this->providerInstances[] = $this->serverContainer->get($provider); } catch (QueryException $e) { $this->logger->error("Could not query resource provider $provider: " . $e->getMessage(), [ 'exception' => $e, diff --git a/lib/private/Comments/ManagerFactory.php b/lib/private/Comments/ManagerFactory.php index 2fd21598e91..cef07216a27 100644 --- a/lib/private/Comments/ManagerFactory.php +++ b/lib/private/Comments/ManagerFactory.php @@ -11,30 +11,16 @@ namespace OC\Comments; use OCP\Comments\ICommentsManager; use OCP\Comments\ICommentsManagerFactory; -use OCP\IServerContainer; +use Psr\Container\ContainerInterface; class ManagerFactory implements ICommentsManagerFactory { - /** - * Constructor for the comments manager factory - * - * @param IServerContainer $serverContainer server container - */ public function __construct( - /** - * Server container - */ - private IServerContainer $serverContainer, + private ContainerInterface $serverContainer, ) { } - /** - * creates and returns an instance of the ICommentsManager - * - * @return ICommentsManager - * @since 9.0.0 - */ #[\Override] - public function getManager() { + public function getManager(): ICommentsManager { return $this->serverContainer->get(Manager::class); } } diff --git a/lib/private/Contacts/ContactsMenu/ActionProviderStore.php b/lib/private/Contacts/ContactsMenu/ActionProviderStore.php index b760de03a04..4606c1cce1a 100644 --- a/lib/private/Contacts/ContactsMenu/ActionProviderStore.php +++ b/lib/private/Contacts/ContactsMenu/ActionProviderStore.php @@ -17,13 +17,13 @@ use OC\Contacts\ContactsMenu\Providers\ProfileProvider; use OCP\AppFramework\QueryException; use OCP\Contacts\ContactsMenu\IBulkProvider; use OCP\Contacts\ContactsMenu\IProvider; -use OCP\IServerContainer; use OCP\IUser; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; class ActionProviderStore { public function __construct( - private IServerContainer $serverContainer, + private ContainerInterface $serverContainer, private AppManager $appManager, private LoggerInterface $logger, ) { diff --git a/lib/private/Http/WellKnown/RequestManager.php b/lib/private/Http/WellKnown/RequestManager.php index a79974089e7..2f65471caa0 100644 --- a/lib/private/Http/WellKnown/RequestManager.php +++ b/lib/private/Http/WellKnown/RequestManager.php @@ -16,7 +16,7 @@ use OCP\Http\WellKnown\IRequestContext; use OCP\Http\WellKnown\IResponse; use OCP\Http\WellKnown\JrdResponse; use OCP\IRequest; -use OCP\IServerContainer; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use RuntimeException; use function array_reduce; @@ -24,7 +24,7 @@ use function array_reduce; class RequestManager { public function __construct( private Coordinator $coordinator, - private IServerContainer $container, + private ContainerInterface $container, private LoggerInterface $logger, ) { } diff --git a/lib/private/LDAP/NullLDAPProviderFactory.php b/lib/private/LDAP/NullLDAPProviderFactory.php index 5960e69a458..5ae1b0b4b68 100644 --- a/lib/private/LDAP/NullLDAPProviderFactory.php +++ b/lib/private/LDAP/NullLDAPProviderFactory.php @@ -8,11 +8,11 @@ declare(strict_types=1); */ namespace OC\LDAP; -use OCP\IServerContainer; use OCP\LDAP\ILDAPProviderFactory; +use Psr\Container\ContainerInterface; class NullLDAPProviderFactory implements ILDAPProviderFactory { - public function __construct(IServerContainer $serverContainer) { + public function __construct(ContainerInterface $serverContainer) { } #[\Override] diff --git a/lib/private/Server.php b/lib/private/Server.php index c379932e936..a39d09fe3b0 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -12,7 +12,6 @@ use OC\Accounts\AccountManager; use OC\Activity\EventMerger; use OC\App\AppManager; use OC\App\AppStore\Bundles\BundleFetcher; -use OC\AppFramework\Bootstrap\Coordinator; use OC\AppFramework\Http\Request; use OC\AppFramework\Http\RequestId; use OC\AppFramework\Services\AppConfig; @@ -102,8 +101,6 @@ use OC\OCM\OCMDiscoveryService; use OC\OCS\CoreCapabilities; use OC\OCS\DiscoveryService; use OC\Preview\Db\PreviewMapper; -use OC\Preview\GeneratorHelper; -use OC\Preview\IMagickSupport; use OC\Preview\MimeIconProvider; use OC\Preview\Watcher; use OC\Preview\WatcherConnector; @@ -316,6 +313,9 @@ class Server extends ServerContainer implements IServerContainer { // To find out if we are running from CLI or not $this->registerParameter('isCLI', \OC::$CLI); $this->registerParameter('serverRoot', \OC::$SERVERROOT); + $this->registerService('userId', function (ContainerInterface $c): ?string { + return $c->get(ISession::class)->get('user_id'); + }); $this->registerService(ContainerInterface::class, function (ContainerInterface $c) { return $c; @@ -343,19 +343,7 @@ class Server extends ServerContainer implements IServerContainer { return new View(); }, false); - $this->registerService(IPreview::class, function (ContainerInterface $c) { - return new PreviewManager( - $c->get(IConfig::class), - $c->get(IRootFolder::class), - $c->get(IEventDispatcher::class), - $c->get(GeneratorHelper::class), - $c->get(ISession::class)->get('user_id'), - $c->get(Coordinator::class), - $c->get(IServerContainer::class), - $c->get(IBinaryFinder::class), - $c->get(IMagickSupport::class) - ); - }); + $this->registerAlias(IPreview::class, PreviewManager::class); $this->registerAlias(IMimeIconProvider::class, MimeIconProvider::class); $this->registerService(Watcher::class, function (ContainerInterface $c): Watcher { diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index d3314e54c7f..34c097b9f30 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -12,7 +12,6 @@ use OCP\AppFramework\QueryException; use OCP\Group\ISubAdmin; use OCP\IGroupManager; use OCP\IL10N; -use OCP\IServerContainer; use OCP\IURLGenerator; use OCP\IUser; use OCP\L10N\IFactory; @@ -21,6 +20,7 @@ use OCP\Settings\IIconSection; use OCP\Settings\IManager; use OCP\Settings\ISettings; use OCP\Settings\ISubAdminSettings; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; class Manager implements IManager { @@ -42,7 +42,7 @@ class Manager implements IManager { private LoggerInterface $log, private IFactory $l10nFactory, private IURLGenerator $url, - private IServerContainer $container, + private ContainerInterface $container, private AuthorizedGroupMapper $mapper, private IGroupManager $groupManager, private ISubAdmin $subAdmin, diff --git a/lib/private/SpeechToText/SpeechToTextManager.php b/lib/private/SpeechToText/SpeechToTextManager.php index bf9da3709c6..5126d756e25 100644 --- a/lib/private/SpeechToText/SpeechToTextManager.php +++ b/lib/private/SpeechToText/SpeechToTextManager.php @@ -17,7 +17,6 @@ use OCP\Files\File; use OCP\Files\InvalidPathException; use OCP\Files\NotFoundException; use OCP\IConfig; -use OCP\IServerContainer; use OCP\IUserSession; use OCP\PreConditionNotMetException; use OCP\SpeechToText\ISpeechToTextManager; @@ -28,6 +27,7 @@ use OCP\TaskProcessing\IManager as ITaskProcessingManager; use OCP\TaskProcessing\Task; use OCP\TaskProcessing\TaskTypes\AudioToText; use Psr\Container\ContainerExceptionInterface; +use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; use Psr\Log\LoggerInterface; use RuntimeException; @@ -38,7 +38,7 @@ class SpeechToTextManager implements ISpeechToTextManager { private ?array $providers = null; public function __construct( - private IServerContainer $serverContainer, + private ContainerInterface $serverContainer, private Coordinator $coordinator, private LoggerInterface $logger, private IJobList $jobList, diff --git a/lib/private/SystemTag/ManagerFactory.php b/lib/private/SystemTag/ManagerFactory.php index 7f3e732ddf0..4bc5c2ea34d 100644 --- a/lib/private/SystemTag/ManagerFactory.php +++ b/lib/private/SystemTag/ManagerFactory.php @@ -12,11 +12,11 @@ use OCP\EventDispatcher\IEventDispatcher; use OCP\IAppConfig; use OCP\IDBConnection; use OCP\IGroupManager; -use OCP\IServerContainer; use OCP\IUserSession; use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\ISystemTagManagerFactory; use OCP\SystemTag\ISystemTagObjectMapper; +use Psr\Container\ContainerInterface; /** * Default factory class for system tag managers @@ -29,7 +29,7 @@ class ManagerFactory implements ISystemTagManagerFactory { * Constructor for the system tag manager factory */ public function __construct( - private IServerContainer $serverContainer, + private ContainerInterface $serverContainer, ) { } diff --git a/lib/private/Talk/Broker.php b/lib/private/Talk/Broker.php index fcaddaf574f..0e961c92ef9 100644 --- a/lib/private/Talk/Broker.php +++ b/lib/private/Talk/Broker.php @@ -10,12 +10,12 @@ declare(strict_types=1); namespace OC\Talk; use OC\AppFramework\Bootstrap\Coordinator; -use OCP\IServerContainer; use OCP\Talk\Exceptions\NoBackendException; use OCP\Talk\IBroker; use OCP\Talk\IConversation; use OCP\Talk\IConversationOptions; use OCP\Talk\ITalkBackend; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use RuntimeException; use Throwable; @@ -27,7 +27,7 @@ class Broker implements IBroker { public function __construct( private Coordinator $coordinator, - private IServerContainer $container, + private ContainerInterface $container, private LoggerInterface $logger, ) { } diff --git a/lib/private/TaskProcessing/Manager.php b/lib/private/TaskProcessing/Manager.php index 0d67a1d9f7c..6821aee65a0 100644 --- a/lib/private/TaskProcessing/Manager.php +++ b/lib/private/TaskProcessing/Manager.php @@ -38,7 +38,6 @@ use OCP\IAppConfig; use OCP\ICache; use OCP\ICacheFactory; use OCP\IL10N; -use OCP\IServerContainer; use OCP\IUserManager; use OCP\IUserSession; use OCP\L10N\IFactory; @@ -98,6 +97,7 @@ use OCP\TextProcessing\IProviderWithUserId; use OCP\TextProcessing\SummaryTaskType; use OCP\TextProcessing\TopicsTaskType; use Psr\Container\ContainerExceptionInterface; +use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; use Psr\Log\LoggerInterface; @@ -141,7 +141,7 @@ class Manager implements IManager { public function __construct( private IAppConfig $appConfig, private Coordinator $coordinator, - private IServerContainer $serverContainer, + private ContainerInterface $serverContainer, private LoggerInterface $logger, private TaskMapper $taskMapper, private IJobList $jobList, diff --git a/lib/private/TextProcessing/Manager.php b/lib/private/TextProcessing/Manager.php index ea2f1d2a5d2..15a6823d7ee 100644 --- a/lib/private/TextProcessing/Manager.php +++ b/lib/private/TextProcessing/Manager.php @@ -18,7 +18,6 @@ use OCP\BackgroundJob\IJobList; use OCP\Common\Exception\NotFoundException; use OCP\DB\Exception; use OCP\IConfig; -use OCP\IServerContainer; use OCP\PreConditionNotMetException; use OCP\TaskProcessing\IManager as TaskProcessingIManager; use OCP\TaskProcessing\TaskTypes\TextToText; @@ -36,6 +35,7 @@ use OCP\TextProcessing\SummaryTaskType; use OCP\TextProcessing\Task; use OCP\TextProcessing\Task as OCPTask; use OCP\TextProcessing\TopicsTaskType; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use RuntimeException; use Throwable; @@ -52,7 +52,7 @@ class Manager implements IManager { ]; public function __construct( - private IServerContainer $serverContainer, + private ContainerInterface $serverContainer, private Coordinator $coordinator, private LoggerInterface $logger, private IJobList $jobList, diff --git a/lib/private/TextToImage/Manager.php b/lib/private/TextToImage/Manager.php index 330b130f075..74094a597a1 100644 --- a/lib/private/TextToImage/Manager.php +++ b/lib/private/TextToImage/Manager.php @@ -21,7 +21,6 @@ use OCP\Files\IAppData; use OCP\Files\NotFoundException; use OCP\Files\NotPermittedException; use OCP\IConfig; -use OCP\IServerContainer; use OCP\PreConditionNotMetException; use OCP\TextToImage\Exception\TaskFailureException; use OCP\TextToImage\Exception\TaskNotFoundException; @@ -29,6 +28,7 @@ use OCP\TextToImage\IManager; use OCP\TextToImage\IProvider; use OCP\TextToImage\IProviderWithUserId; use OCP\TextToImage\Task; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use RuntimeException; use Throwable; @@ -39,7 +39,7 @@ class Manager implements IManager { private IAppData $appData; public function __construct( - private IServerContainer $serverContainer, + private ContainerInterface $serverContainer, private Coordinator $coordinator, private LoggerInterface $logger, private IJobList $jobList, diff --git a/lib/private/Translation/TranslationManager.php b/lib/private/Translation/TranslationManager.php index a4d7138531a..5aecb1b8e06 100644 --- a/lib/private/Translation/TranslationManager.php +++ b/lib/private/Translation/TranslationManager.php @@ -13,7 +13,6 @@ namespace OC\Translation; use InvalidArgumentException; use OC\AppFramework\Bootstrap\Coordinator; use OCP\IConfig; -use OCP\IServerContainer; use OCP\IUserSession; use OCP\PreConditionNotMetException; use OCP\Translation\CouldNotTranslateException; @@ -23,6 +22,7 @@ use OCP\Translation\ITranslationProvider; use OCP\Translation\ITranslationProviderWithId; use OCP\Translation\ITranslationProviderWithUserId; use Psr\Container\ContainerExceptionInterface; +use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; use Psr\Log\LoggerInterface; use RuntimeException; @@ -33,7 +33,7 @@ class TranslationManager implements ITranslationManager { private ?array $providers = null; public function __construct( - private IServerContainer $serverContainer, + private ContainerInterface $serverContainer, private Coordinator $coordinator, private LoggerInterface $logger, private IConfig $config, diff --git a/tests/lib/AppFramework/Bootstrap/CoordinatorTest.php b/tests/lib/AppFramework/Bootstrap/CoordinatorTest.php index 844858ab5f7..e88d5afab3e 100644 --- a/tests/lib/AppFramework/Bootstrap/CoordinatorTest.php +++ b/tests/lib/AppFramework/Bootstrap/CoordinatorTest.php @@ -21,14 +21,14 @@ use OCP\AppFramework\QueryException; use OCP\Dashboard\IManager; use OCP\Diagnostics\IEventLogger; use OCP\EventDispatcher\IEventDispatcher; -use OCP\IServerContainer; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Test\TestCase; class CoordinatorTest extends TestCase { private IAppManager&MockObject $appManager; - private IServerContainer&MockObject $serverContainer; + private ContainerInterface&MockObject $serverContainer; private Registry&MockObject $crashReporterRegistry; private IManager&MockObject $dashboardManager; private IEventDispatcher&MockObject $eventDispatcher; @@ -41,7 +41,7 @@ class CoordinatorTest extends TestCase { parent::setUp(); $this->appManager = $this->createMock(IAppManager::class); - $this->serverContainer = $this->createMock(IServerContainer::class); + $this->serverContainer = $this->createMock(ContainerInterface::class); $this->crashReporterRegistry = $this->createMock(Registry::class); $this->dashboardManager = $this->createMock(IManager::class); $this->eventDispatcher = $this->createMock(IEventDispatcher::class); @@ -62,7 +62,7 @@ class CoordinatorTest extends TestCase { public function testBootAppNotLoadable(): void { $appId = 'settings'; $this->serverContainer->expects($this->once()) - ->method('query') + ->method('get') ->with(Application::class) ->willThrowException(new QueryException('')); $this->logger->expects($this->once()) @@ -75,7 +75,7 @@ class CoordinatorTest extends TestCase { $appId = 'settings'; $mockApp = $this->createMock(Application::class); $this->serverContainer->expects($this->once()) - ->method('query') + ->method('get') ->with(Application::class) ->willReturn($mockApp); @@ -98,7 +98,7 @@ class CoordinatorTest extends TestCase { } }; $this->serverContainer->expects($this->once()) - ->method('query') + ->method('get') ->with(Application::class) ->willReturn($mockApp); diff --git a/tests/lib/Calendar/Resource/ManagerTest.php b/tests/lib/Calendar/Resource/ManagerTest.php index 3c438847288..69964d14aec 100644 --- a/tests/lib/Calendar/Resource/ManagerTest.php +++ b/tests/lib/Calendar/Resource/ManagerTest.php @@ -15,29 +15,22 @@ use OC\AppFramework\Bootstrap\ServiceRegistration; use OC\Calendar\Resource\Manager; use OC\Calendar\ResourcesRoomsUpdater; use OCP\Calendar\Resource\IBackend; -use OCP\IServerContainer; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Container\ContainerInterface; use Test\TestCase; class ManagerTest extends TestCase { - /** @var Coordinator|MockObject */ - private $coordinator; - - /** @var IServerContainer|MockObject */ - private $server; - - /** @var ResourcesRoomsUpdater|MockObject */ - private $resourcesRoomsUpdater; - - /** @var Manager */ - private $manager; + private Coordinator&MockObject $coordinator; + private ContainerInterface&MockObject $server; + private ResourcesRoomsUpdater&MockObject $resourcesRoomsUpdater; + private Manager $manager; #[\Override] protected function setUp(): void { parent::setUp(); $this->coordinator = $this->createMock(Coordinator::class); - $this->server = $this->createMock(IServerContainer::class); + $this->server = $this->createMock(ContainerInterface::class); $this->resourcesRoomsUpdater = $this->createMock(ResourcesRoomsUpdater::class); $this->manager = new Manager( @@ -53,10 +46,10 @@ class ManagerTest extends TestCase { $backend2 = $this->createMock(IBackend::class); $backend2->method('getBackendIdentifier')->willReturn('backend_2'); $this->server->expects(self::exactly(2)) - ->method('query') + ->method('get') ->willReturnMap([ - ['calendar_resource_backend1', true, $backend1,], - ['calendar_resource_backend2', true, $backend2,], + ['calendar_resource_backend1', $backend1,], + ['calendar_resource_backend2', $backend2,], ]); $this->manager->registerBackend('calendar_resource_backend1'); @@ -85,7 +78,7 @@ class ManagerTest extends TestCase { new ServiceRegistration('calendar_resource_foo', $backendClass) ]); $this->server->expects(self::once()) - ->method('query') + ->method('get') ->with($backendClass) ->willReturn($backend); @@ -98,10 +91,10 @@ class ManagerTest extends TestCase { $backend2 = $this->createMock(IBackend::class); $backend2->method('getBackendIdentifier')->willReturn('backend_2'); $this->server->expects(self::exactly(2)) - ->method('query') + ->method('get') ->willReturnMap([ - ['calendar_resource_backend1', true, $backend1,], - ['calendar_resource_backend2', true, $backend2,], + ['calendar_resource_backend1', $backend1,], + ['calendar_resource_backend2', $backend2,], ]); $this->manager->registerBackend('calendar_resource_backend1'); @@ -117,10 +110,10 @@ class ManagerTest extends TestCase { $backend2 = $this->createMock(IBackend::class); $backend2->method('getBackendIdentifier')->willReturn('backend_2'); $this->server->expects(self::exactly(2)) - ->method('query') + ->method('get') ->willReturnMap([ - ['calendar_resource_backend1', true, $backend1,], - ['calendar_resource_backend2', true, $backend2,], + ['calendar_resource_backend1', $backend1,], + ['calendar_resource_backend2', $backend2,], ]); $this->manager->registerBackend('calendar_resource_backend1'); diff --git a/tests/lib/Calendar/Room/ManagerTest.php b/tests/lib/Calendar/Room/ManagerTest.php index 808f74fd653..a678c58d0e7 100644 --- a/tests/lib/Calendar/Room/ManagerTest.php +++ b/tests/lib/Calendar/Room/ManagerTest.php @@ -15,15 +15,15 @@ use OC\AppFramework\Bootstrap\ServiceRegistration; use OC\Calendar\ResourcesRoomsUpdater; use OC\Calendar\Room\Manager; use OCP\Calendar\Room\IBackend; -use OCP\IServerContainer; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Container\ContainerInterface; use Test\TestCase; class ManagerTest extends TestCase { /** @var Coordinator|MockObject */ private $coordinator; - /** @var IServerContainer|MockObject */ + /** @var ContainerInterface|MockObject */ private $server; /** @var ResourcesRoomsUpdater|MockObject */ @@ -37,7 +37,7 @@ class ManagerTest extends TestCase { parent::setUp(); $this->coordinator = $this->createMock(Coordinator::class); - $this->server = $this->createMock(IServerContainer::class); + $this->server = $this->createMock(ContainerInterface::class); $this->resourcesRoomsUpdater = $this->createMock(ResourcesRoomsUpdater::class); $this->manager = new Manager( @@ -53,10 +53,10 @@ class ManagerTest extends TestCase { $backend2 = $this->createMock(IBackend::class); $backend2->method('getBackendIdentifier')->willReturn('backend_2'); $this->server->expects(self::exactly(2)) - ->method('query') + ->method('get') ->willReturnMap([ - ['calendar_room_backend1', true, $backend1,], - ['calendar_room_backend2', true, $backend2,], + ['calendar_room_backend1', $backend1,], + ['calendar_room_backend2', $backend2,], ]); $this->manager->registerBackend('calendar_room_backend1'); @@ -87,7 +87,7 @@ class ManagerTest extends TestCase { new ServiceRegistration('calendar_room_foo', $backendClass) ]); $this->server->expects(self::once()) - ->method('query') + ->method('get') ->with($backendClass) ->willReturn($backend); @@ -100,10 +100,10 @@ class ManagerTest extends TestCase { $backend2 = $this->createMock(IBackend::class); $backend2->method('getBackendIdentifier')->willReturn('backend_2'); $this->server->expects(self::exactly(2)) - ->method('query') + ->method('get') ->willReturnMap([ - ['calendar_room_backend1', true, $backend1,], - ['calendar_room_backend2', true, $backend2,], + ['calendar_room_backend1', $backend1,], + ['calendar_room_backend2', $backend2,], ]); $this->manager->registerBackend('calendar_room_backend1'); @@ -119,10 +119,10 @@ class ManagerTest extends TestCase { $backend2 = $this->createMock(IBackend::class); $backend2->method('getBackendIdentifier')->willReturn('backend_2'); $this->server->expects(self::exactly(2)) - ->method('query') + ->method('get') ->willReturnMap([ - ['calendar_room_backend1', true, $backend1,], - ['calendar_room_backend2', true, $backend2,], + ['calendar_room_backend1', $backend1,], + ['calendar_room_backend2', $backend2,], ]); $this->manager->registerBackend('calendar_room_backend1'); diff --git a/tests/lib/Collaboration/Resources/ProviderManagerTest.php b/tests/lib/Collaboration/Resources/ProviderManagerTest.php index 15a36647147..f76906534da 100644 --- a/tests/lib/Collaboration/Resources/ProviderManagerTest.php +++ b/tests/lib/Collaboration/Resources/ProviderManagerTest.php @@ -12,12 +12,12 @@ use OC\Collaboration\Resources\ProviderManager; use OCA\Files\Collaboration\Resources\ResourceProvider; use OCP\AppFramework\QueryException; use OCP\Collaboration\Resources\IProviderManager; -use OCP\IServerContainer; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Test\TestCase; class ProviderManagerTest extends TestCase { - /** @var IServerContainer */ + /** @var ContainerInterface */ protected $serverContainer; /** @var LoggerInterface */ protected $logger; @@ -28,7 +28,7 @@ class ProviderManagerTest extends TestCase { protected function setUp(): void { parent::setUp(); - $this->serverContainer = $this->createMock(IServerContainer::class); + $this->serverContainer = $this->createMock(ContainerInterface::class); $this->logger = $this->createMock(LoggerInterface::class); $this->providerManager = new class($this->serverContainer, $this->logger) extends ProviderManager { @@ -49,7 +49,7 @@ class ProviderManagerTest extends TestCase { public function testGetResourceProvidersValidProvider(): void { $this->serverContainer->expects($this->once()) - ->method('query') + ->method('get') ->with($this->equalTo(ResourceProvider::class)) ->willReturn($this->createMock(ResourceProvider::class)); @@ -62,7 +62,7 @@ class ProviderManagerTest extends TestCase { public function testGetResourceProvidersInvalidProvider(): void { $this->serverContainer->expects($this->once()) - ->method('query') + ->method('get') ->with($this->equalTo('InvalidResourceProvider')) ->willThrowException(new QueryException('A meaningful error message')); @@ -77,7 +77,7 @@ class ProviderManagerTest extends TestCase { public function testGetResourceProvidersValidAndInvalidProvider(): void { $this->serverContainer->expects($this->exactly(2)) - ->method('query') + ->method('get') ->willReturnCallback(function (string $service) { if ($service === 'InvalidResourceProvider') { throw new QueryException('A meaningful error message'); diff --git a/tests/lib/Comments/FakeFactory.php b/tests/lib/Comments/FakeFactory.php index 572928b0684..029d3461a22 100644 --- a/tests/lib/Comments/FakeFactory.php +++ b/tests/lib/Comments/FakeFactory.php @@ -8,13 +8,13 @@ namespace Test\Comments; use OCP\Comments\ICommentsManagerFactory; -use OCP\IServerContainer; +use Psr\Container\ContainerInterface; /** * Class FakeFactory */ class FakeFactory implements ICommentsManagerFactory { - public function __construct(IServerContainer $serverContainer) { + public function __construct(ContainerInterface $serverContainer) { } #[\Override] diff --git a/tests/lib/Contacts/ContactsMenu/ActionProviderStoreTest.php b/tests/lib/Contacts/ContactsMenu/ActionProviderStoreTest.php index 723e64ce7b0..c31903dff10 100644 --- a/tests/lib/Contacts/ContactsMenu/ActionProviderStoreTest.php +++ b/tests/lib/Contacts/ContactsMenu/ActionProviderStoreTest.php @@ -15,26 +15,22 @@ use OC\Contacts\ContactsMenu\Providers\ProfileProvider; use OCP\App\IAppManager; use OCP\AppFramework\QueryException; use OCP\Contacts\ContactsMenu\IProvider; -use OCP\IServerContainer; use OCP\IUser; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Test\TestCase; class ActionProviderStoreTest extends TestCase { - /** @var IServerContainer|MockObject */ - private $serverContainer; - - /** @var IAppManager|MockObject */ - private $appManager; - + private ContainerInterface&MockObject $serverContainer; + private IAppManager&MockObject $appManager; private ActionProviderStore $actionProviderStore; #[\Override] protected function setUp(): void { parent::setUp(); - $this->serverContainer = $this->createMock(IServerContainer::class); + $this->serverContainer = $this->createMock(ContainerInterface::class); $this->appManager = $this->createMock(AppManager::class); $logger = $this->createMock(LoggerInterface::class); diff --git a/tests/lib/Http/WellKnown/RequestManagerTest.php b/tests/lib/Http/WellKnown/RequestManagerTest.php index 214c43dea61..fc6e721a616 100644 --- a/tests/lib/Http/WellKnown/RequestManagerTest.php +++ b/tests/lib/Http/WellKnown/RequestManagerTest.php @@ -19,32 +19,25 @@ use OCP\Http\WellKnown\IRequestContext; use OCP\Http\WellKnown\IResponse; use OCP\Http\WellKnown\JrdResponse; use OCP\IRequest; -use OCP\IServerContainer; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use RuntimeException; use Test\TestCase; use function get_class; class RequestManagerTest extends TestCase { - /** @var Coordinator|MockObject */ - private $coordinator; - - /** @var IServerContainer|MockObject */ - private $container; - - /** @var MockObject|LoggerInterface */ - private $logger; - - /** @var RequestManager */ - private $manager; + private Coordinator&MockObject $coordinator; + private ContainerInterface&MockObject $container; + private LoggerInterface&MockObject $logger; + private RequestManager $manager; #[\Override] protected function setUp(): void { parent::setUp(); $this->coordinator = $this->createMock(Coordinator::class); - $this->container = $this->createMock(IServerContainer::class); + $this->container = $this->createMock(ContainerInterface::class); $this->logger = $this->createMock(LoggerInterface::class); $this->manager = new RequestManager( diff --git a/tests/lib/InitialStateServiceTest.php b/tests/lib/InitialStateServiceTest.php index 2a74563f48d..d183cd517fb 100644 --- a/tests/lib/InitialStateServiceTest.php +++ b/tests/lib/InitialStateServiceTest.php @@ -12,17 +12,15 @@ namespace Test; use JsonSerializable; use OC\AppFramework\Bootstrap\Coordinator; use OC\InitialStateService; -use OCP\IServerContainer; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use stdClass; use function json_encode; class InitialStateServiceTest extends TestCase { - /** @var InitialStateService */ - private $service; - /** @var MockObject|LoggerInterface|(LoggerInterface&MockObject) */ - protected $logger; + private InitialStateService $service; + protected LoggerInterface&MockObject $logger; #[\Override] protected function setUp(): void { @@ -33,7 +31,7 @@ class InitialStateServiceTest extends TestCase { $this->service = new InitialStateService( $this->logger, $this->createMock(Coordinator::class), - $this->createMock(IServerContainer::class) + $this->createMock(ContainerInterface::class) ); } diff --git a/tests/lib/Settings/ManagerTest.php b/tests/lib/Settings/ManagerTest.php index 4aa866502e2..2fe7838e71b 100644 --- a/tests/lib/Settings/ManagerTest.php +++ b/tests/lib/Settings/ManagerTest.php @@ -11,38 +11,29 @@ use OC\Settings\AuthorizedGroupMapper; use OC\Settings\Manager; use OCA\WorkflowEngine\Settings\Section; use OCP\Group\ISubAdmin; -use OCP\IDBConnection; use OCP\IGroupManager; use OCP\IL10N; -use OCP\IServerContainer; use OCP\IURLGenerator; use OCP\L10N\IFactory; use OCP\Server; use OCP\Settings\ISettings; use OCP\Settings\ISubAdminSettings; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Test\TestCase; class ManagerTest extends TestCase { - /** @var Manager|MockObject */ - private $manager; - /** @var LoggerInterface|MockObject */ - private $logger; - /** @var IDBConnection|MockObject */ - private $l10n; - /** @var IFactory|MockObject */ - private $l10nFactory; - /** @var IURLGenerator|MockObject */ - private $url; - /** @var IServerContainer|MockObject */ - private $container; - /** @var AuthorizedGroupMapper|MockObject */ - private $mapper; - /** @var IGroupManager|MockObject */ - private $groupManager; - /** @var ISubAdmin|MockObject */ - private $subAdmin; + private LoggerInterface&MockObject $logger; + private IL10N&MockObject $l10n; + private IFactory&MockObject $l10nFactory; + private IURLGenerator&MockObject $url; + private ContainerInterface&MockObject $container; + private AuthorizedGroupMapper&MockObject $mapper; + private IGroupManager&MockObject $groupManager; + private ISubAdmin&MockObject $subAdmin; + + private Manager $manager; #[\Override] protected function setUp(): void { @@ -52,7 +43,7 @@ class ManagerTest extends TestCase { $this->l10n = $this->createMock(IL10N::class); $this->l10nFactory = $this->createMock(IFactory::class); $this->url = $this->createMock(IURLGenerator::class); - $this->container = $this->createMock(IServerContainer::class); + $this->container = $this->createMock(ContainerInterface::class); $this->mapper = $this->createMock(AuthorizedGroupMapper::class); $this->groupManager = $this->createMock(IGroupManager::class); $this->subAdmin = $this->createMock(ISubAdmin::class); diff --git a/tests/lib/Share20/LegacyHooksTest.php b/tests/lib/Share20/LegacyHooksTest.php index b0e56e69039..5987cb96020 100644 --- a/tests/lib/Share20/LegacyHooksTest.php +++ b/tests/lib/Share20/LegacyHooksTest.php @@ -13,7 +13,6 @@ use OCP\Constants; use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\Cache\ICacheEntry; use OCP\Files\File; -use OCP\IServerContainer; use OCP\Server; use OCP\Share\Events\BeforeShareCreatedEvent; use OCP\Share\Events\BeforeShareDeletedEvent; @@ -24,6 +23,7 @@ use OCP\Share\IManager as IShareManager; use OCP\Share\IShare; use OCP\Util; use PHPUnit\Framework\Attributes\Group; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Test\TestCase; @@ -52,7 +52,7 @@ class LegacyHooksTest extends TestCase { $symfonyDispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher(); $logger = $this->createMock(LoggerInterface::class); - $this->eventDispatcher = new EventDispatcher($symfonyDispatcher, Server::get(IServerContainer::class), $logger); + $this->eventDispatcher = new EventDispatcher($symfonyDispatcher, Server::get(ContainerInterface::class), $logger); $this->hooks = new LegacyHooks($this->eventDispatcher); $this->manager = Server::get(IShareManager::class); } diff --git a/tests/lib/Share20/ManagerTest.php b/tests/lib/Share20/ManagerTest.php index be9e817e8fb..059b7a4df3a 100644 --- a/tests/lib/Share20/ManagerTest.php +++ b/tests/lib/Share20/ManagerTest.php @@ -40,7 +40,6 @@ use OCP\IDBConnection; use OCP\IGroup; use OCP\IGroupManager; use OCP\IL10N; -use OCP\IServerContainer; use OCP\IUser; use OCP\IUserManager; use OCP\IUserSession; @@ -66,6 +65,7 @@ use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\MockBuilder; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; class DummyShareManagerListener { @@ -4775,7 +4775,7 @@ class ManagerTest extends \Test\TestCase { } public function testGetSharesInFolder(): void { - $factory = new DummyFactory2($this->createMock(IServerContainer::class)); + $factory = new DummyFactory2($this->createMock(ContainerInterface::class)); $manager = $this->createManager($factory); @@ -4822,7 +4822,7 @@ class ManagerTest extends \Test\TestCase { } public function testGetSharesInFolderOwnerless(): void { - $factory = new DummyFactory2($this->createMock(IServerContainer::class)); + $factory = new DummyFactory2($this->createMock(ContainerInterface::class)); $manager = $this->createManager($factory); @@ -4857,7 +4857,7 @@ class ManagerTest extends \Test\TestCase { public function testGetAccessList(): void { - $factory = new DummyFactory2($this->createMock(IServerContainer::class)); + $factory = new DummyFactory2($this->createMock(ContainerInterface::class)); $manager = $this->createManager($factory); @@ -4956,7 +4956,7 @@ class ManagerTest extends \Test\TestCase { } public function testGetAccessListWithCurrentAccess(): void { - $factory = new DummyFactory2($this->createMock(IServerContainer::class)); + $factory = new DummyFactory2($this->createMock(ContainerInterface::class)); $manager = $this->createManager($factory); @@ -5064,7 +5064,7 @@ class ManagerTest extends \Test\TestCase { } public function testGetAllShares(): void { - $factory = new DummyFactory2($this->createMock(IServerContainer::class)); + $factory = new DummyFactory2($this->createMock(ContainerInterface::class)); $manager = $this->createManager($factory); @@ -5180,7 +5180,7 @@ class DummyFactory implements IProviderFactory { /** @var IShareProvider */ protected $provider; - public function __construct(IServerContainer $serverContainer) { + public function __construct(ContainerInterface $serverContainer) { } /** diff --git a/tests/lib/Talk/BrokerTest.php b/tests/lib/Talk/BrokerTest.php index f49aaef1efd..4bac7dd31b2 100644 --- a/tests/lib/Talk/BrokerTest.php +++ b/tests/lib/Talk/BrokerTest.php @@ -14,10 +14,10 @@ use OC\AppFramework\Bootstrap\RegistrationContext; use OC\AppFramework\Bootstrap\ServiceRegistration; use OC\Talk\Broker; use OCP\AppFramework\QueryException; -use OCP\IServerContainer; use OCP\Talk\IConversationOptions; use OCP\Talk\ITalkBackend; use PHPUnit\Framework\Attributes\DataProvider; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use RuntimeException; use Test\TestCase; @@ -25,7 +25,7 @@ use Test\TestCase; class BrokerTest extends TestCase { private Coordinator $coordinator; - private IServerContainer $container; + private ContainerInterface $container; private LoggerInterface $logger; @@ -36,7 +36,7 @@ class BrokerTest extends TestCase { parent::setUp(); $this->coordinator = $this->createMock(Coordinator::class); - $this->container = $this->createMock(IServerContainer::class); + $this->container = $this->createMock(ContainerInterface::class); $this->logger = $this->createMock(LoggerInterface::class); $this->broker = new Broker( diff --git a/tests/lib/TaskProcessing/TaskProcessingTest.php b/tests/lib/TaskProcessing/TaskProcessingTest.php index a65e4d5e163..d557bcbed09 100644 --- a/tests/lib/TaskProcessing/TaskProcessingTest.php +++ b/tests/lib/TaskProcessing/TaskProcessingTest.php @@ -27,7 +27,6 @@ use OCP\IAppConfig; use OCP\ICacheFactory; use OCP\IConfig; use OCP\IDBConnection; -use OCP\IServerContainer; use OCP\IUser; use OCP\IUserManager; use OCP\IUserSession; @@ -56,6 +55,7 @@ use OCP\TaskProcessing\TaskTypes\TextToTextSummary; use OCP\TextProcessing\SummaryTaskType; use PHPUnit\Framework\Constraint\IsInstanceOf; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Test\BackgroundJob\DummyJobList; @@ -765,7 +765,7 @@ class ConflictingExternalTaskType implements ITaskType { #[\PHPUnit\Framework\Attributes\Group('DB')] class TaskProcessingTest extends \Test\TestCase { private Coordinator&MockObject $coordinator; - private IServerContainer&MockObject $serverContainer; + private ContainerInterface&MockObject $serverContainer; private IEventDispatcher&MockObject $eventDispatcher; private IJobList&MockObject $jobList; private IUserMountCache&MockObject $userMountCache; @@ -808,7 +808,7 @@ class TaskProcessingTest extends \Test\TestCase { $userManager->createUser(self::TEST_USER, 'test'); } - $this->serverContainer = $this->createMock(IServerContainer::class); + $this->serverContainer = $this->createMock(ContainerInterface::class); $this->serverContainer->expects($this->any())->method('get')->willReturnCallback(function ($class) { return $this->providers[$class]; }); diff --git a/tests/lib/TextProcessing/TextProcessingTest.php b/tests/lib/TextProcessing/TextProcessingTest.php index 5d80174d7ec..e54e4c6d60b 100644 --- a/tests/lib/TextProcessing/TextProcessingTest.php +++ b/tests/lib/TextProcessing/TextProcessingTest.php @@ -22,7 +22,6 @@ use OCP\BackgroundJob\IJobList; use OCP\Common\Exception\NotFoundException; use OCP\EventDispatcher\IEventDispatcher; use OCP\IConfig; -use OCP\IServerContainer; use OCP\PreConditionNotMetException; use OCP\Server; use OCP\TextProcessing\Events\TaskFailedEvent; @@ -34,6 +33,7 @@ use OCP\TextProcessing\SummaryTaskType; use OCP\TextProcessing\Task; use OCP\TextProcessing\TopicsTaskType; use PHPUnit\Framework\Constraint\IsInstanceOf; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Test\BackgroundJob\DummyJobList; @@ -102,7 +102,7 @@ class TextProcessingTest extends \Test\TestCase { private IManager $manager; private Coordinator $coordinator; private array $providers; - private IServerContainer $serverContainer; + private ContainerInterface $serverContainer; private IEventDispatcher $eventDispatcher; private RegistrationContext $registrationContext; private \DateTimeImmutable $currentTime; @@ -120,7 +120,7 @@ class TextProcessingTest extends \Test\TestCase { FreePromptProvider::class => new FreePromptProvider(), ]; - $this->serverContainer = $this->createMock(IServerContainer::class); + $this->serverContainer = $this->createMock(ContainerInterface::class); $this->serverContainer->expects($this->any())->method('get')->willReturnCallback(function ($class) { return $this->providers[$class]; }); From 609f0f0ed12cd882b4a1d4055c305dd613502d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Mon, 11 May 2026 15:22:07 +0200 Subject: [PATCH 6/7] chore: Update psalm baseline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- build/psalm-baseline.xml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml index 9f538d32c48..e2c67d49ea6 100644 --- a/build/psalm-baseline.xml +++ b/build/psalm-baseline.xml @@ -1409,14 +1409,8 @@ - - - - - - @@ -2046,9 +2040,6 @@ - - - @@ -2296,14 +2287,6 @@ - - - - - - - - From 028719b5147d76bf172a7fa31566ce6e70922572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Mon, 11 May 2026 16:10:24 +0200 Subject: [PATCH 7/7] chore: Fix deprecation notice in dav application tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- apps/dav/tests/unit/Connector/Sabre/NodeTest.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php index 855ca85cce8..7bbb4b2d7c5 100644 --- a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php @@ -98,8 +98,12 @@ class NodeTest extends \Test\TestCase { ->method('getRelativePath') ->with(null) ->willReturn(''); + $view + ->method('getAbsolutePath') + ->with(null) + ->willReturn(''); - $node = new File($view, $info); + $node = new File($view, $info); $this->assertEquals($expected, $node->getDavPermissions()); }