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

Reply via email to