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 <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Bene <[email protected]>
Gerrit-Reviewer: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits