From 359a37fd10d0d8e3e243fbbca965817138127761 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 22 Sep 2022 13:20:37 +0200 Subject: [PATCH 1/4] remove Core Bundle Signed-off-by: Arthur Schiwon --- .../App/AppStore/Bundles/BundleFetcher.php | 1 - .../App/AppStore/Bundles/CoreBundle.php | 42 ------------------- .../AppStore/Bundles/BundleFetcherTest.php | 6 +-- .../App/AppStore/Bundles/CoreBundleTest.php | 36 ---------------- 4 files changed, 1 insertion(+), 84 deletions(-) delete mode 100644 lib/private/App/AppStore/Bundles/CoreBundle.php delete mode 100644 tests/lib/App/AppStore/Bundles/CoreBundleTest.php diff --git a/lib/private/App/AppStore/Bundles/BundleFetcher.php b/lib/private/App/AppStore/Bundles/BundleFetcher.php index 7ffe1fa17d77b..4745fef5203c7 100644 --- a/lib/private/App/AppStore/Bundles/BundleFetcher.php +++ b/lib/private/App/AppStore/Bundles/BundleFetcher.php @@ -57,7 +57,6 @@ public function getBundles() { */ public function getDefaultInstallationBundle() { return [ - new CoreBundle($this->l10n), ]; } diff --git a/lib/private/App/AppStore/Bundles/CoreBundle.php b/lib/private/App/AppStore/Bundles/CoreBundle.php deleted file mode 100644 index b1b182fd1aca9..0000000000000 --- a/lib/private/App/AppStore/Bundles/CoreBundle.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * @author Lukas Reschke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OC\App\AppStore\Bundles; - -class CoreBundle extends Bundle { - - /** - * {@inheritDoc} - */ - public function getName() { - return 'Core bundle'; - } - - /** - * {@inheritDoc} - */ - public function getAppIdentifiers() { - return [ - 'bruteforcesettings', - ]; - } -} diff --git a/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php b/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php index 55534cae6999e..daec97255ca50 100644 --- a/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php +++ b/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php @@ -22,7 +22,6 @@ namespace Test\App\AppStore\Bundles; use OC\App\AppStore\Bundles\BundleFetcher; -use OC\App\AppStore\Bundles\CoreBundle; use OC\App\AppStore\Bundles\EducationBundle; use OC\App\AppStore\Bundles\EnterpriseBundle; use OC\App\AppStore\Bundles\GroupwareBundle; @@ -59,15 +58,12 @@ public function testGetBundles() { } public function testGetDefaultInstallationBundle() { - $expected = [ - new CoreBundle($this->l10n), - ]; + $expected = []; $this->assertEquals($expected, $this->bundleFetcher->getDefaultInstallationBundle()); } public function testGetBundleByIdentifier() { $this->assertEquals(new EnterpriseBundle($this->l10n), $this->bundleFetcher->getBundleByIdentifier('EnterpriseBundle')); - $this->assertEquals(new CoreBundle($this->l10n), $this->bundleFetcher->getBundleByIdentifier('CoreBundle')); $this->assertEquals(new GroupwareBundle($this->l10n), $this->bundleFetcher->getBundleByIdentifier('GroupwareBundle')); } diff --git a/tests/lib/App/AppStore/Bundles/CoreBundleTest.php b/tests/lib/App/AppStore/Bundles/CoreBundleTest.php deleted file mode 100644 index 2ace537b93844..0000000000000 --- a/tests/lib/App/AppStore/Bundles/CoreBundleTest.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -namespace Test\App\AppStore\Bundles; - -use OC\App\AppStore\Bundles\CoreBundle; - -class CoreBundleTest extends BundleBase { - protected function setUp(): void { - parent::setUp(); - $this->bundle = new CoreBundle($this->l10n); - $this->bundleIdentifier = 'CoreBundle'; - $this->bundleName = 'Core bundle'; - $this->bundleAppIds = [ - 'bruteforcesettings', - ]; - } -} From 86b787d21e0a51f3378315868998df8fa12726ad Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 22 Sep 2022 13:24:06 +0200 Subject: [PATCH 2/4] remove InstallCoreBundle repair step - core bundle was empty and thus removed - all former apps installed this way are shipped Signed-off-by: Arthur Schiwon --- lib/private/Repair.php | 7 - .../Repair/Owncloud/InstallCoreBundle.php | 79 ---------- .../Repair/Owncloud/InstallCoreBundleTest.php | 142 ------------------ 3 files changed, 228 deletions(-) delete mode 100644 lib/private/Repair/Owncloud/InstallCoreBundle.php delete mode 100644 tests/Test/Repair/Owncloud/InstallCoreBundleTest.php diff --git a/lib/private/Repair.php b/lib/private/Repair.php index a59e9409d69e1..57abb97f0662f 100644 --- a/lib/private/Repair.php +++ b/lib/private/Repair.php @@ -40,7 +40,6 @@ use OCP\EventDispatcher\IEventDispatcher; use OCP\Migration\IOutput; use OCP\Migration\IRepairStep; -use OC\App\AppStore\Bundles\BundleFetcher; use OC\Avatar\AvatarManager; use OC\DB\Connection; use OC\DB\ConnectionAdapter; @@ -75,7 +74,6 @@ use OC\Repair\OldGroupMembershipShares; use OC\Repair\Owncloud\CleanPreviews; use OC\Repair\Owncloud\DropAccountTermsTable; -use OC\Repair\Owncloud\InstallCoreBundle; use OC\Repair\Owncloud\MigrateOauthTables; use OC\Repair\Owncloud\MoveAvatars; use OC\Repair\Owncloud\SaveAccountsTableData; @@ -193,11 +191,6 @@ public static function getRepairSteps() { new MigrateOauthTables(\OC::$server->get(Connection::class)), new FixMountStorages(\OC::$server->getDatabaseConnection()), new UpdateLanguageCodes(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig()), - new InstallCoreBundle( - \OC::$server->query(BundleFetcher::class), - \OC::$server->getConfig(), - \OC::$server->query(Installer::class) - ), new AddLogRotateJob(\OC::$server->getJobList()), new ClearFrontendCaches(\OC::$server->getMemCacheFactory(), \OC::$server->query(JSCombiner::class)), \OCP\Server::get(ClearGeneratedAvatarCache::class), diff --git a/lib/private/Repair/Owncloud/InstallCoreBundle.php b/lib/private/Repair/Owncloud/InstallCoreBundle.php deleted file mode 100644 index a733bc43923a3..0000000000000 --- a/lib/private/Repair/Owncloud/InstallCoreBundle.php +++ /dev/null @@ -1,79 +0,0 @@ - - * - * @author Julius Härtl - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OC\Repair\Owncloud; - -use OC\App\AppStore\Bundles\BundleFetcher; -use OC\Installer; -use OCP\IConfig; -use OCP\Migration\IOutput; -use OCP\Migration\IRepairStep; - -class InstallCoreBundle implements IRepairStep { - /** @var BundleFetcher */ - private $bundleFetcher; - /** @var IConfig */ - private $config; - /** @var Installer */ - private $installer; - - /** - * @param BundleFetcher $bundleFetcher - * @param IConfig $config - * @param Installer $installer - */ - public function __construct(BundleFetcher $bundleFetcher, - IConfig $config, - Installer $installer) { - $this->bundleFetcher = $bundleFetcher; - $this->config = $config; - $this->installer = $installer; - } - - /** - * {@inheritdoc} - */ - public function getName() { - return 'Install new core bundle components'; - } - - /** - * {@inheritdoc} - */ - public function run(IOutput $output) { - $versionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0'); - - if (version_compare($versionFromBeforeUpdate, '12.0.0.14', '>')) { - return; - } - - $defaultBundle = $this->bundleFetcher->getDefaultInstallationBundle(); - foreach ($defaultBundle as $bundle) { - try { - $this->installer->installAppBundle($bundle); - $output->info('Successfully installed core app bundle.'); - } catch (\Exception $e) { - $output->warning('Could not install core app bundle: ' . $e->getMessage()); - } - } - } -} diff --git a/tests/Test/Repair/Owncloud/InstallCoreBundleTest.php b/tests/Test/Repair/Owncloud/InstallCoreBundleTest.php deleted file mode 100644 index 61be5006c418a..0000000000000 --- a/tests/Test/Repair/Owncloud/InstallCoreBundleTest.php +++ /dev/null @@ -1,142 +0,0 @@ - - * - * @author Lukas Reschke - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -namespace Test\Repair\Owncloud; - -use OC\App\AppStore\Bundles\Bundle; -use OC\App\AppStore\Bundles\BundleFetcher; -use OC\Installer; -use OC\Repair\Owncloud\InstallCoreBundle; -use OCP\IConfig; -use OCP\Migration\IOutput; -use Test\TestCase; - -class InstallCoreBundleTest extends TestCase { - /** @var BundleFetcher|\PHPUnit_Framework_MockObject_MockObject */ - private $bundleFetcher; - /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ - private $config; - /** @var Installer|\PHPUnit_Framework_MockObject_MockObject */ - private $installer; - /** @var InstallCoreBundle */ - private $installCoreBundle; - - public function setUp(): void { - parent::setUp(); - $this->bundleFetcher = $this->createMock(BundleFetcher::class); - $this->config = $this->createMock(IConfig::class); - $this->installer = $this->createMock(Installer::class); - - $this->installCoreBundle = new InstallCoreBundle( - $this->bundleFetcher, - $this->config, - $this->installer - ); - } - - public function testGetName() { - $this->assertSame('Install new core bundle components', $this->installCoreBundle->getName()); - } - - public function testRunOlder() { - $this->config - ->expects($this->once()) - ->method('getSystemValue') - ->with('version', '0.0.0') - ->willReturn('12.0.0.15'); - $this->bundleFetcher - ->expects($this->never()) - ->method('getDefaultInstallationBundle'); - /** @var IOutput|\PHPUnit_Framework_MockObject_MockObject $output */ - $output = $this->createMock(IOutput::class); - $output - ->expects($this->never()) - ->method('info'); - $output - ->expects($this->never()) - ->method('warning'); - - $this->installCoreBundle->run($output); - } - - public function testRunWithException() { - $this->config - ->expects($this->once()) - ->method('getSystemValue') - ->with('version', '0.0.0') - ->willReturn('12.0.0.14'); - $bundle = $this->createMock(Bundle::class); - $this->bundleFetcher - ->expects($this->once()) - ->method('getDefaultInstallationBundle') - ->willReturn([ - $bundle, - ]); - $this->installer - ->expects($this->once()) - ->method('installAppBundle') - ->with($bundle) - ->willThrowException(new \Exception('ExceptionText')); - /** @var IOutput|\PHPUnit_Framework_MockObject_MockObject $output */ - $output = $this->createMock(IOutput::class); - $output - ->expects($this->never()) - ->method('info'); - $output - ->expects($this->once()) - ->method('warning') - ->with('Could not install core app bundle: ExceptionText'); - - $this->installCoreBundle->run($output); - } - - public function testRun() { - $this->config - ->expects($this->once()) - ->method('getSystemValue') - ->with('version', '0.0.0') - ->willReturn('12.0.0.14'); - $bundle = $this->createMock(Bundle::class); - $this->bundleFetcher - ->expects($this->once()) - ->method('getDefaultInstallationBundle') - ->willReturn([ - $bundle, - ]); - $this->installer - ->expects($this->once()) - ->method('installAppBundle') - ->with($bundle); - /** @var IOutput|\PHPUnit_Framework_MockObject_MockObject $output */ - $output = $this->createMock(IOutput::class); - $output - ->expects($this->once()) - ->method('info') - ->with('Successfully installed core app bundle.'); - $output - ->expects($this->never()) - ->method('warning'); - - $this->installCoreBundle->run($output); - } -} From 1115199ae3e1c0f2f23874253e6202725e28778c Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 22 Sep 2022 13:29:02 +0200 Subject: [PATCH 3/4] remove getDefaultInstallationBundle - because all apps are shipped now it was returning an empty result Signed-off-by: Arthur Schiwon --- .../App/AppStore/Bundles/BundleFetcher.php | 27 +++---------------- lib/private/Setup.php | 8 ------ .../AppStore/Bundles/BundleFetcherTest.php | 5 ---- 3 files changed, 4 insertions(+), 36 deletions(-) diff --git a/lib/private/App/AppStore/Bundles/BundleFetcher.php b/lib/private/App/AppStore/Bundles/BundleFetcher.php index 4745fef5203c7..0d2bb61495ff8 100644 --- a/lib/private/App/AppStore/Bundles/BundleFetcher.php +++ b/lib/private/App/AppStore/Bundles/BundleFetcher.php @@ -27,12 +27,8 @@ use OCP\IL10N; class BundleFetcher { - /** @var IL10N */ - private $l10n; + private IL10N $l10n; - /** - * @param IL10N $l10n - */ public function __construct(IL10N $l10n) { $this->l10n = $l10n; } @@ -40,7 +36,7 @@ public function __construct(IL10N $l10n) { /** * @return Bundle[] */ - public function getBundles() { + public function getBundles(): array { return [ new EnterpriseBundle($this->l10n), new HubBundle($this->l10n), @@ -50,16 +46,6 @@ public function getBundles() { ]; } - /** - * Bundles that should be installed by default after installation - * - * @return Bundle[] - */ - public function getDefaultInstallationBundle() { - return [ - ]; - } - /** * Get the bundle with the specified identifier * @@ -67,13 +53,8 @@ public function getDefaultInstallationBundle() { * @return Bundle * @throws \BadMethodCallException If the bundle does not exist */ - public function getBundleByIdentifier($identifier) { - /** @var Bundle[] $bundles */ - $bundles = array_merge( - $this->getBundles(), - $this->getDefaultInstallationBundle() - ); - foreach ($bundles as $bundle) { + public function getBundleByIdentifier(string $identifier): Bundle { + foreach ($this->getBundles() as $bundle) { if ($bundle->getIdentifier() === $identifier) { return $bundle; } diff --git a/lib/private/Setup.php b/lib/private/Setup.php index edbb9b332759b..a14d43a65f07e 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -403,14 +403,6 @@ public function install($options) { // Install shipped apps and specified app bundles Installer::installShippedApps(); - $bundleFetcher = new BundleFetcher(\OC::$server->getL10N('lib')); - $defaultInstallationBundles = $bundleFetcher->getDefaultInstallationBundle(); - foreach ($defaultInstallationBundles as $bundle) { - try { - $this->installer->installAppBundle($bundle); - } catch (Exception $e) { - } - } // create empty file in data dir, so we can later find // out that this is indeed an ownCloud data directory diff --git a/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php b/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php index daec97255ca50..c1fe5ef328a74 100644 --- a/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php +++ b/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php @@ -57,11 +57,6 @@ public function testGetBundles() { $this->assertEquals($expected, $this->bundleFetcher->getBundles()); } - public function testGetDefaultInstallationBundle() { - $expected = []; - $this->assertEquals($expected, $this->bundleFetcher->getDefaultInstallationBundle()); - } - public function testGetBundleByIdentifier() { $this->assertEquals(new EnterpriseBundle($this->l10n), $this->bundleFetcher->getBundleByIdentifier('EnterpriseBundle')); $this->assertEquals(new GroupwareBundle($this->l10n), $this->bundleFetcher->getBundleByIdentifier('GroupwareBundle')); From aff9302638ebb3c51527ff6208416437dcaffe77 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 22 Sep 2022 13:31:48 +0200 Subject: [PATCH 4/4] update autoloader Signed-off-by: Arthur Schiwon --- lib/composer/composer/autoload_classmap.php | 2 -- lib/composer/composer/autoload_static.php | 2 -- 2 files changed, 4 deletions(-) diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 15c12a24a1648..33467ad104afb 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -720,7 +720,6 @@ 'OC\\App\\AppManager' => $baseDir . '/lib/private/App/AppManager.php', 'OC\\App\\AppStore\\Bundles\\Bundle' => $baseDir . '/lib/private/App/AppStore/Bundles/Bundle.php', 'OC\\App\\AppStore\\Bundles\\BundleFetcher' => $baseDir . '/lib/private/App/AppStore/Bundles/BundleFetcher.php', - 'OC\\App\\AppStore\\Bundles\\CoreBundle' => $baseDir . '/lib/private/App/AppStore/Bundles/CoreBundle.php', 'OC\\App\\AppStore\\Bundles\\EducationBundle' => $baseDir . '/lib/private/App/AppStore/Bundles/EducationBundle.php', 'OC\\App\\AppStore\\Bundles\\EnterpriseBundle' => $baseDir . '/lib/private/App/AppStore/Bundles/EnterpriseBundle.php', 'OC\\App\\AppStore\\Bundles\\GroupwareBundle' => $baseDir . '/lib/private/App/AppStore/Bundles/GroupwareBundle.php', @@ -1462,7 +1461,6 @@ 'OC\\Repair\\Owncloud\\CleanPreviews' => $baseDir . '/lib/private/Repair/Owncloud/CleanPreviews.php', 'OC\\Repair\\Owncloud\\CleanPreviewsBackgroundJob' => $baseDir . '/lib/private/Repair/Owncloud/CleanPreviewsBackgroundJob.php', 'OC\\Repair\\Owncloud\\DropAccountTermsTable' => $baseDir . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', - 'OC\\Repair\\Owncloud\\InstallCoreBundle' => $baseDir . '/lib/private/Repair/Owncloud/InstallCoreBundle.php', 'OC\\Repair\\Owncloud\\MigrateOauthTables' => $baseDir . '/lib/private/Repair/Owncloud/MigrateOauthTables.php', 'OC\\Repair\\Owncloud\\MoveAvatars' => $baseDir . '/lib/private/Repair/Owncloud/MoveAvatars.php', 'OC\\Repair\\Owncloud\\MoveAvatarsBackgroundJob' => $baseDir . '/lib/private/Repair/Owncloud/MoveAvatarsBackgroundJob.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 92cf429bdd46f..ced12e586a497 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -753,7 +753,6 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2 'OC\\App\\AppManager' => __DIR__ . '/../../..' . '/lib/private/App/AppManager.php', 'OC\\App\\AppStore\\Bundles\\Bundle' => __DIR__ . '/../../..' . '/lib/private/App/AppStore/Bundles/Bundle.php', 'OC\\App\\AppStore\\Bundles\\BundleFetcher' => __DIR__ . '/../../..' . '/lib/private/App/AppStore/Bundles/BundleFetcher.php', - 'OC\\App\\AppStore\\Bundles\\CoreBundle' => __DIR__ . '/../../..' . '/lib/private/App/AppStore/Bundles/CoreBundle.php', 'OC\\App\\AppStore\\Bundles\\EducationBundle' => __DIR__ . '/../../..' . '/lib/private/App/AppStore/Bundles/EducationBundle.php', 'OC\\App\\AppStore\\Bundles\\EnterpriseBundle' => __DIR__ . '/../../..' . '/lib/private/App/AppStore/Bundles/EnterpriseBundle.php', 'OC\\App\\AppStore\\Bundles\\GroupwareBundle' => __DIR__ . '/../../..' . '/lib/private/App/AppStore/Bundles/GroupwareBundle.php', @@ -1495,7 +1494,6 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2 'OC\\Repair\\Owncloud\\CleanPreviews' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/CleanPreviews.php', 'OC\\Repair\\Owncloud\\CleanPreviewsBackgroundJob' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/CleanPreviewsBackgroundJob.php', 'OC\\Repair\\Owncloud\\DropAccountTermsTable' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', - 'OC\\Repair\\Owncloud\\InstallCoreBundle' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/InstallCoreBundle.php', 'OC\\Repair\\Owncloud\\MigrateOauthTables' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/MigrateOauthTables.php', 'OC\\Repair\\Owncloud\\MoveAvatars' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/MoveAvatars.php', 'OC\\Repair\\Owncloud\\MoveAvatarsBackgroundJob' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/MoveAvatarsBackgroundJob.php',