jenkins-bot has submitted this change and it was merged.

Change subject: New Wikidata Build - 24/08/2014 10:00
......................................................................


New Wikidata Build - 24/08/2014 10:00

Change-Id: If43777c351cb664a1b76537494e7a283f58b722e
---
M composer.lock
M extensions/Wikibase/client/i18n/bg.json
M extensions/Wikibase/client/i18n/et.json
M extensions/Wikibase/client/i18n/ms.json
M extensions/Wikibase/client/i18n/pt.json
M extensions/Wikibase/client/i18n/sv.json
M extensions/Wikibase/client/tests/phpunit/includes/RepoLinkerTest.php
M extensions/Wikibase/lib/includes/serializers/ByPropertyListSerializer.php
M extensions/Wikibase/lib/includes/serializers/ClaimSerializer.php
M extensions/Wikibase/lib/includes/serializers/ReferenceSerializer.php
M extensions/Wikibase/lib/includes/serializers/SerializerFactory.php
M extensions/Wikibase/lib/tests/phpunit/ChangesTableTest.php
M extensions/Wikibase/lib/tests/phpunit/MockPropertyLabelResolver.php
M extensions/Wikibase/lib/tests/phpunit/ReferencedUrlFinderTest.php
M extensions/Wikibase/lib/tests/phpunit/serializers/ReferenceSerializerTest.php
M extensions/Wikibase/lib/tests/phpunit/serializers/SerializerFactoryTest.php
M extensions/Wikibase/repo/i18n/bn.json
M extensions/Wikibase/repo/i18n/es.json
M extensions/Wikibase/repo/i18n/et.json
M extensions/Wikibase/repo/i18n/fa.json
M extensions/Wikibase/repo/i18n/he.json
M extensions/Wikibase/repo/i18n/nl.json
M extensions/Wikibase/repo/i18n/pl.json
M extensions/Wikibase/repo/i18n/zh-hant.json
M extensions/Wikibase/repo/includes/ClaimDiffer.php
M extensions/Wikibase/repo/includes/WikibaseRepo.php
M extensions/Wikibase/repo/includes/content/EntityContent.php
M extensions/Wikibase/repo/includes/content/ItemContent.php
R extensions/Wikibase/repo/includes/store/EntityPermissionChecker.php
M extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceTest.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceVisualizerTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/ClaimHtmlGeneratorTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/ClaimSummaryBuilderTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/EntityDiffVisualizerTest.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/Validators/SnakValidatorTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/store/sql/EntityPerPageBuilderTest.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
M vendor/autoload.php
M vendor/composer/autoload_classmap.php
M vendor/composer/autoload_real.php
M vendor/composer/installed.json
M vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php
M 
vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php
49 files changed, 233 insertions(+), 187 deletions(-)

Approvals:
  Aude: Looks good to me, approved
  WikidataJenkins: Verified
  jenkins-bot: Verified



diff --git a/composer.lock b/composer.lock
index a937fe0..5646740 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,16 +8,16 @@
     "packages": [
         {
             "name": "composer/installers",
-            "version": "v1.0.17",
+            "version": "v1.0.18",
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/installers.git";,
-                "reference": "f22820dd0854a406f86e2fc29b81c1898d68e5fb"
+                "reference": "74fb0a7a1a23696d9c8cc2fba5903f6711cdd067"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/composer/installers/zipball/f22820dd0854a406f86e2fc29b81c1898d68e5fb";,
-                "reference": "f22820dd0854a406f86e2fc29b81c1898d68e5fb",
+                "url": 
"https://api.github.com/repos/composer/installers/zipball/74fb0a7a1a23696d9c8cc2fba5903f6711cdd067";,
+                "reference": "74fb0a7a1a23696d9c8cc2fba5903f6711cdd067",
                 "shasum": ""
             },
             "replace": {
@@ -94,7 +94,7 @@
                 "zend",
                 "zikula"
             ],
-            "time": "2014-08-17 18:19:30"
+            "time": "2014-08-18 20:00:12"
         },
         {
             "name": "data-values/common",
@@ -1138,12 +1138,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "ff2c458ad2d7398bf3eb04ea77bcd44a601c44e8"
+                "reference": "e584fdafc161a7906b9e61244aa70977ee9d11c2"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/ff2c458ad2d7398bf3eb04ea77bcd44a601c44e8";,
-                "reference": "ff2c458ad2d7398bf3eb04ea77bcd44a601c44e8",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/e584fdafc161a7906b9e61244aa70977ee9d11c2";,
+                "reference": "e584fdafc161a7906b9e61244aa70977ee9d11c2",
                 "shasum": ""
             },
             "require": {
@@ -1212,7 +1212,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2014-08-22 14:03:28"
+            "time": "2014-08-23 20:02:43"
         }
     ],
     "packages-dev": [
diff --git a/extensions/Wikibase/client/i18n/bg.json 
b/extensions/Wikibase/client/i18n/bg.json
index 704162b..b5b7398 100644
--- a/extensions/Wikibase/client/i18n/bg.json
+++ b/extensions/Wikibase/client/i18n/bg.json
@@ -3,11 +3,12 @@
                "authors": [
                        "DCLXVI",
                        "Mitzev",
-                       "Spiritia"
+                       "Spiritia",
+                       "StanProg"
                ]
        },
-       "wikibase-after-page-move": "Можете да [$1 актуализирате] свързания 
обект от Уикиданните с цел поддръжка на междуезиковите препратки към 
преместената страница.",
-       "wikibase-comment-remove": "Асоциираният обект от Уикиданните е изтрит. 
Междуезиковите препратки са премахнати.",
+       "wikibase-after-page-move": "Можете да [$1 актуализирате] свързания 
обект от {{WBREPONAME}} с цел поддръжка на междуезиковите препратки към 
преместената страница.",
+       "wikibase-comment-remove": "Асоциираният обект от {{WBREPONAME}} е 
изтрит. Междуезиковите препратки са премахнати.",
        "wikibase-comment-sitelink-add": "Добавена междуезикова препратка: $1",
        "wikibase-comment-sitelink-change": "Променена междуезикова препратка: 
от $1 на $2",
        "wikibase-comment-sitelink-remove": "Премахната междуезикова препратка: 
$1",
@@ -15,14 +16,17 @@
        "wikibase-editlinkstitle": "Редактиране на междуезиковите препратки",
        "wikibase-linkitem-addlinks": "Добавяне на препратки",
        "wikibase-linkitem-failure": "При опита за свързване с дадената 
страница възникна неизвестна грешка.",
-       "wikibase-linkitem-selectlink": "Изберете сайта и страницата от него, с 
която искате да свържете тази.",
+       "wikibase-linkitem-selectlink": "Изберете сайта и страницата от него, 
която искате да свърже с тази.",
        "wikibase-linkitem-input-site": "Език:",
        "wikibase-linkitem-input-page": "Страница:",
        "wikibase-linkitem-confirmitem-text": "Избраната страница е вече 
свързана с [$1 обект от нашето централно хранилище с данни]. Потвърдете, ако 
страниците, показани по-долу, са онези, които искате да свържете с тази 
страница.",
        "wikibase-linkitem-confirmitem-button": "Потвърждаване",
        "wikibase-linkitem-not-loggedin-title": "Трябва да сте влезли в 
системата",
-       "wikibase-rc-hide-wikidata": "$1 на Уикиданни",
+       "wikibase-rc-hide-wikidata": "$1 на {{WBREPONAME}}",
        "wikibase-rc-hide-wikidata-hide": "Скриване",
        "wikibase-rc-hide-wikidata-show": "Показване",
-       "wikibase-pageinfo-entity-id": "ID на обекта в Уикиданни"
+       "wikibase-rc-show-wikidata-pref": "Показване на {{WBREPONAME}} редакции 
в последните промени",
+       "wikibase-rc-wikibase-edit-title": "{{WBREPONAME}} редакция",
+       "wikibase-watchlist-show-changes-pref": "Показване на {{WBREPONAME}} 
редакции в списъка за наблюдение",
+       "wikibase-pageinfo-entity-id": "ID на обекта в {{WBREPONAME}}"
 }
diff --git a/extensions/Wikibase/client/i18n/et.json 
b/extensions/Wikibase/client/i18n/et.json
index 050ba58..fb341b0 100644
--- a/extensions/Wikibase/client/i18n/et.json
+++ b/extensions/Wikibase/client/i18n/et.json
@@ -37,7 +37,6 @@
        "wikibase-linkitem-not-loggedin": "Et kasutada seda funktsiooni, pead 
olema sisse loginud siia vikisse ja [$1 kesksesse andmehoidlasse].",
        "wikibase-linkitem-success-link": "Leheküljed on edukalt ühendatud. 
Linke sisaldava üksuse leiad [$1 kesksest andmehoidlast].",
        "wikibase-property-notfound": "Omadust $1 ei leitud.",
-       "wikibase-property-notsupportedyet": "Vikibaas ei toeta veel omadusele 
$1 vastavat omaduse tüüpi.",
        "wikibase-rc-hide-wikidata": "Vikiandmed ($1)",
        "wikibase-rc-hide-wikidata-hide": "peida",
        "wikibase-rc-hide-wikidata-show": "näita",
@@ -45,6 +44,7 @@
        "wikibase-rc-wikibase-edit-letter": "A",
        "wikibase-rc-wikibase-edit-title": "Vikiandmete muudatus",
        "wikibase-watchlist-show-changes-pref": "Näita jälgimisloendis 
Vikiandmete muudatusi",
+       "wikibase-error-serialize-error": "Andmete jadastamine ebaõnnestus.",
        "wikibase-error-invalid-entity-id": "Sisestatud identifikaator on 
süsteemis tundmatu. Palun sisesta sobiv olemi identifikaator.",
        "special-unconnectedpages": "Üksustega ühendamata leheküljed",
        "wikibase-unconnectedpages-legend": "Ühendamata lehekülgede sätted",
@@ -57,5 +57,7 @@
        "wikibase-pageinfo-entity-id": "Vikiandmete üksuse identifikaator",
        "wikibase-pageinfo-entity-id-none": "Puudub",
        "wikibase-property-render-error": "Omaduse $1 viimistlemine 
ebaõnnestus: $2",
-       "wikibase-otherprojects": "Teised projektid"
+       "wikibase-otherprojects": "Teistes projektides",
+       "wikibase-otherprojects-beta-message": "Teiste projektide külgriba",
+       "wikibase-otherprojects-beta-description": "Lisab külgribale alaosa 
\"{{int:wikibase-otherprojects}}\", mis sisaldab Vikiandmetest pärit linke 
teistesse Wikimedia projektidesse."
 }
diff --git a/extensions/Wikibase/client/i18n/ms.json 
b/extensions/Wikibase/client/i18n/ms.json
index b9fa8cd..57d25cb 100644
--- a/extensions/Wikibase/client/i18n/ms.json
+++ b/extensions/Wikibase/client/i18n/ms.json
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Anakmalaysia",
-                       "Aurora"
+                       "Aurora",
+                       "Aviator"
                ]
        },
        "wikibase-client-desc": "Pelanggan sambungan Wikibase",
@@ -30,14 +31,13 @@
        "wikibase-linkitem-linkpage": "Pautkan dengan halaman",
        "wikibase-linkitem-selectlink": "Sila pilih tapak dan halaman yang mana 
ingin anda pautkan halaman ini.",
        "wikibase-linkitem-input-site": "Bahasa:",
-       "wikibase-linkitem-input-page": "Halaman:",
+       "wikibase-linkitem-input-page": "Laman:",
        "wikibase-linkitem-confirmitem-text": "Halaman yang telah anda pilih 
itu sudah dipautkan dengan satu [$1 perkara di repositori pusat kami]. Sila 
sahkan bahawa {{PLURAL:$2|halaman|halaman-halaman}} yang ditunjukkan seperti 
berikut adalah yang ingin anda pautkan dengan halaman ini.",
        "wikibase-linkitem-confirmitem-button": "Sahkan",
        "wikibase-linkitem-not-loggedin-title": "Anda perlu log masuk",
        "wikibase-linkitem-not-loggedin": "Anda perlu log masuk ke dalam wiki 
ini dan juga ke dalam [$1 repositori data pusat] untuk menggunakan ciri ini.",
        "wikibase-linkitem-success-link": "Halaman-halaman ini telah berjaya 
dipautkan. Anda boleh mendapati perkara yang mengandungi pautan-pautannya di 
dalam [$1 repositori data pusat] kami.",
        "wikibase-property-notfound": "Sifat $1 tidak dijumpai.",
-       "wikibase-property-notsupportedyet": "Wikibase belum menyokong jenis 
sifat $1.",
        "wikibase-rc-hide-wikidata": "$1 Wikidata",
        "wikibase-rc-show-wikidata-pref": "Paparkan suntingan Wikidata dalam 
perubahan terkini",
        "wikibase-watchlist-show-changes-pref": "Paparkan suntingan Wikidata 
dalam senarai pantau anda",
diff --git a/extensions/Wikibase/client/i18n/pt.json 
b/extensions/Wikibase/client/i18n/pt.json
index e5e63c0..e29558c 100644
--- a/extensions/Wikibase/client/i18n/pt.json
+++ b/extensions/Wikibase/client/i18n/pt.json
@@ -67,7 +67,7 @@
        "wikibase-pageinfo-entity-id": "ID do item {{WBREPONAME}}",
        "wikibase-pageinfo-entity-id-none": "Nenhuma",
        "wikibase-property-render-error": "Erro ao processar a propriedade $1: 
$2",
-       "wikibase-otherprojects": "Outros projectos",
+       "wikibase-otherprojects": "Noutros projectos",
        "wikibase-otherprojects-beta-message": "Barra lateral de outros 
projetos",
        "wikibase-otherprojects-beta-description": "Adiciona uma seção 
\"{{int:wikibase-otherprojects}}\" à barra lateral que fornece ligações para 
outros projetos Wikimedia baseados em dados {{WBREPONAME}}."
 }
diff --git a/extensions/Wikibase/client/i18n/sv.json 
b/extensions/Wikibase/client/i18n/sv.json
index 7f02d95..c60a4bc 100644
--- a/extensions/Wikibase/client/i18n/sv.json
+++ b/extensions/Wikibase/client/i18n/sv.json
@@ -63,6 +63,6 @@
        "wikibase-pageinfo-entity-id-none": "Ingen",
        "wikibase-property-render-error": "Misslyckades att rendera egenskapen 
$1: $2",
        "wikibase-otherprojects": "Andra projekt",
-       "wikibase-otherprojects-beta-message": "Sidofält för andra projekt",
+       "wikibase-otherprojects-beta-message": "Sidopanel för andra projekt",
        "wikibase-otherprojects-beta-description": "Lägger till ett 
\"{{int:wikibase-otherprojects}}\"-avsnitt till sidofältet som innehåller 
länkar till andra Wikimedia-projekten utifrån {{WBREPONAME}}-data."
 }
diff --git 
a/extensions/Wikibase/client/tests/phpunit/includes/RepoLinkerTest.php 
b/extensions/Wikibase/client/tests/phpunit/includes/RepoLinkerTest.php
index cc28ae8..999d8d4 100644
--- a/extensions/Wikibase/client/tests/phpunit/includes/RepoLinkerTest.php
+++ b/extensions/Wikibase/client/tests/phpunit/includes/RepoLinkerTest.php
@@ -2,9 +2,9 @@
 
 namespace Wikibase\Test;
 
+use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\PropertyId;
-use Wikibase\EntityId;
 use Wikibase\RepoLinker;
 
 /**
@@ -350,4 +350,5 @@
                        )
                );
        }
+
 }
diff --git 
a/extensions/Wikibase/lib/includes/serializers/ByPropertyListSerializer.php 
b/extensions/Wikibase/lib/includes/serializers/ByPropertyListSerializer.php
index 4bd5a05..5af57d2 100644
--- a/extensions/Wikibase/lib/includes/serializers/ByPropertyListSerializer.php
+++ b/extensions/Wikibase/lib/includes/serializers/ByPropertyListSerializer.php
@@ -4,7 +4,7 @@
 
 use InvalidArgumentException;
 use Traversable;
-use Wikibase\ByPropertyIdArray;
+use Wikibase\DataModel\ByPropertyIdArray;
 
 /**
  * Serializer for Traversable objects that need to be grouped
diff --git a/extensions/Wikibase/lib/includes/serializers/ClaimSerializer.php 
b/extensions/Wikibase/lib/includes/serializers/ClaimSerializer.php
index 3194340..0211a1c 100644
--- a/extensions/Wikibase/lib/includes/serializers/ClaimSerializer.php
+++ b/extensions/Wikibase/lib/includes/serializers/ClaimSerializer.php
@@ -5,7 +5,7 @@
 use InvalidArgumentException;
 use OutOfBoundsException;
 use Wikibase\Claim;
-use Wikibase\ReferenceList;
+use Wikibase\DataModel\ReferenceList;
 use Wikibase\Snak;
 use Wikibase\SnakList;
 use Wikibase\Statement;
diff --git 
a/extensions/Wikibase/lib/includes/serializers/ReferenceSerializer.php 
b/extensions/Wikibase/lib/includes/serializers/ReferenceSerializer.php
index 1535b6d..2942803 100644
--- a/extensions/Wikibase/lib/includes/serializers/ReferenceSerializer.php
+++ b/extensions/Wikibase/lib/includes/serializers/ReferenceSerializer.php
@@ -4,7 +4,7 @@
 
 use InvalidArgumentException;
 use OutOfBoundsException;
-use Wikibase\Reference;
+use Wikibase\DataModel\Reference;
 use Wikibase\Snak;
 use Wikibase\SnakList;
 
diff --git a/extensions/Wikibase/lib/includes/serializers/SerializerFactory.php 
b/extensions/Wikibase/lib/includes/serializers/SerializerFactory.php
index 8cf7af9..7be28fd 100644
--- a/extensions/Wikibase/lib/includes/serializers/SerializerFactory.php
+++ b/extensions/Wikibase/lib/includes/serializers/SerializerFactory.php
@@ -7,11 +7,11 @@
 use SiteStore;
 use Wikibase\Claim;
 use Wikibase\Claims;
+use Wikibase\DataModel\Reference;
 use Wikibase\EntityFactory;
 use Wikibase\Item;
 use Wikibase\Lib\PropertyDataTypeLookup;
 use Wikibase\Property;
-use Wikibase\Reference;
 use Wikibase\Snak;
 
 /**
@@ -142,7 +142,7 @@
                        //TODO: support extra entity types!
                        case 'Wikibase\Snak':
                                return $this->newSnakUnserializer( $options );
-                       case 'Wikibase\Reference':
+                       case 'Wikibase\DataModel\Reference':
                                return $this->newReferenceUnserializer($options 
);
                        case 'Wikibase\Claim':
                                return $this->newClaimUnserializer( $options );
@@ -389,4 +389,5 @@
 
                return $mergedOptions;
        }
+
 }
diff --git a/extensions/Wikibase/lib/tests/phpunit/ChangesTableTest.php 
b/extensions/Wikibase/lib/tests/phpunit/ChangesTableTest.php
index f302feb..85b95382 100644
--- a/extensions/Wikibase/lib/tests/phpunit/ChangesTableTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/ChangesTableTest.php
@@ -7,8 +7,8 @@
 use Diff\DiffOpChange;
 use Wikibase\ChangesTable;
 use Wikibase\Claim;
+use Wikibase\DataModel\Entity\ItemDiff;
 use Wikibase\DataModel\Entity\ItemId;
-use Wikibase\ItemDiff;
 use Wikibase\PropertyNoValueSnak;
 
 /**
@@ -164,4 +164,3 @@
        }
 
 }
-
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/MockPropertyLabelResolver.php 
b/extensions/Wikibase/lib/tests/phpunit/MockPropertyLabelResolver.php
index 4b53471..2a454fc 100644
--- a/extensions/Wikibase/lib/tests/phpunit/MockPropertyLabelResolver.php
+++ b/extensions/Wikibase/lib/tests/phpunit/MockPropertyLabelResolver.php
@@ -2,7 +2,7 @@
 
 namespace Wikibase\Test;
 
-use Wikibase\EntityId;
+use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\PropertyLabelResolver;
 
 /**
@@ -46,4 +46,5 @@
 
                return $ids;
        }
+
 }
diff --git a/extensions/Wikibase/lib/tests/phpunit/ReferencedUrlFinderTest.php 
b/extensions/Wikibase/lib/tests/phpunit/ReferencedUrlFinderTest.php
index afa0654..3eb8913 100644
--- a/extensions/Wikibase/lib/tests/phpunit/ReferencedUrlFinderTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/ReferencedUrlFinderTest.php
@@ -3,8 +3,8 @@
 namespace Wikibase\Lib\Test;
 
 use DataValues\StringValue;
+use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\PropertyId;
-use Wikibase\EntityId;
 use Wikibase\Lib\InMemoryDataTypeLookup;
 use Wikibase\PropertyNoValueSnak;
 use Wikibase\PropertySomeValueSnak;
@@ -82,4 +82,5 @@
                $actual = $linkFinder->findSnakLinks( $snaks );
                $this->assertEmpty( $actual ); // since $p42 isn't know, this 
should return nothing
        }
+
 }
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/serializers/ReferenceSerializerTest.php 
b/extensions/Wikibase/lib/tests/phpunit/serializers/ReferenceSerializerTest.php
index 7305247..d5459fb 100644
--- 
a/extensions/Wikibase/lib/tests/phpunit/serializers/ReferenceSerializerTest.php
+++ 
b/extensions/Wikibase/lib/tests/phpunit/serializers/ReferenceSerializerTest.php
@@ -3,13 +3,13 @@
 namespace Wikibase\Test;
 
 use DataValues\StringValue;
+use Wikibase\DataModel\Reference;
 use Wikibase\Lib\Serializers\ReferenceSerializer;
 use Wikibase\Lib\Serializers\SerializationOptions;
 use Wikibase\Lib\Serializers\SnakSerializer;
 use Wikibase\PropertyNoValueSnak;
 use Wikibase\PropertySomeValueSnak;
 use Wikibase\PropertyValueSnak;
-use Wikibase\Reference;
 use Wikibase\SnakList;
 
 /**
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/serializers/SerializerFactoryTest.php 
b/extensions/Wikibase/lib/tests/phpunit/serializers/SerializerFactoryTest.php
index 6d250c8..dfb0534 100644
--- 
a/extensions/Wikibase/lib/tests/phpunit/serializers/SerializerFactoryTest.php
+++ 
b/extensions/Wikibase/lib/tests/phpunit/serializers/SerializerFactoryTest.php
@@ -3,12 +3,12 @@
 namespace Wikibase\Lib\Test\Serializers;
 
 use Wikibase\Claim;
+use Wikibase\DataModel\Reference;
 use Wikibase\Item;
 use Wikibase\Lib\Serializers\SerializationOptions;
 use Wikibase\Lib\Serializers\SerializerFactory;
 use Wikibase\Property;
 use Wikibase\PropertyNoValueSnak;
-use Wikibase\Reference;
 
 /**
  * @covers Wikibase\Lib\Serializers\SerializerFactory
diff --git a/extensions/Wikibase/repo/i18n/bn.json 
b/extensions/Wikibase/repo/i18n/bn.json
index 8a2a960..392645a 100644
--- a/extensions/Wikibase/repo/i18n/bn.json
+++ b/extensions/Wikibase/repo/i18n/bn.json
@@ -74,6 +74,9 @@
        "wikibase-itembytitle-lookup-page": "পাতা:",
        "wikibase-itembytitle-submit": "অনুসন্ধান",
        "wikibase-itembytitle-create": "এছাড়াও আপনি 
[{{fullurl:Special:NewItem|site=$1&page=$2}} একটি আইটেম তৈরি] করতে পারেন।",
+       "wikibase-gotolinkedpage-lookup-site": "সাইট:",
+       "wikibase-gotolinkedpage-lookup-item": "আইটেম আইডি:",
+       "wikibase-gotolinkedpage-submit": "চলো",
        "special-itemdisambiguation": "আইটেম দ্ব্যর্থতা নিরসন",
        "wikibase-itemdisambiguation-lookup-fieldset": "ভাষা এবং লেবেল অনুযায়ী 
আইটেমের জন্য অনুসন্ধান",
        "wikibase-itemdisambiguation-lookup-language": "ভাষা:",
@@ -106,9 +109,11 @@
        "special-setsitelink": "একটি সাইট লিঙ্ক সেট করুন",
        "wikibase-setsitelink-site": "সাইট আইডি:",
        "wikibase-setsitelink-label": "সাইট লিংক:",
+       "wikibase-setsitelink-badges": "ব্যাজ:",
        "wikibase-setsitelink-submit": "সাইট লিংক নির্ধারণ করুন",
        "wikibase-setsitelink-warning-remove": "আপনি কি সত্যিই [[$1]]-এর সাইট 
লিংক সরাতে চান?",
        "wikibase-setsitelink-invalid-site": "সাইট আইডি \"$1\" আজানা। একটি 
বিদ্যমান সাইট আইডি ব্যবহার করুন, যেমন \"bnwiki\"।",
+       "wikibase-setsitelink-not-badge": "আইটেম $1 কোন ব্যাজ নয়।",
        "wikibase-setsitelink-add-failed": "সাইট লিঙ্ক সংরক্ষণ করা যায়নি।",
        "wikibase-setsitelink-remove-failed": "সাইট লিঙ্ক মুছে ফেলা যাবে না।",
        "wikibase-modifyentity-id": "আইডি:",
@@ -154,6 +159,7 @@
        "wikibase-noentity-createone": "এছাড়াও আপনি [[$1|নতুন একটি তৈরি করতে]] 
পারেন।",
        "wikibase-item-summary-wbsetitem": "নতুন একটি আইটেম তৈরি হয়েছে",
        "wikibase-item-summary-wbcreate-new": "নতুন একটি আইটেম তৈরি হয়েছে",
+       "wikibase-item-summary-wbcreateredirect": "$4-এ পুনঃনির্দেশিত",
        "wikibase-item-summary-wbeditentity": "নতুন একটি আইটেম তৈরি হয়েছে",
        "wikibase-item-summary-wbeditentity-create": "নতুন একটি আইটেম তৈরি 
হয়েছে",
        "wikibase-item-summary-wbeditentity-update": "আইটেম পরিবর্তন করা 
হয়েছে",
diff --git a/extensions/Wikibase/repo/i18n/es.json 
b/extensions/Wikibase/repo/i18n/es.json
index 578ce3e..25d24ed 100644
--- a/extensions/Wikibase/repo/i18n/es.json
+++ b/extensions/Wikibase/repo/i18n/es.json
@@ -52,7 +52,7 @@
        "wikibase-terms": "En otros idiomas",
        "wikibase-sitelinks-empty": "Aún no hay ninguna página enlazada con 
este elemento.",
        "wikibase-sitelinks-input-help-message": "Definir un enlace hacia una 
página relacionada con este elemento.",
-       "wikibase-sitelinks-special": "Páginas en otros sitios enlazadas a este 
artículo",
+       "wikibase-sitelinks-special": "Páginas en otros sitios enlazadas con 
este elemento",
        "wikibase-remove": "eliminar",
        "wikibase-move-up": "subir",
        "wikibase-move-down": "bajar",
diff --git a/extensions/Wikibase/repo/i18n/et.json 
b/extensions/Wikibase/repo/i18n/et.json
index 85a44e0..73de4c1 100644
--- a/extensions/Wikibase/repo/i18n/et.json
+++ b/extensions/Wikibase/repo/i18n/et.json
@@ -148,7 +148,7 @@
        "wikibase-setsitelink-intro-badges": "Lisaks saad selle võrgukohalingi 
juurde lisada erinevaid äramärkimisi, mis on loetletud allpool.",
        "wikibase-setsitelink-site": "Võrgukoha identifikaator:",
        "wikibase-setsitelink-label": "Võrgukohalink:",
-       "wikibase-setsitelink-badges": "Märgistused:",
+       "wikibase-setsitelink-badges": "Äramärkimised:",
        "wikibase-setsitelink-submit": "Määra võrgukohalink",
        "wikibase-setsitelink-warning-remove": "Kas soovid tõesti üksuse [[$1]] 
võrgukohalingi eemaldada?",
        "wikibase-setsitelink-invalid-site": "Võrgukoha identifikaator \"$1\" 
on tundmatu. Palun kasuta olemasolevat võrgukoha identifikaatorit nagu 
\"etwiki\".",
@@ -208,6 +208,7 @@
        "special-mylanguagefallbackchain": "Minu keelevaliku ahel",
        "wikibase-mylanguagefallbackchain-text": "Allpool on toodud keelevaliku 
ahel, mille järgi näed olemite silte.",
        "wikibase-mylanguagefallbackchain-babel": "Saad seda muuta, kui paned 
{{GENDER:$1|oma}} [[Special:MyPage|kasutajaleheküljele]] parserifunktsiooni 
<nowiki>{{#babel: }}</nowiki>.",
+       "wikibase-mylanguagefallbackchain-verbatim-item": "$1 – $2",
        "wikibase-api-unresolved-redirect": "See üksuse identifikaator viitab 
ümbersuunamisele, mida siin ei toetata.",
        "wikibase-api-no-such-sitelink": "Sellist võrgukohalinki ei õnnestu 
leida.",
        "wikibase-restoreold": "ennista",
@@ -235,10 +236,10 @@
        "wikibase-item-summary-wbsetaliases-add": "Lisatud 
[$2]-{{PLURAL:$1|rööpkuju|rööpkujud}}",
        "wikibase-item-summary-wbsetaliases-remove": "Eemaldatud 
[$2]-{{PLURAL:$1|rööpkuju|rööpkujud}}",
        "wikibase-item-summary-wbsetsitelink-add": "Lisatud [$2]-link",
-       "wikibase-item-summary-wbsetsitelink-add-both": "Lisatud [$2]-link 
märgistustega",
+       "wikibase-item-summary-wbsetsitelink-add-both": "Lisatud äramärkimisega 
[$2]-link",
        "wikibase-item-summary-wbsetsitelink-set": "Muudetud [$2]-link",
-       "wikibase-item-summary-wbsetsitelink-set-badges": "Muudetud 
[$2]-märgistused",
-       "wikibase-item-summary-wbsetsitelink-set-both": "Muudetud [$2]-link 
märgistustega",
+       "wikibase-item-summary-wbsetsitelink-set-badges": "Muudetud 
[$2]-äramärkimised",
+       "wikibase-item-summary-wbsetsitelink-set-both": "Muudetud 
äramärkimisega [$2]-link",
        "wikibase-item-summary-wbsetsitelink-remove": "Eemaldatud [$2]-link",
        "wikibase-item-summary-wblinktitles-create": "Üksus loodud, et ühendada 
lehekülgi",
        "wikibase-item-summary-wblinktitles-connect": "Keelelink lisatud, et 
ühendada lehekülgi",
diff --git a/extensions/Wikibase/repo/i18n/fa.json 
b/extensions/Wikibase/repo/i18n/fa.json
index d994fbf..739de18 100644
--- a/extensions/Wikibase/repo/i18n/fa.json
+++ b/extensions/Wikibase/repo/i18n/fa.json
@@ -49,6 +49,7 @@
        "wikibase-terms": "به زبان‌های دیگر",
        "wikibase-sitelinks-empty": "این آیتم هنوز هیچ صفحه‌ای پیوند ندارد.",
        "wikibase-sitelinks-input-help-message": "پیوندی به صفحه‌ای مرتبط با 
این آیتم ایجاد کنید.",
+       "wikibase-sitelinks-special": "صفحه‌های دیگر وبگاه‌ها که به این آیتم 
پیوند دارند",
        "wikibase-remove": "حذف",
        "wikibase-move-up": "انتقال به بالا",
        "wikibase-move-down": "انتقال به پایین",
@@ -110,6 +111,11 @@
        "wikibase-itembytitle-lookup-page": "صفحه:",
        "wikibase-itembytitle-submit": "جستجو",
        "wikibase-itembytitle-create": "همچنین می‌توانید 
[{{fullurl:Special:NewItem|site=$1&page=$2}} یک آیتم بسازید].",
+       "special-gotolinkedpage": "باز کردن پیوند صفحه",
+       "wikibase-gotolinkedpage-lookup-fieldset": "باز کردن صفحۀ پیوندی با 
توجه به وبگاه و آیتم",
+       "wikibase-gotolinkedpage-lookup-site": "وبگاه:",
+       "wikibase-gotolinkedpage-lookup-item": "شناسۀ آیتم:",
+       "wikibase-gotolinkedpage-submit": "بیاور",
        "special-itemdisambiguation": "ابهام‌زدایی آیتم‌ها",
        "wikibase-itemdisambiguation-lookup-fieldset": "جستجوی آیتم‌ها بر پایهٔ 
زبان و برچسب",
        "wikibase-itemdisambiguation-lookup-language": "زبان:",
@@ -156,7 +162,8 @@
        "wikibase-setaliases-warning-remove": "آیا می‌خواهید تمامی نام‌های 
مستعار [[$1]] را حذف کنید؟",
        "special-setsitelink": "ثبت پیوند تارنما",
        "wikibase-setsitelink-introfull": "شما در حال ثبت پیوند تارنمای $2 برای 
[[$1]] هستید.",
-       "wikibase-setsitelink-intro": "این فرم به شما امکان ثبت پیوند تارنمای 
یک موجودی را می‌دهد. شما باید شناسه موجودی (برای نمونه، Q23)، یک شناسه تارنما 
(برای نمونه، \"fawiki\") و پیوند تارنما را برای ثبت فراهم کنید.",
+       "wikibase-setsitelink-intro": "این فرم به شما امکان ثبت پیوند تارنمای 
یک آیتم را می‌دهد. شما باید شناسه آیتم (برای نمونه، Q23)، یک شناسه تارنما (برای 
نمونه، \"fawiki\") و پیوند تارنما را برای ثبت فراهم کنید.",
+       "wikibase-setsitelink-intro-badges": "شما می‌توانید از انواع نشان‌ها 
برای این پیوند وبگاهی استفاده کنید که در زیرآورده شده است.",
        "wikibase-setsitelink-site": "شناسه تارنما:",
        "wikibase-setsitelink-label": "پیوند تارنما:",
        "wikibase-setsitelink-badges": "نشان‌ها:",
@@ -214,12 +221,14 @@
        "wikibase-entitydata-bad-revision": "عدم نمابش تغییر نسخه‌ $2 مورد $1",
        "wikibase-entitydata-bad-id": "شناسه نامعتبر: $1.",
        "wikibase-entitydata-unsupported-format": "این رابط از قالب دادهٔ $1 
پشتیبانی نمی‌کند.",
+       "wikibase-entitydata-storage-error": "بارگیری ناموفق جوهره $1.",
        "wikibase-entitydata-title": "داده‌های جوهره‌ای",
        "wikibase-entitydata-text": "این صفحه رابطی از داده‌های پیوندداده‌شده 
به مقدارهای موضوع ارائه می‌کند. لطفاً شناسهٔ موضوع (ID) موجود در نشانی اینترنتی 
را با استفاده از نحو زیرصفحه ارائه کنید.",
        "special-mylanguagefallbackchain": "زنجیره مجدد زبان من",
        "wikibase-mylanguagefallbackchain-text": "اندوختهٔ زنجیرهٔ زبان برای 
نمایش برچسب‌های ورودی استفاده می‌شود که برای شما در پائین نمایش داده‌شده است.",
        "wikibase-mylanguagefallbackchain-babel": "با قرار دادن 
<nowiki>{{#babel: }}</nowiki> در {{GENDER:$1|قسمت}} [[Special:MyPage|صفحه 
کاربریتان]] می‌توانید این را ویرایش کنید.",
        "wikibase-mylanguagefallbackchain-converted-item": "$1- $2 ، تبدیل شده 
از  $3 - $4",
+       "wikibase-api-unresolved-redirect": "این شناسه جوهره به یک تغییر مسیر 
منتهی می‌شود. در اینجا امکان‌پذیر نمی‌باشد.",
        "wikibase-api-no-such-sitelink": "چنین پیوندی پیدا نشد.",
        "wikibase-self-conflict-patched": "ویرایش شما د آخرین نسخه پچ شد و 
تعدادی از تغییرات میانیتان را باطل کرد.",
        "wikibase-conflict-patched": "ویرایشتان در آخرین نسخه پچ شد.",
diff --git a/extensions/Wikibase/repo/i18n/he.json 
b/extensions/Wikibase/repo/i18n/he.json
index 02b8847..24f885a 100644
--- a/extensions/Wikibase/repo/i18n/he.json
+++ b/extensions/Wikibase/repo/i18n/he.json
@@ -38,7 +38,7 @@
        "wikibase-terms": "בשפות אחרות",
        "wikibase-sitelinks-empty": "שום דף עדיין אינו מקושר לפריט הזה.",
        "wikibase-sitelinks-input-help-message": "הגדרת קישור לדף שקשור לפריט 
הזה.",
-       "wikibase-sitelinks-special": "דפים האתרים אחרים שמקושרים לפריט הזה",
+       "wikibase-sitelinks-special": "דפים באתרים אחרים שמקושרים לפריט הזה",
        "wikibase-remove": "הסרה",
        "wikibase-move-up": "להעלות",
        "wikibase-move-down": "להוריד",
diff --git a/extensions/Wikibase/repo/i18n/nl.json 
b/extensions/Wikibase/repo/i18n/nl.json
index c4286bd..047cdff 100644
--- a/extensions/Wikibase/repo/i18n/nl.json
+++ b/extensions/Wikibase/repo/i18n/nl.json
@@ -306,7 +306,7 @@
        "wikibase-listdatatypes-multilingualtext-head": "Meertalige tekst",
        "wikibase-listdatatypes-multilingualtext-body": "Letterlijke 
gegevensveld voor een tekenreeks die moet vertaald moet worden in andere talen. 
Typisch gebruik is een entiteitsnaam die mondiaal relevant is en niet-lokale 
geschreven vormen heeft. Deze kunnen per taal en schrift verschillen.\n* taal: 
expliciete waarde voor het identificeren van de taal voor het tekstdeel;\n* 
waarde: expliciete waarde voor tekenreeks van de taalspecifieke variant.",
        "wikibase-listdatatypes-string-head": "Tekenreeks",
-       "wikibase-listdatatypes-string-body": "Letterlijke gegevensveld voor 
een reeks van tekens. Typisch gebruikt voor ID's met een geschreven vorm die 
niet afhankelijk zijn van de taal van de lezer.\n * waarde: expliciete waarde 
voor de taalspecifieke variant van de tekenreeks",
+       "wikibase-listdatatypes-string-body": "Letterlijke gegevensveld voor 
een reeks van tekens. Typisch gebruikt voor ID's met een geschreven vorm die 
niet afhankelijk zijn van de taal van de lezer.\n* waarde: expliciete waarde 
voor de taalspecifieke variant van de tekenreeks",
        "wikibase-listdatatypes-time-head": "Tijd",
        "wikibase-listdatatypes-time-body": "Letterlijk gegevensveld voor 
tijdwaarde. Gegevens als een tijd met enige precisie en grenzen. De tijd wordt 
intern altijd opgeslagen als de opmaak Proleptisch Gregoriaans, maar kan andere 
opmaken aannemen tijdens verwerking in opmaak (?).\n* tijd: expliciete waarde 
voor moment in de tijd, gedefinieerd in ISO8601, het jaar heeft altijd 11 
cijfers en de datum is altijd ondertekend, in de opmaak 
+00000002013-01-01T00:00:00Z;\n* tijdzone: expliciete waarde als een geheel 
getal. Tijdzonegegevens met een afwijking van UTC in minuten;\n* voor: 
expliciet geheel getal voor hoeveel eenheden voor de gegeven tijd het kan zijn. 
De eenheid is opgegeven in \"precisie\";\n* na: expliciet geheel getal voor 
hoeveel eenheden na de gegeven tijd het kan zijn. De eenheid is opgegeven in 
\"precisie\";\n* precisie: expliciete waarde, gecodeerd als kort geheel getal. 
De getallen hebben de volgende betekenis: 0: miljard jaar, 1: honderd miljoen 
jaar, ..., 6: millenium, 7: eeuw, 8: decennium, 9: jaar, 10: maand, 11: dag, 
12: uur, 13: minuut, 14: seconde;\n* kalendermodel: expliciete waarde gegeven 
als URI. Deze identificeert het kalendermodel dat gebruikt moet worden om deze 
waarde weer te geven.",
        "wikibase-listdatatypes-url-head": "URL",
diff --git a/extensions/Wikibase/repo/i18n/pl.json 
b/extensions/Wikibase/repo/i18n/pl.json
index 4323475..1289244 100644
--- a/extensions/Wikibase/repo/i18n/pl.json
+++ b/extensions/Wikibase/repo/i18n/pl.json
@@ -42,6 +42,7 @@
        "wikibase-terms": "W innych językach",
        "wikibase-sitelinks-empty": "Brak strony powiązanej z tym elementem.",
        "wikibase-sitelinks-input-help-message": "Podaj link do strony 
związanej z tym elementem.",
+       "wikibase-sitelinks-special": "Strony innych projektów powiązane z tym 
elementem",
        "wikibase-remove": "usuń",
        "wikibase-move-up": "przenieś w górę",
        "wikibase-move-down": "przenieś w dół",
diff --git a/extensions/Wikibase/repo/i18n/zh-hant.json 
b/extensions/Wikibase/repo/i18n/zh-hant.json
index 7de7b45..2868471 100644
--- a/extensions/Wikibase/repo/i18n/zh-hant.json
+++ b/extensions/Wikibase/repo/i18n/zh-hant.json
@@ -104,6 +104,8 @@
        "wikibase-itembytitle-lookup-page": "頁面:",
        "wikibase-itembytitle-submit": "搜尋",
        "wikibase-itembytitle-create": 
"您也可以[{{fullurl:Special:NewItem|site=$1&page=$2}} 建立項目]。",
+       "special-gotolinkedpage": "前往已連結的頁面",
+       "wikibase-gotolinkedpage-lookup-fieldset": "依據網站與項目前往已連結的頁面",
        "wikibase-gotolinkedpage-lookup-site": "網站:",
        "wikibase-gotolinkedpage-lookup-item": "項目 ID:",
        "wikibase-gotolinkedpage-submit": "執行",
@@ -172,7 +174,7 @@
        "wikibase-mergeitems-toid": "接受合併項ID",
        "wikibase-mergeitems-submit": "合併項",
        "special-dispatchstats": "更改調度統計",
-       "wikibase-dispatchstats-intro": "本頁提供有關變更調度到用戶端的統計資訊。A client wiki is 
notified of a change on {{SITENAME}} once the change has been dispatched on 
that wiki, and the job queue on that wiki has processed that notification.* 
{{int:wikibase-dispatchstats-changes}} shows the number and the date for the 
oldest and the most recent items currently in the queue.\n* 
{{int:wikibase-dispatchstats-stats}} provides information about the most lagged 
and the least lagged client wiki, and one median one in between. For each wiki, 
the following information is provided:\n** 
\"{{int:wikibase-dispatchstats-site-id}}\" is the internal ID of the client 
wiki.\n** \"{{int:wikibase-dispatchstats-pos}}\" is the ID of the last change 
dispatched to that wiki.\n** \"{{int:wikibase-dispatchstats-lag-num}}\" is the 
number of changes not yet dispatched to that wiki.\n** 
\"{{int:wikibase-dispatchstats-lag-time}}\" is the time between the change last 
dispatched to the wiki, and the last change performed on {{SITENAME}}.\n** 
\"{{int:wikibase-dispatchstats-touched}}\" is the time when the last batch of 
changes got dispatched to the wiki.",
+       "wikibase-dispatchstats-intro": "此頁面提供有關發送變更至客戶端的統計資訊。\n當變更被發送到 Wiki,於 
Wiki 的工作序列會開處理通知,通知客戶端的 Wiki 在 {{SITENAME}} 上的變更。\n\n* 
{{int:wikibase-dispatchstats-changes}} 顯示目前在序列中最舊與最近的項目編號與日期。\n* 
{{int:wikibase-dispatchstats-stats}} 提供有關最快與最慢及兩者之間的客戶端 Wiki。 每個 Wiki 
會提供以下資訊:\n** \"{{int:wikibase-dispatchstats-site-id}}\" 客戶端 Wiki 的內部 ID。\n** 
\"{{int:wikibase-dispatchstats-pos}}\" 最後變更發送至該 Wiki 的 ID。\n** 
\"{{int:wikibase-dispatchstats-lag-num}}\" 是尚未分送至該 Wiki 的變更數量。\n** 
\"{{int:wikibase-dispatchstats-lag-time}}\" 是上次發送變至 Wiki 與上次在 {{SITENAME}} 
執行的時間之間的間隔時間。\n** \"{{int:wikibase-dispatchstats-touched}}\" 是上次批次變更發送至該 Wiki 
的時間。",
        "wikibase-dispatchstats-no-stats": "目前沒有統計數據可用。",
        "wikibase-dispatchstats-changes": "變更日誌統計",
        "wikibase-dispatchstats-stats": "調度統計數據",
@@ -211,6 +213,7 @@
        "wikibase-entitydata-bad-revision": "無法顯示$1的修訂版本$2。",
        "wikibase-entitydata-bad-id": "無效的ID:$1。",
        "wikibase-entitydata-unsupported-format": "數據格式 $1 不支援此介面。",
+       "wikibase-entitydata-storage-error": "讀取實體 $1 失敗。",
        "wikibase-entitydata-title": "實體數據",
        "wikibase-entitydata-text": "此頁面提供實體數值連結的數據介面。請使用子頁面語法在URL中提供實體ID。",
        "special-mylanguagefallbackchain": "我的語言備用鏈",
@@ -228,6 +231,7 @@
        "wikibase-special-mergeitems-error-prefix": "此項無法合併。如下錯誤出現:",
        "wikibase-item-summary-wbsetitem": "建立新項目",
        "wikibase-item-summary-wbcreate-new": "建立一個新項目",
+       "wikibase-item-summary-wbcreateredirect": "已重新導向至 $4",
        "wikibase-item-summary-wbeditentity": "建立一個新項目",
        "wikibase-item-summary-wbeditentity-create": "建立新項目",
        "wikibase-item-summary-wbeditentity-update": "更新項目",
@@ -307,6 +311,7 @@
        "wikibase-listdatatypes-time-body": 
"時間值的原始數據字段。給出一個含精度及邊界的時間。時間於內部儲存為外推格里高利歷的格式,但在解析及排版時可用其他格式。\n*時間——時間點的明確值,根據ISO8601,年都表示為11位數字且日期均帶有符號,格式為+00000002013-01-01T00:00:00Z\n*時區——明確有符號的整數。時區信息是以分為單位以國際標準時間(UTC)為基準的一個偏移量。\n*早——表示它發生時可能晚於給定時間多少單位。單位由精度給定。\n*晚——表示它發生時可能早於給定時間多少單位。單位由精度給定。\n*精度——編碼為短整數的明確值。這些數值有以下意義:0-十億年、1-億年、…、6-千年、7-世紀、8-十年、9-年、10-月、11-日、12-時、13-分、14-秒。\n*日曆模型——由一個URI給定的明確值。它可以確定用於顯示時間值的日曆模型。",
        "wikibase-listdatatypes-url-head": "連結",
        "wikibase-listdatatypes-url-body": "一個URL的文字字元。URL被限制於外部連結的方式寫於維基文字中。",
+       "wikibase-concept-uri": "概念 URI",
        "datatypes-type-url": "連結",
        "content-model-wikibase-item": "Wikibase項目",
        "content-model-wikibase-property": "Wikibase屬性",
diff --git a/extensions/Wikibase/repo/includes/ClaimDiffer.php 
b/extensions/Wikibase/repo/includes/ClaimDiffer.php
index 420aca9..bd01646 100644
--- a/extensions/Wikibase/repo/includes/ClaimDiffer.php
+++ b/extensions/Wikibase/repo/includes/ClaimDiffer.php
@@ -2,8 +2,8 @@
 
 namespace Wikibase;
 
-use Diff\DiffOp\Diff\Diff;
 use Diff\Differ\Differ;
+use Diff\DiffOp\Diff\Diff;
 use Diff\DiffOp\DiffOpChange;
 
 /**
diff --git a/extensions/Wikibase/repo/includes/WikibaseRepo.php 
b/extensions/Wikibase/repo/includes/WikibaseRepo.php
index 2f23620..4f431fa 100644
--- a/extensions/Wikibase/repo/includes/WikibaseRepo.php
+++ b/extensions/Wikibase/repo/includes/WikibaseRepo.php
@@ -14,11 +14,6 @@
 use StubObject;
 use ValueFormatters\FormatterOptions;
 use ValueFormatters\ValueFormatter;
-use Wikibase\ItemHandler;
-use Wikibase\PropertyHandler;
-use Wikibase\Repo\Notifications\ChangeNotifier;
-use Wikibase\Repo\Notifications\ChangeTransmitter;
-use Wikibase\Repo\Notifications\DatabaseChangeTransmitter;
 use Wikibase\ChangeOp\ChangeOpFactoryProvider;
 use Wikibase\DataModel\Claim\ClaimGuidParser;
 use Wikibase\DataModel\Entity\BasicEntityIdParser;
@@ -26,14 +21,14 @@
 use Wikibase\DataModel\Entity\EntityIdParser;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\Property;
-use Wikibase\Lib\Changes\EntityChangeFactory;
 use Wikibase\EntityContentFactory;
+use Wikibase\EntityFactory;
 use Wikibase\InternalSerialization\DeserializerFactory;
 use Wikibase\InternalSerialization\SerializerFactory;
-use Wikibase\Lib\Store\EntityLookup;
-use Wikibase\EntityFactory;
+use Wikibase\ItemHandler;
 use Wikibase\LabelDescriptionDuplicateDetector;
 use Wikibase\LanguageFallbackChainFactory;
+use Wikibase\Lib\Changes\EntityChangeFactory;
 use Wikibase\Lib\ClaimGuidGenerator;
 use Wikibase\Lib\ClaimGuidValidator;
 use Wikibase\Lib\DispatchingValueFormatter;
@@ -50,14 +45,19 @@
 use Wikibase\Lib\PropertyInfoDataTypeLookup;
 use Wikibase\Lib\SnakConstructionService;
 use Wikibase\Lib\SnakFormatter;
+use Wikibase\Lib\Store\EntityContentDataCodec;
+use Wikibase\Lib\Store\EntityLookup;
 use Wikibase\Lib\WikibaseDataTypeBuilders;
 use Wikibase\Lib\WikibaseSnakFormatterBuilders;
 use Wikibase\Lib\WikibaseValueFormatterBuilders;
-use Wikibase\Lib\Store\EntityContentDataCodec;
 use Wikibase\ParserOutputJsConfigBuilder;
+use Wikibase\PropertyHandler;
 use Wikibase\ReferencedEntitiesFinder;
 use Wikibase\Repo\Localizer\ChangeOpValidationExceptionLocalizer;
 use Wikibase\Repo\Localizer\MessageParameterFormatter;
+use Wikibase\Repo\Notifications\ChangeNotifier;
+use Wikibase\Repo\Notifications\ChangeTransmitter;
+use Wikibase\Repo\Notifications\DatabaseChangeTransmitter;
 use Wikibase\Repo\Notifications\DummyChangeTransmitter;
 use Wikibase\Settings;
 use Wikibase\SettingsArray;
diff --git a/extensions/Wikibase/repo/includes/content/EntityContent.php 
b/extensions/Wikibase/repo/includes/content/EntityContent.php
index 54ecce8..ececba7 100644
--- a/extensions/Wikibase/repo/includes/content/EntityContent.php
+++ b/extensions/Wikibase/repo/includes/content/EntityContent.php
@@ -64,6 +64,7 @@
 
        /**
         * For use in the wb-status page property to indicate that the entity 
is empty.
+        *
         * @see getEntityStatus()
         */
        const STATUS_EMPTY = 200;
@@ -76,26 +77,15 @@
         * @see Content::isValid()
         */
        public function isValid() {
-
                if ( $this->isRedirect() ) {
-
                        // Under some circumstances, the handler will not 
support redirects,
                        // but it's still possible to construct Content objects 
that represent
                        // redirects. In such a case, make sure such Content 
objects are considered
                        // invalid and do not get saved.
-
-                       if ( !$this->getContentHandler()->supportsRedirects() ) 
{
-                               return false;
-                       }
-
-                       return true;
+                       return $this->getContentHandler()->supportsRedirects();
                }
 
-               if ( is_null( $this->getEntity()->getId() ) ) {
-                       return false;
-               }
-
-               return true;
+               return $this->getEntity()->getId() !== null;
        }
 
        /**
@@ -302,25 +292,22 @@
                        $context = RequestContext::getMain();
                }
 
-               // determine output language ----
-               $langCode = $context->getLanguage()->getCode();
+               $languageCode = $context->getLanguage()->getCode();
 
                if ( $options !== null ) {
                        // NOTE: Parser Options language overrides context 
language!
-                       $langCode = $options->getUserLang();
+                       $languageCode = $options->getUserLang();
                }
 
-               // make formatter options ----
                $formatterOptions = new FormatterOptions();
-               $formatterOptions->setOption( ValueFormatter::OPT_LANG, 
$langCode );
+               $formatterOptions->setOption( ValueFormatter::OPT_LANG, 
$languageCode );
 
                // Force the context's language to be the one specified by the 
parser options.
-               if ( $context && $context->getLanguage()->getCode() !== 
$langCode ) {
+               if ( $context && $context->getLanguage()->getCode() !== 
$languageCode ) {
                        $context = clone $context;
-                       $context->setLanguage( $langCode );
+                       $context->setLanguage( $languageCode );
                }
 
-               // apply language fallback chain ----
                if ( !$uiLanguageFallbackChain ) {
                        $factory = 
WikibaseRepo::getDefaultInstance()->getLanguageFallbackChainFactory();
                        $uiLanguageFallbackChain = 
$factory->newFromContextForPageView( $context );
@@ -337,9 +324,8 @@
                $entityContentFactory = 
WikibaseRepo::getDefaultInstance()->getEntityContentFactory();
                $idParser = new BasicEntityIdParser();
 
-               $options = $this->makeSerializationOptions( $langCode, 
$uiLanguageFallbackChain );
+               $options = $this->makeSerializationOptions( $languageCode, 
$uiLanguageFallbackChain );
 
-               // construct the instance ----
                $entityView = $this->newEntityView(
                        $context,
                        $snakFormatter,
@@ -389,10 +375,8 @@
 
                wfProfileIn( __METHOD__ );
 
-               $entity = $this->getEntity();
-
                $searchTextGenerator = new EntitySearchTextGenerator();
-               $text = $searchTextGenerator->generate( $entity );
+               $text = $searchTextGenerator->generate( $this->getEntity() );
 
                wfProfileOut( __METHOD__ );
                return $text;
@@ -485,12 +469,12 @@
        public function getTextForSummary( $maxLength = 250 ) {
                if ( $this->isRedirect() ) {
                        return $this->getRedirectText();
-               } else {
-                       /** @var Language $language */
-                       $language = $GLOBALS['wgLang'];
-                       $text = $this->getEntity()->getDescription( 
$language->getCode() );
-                       return substr( $text, 0, $maxLength );
                }
+
+               /* @var Language $language */
+               $language = $GLOBALS['wgLang'];
+               $description = $this->getEntity()->getDescription( 
$language->getCode() );
+               return substr( $description, 0, $maxLength );
        }
 
        /**
@@ -548,19 +532,11 @@
         * @see Content::equals
         */
        public function equals( Content $that = null ) {
-               if ( is_null( $that ) ) {
-                       return false;
-               }
-
                if ( $that === $this ) {
                        return true;
                }
 
-               if ( $that->getModel() !== $this->getModel() ) {
-                       return false;
-               }
-
-               if ( !( $that instanceof EntityContent ) ) {
+               if ( !( $that instanceof EntityContent ) || $that->getModel() 
!== $this->getModel() ) {
                        return false;
                }
 
@@ -734,8 +710,7 @@
                if ( $this->isRedirect() ) {
                        return $handler->makeEntityRedirectContent( 
$this->getEntityRedirect() );
                } else {
-                       $entity = $this->getEntity()->copy();
-                       return $handler->makeEntityContent( $entity );
+                       return $handler->makeEntityContent( 
$this->getEntity()->copy() );
                }
        }
 
@@ -767,16 +742,16 @@
        }
 
        /**
-        * @param string $langCode
+        * @param string $languageCode
         * @param LanguageFallbackChain $fallbackChain
         *
         * @return SerializationOptions
         */
-       private function makeSerializationOptions( $langCode, 
LanguageFallbackChain $fallbackChain ) {
-               $langCodes = Utils::getLanguageCodes() + array( $langCode => 
$fallbackChain );
+       private function makeSerializationOptions( $languageCode, 
LanguageFallbackChain $fallbackChain ) {
+               $languageCodes = Utils::getLanguageCodes() + array( 
$languageCode => $fallbackChain );
 
                $options = new SerializationOptions();
-               $options->setLanguages( $langCodes );
+               $options->setLanguages( $languageCodes );
 
                return $options;
        }
@@ -813,10 +788,8 @@
                        return array();
                }
 
-               $entity = $this->getEntity();
-
                $properties = array(
-                       'wb-claims' => count( $entity->getClaims() ),
+                       'wb-claims' => count( $this->getEntity()->getClaims() ),
                );
 
                $status = $this->getEntityStatus();
@@ -836,9 +809,9 @@
         * @note Will fail if this ItemContent is a redirect.
         *
         * @see getEntityPageProperties()
-        * @see STATUS_NONE
-        * @see STATUS_EMPTY
-        * @see STATUS_STUB
+        * @see EntityContent::STATUS_NONE
+        * @see EntityContent::STATUS_STUB
+        * @see EntityContent::STATUS_EMPTY
         *
         * @return int
         */
diff --git a/extensions/Wikibase/repo/includes/content/ItemContent.php 
b/extensions/Wikibase/repo/includes/content/ItemContent.php
index 48960f6..e064496 100644
--- a/extensions/Wikibase/repo/includes/content/ItemContent.php
+++ b/extensions/Wikibase/repo/includes/content/ItemContent.php
@@ -185,10 +185,9 @@
                }
 
                wfProfileIn( __METHOD__ );
-               $item = $this->getItem();
 
                $searchTextGenerator = new ItemSearchTextGenerator();
-               $text = $searchTextGenerator->generate( $item );
+               $text = $searchTextGenerator->generate( $this->getItem() );
 
                wfProfileOut( __METHOD__ );
                return $text;
@@ -250,14 +249,10 @@
                        return array();
                }
 
-               $item = $this->getItem();
+               $properties = parent::getEntityPageProperties();
+               $properties['wb-sitelinks'] = 
$this->getItem()->getSiteLinkList()->count();
 
-               return array_merge(
-                       parent::getEntityPageProperties(),
-                       array(
-                               'wb-sitelinks' => 
$item->getSiteLinkList()->count(),
-                       )
-               );
+               return $properties;
        }
 
        /**
diff --git a/extensions/Wikibase/lib/includes/store/EntityPermissionChecker.php 
b/extensions/Wikibase/repo/includes/store/EntityPermissionChecker.php
similarity index 100%
rename from extensions/Wikibase/lib/includes/store/EntityPermissionChecker.php
rename to extensions/Wikibase/repo/includes/store/EntityPermissionChecker.php
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferTest.php
index c76fa37..7d73ec9 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferTest.php
@@ -11,8 +11,8 @@
 use Wikibase\Claim;
 use Wikibase\ClaimDiffer;
 use Wikibase\ClaimDifference;
+use Wikibase\DataModel\ReferenceList;
 use Wikibase\PropertyNoValueSnak;
-use Wikibase\ReferenceList;
 use Wikibase\SnakList;
 use Wikibase\Statement;
 
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceTest.php
index 4e671fd..7bb8f7b 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceTest.php
@@ -6,8 +6,8 @@
 use Diff\DiffOpAdd;
 use Diff\DiffOpChange;
 use Wikibase\ClaimDifference;
+use Wikibase\DataModel\Reference;
 use Wikibase\PropertyNoValueSnak;
-use Wikibase\Reference;
 use Wikibase\Statement;
 
 /**
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceVisualizerTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceVisualizerTest.php
index c53de5b..26851b2 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceVisualizerTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimDifferenceVisualizerTest.php
@@ -11,12 +11,12 @@
 use Wikibase\ClaimDifference;
 use Wikibase\ClaimDifferenceVisualizer;
 use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Reference;
+use Wikibase\DataModel\ReferenceList;
 use Wikibase\Lib\SnakFormatter;
 use Wikibase\PropertyNoValueSnak;
 use Wikibase\PropertySomeValueSnak;
 use Wikibase\PropertyValueSnak;
-use Wikibase\Reference;
-use Wikibase\ReferenceList;
 use Wikibase\SnakList;
 use Wikibase\Statement;
 
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimHtmlGeneratorTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimHtmlGeneratorTest.php
index 112ba11..190b5e0 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimHtmlGeneratorTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimHtmlGeneratorTest.php
@@ -7,15 +7,15 @@
 use Wikibase\Claim;
 use Wikibase\ClaimHtmlGenerator;
 use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Reference;
+use Wikibase\DataModel\ReferenceList;
 use Wikibase\EntityTitleLookup;
 use Wikibase\Lib\DispatchingSnakFormatter;
 use Wikibase\PropertySomeValueSnak;
 use Wikibase\PropertyValueSnak;
-use Wikibase\Reference;
-use Wikibase\ReferenceList;
+use Wikibase\Repo\View\SnakHtmlGenerator;
 use Wikibase\SnakList;
 use Wikibase\Statement;
-use Wikibase\Repo\View\SnakHtmlGenerator;
 
 /**
  * @covers Wikibase\ClaimHtmlGenerator
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimSummaryBuilderTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimSummaryBuilderTest.php
index 243582c..e02184c 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/ClaimSummaryBuilderTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/ClaimSummaryBuilderTest.php
@@ -9,10 +9,10 @@
 use Wikibase\ClaimDiffer;
 use Wikibase\Claims;
 use Wikibase\ClaimSummaryBuilder;
+use Wikibase\DataModel\Reference;
 use Wikibase\PropertyNoValueSnak;
 use Wikibase\PropertySomeValueSnak;
 use Wikibase\PropertyValueSnak;
-use Wikibase\Reference;
 use Wikibase\Snak;
 use Wikibase\SnakList;
 use Wikibase\Statement;
@@ -166,4 +166,5 @@
                $this->assertEquals( 'wbsetclaim', $summary->getModuleName() );
                $this->assertEquals( $action, $summary->getActionName() );
        }
+
 }
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/EntityDiffVisualizerTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/EntityDiffVisualizerTest.php
index 705ac17..166a856 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/EntityDiffVisualizerTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/EntityDiffVisualizerTest.php
@@ -10,9 +10,9 @@
 use Site;
 use Wikibase\ClaimDiffer;
 use Wikibase\ClaimDifferenceVisualizer;
-use Wikibase\Repo\Content\EntityContentDiff;
 use Wikibase\DataModel\Entity\EntityDiff;
 use Wikibase\EntityDiffVisualizer;
+use Wikibase\Repo\Content\EntityContentDiff;
 use Wikibase\Repo\WikibaseRepo;
 
 /**
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
index 2772dc3..1bb2244 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php
@@ -9,9 +9,9 @@
 use SiteStore;
 use Title;
 use ValueFormatters\ValueFormatter;
+use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\SiteLink;
-use Wikibase\EntityId;
 use Wikibase\EntityTitleLookup;
 use Wikibase\Repo\Localizer\MessageParameterFormatter;
 
@@ -112,4 +112,5 @@
 
                return $mock;
        }
+
 }
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
index 6afe5d5..65db270 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
@@ -3,13 +3,13 @@
 namespace Wikibase\Test\Validators;
 
 use Wikibase\DataModel\Entity\Entity;
+use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\Property;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\Term\AliasGroupList;
 use Wikibase\DataModel\Term\Fingerprint;
 use Wikibase\DataModel\Term\Term;
 use Wikibase\DataModel\Term\TermList;
-use Wikibase\EntityId;
 use Wikibase\LabelDescriptionDuplicateDetector;
 use Wikibase\Test\ChangeOpTestMockProvider;
 use Wikibase\Validators\LabelUniquenessValidator;
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/Validators/SnakValidatorTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/Validators/SnakValidatorTest.php
index 4c3e1d7..a0d0553 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/Validators/SnakValidatorTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/Validators/SnakValidatorTest.php
@@ -10,14 +10,14 @@
 use DataValues\UnknownValue;
 use Wikibase\Claim;
 use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Reference;
+use Wikibase\DataModel\ReferenceList;
+use Wikibase\DataModel\References;
 use Wikibase\Lib\InMemoryDataTypeLookup;
 use Wikibase\Lib\PropertyDataTypeLookup;
 use Wikibase\PropertyNoValueSnak;
 use Wikibase\PropertySomeValueSnak;
 use Wikibase\PropertyValueSnak;
-use Wikibase\Reference;
-use Wikibase\ReferenceList;
-use Wikibase\References;
 use Wikibase\Snak;
 use Wikibase\SnakList;
 use Wikibase\Statement;
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php
index a720395..98434d6 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php
@@ -249,7 +249,7 @@
         * @return array
         */
        protected function serializeReference( $reference ) {
-               if( !is_a( $reference, '\Wikibase\Reference' ) ) {
+               if ( !( $reference instanceof Reference ) ) {
                        return $reference;
                } else {
                        $serializerFactory = new SerializerFactory();
@@ -265,12 +265,12 @@
         * @return Reference Reference
         */
        protected function unserializeReference( $reference ) {
-               if( is_a( $reference, '\Wikibase\Reference' ) ) {
+               if ( $reference instanceof Reference ) {
                        return $reference;
                } else {
                        unset( $reference['hash'] );
                        $serializerFactory = new SerializerFactory();
-                       $unserializer = 
$serializerFactory->newUnserializerForClass( '\Wikibase\Reference' );
+                       $unserializer = 
$serializerFactory->newUnserializerForClass( 'Wikibase\DataModel\Reference' );
                        return $unserializer->newFromSerialization( $reference 
);
                }
        }
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php
index 90ed889..f05156d 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php
@@ -8,16 +8,14 @@
 use ParserOptions;
 use RequestContext;
 use Title;
-use Wikibase\DataModel\Claim\Statement;
 use Wikibase\DataModel\Entity\Entity;
-use Wikibase\DataModel\Term\Term;
-use Wikibase\Lib\Store\EntityRedirect;
 use Wikibase\DataModel\Entity\EntityDiff;
-use Wikibase\DataModel\Snak\PropertyNoValueSnak;
 use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Term\Term;
 use Wikibase\EntityContent;
 use Wikibase\LanguageFallbackChain;
 use Wikibase\LanguageWithConversion;
+use Wikibase\Lib\Store\EntityRedirect;
 use Wikibase\Lib\Store\EntityStore;
 use Wikibase\Repo\Content\EntityContentDiff;
 use Wikibase\Repo\WikibaseRepo;
@@ -509,4 +507,5 @@
                        $this->assertNotNull( $content->getRedirectTarget() );
                }
        }
+
 }
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
index 6a4f64e..b755806 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
@@ -8,9 +8,9 @@
 use EasyRdf_Namespace;
 use EasyRdf_Resource;
 use SiteList;
+use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\Entity;
-use Wikibase\EntityId;
 use Wikibase\EntityRevision;
 use Wikibase\Item;
 use Wikibase\RdfBuilder;
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/EntityPerPageBuilderTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/EntityPerPageBuilderTest.php
index 0fb8984..941aaca 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/EntityPerPageBuilderTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/EntityPerPageBuilderTest.php
@@ -52,7 +52,9 @@
                $this->clearTables();
                $items = $this->addItems();
 
-               assert( $this->countPages() === count( $items ) );
+               if ( $this->countPages() !== count( $items ) ) {
+                       throw new RuntimeException( 'Page count must be equal 
to item count.' );
+               }
 
                $this->entityPerPageRows = $this->getEntityPerPageData();
        }
@@ -92,8 +94,9 @@
                $dbw->delete( 'page', array( "1" ) );
                $this->entityPerPageTable->clear();
 
-               assert( $this->countPages() === 0 );
-               assert( $this->countEntityPerPageRows() === 0 );
+               if ( $this->countPages() !== 0 || 
$this->countEntityPerPageRows() !== 0 ) {
+                       throw new RuntimeException( 'Clear failed.' );
+               }
        }
 
        private function itemSupportsRedirect() {
@@ -212,7 +215,7 @@
        public function testRebuildAll() {
                $this->entityPerPageTable->clear();
 
-               assert( $this->countEntityPerPageRows() === 0 );
+               $this->assertEquals( 0, $this->countEntityPerPageRows() );
 
                $builder = new EntityPerPageBuilder(
                        $this->entityPerPageTable,
@@ -232,7 +235,7 @@
                $pageId = $this->getPageIdForPartialClear();
                $this->partialClearEntityPerPageTable( $pageId );
 
-               assert( $this->countEntityPerPageRows() === 6 );
+               $this->assertEquals( 6, $this->countEntityPerPageRows() );
 
                $builder = new EntityPerPageBuilder(
                        $this->entityPerPageTable,
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
index 158239d..372bd8b 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
@@ -7,20 +7,20 @@
 use Status;
 use User;
 use Wikibase\DataModel\Entity\Entity;
+use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\EntityContentFactory;
-use Wikibase\EntityId;
 use Wikibase\EntityPerPageTable;
 use Wikibase\Lib\Store\EntityRedirect;
 use Wikibase\Lib\Store\EntityRevisionLookup;
+use Wikibase\Lib\Store\EntityStore;
+use Wikibase\Lib\Store\StorageException;
+use Wikibase\Lib\Store\WikiPageEntityRevisionLookup;
 use Wikibase\Repo\Store\WikiPageEntityStore;
 use Wikibase\Repo\WikibaseRepo;
 use Wikibase\SqlIdGenerator;
-use Wikibase\Lib\Store\StorageException;
-use Wikibase\Lib\Store\EntityStore;
-use Wikibase\Lib\Store\WikiPageEntityRevisionLookup;
 
 /**
  * @covers Wikibase\Repo\Store\WikiPageEntityStore
diff --git a/vendor/autoload.php b/vendor/autoload.php
index b350ea7..ecee114 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInitc6bdef99704d4b4282c042de66a578c5::getLoader();
+return ComposerAutoloaderInit278172b3ff6f422b270856e56f01b4da::getLoader();
diff --git a/vendor/composer/autoload_classmap.php 
b/vendor/composer/autoload_classmap.php
index dd2fd46..b69a0c9 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -427,7 +427,7 @@
     'Wikibase\\EntityPerPageBuilder' => $baseDir . 
'/extensions/Wikibase/repo/includes/store/sql/EntityPerPageBuilder.php',
     'Wikibase\\EntityPerPageIdPager' => $baseDir . 
'/extensions/Wikibase/repo/includes/store/sql/EntityPerPageIdPager.php',
     'Wikibase\\EntityPerPageTable' => $baseDir . 
'/extensions/Wikibase/repo/includes/store/sql/EntityPerPageTable.php',
-    'Wikibase\\EntityPermissionChecker' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/EntityPermissionChecker.php',
+    'Wikibase\\EntityPermissionChecker' => $baseDir . 
'/extensions/Wikibase/repo/includes/store/EntityPermissionChecker.php',
     'Wikibase\\EntityRevision' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/EntityRevision.php',
     'Wikibase\\EntityTitleLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/EntityTitleLookup.php',
     'Wikibase\\EntityView' => $baseDir . 
'/extensions/Wikibase/repo/includes/EntityView.php',
diff --git a/vendor/composer/autoload_real.php 
b/vendor/composer/autoload_real.php
index ac02502..b9c4bd8 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInitc6bdef99704d4b4282c042de66a578c5
+class ComposerAutoloaderInit278172b3ff6f422b270856e56f01b4da
 {
     private static $loader;
 
@@ -19,9 +19,9 @@
             return self::$loader;
         }
 
-        
spl_autoload_register(array('ComposerAutoloaderInitc6bdef99704d4b4282c042de66a578c5',
 'loadClassLoader'), true, true);
+        
spl_autoload_register(array('ComposerAutoloaderInit278172b3ff6f422b270856e56f01b4da',
 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        
spl_autoload_unregister(array('ComposerAutoloaderInitc6bdef99704d4b4282c042de66a578c5',
 'loadClassLoader'));
+        
spl_autoload_unregister(array('ComposerAutoloaderInit278172b3ff6f422b270856e56f01b4da',
 'loadClassLoader'));
 
         $map = require __DIR__ . '/autoload_namespaces.php';
         foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@
 
         $includeFiles = require __DIR__ . '/autoload_files.php';
         foreach ($includeFiles as $file) {
-            composerRequirec6bdef99704d4b4282c042de66a578c5($file);
+            composerRequire278172b3ff6f422b270856e56f01b4da($file);
         }
 
         return $loader;
     }
 }
 
-function composerRequirec6bdef99704d4b4282c042de66a578c5($file)
+function composerRequire278172b3ff6f422b270856e56f01b4da($file)
 {
     require $file;
 }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index b7590f0..d6a51be 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1,17 +1,17 @@
 [
     {
         "name": "composer/installers",
-        "version": "v1.0.17",
-        "version_normalized": "1.0.17.0",
+        "version": "v1.0.18",
+        "version_normalized": "1.0.18.0",
         "source": {
             "type": "git",
             "url": "https://github.com/composer/installers.git";,
-            "reference": "f22820dd0854a406f86e2fc29b81c1898d68e5fb"
+            "reference": "74fb0a7a1a23696d9c8cc2fba5903f6711cdd067"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/composer/installers/zipball/f22820dd0854a406f86e2fc29b81c1898d68e5fb";,
-            "reference": "f22820dd0854a406f86e2fc29b81c1898d68e5fb",
+            "url": 
"https://api.github.com/repos/composer/installers/zipball/74fb0a7a1a23696d9c8cc2fba5903f6711cdd067";,
+            "reference": "74fb0a7a1a23696d9c8cc2fba5903f6711cdd067",
             "shasum": ""
         },
         "replace": {
@@ -22,7 +22,7 @@
             "composer/composer": "1.0.*@dev",
             "phpunit/phpunit": "4.1.*"
         },
-        "time": "2014-08-17 18:19:30",
+        "time": "2014-08-18 20:00:12",
         "type": "composer-installer",
         "extra": {
             "class": "Composer\\Installers\\Installer",
@@ -1125,12 +1125,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "ff2c458ad2d7398bf3eb04ea77bcd44a601c44e8"
+            "reference": "e584fdafc161a7906b9e61244aa70977ee9d11c2"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/ff2c458ad2d7398bf3eb04ea77bcd44a601c44e8";,
-            "reference": "ff2c458ad2d7398bf3eb04ea77bcd44a601c44e8",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/e584fdafc161a7906b9e61244aa70977ee9d11c2";,
+            "reference": "e584fdafc161a7906b9e61244aa70977ee9d11c2",
             "shasum": ""
         },
         "require": {
@@ -1157,7 +1157,7 @@
         "conflict": {
             "mediawiki/mediawiki": "<1.23"
         },
-        "time": "2014-08-22 14:03:28",
+        "time": "2014-08-23 20:02:43",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {
diff --git 
a/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php 
b/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php
index f4f95dc..df91a12 100644
--- a/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php
+++ b/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php
@@ -89,37 +89,57 @@
     }
 
     /**
-     * Set installer-name based on namespace for the source path
+     * Set installer-name based on namespace for the source path checking in
+     * following order:
      *
-     * With one autoload path this will be used as installer-name.
-     * With two autoload paths the first non `tests` foldername will be set.
-     * If more then 2 autoload paths are provided, installer-name will only be
-     * set for if `src` folder is used.
+     * - With only one autoload path the namespace for that path will be used.
+     * - With multiple paths if path 'src' exists it's namespace will be used.
+     * - With two autoload paths provided, the namespace of path other than
+     *   'tests' will be used.
+     *
+     * No installer-name is set if PSR-4 autoload block is not found or if none
+     * of the above conditions are met.
      *
      * @param PackageInterface $package
      */
     protected function setInstallerName(PackageInterface $package)
     {
+        $primaryNS = null;
         $autoLoad = $package->getAutoload();
         foreach ($autoLoad as $type => $typeConfig) {
             if ($type !== 'psr-4') {
                 continue;
             }
             $count = count($typeConfig);
-            foreach ($typeConfig as $namespace => $path) {
-                if ($path === 'tests') {
-                    continue;
-                }
-                if ($count > 2 && $path !== 'src') {
-                    continue;
-                }
-                $installerName = trim(str_replace('\\', '/', $namespace), '/');
-                $package->setExtra(array(
-                    'installer-name' => $installerName,
-                ));
+
+            if ($count === 1) {
+                $primaryNS = key($typeConfig);
+                break;
             }
+
+            $matches = preg_grep('#^(\./)?src/?$#', $typeConfig);
+            if ($matches) {
+                $primaryNS = key($matches);
+                break;
+            }
+
+            if ($count === 2) {
+                reset($typeConfig);
+                if (preg_match('#^(\./)?tests/?$#', current($typeConfig))) {
+                    next($typeConfig);
+                }
+                $primaryNS = key($typeConfig);
+                break;
+            }
+
             break;
         }
+
+        if ($primaryNS) {
+            $package->setExtra(array(
+                'installer-name' => trim(str_replace('\\', '/', $primaryNS), 
'/')
+            ));
+        }
     }
 
 }
diff --git 
a/vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php
 
b/vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php
index 4d8d1b0..3b15ea4 100644
--- 
a/vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php
+++ 
b/vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php
@@ -106,26 +106,49 @@
      *
      */
     public function testGetInstallPath() {
-        $package = new RootPackage('Authenticate', '1.0', '1.0');
         $autoload = array(
             'psr-4' => array(
-                'FOC\\Authenticate' => 'src'
+                'FOC\\Authenticate' => ''
             )
         );
-        $package->setAutoload($autoload);
-        $package->setType('cakephp-plugin');
-        $composer = new Composer();
+        $this->package->setAutoload($autoload);
+        $this->package->setType('cakephp-plugin');
         $rm = new RepositoryManager(
             $this->getMock('Composer\IO\IOInterface'),
             $this->getMock('Composer\Config')
         );
-        $composer->setRepositoryManager($rm);
-        $installer = new CakePHPInstaller($package, $composer);
+        $this->composer->setRepositoryManager($rm);
+        $installer = new CakePHPInstaller($this->package, $this->composer);
 
         $this->setCakephpVersion($rm, '3.0.0');
-        $installer->getInstallPath($package, 'cakephp');
-        $extra = $package->getExtra();
+        $installer->getInstallPath($this->package, 'cakephp');
+        $extra = $this->package->getExtra();
         $this->assertEquals('FOC/Authenticate', $extra['installer-name']);
+
+        $autoload = array(
+            'psr-4' => array(
+                'FOC\Acl\Test' => './tests',
+                'FOC\Acl' => ''
+            )
+        );
+        $this->package->setAutoload($autoload);
+        $this->package->setExtra(array());
+        $installer->getInstallPath($this->package, 'cakephp');
+        $extra = $this->package->getExtra();
+        $this->assertEquals('FOC/Acl', $extra['installer-name']);
+
+        $autoload = array(
+            'psr-4' => array(
+                'Foo\Bar' => 'foo',
+                'Acme\Plugin\Test' => 'tests',
+                'Acme\Plugin' => './src'
+            )
+        );
+        $this->package->setAutoload($autoload);
+        $this->package->setExtra(array());
+        $installer->getInstallPath($this->package, 'cakephp');
+        $extra = $this->package->getExtra();
+        $this->assertEquals('Acme/Plugin', $extra['installer-name']);
     }
 
     protected function setCakephpVersion($rm, $version) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: If43777c351cb664a1b76537494e7a283f58b722e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <wikidata-servi...@wikimedia.de>
Gerrit-Reviewer: Addshore <addshorew...@gmail.com>
Gerrit-Reviewer: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: Siebrand <siebr...@kitano.nl>
Gerrit-Reviewer: Tobias Gritschacher <tobias.gritschac...@wikimedia.de>
Gerrit-Reviewer: WikidataJenkins <wikidata-servi...@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