diff --git a/core/modules/rest/lib/Drupal/rest/Annotation/RestResource.php b/core/modules/rest/lib/Drupal/rest/Annotation/RestResource.php
new file mode 100644
index 0000000000000000000000000000000000000000..c9ac9e910e7961f2d7f1d2e3a493b66fe1c5bab2
--- /dev/null
+++ b/core/modules/rest/lib/Drupal/rest/Annotation/RestResource.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\rest\Annotation\RestResource.
+ */
+
+namespace Drupal\rest\Annotation;
+
+use \Drupal\Component\Annotation\Plugin;
+
+/**
+ * Defines a REST resource annotation object.
+ *
+ * @Annotation
+ */
+class RestResource extends Plugin {
+
+  /**
+   * The resource plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The human-readable name of the resource plugin.
+   *
+   * @ingroup plugin_translatable
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $label;
+
+}
diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php b/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php
index 0ad6b0fab9ca18aecf886331add2bf35640170d9..6ff5a349c26b0367c8e8d2f4e27a1cf97a64f018 100644
--- a/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php
+++ b/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php
@@ -9,9 +9,8 @@
 
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
-use Drupal\Core\Language\LanguageManager;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Plugin\DefaultPluginManager;
-use Drupal\Core\Plugin\Discovery\CacheDecorator;
 
 /**
  * Manages discovery and instantiation of resource plugins.
@@ -26,13 +25,13 @@ class ResourcePluginManager extends DefaultPluginManager {
    *   keyed by the corresponding namespace to look for plugin implementations.
    * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
    *   Cache backend instance to use.
-   * @param \Drupal\Core\Language\LanguageManager $language_manager
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
    *   The language manager.
    * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
    *   The module handler to invoke the alter hook with.
    */
-  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, LanguageManager $language_manager, ModuleHandlerInterface $module_handler) {
-    parent::__construct('Plugin/rest/resource', $namespaces);
+  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, LanguageManagerInterface $language_manager, ModuleHandlerInterface $module_handler) {
+    parent::__construct('Plugin/rest/resource', $namespaces, 'Drupal\rest\Annotation\RestResource');
 
     $this->setCacheBackend($cache_backend, $language_manager, 'rest_plugins');
     $this->alterInfo($module_handler, 'rest_resource');
diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/DBLogResource.php b/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/DBLogResource.php
index bd05a5aae573953460c33f625e65d72d5864e924..57aaf8184d9acc8a9e760b88139c4aedd7644c29 100644
--- a/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/DBLogResource.php
+++ b/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/DBLogResource.php
@@ -15,7 +15,7 @@
 /**
  * Provides a resource for database watchdog log entries.
  *
- * @Plugin(
+ * @RestResource(
  *   id = "dblog",
  *   label = @Translation("Watchdog database log")
  * )
diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/EntityResource.php b/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/EntityResource.php
index 53281e19e5d3367d794b377380c494414eb8518a..6cbb2823c53071cb30fc094b5328dfd2a65f7259 100644
--- a/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/EntityResource.php
+++ b/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/EntityResource.php
@@ -19,7 +19,7 @@
 /**
  * Represents entities as resources.
  *
- * @Plugin(
+ * @RestResource(
  *   id = "entity",
  *   label = @Translation("Entity"),
  *   serialization_class = "Drupal\Core\Entity\Entity",