Daniel Kinzler has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/364205 )

Change subject: Use RefreshLinksJob instead of Title:invalidateCache
......................................................................

Use RefreshLinksJob instead of Title:invalidateCache

Bug: T164173
Change-Id: I3a59486808b699ad0f9463e2af56d69fd37f8bf7
---
M client/includes/Changes/ChangeHandler.php
M client/includes/Changes/PageUpdater.php
M client/includes/Changes/WikiPageUpdater.php
M client/tests/phpunit/includes/Changes/ChangeHandlerTest.php
M client/tests/phpunit/includes/Changes/MockPageUpdater.php
M client/tests/phpunit/includes/Changes/WikiPageUpdaterTest.php
6 files changed, 14 insertions(+), 86 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/05/364205/1

diff --git a/client/includes/Changes/ChangeHandler.php 
b/client/includes/Changes/ChangeHandler.php
index 884c30e..fb66ce8 100644
--- a/client/includes/Changes/ChangeHandler.php
+++ b/client/includes/Changes/ChangeHandler.php
@@ -26,11 +26,6 @@
 class ChangeHandler {
 
        /**
-        * The change requites any rendered version of the page to be purged 
from the parser cache.
-        */
-       const PARSER_PURGE_ACTION = 'parser';
-
-       /**
         * The change requites a LinksUpdate job to be scheduled to update any 
links
         * associated with the page.
         */
@@ -183,28 +178,26 @@
                $all = isset( $aspects[EntityUsage::ALL_USAGE] );
 
                if ( isset( $aspects[EntityUsage::SITELINK_USAGE] ) || $all ) {
-                       $actions[self::LINKS_UPDATE_ACTION] = true;
-
                        // TODO: introduce an update action that updates just 
the metadata
                        // in the cached ParserOutput, without re-parsing the 
page!
-                       $actions[self::PARSER_PURGE_ACTION] = true;
+                       $actions[self::LINKS_UPDATE_ACTION] = true;
                }
 
                if ( isset( $aspects[EntityUsage::LABEL_USAGE] ) || $all ) {
-                       $actions[self::PARSER_PURGE_ACTION] = true;
+                       $actions[self::LINKS_UPDATE_ACTION] = true;
                }
 
                if ( isset( $aspects[EntityUsage::TITLE_USAGE] ) || $all ) {
-                       $actions[self::PARSER_PURGE_ACTION] = true;
+                       $actions[self::LINKS_UPDATE_ACTION] = true;
                }
 
                if ( isset( $aspects[EntityUsage::OTHER_USAGE] ) || $all ) {
-                       $actions[self::PARSER_PURGE_ACTION] = true;
+                       $actions[self::LINKS_UPDATE_ACTION] = true;
                }
 
                // Purge caches and inject log entries if we have reason
                // to update the cached ParserOutput object in some way.
-               if ( isset( $actions[self::PARSER_PURGE_ACTION] ) || isset( 
$actions[self::LINKS_UPDATE_ACTION] ) ) {
+               if ( isset( $actions[self::LINKS_UPDATE_ACTION] ) ) {
                        $actions[self::WEB_PURGE_ACTION] = true;
                        $actions[self::RC_ENTRY_ACTION] = true;
                        $actions[self::HISTORY_ENTRY_ACTION] = true;
@@ -233,10 +226,6 @@
                $titlesToUpdate = $this->getTitlesForPageIds( $pageIds );
 
                switch ( $action ) {
-                       case self::PARSER_PURGE_ACTION:
-                               $this->updater->purgeParserCache( 
$titlesToUpdate );
-                               break;
-
                        case self::WEB_PURGE_ACTION:
                                $this->updater->purgeWebCache( $titlesToUpdate 
);
                                break;
diff --git a/client/includes/Changes/PageUpdater.php 
b/client/includes/Changes/PageUpdater.php
index ec74351..391f122 100644
--- a/client/includes/Changes/PageUpdater.php
+++ b/client/includes/Changes/PageUpdater.php
@@ -17,13 +17,6 @@
 interface PageUpdater {
 
        /**
-        * Invalidates local cached of the given pages.
-        *
-        * @param Title[] $titles The Titles of the pages to update
-        */
-       public function purgeParserCache( array $titles );
-
-       /**
         * Invalidates external web cached of the given pages.
         *
         * @param Title[] $titles The Titles of the pages to update
diff --git a/client/includes/Changes/WikiPageUpdater.php 
b/client/includes/Changes/WikiPageUpdater.php
index 7293723..69c6876 100644
--- a/client/includes/Changes/WikiPageUpdater.php
+++ b/client/includes/Changes/WikiPageUpdater.php
@@ -95,22 +95,6 @@
        }
 
        /**
-        * Invalidates local cached of the given pages.
-        *
-        * @param Title[] $titles The Titles of the pages to update
-        */
-       public function purgeParserCache( array $titles ) {
-               /* @var Title $title */
-               foreach ( $titles as $title ) {
-                       wfDebugLog( __CLASS__, __FUNCTION__ . ": purging page " 
. $title->getText() );
-
-                       // TODO: This queues a database update for each title 
separately. Batch it.
-                       $title->invalidateCache();
-               }
-               $this->incrementStats( 'ParserCache', count( $titles ) );
-       }
-
-       /**
         * Invalidates external web cached of the given pages.
         *
         * @param Title[] $titles The Titles of the pages to update
@@ -145,6 +129,7 @@
                        // NOTE: nominal title, will be ignored because the 
'pages' parameter is set.
                        $title = reset( $batch );
 
+                       // TODO: add root job timestamp?
                        $jobs[] = new RefreshLinksJob(
                                $title,
                                [ 'pages' => 
$this->getPageParamForRefreshLinksJob( $batch ) ]
diff --git a/client/tests/phpunit/includes/Changes/ChangeHandlerTest.php 
b/client/tests/phpunit/includes/Changes/ChangeHandlerTest.php
index ed5d00c..6b97458 100644
--- a/client/tests/phpunit/includes/Changes/ChangeHandlerTest.php
+++ b/client/tests/phpunit/includes/Changes/ChangeHandlerTest.php
@@ -189,35 +189,32 @@
                        ],
                        'sitelink usage' => [
                                [ EntityUsage::SITELINK_USAGE ],
-                               [ ChangeHandler::LINKS_UPDATE_ACTION, 
ChangeHandler::PARSER_PURGE_ACTION,
+                               [ ChangeHandler::LINKS_UPDATE_ACTION,
                                        ChangeHandler::WEB_PURGE_ACTION, 
ChangeHandler::RC_ENTRY_ACTION ],
                        ],
                        'label usage' => [
                                [ EntityUsage::LABEL_USAGE ],
-                               [ ChangeHandler::PARSER_PURGE_ACTION, 
ChangeHandler::WEB_PURGE_ACTION,
+                               [ ChangeHandler::LINKS_UPDATE_ACTION, 
ChangeHandler::WEB_PURGE_ACTION,
                                        ChangeHandler::RC_ENTRY_ACTION ],
-                               [ ChangeHandler::LINKS_UPDATE_ACTION ]
                        ],
                        'title usage' => [
                                [ EntityUsage::TITLE_USAGE ],
-                               [ ChangeHandler::PARSER_PURGE_ACTION, 
ChangeHandler::WEB_PURGE_ACTION,
+                               [ ChangeHandler::LINKS_UPDATE_ACTION, 
ChangeHandler::WEB_PURGE_ACTION,
                                        ChangeHandler::RC_ENTRY_ACTION ],
-                               [ ChangeHandler::LINKS_UPDATE_ACTION ]
                        ],
                        'other usage' => [
                                [ EntityUsage::OTHER_USAGE ],
-                               [ ChangeHandler::PARSER_PURGE_ACTION, 
ChangeHandler::WEB_PURGE_ACTION,
+                               [ ChangeHandler::LINKS_UPDATE_ACTION, 
ChangeHandler::WEB_PURGE_ACTION,
                                        ChangeHandler::RC_ENTRY_ACTION ],
-                               [ ChangeHandler::LINKS_UPDATE_ACTION ]
                        ],
                        'all usage' => [
                                [ EntityUsage::ALL_USAGE ],
-                               [ ChangeHandler::PARSER_PURGE_ACTION, 
ChangeHandler::WEB_PURGE_ACTION,
+                               [ ChangeHandler::LINKS_UPDATE_ACTION, 
ChangeHandler::WEB_PURGE_ACTION,
                                        ChangeHandler::RC_ENTRY_ACTION ],
                        ],
                        'sitelink and other usage (does links update)' => [
                                [ EntityUsage::SITELINK_USAGE, 
EntityUsage::OTHER_USAGE ],
-                               [ ChangeHandler::LINKS_UPDATE_ACTION, 
ChangeHandler::PARSER_PURGE_ACTION,
+                               [ ChangeHandler::LINKS_UPDATE_ACTION,
                                        ChangeHandler::WEB_PURGE_ACTION, 
ChangeHandler::RC_ENTRY_ACTION ],
                        ],
                ];
@@ -390,42 +387,36 @@
                $userEmmy2 = Title::newFromText( 'User:Emmy2' 
)->getPrefixedText();
 
                $empty = [
-                       'purgeParserCache' => [],
                        'scheduleRefreshLinks' => [],
                        'purgeWebCache' => [],
                        'injectRCRecord' => [],
                ];
 
                $emmy2PurgeParser = [
-                       'purgeParserCache' => [ 'Emmy2' => true ],
-                       'scheduleRefreshLinks' => [],
+                       'scheduleRefreshLinks' => [ 'Emmy2' => true ],
                        'purgeWebCache' => [ 'Emmy2' => true ],
                        'injectRCRecord' => [ 'Emmy2' => true ],
                ];
 
                $userEmmy2PurgeParser = [
-                       'purgeParserCache' => [ $userEmmy2 => true ],
-                       'scheduleRefreshLinks' => [],
+                       'scheduleRefreshLinks' => [ $userEmmy2 => true ],
                        'purgeWebCache' => [ $userEmmy2 => true ],
                        'injectRCRecord' => [ $userEmmy2 => true ],
                ];
 
                $emmyUpdateLinks = [
-                       'purgeParserCache' => [ 'Emmy' => true ],
                        'scheduleRefreshLinks' => [ 'Emmy' => true ],
                        'purgeWebCache' => [ 'Emmy' => true ],
                        'injectRCRecord' => [ 'Emmy' => true ],
                ];
 
                $emmy2UpdateLinks = [
-                       'purgeParserCache' => [ 'Emmy2' => true ],
                        'scheduleRefreshLinks' => [ 'Emmy2' => true ],
                        'purgeWebCache' => [ 'Emmy2' => true ],
                        'injectRCRecord' => [ 'Emmy2' => true ],
                ];
 
                $emmy2UpdateAll = [
-                       'purgeParserCache' => [ 'Emmy2' => true ],
                        'scheduleRefreshLinks' => [ 'Emmy2' => true ],
                        'purgeWebCache' => [ 'Emmy2' => true ],
                        'injectRCRecord' => [ 'Emmy2' => true ],
@@ -516,7 +507,6 @@
                                $changes['change-enwiki-sitelink'],
                                [ 'q100' => [ 'enwiki' => 'Emmy' ], 'q200' => [ 
'enwiki' => 'Emmy2' ] ],
                                [
-                                       'purgeParserCache' => [ 'Emmy' => true, 
'Emmy2' => true ],
                                        'scheduleRefreshLinks' => [ 'Emmy' => 
true, 'Emmy2' => true ],
                                        'purgeWebCache' => [ 'Emmy' => true, 
'Emmy2' => true ],
                                        'injectRCRecord' => [ 'Emmy' => true, 
'Emmy2' => true ],
diff --git a/client/tests/phpunit/includes/Changes/MockPageUpdater.php 
b/client/tests/phpunit/includes/Changes/MockPageUpdater.php
index 34f7047..02a7028 100644
--- a/client/tests/phpunit/includes/Changes/MockPageUpdater.php
+++ b/client/tests/phpunit/includes/Changes/MockPageUpdater.php
@@ -18,21 +18,10 @@
 class MockPageUpdater implements PageUpdater {
 
        private $updates = [
-               'purgeParserCache' => [],
                'purgeWebCache' => [],
                'scheduleRefreshLinks' => [],
                'injectRCRecord' => [],
        ];
-
-       /**
-        * @param Title[] $titles
-        */
-       public function purgeParserCache( array $titles ) {
-               foreach ( $titles as $title ) {
-                       $key = $title->getPrefixedDBkey();
-                       $this->updates['purgeParserCache'][ $key ] = $title;
-               }
-       }
 
        /**
         * @param Title[] $titles
diff --git a/client/tests/phpunit/includes/Changes/WikiPageUpdaterTest.php 
b/client/tests/phpunit/includes/Changes/WikiPageUpdaterTest.php
index 407cd98..5cacbb0 100644
--- a/client/tests/phpunit/includes/Changes/WikiPageUpdaterTest.php
+++ b/client/tests/phpunit/includes/Changes/WikiPageUpdaterTest.php
@@ -138,24 +138,6 @@
                return $LBFactory;
        }
 
-       public function testPurgeParserCache() {
-               $updater = new WikiPageUpdater(
-                       $this->getJobQueueGroupMock(),
-                       $this->getRCFactoryMock(),
-                       $this->getLBFactoryMock(),
-                       $this->getRCDupeDetectorMock()
-               );
-
-               $title = $this->getTitleMock( 'Foo' );
-
-               $title->expects( $this->once() )
-                       ->method( 'invalidateCache' );
-
-               $updater->purgeParserCache( [
-                       $title,
-               ] );
-       }
-
        public function testPurgeWebCache() {
                $updater = new WikiPageUpdater(
                        $this->getJobQueueGroupMock(),

-- 
To view, visit https://gerrit.wikimedia.org/r/364205
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3a59486808b699ad0f9463e2af56d69fd37f8bf7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Daniel Kinzler <daniel.kinz...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to