jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/373050 )

Change subject: Remove data-access dependency on 
WikibaseClient::getLFChainFactory
......................................................................


Remove data-access dependency on WikibaseClient::getLFChainFactory

This makes GenericServices provide LanguageFallbackChainFactory
to the data access service instantiators.

Note that with this change WikibaseClient and/or WikibaseRepo
might be using two instances of LanguageFallbackChainFactory,
one used by services provided by WikibaseServices container,
and another one provided by top-level factories themselves.

This is temporary and will be fixed by having WikibaseServices
provide one single instance of this service.

Change-Id: Ifdc3f8bc29dbdbd9ff2b9df7c9cf9f434a90add5
---
M data-access/src/GenericServices.php
M data-access/src/PerRepositoryServiceWiring.php
M data-access/tests/phpunit/GenericServicesTest.php
3 files changed, 35 insertions(+), 4 deletions(-)

Approvals:
  WMDE-leszek: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/data-access/src/GenericServices.php 
b/data-access/src/GenericServices.php
index fb3d5ea..a8ad864 100644
--- a/data-access/src/GenericServices.php
+++ b/data-access/src/GenericServices.php
@@ -6,6 +6,7 @@
 use Serializers\DispatchingSerializer;
 use Serializers\Serializer;
 use Wikibase\DataModel\SerializerFactory;
+use Wikibase\LanguageFallbackChainFactory;
 use Wikibase\Lib\EntityTypeDefinitions;
 use Wikibase\Lib\Store\EntityNamespaceLookup;
 
@@ -30,6 +31,11 @@
         * @var Serializer[]
         */
        private $entitySerializers;
+
+       /**
+        * @var LanguageFallbackChainFactory
+        */
+       private $languageFallbackChainFactory;
 
        public function __construct(
                EntityNamespaceLookup $entityNamespaceLookup,
@@ -75,4 +81,15 @@
                return new SerializerFactory( new DataValueSerializer(), 
$options );
        }
 
+       /**
+        * @return LanguageFallbackChainFactory
+        */
+       public function getLanguageFallbackChainFactory() {
+               if ( $this->languageFallbackChainFactory === null ) {
+                       $this->languageFallbackChainFactory = new 
LanguageFallbackChainFactory();
+               }
+
+               return $this->languageFallbackChainFactory;
+       }
+
 }
diff --git a/data-access/src/PerRepositoryServiceWiring.php 
b/data-access/src/PerRepositoryServiceWiring.php
index 8037896..8de5ac5 100644
--- a/data-access/src/PerRepositoryServiceWiring.php
+++ b/data-access/src/PerRepositoryServiceWiring.php
@@ -136,9 +136,7 @@
 
        'TermSearchInteractorFactory' => function (
                PerRepositoryServiceContainer $services,
-               GenericServices $genericServices,
-               DataAccessSettings $settings,
-               WikibaseClient $client
+               GenericServices $genericServices
        ) {
                /** @var TermIndex $termIndex */
                $termIndex = $services->getService( 'TermIndex' );
@@ -147,7 +145,7 @@
 
                return new TermIndexSearchInteractorFactory(
                        $termIndex,
-                       $client->getLanguageFallbackChainFactory(),
+                       $genericServices->getLanguageFallbackChainFactory(),
                        $prefetchingTermLookup
                );
        },
diff --git a/data-access/tests/phpunit/GenericServicesTest.php 
b/data-access/tests/phpunit/GenericServicesTest.php
index c43a766..1fe2288 100644
--- a/data-access/tests/phpunit/GenericServicesTest.php
+++ b/data-access/tests/phpunit/GenericServicesTest.php
@@ -5,6 +5,7 @@
 use Serializers\Serializer;
 use Wikibase\DataAccess\GenericServices;
 use Wikibase\DataModel\SerializerFactory;
+use Wikibase\LanguageFallbackChainFactory;
 use Wikibase\Lib\EntityTypeDefinitions;
 use Wikibase\Lib\Store\EntityNamespaceLookup;
 
@@ -52,6 +53,21 @@
                $this->assertNotSame( $defaultSerializerOne, $otherSerializer );
        }
 
+       public function testGetLanguageFallbackChainFactory() {
+               $services = $this->newGenericServices();
+
+               $this->assertInstanceOf( LanguageFallbackChainFactory::class, 
$services->getLanguageFallbackChainFactory() );
+       }
+
+       public function 
testGetLanguageFallbackChainFactoryReusesTheInstanceForMultipleCalls() {
+               $services = $this->newGenericServices();
+
+               $serviceOne = $services->getLanguageFallbackChainFactory();
+               $serviceTwo = $services->getLanguageFallbackChainFactory();
+
+               $this->assertSame( $serviceOne, $serviceTwo );
+       }
+
        private function newGenericServices() {
                return new GenericServices( new EntityNamespaceLookup( [] ), 
new EntityTypeDefinitions( [] ) );
        }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ifdc3f8bc29dbdbd9ff2b9df7c9cf9f434a90add5
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: WMDE-leszek <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: WMDE-leszek <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to