diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/NcsLastUpdated.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/NcsLastUpdated.php
index bd0d70a..23087e3 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/NcsLastUpdated.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/NcsLastUpdated.php
@@ -8,17 +8,14 @@
 namespace Drupal\comment\Plugin\views\filter;
 
 use Drupal\views\Plugin\views\filter\Date;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter handler for the newer of last comment / node updated.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "ncs_last_updated",
- *   module = "comment"
- * )
+ * @ViewsHandler("ncs_last_updated")
  */
 class NcsLastUpdated extends Date {
 
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/NodeComment.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/NodeComment.php
index 30a0a7a..a91ad27 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/NodeComment.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/NodeComment.php
@@ -8,17 +8,14 @@
 namespace Drupal\comment\Plugin\views\filter;
 
 use Drupal\views\Plugin\views\filter\InOperator;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter based on comment node status.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "node_comment",
- *   module = "comment"
- * )
+ * @ViewsHandler("node_comment")
  */
 class NodeComment extends InOperator {
 
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/UserUid.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/UserUid.php
index b56cd38..6f0c5c1 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/UserUid.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/filter/UserUid.php
@@ -8,7 +8,7 @@
 namespace Drupal\comment\Plugin\views\filter;
 
 use Drupal\views\Plugin\views\filter\FilterPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter handler to accept a user id to check for nodes that user posted or
@@ -16,10 +16,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "comment_user_uid",
- *   module = "comment"
- * )
+ * @ViewsHandler("comment_user_uid")
  */
 class UserUid extends FilterPluginBase {
 
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/NcsLastCommentName.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/NcsLastCommentName.php
index c7021b9..0748a93 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/NcsLastCommentName.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/NcsLastCommentName.php
@@ -8,7 +8,7 @@
 namespace Drupal\comment\Plugin\views\sort;
 
 use Drupal\views\Plugin\views\sort\SortPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Sort handler to sort by last comment name which might be in 2 different
@@ -16,10 +16,7 @@
  *
  * @ingroup views_sort_handlers
  *
- * @Plugin(
- *   id = "comment_ncs_last_comment_name",
- *   module = "comment"
- * )
+ * @ViewsHandler("comment_ncs_last_comment_name")
  */
 class NcsLastCommentName extends SortPluginBase {
 
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/NcsLastUpdated.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/NcsLastUpdated.php
index 3af22a9..dc5da68 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/NcsLastUpdated.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/NcsLastUpdated.php
@@ -8,17 +8,14 @@
 namespace Drupal\comment\Plugin\views\sort;
 
 use Drupal\views\Plugin\views\sort\Date;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Sort handler for the newer of last comment / node updated.
  *
  * @ingroup views_sort_handlers
  *
- * @Plugin(
- *   id = "ncs_last_updated",
- *   module = "comment"
- * )
+ * @ViewsHandler("ncs_last_updated")
  */
 class NcsLastUpdated extends Date {
 
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/Thread.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/Thread.php
index 8d28815..3581e32 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/Thread.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/sort/Thread.php
@@ -8,17 +8,14 @@
 namespace Drupal\comment\Plugin\views\sort;
 
 use Drupal\views\Plugin\views\sort\SortPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Sort handler for ordering by thread.
  *
  * @ingroup views_sort_handlers
  *
- * @Plugin(
- *   id = "comment_thread",
- *   module = "comment"
- * )
+ * @ViewsHandler("comment_thread")
  */
 class Thread extends SortPluginBase {
 
diff --git a/core/modules/field/lib/Drupal/field/Plugin/views/filter/FieldList.php b/core/modules/field/lib/Drupal/field/Plugin/views/filter/FieldList.php
index 8ef220c..3ae7f86 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/views/filter/FieldList.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/views/filter/FieldList.php
@@ -8,17 +8,14 @@
 namespace Drupal\field\Plugin\views\filter;
 
 use Drupal\views\Plugin\views\filter\ManyToOne;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter handler which uses list-fields as options.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "field_list",
- *   module = "field"
- * )
+ * @ViewsHandler("field_list")
  */
 class FieldList extends ManyToOne {
 
diff --git a/core/modules/field/lib/Drupal/field/Plugin/views/relationship/EntityReverse.php b/core/modules/field/lib/Drupal/field/Plugin/views/relationship/EntityReverse.php
index e008c88..eb1f1e1 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/views/relationship/EntityReverse.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/views/relationship/EntityReverse.php
@@ -10,7 +10,7 @@
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\Plugin\views\relationship\RelationshipPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Views;
 
 /**
@@ -18,10 +18,7 @@
  *
  * @ingroup views_relationship_handlers
  *
- * @Plugin(
- *   id = "entity_reverse",
- *   module = "field"
- * )
+ * @ViewsHandler("entity_reverse")
  */
 class EntityReverse extends RelationshipPluginBase  {
 
diff --git a/core/modules/file/lib/Drupal/file/Plugin/views/filter/Status.php b/core/modules/file/lib/Drupal/file/Plugin/views/filter/Status.php
index b6c7867..1bfeeb6 100644
--- a/core/modules/file/lib/Drupal/file/Plugin/views/filter/Status.php
+++ b/core/modules/file/lib/Drupal/file/Plugin/views/filter/Status.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\file\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\filter\InOperator;
 
 /**
@@ -15,10 +15,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "file_status",
- *   module = "file"
- * )
+ * @ViewsHandler("file_status")
  */
 class Status extends InOperator {
 
diff --git a/core/modules/history/lib/Drupal/history/Plugin/views/filter/HistoryUserTimestamp.php b/core/modules/history/lib/Drupal/history/Plugin/views/filter/HistoryUserTimestamp.php
index c76d375..1f1f866 100644
--- a/core/modules/history/lib/Drupal/history/Plugin/views/filter/HistoryUserTimestamp.php
+++ b/core/modules/history/lib/Drupal/history/Plugin/views/filter/HistoryUserTimestamp.php
@@ -8,7 +8,7 @@
 namespace Drupal\history\Plugin\views\filter;
 
 use Drupal\views\Plugin\views\filter\FilterPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter for new content.
@@ -18,10 +18,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "history_user_timestamp",
- *   module = "history"
- * )
+ * @ViewsHandler("history_user_timestamp")
  */
 class HistoryUserTimestamp extends FilterPluginBase {
 
diff --git a/core/modules/language/lib/Drupal/language/Plugin/views/filter/LanguageFilter.php b/core/modules/language/lib/Drupal/language/Plugin/views/filter/LanguageFilter.php
index 5a5da1b..5089e19 100644
--- a/core/modules/language/lib/Drupal/language/Plugin/views/filter/LanguageFilter.php
+++ b/core/modules/language/lib/Drupal/language/Plugin/views/filter/LanguageFilter.php
@@ -8,17 +8,14 @@
 namespace Drupal\language\Plugin\views\filter;
 
 use Drupal\views\Plugin\views\filter\InOperator;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Provides filtering by language.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "language",
- *   module = "language"
- * )
+ * @ViewsHandler("language")
  */
 class LanguageFilter extends InOperator {
 
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/area/ListingEmpty.php b/core/modules/node/lib/Drupal/node/Plugin/views/area/ListingEmpty.php
index acacb23..f508110 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/area/ListingEmpty.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/area/ListingEmpty.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\node\Plugin\views\area;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\area\AreaPluginBase;
 
 /**
@@ -15,10 +15,7 @@
  *
  * @ingroup views_area_handlers
  *
- * @Plugin(
- *   id = "node_listing_empty",
- *   module = "node"
- * )
+ * @ViewsHandler("node_listing_empty")
  */
 class ListingEmpty extends AreaPluginBase {
 
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/filter/Access.php b/core/modules/node/lib/Drupal/node/Plugin/views/filter/Access.php
index eef38a4..f0bd561 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/filter/Access.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/filter/Access.php
@@ -8,17 +8,14 @@
 namespace Drupal\node\Plugin\views\filter;
 
 use Drupal\views\Plugin\views\filter\FilterPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter by node_access records.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "node_access",
- *   module = "node"
- * )
+ * @ViewsHandler("node_access")
  */
 class Access extends FilterPluginBase {
 
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/filter/Status.php b/core/modules/node/lib/Drupal/node/Plugin/views/filter/Status.php
index 6e284e0..43a4f68 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/filter/Status.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/filter/Status.php
@@ -8,17 +8,14 @@
 namespace Drupal\node\Plugin\views\filter;
 
 use Drupal\views\Plugin\views\filter\FilterPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter by published status.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "node_status",
- *   module = "node"
- * )
+ * @ViewsHandler("node_status")
  */
 class Status extends FilterPluginBase {
 
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/filter/UidRevision.php b/core/modules/node/lib/Drupal/node/Plugin/views/filter/UidRevision.php
index 8a4cb5f..249230c7 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/filter/UidRevision.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/filter/UidRevision.php
@@ -8,17 +8,14 @@
 namespace Drupal\node\Plugin\views\filter;
 
 use Drupal\user\Plugin\views\filter\Name;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter handler to check for revisions a certain user has created.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "node_uid_revision",
- *   module = "node"
- * )
+ * @ViewsHandler("node_uid_revision")
  */
 class UidRevision extends Name {
 
diff --git a/core/modules/search/lib/Drupal/search/Plugin/views/filter/Search.php b/core/modules/search/lib/Drupal/search/Plugin/views/filter/Search.php
index 3c961b6..d3063d2 100644
--- a/core/modules/search/lib/Drupal/search/Plugin/views/filter/Search.php
+++ b/core/modules/search/lib/Drupal/search/Plugin/views/filter/Search.php
@@ -9,17 +9,14 @@
 
 use Drupal\search\SearchQuery;
 use Drupal\views\Plugin\views\filter\FilterPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Field handler to provide simple renderer that allows linking to a node.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "search",
- *   module = "search"
- * )
+ * @ViewsHandler("search")
  */
 class Search extends FilterPluginBase {
 
diff --git a/core/modules/search/lib/Drupal/search/Plugin/views/sort/Score.php b/core/modules/search/lib/Drupal/search/Plugin/views/sort/Score.php
index 7ce047e..3717cf9 100644
--- a/core/modules/search/lib/Drupal/search/Plugin/views/sort/Score.php
+++ b/core/modules/search/lib/Drupal/search/Plugin/views/sort/Score.php
@@ -8,17 +8,14 @@
 namespace Drupal\search\Plugin\views\sort;
 
 use Drupal\views\Plugin\views\sort\SortPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Field handler to provide simple renderer that allows linking to a node.
  *
  * @ingroup views_sort_handlers
  *
- * @Plugin(
- *   id = "search_score",
- *   module = "search"
- * )
+ * @ViewsHandler("search_score")
  */
 class Score extends SortPluginBase {
 
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/filter/TaxonomyIndexTid.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/filter/TaxonomyIndexTid.php
index 856254a..b228aec 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/filter/TaxonomyIndexTid.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/filter/TaxonomyIndexTid.php
@@ -9,7 +9,7 @@
 
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\filter\ManyToOne;
 
 /**
@@ -17,10 +17,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "taxonomy_index_tid",
- *   module = "taxonomy"
- * )
+ * @ViewsHandler("taxonomy_index_tid")
  */
 class TaxonomyIndexTid extends ManyToOne {
 
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/filter/TaxonomyIndexTidDepth.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/filter/TaxonomyIndexTidDepth.php
index 6329e85..f0953ca 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/filter/TaxonomyIndexTidDepth.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/filter/TaxonomyIndexTidDepth.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\taxonomy\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter handler for taxonomy terms with depth.
@@ -17,10 +17,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "taxonomy_index_tid_depth",
- *   module = "taxonomy"
- * )
+ * @ViewsHandler("taxonomy_index_tid_depth")
  */
 class TaxonomyIndexTidDepth extends TaxonomyIndexTid {
 
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/relationship/NodeTermData.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/relationship/NodeTermData.php
index 91d78ea..8fc2b48 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/relationship/NodeTermData.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/views/relationship/NodeTermData.php
@@ -10,17 +10,14 @@
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\Plugin\views\relationship\RelationshipPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Relationship handler to return the taxonomy terms of nodes.
  *
  * @ingroup views_relationship_handlers
  *
- * @Plugin(
- *   id = "node_term_data",
- *   module = "taxonomy"
- * )
+ * @ViewsHandler("node_term_data")
  */
 class NodeTermData extends RelationshipPluginBase  {
 
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/filter/Current.php b/core/modules/user/lib/Drupal/user/Plugin/views/filter/Current.php
index 322308f..6a48f48 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/filter/Current.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/filter/Current.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\user\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\filter\BooleanOperator;
@@ -17,10 +17,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "user_current",
- *   module = "user"
- * )
+ * @ViewsHandler("user_current")
  */
 class Current extends BooleanOperator {
 
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/filter/Name.php b/core/modules/user/lib/Drupal/user/Plugin/views/filter/Name.php
index 9d95b65..2d27f4d 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/filter/Name.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/filter/Name.php
@@ -8,17 +8,14 @@
 namespace Drupal\user\Plugin\views\filter;
 
 use Drupal\views\Plugin\views\filter\InOperator;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter handler for usernames.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "user_name",
- *   module = "user"
- * )
+ * @ViewsHandler("user_name")
  */
 class Name extends InOperator {
 
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/filter/Permissions.php b/core/modules/user/lib/Drupal/user/Plugin/views/filter/Permissions.php
index cf71ac2..b3952ec 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/filter/Permissions.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/filter/Permissions.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\user\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\filter\ManyToOne;
 
 /**
@@ -15,10 +15,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "user_permissions",
- *   module = "user"
- * )
+ * @ViewsHandler("user_permissions")
  */
 class Permissions extends ManyToOne {
 
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/filter/Roles.php b/core/modules/user/lib/Drupal/user/Plugin/views/filter/Roles.php
index a4c2dda..c8ef3ac 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/filter/Roles.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/filter/Roles.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\user\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\filter\ManyToOne;
 
 /**
@@ -15,10 +15,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "user_roles",
- *   module = "user"
- * )
+ * @ViewsHandler("user_roles")
  */
 class Roles extends ManyToOne {
 
diff --git a/core/modules/views/lib/Drupal/views/Annotation/ViewsHandler.php b/core/modules/views/lib/Drupal/views/Annotation/ViewsHandler.php
new file mode 100644
index 0000000..50b18dc
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Annotation/ViewsHandler.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Annotation\ViewsHandler.
+ */
+
+namespace Drupal\views\Annotation;
+
+use Drupal\Component\Annotation\AnnotationInterface;
+
+/**
+ * Defines a Views handler annotation object.
+ *
+ * @Annotation
+ */
+class ViewsHandler implements AnnotationInterface {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $value;
+
+  /**
+   * Implements \Drupal\Core\Annotation\AnnotationInterface::get().
+   */
+  public function get() {
+    return array(
+      'id' => $this->value,
+    );
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Discovery/ViewsHandlerDiscovery.php b/core/modules/views/lib/Drupal/views/Plugin/Discovery/ViewsHandlerDiscovery.php
new file mode 100644
index 0000000..aad9be0
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/Discovery/ViewsHandlerDiscovery.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\Discovery\ViewsHandlerDiscovery.
+ */
+
+namespace Drupal\views\Plugin\Discovery;
+
+use Drupal\Component\Plugin\Discovery\AnnotatedClassDiscovery;
+
+/**
+ * Defines a discovery mechanism to find Views handlers in PSR-0 namespaces.
+ */
+class ViewsHandlerDiscovery extends AnnotatedClassDiscovery {
+
+  /**
+   * The type of handler being discovered.
+   *
+   * @var string
+   */
+  protected $type;
+
+  /**
+   * Constructs a ViewsHandlerDiscovery object.
+   *
+   * @param string $type
+   *   The plugin type, for example filter.
+   * @param array $root_namespaces
+   *   (optional) Array of root paths keyed by the corresponding namespace to
+   *   look for plugin implementations, \Plugin\views\$type will be appended to
+   *   each namespace.
+   */
+  function __construct($type, array $root_namespaces = array()) {
+    $this->type = $type;
+    $annotation_namespaces = array(
+      'Drupal\views\Annotation' => DRUPAL_ROOT . '/core/modules/views/lib',
+    );
+    $plugin_namespaces = array();
+    foreach ($root_namespaces as $namespace => $dir) {
+      $plugin_namespaces["$namespace\\Plugin\\views\\{$type}"] = array($dir);
+    }
+    parent::__construct($plugin_namespaces, $annotation_namespaces, 'Drupal\views\Annotation\ViewsHandler');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDefinitions() {
+    // Add the plugin_type to the definition.
+    $definitions = parent::getDefinitions();
+    array_walk($definitions, function (&$definition, $key, $type) {
+      $definition['plugin_type'] = $type;
+    }, $this->type);
+    return $definitions;
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/ViewsHandlerManager.php b/core/modules/views/lib/Drupal/views/Plugin/ViewsHandlerManager.php
new file mode 100644
index 0000000..b515452
--- /dev/null
+++ b/core/modules/views/lib/Drupal/views/Plugin/ViewsHandlerManager.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Plugin\ViewsHandlerManager.
+ */
+
+namespace Drupal\views\Plugin;
+
+use Drupal\Component\Plugin\PluginManagerBase;
+use Drupal\Component\Plugin\Factory\DefaultFactory;
+use Drupal\Core\Plugin\Discovery\CacheDecorator;
+use Drupal\views\Plugin\Discovery\ViewsHandlerDiscovery;
+
+/**
+ * Plugin type manager for all views handlers.
+ */
+class ViewsHandlerManager extends PluginManagerBase {
+
+  /**
+   * Constructs a ViewsHandlerManager object.
+   *
+   * @param string $type
+   *   The plugin type, for example filter.
+   * @param array $namespaces
+   *   (optional) An array of paths keyed by it's corresponding namespaces.
+   */
+  public function __construct($type, array $namespaces = array()) {
+    $this->discovery = new ViewsHandlerDiscovery($type, $namespaces);
+    $this->discovery = new CacheDecorator($this->discovery, "views:$type", 'views_info');
+
+    $this->factory = new DefaultFactory($this->discovery);
+  }
+
+}
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/area/Broken.php b/core/modules/views/lib/Drupal/views/Plugin/views/area/Broken.php
index 39fc9d0..eebc4bc 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/area/Broken.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/area/Broken.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\area;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * A special handler to take the place of missing or broken handlers.
  *
  * @ingroup views_area_handlers
  *
- * @Plugin(
- *   id = "broken"
- * )
+ * @ViewsHandler("broken")
  */
 class Broken extends AreaPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/area/Entity.php b/core/modules/views/lib/Drupal/views/Plugin/views/area/Entity.php
index 200cecb..ceb2295 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/area/Entity.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/area/Entity.php
@@ -9,7 +9,7 @@
 
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\ViewExecutable;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\area\AreaPluginBase;
 
 /**
@@ -17,10 +17,7 @@
  *
  * @ingroup views_area_handlers
  *
- * @Plugin(
- *   id = "entity",
- *   module = "views"
- * )
+ * @ViewsHandler("entity")
  */
 class Entity extends AreaPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/area/Result.php b/core/modules/views/lib/Drupal/views/Plugin/views/area/Result.php
index d619650..7277a33 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/area/Result.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/area/Result.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\area;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Views area handler to display some configurable result summary.
  *
  * @ingroup views_area_handlers
  *
- * @Plugin(
- *   id = "result"
- * )
+ * @ViewsHandler("result")
  */
 class Result extends AreaPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/area/Text.php b/core/modules/views/lib/Drupal/views/Plugin/views/area/Text.php
index 7495933..c38a4a3 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/area/Text.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/area/Text.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\area;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Views area text handler.
  *
  * @ingroup views_area_handlers
  *
- * @Plugin(
- *   id = "text"
- * )
+ * @ViewsHandler("text")
  */
 class Text extends AreaPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/area/TextCustom.php b/core/modules/views/lib/Drupal/views/Plugin/views/area/TextCustom.php
index 754dd4f..51f0ca5 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/area/TextCustom.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/area/TextCustom.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\area;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Views area text handler.
  *
  * @ingroup views_area_handlers
  *
- * @Plugin(
- *   id = "text_custom"
- * )
+ * @ViewsHandler("text_custom")
  */
 class TextCustom extends AreaPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/area/Title.php b/core/modules/views/lib/Drupal/views/Plugin/views/area/Title.php
index 56950a6..797e11f 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/area/Title.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/area/Title.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\area;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Views area title override handler.
  *
  * @ingroup views_area_handlers
  *
- * @Plugin(
- *   id = "title"
- * )
+ * @ViewsHandler("title")
  */
 class Title extends AreaPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/area/View.php b/core/modules/views/lib/Drupal/views/Plugin/views/area/View.php
index 7d5e994..d509fe8 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/area/View.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/area/View.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\area;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Views area handlers. Insert a view inside of an area.
  *
  * @ingroup views_area_handlers
  *
- * @Plugin(
- *   id = "view"
- * )
+ * @ViewsHandler("view")
  */
 class View extends AreaPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/BooleanOperator.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/BooleanOperator.php
index 20ee145..bdfab44 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/BooleanOperator.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/BooleanOperator.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\ViewExecutable;
 
@@ -27,9 +27,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "boolean"
- * )
+ * @ViewsHandler("boolean")
  */
 class BooleanOperator extends FilterPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/BooleanOperatorString.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/BooleanOperatorString.php
index 2e6f467..6bbffe6 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/BooleanOperatorString.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/BooleanOperatorString.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Simple filter to handle matching of boolean values.
@@ -20,9 +20,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "boolean_string"
- * )
+ * @ViewsHandler("boolean_string")
  */
 class BooleanOperatorString extends BooleanOperator {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Broken.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Broken.php
index 2ece6ca..8e7390a 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Broken.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Broken.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\ViewExecutable;
 
@@ -16,9 +16,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "broken"
- * )
+ * @ViewsHandler("broken")
  */
 class Broken extends FilterPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Bundle.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Bundle.php
index 0fbe8d2..0ceca84 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Bundle.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Bundle.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 
@@ -16,9 +16,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "bundle"
- * )
+ * @ViewsHandler("bundle")
  */
 class Bundle extends InOperator {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Combine.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Combine.php
index cbb08b9..62de287 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Combine.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Combine.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter handler which allows to search on multiple fields.
  *
  * @ingroup views_field_handlers
  *
- * @Plugin(
- *   id = "combine"
- * )
+ * @ViewsHandler("combine")
  */
 class Combine extends String {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Date.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Date.php
index ae01e3b..4b18fc6 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Date.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Date.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Filter to handle dates stored as a timestamp.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "date"
- * )
+ * @ViewsHandler("date")
  */
 class Date extends Numeric {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Equality.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Equality.php
index 541fca4..afe1ea4 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Equality.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Equality.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Simple filter to handle equal to / not equal to filters
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "equality"
- * )
+ * @ViewsHandler("equality")
  */
 class Equality extends FilterPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/GroupByNumeric.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/GroupByNumeric.php
index 559b183..9c02d68 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/GroupByNumeric.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/GroupByNumeric.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Simple filter to handle greater than/less than filters
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "groupby_numeric"
- * )
+ * @ViewsHandler("groupby_numeric")
  */
 class GroupByNumeric extends Numeric {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/InOperator.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/InOperator.php
index 5508f66..fa02a26 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/InOperator.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/InOperator.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\ViewExecutable;
 
@@ -20,9 +20,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "in_operator"
- * )
+ * @ViewsHandler("in_operator")
  */
 class InOperator extends FilterPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/ManyToOne.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/ManyToOne.php
index c8b0111..323d303 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/ManyToOne.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/ManyToOne.php
@@ -10,7 +10,7 @@
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\ManyToOneHelper;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Complex filter to handle filtering for many to one relationships,
@@ -22,9 +22,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "many_to_one"
- * )
+ * @ViewsHandler("many_to_one")
  */
 class ManyToOne extends InOperator {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Numeric.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Numeric.php
index e6b27cf..2f93a43 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Numeric.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Numeric.php
@@ -8,16 +8,14 @@
 namespace Drupal\views\Plugin\views\filter;
 
 use Drupal\Core\Database\Database;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Simple filter to handle greater than/less than filters
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "numeric"
- * )
+ * @ViewsHandler("numeric")
  */
 class Numeric extends FilterPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Standard.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Standard.php
index 4baee72..0d0a110 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/Standard.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/Standard.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Default implementation of the base filter plugin.
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "standard"
- * )
+ * @ViewsHandler("standard")
  */
 class Standard extends FilterPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/filter/String.php b/core/modules/views/lib/Drupal/views/Plugin/views/filter/String.php
index be3e132..d761e33 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/filter/String.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/filter/String.php
@@ -8,7 +8,7 @@
 namespace Drupal\views\Plugin\views\filter;
 
 use Drupal\Core\Database\Database;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Basic textfield filter to handle string filtering commands
@@ -16,9 +16,7 @@
  *
  * @ingroup views_filter_handlers
  *
- * @Plugin(
- *   id = "string"
- * )
+ * @ViewsHandler("string")
  */
 class String extends FilterPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/relationship/Broken.php b/core/modules/views/lib/Drupal/views/Plugin/views/relationship/Broken.php
index afddb4a..329aec5 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/relationship/Broken.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/relationship/Broken.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\relationship;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * A special handler to take the place of missing or broken handlers.
  *
  * @ingroup views_relationship_handlers
  *
- * @Plugin(
- *   id = "broken"
- * )
+ * @ViewsHandler("broken")
  */
 class Broken extends RelationshipPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/relationship/GroupwiseMax.php b/core/modules/views/lib/Drupal/views/Plugin/views/relationship/GroupwiseMax.php
index 87376ee..87d06d3 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/relationship/GroupwiseMax.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/relationship/GroupwiseMax.php
@@ -9,7 +9,7 @@
 
 use Drupal\Core\Database\Query\AlterableInterface;
 use Drupal\views\ViewExecutable;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Views;
 
 /**
@@ -60,9 +60,7 @@
  *
  * @ingroup views_relationship_handlers
  *
- * @Plugin(
- *   id = "groupwise_max"
- * )
+ * @ViewsHandler("groupwise_max")
  */
 class GroupwiseMax extends RelationshipPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/relationship/Standard.php b/core/modules/views/lib/Drupal/views/Plugin/views/relationship/Standard.php
index 9cd47e5..00ac283 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/relationship/Standard.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/relationship/Standard.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\relationship;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Default implementation of the base relationship plugin.
  *
  * @ingroup views_relationship_handlers
  *
- * @Plugin(
- *   id = "standard"
- * )
+ * @ViewsHandler("standard")
  */
 class Standard extends RelationshipPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/sort/Broken.php b/core/modules/views/lib/Drupal/views/Plugin/views/sort/Broken.php
index 25ab695..1cc0d5d 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/sort/Broken.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/sort/Broken.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\sort;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * A special handler to take the place of missing or broken handlers.
  *
  * @ingroup views_sort_handlers
  *
- * @Plugin(
- *   id = "broken"
- * )
+ * @ViewsHandler("broken")
  */
 class Broken extends SortPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/sort/Date.php b/core/modules/views/lib/Drupal/views/Plugin/views/sort/Date.php
index 6ccd5fe..11ddeb0 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/sort/Date.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/sort/Date.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\sort;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Basic sort handler for dates.
@@ -15,9 +15,7 @@
  * This handler enables granularity, which is the ability to make dates
  * equivalent based upon nearness.
  *
- * @Plugin(
- *   id = "date"
- * )
+ * @ViewsHandler("date")
  */
 class Date extends SortPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/sort/GroupByNumeric.php b/core/modules/views/lib/Drupal/views/Plugin/views/sort/GroupByNumeric.php
index f0989f5..29df5df 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/sort/GroupByNumeric.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/sort/GroupByNumeric.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\sort;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\ViewExecutable;
 
 /**
  * Handler for GROUP BY on simple numeric fields.
  *
- * @Plugin(
- *   id = "groupby_numeric"
- * )
+ * @ViewsHandler("groupby_numeric")
  */
 class GroupByNumeric extends SortPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/sort/MenuHierarchy.php b/core/modules/views/lib/Drupal/views/Plugin/views/sort/MenuHierarchy.php
index 756b960..f426cc7 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/sort/MenuHierarchy.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/sort/MenuHierarchy.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views\Plugin\views\sort;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 use Drupal\views\Views;
 
 
@@ -20,9 +20,7 @@
  *
  * This is only really useful for the {menu_links} table.
  *
- * @Plugin(
- *   id = "menu_hierarchy"
- * )
+ * @ViewsHandler("menu_hierarchy")
  */
 class MenuHierarchy extends SortPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/sort/Random.php b/core/modules/views/lib/Drupal/views/Plugin/views/sort/Random.php
index 66792b5..a4998a7 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/sort/Random.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/sort/Random.php
@@ -7,14 +7,12 @@
 
 namespace Drupal\views\Plugin\views\sort;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Handle a random sort.
  *
- * @Plugin(
- *   id = "random"
- * )
+ * @ViewsHandler("random")
  */
 class Random extends SortPluginBase {
 
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/sort/Standard.php b/core/modules/views/lib/Drupal/views/Plugin/views/sort/Standard.php
index 038d47c..6e928ea 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/sort/Standard.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/sort/Standard.php
@@ -7,16 +7,14 @@
 
 namespace Drupal\views\Plugin\views\sort;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\views\Annotation\ViewsHandler;
 
 /**
  * Default implementation of the base sort plugin.
  *
  * @ingroup views_sort_handlers
  *
- * @Plugin(
- *   id = "standard"
- * )
+ * @ViewsHandler("standard")
  */
 class Standard extends SortPluginBase {
 
diff --git a/core/modules/views/views.services.yml b/core/modules/views/views.services.yml
index 633db50..f6be9bb 100644
--- a/core/modules/views/views.services.yml
+++ b/core/modules/views/views.services.yml
@@ -3,7 +3,7 @@ services:
     class: Drupal\views\Plugin\ViewsPluginManager
     arguments: [access, '%container.namespaces%']
   plugin.manager.views.area:
-    class: Drupal\views\Plugin\ViewsPluginManager
+    class: Drupal\views\Plugin\ViewsHandlerManager
     arguments: [area, '%container.namespaces%']
   plugin.manager.views.argument:
     class: Drupal\views\Plugin\ViewsPluginManager
@@ -30,7 +30,7 @@ services:
     class: Drupal\views\Plugin\ViewsPluginManager
     arguments: [field, '%container.namespaces%']
   plugin.manager.views.filter:
-    class: Drupal\views\Plugin\ViewsPluginManager
+    class: Drupal\views\Plugin\ViewsHandlerManager
     arguments: [filter, '%container.namespaces%']
   plugin.manager.views.join:
     class: Drupal\views\Plugin\ViewsPluginManager
@@ -42,13 +42,13 @@ services:
     class: Drupal\views\Plugin\ViewsPluginManager
     arguments: [query, '%container.namespaces%']
   plugin.manager.views.relationship:
-    class: Drupal\views\Plugin\ViewsPluginManager
+    class: Drupal\views\Plugin\ViewsHandlerManager
     arguments: [relationship, '%container.namespaces%']
   plugin.manager.views.row:
     class: Drupal\views\Plugin\ViewsPluginManager
     arguments: [row, '%container.namespaces%']
   plugin.manager.views.sort:
-    class: Drupal\views\Plugin\ViewsPluginManager
+    class: Drupal\views\Plugin\ViewsHandlerManager
     arguments: [sort, '%container.namespaces%']
   plugin.manager.views.style:
     class: Drupal\views\Plugin\ViewsPluginManager
