diff --git a/lib/Drupal/views/Plugins/views/filter/BooleanOperator.php b/lib/Drupal/views/Plugins/views/filter/BooleanOperator.php
index c495b1747e5ea8a1d2de447f61ede8529848a094..8aa665bee50969e9c06a6ffe01d33ed2f831a6ab 100644
--- a/lib/Drupal/views/Plugins/views/filter/BooleanOperator.php
+++ b/lib/Drupal/views/Plugins/views/filter/BooleanOperator.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\views\Plugins\views\filter;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Simple filter to handle matching of boolean values
  *
@@ -23,6 +25,12 @@
  *
  * @ingroup views_filter_handlers
  */
+
+/**
+ * @plugin(
+ *   plugin_id = "boolean"
+ * )
+ */
 class BooleanOperator extends FilterPluginBase {
 
   // exposed filter options
diff --git a/lib/Drupal/views/Plugins/views/filter/BooleanOperatorString.php b/lib/Drupal/views/Plugins/views/filter/BooleanOperatorString.php
index 910dbfca47f170d6cbe1723c1341d0b17bd122c5..1d6a7ed9eba546c5c74716bc77f4c1e2133b6f84 100644
--- a/lib/Drupal/views/Plugins/views/filter/BooleanOperatorString.php
+++ b/lib/Drupal/views/Plugins/views/filter/BooleanOperatorString.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\views\Plugins\views\filter;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Simple filter to handle matching of boolean values.
  *
@@ -18,6 +20,12 @@
  *
  * @ingroup views_filter_handlers
  */
+
+/**
+ * @plugin(
+ *   plugid_id = "boolean_string"
+ * )
+ */
 class BooleanOperatorString extends BooleanOperator {
   function query() {
     $this->ensure_my_table();
diff --git a/lib/Drupal/views/Plugins/views/filter/Combine.php b/lib/Drupal/views/Plugins/views/filter/Combine.php
index 149512764d616926cbe652b9f1f1070d0d07502e..48218e60d017a06880047d9e8ffd37936cdc3df0 100644
--- a/lib/Drupal/views/Plugins/views/filter/Combine.php
+++ b/lib/Drupal/views/Plugins/views/filter/Combine.php
@@ -7,11 +7,19 @@
 
 namespace Drupal\views\Plugins\views\filter;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Filter handler which allows to search on multiple fields.
  *
  * @ingroup views_field_handlers
  */
+
+/**
+ * @plugin(
+ *   plugin_id = "combine"
+ * )
+ */
 class Combine extends String {
   /**
    * @var views_plugin_query_default
diff --git a/lib/Drupal/views/Plugins/views/filter/Equality.php b/lib/Drupal/views/Plugins/views/filter/Equality.php
index 7e46c096851c7a87d768fe071d2d2fe528bbc9e7..2602ad18ca6ad6413f2b39fb5f2c1bdb3275ca0f 100644
--- a/lib/Drupal/views/Plugins/views/filter/Equality.php
+++ b/lib/Drupal/views/Plugins/views/filter/Equality.php
@@ -7,11 +7,19 @@
 
 namespace Drupal\views\Plugins\views\filter;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Simple filter to handle equal to / not equal to filters
  *
  * @ingroup views_filter_handlers
  */
+
+/**
+ * @plugin(
+ *   plugin_id = "equality"
+ * )
+ */
 class Equality extends FilterPluginBase {
   // exposed filter options
   var $always_multiple = TRUE;
diff --git a/lib/Drupal/views/Plugins/views/filter/GroupByNumeric.php b/lib/Drupal/views/Plugins/views/filter/GroupByNumeric.php
index c9a75211679b1510d2aec7ffc34159a8bf56bba5..a47b83f33d571eb80d647338db58f3a3dcd34d24 100644
--- a/lib/Drupal/views/Plugins/views/filter/GroupByNumeric.php
+++ b/lib/Drupal/views/Plugins/views/filter/GroupByNumeric.php
@@ -7,11 +7,19 @@
 
 namespace Drupal\views\Plugins\views\filter;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Simple filter to handle greater than/less than filters
  *
  * @ingroup views_filter_handlers
  */
+
+/**
+ * @plugin(
+ *   plugin_id = "groupby_numeric"
+ * )
+ */
 class GroupByNumeric extends Numeric {
   function query() {
     $this->ensure_my_table();
diff --git a/lib/Drupal/views/Plugins/views/filter/InOperator.php b/lib/Drupal/views/Plugins/views/filter/InOperator.php
index d060d9f35b7b3da1c2fd7533693ee2105579f038..fa1510516413d3ec4e334cb09d22b14a40d49f0d 100644
--- a/lib/Drupal/views/Plugins/views/filter/InOperator.php
+++ b/lib/Drupal/views/Plugins/views/filter/InOperator.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\views\Plugins\views\filter;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Simple filter to handle matching of multiple options selectable via checkboxes
  *
@@ -16,6 +18,12 @@
  *
  * @ingroup views_filter_handlers
  */
+
+/**
+ * @plugin(
+ *   plugin_id = "in_operator"
+ * )
+ */
 class InOperator extends FilterPluginBase {
   var $value_form_type = 'checkboxes';
 
diff --git a/lib/Drupal/views/Plugins/views/filter/ManyToOne.php b/lib/Drupal/views/Plugins/views/filter/ManyToOne.php
index 095c2adcb2d57eb582290263a25e8b8a001150e8..793c3839edb5d85d1fa7c7e413d497de43875929 100644
--- a/lib/Drupal/views/Plugins/views/filter/ManyToOne.php
+++ b/lib/Drupal/views/Plugins/views/filter/ManyToOne.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\views\Plugins\views\filter;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Complex filter to handle filtering for many to one relationships,
  * such as terms (many terms per node) or roles (many roles per user).
@@ -17,6 +19,12 @@
  *
  * @ingroup views_filter_handlers
  */
+
+/**
+ * @plugin(
+ *   plugin_id = "many_to_one"
+ * )
+ */
 class ManyToOne extends InOperator {
   /**
    * @var views_many_to_one_helper
diff --git a/lib/Drupal/views/Plugins/views/query/Sql.php b/lib/Drupal/views/Plugins/views/query/Sql.php
index 4595183bf951dc91c29ece0ff9d22ec6363d6552..3f3d501af635d71d9c353784b73b51232a5234ec 100644
--- a/lib/Drupal/views/Plugins/views/query/Sql.php
+++ b/lib/Drupal/views/Plugins/views/query/Sql.php
@@ -1532,7 +1532,7 @@ function get_aggregation_info() {
         'handler' => array(
           'argument' => 'views_handler_argument_group_by_numeric',
           'field' => 'views_handler_field_numeric',
-          'filter' => 'views_handler_filter_group_by_numeric',
+          'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
       ),
@@ -1542,7 +1542,7 @@ function get_aggregation_info() {
         'handler' => array(
           'argument' => 'views_handler_argument_group_by_numeric',
           'field' => 'views_handler_field_numeric',
-          'filter' => 'views_handler_filter_group_by_numeric',
+          'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
       ),
@@ -1551,7 +1551,7 @@ function get_aggregation_info() {
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
           'argument' => 'views_handler_argument_group_by_numeric',
-          'filter' => 'views_handler_filter_group_by_numeric',
+          'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
       ),
@@ -1560,7 +1560,7 @@ function get_aggregation_info() {
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
           'argument' => 'views_handler_argument_group_by_numeric',
-          'filter' => 'views_handler_filter_group_by_numeric',
+          'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
       ),
@@ -1569,7 +1569,7 @@ function get_aggregation_info() {
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
           'argument' => 'views_handler_argument_group_by_numeric',
-          'filter' => 'views_handler_filter_group_by_numeric',
+          'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
       ),
@@ -1578,7 +1578,7 @@ function get_aggregation_info() {
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
           'argument' => 'views_handler_argument_group_by_numeric',
-          'filter' => 'views_handler_filter_group_by_numeric',
+          'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
       ),
@@ -1587,7 +1587,7 @@ function get_aggregation_info() {
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
           'argument' => 'views_handler_argument_group_by_numeric',
-          'filter' => 'views_handler_filter_group_by_numeric',
+          'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
       )
diff --git a/modules/comment.views.inc b/modules/comment.views.inc
index b6dec9876419d3e508b952f046f79655bafda13f..c16f1cc7230124cceaadaacf5c0cab27bf99a811 100644
--- a/modules/comment.views.inc
+++ b/modules/comment.views.inc
@@ -279,7 +279,7 @@ function comment_views_data() {
       ),
     ),
     'filter' => array(
-      'handler' => 'views_handler_filter_boolean_operator',
+      'plugin_id' => 'boolean',
       'label' => t('Approved comment'),
       'type' => 'yes-no',
     ),
diff --git a/modules/locale.views.inc b/modules/locale.views.inc
index e27b8df5a56e2753bf55c5a56a8662d225a23f22..a12a4863dfd5e9e7ae5ca5550b4a8a224f626a17 100644
--- a/modules/locale.views.inc
+++ b/modules/locale.views.inc
@@ -184,7 +184,7 @@ function locale_views_data() {
       'click sortable' => TRUE,
     ),
     'filter' => array(
-      'handler' => 'views_handler_filter_boolean_operator',
+      'plugin_id' => 'boolean',
       'label' => t('Plural'),
       'type' => 'yes-no',
     ),
diff --git a/modules/node.views.inc b/modules/node.views.inc
index 09703ea81391e6016337828d165e8fdc5dd4deae..d83a0859fabfc57fcec7dab07597965ea5e7b0db 100644
--- a/modules/node.views.inc
+++ b/modules/node.views.inc
@@ -105,7 +105,7 @@ function node_views_data() {
       'plugin_id' => 'date'
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Date',
+      'plugin_id' => 'date',
     ),
   );
 
@@ -121,7 +121,7 @@ function node_views_data() {
       'plugin_id' => 'date'
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Date',
+      'plugin_id' => 'date',
     ),
   );
 
@@ -156,7 +156,7 @@ function node_views_data() {
       ),
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\BooleanOperator',
+      'plugin_id' => 'boolean',
       'label' => t('Published'),
       'type' => 'yes-no',
       'use equal' => TRUE, // Use status = 1 instead of status <> 0 in WHERE statment
@@ -189,7 +189,7 @@ function node_views_data() {
       ),
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\BooleanOperator',
+      'plugin_id' => 'boolean',
       'label' => t('Promoted to front page'),
       'type' => 'yes-no',
     ),
@@ -211,7 +211,7 @@ function node_views_data() {
       ),
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\BooleanOperator',
+      'plugin_id' => 'boolean',
       'label' => t('Sticky'),
       'type' => 'yes-no',
     ),
@@ -535,7 +535,7 @@ function node_views_data() {
       'plugin_id' => 'date'
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Date',
+      'plugin_id' => 'date',
     ),
   );
 
diff --git a/modules/poll.views.inc b/modules/poll.views.inc
index d3fd76adca891e9603c3d5c45c57aabd84f4c442..4ec5bb8e2ae2682d81f8972aac5de7bf9808c3bd 100644
--- a/modules/poll.views.inc
+++ b/modules/poll.views.inc
@@ -34,7 +34,7 @@ function poll_views_data() {
       'click sortable' => TRUE,
     ),
     'filter' => array(
-      'handler' => 'views_handler_filter_boolean_operator',
+      'plugin_id' => 'boolean',
       'label' => t('Active'),
       'type' => 'yes-no',
     ),
diff --git a/modules/search.views.inc b/modules/search.views.inc
index ffde9af21b6bdb63eec004ce03ab6f4ac457b263..32b7549a7e579913138a57d0fbbc1432b9509d5f 100644
--- a/modules/search.views.inc
+++ b/modules/search.views.inc
@@ -89,7 +89,7 @@ function search_views_data() {
       'handler' => 'views_handler_argument_node_nid',
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Equality',
+      'plugin_id' => 'equality',
     ),
   );
 
@@ -107,7 +107,7 @@ function search_views_data() {
       'handler' => 'views_handler_argument_node_nid',
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Equality',
+      'plugin_id' => 'equality',
     ),
   );
 
diff --git a/modules/statistics.views.inc b/modules/statistics.views.inc
index 1b9cf2b006f92c86a9152ebba63961a7ec16d423..8679efba98968a97c8362ebf1e12508486610220 100644
--- a/modules/statistics.views.inc
+++ b/modules/statistics.views.inc
@@ -70,7 +70,7 @@ function statistics_views_data() {
       'click sortable' => TRUE,
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Date',
+      'plugin_id' => 'date',
     ),
     'sort' => array(
       'plugin_id' => 'standard',
@@ -254,7 +254,7 @@ function statistics_views_data() {
       'plugin_id' => 'standard',
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Date',
+      'plugin_id' => 'date',
     ),
   );
 
diff --git a/modules/system.views.inc b/modules/system.views.inc
index 4626fa68a793a97a11238ff67fe9c0a6b093610a..f70a77fd2be4af580c32e4204aad0b7913780043 100644
--- a/modules/system.views.inc
+++ b/modules/system.views.inc
@@ -163,7 +163,7 @@ function system_views_data() {
       'plugin_id' => 'date'
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Date',
+      'plugin_id' => 'date',
     ),
   );
 
@@ -535,7 +535,7 @@ function system_views_data() {
       'name field' => 'status', // the field to display in the summary.
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\BooleanOperator',
+      'plugin_id' => 'boolean',
     ),
     'sort' => array(
       'plugin_id' => 'standard',
diff --git a/modules/translation.views.inc b/modules/translation.views.inc
index cb90205bf2748efa7576f43d47f38c8c3006f7f6..116174384bb70a37be3005c2395c4286f696d5ea 100644
--- a/modules/translation.views.inc
+++ b/modules/translation.views.inc
@@ -98,7 +98,7 @@ function translation_views_data_alter(&$data) {
       'click sortable' => TRUE,
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\BooleanOperator',
+      'plugin_id' => 'boolean',
       'label' => t('Outdated'),
       'type' => 'yes-no',
     ),
diff --git a/modules/user.views.inc b/modules/user.views.inc
index 54ad20522b3fd0b141c8788f98a1c9946dfdba1a..652df3ab5e0052cfc030af5e95ffe13e405b2be4 100644
--- a/modules/user.views.inc
+++ b/modules/user.views.inc
@@ -183,7 +183,7 @@ function user_views_data() {
       'plugin_id' => 'standard',
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\BooleanOperator',
+      'plugin_id' => 'boolean',
       'label' => t('Has Avatar'),
       'type' => 'yes-no',
     ),
@@ -210,7 +210,7 @@ function user_views_data() {
       'plugin_id' => 'date'
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Date',
+      'plugin_id' => 'date',
     ),
   );
 
@@ -281,7 +281,7 @@ function user_views_data() {
       'plugin_id' => 'date'
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Date',
+      'plugin_id' => 'date',
     ),
   );
 
@@ -297,7 +297,7 @@ function user_views_data() {
       'plugin_id' => 'date'
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Date',
+      'plugin_id' => 'date',
     ),
   );
 
@@ -314,7 +314,7 @@ function user_views_data() {
       ),
     ),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\BooleanOperator',
+      'plugin_id' => 'boolean',
       'label' => t('Active'),
       'type' => 'yes-no',
     ),
diff --git a/modules/views.views.inc b/modules/views.views.inc
index a474da19c503b73deb1bf87f295e1f88a05c322e..04ad7ce5e24107e4cd222b0536a8031c3cfe3ff3 100644
--- a/modules/views.views.inc
+++ b/modules/views.views.inc
@@ -95,7 +95,7 @@ function views_views_data() {
    'title' => t('Combine fields filter'),
     'help' => t('Combine two fields together and search by them.'),
     'filter' => array(
-      'handler' => 'Drupal\views\Plugins\views\filter\Combine',
+      'plugin_id' => 'combine',
     ),
   );
 
diff --git a/views.api.php b/views.api.php
index 92f138a5970d511736c356e52662295fcde5c734..6a0eef2eb958d7338a2d8af65de2e9912004486b 100644
--- a/views.api.php
+++ b/views.api.php
@@ -423,7 +423,7 @@ function hook_views_data() {
       'click sortable' => TRUE,
     ),
     'filter' => array(
-      'handler' => 'views_handler_filter_boolean_operator',
+      'plugin_id' => 'boolean',
       // Note that you can override the field-wide label:
       'label' => t('Published'),
       // This setting is used by the boolean filter handler, as possible option.