diff --git a/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php b/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php
index c1317d0..e5591da 100644
--- a/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php
+++ b/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php
@@ -8,7 +8,7 @@
 
 namespace Drupal\block\Plugin\views\display;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 
@@ -17,13 +17,12 @@
  *
  * @ingroup views_display_plugins
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "block",
  *   module = "block",
  *   title = @Translation("Block"),
  *   help = @Translation("Display the view as a block."),
  *   theme = "views_view",
- *   uses_hook_block = TRUE,
  *   contextual_links_locations = {"block"},
  *   admin = @Translation("Block")
  * )
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/row/CommentRow.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/row/CommentRow.php
index 41f1741..c4cb911 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/row/CommentRow.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/row/CommentRow.php
@@ -8,13 +8,13 @@
 namespace Drupal\comment\Plugin\views\row;
 
 use Drupal\system\Plugin\views\row\EntityRow;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Plugin which performs a comment_view on the resulting object.
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "comment",
  *   module = "comment",
  *   title = @Translation("Comment"),
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/row/Rss.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/row/Rss.php
index 2e18fa9..2f47461 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/row/Rss.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/row/Rss.php
@@ -8,13 +8,13 @@
 namespace Drupal\comment\Plugin\views\row;
 
 use Drupal\views\Plugin\views\row\RowPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Plugin which formats the comments as RSS items.
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "comment_rss",
  *   module = "comment",
  *   title = @Translation("Comment"),
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/wizard/Comment.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/wizard/Comment.php
index c45efbd..c023134 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/wizard/Comment.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/wizard/Comment.php
@@ -8,7 +8,7 @@
 namespace Drupal\comment\Plugin\views\wizard;
 
 use Drupal\views\Plugin\views\wizard\WizardPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsWizard;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
 /**
  * Tests creating comment views with the wizard.
  *
- * @Plugin(
+ * @ViewsWizard(
  *   id = "comment",
  *   module = "comment",
  *   base_table = "comment",
diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/display/EntityReference.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/display/EntityReference.php
index 512f407..2125ff0 100644
--- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/display/EntityReference.php
+++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/display/EntityReference.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\entity_reference\Plugin\views\display;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 
@@ -20,7 +20,7 @@
  *
  * @ingroup views_display_plugins
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "entity_reference",
  *   title = @Translation("Entity Reference"),
  *   admin = @Translation("Entity Reference Source"),
diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/row/EntityReference.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/row/EntityReference.php
index 3091519..7d7cc22 100644
--- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/row/EntityReference.php
+++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/row/EntityReference.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\entity_reference\Plugin\views\row;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\row\Fields;
 
@@ -16,7 +16,7 @@
  *
  * @ingroup views_row_plugins
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "entity_reference",
  *   title = @Translation("Entity Reference inline fields"),
  *   help = @Translation("Displays the fields with an optional template."),
diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/style/EntityReference.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/style/EntityReference.php
index e2df530..00ae4c7 100644
--- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/style/EntityReference.php
+++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/views/style/EntityReference.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\entity_reference\Plugin\views\style;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\style\StylePluginBase;
 
@@ -16,7 +16,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "entity_reference",
  *   title = @Translation("Entity Reference list"),
  *   help = @Translation("Returns results as a PHP array of labels and rendered rows."),
diff --git a/core/modules/file/lib/Drupal/file/Plugin/views/wizard/File.php b/core/modules/file/lib/Drupal/file/Plugin/views/wizard/File.php
index 54f33e3..5028841 100644
--- a/core/modules/file/lib/Drupal/file/Plugin/views/wizard/File.php
+++ b/core/modules/file/lib/Drupal/file/Plugin/views/wizard/File.php
@@ -8,13 +8,13 @@
 namespace Drupal\file\Plugin\views\wizard;
 
 use Drupal\views\Plugin\views\wizard\WizardPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsWizard;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Tests creating managed files views with the wizard.
  *
- * @Plugin(
+ * @ViewsWizard(
  *   id = "file_managed",
  *   module = "file",
  *   base_table = "file_managed",
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/argument_default/Node.php b/core/modules/node/lib/Drupal/node/Plugin/views/argument_default/Node.php
index 9e53ee8..c165d5e 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/argument_default/Node.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/argument_default/Node.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\node\Plugin\views\argument_default;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentDefault;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase;
 
@@ -16,7 +16,7 @@
  *
  * This plugin actually has no options so it odes not need to do a great deal.
  *
- * @Plugin(
+ * @ViewsArgumentDefault(
  *   id = "node",
  *   module = "node",
  *   title = @Translation("Content ID from URL")
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/argument_validator/Node.php b/core/modules/node/lib/Drupal/node/Plugin/views/argument_validator/Node.php
index a2b8b63..08617e9 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/argument_validator/Node.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/argument_validator/Node.php
@@ -7,14 +7,14 @@
 
 namespace Drupal\node\Plugin\views\argument_validator;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentValidator;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase;
 
 /**
  * Validate whether an argument is an acceptable node.
  *
- * @Plugin(
+ * @ViewsArgumentValidator(
  *   id = "node",
  *   module = "node",
  *   title = @Translation("Content")
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/row/NodeRow.php b/core/modules/node/lib/Drupal/node/Plugin/views/row/NodeRow.php
index c6b6628..a8edfec 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/row/NodeRow.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/row/NodeRow.php
@@ -8,7 +8,7 @@
 namespace Drupal\node\Plugin\views\row;
 
 use Drupal\views\ViewExecutable;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 use Drupal\system\Plugin\views\row\EntityRow;
 
@@ -19,7 +19,7 @@
  *
  * @ingroup views_row_plugins
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "node",
  *   module = "node",
  *   title = @Translation("Content"),
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/row/Rss.php b/core/modules/node/lib/Drupal/node/Plugin/views/row/Rss.php
index 6c34a4d..73758c8 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/row/Rss.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/row/Rss.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\node\Plugin\views\row;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\row\RowPluginBase;
 
@@ -15,7 +15,7 @@
  * Plugin which performs a node_view on the resulting object
  * and formats it as an RSS item.
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "node_rss",
  *   title = @Translation("Content"),
  *   help = @Translation("Display the content with standard node view."),
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/wizard/Node.php b/core/modules/node/lib/Drupal/node/Plugin/views/wizard/Node.php
index 4f868f7..c19c22f 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/wizard/Node.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/wizard/Node.php
@@ -8,7 +8,7 @@
 namespace Drupal\node\Plugin\views\wizard;
 
 use Drupal\views\Plugin\views\wizard\WizardPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsWizard;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,14 +18,13 @@
 /**
  * Tests creating node views with the wizard.
  *
- * @Plugin(
+ * @ViewsWizard(
  *   id = "node",
  *   module = "node",
  *   base_table = "node",
  *   title = @Translation("Content")
  * )
  */
-
 class Node extends WizardPluginBase {
 
   /**
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/wizard/NodeRevision.php b/core/modules/node/lib/Drupal/node/Plugin/views/wizard/NodeRevision.php
index 0f41638..0393cf3 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/wizard/NodeRevision.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/wizard/NodeRevision.php
@@ -8,7 +8,7 @@
 namespace Drupal\node\Plugin\views\wizard;
 
 use Drupal\views\Plugin\views\wizard\WizardPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsWizard;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
 /**
  * Tests creating node revision views with the wizard.
  *
- * @Plugin(
+ * @ViewsWizard(
  *   id = "node_revision",
  *   module = "node",
  *   base_table = "node_revision",
diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/views/display/RestExport.php b/core/modules/rest/lib/Drupal/rest/Plugin/views/display/RestExport.php
index 72f94df..509f0e9 100644
--- a/core/modules/rest/lib/Drupal/rest/Plugin/views/display/RestExport.php
+++ b/core/modules/rest/lib/Drupal/rest/Plugin/views/display/RestExport.php
@@ -8,7 +8,7 @@
 namespace Drupal\rest\Plugin\views\display;
 
 use Symfony\Component\HttpFoundation\Response;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\PathPluginBase;
@@ -18,7 +18,7 @@
  *
  * @ingroup views_display_plugins
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "rest_export",
  *   module = "rest",
  *   title = @Translation("REST export"),
diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/views/row/DataEntityRow.php b/core/modules/rest/lib/Drupal/rest/Plugin/views/row/DataEntityRow.php
index d806395..9ad045c 100644
--- a/core/modules/rest/lib/Drupal/rest/Plugin/views/row/DataEntityRow.php
+++ b/core/modules/rest/lib/Drupal/rest/Plugin/views/row/DataEntityRow.php
@@ -9,7 +9,7 @@
 
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\row\RowPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -17,7 +17,7 @@
  *
  * @ingroup views_row_plugins
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "data_entity",
  *   module = "rest",
  *   title = @Translation("Entity"),
diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/views/row/DataFieldRow.php b/core/modules/rest/lib/Drupal/rest/Plugin/views/row/DataFieldRow.php
index 756f9a4..df707f7 100644
--- a/core/modules/rest/lib/Drupal/rest/Plugin/views/row/DataFieldRow.php
+++ b/core/modules/rest/lib/Drupal/rest/Plugin/views/row/DataFieldRow.php
@@ -10,7 +10,7 @@
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\Plugin\views\row\RowPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
  *
  * @ingroup views_row_plugins
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "data_field",
  *   module = "rest",
  *   title = @Translation("Fields"),
diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/views/style/Serializer.php b/core/modules/rest/lib/Drupal/rest/Plugin/views/style/Serializer.php
index 1a00e4f..8c0e8a5 100644
--- a/core/modules/rest/lib/Drupal/rest/Plugin/views/style/Serializer.php
+++ b/core/modules/rest/lib/Drupal/rest/Plugin/views/style/Serializer.php
@@ -10,7 +10,7 @@
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\Plugin\views\style\StylePluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "serializer",
  *   module = "rest",
  *   title = @Translation("Serializer"),
diff --git a/core/modules/search/lib/Drupal/search/Plugin/views/row/SearchRow.php b/core/modules/search/lib/Drupal/search/Plugin/views/row/SearchRow.php
index 1e42b80..7b8ed56 100644
--- a/core/modules/search/lib/Drupal/search/Plugin/views/row/SearchRow.php
+++ b/core/modules/search/lib/Drupal/search/Plugin/views/row/SearchRow.php
@@ -8,13 +8,13 @@
 namespace Drupal\search\Plugin\views\row;
 
 use Drupal\views\Plugin\views\row\RowPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Plugin which performs a node_view on the resulting object.
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "search_view",
  *   module = "search",
  *   title = @Translation("Search"),
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_default/Tid.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_default/Tid.php
index 5e95072..5886d45 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_default/Tid.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_default/Tid.php
@@ -9,14 +9,14 @@
 
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentDefault;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase;
 
 /**
  * Taxonomy tid default argument.
  *
- * @Plugin(
+ * @ViewsArgumentDefault(
  *   id = "taxonomy_tid",
  *   module = "taxonomy",
  *   title = @Translation("Taxonomy term ID from URL")
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_validator/Term.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_validator/Term.php
index 0dbcd4c..80e9fec 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_validator/Term.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/argument_validator/Term.php
@@ -9,14 +9,14 @@
 
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentValidator;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase;
 
 /**
  * Validate whether an argument is an acceptable node.
  *
- * @Plugin(
+ * @ViewsArgumentValidator(
  *   id = "taxonomy_term",
  *   module = "taxonomy",
  *   title = @Translation("Taxonomy term")
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/wizard/TaxonomyTerm.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/wizard/TaxonomyTerm.php
index 615d222..1008bbc 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/wizard/TaxonomyTerm.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/wizard/TaxonomyTerm.php
@@ -8,13 +8,13 @@
 namespace Drupal\taxonomy\Plugin\views\wizard;
 
 use Drupal\views\Plugin\views\wizard\WizardPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsWizard;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Tests creating taxonomy views with the wizard.
  *
- * @Plugin(
+ * @ViewsWizard(
  *   id = "taxonomy_term",
  *   module = "taxonomy",
  *   base_table = "taxonomy_term_data",
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/access/Permission.php b/core/modules/user/lib/Drupal/user/Plugin/views/access/Permission.php
index 5b4004d..67db4a3 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/access/Permission.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/access/Permission.php
@@ -7,8 +7,8 @@
 
 namespace Drupal\user\Plugin\views\access;
 
-use Drupal\Component\Annotation\Plugin;
 use Drupal\views\Plugin\views\access\AccessPluginBase;
+use Drupal\views\Plugin\Annotation\ViewsAccess;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -16,7 +16,7 @@
  *
  * @ingroup views_access_plugins
  *
- * @Plugin(
+ * @ViewsAccess(
  *   id = "perm",
  *   title = @Translation("Permission"),
  *   help = @Translation("Access will be granted to users with the specified permission string.")
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/access/Role.php b/core/modules/user/lib/Drupal/user/Plugin/views/access/Role.php
index 6448df4..eab3287 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/access/Role.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/access/Role.php
@@ -7,8 +7,8 @@
 
 namespace Drupal\user\Plugin\views\access;
 
-use Drupal\Component\Annotation\Plugin;
 use Drupal\views\Plugin\views\access\AccessPluginBase;
+use Drupal\views\Plugin\Annotation\ViewsAccess;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -16,7 +16,7 @@
  *
  * @ingroup views_access_plugins
  *
- * @Plugin(
+ * @ViewsAccess(
  *   id = "role",
  *   title = @Translation("Role"),
  *   help = @Translation("Access will be granted to users with any of the specified roles.")
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/argument_default/CurrentUser.php b/core/modules/user/lib/Drupal/user/Plugin/views/argument_default/CurrentUser.php
index 4d27b49..7579b2f 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/argument_default/CurrentUser.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/argument_default/CurrentUser.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\user\Plugin\views\argument_default;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentDefault;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase;
 
@@ -16,7 +16,7 @@
  *
  * This plugin actually has no options so it odes not need to do a great deal.
  *
- * @Plugin(
+ * @ViewsArgumentDefault(
  *   id = "current_user",
  *   module = "user",
  *   title = @Translation("User ID from logged in user")
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/argument_default/User.php b/core/modules/user/lib/Drupal/user/Plugin/views/argument_default/User.php
index 360ec9d..0a51f8c 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/argument_default/User.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/argument_default/User.php
@@ -8,13 +8,14 @@
 namespace Drupal\user\Plugin\views\argument_default;
 
 use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentDefault;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase;
 
 /**
  * Default argument plugin to extract a user via menu_get_object.
  *
- * @Plugin(
+ * @ViewsArgumentDefault(
  *   id = "user",
  *   module = "user",
  *   title = @Translation("User ID from URL")
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/argument_validator/User.php b/core/modules/user/lib/Drupal/user/Plugin/views/argument_validator/User.php
index 929ed42..71a0ced 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/argument_validator/User.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/argument_validator/User.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\user\Plugin\views\argument_validator;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentValidator;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase;
 
@@ -18,7 +18,7 @@
  * converts either one into the user's UID.  This validator also sets the
  * argument's title to the username.
  *
- * @Plugin(
+ * @ViewsArgumentValidator(
  *   id = "user",
  *   module = "user",
  *   title = @Translation("User")
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/row/UserRow.php b/core/modules/user/lib/Drupal/user/Plugin/views/row/UserRow.php
index 48b44e5..15e5fa3 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/row/UserRow.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/row/UserRow.php
@@ -8,7 +8,7 @@
 namespace Drupal\user\Plugin\views\row;
 
 use Drupal\system\Plugin\views\row\EntityRow;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -16,7 +16,7 @@
  *
  * @ingroup views_row_plugins
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "user",
  *   module = "user",
  *   title = @Translation("User"),
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/wizard/Users.php b/core/modules/user/lib/Drupal/user/Plugin/views/wizard/Users.php
index 24a787e..2c79e4b 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/wizard/Users.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/wizard/Users.php
@@ -8,7 +8,7 @@
 namespace Drupal\user\Plugin\views\wizard;
 
 use Drupal\views\Plugin\views\wizard\WizardPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsWizard;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
 /**
  * Tests creating user views with the wizard.
  *
- * @Plugin(
+ * @ViewsWizard(
  *   id = "users",
  *   module = "user",
  *   base_table = "users",
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsAccess.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsAccess.php
new file mode 100644
index 0000000..670f6a7
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsAccess.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsAccess.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views access plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\access\AccessPluginBase
+ */
+class ViewsAccess extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your access type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * A short help string; this is displayed in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $help;
+
+  /**
+   * Defines the type of the display, this plugin can be used with.
+   *
+   * For example the Feed display defines the type 'feed', so only rss style
+   * and row plugins can be used in the views UI.
+   */
+  public $display_types;
+
+  /**
+   * The base tables on which this access plugin can be used.
+   *
+   * If no base table is specified the plugin can be used with all tables.
+   *
+   * @var array
+   */
+  public $base;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'help' => $this->help->get(),
+      'display_types' => $this->display_types,
+      'base' => $this->base,
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsArgumentDefault.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsArgumentDefault.php
new file mode 100644
index 0000000..4339dea
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsArgumentDefault.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsArgumentDefault.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views argument default plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase
+ */
+class ViewsArgumentDefault extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your default argument type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsArgumentValidator.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsArgumentValidator.php
new file mode 100644
index 0000000..d640e05
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsArgumentValidator.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsArgumentValidator.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views argument default plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase
+ */
+class ViewsArgumentValidator extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your argument validator type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsCache.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsCache.php
new file mode 100644
index 0000000..a2a86db
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsCache.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsCache.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views cache plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\cache\CachePluginBase
+ */
+class ViewsCache extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your cache type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * A short help string; this is displayed in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $help;
+
+  /**
+   * Defines the type of the display, this plugin can be used with.
+   *
+   * For example the Feed display defines the type 'feed', so only rss style
+   * and row plugins can be used in the views UI.
+   */
+  public $display_types;
+
+  /**
+   * The base tables on which this cache plugin can be used.
+   *
+   * If no base table is specified the plugin can be used with all tables.
+   *
+   * @var array
+   */
+  public $base;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'help' => $this->help->get(),
+      'display_types' => $this->display_types,
+      'base' => $this->base,
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsDisplay.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsDisplay.php
new file mode 100644
index 0000000..1e98f72
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsDisplay.php
@@ -0,0 +1,112 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsDisplay.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views display plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\display\DisplayPluginBase
+ */
+class ViewsDisplay extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your display type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * The administrative name of the display.
+   *
+   * The name is displayed on the Views overview and also used as default name
+   * for new displays. Wrap it in @Translation().
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $admin;
+
+  /**
+   * A short help string; this is displayed in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $help;
+
+  /**
+   * Does the display plugin uses hook_menu() to register a route to the router.
+   *
+   * @var bool
+   */
+  public $uses_hook_menu;
+
+  /**
+   * An array with places where contextual links should be added. Can for
+   * example be 'page' or 'block'. If you don't specify it there will be
+   * contextual links around the rendered view. If this is not set or regions
+   * have been specified, views will display an option to 'hide contextual
+   * links'. Use an empty array if you do not want this.
+   *
+   * @var array
+   */
+  public $contextual_links_locations;
+
+  /**
+   * The base tables on which this display plugin can be used.
+   *
+   * If no base table is specified the plugin can be used with all tables.
+   *
+   * @var array
+   */
+  public $base;
+
+  /**
+   * The theme function used to render the display's output.
+   */
+  public $theme;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'admin' => isset($this->admin) ? $this->admin->get() : '',
+      'help' => $this->help->get(),
+      'uses_hook_menu' => $this->uses_hook_menu,
+      'contextual_links_locations' => $this->contextual_links_locations,
+      'base' => $this->base,
+      'theme' => $this->theme,
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsDisplayExtender.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsDisplayExtender.php
new file mode 100644
index 0000000..894771b
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsDisplayExtender.php
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsDisplayExtender.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+use Drupal\Component\Annotation\AnnotationInterface;
+
+/**
+ * Defines a Plugin annotation object for views display extender plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\display_extender\DisplayExtenderPluginBase
+ */
+class ViewsDisplayExtender implements AnnotationInterface {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your display extender type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * A short help string; this is displayed in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $help;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'help' => $this->help->get(),
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsExposedForm.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsExposedForm.php
new file mode 100644
index 0000000..899e4a1
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsExposedForm.php
@@ -0,0 +1,85 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsExposedForm.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views exposed form plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\exposed_form\ExposedFormPluginBase
+ */
+class ViewsExposedForm extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your exposed form type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * A short help string; this is displayed in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $help;
+
+  /**
+   * Defines the type of the display, this plugin can be used with.
+   *
+   * For example the Feed display defines the type 'feed', so only rss style
+   * and row plugins can be used in the views UI.
+   */
+  public $display_types;
+
+  /**
+   * The base tables on which this exposed form plugin can be used.
+   *
+   * If no base table is specified the plugin can be used with all tables.
+   *
+   * @var array
+   */
+  public $base;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'help' => $this->help->get(),
+      'display_types' => $this->display_types,
+      'base' => $this->base,
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsPager.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsPager.php
new file mode 100644
index 0000000..4e4bd5b
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsPager.php
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsPager.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views pager plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\pager\PagerPluginBase
+ */
+class ViewsPager extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your pager type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * A short help string; this is displayed in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $help;
+
+  /**
+   * The theme function used to render the pager's output.
+   */
+  public $theme;
+
+  /**
+   * Defines the type of the display, this plugin can be used with.
+   *
+   * For example the Feed display defines the type 'feed', so only rss style
+   * and row plugins can be used in the views UI.
+   */
+  public $display_types;
+
+  /**
+   * The base tables on which this pager plugin can be used.
+   *
+   * If no base table is specified the plugin can be used with all tables.
+   *
+   * @var array
+   */
+  public $base;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'help' => $this->help->get(),
+      'theme' => $this->theme,
+      'display_types' => $this->display_types,
+      'base' => $this->base,
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsPluginAnnotationBase.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsPluginAnnotationBase.php
new file mode 100644
index 0000000..1bd879b
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsPluginAnnotationBase.php
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsPluginAnnotationBase.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+use Drupal\Component\Annotation\AnnotationInterface;
+
+/**
+ * Defines an abstract base class for all views plugin annotations.
+ */
+abstract class ViewsPluginAnnotationBase implements AnnotationInterface {
+
+  /**
+   * The module the plugin is defined by.
+   *
+   * @var string
+   */
+  public $module;
+
+  /**
+   * Defines a class which allows to provide derivatived plugins.
+   *
+   * @var string
+   *
+   * @see \Drupal\Component\Plugin\Discovery\DerivativeDiscoveryDecorator
+   */
+  public $derivative;
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsQuery.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsQuery.php
new file mode 100644
index 0000000..e3513a2
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsQuery.php
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsQuery.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views query plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\query\QueryPluginBase
+ */
+class ViewsQuery extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your query type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * A short help string; this is displayed in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $help;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'help' => $this->help->get(),
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsRow.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsRow.php
new file mode 100644
index 0000000..85acc66
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsRow.php
@@ -0,0 +1,88 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsRow.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views row plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\row\RowPluginBase
+ */
+class ViewsRow extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your row type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * A short help string; this is displayed in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $help;
+
+  /**
+   * The theme function used to render the row output.
+   */
+  public $theme;
+
+  /**
+   * The base tables on which this row plugin can be used.
+   *
+   * @var array
+   */
+  public $base;
+
+  /**
+   * Defines the type of the display, this plugin can be used with.
+   *
+   * For example the Feed display defines the type 'feed', so only rss style
+   * and row plugins can be used in the views UI.
+   */
+  public $display_types;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'help' => $this->help->get(),
+      'theme' => $this->theme,
+      'display_types' => $this->display_types,
+      'base' => $this->base,
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsStyle.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsStyle.php
new file mode 100644
index 0000000..34596fe
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsStyle.php
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsStyle.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views style plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\style\StylePluginBase
+ */
+class ViewsStyle extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your style type; used in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * A short help string; this is displayed in the views UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $help;
+
+  /**
+   * The theme function used to render the style output.
+   */
+  public $theme;
+
+  /**
+   * Defines the type of the display, this plugin can be used with.
+   *
+   * For example the Feed display defines the type 'feed', so only rss style
+   * and row plugins can be used in the views UI.
+   */
+  public $display_types;
+
+  /**
+   * The base tables on which this style plugin can be used.
+   *
+   * If no base table is specified the plugin can be used with all tables.
+   *
+   * @var array
+   */
+  public $base;
+
+  /**
+   * Should the plugin be not selectable in the ui.
+   *
+   * If it's set to TRUE, you can still use it via the API in config files.
+   *
+   * @var bool
+   */
+  public $no_ui;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'help' => $this->help->get(),
+      'theme' => $this->theme,
+      'display_types' => $this->display_types,
+      'base' => $this->base,
+      'no_ui' => $this->no_ui,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsWizard.php b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsWizard.php
new file mode 100644
index 0000000..cd46935
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Annotation/ViewsWizard.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Annotation\ViewsWizard.
+ */
+
+namespace Drupal\views\Plugin\Annotation;
+
+/**
+ * Defines a Plugin annotation object for views wizard plugins.
+ *
+ * @Annotation
+ *
+ * @see \Drupal\views\Plugin\views\wizard\WizardPluginBase
+ */
+class ViewsWizard extends ViewsPluginAnnotationBase {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The "full" title for your wizard type; used in the views creation UI.
+   *
+   * Wrap it in @Translation()
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+   public $title;
+
+  /**
+   * The base tables on which this wizard is used.
+   *
+   * @var array
+   */
+  public $base_table;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'id' => $this->id,
+      'title' => $this->title->get(),
+      'base_table' => $this->base_table,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/ViewsPluginManager.php b/core/modules/views/lib/Drupal/views/Plugin/ViewsPluginManager.php
index 56633f8..f89e89c 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/ViewsPluginManager.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/ViewsPluginManager.php
@@ -15,6 +15,8 @@
 use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
 use Drupal\Core\Plugin\Discovery\CacheDecorator;
 
+use Symfony\Component\DependencyInjection\Container;
+
 /**
  * Plugin type manager for all views plugins.
  */
@@ -29,7 +31,13 @@ class ViewsPluginManager extends PluginManagerBase {
    *   An array of paths keyed by it's corresponding namespaces.
    */
   public function __construct($type, array $namespaces = array()) {
-    $this->discovery = new AnnotatedClassDiscovery('views', $type, $namespaces);
+    $annotation_namespaces = array(
+      'Drupal\views\Plugin\Annotation' => DRUPAL_ROOT . '/core/modules/views/lib',
+    );
+
+    $plugin_definition_annotation_name = 'Drupal\views\Plugin\Annotation\\Views' . Container::camelize($type);
+    debug($plugin_definition_annotation_name);
+    $this->discovery = new AnnotatedClassDiscovery('views', $type, $namespaces, $annotation_namespaces, $plugin_definition_annotation_name);
     $this->discovery = new DerivativeDiscoveryDecorator($this->discovery);
     $this->discovery = new ProcessDecorator($this->discovery, array($this, 'processDefinition'));
     $this->discovery = new AlterDecorator($this->discovery, 'views_plugins_' . $type);
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/access/None.php b/core/modules/views/lib/Drupal/views/Plugin/views/access/None.php
index 55e1c80..67acb61 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/access/None.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/access/None.php
@@ -7,15 +7,15 @@
 
 namespace Drupal\views\Plugin\views\access;
 
+use Drupal\views\Plugin\Annotation\ViewsAccess;
 use Drupal\Core\Annotation\Translation;
-use Drupal\Component\Annotation\Plugin;
 
 /**
  * Access plugin that provides no access control at all.
  *
  * @ingroup views_access_plugins
  *
- * @Plugin(
+ * @ViewsAccess(
  *   id = "none",
  *   title = @Translation("None"),
  *   help = @Translation("Will be available to all users.")
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Fixed.php b/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Fixed.php
index fcdda9d..fd3cd29 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Fixed.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Fixed.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\argument_default;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentDefault;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_argument_default_plugins
  *
- * @Plugin(
+ * @ViewsArgumentDefault(
  *   id = "fixed",
  *   title = @Translation("Fixed")
  * )
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Php.php b/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Php.php
index cf5a574..118a113 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Php.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Php.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\argument_default;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentDefault;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_argument_default_plugins
  *
- * @Plugin(
+ * @ViewsArgumentDefault(
  *   id = "php",
  *   title = @Translation("PHP Code")
  * )
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Raw.php b/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Raw.php
index a2a6290..43be5f1 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Raw.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/argument_default/Raw.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\argument_default;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentDefault;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_argument_default_plugins
  *
- * @Plugin(
+ * @ViewsArgumentDefault(
  *   id = "raw",
  *   title = @Translation("Raw value from URL")
  * )
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/None.php b/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/None.php
index 7a63069..2ab712c 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/None.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/None.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\argument_validator;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentValidator;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_argument_validate_plugins
  *
- * @Plugin(
+ * @ViewsArgumentValidator(
  *   id = "none",
  *   title = @Translation(" - Basic validation - ")
  * )
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/Numeric.php b/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/Numeric.php
index 6db339e..61b3bf0 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/Numeric.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/Numeric.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\argument_validator;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentValidator;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_argument_validate_plugins
  *
- * @Plugin(
+ * @ViewsArgumentValidator(
  *   id = "numeric",
  *   title = @Translation("Numeric")
  * )
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/Php.php b/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/Php.php
index 9b23895..8a6d0d5 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/Php.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/argument_validator/Php.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\argument_validator;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentValidator;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_argument_validate_plugins
  *
- * @Plugin(
+ * @ViewsArgumentValidator(
  *   id = "php",
  *   title = @Translation("PHP Code")
  * )
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/cache/None.php b/core/modules/views/lib/Drupal/views/Plugin/views/cache/None.php
index f510248..246701c 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/cache/None.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/cache/None.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\cache;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsCache;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_cache_plugins
  *
- * @Plugin(
+ * @ViewsCache(
  *   id = "none",
  *   title = @Translation("None"),
  *   help = @Translation("No caching of Views data.")
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/cache/Time.php b/core/modules/views/lib/Drupal/views/Plugin/views/cache/Time.php
index 537c40e..6e8499d 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/cache/Time.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/cache/Time.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\cache;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsCache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Annotation\Translation;
 
@@ -16,7 +16,7 @@
  *
  * @ingroup views_cache_plugins
  *
- * @Plugin(
+ * @ViewsCache(
  *   id = "time",
  *   title = @Translation("Time-based"),
  *   help = @Translation("Simple time-based caching of data.")
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/Attachment.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/Attachment.php
index 9991384..b44b7c0 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/Attachment.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/Attachment.php
@@ -8,7 +8,7 @@
 namespace Drupal\views\Plugin\views\display;
 
 use Drupal\views\ViewExecutable;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -20,7 +20,7 @@
  *
  * @ingroup views_display_plugins
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "attachment",
  *   title = @Translation("Attachment"),
  *   help = @Translation("Attachments added to other displays to achieve multiple views in the same view."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/DefaultDisplay.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/DefaultDisplay.php
index c35ffa4..d2e1fae 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/DefaultDisplay.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/DefaultDisplay.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\display;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_display_plugins
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "default",
  *   title = @Translation("Master"),
  *   help = @Translation("Default settings for this view."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/Embed.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/Embed.php
index b004963..5a6a5a8 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/Embed.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/Embed.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\display;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
  * @todo: Wait until annotations/plugins support access mehtods.
  * no_ui => !config('views.settings')->get('ui.show.display_embed'),
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "embed",
  *   title = @Translation("Embed"),
  *   help = @Translation("Provide a display which can be embedded using the views api."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/Feed.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/Feed.php
index a058469..1a12056 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/Feed.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/Feed.php
@@ -10,7 +10,7 @@
 use Drupal\views\ViewExecutable;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
  *
  * @ingroup views_display_plugins
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "feed",
  *   title = @Translation("Feed"),
  *   help = @Translation("Display the view as a feed, such as an RSS feed."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/Page.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/Page.php
index daf4186..4d57273 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/Page.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/Page.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\display;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Drupal\Core\Annotation\Translation;
@@ -17,7 +17,7 @@
  *
  * @ingroup views_display_plugins
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "page",
  *   title = @Translation("Page"),
  *   help = @Translation("Display the view as a page, with a URL and menu links."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display_extender/DefaultDisplayExtender.php b/core/modules/views/lib/Drupal/views/Plugin/views/display_extender/DefaultDisplayExtender.php
index 69cfb2f..7662ff2 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display_extender/DefaultDisplayExtender.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display_extender/DefaultDisplayExtender.php
@@ -7,17 +7,16 @@
 
 namespace Drupal\views\Plugin\views\display_extender;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplayExtender;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * @todo
  *
- * @Plugin(
+ * @ViewsDisplayExtender(
  *   id = "default",
  *   title = @Translation("Empty display extender"),
  *   help = @Translation("Default settings for this view."),
- *   enabled = FALSE,
  *   no_ui = TRUE
  * )
  */
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/exposed_form/Basic.php b/core/modules/views/lib/Drupal/views/Plugin/views/exposed_form/Basic.php
index d422867..07d4b07 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/exposed_form/Basic.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/exposed_form/Basic.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\exposed_form;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsExposedForm;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_exposed_form_plugins
  *
- * @Plugin(
+ * @ViewsExposedForm(
  *   id = "basic",
  *   title = @Translation("Basic"),
  *   help = @Translation("Basic exposed form")
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/exposed_form/InputRequired.php b/core/modules/views/lib/Drupal/views/Plugin/views/exposed_form/InputRequired.php
index 3afcabc..438ef22 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/exposed_form/InputRequired.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/exposed_form/InputRequired.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\exposed_form;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsExposedForm;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_exposed_form_plugins
  *
- * @Plugin(
+ * @ViewsExposedForm(
  *   id = "input_required",
  *   title = @Translation("Input required"),
  *   help = @Translation("An exposed form that only renders a view if the form contains user input.")
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/pager/Full.php b/core/modules/views/lib/Drupal/views/Plugin/views/pager/Full.php
index 08a5978..92b81e4 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/pager/Full.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/pager/Full.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\pager;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsPager;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_pager_plugins
  *
- * @Plugin(
+ * @ViewsPager(
  *   id = "full",
  *   title = @Translation("Paged output, full pager"),
  *   short_title = @Translation("Full"),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/pager/Mini.php b/core/modules/views/lib/Drupal/views/Plugin/views/pager/Mini.php
index 3e19f26..87e1b3c 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/pager/Mini.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/pager/Mini.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\pager;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsPager;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_pager_plugins
  *
- * @Plugin(
+ * @ViewsPager(
  *   id = "mini",
  *   title = @Translation("Paged output, mini pager"),
  *   short_title = @Translation("Mini"),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/pager/None.php b/core/modules/views/lib/Drupal/views/Plugin/views/pager/None.php
index 89970cc..42c8753 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/pager/None.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/pager/None.php
@@ -9,7 +9,7 @@
 
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsPager;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -17,7 +17,7 @@
  *
  * @ingroup views_pager_plugins
  *
- * @Plugin(
+ * @ViewsPager(
  *   id = "none",
  *   title = @Translation("Display all items"),
  *   help = @Translation("Display all items that this view might find."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/pager/Some.php b/core/modules/views/lib/Drupal/views/Plugin/views/pager/Some.php
index 6956f1f..a53ae7d 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/pager/Some.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/pager/Some.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\pager;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsPager;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_pager_plugins
  *
- * @Plugin(
+ * @ViewsPager(
  *   id = "some",
  *   title = @Translation("Display a specified number of items"),
  *   help = @Translation("Display a limited number items that this view might find."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/query/Sql.php b/core/modules/views/lib/Drupal/views/Plugin/views/query/Sql.php
index c04bc99..9ebeafd 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/query/Sql.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/query/Sql.php
@@ -13,7 +13,7 @@
 use Drupal\Core\Database\DatabaseExceptionWrapper;
 use Drupal\views\Plugin\views\join\JoinPluginBase;
 use Drupal\views\Plugin\views\HandlerBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsQuery;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\ViewExecutable;
 use Drupal\views\Views;
@@ -21,7 +21,7 @@
 /**
  * @todo.
  *
- * @Plugin(
+ * @ViewsQuery(
  *   id = "views_query",
  *   title = @Translation("SQL Query"),
  *   help = @Translation("Query will be generated and run using the Drupal database API.")
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/row/Fields.php b/core/modules/views/lib/Drupal/views/Plugin/views/row/Fields.php
index 1018aad..18cdaae 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/row/Fields.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/row/Fields.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\row;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
  *
  * @ingroup views_row_plugins
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "fields",
  *   title = @Translation("Fields"),
  *   help = @Translation("Displays the fields with an optional template."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/row/RssFields.php b/core/modules/views/lib/Drupal/views/Plugin/views/row/RssFields.php
index 67b1004..f91f35f 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/row/RssFields.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/row/RssFields.php
@@ -7,13 +7,13 @@
 
 namespace Drupal\views\Plugin\views\row;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Renders an RSS item based on fields.
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "rss_fields",
  *   title = @Translation("Fields"),
  *   help = @Translation("Display fields as RSS items."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/DefaultStyle.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/DefaultStyle.php
index 27affcc..8b8d467 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/DefaultStyle.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/DefaultStyle.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\style;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -16,7 +16,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "default",
  *   title = @Translation("Unformatted list"),
  *   help = @Translation("Displays rows one after another."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/DefaultSummary.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/DefaultSummary.php
index 3d28046..b6e9fbd 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/DefaultSummary.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/DefaultSummary.php
@@ -8,7 +8,7 @@
 namespace Drupal\views\Plugin\views\style;
 
 use Drupal\views\Plugin\views\style\StylePluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -16,7 +16,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "default_summary",
  *   title = @Translation("List"),
  *   help = @Translation("Displays the default summary as a list."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/Grid.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/Grid.php
index 0631661..aaf9881 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/Grid.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/Grid.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\style;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "grid",
  *   title = @Translation("Grid"),
  *   help = @Translation("Displays rows in a grid."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/HtmlList.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/HtmlList.php
index 1e8889d..e6a090f 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/HtmlList.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/HtmlList.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\style;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "html_list",
  *   title = @Translation("HTML List"),
  *   help = @Translation("Displays rows as HTML list."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/Rss.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/Rss.php
index 7fb9822..bfad9e4 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/Rss.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/Rss.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\style;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "rss",
  *   title = @Translation("RSS Feed"),
  *   help = @Translation("Generates an RSS feed from a view."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/Table.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/Table.php
index 2264efc..ad1be4d 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/Table.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/Table.php
@@ -8,7 +8,7 @@
 namespace Drupal\views\Plugin\views\style;
 
 use Drupal\views\Plugin\views\wizard\WizardInterface;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -16,7 +16,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "table",
  *   title = @Translation("Table"),
  *   help = @Translation("Displays rows in a table."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/UnformattedSummary.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/UnformattedSummary.php
index af005f6..719a544 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/UnformattedSummary.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/UnformattedSummary.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\style;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "unformatted_summary",
  *   title = @Translation("Unformatted"),
  *   help = @Translation("Displays the summary unformatted, with option for one after another or inline."),
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/wizard/Standard.php b/core/modules/views/lib/Drupal/views/Plugin/views/wizard/Standard.php
index 4af96065..2751867 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/wizard/Standard.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/wizard/Standard.php
@@ -7,10 +7,10 @@
 
 namespace Drupal\views\Plugin\views\wizard;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsWizard;
 
 /**
- * @Plugin(
+ * @ViewsWizard(
  *   id = "standard",
  *   derivative = "Drupal\views\Plugin\Derivative\DefaultWizardDeriver"
  * )
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/DynamicTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/DynamicTest.php
index b153c93..c8df630 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/DynamicTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/DynamicTest.php
@@ -7,14 +7,14 @@
 
 namespace Drupal\views_test_data\Plugin\views\access;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsAccess;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\access\AccessPluginBase;
 
 /**
  * Tests a dynamic access plugin.
  *
- * @Plugin(
+ * @ViewsAccess(
  *   id = "test_dynamic",
  *   title = @Translation("Dynamic test access plugin."),
  *   help = @Translation("Provides a dynamic test access plugin.")
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/StaticTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/StaticTest.php
index 398e8d7..a11087d 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/StaticTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/access/StaticTest.php
@@ -7,14 +7,14 @@
 
 namespace Drupal\views_test_data\Plugin\views\access;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsAccess;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\access\AccessPluginBase;
 
 /**
  * Tests a static access plugin.
  *
- * @Plugin(
+ * @ViewsAccess(
  *   id = "test_static",
  *   title = @Translation("Static test access plugin"),
  *   help = @Translation("Provides a static test access plugin.")
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/argument_default/ArgumentDefaultTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/argument_default/ArgumentDefaultTest.php
index ba706bb..d3fb449 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/argument_default/ArgumentDefaultTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/argument_default/ArgumentDefaultTest.php
@@ -8,13 +8,13 @@
 namespace Drupal\views_test_data\Plugin\views\argument_default;
 
 use Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsArgumentDefault;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Defines a argument default test plugin.
  *
- * @Plugin(
+ * @ViewsArgumentDefault(
  *   id = "argument_default_test",
  *   title = @Translation("Argument default test")
  * )
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display/DisplayNoAreaTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display/DisplayNoAreaTest.php
index bc20849..4a46cc4 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display/DisplayNoAreaTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display/DisplayNoAreaTest.php
@@ -7,13 +7,13 @@
 
 namespace Drupal\views_test_data\Plugin\views\display;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Defines a Display test plugin with areas disabled.
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "display_no_area_test",
  *   title = @Translation("Display test no area"),
  *   theme = "views_view",
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display/DisplayTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display/DisplayTest.php
index 83a4336..944f389 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display/DisplayTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display/DisplayTest.php
@@ -8,13 +8,13 @@
 namespace Drupal\views_test_data\Plugin\views\display;
 
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplay;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Defines a Display test plugin.
  *
- * @Plugin(
+ * @ViewsDisplay(
  *   id = "display_test",
  *   title = @Translation("Display test"),
  *   theme = "views_view",
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display_extender/DisplayExtenderTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display_extender/DisplayExtenderTest.php
index 82a212d..f5e8333 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display_extender/DisplayExtenderTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display_extender/DisplayExtenderTest.php
@@ -7,14 +7,14 @@
 
 namespace Drupal\views_test_data\Plugin\views\display_extender;
 
-use Drupal\views\Plugin\views\display_extender\DisplayExtenderPluginBase;
+use Drupal\views\Plugin\Annotation\ViewsDisplayExtender;
 use Drupal\Component\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Defines a display extender test plugin.
  *
- * @Plugin(
+ * @ViewsDisplayExtender(
  *   id = "display_extender_test",
  *   title = @Translation("Display extender test")
  * )
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display_extender/DisplayExtenderTest2.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display_extender/DisplayExtenderTest2.php
index 0439c25..7dee19d 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display_extender/DisplayExtenderTest2.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/display_extender/DisplayExtenderTest2.php
@@ -7,13 +7,13 @@
 
 namespace Drupal\views_test_data\Plugin\views\display_extender;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsDisplayExtender;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Defines another display extender test plugin.
  *
- * @Plugin(
+ * @ViewsDisplayExtender(
  *   id = "display_extender_test_2",
  *   title = @Translation("Display extender test number two")
  * )
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/query/QueryTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/query/QueryTest.php
index a058bb3..6ff61ef 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/query/QueryTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/query/QueryTest.php
@@ -10,13 +10,13 @@
 use Drupal\views\Plugin\views\query\QueryPluginBase;
 use Drupal\views\Plugin\views\join\JoinPluginBase;
 use Drupal\views\ViewExecutable;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsQuery;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Defines a query test plugin.
  *
- * @Plugin(
+ * @ViewsQuery(
  *   id = "query_test",
  *   title = @Translation("Query test")
  * )
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/row/RowTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/row/RowTest.php
index d6dedf9..1626bea 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/row/RowTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/row/RowTest.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views_test_data\Plugin\views\row;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsRow;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\row\RowPluginBase;
 
@@ -16,7 +16,7 @@
  *
  * @ingroup views_row_plugins
  *
- * @Plugin(
+ * @ViewsRow(
  *   id = "test_row",
  *   title = @Translation("Test row plugin"),
  *   help = @Translation("Provides a generic row test plugin."),
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/MappingTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/MappingTest.php
index 3a4e486..1393cde 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/MappingTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/MappingTest.php
@@ -8,7 +8,7 @@
 namespace Drupal\views_test_data\Plugin\views\style;
 
 use Drupal\views\Plugin\views\style\Mapping;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\field\Numeric;
 
@@ -17,7 +17,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "mapping_test",
  *   title = @Translation("Field mapping"),
  *   help = @Translation("Maps specific fields to specific purposes."),
diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php
index f7d2c7d..0a2402f 100644
--- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php
+++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views_test_data\Plugin\views\style;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Plugin\Annotation\ViewsStyle;
 use Drupal\Core\Annotation\Translation;
 use Drupal\views\Plugin\views\style\StylePluginBase;
 
@@ -16,7 +16,7 @@
  *
  * @ingroup views_style_plugins
  *
- * @Plugin(
+ * @ViewsStyle(
  *   id = "test_style",
  *   title = @Translation("Test style plugin"),
  *   help = @Translation("Provides a generic style test plugin."),
