From 20f4a8c04609e58d81037753bf1d9cd39f4e8c02 Mon Sep 17 00:00:00 2001
From: Roeland Jago Douma <roeland@famdouma.nl>
Date: Fri, 7 Feb 2020 11:37:04 +0100
Subject: [PATCH] Add a deprecated alias registration to find deprecated usages

Fixes #19345

Basically just a stupid wrapper with extra logging. So that we can at
least inform people they are using the wrong methods.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
---
 lib/private/Server.php | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/lib/private/Server.php b/lib/private/Server.php
index d6c8e57d696..32e9394a687 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -134,6 +134,7 @@ use OCA\Theming\ThemingDefaults;
 use OCA\Theming\Util;
 use OCP\Accounts\IAccountManager;
 use OCP\App\IAppManager;
+use OCP\AppFramework\QueryException;
 use OCP\Authentication\LoginCredentials\IStore;
 use OCP\Collaboration\AutoComplete\IManager;
 use OCP\Contacts\ContactsMenu\IActionFactory;
@@ -158,9 +159,11 @@ use OCP\Group\Events\UserAddedEvent;
 use OCP\Group\Events\UserRemovedEvent;
 use OCP\Group\ISubAdmin;
 use OCP\ICacheFactory;
+use OCP\IContainer;
 use OCP\IDBConnection;
 use OCP\IInitialStateService;
 use OCP\IL10N;
+use OCP\ILogger;
 use OCP\IServerContainer;
 use OCP\ITempManager;
 use OCP\IUser;
@@ -2179,4 +2182,18 @@ class Server extends ServerContainer implements IServerContainer {
 	public function getGeneratorHelper() {
 		return $this->query(\OC\Preview\GeneratorHelper::class);
 	}
+
+	private function registerDeprecatedAlias(string $alias, string $target) {
+		$this->registerService($alias, function (IContainer $container) use ($target, $alias) {
+			try {
+				/** @var ILogger $logger */
+				$logger = $container->query(ILogger::class);
+				$logger->debug('The requested alias "' . $alias . '" is depreacted. Please request "' . $target . '" directly. This alias will be removed in a future Nextcloud version.', ['app' => 'serverDI']);
+			} catch (QueryException $e) {
+				// Could not get logger. Continue
+			}
+
+			return $container->query($target);
+		}, false);
+	}
 }
-- 
GitLab