Jeroen De Dauw has submitted this change and it was merged.

Change subject: Remove usage of Wikibase\SiteLink in RdfBuilder
......................................................................


Remove usage of Wikibase\SiteLink in RdfBuilder

Change-Id: I726d25c1da1c964ce3ddc00a50a3d58508a2ac22
---
M repo/includes/LinkedData/EntityDataSerializationService.php
M repo/includes/rdf/RdfBuilder.php
M repo/includes/rdf/RdfSerializer.php
M repo/includes/specials/SpecialEntityData.php
M repo/tests/phpunit/includes/LinkedData/EntityDataRequestHandlerTest.php
M repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php
M repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/RdfSerializerTest.php
M repo/tests/phpunit/includes/specials/SpecialEntityDataTest.php
9 files changed, 56 insertions(+), 17 deletions(-)

Approvals:
  WikidataJenkins: Verified
  Jeroen De Dauw: Looks good to me, approved



diff --git a/repo/includes/LinkedData/EntityDataSerializationService.php 
b/repo/includes/LinkedData/EntityDataSerializationService.php
index 9f3d774..3bcdf6d 100644
--- a/repo/includes/LinkedData/EntityDataSerializationService.php
+++ b/repo/includes/LinkedData/EntityDataSerializationService.php
@@ -14,6 +14,7 @@
 use DerivativeContext;
 use DerivativeRequest;
 use RequestContext;
+use SiteList;
 use Wikibase\EntityTitleLookup;
 use Wikibase\Lib\Serializers\SerializationOptions;
 use Wikibase\Lib\Serializers\SerializerFactory;
@@ -98,8 +99,11 @@
        protected $serializerFactory;
 
        /**
-        * Constructor.
-        *
+        * @var SiteList
+        */
+       protected $sites;
+
+       /**
         * @param string $rdfBaseURI
         * @param string $rdfDataURI
         * @param EntityLookup $entityLookup
@@ -114,13 +118,15 @@
                $rdfDataURI,
                EntityLookup $entityLookup,
                EntityTitleLookup $entityTitleLookup,
-               SerializerFactory $serializerFactory
+               SerializerFactory $serializerFactory,
+               SiteList $sites
        ) {
                $this->rdfBaseURI = $rdfBaseURI;
                $this->rdfDataURI = $rdfDataURI;
                $this->entityLookup = $entityLookup;
                $this->entityTitleLookup = $entityTitleLookup;
                $this->serializerFactory = $serializerFactory;
+               $this->sites = $sites;
        }
 
        /**
@@ -486,6 +492,7 @@
                        $rdfFormat,
                        $this->rdfBaseURI,
                        $this->rdfDataURI,
+                       $this->sites,
                        $this->entityLookup
                );
 
diff --git a/repo/includes/rdf/RdfBuilder.php b/repo/includes/rdf/RdfBuilder.php
index 71e4449..b418511 100644
--- a/repo/includes/rdf/RdfBuilder.php
+++ b/repo/includes/rdf/RdfBuilder.php
@@ -7,7 +7,8 @@
 use EasyRdf_Literal;
 use EasyRdf_Namespace;
 use EasyRdf_Resource;
-use Sites;
+use SiteList;
+use SiteSQLStore;
 
 /**
  * RDF mapping for wikibase data model.
@@ -41,6 +42,11 @@
        const WIKIBASE_STATEMENT_QNAME = 'wikibase:Statement';
 
        /**
+        * @var SiteList
+        */
+       private $sites;
+
+       /**
         * Map of qnames to namespace URIs
         *
         * @var array
@@ -58,11 +64,13 @@
        protected $entitiesResolved = array();
 
        /**
+        * @param SiteList $sites
         * @param string $baseUri
         * @param string $dataUri
         * @param EasyRdf_Graph|null $graph
         */
        public function __construct(
+               SiteList $sites,
                $baseUri,
                $dataUri,
                EasyRdf_Graph $graph = null
@@ -72,6 +80,8 @@
                }
 
                $this->graph = $graph;
+
+               $this->sites = $sites;
                $this->baseUri = $baseUri;
                $this->dataUri = $dataUri;
 
@@ -321,18 +331,18 @@
        public function addSiteLinks( Item $item ) {
                $entityResource = $this->getEntityResource( $item->getId() );
 
-               foreach ( $item->getSiteLinks() as $link ) {
-                       // FIXME: deprecated method usage
-                       $link = new SiteLink( Sites::singleton()->getSite( 
$link->getSiteId() ), $link->getPageName() );
+               foreach ( $item->getSiteLinks() as $siteLink ) {
+                       $site = $this->sites->getSite( $siteLink->getSiteId() );
 
-                       $languageCode = $link->getSite()->getLanguageCode();
+                       $languageCode = $site->getLanguageCode();
 
                        if ( !$this->isLanguageIncluded( $languageCode ) ) {
                                continue;
                        }
 
                        //XXX: ideally, we'd use https if the target site 
supports it.
-                       $url = wfExpandUrl( $link->getUrl(), PROTO_HTTP );
+                       $baseUrl = $site->getPageUrl( $siteLink->getPageName() 
);
+                       $url = wfExpandUrl( $baseUrl, PROTO_HTTP );
                        $pageRecourse = $this->graph->resource( $url );
 
                        $pageRecourse->addResource( 'rdf:type', 
self::NS_SCHEMA_ORG . ':Article' );
diff --git a/repo/includes/rdf/RdfSerializer.php 
b/repo/includes/rdf/RdfSerializer.php
index 19197b3..3232625 100644
--- a/repo/includes/rdf/RdfSerializer.php
+++ b/repo/includes/rdf/RdfSerializer.php
@@ -5,6 +5,7 @@
 use EasyRdf_Exception;
 use EasyRdf_Format;
 use EasyRdf_Graph;
+use SiteList;
 
 /**
  * RDF serialization for wikibase data model.
@@ -29,20 +30,28 @@
        protected $format;
 
        /**
-        * @param EasyRdf_Format        $format
-        * @param string                $baseUri
-        * @param string                $dataUri
-        * @param EntityLookup          $entityLookup
+        * @var SiteList
+        */
+       protected $sites;
+
+       /**
+        * @param EasyRdf_Format $format
+        * @param string $baseUri
+        * @param string $dataUri
+        * @param SiteList $sites;
+        * @param EntityLookup $entityLookup
         */
        public function __construct(
                EasyRdf_Format $format,
                $baseUri,
                $dataUri,
+               SiteList $sites,
                EntityLookup $entityLookup
        ) {
                $this->baseUri = $baseUri;
                $this->dataUri = $dataUri;
                $this->format = $format;
+               $this->sites = $sites;
                $this->entityLookup = $entityLookup;
        }
 
@@ -81,6 +90,7 @@
                //TODO: language filter
 
                $builder = new RdfBuilder(
+                       $this->sites,
                        $this->baseUri,
                        $this->dataUri
                );
diff --git a/repo/includes/specials/SpecialEntityData.php 
b/repo/includes/specials/SpecialEntityData.php
index ee4f7de..109c3cd 100644
--- a/repo/includes/specials/SpecialEntityData.php
+++ b/repo/includes/specials/SpecialEntityData.php
@@ -3,6 +3,7 @@
 namespace Wikibase\Repo\Specials;
 
 use HttpError;
+use SiteSQLStore;
 use Wikibase\EntityFactory;
 use Wikibase\Lib\Serializers\SerializationOptions;
 use Wikibase\Lib\Serializers\SerializerFactory;
@@ -94,7 +95,8 @@
                        $this->getPageTitle()->getCanonicalURL() . '/',
                        $repo->getStore()->getEntityLookup(),
                        $titleLookup,
-                       $serializerFactory
+                       $serializerFactory,
+                       SiteSQLStore::newInstance()->getSites()
                );
 
                $maxAge = $repo->getSettings()->getSetting( 'dataSquidMaxage' );
diff --git 
a/repo/tests/phpunit/includes/LinkedData/EntityDataRequestHandlerTest.php 
b/repo/tests/phpunit/includes/LinkedData/EntityDataRequestHandlerTest.php
index 5e079c6..4644f7f 100644
--- a/repo/tests/phpunit/includes/LinkedData/EntityDataRequestHandlerTest.php
+++ b/repo/tests/phpunit/includes/LinkedData/EntityDataRequestHandlerTest.php
@@ -8,6 +8,7 @@
 use HttpError;
 use OutputPage;
 use RequestContext;
+use SiteList;
 use Title;
 use Wikibase\DataModel\Entity\BasicEntityIdParser;
 use Wikibase\DataModel\Entity\EntityId;
@@ -91,7 +92,8 @@
                        EntityDataSerializationServiceTest::URI_DATA,
                        $entityLookup,
                        $titleLookup,
-                       $serializerFactory
+                       $serializerFactory,
+                       new SiteList()
                );
 
                $service->setFormatWhiteList(
diff --git 
a/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php 
b/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php
index 6b6e41a..90b2e18 100644
--- 
a/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php
+++ 
b/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php
@@ -2,6 +2,7 @@
 
 namespace Wikibase\Test;
 
+use SiteList;
 use Title;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\EntityRevision;
@@ -47,7 +48,8 @@
                        self::URI_DATA,
                        $entityLookup,
                        $titleLookup,
-                       $serializerFactory
+                       $serializerFactory,
+                       new SiteList()
                );
 
                $service->setFormatWhiteList(
diff --git a/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php 
b/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
index db8cc59..6a4f64e 100644
--- a/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
@@ -7,6 +7,7 @@
 use EasyRdf_Literal;
 use EasyRdf_Namespace;
 use EasyRdf_Resource;
+use SiteList;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\Entity;
 use Wikibase\EntityId;
@@ -191,6 +192,7 @@
         */
        protected static function newRdfBuilder() {
                return new RdfBuilder(
+                       new SiteList(),
                        self::URI_BASE,
                        self::URI_DATA
                );
diff --git a/repo/tests/phpunit/includes/rdf/RdfSerializerTest.php 
b/repo/tests/phpunit/includes/rdf/RdfSerializerTest.php
index 28b52ae..e030a54 100644
--- a/repo/tests/phpunit/includes/rdf/RdfSerializerTest.php
+++ b/repo/tests/phpunit/includes/rdf/RdfSerializerTest.php
@@ -2,6 +2,7 @@
 
 namespace Wikibase\Test;
 
+use SiteList;
 use Wikibase\Entity;
 use Wikibase\EntityRevision;
 use Wikibase\RdfSerializer;
@@ -111,6 +112,7 @@
                        $format,
                        RdfBuilderTest::URI_BASE,
                        RdfBuilderTest::URI_DATA,
+                       new SiteList(),
                        $mockRepo
                );
        }
diff --git a/repo/tests/phpunit/includes/specials/SpecialEntityDataTest.php 
b/repo/tests/phpunit/includes/specials/SpecialEntityDataTest.php
index 3cccade..3dd1acd 100644
--- a/repo/tests/phpunit/includes/specials/SpecialEntityDataTest.php
+++ b/repo/tests/phpunit/includes/specials/SpecialEntityDataTest.php
@@ -6,6 +6,7 @@
 use FauxResponse;
 use HttpError;
 use OutputPage;
+use SiteList;
 use SpecialPage;
 use Title;
 use Wikibase\DataModel\Entity\BasicEntityIdParser;
@@ -104,7 +105,8 @@
                        self::URI_DATA,
                        $mockRepo,
                        $titleLookup,
-                       $serializerFactory
+                       $serializerFactory,
+                       new SiteList()
                );
 
                $maxAge = 60*60;

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I726d25c1da1c964ce3ddc00a50a3d58508a2ac22
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Aude <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: WikidataJenkins <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to