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

Change subject: Use DataModel 1.0
......................................................................


Use DataModel 1.0

Change-Id: I1ec5ac5c8f7b4a6793edd058882685ad0818d26d
---
M composer.json
M lib/includes/serializers/LegacyInternalClaimSerializer.php
M lib/includes/serializers/LegacyInternalEntitySerializer.php
M lib/tests/phpunit/NoBadDependencyUsageTest.php
D lib/tests/phpunit/serializers/LegacyInternalEntitySerializerTest.php
M repo/config/Wikibase.default.php
M repo/tests/phpunit/includes/WikibaseRepoTest.php
7 files changed, 8 insertions(+), 114 deletions(-)

Approvals:
  Tobias Gritschacher: Verified; Looks good to me, but someone else must approve
  Bene: Looks good to me, but someone else must approve
  Thiemo Mättig (WMDE): Looks good to me, approved



diff --git a/composer.json b/composer.json
index 93a2d19..ca670a6 100644
--- a/composer.json
+++ b/composer.json
@@ -35,7 +35,7 @@
                "data-values/javascript": "~0.5.1",
                "data-values/value-view": "~0.6.5",
 
-               "wikibase/data-model": "~0.9.0",
+               "wikibase/data-model": "~1.0@dev",
                "wikibase/data-model-javascript": "~0.3.0",
                "wikibase/data-model-serialization": "~1.0.1",
                "wikibase/internal-serialization": "~1.1",
diff --git a/lib/includes/serializers/LegacyInternalClaimSerializer.php 
b/lib/includes/serializers/LegacyInternalClaimSerializer.php
index d3fe17b..9bdcdf7 100644
--- a/lib/includes/serializers/LegacyInternalClaimSerializer.php
+++ b/lib/includes/serializers/LegacyInternalClaimSerializer.php
@@ -4,6 +4,7 @@
 
 use InvalidArgumentException;
 use Wikibase\DataModel\Claim\Claim;
+use Wikibase\Repo\WikibaseRepo;
 
 class LegacyInternalClaimSerializer implements \Serializers\Serializer {
 
@@ -20,7 +21,7 @@
                        throw new InvalidArgumentException( '$claim must be an 
Claim' );
                }
 
-               return $claim->toArray();
+               return 
WikibaseRepo::getDefaultInstance()->getInternalClaimSerializer()->serialize( 
$claim );
        }
 
 }
diff --git a/lib/includes/serializers/LegacyInternalEntitySerializer.php 
b/lib/includes/serializers/LegacyInternalEntitySerializer.php
index 062bbf3..c33bea2 100644
--- a/lib/includes/serializers/LegacyInternalEntitySerializer.php
+++ b/lib/includes/serializers/LegacyInternalEntitySerializer.php
@@ -5,6 +5,7 @@
 use InvalidArgumentException;
 use Serializers\Serializer as NewStyleSerializer;
 use Wikibase\DataModel\Entity\Entity;
+use Wikibase\Repo\WikibaseRepo;
 
 /**
  * Serializer for generating the legacy serialization of an Entity.
@@ -31,7 +32,7 @@
                        throw new InvalidArgumentException( '$entity must be an 
Entity' );
                }
 
-               return $entity->toArray();
+               return 
WikibaseRepo::getDefaultInstance()->getInternalEntitySerializer()->serialize( 
$entity );
        }
 
        /**
diff --git a/lib/tests/phpunit/NoBadDependencyUsageTest.php 
b/lib/tests/phpunit/NoBadDependencyUsageTest.php
index b74eda6..b33e3d0 100644
--- a/lib/tests/phpunit/NoBadDependencyUsageTest.php
+++ b/lib/tests/phpunit/NoBadDependencyUsageTest.php
@@ -16,8 +16,8 @@
 
        public function testNoRepoUsageInLib() {
                // Increasing this allowance is forbidden
-               $this->assertStringNotInLib( 'WikibaseRepo' . '::', 2 );
-               $this->assertStringNotInLib( 'Wikibase\\Repo\\', 2 );
+               $this->assertStringNotInLib( 'WikibaseRepo' . '::', 4 );
+               $this->assertStringNotInLib( 'Wikibase\\Repo\\', 4 );
        }
 
        public function testNoClientUsageInLib() {
diff --git 
a/lib/tests/phpunit/serializers/LegacyInternalEntitySerializerTest.php 
b/lib/tests/phpunit/serializers/LegacyInternalEntitySerializerTest.php
deleted file mode 100644
index c2eb039..0000000
--- a/lib/tests/phpunit/serializers/LegacyInternalEntitySerializerTest.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Wikibase\Test;
-
-use DataValues\Serializers\DataValueSerializer;
-use RuntimeException;
-use Wikibase\DataModel\Entity\Item;
-use Wikibase\DataModel\Entity\ItemId;
-use Wikibase\InternalSerialization\SerializerFactory;
-use Wikibase\Lib\Serializers\LegacyInternalEntitySerializer;
-
-/**
- * @covers Wikibase\Lib\Serializers\LegacyInternalEntitySerializer
- *
- * @group WikibaseLib
- * @group Wikibase
- * @group WikibaseSerialization
- *
- * @licence GNU GPL v2+
- * @author Daniel Kinzler
- */
-class LegacyInternalEntitySerializerTest extends \PHPUnit_Framework_TestCase {
-
-       public function legacyFormatBlobProvider() {
-               $entity = Item::newEmpty();
-               $entity->setId( new ItemId( 'Q12' ) );
-               $entity->setLabel( 'en', 'Test' );
-
-               // make legacy blob
-               $legacySerializer = new LegacyInternalEntitySerializer();
-               $oldBlob = json_encode( $legacySerializer->serialize( $entity ) 
);
-
-               // fake ancient legacy blob:
-               // replace "entity":["item",7] with "entity":"q7"
-               $id = $entity->getId()->getSerialization();
-               $veryOldBlob = preg_replace( '/"entity":\["\w+",\d+\]/', 
'"entity":"' . strtolower( $id ) . '"', $oldBlob );
-
-               // sanity
-               if ( $oldBlob == $veryOldBlob ) {
-                       throw new RuntimeException( 'Failed to fake very old 
serialization format based on oldish serialization format.' );
-               }
-
-               // make new style blob
-               $newSerializerFactory = new SerializerFactory( new 
DataValueSerializer() );
-               $newSerializer = $newSerializerFactory->newEntitySerializer();
-               $newBlob = json_encode( $newSerializer->serialize( $entity ) );
-
-               return array(
-                       'old serialization / ancient id format' => array( 
$veryOldBlob, CONTENT_FORMAT_JSON, true ),
-                       'old serialization / new silly id format' => array( 
$oldBlob, CONTENT_FORMAT_JSON, true ),
-                       'new serialization format' => array( $newBlob, 
CONTENT_FORMAT_JSON, false ),
-               );
-       }
-
-       /**
-        * @dataProvider legacyFormatBlobProvider
-        */
-       public function testIsBlobUsingLegacyFormat( $blob, $format, $expected 
) {
-               $actual = 
LegacyInternalEntitySerializer::isBlobUsingLegacyFormat( $blob, $format );
-               $this->assertEquals( $expected, $actual );
-       }
-
-}
diff --git a/repo/config/Wikibase.default.php b/repo/config/Wikibase.default.php
index 4c7def1..1eb1e3d 100644
--- a/repo/config/Wikibase.default.php
+++ b/repo/config/Wikibase.default.php
@@ -85,7 +85,7 @@
 
                // Can be used to override the serialization used for storage.
                // Typical value: 
Wikibase\Lib\Serializers\LegacyInternalClaimSerializer
-               'internalClaimSerializerClass' => 
'Wikibase\Lib\Serializers\LegacyInternalClaimSerializer',
+               'internalClaimSerializerClass' => null,
 
                'transformLegacyFormatOnExport' => function( SettingsArray 
$settings ) {
                        // Enabled, unless internalEntitySerializerClass is set.
diff --git a/repo/tests/phpunit/includes/WikibaseRepoTest.php 
b/repo/tests/phpunit/includes/WikibaseRepoTest.php
index 273aa57..f61d38b 100644
--- a/repo/tests/phpunit/includes/WikibaseRepoTest.php
+++ b/repo/tests/phpunit/includes/WikibaseRepoTest.php
@@ -159,51 +159,6 @@
                $this->assertInstanceOf( 
'Wikibase\Lib\Changes\EntityChangeFactory', $factory );
        }
 
-       // TODO: DM 1.0 blocker, this uses Entity::toArray
-       public function testGetEntityContentDataCodec_legacy() {
-               $item = Item::newEmpty();
-               $item->setLabel( 'en', 'Hello' );
-               $item->setLabel( 'es', 'Holla' );
-
-               $repo = $this->getDefaultInstance();
-               $repo->getSettings()->setSetting( 
'internalEntitySerializerClass', 
'Wikibase\Lib\Serializers\LegacyInternalEntitySerializer' );
-
-               $codec = $repo->getEntityContentDataCodec();
-               $json = $codec->encodeEntity( $item, CONTENT_FORMAT_JSON );
-               $data = json_decode( $json, true );
-
-               $this->assertEquals( $item->toArray(), $data );
-       }
-
-       // TODO: DM 1.0 blocker, this uses Entity::toArray
-       public function testGetInternalEntitySerializer_legacy() {
-               $item = Item::newEmpty();
-               $item->setLabel( 'en', 'Hello' );
-               $item->setLabel( 'es', 'Holla' );
-
-               $repo = $this->getDefaultInstance();
-               $repo->getSettings()->setSetting( 
'internalEntitySerializerClass', 
'Wikibase\Lib\Serializers\LegacyInternalEntitySerializer' );
-
-               $serializer = $repo->getInternalEntitySerializer();
-               $data = $serializer->serialize( $item );
-
-               $this->assertEquals( $item->toArray(), $data );
-       }
-
-       // TODO: DM 1.0 blocker, this uses Claim::toArray
-       public function testGetInternalClaimSerializer_legacy() {
-               $claim = new Statement( new PropertyNoValueSnak( 42 ) );
-               $claim->setGuid( 'kittens' );
-
-               $repo = $this->getDefaultInstance();
-               $repo->getSettings()->setSetting( 
'internalClaimSerializerClass', 
'Wikibase\Lib\Serializers\LegacyInternalClaimSerializer' );
-
-               $serializer = $repo->getInternalClaimSerializer();
-               $data = $serializer->serialize( $claim );
-
-               $this->assertEquals( $claim->toArray(), $data );
-       }
-
        public function testNewItemHandler() {
                $repo = $this->getDefaultInstance();
                $handler = $repo->newItemHandler();

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I1ec5ac5c8f7b4a6793edd058882685ad0818d26d
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Jeroen De Dauw <jeroended...@gmail.com>
Gerrit-Reviewer: Addshore <addshorew...@gmail.com>
Gerrit-Reviewer: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: Bene <benestar.wikime...@googlemail.com>
Gerrit-Reviewer: Jeroen De Dauw <jeroended...@gmail.com>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de>
Gerrit-Reviewer: Tobias Gritschacher <tobias.gritschac...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to