Jeroen De Dauw has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/153714

Change subject: [DNM] DM 1.0 compat
......................................................................

[DNM] DM 1.0 compat

Change-Id: I1ec5ac5c8f7b4a6793edd058882685ad0818d26c
---
M composer.json
M lib/includes/serializers/LegacyInternalClaimSerializer.php
D lib/includes/serializers/LegacyInternalEntitySerializer.php
D lib/tests/phpunit/serializers/LegacyInternalEntitySerializerTest.php
M repo/config/Wikibase.default.php
M repo/tests/phpunit/includes/WikibaseRepoTest.php
6 files changed, 4 insertions(+), 172 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/14/153714/1

diff --git a/composer.json b/composer.json
index bdcdcbd..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.8.2",
+               "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
deleted file mode 100644
index 062bbf3..0000000
--- a/lib/includes/serializers/LegacyInternalEntitySerializer.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Wikibase\Lib\Serializers;
-
-use InvalidArgumentException;
-use Serializers\Serializer as NewStyleSerializer;
-use Wikibase\DataModel\Entity\Entity;
-
-/**
- * Serializer for generating the legacy serialization of an Entity.
- *
- * @since 0.5
- * @licence GNU GPL v2+
- * @author Daniel Kinzler
- */
-class LegacyInternalEntitySerializer implements NewStyleSerializer {
-
-       /**
-        * Returns an array structure representing the given entity,
-        * by calling $entity->toArray().
-        *
-        * @see Serializer::getSerialized()
-        *
-        * @param Entity $entity
-        *
-        * @throws InvalidArgumentException
-        * @return array
-        */
-       public function serialize( $entity ) {
-               if ( !( $entity ) ) {
-                       throw new InvalidArgumentException( '$entity must be an 
Entity' );
-               }
-
-               return $entity->toArray();
-       }
-
-       /**
-        * Detects blobs that may be using a legacy serialization format.
-        * WikibaseRepo uses this for the $legacyExportFormatDetector parameter
-        * when constructing EntityHandlers.
-        *
-        * @see WikibaseRepo::newItemHandler
-        * @see WikibaseRepo::newPropertyHandler
-        * @see EntityHandler::__construct
-        *
-        * @note: False positives (detecting a legacy format when really no 
legacy format was used)
-        * are acceptable, false negatives (failing to detect a legacy format 
when one was used)
-        * are not acceptable.
-        *
-        * @param string $blob
-        * @param string $format
-        *
-        * @return bool True if $blob seems to be using a legacy serialization 
format.
-        */
-       public static function isBlobUsingLegacyFormat( $blob, $format ) {
-               // The legacy serialization uses something like 
"entity":["item",21] or
-               // even "entity":"p21" for the entity ID.
-               return preg_match( '/"entity"\s*:/', $blob ) > 0;
-       }
-
-}
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 012b681..f9880d9 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 add8699..3a3f3df 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/153714
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1ec5ac5c8f7b4a6793edd058882685ad0818d26c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Jeroen De Dauw <jeroended...@gmail.com>

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

Reply via email to