diff --git a/core/lib/Drupal/Component/Plugin/ConfigurablePluginInterface.php b/core/lib/Drupal/Component/Plugin/ConfigurablePluginInterface.php
index 2b095c1..47679a7 100644
--- a/core/lib/Drupal/Component/Plugin/ConfigurablePluginInterface.php
+++ b/core/lib/Drupal/Component/Plugin/ConfigurablePluginInterface.php
@@ -12,7 +12,7 @@
  *
  * @ingroup plugin_api
  */
-interface ConfigurablePluginInterface {
+interface ConfigurablePluginInterface extends DependentPluginInterface {
 
   /**
    * Returns this plugin's configuration.
@@ -38,28 +38,4 @@ public function setConfiguration(array $configuration);
    */
   public function defaultConfiguration();
 
-  /**
-   * Calculates dependencies for the configured plugin.
-   *
-   * Dependencies are saved in the plugin's configuration entity and are used to
-   * determine configuration synchronization order. For example, if the plugin
-   * integrates with specific user roles, this method should return an array of
-   * dependencies listing the specified roles.
-   *
-   * @return array
-   *   An array of dependencies grouped by type (module, theme, entity). For
-   *   example:
-   *   @code
-   *   array(
-   *     'entity' => array('user.role.anonymous', 'user.role.authenticated'),
-   *     'module' => array('node', 'user'),
-   *     'theme' => array('seven'),
-   *   );
-   *   @endcode
-   *
-   * @see \Drupal\Core\Config\Entity\ConfigDependencyManager
-   * @see \Drupal\Core\Config\Entity\ConfigEntityInterface::getConfigDependencyName()
-   */
-  public function calculateDependencies();
-
 }
diff --git a/core/lib/Drupal/Component/Plugin/ConfigurablePluginInterface.php b/core/lib/Drupal/Component/Plugin/DependentPluginInterface.php
similarity index 56%
copy from core/lib/Drupal/Component/Plugin/ConfigurablePluginInterface.php
copy to core/lib/Drupal/Component/Plugin/DependentPluginInterface.php
index 2b095c1..736596a 100644
--- a/core/lib/Drupal/Component/Plugin/ConfigurablePluginInterface.php
+++ b/core/lib/Drupal/Component/Plugin/DependentPluginInterface.php
@@ -2,41 +2,17 @@
 
 /**
  * @file
- * Contains \Drupal\Component\Plugin\ConfigurablePluginInterface.
+ * Contains \Drupal\Component\Plugin\DependentPluginInterface.
  */
 
 namespace Drupal\Component\Plugin;
 
 /**
- * Provides an interface for a configurable plugin.
+ * Provides an interface for a plugin that has dependencies.
  *
  * @ingroup plugin_api
  */
-interface ConfigurablePluginInterface {
-
-  /**
-   * Returns this plugin's configuration.
-   *
-   * @return array
-   *   An array of this plugin's configuration.
-   */
-  public function getConfiguration();
-
-  /**
-   * Sets the configuration for this plugin instance.
-   *
-   * @param array $configuration
-   *   An associative array containing the plugin's configuration.
-   */
-  public function setConfiguration(array $configuration);
-
-  /**
-   * Returns default configuration for this plugin.
-   *
-   * @return array
-   *   An associative array with the default configuration.
-   */
-  public function defaultConfiguration();
+interface DependentPluginInterface {
 
   /**
    * Calculates dependencies for the configured plugin.
diff --git a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
index f512022..12194a3 100644
--- a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
+++ b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\Entity\Entity;
 
+use Drupal\Core\Entity\EntityDisplayPluginCollection;
 use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Entity\Display\EntityFormDisplayInterface;
 use Drupal\Core\Entity\EntityDisplayBase;
@@ -243,4 +244,23 @@ public function __wakeup() {
     $this->__construct($values, $this->entityTypeId);
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getPluginCollections() {
+    $configurations = array();
+    foreach ($this->getComponents() as $field_name => $configuration) {
+      if (!empty($configuration['type']) && ($field_definition = $this->getFieldDefinition($field_name))) {
+        $configurations[$configuration['type']] = $configuration + array(
+          'field_definition' => $field_definition,
+          'form_mode' => $this->mode,
+        );
+      }
+    }
+
+    return array(
+      'widgets' => new EntityDisplayPluginCollection($this->pluginManager, $configurations)
+    );
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php b/core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php
index 9a73268..17d6b44 100644
--- a/core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php
+++ b/core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php
@@ -9,6 +9,7 @@
 
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
+use Drupal\Core\Entity\EntityDisplayPluginCollection;
 use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Entity\EntityDisplayBase;
 
@@ -252,4 +253,22 @@ public function buildMultiple(array $entities) {
     return $build_list;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getPluginCollections() {
+    $configurations = array();
+    foreach ($this->getComponents() as $field_name => $configuration) {
+      if (!empty($configuration['type']) && ($field_definition = $this->getFieldDefinition($field_name))) {
+        $configurations[$configuration['type']] = $configuration + array(
+          'field_definition' => $field_definition,
+          'view_mode' => $this->originalMode,
+        );
+      }
+    }
+
+    return array(
+      'formatters' => new EntityDisplayPluginCollection($this->pluginManager, $configurations)
+    );
+  }
 }
diff --git a/core/lib/Drupal/Core/Entity/EntityDisplayBase.php b/core/lib/Drupal/Core/Entity/EntityDisplayBase.php
index 251bb00..14005c5 100644
--- a/core/lib/Drupal/Core/Entity/EntityDisplayBase.php
+++ b/core/lib/Drupal/Core/Entity/EntityDisplayBase.php
@@ -11,13 +11,14 @@
 use Drupal\Core\Config\Entity\ThirdPartySettingsTrait;
 use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Entity\Display\EntityDisplayInterface;
+use Drupal\Core\Plugin\DefaultLazyPluginCollection;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\FieldConfigInterface;
 
 /**
  * Provides a common base class for entity view and form displays.
  */
-abstract class EntityDisplayBase extends ConfigEntityBase implements EntityDisplayInterface {
+abstract class EntityDisplayBase extends ConfigEntityBase implements EntityDisplayInterface, EntityWithPluginCollectionInterface {
 
   use ThirdPartySettingsTrait;
 
@@ -175,17 +176,6 @@ public function calculateDependencies() {
       if ($field) {
         $this->addDependency('entity', $field->getConfigDependencyName());
       }
-      // Create a dependency on the module that provides the formatter or
-      // widget.
-      if (isset($component['type']) && $definition = $this->pluginManager->getDefinition($component['type'], FALSE)) {
-        $this->addDependency('module', $definition['provider']);
-      }
-      // Create dependencies on any modules providing third party settings.
-      if (isset($component['third_party_settings'])) {
-        foreach($component['third_party_settings'] as $module => $settings) {
-          $this->addDependency('module', $module);
-        }
-      }
     }
     // Depend on configured modes.
     if ($this->mode != 'default') {
diff --git a/core/lib/Drupal/Core/Entity/EntityDisplayPluginCollection.php b/core/lib/Drupal/Core/Entity/EntityDisplayPluginCollection.php
new file mode 100644
index 0000000..d58e841
--- /dev/null
+++ b/core/lib/Drupal/Core/Entity/EntityDisplayPluginCollection.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\filter\EntityDisplayPluginCollection.
+ */
+
+namespace Drupal\Core\Entity;
+
+use Drupal\Core\Plugin\DefaultLazyPluginCollection;
+
+/**
+ * A collection of formatters or widgets.
+ */
+class EntityDisplayPluginCollection extends DefaultLazyPluginCollection {
+
+  /**
+   * The key within the plugin configuration that contains the plugin ID.
+   *
+   * @var string
+   */
+  protected $pluginKey = 'type';
+
+}
diff --git a/core/lib/Drupal/Core/Field/FieldConfigBase.php b/core/lib/Drupal/Core/Field/FieldConfigBase.php
index 05fc94b..80792d3 100644
--- a/core/lib/Drupal/Core/Field/FieldConfigBase.php
+++ b/core/lib/Drupal/Core/Field/FieldConfigBase.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\Field;
 
+use Drupal\Component\Plugin\DependentPluginInterface;
 use Drupal\Core\Config\Entity\ConfigEntityBase;
 use Drupal\Core\Config\Entity\ThirdPartySettingsTrait;
 use Drupal\Core\Entity\EntityStorageInterface;
@@ -228,6 +229,12 @@ public function getTargetBundle() {
    */
   public function calculateDependencies() {
     parent::calculateDependencies();
+    /** @var $typed_data_manager \Drupal\Core\Field\FieldTypePluginManagerInterface */
+    $typed_data_manager = \Drupal::service('typed_data_manager');
+    $instance = $typed_data_manager->create($this->getItemDefinition());
+    if ($instance instanceof DependentPluginInterface) {
+      $this->calculatePluginDependencies($instance);
+    }
     $bundle_entity_type_id = $this->entityManager()->getDefinition($this->entity_type)->getBundleEntityType();
     if ($bundle_entity_type_id != 'bundle') {
       // If the target entity type uses entities to manage its bundles then
diff --git a/core/lib/Drupal/Core/Field/FieldItemBase.php b/core/lib/Drupal/Core/Field/FieldItemBase.php
index ec0c22d..78083e1 100644
--- a/core/lib/Drupal/Core/Field/FieldItemBase.php
+++ b/core/lib/Drupal/Core/Field/FieldItemBase.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\Field;
 
+use Drupal\Component\Plugin\DependentPluginInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\TypedData\DataDefinitionInterface;
@@ -23,7 +24,7 @@
  * @see \Drupal\Core\Field\FieldItemInterface
  * @ingroup field_types
  */
-abstract class FieldItemBase extends Map implements FieldItemInterface {
+abstract class FieldItemBase extends Map implements FieldItemInterface, DependentPluginInterface {
 
   /**
    * {@inheritdoc}
@@ -289,4 +290,11 @@ public static function fieldSettingsFromConfigData(array $settings) {
     return $settings;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    return array();
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Field/PluginSettingsBase.php b/core/lib/Drupal/Core/Field/PluginSettingsBase.php
index 37f69f3..9459dd1 100644
--- a/core/lib/Drupal/Core/Field/PluginSettingsBase.php
+++ b/core/lib/Drupal/Core/Field/PluginSettingsBase.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\Field;
 
+use Drupal\Component\Plugin\DependentPluginInterface;
 use Drupal\Core\Plugin\PluginBase;
 
 /**
@@ -14,7 +15,7 @@
  *
  * This class handles lazy replacement of default settings values.
  */
-abstract class PluginSettingsBase extends PluginBase implements PluginSettingsInterface {
+abstract class PluginSettingsBase extends PluginBase implements PluginSettingsInterface, DependentPluginInterface {
 
   /**
    * The plugin settings.
@@ -108,4 +109,17 @@ public function setThirdPartySetting($module, $key, $value) {
     return $this;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    if (!empty($this->thirdPartySettings)) {
+      // Create dependencies on any modules providing third party settings.
+      return array(
+        'module' => array_keys($this->thirdPartySettings)
+      );
+    }
+    return array();
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Plugin/PluginDependencyTrait.php b/core/lib/Drupal/Core/Plugin/PluginDependencyTrait.php
index 2114d38..434cd69 100644
--- a/core/lib/Drupal/Core/Plugin/PluginDependencyTrait.php
+++ b/core/lib/Drupal/Core/Plugin/PluginDependencyTrait.php
@@ -8,6 +8,7 @@
 namespace Drupal\Core\Plugin;
 
 use Drupal\Component\Plugin\ConfigurablePluginInterface;
+use Drupal\Component\Plugin\DependentPluginInterface;
 use Drupal\Component\Plugin\PluginInspectionInterface;
 use Drupal\Core\Entity\DependencyTrait;
 
@@ -36,8 +37,8 @@ protected function calculatePluginDependencies(PluginInspectionInterface $instan
     if (isset($definition['config_dependencies'])) {
       $this->addDependencies($definition['config_dependencies']);
     }
-    // If a plugin is configurable, calculate its dependencies.
-    if ($instance instanceof ConfigurablePluginInterface && $plugin_dependencies = $instance->calculateDependencies()) {
+    // If a plugin is dependent, calculate its dependencies.
+    if ($instance instanceof DependentPluginInterface && $plugin_dependencies = $instance->calculateDependencies()) {
       $this->addDependencies($plugin_dependencies);
     }
   }
diff --git a/core/lib/Drupal/Core/TypedData/TypedDataManager.php b/core/lib/Drupal/Core/TypedData/TypedDataManager.php
index 9206d23..df26422 100644
--- a/core/lib/Drupal/Core/TypedData/TypedDataManager.php
+++ b/core/lib/Drupal/Core/TypedData/TypedDataManager.php
@@ -255,7 +255,7 @@ public function getPropertyInstance(TypedDataInterface $object, $property_name,
     }
     $key = $definition->getDataType();
     if ($settings = $definition->getSettings()) {
-      $key .= ':' . implode(',', $settings);
+      $key .= ':' . serialize($settings);
     }
     $key .= ':' . $object->getPropertyPath() . '.';
     // If we are creating list items, we always use 0 in the key as all list
diff --git a/core/modules/aggregator/aggregator.info.yml b/core/modules/aggregator/aggregator.info.yml
index af55280..5814712 100644
--- a/core/modules/aggregator/aggregator.info.yml
+++ b/core/modules/aggregator/aggregator.info.yml
@@ -6,5 +6,6 @@ version: VERSION
 core: 8.x
 configure: aggregator.admin_settings
 dependencies:
+  - entity_reference
   - file
   - options
diff --git a/core/modules/config/src/Tests/ConfigImportRecreateTest.php b/core/modules/config/src/Tests/ConfigImportRecreateTest.php
index b569c5f..964128f 100644
--- a/core/modules/config/src/Tests/ConfigImportRecreateTest.php
+++ b/core/modules/config/src/Tests/ConfigImportRecreateTest.php
@@ -31,7 +31,7 @@ class ConfigImportRecreateTest extends DrupalUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('system', 'entity', 'field', 'text', 'user', 'node');
+  public static $modules = array('system', 'entity', 'field', 'text', 'user', 'node', 'entity_reference');
 
   protected function setUp() {
     parent::setUp();
diff --git a/core/modules/field/src/Tests/FieldUnitTestBase.php b/core/modules/field/src/Tests/FieldUnitTestBase.php
index e89147b..5fadfde 100644
--- a/core/modules/field/src/Tests/FieldUnitTestBase.php
+++ b/core/modules/field/src/Tests/FieldUnitTestBase.php
@@ -21,7 +21,7 @@
    *
    * @var array
    */
-  public static $modules = array('user', 'entity', 'system', 'field', 'text', 'entity_test', 'field_test');
+  public static $modules = array('user', 'entity', 'system', 'field', 'text', 'entity_test', 'field_test', 'entity_reference');
 
   /**
    * Bag of created field storages and fields.
diff --git a/core/modules/field/tests/src/Unit/FieldConfigEntityUnitTest.php b/core/modules/field/tests/src/Unit/FieldConfigEntityUnitTest.php
index eb516d7..4c9f394 100644
--- a/core/modules/field/tests/src/Unit/FieldConfigEntityUnitTest.php
+++ b/core/modules/field/tests/src/Unit/FieldConfigEntityUnitTest.php
@@ -54,6 +54,13 @@ class FieldConfigEntityUnitTest extends UnitTestCase {
   protected $fieldStorage;
 
   /**
+   * The mock typed data manager;
+   *
+   * @var \Drupal\Core\TypedData\TypedDataManager|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $typedDataManager;
+
+  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -66,10 +73,15 @@ protected function setUp() {
 
     $this->typedConfigManager = $this->getMock('Drupal\Core\Config\TypedConfigManagerInterface');
 
+    $this->typedDataManager = $this->getMockBuilder('Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->getMock();
+
     $container = new ContainerBuilder();
     $container->set('entity.manager', $this->entityManager);
     $container->set('uuid', $this->uuid);
     $container->set('config.typed', $this->typedConfigManager);
+    $container->set('typed_data_manager', $this->typedDataManager);
     \Drupal::setContainer($container);
 
     // Create a mock FieldStorageConfig object.
@@ -80,7 +92,9 @@ protected function setUp() {
     $this->fieldStorage->expects($this->any())
       ->method('getName')
       ->will($this->returnValue('field_test'));
-
+    $this->fieldStorage->expects($this->any())
+      ->method('getSettings')
+      ->willReturn(array());
     // Place the field in the mocked entity manager's field registry.
     $this->entityManager->expects($this->any())
       ->method('getFieldStorageDefinitions')
diff --git a/core/modules/quickedit/src/Tests/QuickEditTestBase.php b/core/modules/quickedit/src/Tests/QuickEditTestBase.php
index a9e8038..8b590e0 100644
--- a/core/modules/quickedit/src/Tests/QuickEditTestBase.php
+++ b/core/modules/quickedit/src/Tests/QuickEditTestBase.php
@@ -19,7 +19,7 @@
    *
    * @var array
    */
-  public static $modules = array('system', 'entity', 'entity_test', 'field', 'field_test', 'filter', 'user', 'text', 'quickedit');
+  public static $modules = array('system', 'entity', 'entity_test', 'field', 'field_test', 'filter', 'user', 'text', 'quickedit', 'entity_reference');
 
   /**
    * Bag of created fields.
diff --git a/core/modules/rdf/src/Tests/Field/LinkFieldRdfaTest.php b/core/modules/rdf/src/Tests/Field/LinkFieldRdfaTest.php
index 8478bae..e806a60 100644
--- a/core/modules/rdf/src/Tests/Field/LinkFieldRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/LinkFieldRdfaTest.php
@@ -114,7 +114,7 @@ public function runTestAllFormatters($expected_rdf, $type = NULL) {
 
     // Test the link formatter: trim at 80, no other settings.
     $formatter = array(
-      'type' => $type . ' link',
+      'type' => 'link',
       'settings' => array(
         'trim_length' => 80,
         'url_only' => FALSE,
@@ -127,7 +127,7 @@ public function runTestAllFormatters($expected_rdf, $type = NULL) {
 
     // Test the link formatter: trim at 40, nofollow, new window.
     $formatter = array(
-      'type' => $type . ' link',
+      'type' => 'link',
       'settings' => array(
         'trim_length' => 40,
         'url_only' => FALSE,
@@ -141,7 +141,7 @@ public function runTestAllFormatters($expected_rdf, $type = NULL) {
     // Test the link formatter: trim at 40, URL only (not plaintext) nofollow,
     // new window.
     $formatter = array(
-      'type' => $type . ' link',
+      'type' => 'link',
       'settings' => array(
         'trim_length' => 40,
         'url_only' => TRUE,
@@ -154,7 +154,7 @@ public function runTestAllFormatters($expected_rdf, $type = NULL) {
 
     // Test the link_separate formatter: trim at 40, nofollow, new window.
     $formatter = array(
-      'type' => $type . ' link_separate',
+      'type' => 'link_separate',
       'settings' => array(
         'trim_length' => 40,
         'rel' => 'nofollow',
@@ -171,7 +171,7 @@ public function runTestAllFormatters($expected_rdf, $type = NULL) {
     );
     // Test the link formatter: trim at 20, url only (as plaintext.)
     $formatter = array(
-      'type' => $type . ' link',
+      'type' => 'link',
       'settings' => array(
         'trim_length' => 20,
         'url_only' => TRUE,
@@ -184,7 +184,7 @@ public function runTestAllFormatters($expected_rdf, $type = NULL) {
 
     // Test the link formatter: do not trim, url only (as plaintext.)
     $formatter = array(
-      'type' => $type . ' link',
+      'type' => 'link',
       'settings' => array(
         'trim_length' => 0,
         'url_only' => TRUE,
diff --git a/core/modules/rdf/src/Tests/Field/NumberFieldRdfaTest.php b/core/modules/rdf/src/Tests/Field/NumberFieldRdfaTest.php
index e6a0de7..f5974bb 100644
--- a/core/modules/rdf/src/Tests/Field/NumberFieldRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/NumberFieldRdfaTest.php
@@ -21,7 +21,7 @@ public function testIntegerFormatter() {
     $testValue = 3;
     $this->createTestField();
     $this->createTestEntity($testValue);
-    $this->assertFormatterRdfa(array('type' => $this->fieldType), 'http://schema.org/baseSalary', array('value' => $testValue));
+    $this->assertFormatterRdfa(array('type' => 'number_integer'), 'http://schema.org/baseSalary', array('value' => $testValue));
 
     // Test that the content attribute is not created.
     $result = $this->xpathContent($this->getRawContent(), '//div[contains(@class, "field-item") and @content]');
@@ -34,7 +34,7 @@ public function testIntegerFormatter() {
   public function testIntegerFormatterWithSettings() {
     $this->fieldType = 'integer';
     $formatter = array(
-      'type' => $this->fieldType,
+      'type' => 'number_integer',
       'settings' => array(
         'thousand_separator' => '.',
         'prefix_suffix' => TRUE,
@@ -62,7 +62,7 @@ public function testFloatFormatter() {
     $testValue = 3.33;
     $this->createTestField();
     $this->createTestEntity($testValue);
-    $this->assertFormatterRdfa(array('type' => $this->fieldType), 'http://schema.org/baseSalary', array('value' => $testValue));
+    $this->assertFormatterRdfa(array('type' => 'number_unformatted'), 'http://schema.org/baseSalary', array('value' => $testValue));
 
     // Test that the content attribute is not created.
     $result = $this->xpathContent($this->getRawContent(), '//div[contains(@class, "field-item") and @content]');
@@ -75,7 +75,7 @@ public function testFloatFormatter() {
   public function testFloatFormatterWithSettings() {
     $this->fieldType = 'float';
     $formatter = array(
-      'type' => $this->fieldType,
+      'type' => 'number_decimal',
       'settings' => array(
         'thousand_separator' => '.',
         'decimal_separator' => ',',
@@ -102,7 +102,7 @@ public function testFloatFormatterWithSettings() {
   public function testFloatFormatterWithScale() {
     $this->fieldType = 'float';
     $formatter = array(
-      'type' => $this->fieldType,
+      'type' => 'number_decimal',
       'settings' => array(
         'scale' => 5,
       ),
@@ -123,7 +123,7 @@ public function testFloatFormatterWithScale() {
   public function testFloatFormatterWithScaleExercised() {
     $this->fieldType = 'float';
     $formatter = array(
-      'type' => $this->fieldType,
+      'type' => 'number_decimal',
       'settings' => array(
         'scale' => 5,
       ),
@@ -146,7 +146,7 @@ public function testDecimalFormatter() {
     $testValue = 3.33;
     $this->createTestField();
     $this->createTestEntity($testValue);
-    $this->assertFormatterRdfa(array('type' => $this->fieldType), 'http://schema.org/baseSalary', array('value' => $testValue));
+    $this->assertFormatterRdfa(array('type' => 'number_decimal'), 'http://schema.org/baseSalary', array('value' => $testValue));
 
     // Test that the content attribute is not created.
     $result = $this->xpathContent($this->getRawContent(), '//div[contains(@class, "field-item") and @content]');
@@ -159,7 +159,7 @@ public function testDecimalFormatter() {
   public function testDecimalFormatterWithSettings() {
     $this->fieldType = 'decimal';
     $formatter = array(
-      'type' => $this->fieldType,
+      'type' => 'number_decimal',
       'settings' => array(
         'thousand_separator' => 't',
         'decimal_separator' => '#',
diff --git a/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php b/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php
index 85662d2..002db43 100644
--- a/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php
@@ -52,7 +52,7 @@ protected function setUp() {
    */
   public function testAllFormatters() {
     // Tests the plain formatter.
-    $this->assertFormatterRdfa(array('type' => 'text_plain'), 'http://schema.org/telephone', array('value' => $this->testValue));
+    $this->assertFormatterRdfa(array('type' => 'string'), 'http://schema.org/telephone', array('value' => $this->testValue));
     // Tests the telephone link formatter.
     $this->assertFormatterRdfa(array('type' => 'telephone_link'), 'http://schema.org/telephone', array('value' => 'tel:' . $this->testValue, 'type' => 'uri'));
 
diff --git a/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php b/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php
index ada31f2..c1dc0ff 100644
--- a/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php
+++ b/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php
@@ -20,7 +20,7 @@
    *
    * @var array
    */
-  public static $modules = array('entity', 'user', 'system', 'field', 'text', 'filter', 'entity_test');
+  public static $modules = array('entity', 'user', 'system', 'field', 'text', 'filter', 'entity_test', 'entity_reference');
 
   /**
    * The entity manager service.
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTest.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTest.php
index b4cb26e..462448e 100644
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTest.php
+++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTest.php
@@ -90,7 +90,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
         'weight' => -5,
       ))
       ->setDisplayOptions('form', array(
-        'type' => 'string',
+        'type' => 'string_textfield',
         'weight' => -5,
       ));
 
