From c4539c34c9ea78f2bc0fa5c038ebad247fd61fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 7 Mar 2018 12:10:36 +0100 Subject: Move base url from global cache prefix to frontend related ones MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- apps/theming/lib/ThemingDefaults.php | 2 +- lib/private/Server.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 94abb4e288a..79995f52efb 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -231,7 +231,7 @@ class ThemingDefaults extends \OC_Defaults { * @return array scss variables to overwrite */ public function getScssVariables() { - $cache = $this->cacheFactory->createDistributed('theming'); + $cache = $this->cacheFactory->createDistributed('theming-' . $this->urlGenerator->getBaseUrl()); if ($value = $cache->get('getScssVariables')) { return $value; } diff --git a/lib/private/Server.php b/lib/private/Server.php index eae9c9d5a79..44c107e0cf2 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -496,7 +496,7 @@ class Server extends ServerContainer implements IServerContainer { $version = implode(',', $v); $instanceId = \OC_Util::getInstanceId(); $path = \OC::$SERVERROOT; - $prefix = md5($instanceId . '-' . $version . '-' . $path . '-' . $urlGenerator->getBaseUrl()); + $prefix = md5($instanceId . '-' . $version . '-' . $path); return new \OC\Memcache\Factory($prefix, $c->getLogger(), $config->getSystemValue('memcache.local', null), $config->getSystemValue('memcache.distributed', null), @@ -963,7 +963,7 @@ class Server extends ServerContainer implements IServerContainer { $c->getConfig(), $c->getThemingDefaults(), \OC::$SERVERROOT, - $cacheFactory->createDistributed('SCSS') + $cacheFactory->createDistributed('SCSS-' . md5($this->getURLGenerator()->getBaseUrl())) ); }); $this->registerService(JSCombiner::class, function (Server $c) { @@ -972,7 +972,7 @@ class Server extends ServerContainer implements IServerContainer { return new JSCombiner( $c->getAppDataDir('js'), $c->getURLGenerator(), - $cacheFactory->createDistributed('JS'), + $cacheFactory->createDistributed('JS-' . md5($this->getURLGenerator()->getBaseUrl())), $c->getSystemConfig(), $c->getLogger() ); -- cgit v1.2.3 From a098b578179c1d7c307b1e97a34d15444ee33c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 7 Mar 2018 12:11:03 +0100 Subject: Use JSCombiner from server container when searching for JS files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/private/TemplateLayout.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index d37a8bbabbe..12b063d96e2 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -301,13 +301,7 @@ class TemplateLayout extends \OC_Template { $theme, array( \OC::$SERVERROOT => \OC::$WEBROOT ), array( \OC::$SERVERROOT => \OC::$WEBROOT ), - new JSCombiner( - \OC::$server->getAppDataDir('js'), - \OC::$server->getURLGenerator(), - \OC::$server->getMemCacheFactory()->createDistributed('JS'), - \OC::$server->getSystemConfig(), - \OC::$server->getLogger() - ) + \OC::$server->query(JSCombiner::class) ); $locator->find($scripts); return $locator->getResources(); -- cgit v1.2.3 From b14e4ec6a6e856f64a64ca9ae417b665f20ad037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 7 Mar 2018 14:13:36 +0100 Subject: Actually clear cache values for all base urls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/private/Server.php | 4 ++-- lib/private/Template/JSCombiner.php | 13 +++++++++---- lib/private/Template/SCSSCacher.php | 13 +++++++++---- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/lib/private/Server.php b/lib/private/Server.php index 44c107e0cf2..84af87f0d2f 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -963,7 +963,7 @@ class Server extends ServerContainer implements IServerContainer { $c->getConfig(), $c->getThemingDefaults(), \OC::$SERVERROOT, - $cacheFactory->createDistributed('SCSS-' . md5($this->getURLGenerator()->getBaseUrl())) + $this->getMemCacheFactory() ); }); $this->registerService(JSCombiner::class, function (Server $c) { @@ -972,7 +972,7 @@ class Server extends ServerContainer implements IServerContainer { return new JSCombiner( $c->getAppDataDir('js'), $c->getURLGenerator(), - $cacheFactory->createDistributed('JS-' . md5($this->getURLGenerator()->getBaseUrl())), + $this->getMemCacheFactory(), $c->getSystemConfig(), $c->getLogger() ); diff --git a/lib/private/Template/JSCombiner.php b/lib/private/Template/JSCombiner.php index c5adcee6854..e69ee9e7b45 100644 --- a/lib/private/Template/JSCombiner.php +++ b/lib/private/Template/JSCombiner.php @@ -30,6 +30,7 @@ use OCP\Files\IAppData; use OCP\Files\NotFoundException; use OCP\Files\NotPermittedException; use OCP\Files\SimpleFS\ISimpleFolder; +use OCP\ICacheFactory; use OCP\ILogger; use OCP\IURLGenerator; @@ -50,21 +51,25 @@ class JSCombiner { /** @var ILogger */ protected $logger; + /** @var ICacheFactory */ + private $cacheFactory; + /** * @param IAppData $appData * @param IURLGenerator $urlGenerator - * @param ICache $depsCache + * @param ICacheFactory $cacheFactory * @param SystemConfig $config * @param ILogger $logger */ public function __construct(IAppData $appData, IURLGenerator $urlGenerator, - ICache $depsCache, + ICacheFactory $cacheFactory, SystemConfig $config, ILogger $logger) { $this->appData = $appData; $this->urlGenerator = $urlGenerator; - $this->depsCache = $depsCache; + $this->cacheFactory = $cacheFactory; + $this->depsCache = $this->cacheFactory->createDistributed('JS-' . md5($this->urlGenerator->getBaseUrl())); $this->config = $config; $this->logger = $logger; } @@ -236,7 +241,7 @@ class JSCombiner { * @throws NotFoundException */ public function resetCache() { - $this->depsCache->clear(); + $this->cacheFactory->createDistributed('JS-')->clear(); $appDirectory = $this->appData->getDirectoryListing(); foreach ($appDirectory as $folder) { foreach ($folder->getDirectoryListing() as $file) { diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php index 66569cba025..ba3c1a0ffe3 100644 --- a/lib/private/Template/SCSSCacher.php +++ b/lib/private/Template/SCSSCacher.php @@ -39,6 +39,7 @@ use OCP\Files\NotPermittedException; use OCP\Files\SimpleFS\ISimpleFile; use OCP\Files\SimpleFS\ISimpleFolder; use OCP\ICache; +use OCP\ICacheFactory; use OCP\IConfig; use OCP\ILogger; use OCP\IURLGenerator; @@ -66,6 +67,9 @@ class SCSSCacher { /** @var null|string */ protected $injectedVariables = null; + /** @var ICacheFactory */ + private $cacheFactory; + /** * @param ILogger $logger * @param Factory $appDataFactory @@ -73,7 +77,7 @@ class SCSSCacher { * @param IConfig $config * @param \OC_Defaults $defaults * @param string $serverRoot - * @param ICache $depsCache + * @param ICacheFactory $cacheFactory */ public function __construct(ILogger $logger, Factory $appDataFactory, @@ -81,14 +85,15 @@ class SCSSCacher { IConfig $config, \OC_Defaults $defaults, $serverRoot, - ICache $depsCache) { + ICacheFactory $cacheFactory) { $this->logger = $logger; $this->appData = $appDataFactory->get('css'); $this->urlGenerator = $urlGenerator; $this->config = $config; $this->defaults = $defaults; $this->serverRoot = $serverRoot; - $this->depsCache = $depsCache; + $this->cacheFactory = $cacheFactory; + $this->depsCache = $cacheFactory->createDistributed('SCSS-' . md5($this->urlGenerator->getBaseUrl())); } /** @@ -256,7 +261,7 @@ class SCSSCacher { */ public function resetCache() { $this->injectedVariables = null; - $this->depsCache->clear(); + $this->cacheFactory->createDistributed('SCSS-')->clear(); $appDirectory = $this->appData->getDirectoryListing(); foreach ($appDirectory as $folder) { foreach ($folder->getDirectoryListing() as $file) { -- cgit v1.2.3 From d4d3cecbf8e5cd8ac04d1b451af17eb6b5682534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 7 Mar 2018 14:51:43 +0100 Subject: Fix tests to use ICacheFactory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- apps/theming/lib/ThemingDefaults.php | 4 ++-- apps/theming/tests/ThemingDefaultsTest.php | 2 +- tests/lib/Template/CSSResourceLocatorTest.php | 11 ++++++----- tests/lib/Template/JSCombinerTest.php | 16 ++++++++++++++-- tests/lib/Template/JSResourceLocatorTest.php | 10 +++++----- tests/lib/Template/SCSSCacherTest.php | 15 +++++++++++++-- 6 files changed, 41 insertions(+), 17 deletions(-) diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 79995f52efb..986de4b1e86 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -298,7 +298,7 @@ class ThemingDefaults extends \OC_Defaults { * @return bool */ public function shouldReplaceIcons() { - $cache = $this->cacheFactory->createDistributed('theming'); + $cache = $this->cacheFactory->createDistributed('theming-'); if($value = $cache->get('shouldReplaceIcons')) { return (bool)$value; } @@ -320,7 +320,7 @@ class ThemingDefaults extends \OC_Defaults { private function increaseCacheBuster() { $cacheBusterKey = $this->config->getAppValue('theming', 'cachebuster', '0'); $this->config->setAppValue('theming', 'cachebuster', (int)$cacheBusterKey+1); - $this->cacheFactory->createDistributed('theming')->clear('getScssVariables'); + $this->cacheFactory->createDistributed('theming-')->clear('getScssVariables'); } /** diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php index 1a4679a2993..b29b27b565c 100644 --- a/apps/theming/tests/ThemingDefaultsTest.php +++ b/apps/theming/tests/ThemingDefaultsTest.php @@ -79,7 +79,7 @@ class ThemingDefaultsTest extends TestCase { $this->cacheFactory ->expects($this->any()) ->method('createDistributed') - ->with('theming') + ->with('theming-') ->willReturn($this->cache); $this->template = new ThemingDefaults( $this->config, diff --git a/tests/lib/Template/CSSResourceLocatorTest.php b/tests/lib/Template/CSSResourceLocatorTest.php index a16cc18cb0a..22843d7f935 100644 --- a/tests/lib/Template/CSSResourceLocatorTest.php +++ b/tests/lib/Template/CSSResourceLocatorTest.php @@ -24,11 +24,12 @@ namespace Test\Template; use OC\Files\AppData\Factory; +use OCP\Files\IAppData; +use OCP\ICacheFactory; use OCP\ILogger; use OCP\IURLGenerator; use OCP\IConfig; use OCA\Theming\ThemingDefaults; -use OCP\ICache; use OC\Template\SCSSCacher; use OC\Template\CSSResourceLocator; @@ -41,8 +42,8 @@ class CSSResourceLocatorTest extends \Test\TestCase { protected $config; /** @var ThemingDefaults|\PHPUnit_Framework_MockObject_MockObject */ protected $themingDefaults; - /** @var ICache|\PHPUnit_Framework_MockObject_MockObject */ - protected $depsCache; + /** @var ICacheFactory|\PHPUnit_Framework_MockObject_MockObject */ + protected $cacheFactory; /** @var ILogger|\PHPUnit_Framework_MockObject_MockObject */ protected $logger; @@ -53,7 +54,7 @@ class CSSResourceLocatorTest extends \Test\TestCase { $this->appData = $this->createMock(IAppData::class); $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->config = $this->createMock(IConfig::class); - $this->depsCache = $this->createMock(ICache::class); + $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->themingDefaults = $this->createMock(ThemingDefaults::class); } @@ -68,7 +69,7 @@ class CSSResourceLocatorTest extends \Test\TestCase { $this->config, $this->themingDefaults, \OC::$SERVERROOT, - $this->depsCache + $this->cacheFactory ); return new CSSResourceLocator( $this->logger, diff --git a/tests/lib/Template/JSCombinerTest.php b/tests/lib/Template/JSCombinerTest.php index d5f7000e0a5..e10e44aa358 100644 --- a/tests/lib/Template/JSCombinerTest.php +++ b/tests/lib/Template/JSCombinerTest.php @@ -31,6 +31,7 @@ use OCP\Files\NotPermittedException; use OCP\Files\SimpleFS\ISimpleFile; use OCP\Files\SimpleFS\ISimpleFolder; use OCP\ICache; +use OCP\ICacheFactory; use OCP\ILogger; use OCP\IURLGenerator; @@ -47,6 +48,8 @@ class JSCombinerTest extends \Test\TestCase { protected $jsCombiner; /** @var ILogger|\PHPUnit_Framework_MockObject_MockObject */ protected $logger; + /** @var ICacheFactory|\PHPUnit_Framework_MockObject_MockObject */ + protected $cacheFactory; protected function setUp() { parent::setUp(); @@ -54,15 +57,20 @@ class JSCombinerTest extends \Test\TestCase { $this->appData = $this->createMock(IAppData::class); $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->config = $this->createMock(SystemConfig::class); + $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->depsCache = $this->createMock(ICache::class); + $this->cacheFactory->expects($this->at(0)) + ->method('createDistributed') + ->willReturn($this->depsCache); $this->logger = $this->createMock(ILogger::class); $this->jsCombiner = new JSCombiner( $this->appData, $this->urlGenerator, - $this->depsCache, + $this->cacheFactory, $this->config, $this->logger ); + } public function testProcessDebugMode() { @@ -522,7 +530,11 @@ var b = \'world\'; ->method('getDirectoryListing') ->willReturn([$file]); - $this->depsCache->expects($this->once()) + $cache = $this->createMock(ICache::class); + $this->cacheFactory->expects($this->once()) + ->method('createDistributed') + ->willReturn($cache); + $cache->expects($this->once()) ->method('clear') ->with(''); $this->appData->expects($this->once()) diff --git a/tests/lib/Template/JSResourceLocatorTest.php b/tests/lib/Template/JSResourceLocatorTest.php index 6841ee2fee3..f5dff62729f 100644 --- a/tests/lib/Template/JSResourceLocatorTest.php +++ b/tests/lib/Template/JSResourceLocatorTest.php @@ -25,8 +25,8 @@ namespace Test\Template; use OC\Template\JSCombiner; use OCP\Files\IAppData; +use OCP\ICacheFactory; use OCP\IURLGenerator; -use OCP\ICache; use OC\SystemConfig; use OCP\ILogger; use OC\Template\JSResourceLocator; @@ -38,8 +38,8 @@ class JSResourceLocatorTest extends \Test\TestCase { protected $urlGenerator; /** @var SystemConfig|\PHPUnit_Framework_MockObject_MockObject */ protected $config; - /** @var ICache|\PHPUnit_Framework_MockObject_MockObject */ - protected $depsCache; + /** @var ICacheFactory|\PHPUnit_Framework_MockObject_MockObject */ + protected $cacheFactory; /** @var ILogger|\PHPUnit_Framework_MockObject_MockObject */ protected $logger; @@ -49,7 +49,7 @@ class JSResourceLocatorTest extends \Test\TestCase { $this->appData = $this->createMock(IAppData::class); $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->config = $this->createMock(SystemConfig::class); - $this->depsCache = $this->createMock(ICache::class); + $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->logger = $this->createMock(ILogger::class); } @@ -57,7 +57,7 @@ class JSResourceLocatorTest extends \Test\TestCase { $jsCombiner = new JSCombiner( $this->appData, $this->urlGenerator, - $this->depsCache, + $this->cacheFactory, $this->config, $this->logger ); diff --git a/tests/lib/Template/SCSSCacherTest.php b/tests/lib/Template/SCSSCacherTest.php index dfaeb803578..169ee26802a 100644 --- a/tests/lib/Template/SCSSCacherTest.php +++ b/tests/lib/Template/SCSSCacherTest.php @@ -31,6 +31,7 @@ use OCP\Files\NotFoundException; use OCP\Files\SimpleFS\ISimpleFile; use OCP\Files\SimpleFS\ISimpleFolder; use OCP\ICache; +use OCP\ICacheFactory; use OCP\IConfig; use OCP\ILogger; use OCP\IURLGenerator; @@ -50,6 +51,8 @@ class SCSSCacherTest extends \Test\TestCase { protected $scssCacher; /** @var ICache|\PHPUnit_Framework_MockObject_MockObject */ protected $depsCache; + /** @var ICacheFactory|\PHPUnit_Framework_MockObject_MockObject */ + protected $cacheFactory; protected function setUp() { parent::setUp(); @@ -60,7 +63,11 @@ class SCSSCacherTest extends \Test\TestCase { $factory->method('get')->with('css')->willReturn($this->appData); $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->config = $this->createMock(IConfig::class); + $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->depsCache = $this->createMock(ICache::class); + $this->cacheFactory->expects($this->at(0)) + ->method('createDistributed') + ->willReturn($this->depsCache); $this->themingDefaults = $this->createMock(ThemingDefaults::class); $this->scssCacher = new SCSSCacher( $this->logger, @@ -69,7 +76,7 @@ class SCSSCacherTest extends \Test\TestCase { $this->config, $this->themingDefaults, \OC::$SERVERROOT, - $this->depsCache + $this->cacheFactory ); $this->themingDefaults->expects($this->any())->method('getScssVariables')->willReturn([]); @@ -459,7 +466,11 @@ class SCSSCacherTest extends \Test\TestCase { ->method('getDirectoryListing') ->willReturn([$file]); - $this->depsCache->expects($this->once()) + $cache = $this->createMock(ICache::class); + $this->cacheFactory->expects($this->once()) + ->method('createDistributed') + ->willReturn($cache); + $cache->expects($this->once()) ->method('clear') ->with(''); $this->appData->expects($this->once()) -- cgit v1.2.3 From 88e9542d12827461d74fb9d0e72694f5f8911f45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 7 Mar 2018 15:07:03 +0100 Subject: Use cache prefix for theming as well MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- apps/theming/lib/ThemingDefaults.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 986de4b1e86..688878bb50a 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -298,7 +298,7 @@ class ThemingDefaults extends \OC_Defaults { * @return bool */ public function shouldReplaceIcons() { - $cache = $this->cacheFactory->createDistributed('theming-'); + $cache = $this->cacheFactory->createDistributed('theming-' . $this->urlGenerator->getBaseUrl()); if($value = $cache->get('shouldReplaceIcons')) { return (bool)$value; } -- cgit v1.2.3 From 43243380f1b29e7a927b5e589c052e4b64b22b5d Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Fri, 9 Mar 2018 14:43:54 +0100 Subject: Always return the depscache Signed-off-by: Roeland Jago Douma --- tests/lib/Template/SCSSCacherTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/Template/SCSSCacherTest.php b/tests/lib/Template/SCSSCacherTest.php index 169ee26802a..9eb6c5a5200 100644 --- a/tests/lib/Template/SCSSCacherTest.php +++ b/tests/lib/Template/SCSSCacherTest.php @@ -65,7 +65,7 @@ class SCSSCacherTest extends \Test\TestCase { $this->config = $this->createMock(IConfig::class); $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->depsCache = $this->createMock(ICache::class); - $this->cacheFactory->expects($this->at(0)) + $this->cacheFactory ->method('createDistributed') ->willReturn($this->depsCache); $this->themingDefaults = $this->createMock(ThemingDefaults::class); -- cgit v1.2.3 From 17f75d67975025f4d0660eb2ba78305a7839ec68 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 9 Mar 2018 15:36:53 +0100 Subject: Mock method of actual cache Signed-off-by: Morris Jobke --- tests/lib/Template/SCSSCacherTest.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/tests/lib/Template/SCSSCacherTest.php b/tests/lib/Template/SCSSCacherTest.php index 9eb6c5a5200..adf49eec796 100644 --- a/tests/lib/Template/SCSSCacherTest.php +++ b/tests/lib/Template/SCSSCacherTest.php @@ -466,11 +466,7 @@ class SCSSCacherTest extends \Test\TestCase { ->method('getDirectoryListing') ->willReturn([$file]); - $cache = $this->createMock(ICache::class); - $this->cacheFactory->expects($this->once()) - ->method('createDistributed') - ->willReturn($cache); - $cache->expects($this->once()) + $this->depsCache->expects($this->once()) ->method('clear') ->with(''); $this->appData->expects($this->once()) -- cgit v1.2.3