WMDE-leszek has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/373275 )
Change subject: Use LFChainFactory instance provided by WikibaseServices in
Client and (optionally) Repo
......................................................................
Use LFChainFactory instance provided by WikibaseServices in Client and
(optionally) Repo
Change-Id: I3d07d26a21fc699db7cac9c5f034ab3eb2d4427c
---
M client/includes/WikibaseClient.php
M data-access/src/MultipleRepositoryAwareWikibaseServices.php
M data-access/src/WikibaseServices.php
M data-access/tests/phpunit/MultipleRepositoryAwareWikibaseServicesTest.php
M repo/includes/WikibaseRepo.php
5 files changed, 30 insertions(+), 10 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/75/373275/1
diff --git a/client/includes/WikibaseClient.php
b/client/includes/WikibaseClient.php
index 4c8dac1..e980c2a 100644
--- a/client/includes/WikibaseClient.php
+++ b/client/includes/WikibaseClient.php
@@ -152,11 +152,6 @@
private $entityIdComposer = null;
/**
- * @var LanguageFallbackChainFactory|null
- */
- private $languageFallbackChainFactory = null;
-
- /**
* @var ClientStore|null
*/
private $store = null;
@@ -507,11 +502,7 @@
* @return LanguageFallbackChainFactory
*/
public function getLanguageFallbackChainFactory() {
- if ( $this->languageFallbackChainFactory === null ) {
- $this->languageFallbackChainFactory = new
LanguageFallbackChainFactory();
- }
-
- return $this->languageFallbackChainFactory;
+ return
$this->getWikibaseServices()->getLanguageFallbackChainFactory();
}
/**
diff --git a/data-access/src/MultipleRepositoryAwareWikibaseServices.php
b/data-access/src/MultipleRepositoryAwareWikibaseServices.php
index 39ace09..006247f 100644
--- a/data-access/src/MultipleRepositoryAwareWikibaseServices.php
+++ b/data-access/src/MultipleRepositoryAwareWikibaseServices.php
@@ -8,6 +8,7 @@
use Wikibase\DataModel\Services\Entity\EntityPrefetcher;
use Wikibase\DataModel\Services\EntityId\PrefixMappingEntityIdParserFactory;
use Wikibase\DataModel\Services\Term\TermBuffer;
+use Wikibase\LanguageFallbackChainFactory;
use Wikibase\Lib\EntityIdComposer;
use Wikibase\Lib\EntityTypeDefinitions;
use Wikibase\Lib\Interactors\TermSearchInteractorFactory;
@@ -131,6 +132,9 @@
'EntityStoreWatcher' => function() use (
$multiRepositoryServices ) {
return $multiRepositoryServices;
},
+ 'LanguageFallbackChainFactory' => function () use (
$genericServices ) {
+ return
$genericServices->getLanguageFallbackChainFactory();
+ },
'PropertyInfoLookup' => function() use (
$multiRepositoryServices ) {
return
$multiRepositoryServices->getPropertyInfoLookup();
},
@@ -175,6 +179,13 @@
}
/**
+ * @return LanguageFallbackChainFactory
+ */
+ public function getLanguageFallbackChainFactory() {
+ return $this->getService( 'LanguageFallbackChainFactory' );
+ }
+
+ /**
* @return PropertyInfoLookup
*/
public function getPropertyInfoLookup() {
diff --git a/data-access/src/WikibaseServices.php
b/data-access/src/WikibaseServices.php
index 113e28c..3b45a49 100644
--- a/data-access/src/WikibaseServices.php
+++ b/data-access/src/WikibaseServices.php
@@ -4,6 +4,7 @@
use Wikibase\DataModel\Services\Entity\EntityPrefetcher;
use Wikibase\DataModel\Services\Term\TermBuffer;
+use Wikibase\LanguageFallbackChainFactory;
use Wikibase\Lib\Interactors\TermSearchInteractorFactory;
use Wikibase\Lib\Store\EntityInfoBuilderFactory;
use Wikibase\Lib\Store\EntityNamespaceLookup;
@@ -47,6 +48,11 @@
public function getEntityStoreWatcher();
/**
+ * @return LanguageFallbackChainFactory
+ */
+ public function getLanguageFallbackChainFactory();
+
+ /**
* Note: Instance returned is not guaranteed to be a caching decorator.
* Callers should take care of caching themselves.
*
diff --git
a/data-access/tests/phpunit/MultipleRepositoryAwareWikibaseServicesTest.php
b/data-access/tests/phpunit/MultipleRepositoryAwareWikibaseServicesTest.php
index 7652316..b26e3ae 100644
--- a/data-access/tests/phpunit/MultipleRepositoryAwareWikibaseServicesTest.php
+++ b/data-access/tests/phpunit/MultipleRepositoryAwareWikibaseServicesTest.php
@@ -7,6 +7,7 @@
use Wikibase\DataModel\Entity\BasicEntityIdParser;
use Wikibase\DataModel\Services\Entity\EntityPrefetcher;
use Wikibase\DataModel\Services\Term\TermBuffer;
+use Wikibase\LanguageFallbackChainFactory;
use Wikibase\Lib\EntityIdComposer;
use Wikibase\Lib\EntityTypeDefinitions;
use Wikibase\Lib\Interactors\TermSearchInteractorFactory;
@@ -103,6 +104,12 @@
$this->assertInstanceOf( EntityStoreWatcher::class,
$wikibaseServices->getEntityStoreWatcher() );
}
+ public function testGetLanguageFallbackChainFactory() {
+ $wikibaseServices =
$this->newMultipleRepositoryAwareWikibaseServices();
+
+ $this->assertInstanceOf( LanguageFallbackChainFactory::class,
$wikibaseServices->getLanguageFallbackChainFactory() );
+ }
+
public function testGetPropertyInfoLookup() {
$wikibaseServices =
$this->newMultipleRepositoryAwareWikibaseServices();
@@ -141,6 +148,7 @@
'EntityPrefetcher',
'EntityRevisionLookup',
'EntityStoreWatcher',
+ 'LanguageFallbackChainFactory',
'PropertyInfoLookup',
'StringNormalizer',
'TermBuffer',
diff --git a/repo/includes/WikibaseRepo.php b/repo/includes/WikibaseRepo.php
index bf86b45..45e2fe2 100644
--- a/repo/includes/WikibaseRepo.php
+++ b/repo/includes/WikibaseRepo.php
@@ -912,6 +912,10 @@
* @return LanguageFallbackChainFactory
*/
public function getLanguageFallbackChainFactory() {
+ if ( $this->wikibaseServices !== null ) {
+ return
$this->wikibaseServices->getLanguageFallbackChainFactory();
+ }
+
if ( $this->languageFallbackChainFactory === null ) {
$this->languageFallbackChainFactory = new
LanguageFallbackChainFactory();
}
--
To view, visit https://gerrit.wikimedia.org/r/373275
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3d07d26a21fc699db7cac9c5f034ab3eb2d4427c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: WMDE-leszek <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits