Bene has uploaded a new change for review.
https://gerrit.wikimedia.org/r/278563
Change subject: Add support for all entity types in dumpJson maintenance script
......................................................................
Add support for all entity types in dumpJson maintenance script
This changes the maintenance script to get the entity serializer from
global state instead of creating one that only supports items and
properties.
Change-Id: I789febbf32d3d3ebb6fd3483033321c9f33ba779
---
M repo/maintenance/dumpJson.php
M repo/tests/phpunit/maintenance/dumpJsonTest.php
2 files changed, 21 insertions(+), 9 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/63/278563/1
diff --git a/repo/maintenance/dumpJson.php b/repo/maintenance/dumpJson.php
index 0e3e509..ffd0982 100644
--- a/repo/maintenance/dumpJson.php
+++ b/repo/maintenance/dumpJson.php
@@ -3,6 +3,7 @@
namespace Wikibase;
use DataValues\Serializers\DataValueSerializer;
+use Serializers\Serializer;
use Wikibase\DataModel\SerializerFactory;
use Wikibase\DataModel\Services\Entity\EntityPrefetcher;
use Wikibase\DataModel\Services\Lookup\EntityLookup;
@@ -28,6 +29,11 @@
* @var EntityLookup
*/
private $entityLookup;
+
+ /**
+ * @var Serializer
+ */
+ private $entitySerializer;
/**
* @var EntityPrefetcher
@@ -60,12 +66,14 @@
EntityPerPage $entityPerPage,
EntityPrefetcher $entityPrefetcher,
PropertyDataTypeLookup $propertyDataTypeLookup,
- EntityLookup $entityLookup
+ EntityLookup $entityLookup,
+ Serializer $entitySerializer
) {
parent::setDumpEntitiesServices( $entityPerPage );
$this->entityPrefetcher = $entityPrefetcher;
$this->propertyDatatypeLookup = $propertyDataTypeLookup;
$this->entityLookup = $entityLookup;
+ $this->entitySerializer = $entitySerializer;
$this->hasHadServicesSet = true;
}
@@ -77,7 +85,11 @@
$wikibaseRepo->getStore()->newEntityPerPage(),
$wikibaseRepo->getStore()->getEntityPrefetcher(),
$wikibaseRepo->getPropertyDataTypeLookup(),
- new RevisionBasedEntityLookup( $revisionLookup )
+ new RevisionBasedEntityLookup( $revisionLookup
),
+ $wikibaseRepo->getEntitySerializer(
+
SerializerFactory::OPTION_SERIALIZE_MAIN_SNAKS_WITHOUT_HASH +
+
SerializerFactory::OPTION_SERIALIZE_REFERENCE_SNAKS_WITHOUT_HASH
+ )
);
}
parent::execute();
@@ -89,17 +101,12 @@
* @return DumpGenerator
*/
protected function createDumper( $output ) {
- $serializerOptions =
SerializerFactory::OPTION_SERIALIZE_MAIN_SNAKS_WITHOUT_HASH +
-
SerializerFactory::OPTION_SERIALIZE_REFERENCE_SNAKS_WITHOUT_HASH;
- $serializerFactory = new SerializerFactory( new
DataValueSerializer(), $serializerOptions );
-
- $entitySerializer = $serializerFactory->newEntitySerializer();
$dataTypeLookup = $this->propertyDatatypeLookup;
$dumper = new JsonDumpGenerator(
$output,
$this->entityLookup,
- $entitySerializer,
+ $this->entitySerializer,
$this->entityPrefetcher,
$dataTypeLookup
);
diff --git a/repo/tests/phpunit/maintenance/dumpJsonTest.php
b/repo/tests/phpunit/maintenance/dumpJsonTest.php
index 88db075..1aba69a 100644
--- a/repo/tests/phpunit/maintenance/dumpJsonTest.php
+++ b/repo/tests/phpunit/maintenance/dumpJsonTest.php
@@ -2,6 +2,7 @@
namespace Wikibase\Test;
+use DataValues\Serializers\DataValueSerializer;
use DataValues\StringValue;
use MediaWikiTestCase;
use Wikibase\DataModel\Entity\EntityDocument;
@@ -11,6 +12,7 @@
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Reference;
use Wikibase\DataModel\ReferenceList;
+use Wikibase\DataModel\SerializerFactory;
use Wikibase\DataModel\Services\Entity\NullEntityPrefetcher;
use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup;
use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookupException;
@@ -115,11 +117,14 @@
$mockEntityPerPage->addEntityPage(
$testEntity->getId(), $key );
}
+ $serializerFactory = new SerializerFactory( new
DataValueSerializer() );
+
$dumpScript->setServices(
$mockEntityPerPage,
new NullEntityPrefetcher(),
$this->getMockPropertyDataTypeLookup(),
- $mockRepo
+ $mockRepo,
+ $serializerFactory->newEntitySerializer()
);
$logFileName = tempnam( sys_get_temp_dir(),
"Wikibase-DumpJsonTest" );
--
To view, visit https://gerrit.wikimedia.org/r/278563
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I789febbf32d3d3ebb6fd3483033321c9f33ba779
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Bene <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits