diff --git a/core/lib/Drupal/Core/Action/ActionBase.php b/core/lib/Drupal/Core/Action/ActionBase.php
index 8b6c571..11f2042 100644
--- a/core/lib/Drupal/Core/Action/ActionBase.php
+++ b/core/lib/Drupal/Core/Action/ActionBase.php
@@ -7,13 +7,13 @@
 
 namespace Drupal\Core\Action;
 
+use Drupal\Component\Plugin\PluginBase;
 use Drupal\Core\Action\ActionInterface;
-use Drupal\Core\Plugin\ContainerFactoryPluginBase;
 
 /**
  * Provides a base implementation for an Action plugin.
  */
-abstract class ActionBase extends ContainerFactoryPluginBase implements ActionInterface {
+abstract class ActionBase extends PluginBase implements ActionInterface {
 
   /**
    * {@inheritdoc}
diff --git a/core/lib/Drupal/Core/Plugin/ContainerFactoryPluginBase.php b/core/lib/Drupal/Core/Plugin/ContainerFactoryPluginBase.php
deleted file mode 100644
index f8fea75..0000000
--- a/core/lib/Drupal/Core/Plugin/ContainerFactoryPluginBase.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\Core\Plugin\ContainerFactoryPluginBase.
- */
-
-namespace Drupal\Core\Plugin;
-
-use Drupal\Component\Plugin\PluginBase;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Defines a base plugin that can pull its dependencies from the container.
- */
-abstract class ContainerFactoryPluginBase extends PluginBase implements ContainerFactoryPluginInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, array $plugin_definition) {
-    return new static($configuration, $plugin_id, $plugin_definition);
-  }
-
-}
diff --git a/core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php b/core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php
index 921b91a..16ffcbe 100644
--- a/core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php
+++ b/core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php
@@ -11,6 +11,7 @@
 use Drupal\Core\Annotation\Translation;
 use Drupal\Core\Action\ConfigurableActionBase;
 use Drupal\Core\Entity\EntityManager;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Utility\Token;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -23,7 +24,7 @@
  *   type = "system"
  * )
  */
-class EmailAction extends ConfigurableActionBase {
+class EmailAction extends ConfigurableActionBase implements ContainerFactoryPluginInterface {
 
   /**
    * The token service.
diff --git a/core/modules/action/lib/Drupal/action/Plugin/Action/GotoAction.php b/core/modules/action/lib/Drupal/action/Plugin/Action/GotoAction.php
index c20801a..93a4c87 100644
--- a/core/modules/action/lib/Drupal/action/Plugin/Action/GotoAction.php
+++ b/core/modules/action/lib/Drupal/action/Plugin/Action/GotoAction.php
@@ -10,6 +10,7 @@
 use Drupal\Core\Annotation\Action;
 use Drupal\Core\Annotation\Translation;
 use Drupal\Core\Action\ConfigurableActionBase;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Routing\PathBasedGeneratorInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
@@ -25,7 +26,7 @@
  *   type = "system"
  * )
  */
-class GotoAction extends ConfigurableActionBase {
+class GotoAction extends ConfigurableActionBase implements ContainerFactoryPluginInterface {
 
   /**
    * The event dispatcher service.
diff --git a/core/modules/action/lib/Drupal/action/Plugin/Action/MessageAction.php b/core/modules/action/lib/Drupal/action/Plugin/Action/MessageAction.php
index 3bc59b9..b7f25a2 100644
--- a/core/modules/action/lib/Drupal/action/Plugin/Action/MessageAction.php
+++ b/core/modules/action/lib/Drupal/action/Plugin/Action/MessageAction.php
@@ -11,6 +11,7 @@
 use Drupal\Core\Annotation\Action;
 use Drupal\Core\Annotation\Translation;
 use Drupal\Core\Action\ConfigurableActionBase;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Utility\Token;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -23,7 +24,7 @@
  *   type = "system"
  * )
  */
-class MessageAction extends ConfigurableActionBase {
+class MessageAction extends ConfigurableActionBase implements ContainerFactoryPluginInterface {
 
   /**
    * @var \Drupal\Core\Utility\Token
diff --git a/core/modules/node/lib/Drupal/node/Plugin/Action/AssignOwnerNode.php b/core/modules/node/lib/Drupal/node/Plugin/Action/AssignOwnerNode.php
index 94d85de..76bc6d6 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/Action/AssignOwnerNode.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/Action/AssignOwnerNode.php
@@ -11,6 +11,7 @@
 use Drupal\Core\Annotation\Translation;
 use Drupal\Core\Action\ConfigurableActionBase;
 use Drupal\Core\Database\Connection;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -22,7 +23,7 @@
  *   type = "node"
  * )
  */
-class AssignOwnerNode extends ConfigurableActionBase {
+class AssignOwnerNode extends ConfigurableActionBase implements ContainerFactoryPluginInterface {
 
   /**
    * The database connection.
diff --git a/core/modules/node/lib/Drupal/node/Plugin/Action/DeleteNode.php b/core/modules/node/lib/Drupal/node/Plugin/Action/DeleteNode.php
index f4a5eff..186bb3e 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/Action/DeleteNode.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/Action/DeleteNode.php
@@ -10,6 +10,7 @@
 use Drupal\Core\Annotation\Action;
 use Drupal\Core\Annotation\Translation;
 use Drupal\Core\Action\ActionBase;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\user\TempStoreFactory;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -23,7 +24,7 @@
  *   confirm_form_path = "admin/content/node/delete"
  * )
  */
-class DeleteNode extends ActionBase {
+class DeleteNode extends ActionBase implements ContainerFactoryPluginInterface {
 
   /**
    * The tempstore object.
diff --git a/core/modules/user/lib/Drupal/user/Plugin/Action/CancelUser.php b/core/modules/user/lib/Drupal/user/Plugin/Action/CancelUser.php
index 58e9e37..2c5c742 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/Action/CancelUser.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/Action/CancelUser.php
@@ -10,6 +10,7 @@
 use Drupal\Core\Annotation\Action;
 use Drupal\Core\Annotation\Translation;
 use Drupal\Core\Action\ActionBase;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\user\TempStoreFactory;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -23,7 +24,7 @@
  *   confirm_form_path = "admin/people/cancel"
  * )
  */
-class CancelUser extends ActionBase {
+class CancelUser extends ActionBase implements ContainerFactoryPluginInterface {
 
   /**
    * The tempstore factory.
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/PluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/PluginBase.php
index 5693a38..285f53a 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/PluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/PluginBase.php
@@ -7,11 +7,13 @@
 
 namespace Drupal\views\Plugin\views;
 
-use Drupal\Core\Plugin\ContainerFactoryPluginBase;
+use Drupal\Component\Plugin\PluginBase as ComponentPluginBase;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\ViewExecutable;
+use Symfony\Component\DependencyInjection\ContainerInterface;
 
-abstract class PluginBase extends ContainerFactoryPluginBase {
+abstract class PluginBase extends ComponentPluginBase implements ContainerFactoryPluginInterface {
 
   /**
    * Options for this plugin will be held here.
@@ -63,6 +65,13 @@ public function __construct(array $configuration, $plugin_id, array $plugin_defi
   }
 
   /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, array $plugin_definition) {
+    return new static($configuration, $plugin_id, $plugin_definition);
+  }
+
+  /**
    * Initialize the plugin.
    *
    * @param \Drupal\views\ViewExecutable $view
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/join/JoinPluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/join/JoinPluginBase.php
index a91e5fe..0294e6a 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/join/JoinPluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/join/JoinPluginBase.php
@@ -6,7 +6,8 @@
  */
 
 namespace Drupal\views\Plugin\views\join;
-use Drupal\Core\Plugin\ContainerFactoryPluginBase;
+
+use Drupal\Component\Plugin\PluginBase;
 
 /**
  * @defgroup views_join_handlers Views join handlers
@@ -49,7 +50,7 @@
  *
  * Extensions of this class can be used to create more interesting joins.
  */
-class JoinPluginBase extends ContainerFactoryPluginBase {
+class JoinPluginBase extends PluginBase {
 
   /**
    * The table to join (right table).
