expose storagefactory in server container

Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
Robin Appelman 2018-09-19 19:02:15 +02:00
parent ea42474b31
commit 565d830c11
No known key found for this signature in database
GPG key ID: 42B69D8A64526EFB
3 changed files with 22 additions and 2 deletions

View file

@ -65,6 +65,7 @@ use OC\Files\Storage\StorageFactory;
use OC\Lockdown\Filesystem\NullStorage; use OC\Lockdown\Filesystem\NullStorage;
use OCP\Files\Config\IMountProvider; use OCP\Files\Config\IMountProvider;
use OCP\Files\NotFoundException; use OCP\Files\NotFoundException;
use OCP\Files\Storage\IStorageFactory;
use OCP\ILogger; use OCP\ILogger;
use OCP\IUserManager; use OCP\IUserManager;
@ -246,11 +247,11 @@ class Filesystem {
/** /**
* Returns the storage factory * Returns the storage factory
* *
* @return \OCP\Files\Storage\IStorageFactory * @return IStorageFactory
*/ */
public static function getLoader() { public static function getLoader() {
if (!self::$loader) { if (!self::$loader) {
self::$loader = new StorageFactory(); self::$loader = \OC::$server->query(IStorageFactory::class);
} }
return self::$loader; return self::$loader;
} }

View file

@ -80,6 +80,7 @@ use OC\Files\Mount\ObjectHomeMountProvider;
use OC\Files\Node\HookConnector; use OC\Files\Node\HookConnector;
use OC\Files\Node\LazyRoot; use OC\Files\Node\LazyRoot;
use OC\Files\Node\Root; use OC\Files\Node\Root;
use OC\Files\Storage\StorageFactory;
use OC\Files\View; use OC\Files\View;
use OC\Http\Client\ClientService; use OC\Http\Client\ClientService;
use OC\IntegrityCheck\Checker; use OC\IntegrityCheck\Checker;
@ -135,6 +136,7 @@ use OCP\Federation\ICloudFederationProviderManager;
use OCP\Federation\ICloudIdManager; use OCP\Federation\ICloudIdManager;
use OCP\Authentication\LoginCredentials\IStore; use OCP\Authentication\LoginCredentials\IStore;
use OCP\Files\NotFoundException; use OCP\Files\NotFoundException;
use OCP\Files\Storage\IStorageFactory;
use OCP\GlobalScale\IConfig; use OCP\GlobalScale\IConfig;
use OCP\ICacheFactory; use OCP\ICacheFactory;
use OCP\IDBConnection; use OCP\IDBConnection;
@ -1174,6 +1176,10 @@ class Server extends ServerContainer implements IServerContainer {
}); });
$this->registerAlias(IContactsStore::class, ContactsStore::class); $this->registerAlias(IContactsStore::class, ContactsStore::class);
$this->registerService(IStorageFactory::class, function() {
return new StorageFactory();
});
$this->registerAlias(IDashboardManager::class, Dashboard\DashboardManager::class); $this->registerAlias(IDashboardManager::class, Dashboard\DashboardManager::class);
$this->connectDispatcher(); $this->connectDispatcher();
@ -2024,4 +2030,11 @@ class Server extends ServerContainer implements IServerContainer {
public function getRemoteInstanceFactory() { public function getRemoteInstanceFactory() {
return $this->query(IInstanceFactory::class); return $this->query(IInstanceFactory::class);
} }
/**
* @return IStorageFactory
*/
public function getStorageFactory() {
return $this->query(IStorageFactory::class);
}
} }

View file

@ -584,4 +584,10 @@ interface IServerContainer extends IContainer {
* @since 13.0.0 * @since 13.0.0
*/ */
public function getRemoteInstanceFactory(); public function getRemoteInstanceFactory();
/**
* @return \OCP\Files\Storage\IStorageFactory
* @since 15.0.0
*/
public function getStorageFactory();
} }