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