diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
index b5fccbd..99701b4 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
@@ -1132,6 +1132,12 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
->setLabel(new TranslatableMarkup('Revision ID'))
->setReadOnly(TRUE)
->setSetting('unsigned', TRUE);
+
+ $fields['archived'] = BaseFieldDefinition::create('boolean')
+ ->setLabel(new TranslatableMarkup('Archive flag'))
+ ->setRevisionable(TRUE)
+ ->setTranslatable(TRUE)
+ ->setCardinality(1);
}
if ($entity_type->hasKey('langcode')) {
$fields[$entity_type->getKey('langcode')] = BaseFieldDefinition::create('language')
diff --git a/core/modules/block_content/block_content.install b/core/modules/block_content/block_content.install
index 4279cde..fb8e5e5 100644
--- a/core/modules/block_content/block_content.install
+++ b/core/modules/block_content/block_content.install
@@ -61,3 +61,18 @@ function block_content_update_8003() {
\Drupal::entityDefinitionUpdateManager()
->installFieldStorageDefinition('revision_user', 'block_content', 'block_content', $revision_user);
}
+
+/**
+ * Add 'archived' field to 'block_content' entities.
+ */
+function block_content_update_8004() {
+ $archived = BaseFieldDefinition::create('boolean')
+ ->setLabel(t('Archive flag'))
+ ->setDescription(t('Indicates if the entity is archived or not.'))
+ ->setRevisionable(TRUE)
+ ->setTranslatable(TRUE)
+ ->setDefaultValue(FALSE)
+ ->setCardinality(1);
+ \Drupal::entityDefinitionUpdateManager()
+ ->installFieldStorageDefinition('archived', 'block_content', 'block_content', $archived);
+}
diff --git a/core/modules/node/node.install b/core/modules/node/node.install
index c754880..1f69519 100644
--- a/core/modules/node/node.install
+++ b/core/modules/node/node.install
@@ -218,3 +218,18 @@ function node_update_8003() {
$manager->updateFieldStorageDefinition($manager->getFieldStorageDefinition($field_name, 'node'));
}
}
+
+/**
+ * Add 'archived' field to 'node' entities.
+ */
+function node_update_8004() {
+ $archived = BaseFieldDefinition::create('boolean')
+ ->setLabel(t('Archive flag'))
+ ->setDescription(t('Indicates if the entity is archived or not.'))
+ ->setRevisionable(TRUE)
+ ->setTranslatable(TRUE)
+ ->setDefaultValue(FALSE)
+ ->setCardinality(1);
+ \Drupal::entityDefinitionUpdateManager()
+ ->installFieldStorageDefinition('archived', 'node', 'node', $archived);
+}
\ No newline at end of file
diff --git a/core/modules/serialization/src/Tests/EntitySerializationTest.php b/core/modules/serialization/src/Tests/EntitySerializationTest.php
index 00ea14f..85aa801 100644
--- a/core/modules/serialization/src/Tests/EntitySerializationTest.php
+++ b/core/modules/serialization/src/Tests/EntitySerializationTest.php
@@ -119,6 +119,7 @@ public function testNormalize() {
'revision_id' => array(
array('value' => 1),
),
+ 'archived' => array(),
'default_langcode' => array(
array('value' => TRUE),
),
@@ -190,6 +191,7 @@ public function testSerialize() {
'created' => '' . $this->entity->created->value . '',
'user_id' => '' . $this->user->id() . '' . $this->user->getEntityTypeId() . '' . $this->user->uuid() . '' . $this->user->url() . '',
'revision_id' => '' . $this->entity->getRevisionId() . '',
+ 'archived' => '',
'default_langcode' => '1',
'non_rev_field' => '',
'field_test_text' => '' . $this->values['field_test_text']['value'] . '' . $this->values['field_test_text']['format'] . '',
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php
index 23cf034..4929670 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php
@@ -102,6 +102,7 @@ public function testEntityTypeUpdateWithoutData() {
$expected = array(
'entity_test_update' => array(
t('The %entity_type entity type needs to be updated.', ['%entity_type' => $this->entityManager->getDefinition('entity_test_update')->getLabel()]),
+ t('The %field_name field needs to be installed.', ['%field_name' => $this->entityManager->getFieldDefinitions('entity_test_update', null)['archived']->getLabel()]),
),
);
$this->assertEqual($this->entityDefinitionUpdateManager->getChangeSummary(), $expected); //, 'EntityDefinitionUpdateManager reports the expected change summary.');