diff --git a/core/includes/common.inc b/core/includes/common.inc
index 4668a90..cb9ee6e 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -6203,7 +6203,7 @@ function drupal_check_incompatibility($v, $current_version) {
  */
 function archiver_get_extensions() {
   $valid_extensions = array();
-  foreach (Drupal::service('plugin.manager.archiver')->getDefinitions() as $archive) {
+  foreach (Drupal::pluginManager('archiver', 'archiver')->getDefinitions() as $archive) {
     foreach ($archive['extensions'] as $extension) {
       foreach (explode('.', $extension) as $part) {
         if (!in_array($part, $valid_extensions)) {
@@ -6233,7 +6233,7 @@ function archiver_get_archiver($file) {
   if (!is_file($filepath)) {
     throw new Exception(t('Archivers can only operate on local files: %file not supported', array('%file' => $file)));
   }
-  return Drupal::service('plugin.manager.archiver')->getInstance(array('filepath' => $filepath));
+  return Drupal::pluginManager('archiver', 'archiver')->getInstance(array('filepath' => $filepath));
 }
 
 /**
diff --git a/core/lib/Drupal.php b/core/lib/Drupal.php
index d8a68ba..f53c0dd 100644
--- a/core/lib/Drupal.php
+++ b/core/lib/Drupal.php
@@ -158,6 +158,28 @@ public static function entityManager() {
   }
 
   /**
+   * Retrieves a plugin manager for the given plugin owner and type.
+   *
+   * Plugin managers must be registered as plugin.manager.$owner.$type or
+   * plugin.manager.$owner if type is the same as owner.
+   *
+   * @param string $owner
+   *   The plugin owner.
+   * @param string $type
+   *   The plugin type.
+   *
+   * @return \Drupal\Component\Plugin\PluginManagerInterface
+   *   The plugin manager service.
+   */
+  public static function pluginManager($owner, $type) {
+    // @todo: Remove this and only support the longer form?
+    if ($owner == $type && static::$container->has("plugin.manager.$owner")) {
+      return static::$container->get("plugin.manager.$owner");
+    }
+    return static::$container->get("plugin.manager.$owner.$type");
+  }
+
+  /**
    * Returns the current primary database.
    *
    * @return \Drupal\Core\Database\Connection
diff --git a/core/modules/aggregator/aggregator.admin.inc b/core/modules/aggregator/aggregator.admin.inc
index 84643bb..6f26a9c 100644
--- a/core/modules/aggregator/aggregator.admin.inc
+++ b/core/modules/aggregator/aggregator.admin.inc
@@ -95,7 +95,7 @@ function aggregator_form_category_submit($form, &$form_state) {
   // @todo Replicate this cache invalidation when these ops are separated.
   // Invalidate the block cache to update aggregator category-based derivatives.
   if (module_exists('block')) {
-    drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
+    Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
   }
   if ($form_state['values']['op'] == t('Delete')) {
     $title = $form_state['values']['title'];
diff --git a/core/modules/aggregator/aggregator.module b/core/modules/aggregator/aggregator.module
index 25265f4..e33902d 100644
--- a/core/modules/aggregator/aggregator.module
+++ b/core/modules/aggregator/aggregator.module
@@ -386,7 +386,7 @@ function aggregator_save_category($edit) {
 function aggregator_remove(Feed $feed) {
   // Call \Drupal\aggregator\Plugin\ProcessorInterface::remove() on all
   // processors.
-  $manager = Drupal::service('plugin.manager.aggregator.processor');
+  $manager = Drupal::pluginManager('aggregator', 'processor');
   foreach ($manager->getDefinitions() as $id => $definition) {
     $manager->createInstance($id)->remove($feed);
   }
@@ -410,7 +410,7 @@ function aggregator_refresh(Feed $feed) {
 
   $config = config('aggregator.settings');
   // Fetch the feed.
-  $fetcher_manager = Drupal::service('plugin.manager.aggregator.fetcher');
+  $fetcher_manager = Drupal::pluginManager('aggregator', 'fetcher');
   try {
     $success = $fetcher_manager->createInstance($config->get('fetcher'))->fetch($feed);
   }
@@ -420,7 +420,7 @@ function aggregator_refresh(Feed $feed) {
   }
 
   // Retrieve processor manager now.
-  $processor_manager = Drupal::service('plugin.manager.aggregator.processor');
+  $processor_manager = Drupal::pluginManager('aggregator', 'processor');
   // Store instances in an array so we dont have to instantiate new objects.
   $processor_instances = array();
   foreach ($config->get('processors') as $processor) {
@@ -439,7 +439,7 @@ function aggregator_refresh(Feed $feed) {
 
   if ($success && ($feed->hash->value != $hash)) {
     // Parse the feed.
-    $parser_manager = Drupal::service('plugin.manager.aggregator.parser');
+    $parser_manager = Drupal::pluginManager('aggregator', 'parser');
     try {
       if ($parser_manager->createInstance($config->get('parser'))->parse($feed)) {
         if (empty($feed->link->value)) {
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/FeedStorageController.php b/core/modules/aggregator/lib/Drupal/aggregator/FeedStorageController.php
index 82a5643..675dbd8 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/FeedStorageController.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/FeedStorageController.php
@@ -48,11 +48,11 @@ protected function preDelete($entities) {
 
     // Invalidate the block cache to update aggregator feed-based derivatives.
     if (module_exists('block')) {
-      \Drupal::service('plugin.manager.block')->clearCachedDefinitions();
+      \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
     }
     foreach ($entities as $entity) {
       // Notify processors to remove stored items.
-      $manager = \Drupal::service('plugin.manager.aggregator.processor');
+      $manager = \Drupal::pluginmanager('aggregator', 'processor');
       foreach ($manager->getDefinitions() as $id => $definition) {
         $manager->createInstance($id)->remove($entity);
       }
@@ -85,7 +85,7 @@ protected function preSave(EntityInterface $entity) {
 
     // Invalidate the block cache to update aggregator feed-based derivatives.
     if (module_exists('block')) {
-      drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
+      \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
     }
     // An existing feed is being modified, delete the category listings.
     db_delete('aggregator_category_feed')
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorRenderingTest.php b/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorRenderingTest.php
index b60dde4..8a8f349 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorRenderingTest.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorRenderingTest.php
@@ -39,7 +39,7 @@ public function testBlockLinks() {
     $this->updateFeedItems($feed, $this->getDefaultFeedItemCount());
 
     // Clear the block cache to load the new block definitions.
-    $this->container->get('plugin.manager.block')->clearCachedDefinitions();
+    \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
 
     // Need admin user to be able to access block admin.
     $admin_user = $this->drupalCreateUser(array(
diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index db497e3..beeaa10 100644
--- a/core/modules/block/block.module
+++ b/core/modules/block/block.module
@@ -158,7 +158,7 @@ function block_menu() {
   //   hook_menu_local_tasks() to check for the untranslated tab_parent path.
   // @see http://drupal.org/node/1067408
   $themes = list_themes();
-  foreach (drupal_container()->get('plugin.manager.system.plugin_ui')->getDefinitions() as $plugin_id => $plugin) {
+  foreach (Drupal::pluginManager('system', 'plugin_ui')->getDefinitions() as $plugin_id => $plugin) {
     list($plugin_base, $key) = explode(':', $plugin_id);
     if ($plugin_base == 'block_plugin_ui') {
       $theme = $themes[$key];
diff --git a/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockStorageController.php b/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockStorageController.php
index 87ff2d5..63e5dc5 100644
--- a/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockStorageController.php
+++ b/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockStorageController.php
@@ -69,7 +69,7 @@ protected function attachLoad(&$blocks, $load_revision = FALSE) {
    */
   protected function postSave(EntityInterface $block, $update) {
     // Invalidate the block cache to update custom block-based derivatives.
-    drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
+    \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
   }
 
   /**
diff --git a/core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/Block/CustomBlockBlock.php b/core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/Block/CustomBlockBlock.php
index 01b11ba..fc28d4b 100644
--- a/core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/Block/CustomBlockBlock.php
+++ b/core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/Block/CustomBlockBlock.php
@@ -62,7 +62,7 @@ public function blockForm($form, &$form_state) {
   public function blockSubmit($form, &$form_state) {
     // Invalidate the block cache to update custom block-based derivatives.
     if (module_exists('block')) {
-      drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
+      \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
     }
   }
 
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
index 75bcb39..16bb96b 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
@@ -210,7 +210,7 @@ function testBlockRehash() {
     $this->assertTrue(module_exists('block_test'), 'Test block module enabled.');
 
     // Clear the block cache to load the block_test module's block definitions.
-    $this->container->get('plugin.manager.block')->clearCachedDefinitions();
+    \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
 
     // Add a test block.
     $block = array();
@@ -243,8 +243,7 @@ function testBlockModuleDisable() {
     $this->assertTrue(module_exists('block_test'), 'Test block module enabled.');
 
     // Clear the block cache to load the block_test module's block definitions.
-    $manager = $this->container->get('plugin.manager.block');
-    $manager->clearCachedDefinitions();
+    \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
 
     // Add test blocks in different regions and confirm they are displayed.
     $blocks = array();
@@ -260,7 +259,7 @@ function testBlockModuleDisable() {
     // Disable the block test module and refresh the definitions cache.
     module_disable(array('block_test'), FALSE);
     $this->assertFalse(module_exists('block_test'), 'Test block module disabled.');
-    $manager->clearCachedDefinitions();
+    \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
 
     // Ensure that the block administration page still functions as expected.
     $this->drupalGet('admin/structure/block');
@@ -305,7 +304,7 @@ function testBlockModuleDisable() {
     // Re-enable the module and refresh the definitions cache.
     module_enable(array('block_test'), FALSE);
     $this->assertTrue(module_exists('block_test'), 'Test block module re-enabled.');
-    $manager->clearCachedDefinitions();
+    \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
 
     // Reload the admin page and confirm the block can again be configured.
     $this->drupalGet('admin/structure/block');
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockTestBase.php b/core/modules/block/lib/Drupal/block/Tests/BlockTestBase.php
index c950576..d7d84b1 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockTestBase.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockTestBase.php
@@ -68,7 +68,6 @@ function setUp() {
     );
 
     $default_theme = variable_get('theme_default', 'stark');
-    $manager = $this->container->get('plugin.manager.block');
     $instances = config_get_storage_names_with_prefix('plugin.core.block.' . $default_theme);
     foreach ($instances as $plugin_id) {
       config($plugin_id)->delete();
diff --git a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/editor/editor/CKEditor.php b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/editor/editor/CKEditor.php
index 55bafbf..87178e5 100644
--- a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/editor/editor/CKEditor.php
+++ b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/editor/editor/CKEditor.php
@@ -49,7 +49,7 @@ public function getDefaultSettings() {
    */
   public function settingsForm(array $form, array &$form_state, Editor $editor) {
     $module_path = drupal_get_path('module', 'ckeditor');
-    $manager = drupal_container()->get('plugin.manager.ckeditor.plugin');
+    $manager = \Drupal::pluginManager('ckeditor', 'plugin');
 
     $form['toolbar'] = array(
       '#type' => 'container',
@@ -110,7 +110,7 @@ public function getJSSettings(Editor $editor) {
     $language_interface = language(LANGUAGE_TYPE_INTERFACE);
 
     $settings = array();
-    $manager = drupal_container()->get('plugin.manager.ckeditor.plugin');
+    $manager = \Drupal::pluginManager('ckeditor', 'plugin');
 
     // Get the settings for all enabled plugins, even the internal ones.
     $enabled_plugins = array_keys($manager->getEnabledPlugins($editor, TRUE));
diff --git a/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorAdminTest.php b/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorAdminTest.php
index bb17201..cc485c3 100644
--- a/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorAdminTest.php
+++ b/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorAdminTest.php
@@ -47,7 +47,7 @@ function setUp() {
   }
 
   function testAdmin() {
-    $manager = drupal_container()->get('plugin.manager.editor');
+    $manager = \Drupal::pluginManager('editor', 'editor');
     $ckeditor = $manager->createInstance('ckeditor');
 
     $this->drupalLogin($this->admin_user);
@@ -143,7 +143,7 @@ function testAdmin() {
     // Now enable the ckeditor_test module, which provides one configurable
     // CKEditor plugin — this should not affect the Editor config entity.
     module_enable(array('ckeditor_test'));
-    drupal_container()->get('plugin.manager.ckeditor.plugin')->clearCachedDefinitions();
+    \Drupal::pluginManager('ckeditor', 'plugin')->clearCachedDefinitions();
     $this->drupalGet('admin/config/content/formats/filtered_html');
     $ultra_llama_mode_checkbox = $this->xpath('//input[@type="checkbox" and @name="editor[settings][plugins][llama_contextual_and_button][ultra_llama_mode]" and not(@checked)]');
     $this->assertTrue(count($ultra_llama_mode_checkbox) === 1, 'The "Ultra llama mode" checkbox exists and is not checked.');
diff --git a/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorLoadingTest.php b/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorLoadingTest.php
index 63a816f..2c949ca 100644
--- a/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorLoadingTest.php
+++ b/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorLoadingTest.php
@@ -97,7 +97,7 @@ function testLoading() {
     $this->drupalLogin($this->normal_user);
     $this->drupalGet('node/add/article');
     list($settings, $editor_settings_present, $editor_js_present, $body, $format_selector) = $this->getThingsToCheck();
-    $ckeditor_plugin = drupal_container()->get('plugin.manager.editor')->createInstance('ckeditor');
+    $ckeditor_plugin = \Drupal::pluginManager('editor', 'editor')->createInstance('ckeditor');
     $editor = entity_load('editor', 'filtered_html');
     $expected = array('formats' => array('filtered_html' => array(
       'editor' => 'ckeditor',
@@ -119,7 +119,7 @@ function testLoading() {
     // configuration also results in modified CKEditor configuration, so we
     // don't test that here.
     module_enable(array('ckeditor_test'));
-    drupal_container()->get('plugin.manager.ckeditor.plugin')->clearCachedDefinitions();
+    \Drupal::pluginManager('ckeditor', 'plugin')->clearCachedDefinitions();
     $editor->settings['toolbar']['buttons'][0][] = 'Llama';
     $editor->settings['plugins']['internal']['link_shortcut'] = 'CTRL+K';
     $editor->save();
diff --git a/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorTest.php b/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorTest.php
index 98d15c2..0f78626 100644
--- a/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorTest.php
+++ b/core/modules/ckeditor/lib/Drupal/ckeditor/Tests/CKEditorTest.php
@@ -88,7 +88,7 @@ function testGetJSSettings() {
     // Customize the configuration: add button, have two contextually enabled
     // buttons, and configure a CKEditor plugin setting.
     $this->enableModules(array('ckeditor_test'));
-    drupal_container()->get('plugin.manager.ckeditor.plugin')->clearCachedDefinitions();
+    \Drupal::pluginManager('ckeditor', 'plugin')->clearCachedDefinitions();
     $editor->settings['toolbar']['buttons'][0][] = 'Strike';
     $editor->settings['toolbar']['buttons'][1][] = 'Format';
     $editor->settings['plugins']['internal']['link_shortcut'] = 'CTRL+K';
@@ -131,7 +131,7 @@ function testBuildToolbarJSSetting() {
 
     // Enable the editor_test module, customize further.
     $this->enableModules(array('ckeditor_test'));
-    drupal_container()->get('plugin.manager.ckeditor.plugin')->clearCachedDefinitions();
+    \Drupal::pluginManager('ckeditor', 'plugin')->clearCachedDefinitions();
     $editor->settings['toolbar']['buttons'][0][] = 'Llama';
     $editor->save();
     $expected[count($expected)-2]['items'][] = 'Llama';
@@ -161,7 +161,7 @@ function testBuildContentsCssJSSetting() {
    */
   function testInternalGetConfig() {
     $editor = entity_load('editor', 'filtered_html');
-    $manager = drupal_container()->get('plugin.manager.ckeditor.plugin');
+    $manager = \Drupal::pluginManager('ckeditor', 'plugin');
     $internal_plugin = $manager->createInstance('internal');
 
     // Default toolbar.
@@ -179,7 +179,7 @@ function testInternalGetConfig() {
    */
   function testStylesComboGetConfig() {
     $editor = entity_load('editor', 'filtered_html');
-    $manager = drupal_container()->get('plugin.manager.ckeditor.plugin');
+    $manager = \Drupal::pluginManager('ckeditor', 'plugin');
     $stylescombo_plugin = $manager->createInstance('stylescombo');
 
     // Styles dropdown/button enabled: new setting should be present.
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/NcsLastCommentName.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/NcsLastCommentName.php
index db5bba9..ad330a8 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/field/NcsLastCommentName.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/field/NcsLastCommentName.php
@@ -37,7 +37,7 @@ public function query() {
         )
       )
     );
-    $join = drupal_container()->get('plugin.manager.views.join')->createInstance('standard', $definition);
+    $join = \Drupal::pluginManager('views', 'join')->createInstance('standard', $definition);
 
     // ncs_user alias so this can work with the sort handler, below.
 //    $this->user_table = $this->query->add_relationship(NULL, $join, 'users', $this->relationship);
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 9e2c70e..09c5cec 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
@@ -28,7 +28,7 @@ public function query() {
       'left_table' => $this->tableAlias,
       'left_field' => 'last_comment_uid',
     );
-    $join = drupal_container()->get('plugin.manager.views.join')->createInstance('standard', $definition);
+    $join = \Drupal::pluginManager('views', 'join')->createInstance('standard', $definition);
 
     // @todo this might be safer if we had an ensure_relationship rather than guessing
     // the table alias. Though if we did that we'd be guessing the relationship name
diff --git a/core/modules/editor/editor.module b/core/modules/editor/editor.module
index 10f938b..287da02 100644
--- a/core/modules/editor/editor.module
+++ b/core/modules/editor/editor.module
@@ -130,7 +130,7 @@ function editor_form_filter_admin_overview_alter(&$form, $form_state) {
   $form['formats']['#header'] = array_merge($start, $form['formats']['#header']);
 
   // Then splice in the name of each text editor for each text format.
-  $editors = drupal_container()->get('plugin.manager.editor')->getDefinitions();
+  $editors = Drupal::pluginManager('editor', 'editor')->getDefinitions();
   foreach (element_children($form['formats']) as $format_id) {
     $editor = editor_load($format_id);
     $editor_name = ($editor && isset($editors[$editor->editor])) ? $editors[$editor->editor]['label'] : drupal_placeholder('—');
@@ -148,7 +148,7 @@ function editor_form_filter_admin_format_form_alter(&$form, &$form_state) {
   if (!isset($form_state['editor'])) {
     $format_id = $form['#format']->format;
     $form_state['editor'] = editor_load($format_id);
-    $form_state['editor_manager'] = drupal_container()->get('plugin.manager.editor');
+    $form_state['editor_manager'] = Drupal::pluginManager('editor', 'editor');
   }
   $editor = $form_state['editor'];
   $manager = $form_state['editor_manager'];
@@ -324,7 +324,7 @@ function editor_pre_render_format($element) {
   $element['#attached']['library'][] = array('editor', 'drupal.editor');
 
   // Attach attachments for all available editors.
-  $manager = drupal_container()->get('plugin.manager.editor');
+  $manager = Drupal::pluginManager('editor', 'editor');
   $element['#attached'] = NestedArray::mergeDeep($element['#attached'], $manager->getAttachments($format_ids));
 
   return $element;
diff --git a/core/modules/editor/lib/Drupal/editor/Plugin/Core/Entity/Editor.php b/core/modules/editor/lib/Drupal/editor/Plugin/Core/Entity/Editor.php
index 00eae37..7fc22ed 100644
--- a/core/modules/editor/lib/Drupal/editor/Plugin/Core/Entity/Editor.php
+++ b/core/modules/editor/lib/Drupal/editor/Plugin/Core/Entity/Editor.php
@@ -74,7 +74,7 @@ public function label($langcode = NULL) {
   public function __construct(array $values, $entity_type) {
     parent::__construct($values, $entity_type);
 
-    $manager = drupal_container()->get('plugin.manager.editor');
+    $manager = \Drupal::pluginManager('editor', 'editor');
     $plugin = $manager->createInstance($this->editor);
 
     // Initialize settings, merging module-provided defaults.
diff --git a/core/modules/editor/lib/Drupal/editor/Plugin/edit/editor/Editor.php b/core/modules/editor/lib/Drupal/editor/Plugin/edit/editor/Editor.php
index 81c23d7..4d2f60c 100644
--- a/core/modules/editor/lib/Drupal/editor/Plugin/edit/editor/Editor.php
+++ b/core/modules/editor/lib/Drupal/editor/Plugin/edit/editor/Editor.php
@@ -41,7 +41,7 @@ function isCompatible(FieldInstance $instance, array $items) {
     elseif (!empty($instance['settings']['text_processing'])) {
       $format_id = $items[0]['format'];
       if (isset($format_id) && $editor = editor_load($format_id)) {
-        $definition = drupal_container()->get('plugin.manager.editor')->getDefinition($editor->editor);
+        $definition = \Drupal::pluginManager('editor', 'editor')->getDefinition($editor->editor);
         if ($definition['supports_inline_editing'] === TRUE) {
           return TRUE;
         }
@@ -75,7 +75,7 @@ public function getAttachments() {
     global $user;
 
     $user_format_ids = array_keys(filter_formats($user));
-    $manager = drupal_container()->get('plugin.manager.editor');
+    $manager = \Drupal::pluginManager('editor', 'editor');
     $definitions = $manager->getDefinitions();
 
     // Filter the current user's formats to those that support inline editing.
diff --git a/core/modules/entity/lib/Drupal/entity/Plugin/Core/Entity/EntityDisplay.php b/core/modules/entity/lib/Drupal/entity/Plugin/Core/Entity/EntityDisplay.php
index 461a240..be997ea 100644
--- a/core/modules/entity/lib/Drupal/entity/Plugin/Core/Entity/EntityDisplay.php
+++ b/core/modules/entity/lib/Drupal/entity/Plugin/Core/Entity/EntityDisplay.php
@@ -215,7 +215,7 @@ public function setComponent($name, array $options = array()) {
 
     if ($instance = field_info_instance($this->targetEntityType, $name, $this->bundle)) {
       $field = field_info_field($instance['field_name']);
-      $options = drupal_container()->get('plugin.manager.field.formatter')->prepareConfiguration($field['type'], $options);
+      $options = \Drupal::pluginManager('field', 'formatter')->prepareConfiguration($field['type'], $options);
 
       // Clear the persisted formatter, if any.
       unset($this->formatters[$name]);
@@ -284,7 +284,7 @@ public function getFormatter($field_name) {
     // Instantiate the formatter object from the stored display properties.
     if ($configuration = $this->getComponent($field_name)) {
       $instance = field_info_instance($this->targetEntityType, $field_name, $this->bundle);
-      $formatter = drupal_container()->get('plugin.manager.field.formatter')->getInstance(array(
+      $formatter = \Drupal::pluginManager('field', 'formatter')->getInstance(array(
         'instance' => $instance,
         'view_mode' => $this->originalViewMode,
         // No need to prepare, defaults have been merged in setComponent().
diff --git a/core/modules/entity_reference/entity_reference.module b/core/modules/entity_reference/entity_reference.module
index 3c68c46..9043439 100644
--- a/core/modules/entity_reference/entity_reference.module
+++ b/core/modules/entity_reference/entity_reference.module
@@ -86,7 +86,7 @@ function entity_reference_get_selection_handler($field, $instance, EntityInterfa
     'instance' => $instance,
     'entity' => $entity,
   );
-  return drupal_container()->get('plugin.manager.entity_reference.selection')->getInstance($options);
+  return Drupal::pluginManager('entity_reference', 'selection')->getInstance($options);
 }
 
 /**
@@ -234,10 +234,10 @@ function entity_reference_field_instance_settings_form($field, $instance, $form_
   $settings += array('handler' => 'default');
 
   // Get all selection plugins for this entity type.
-  $selection_plugins = drupal_container()->get('plugin.manager.entity_reference.selection')->getSelectionGroups($field['settings']['target_type']);
+  $selection_plugins = Drupal::pluginManager('entity_reference', 'selection')->getSelectionGroups($field['settings']['target_type']);
   $handler_groups = array_keys($selection_plugins);
 
-  $handlers = drupal_container()->get('plugin.manager.entity_reference.selection')->getDefinitions();
+  $handlers = Drupal::pluginManager('entity_reference', 'selection')->getDefinitions();
   $handlers_options = array();
   foreach ($handlers as $plugin_id => $plugin) {
     // We only display base plugins (e.g. 'base', 'views', ..) and not entity
diff --git a/core/modules/field/field.info.inc b/core/modules/field/field.info.inc
index 38edcdb..925db22 100644
--- a/core/modules/field/field.info.inc
+++ b/core/modules/field/field.info.inc
@@ -209,10 +209,10 @@ function field_info_field_types($field_type = NULL) {
  */
 function field_info_widget_types($widget_type = NULL) {
   if ($widget_type) {
-    return drupal_container()->get('plugin.manager.field.widget')->getDefinition($widget_type);
+    return Drupal::pluginManager('field', 'widget')->getDefinition($widget_type);
   }
   else {
-    return drupal_container()->get('plugin.manager.field.widget')->getDefinitions();
+    return Drupal::pluginManager('field', 'widget')->getDefinitions();
   }
 }
 
@@ -230,10 +230,10 @@ function field_info_widget_types($widget_type = NULL) {
  */
 function field_info_formatter_types($formatter_type = NULL) {
   if ($formatter_type) {
-    return drupal_container()->get('plugin.manager.field.formatter')->getDefinition($formatter_type);
+    return Drupal::pluginManager('field', 'formatter')->getDefinition($formatter_type);
   }
   else {
-    return drupal_container()->get('plugin.manager.field.formatter')->getDefinitions();
+    return Drupal::pluginManager('field', 'formatter')->getDefinitions();
   }
 }
 
diff --git a/core/modules/field/field.module b/core/modules/field/field.module
index 13fb22c..040f370 100644
--- a/core/modules/field/field.module
+++ b/core/modules/field/field.module
@@ -822,7 +822,7 @@ function field_view_field(EntityInterface $entity, $field_name, $display_options
     // hook_field_attach_display_alter() needs to receive the 'prepared'
     // $display_options, so we cannot let preparation happen internally.
     $field = field_info_field($field_name);
-    $formatter_manager = drupal_container()->get('plugin.manager.field.formatter');
+    $formatter_manager = Drupal::pluginManager('field', 'formatter');
     $display_options = $formatter_manager->prepareConfiguration($field['type'], $display_options);
     $formatter = $formatter_manager->getInstance(array(
       'instance' => $instance,
diff --git a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php
index 53132ec..bac5470 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Core/Entity/FieldInstance.php
@@ -373,7 +373,7 @@ public function save() {
       'settings' => array(),
     );
     // Get the widget module and settings from the widget type.
-    if ($widget_type_info = \Drupal::service('plugin.manager.field.widget')->getDefinition($this->widget['type'])) {
+    if ($widget_type_info = \Drupal::pluginManager('field', 'widget')->getDefinition($this->widget['type'])) {
       $this->widget['module'] = $widget_type_info['module'];
       $this->widget['settings'] += $widget_type_info['settings'];
     }
@@ -478,7 +478,7 @@ public function getWidget() {
         'settings' => $widget_properties['settings'],
         'weight' => $widget_properties['weight'],
       );
-      $this->widgetPlugin = \Drupal::service('plugin.manager.field.widget')->getInstance($options);
+      $this->widgetPlugin = \Drupal::pluginManager('field', 'widget')->getInstance($options);
     }
 
     return $this->widgetPlugin;
diff --git a/core/modules/field/lib/Drupal/field/Plugin/views/field/Field.php b/core/modules/field/lib/Drupal/field/Plugin/views/field/Field.php
index e9517c0..b1ba80c 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/views/field/Field.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/views/field/Field.php
@@ -401,7 +401,7 @@ public function buildOptionsForm(&$form, &$form_state) {
 
     // Get the settings form.
     $settings_form = array('#value' => array());
-    if ($formatter = drupal_container()->get('plugin.manager.field.formatter')->getInstance($options)) {
+    if ($formatter = \Drupal::pluginManager('field', 'formatter')->getInstance($options)) {
       $settings_form = $formatter->settingsForm($form, $form_state);
     }
     $form['settings'] = $settings_form;
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 6ae2118..604e9c8 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
@@ -62,7 +62,7 @@ public function query() {
     else {
       $id = 'standard';
     }
-    $first_join = drupal_container()->get('plugin.manager.views.join')->createInstance($id, $first);
+    $first_join = \Drupal::pluginManager('views', 'join')->createInstance($id, $first);
 
 
     $this->first_alias = $this->query->add_table($this->definition['field table'], $this->relationship, $first_join);
@@ -87,7 +87,7 @@ public function query() {
     else {
       $id = 'standard';
     }
-    $second_join = drupal_container()->get('plugin.manager.views.join')->createInstance($id, $second);
+    $second_join = \Drupal::pluginManager('views', 'join')->createInstance($id, $second);
     $second_join->adjusted = TRUE;
 
     // use a short alias for this:
diff --git a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverview.php b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverview.php
index cf4f6de..ed19230 100644
--- a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverview.php
+++ b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverview.php
@@ -174,7 +174,7 @@ public function buildForm(array $form, array &$form_state, $entity_type = NULL,
 
       // Get the corresponding formatter object.
       if ($display_options && $display_options['type'] != 'hidden') {
-        $formatter = drupal_container()->get('plugin.manager.field.formatter')->getInstance(array(
+        $formatter = \Drupal::pluginManager('field', 'formatter')->getInstance(array(
           'instance' => $instance,
           'view_mode' => $this->view_mode,
           'configuration' => $display_options
diff --git a/core/modules/layout/layout.module b/core/modules/layout/layout.module
index 17acc6d..a8c729b 100644
--- a/core/modules/layout/layout.module
+++ b/core/modules/layout/layout.module
@@ -58,7 +58,7 @@ function layout_permission() {
  *   The layout plugin manager instance.
  */
 function layout_manager() {
-  return drupal_container()->get('plugin.manager.layout');
+  return \Drupal::pluginManager('layout', 'layout');
 }
 
 /**
diff --git a/core/modules/menu/menu.module b/core/modules/menu/menu.module
index 93c2ed8..f8719b3 100644
--- a/core/modules/menu/menu.module
+++ b/core/modules/menu/menu.module
@@ -231,7 +231,7 @@ function menu_menu_insert(Menu $menu) {
   menu_cache_clear_all();
   // Invalidate the block cache to update menu-based derivatives.
   if (module_exists('block')) {
-    drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
+    Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
   }
   // Make sure the menu is present in the active menus variable so that its
   // items may appear in the menu active trail.
@@ -254,7 +254,7 @@ function menu_menu_update(Menu $menu) {
   menu_cache_clear_all();
   // Invalidate the block cache to update menu-based derivatives.
   if (module_exists('block')) {
-    drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
+    Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
   }
 }
 
@@ -283,7 +283,7 @@ function menu_menu_delete(Menu $menu) {
 
   // Invalidate the block cache to update menu-based derivatives.
   if (module_exists('block')) {
-    drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
+    Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
   }
 }
 
diff --git a/core/modules/rest/lib/Drupal/rest/RequestHandler.php b/core/modules/rest/lib/Drupal/rest/RequestHandler.php
index 8a23b50..ef5607f 100644
--- a/core/modules/rest/lib/Drupal/rest/RequestHandler.php
+++ b/core/modules/rest/lib/Drupal/rest/RequestHandler.php
@@ -36,7 +36,7 @@ public function handle(Request $request, $id = NULL) {
     $method = strtolower($request->getMethod());
 
     $resource = $this->container
-      ->get('plugin.manager.rest')
+      ->get('plugin.manager.rest.resource')
       ->getInstance(array('id' => $plugin));
 
     // Deserialze incoming data if available.
diff --git a/core/modules/rest/rest.admin.inc b/core/modules/rest/rest.admin.inc
index 95246ea..e589d4a 100644
--- a/core/modules/rest/rest.admin.inc
+++ b/core/modules/rest/rest.admin.inc
@@ -11,9 +11,7 @@
  * @ingroup forms
  */
 function rest_admin_form($form, &$form_state) {
-  $resources = drupal_container()
-    ->get('plugin.manager.rest')
-    ->getDefinitions();
+  $resources = Drupal::pluginManager('rest', 'resource')->getDefinitions();
   $entity_resources = array();
   $other_resources = array();
   foreach ($resources as $plugin_name => $definition) {
@@ -87,7 +85,7 @@ function rest_admin_form_submit($form, &$form_state) {
     $enabled_resources += array_filter($form_state['values']['other_resources']);
   }
   $resources = array();
-  $plugin_manager = drupal_container()->get('plugin.manager.rest');
+  $plugin_manager = Drupal::pluginManager('rest', 'resource');
 
   // Enable all methods and all formats for each selected resource.
   foreach ($enabled_resources as $resource) {
diff --git a/core/modules/rest/rest.module b/core/modules/rest/rest.module
index 43b32f4..197f8f0 100644
--- a/core/modules/rest/rest.module
+++ b/core/modules/rest/rest.module
@@ -28,8 +28,8 @@ function rest_menu() {
  */
 function rest_permission() {
   $permissions = array();
-  if (drupal_container()->has('plugin.manager.rest')) {
-    $manager = drupal_container()->get('plugin.manager.rest');
+  if (Drupal::getContainer()->has('plugin.manager.rest.resource')) {
+    $manager = Drupal::pluginManager('rest', 'resource');
     $resources = config('rest.settings')->get('resources');
     if ($resources && $enabled = array_intersect_key($manager->getDefinitions(), $resources)) {
       foreach ($enabled as $key => $resource) {
diff --git a/core/modules/rest/rest.services.yml b/core/modules/rest/rest.services.yml
index 97817ad..9478c41 100644
--- a/core/modules/rest/rest.services.yml
+++ b/core/modules/rest/rest.services.yml
@@ -1,12 +1,12 @@
 services:
-  plugin.manager.rest:
+  plugin.manager.rest.resource:
     class: Drupal\rest\Plugin\Type\ResourcePluginManager
     arguments: ['@container.namespaces']
   rest.route_subscriber:
     class: Drupal\rest\EventSubscriber\RouteSubscriber
     tags:
       - { name: event_subscriber }
-    arguments: ['@plugin.manager.rest', '@config.factory']
+    arguments: ['@plugin.manager.rest.resource', '@config.factory']
   access_check.rest.csrf:
     class: Drupal\rest\Access\CSRFAccessCheck
     tags:
diff --git a/core/modules/search/lib/Drupal/search/Plugin/views/argument/Search.php b/core/modules/search/lib/Drupal/search/Plugin/views/argument/Search.php
index 0f4f4b5..0074dc5 100644
--- a/core/modules/search/lib/Drupal/search/Plugin/views/argument/Search.php
+++ b/core/modules/search/lib/Drupal/search/Plugin/views/argument/Search.php
@@ -65,7 +65,7 @@ public function query($group_by = FALSE) {
         'left_table' => $search_index,
         'left_field' => 'word',
       );
-      $join = drupal_container()->get('plugin.manager.views.join')->createInstance('standard', $definition);
+      $join = \Drupal::pluginManager('views', 'join')->createInstance('standard', $definition);
       $search_total = $this->query->add_relationship('search_total', $join, $search_index);
 
       $this->search_score = $this->query->add_field('', "SUM($search_index.score * $search_total.count)", 'score', array('aggregate' => TRUE));
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 afb7724..0ed5c77 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
@@ -145,7 +145,7 @@ public function query() {
         'left_table' => $search_index,
         'left_field' => 'word',
       );
-      $join = drupal_container()->get('plugin.manager.views.join')->createInstance('standard', $definition);
+      $join = \Drupal::pluginManager('views', 'join')->createInstance('standard', $definition);
 
       $search_total = $this->query->add_relationship('search_total', $join, $search_index);
 
diff --git a/core/modules/statistics/lib/Drupal/statistics/StatisticsSettingsForm.php b/core/modules/statistics/lib/Drupal/statistics/StatisticsSettingsForm.php
index e5eddbc..5689ef4 100644
--- a/core/modules/statistics/lib/Drupal/statistics/StatisticsSettingsForm.php
+++ b/core/modules/statistics/lib/Drupal/statistics/StatisticsSettingsForm.php
@@ -85,7 +85,7 @@ public function submitForm(array &$form, array &$form_state) {
     // The popular statistics block is dependent on these settings, so clear the
     // block plugin definitions cache.
     if ($this->moduleHandler->moduleExists('block')) {
-      drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
+      \Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
     }
 
     parent::submitForm($form, $form_state);
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index c75309c..dbcef1e 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -1079,7 +1079,7 @@ function system_menu() {
     );
   }
 
-  foreach (drupal_container()->get('plugin.manager.system.plugin_ui')->getDefinitions() as $plugin_id => $plugin) {
+  foreach (Drupal::pluginManager('system', 'plugin_ui')->getDefinitions() as $plugin_id => $plugin) {
     if ($plugin['menu'] === TRUE) {
       $items[$plugin['path'] . '/' . $plugin_id . '/' . $plugin['suffix']] = array(
         'title' => $plugin['title'],
@@ -1132,7 +1132,7 @@ function system_menu() {
  *   documentation. Also "proxies" is a weird word to use.
  */
 function system_plugin_ui_form($form, &$form_state, $plugin, $facet = NULL) {
-  $plugin_ui = drupal_container()->get('plugin.manager.system.plugin_ui')->createInstance($plugin);
+  $plugin_ui = Drupal::pluginManager('system', 'plugin_ui')->createInstance($plugin);
   $form = $plugin_ui->form($form, $form_state, $facet);
   $form['#validate'][] = array($plugin_ui, 'formValidate');
   $form['#submit'][] = array($plugin_ui, 'formSubmit');
@@ -1158,7 +1158,7 @@ function system_plugin_autocomplete($plugin_id) {
   $string = drupal_strtolower(array_pop($string_typed));
   $matches = array();
   if ($string) {
-    $plugin_ui = drupal_container()->get('plugin.manager.system.plugin_ui')->getDefinition($plugin_id);
+    $plugin_ui = Drupal::pluginManager('system', 'plugin_ui')->getDefinition($plugin_id);
     $manager = new $plugin_ui['manager']();
     $titles = array();
     foreach($manager->getDefinitions() as $plugin_id => $plugin) {
@@ -1177,7 +1177,7 @@ function system_plugin_autocomplete($plugin_id) {
  * @todo What the heck kind of parameter name is "facet"?
  */
 function system_plugin_ui_access($plugin, $facet = NULL) {
-  $plugin_ui = drupal_container()->get('plugin.manager.system.plugin_ui')->createInstance($plugin);
+  $plugin_ui = Drupal::pluginManager('system', 'plugin_ui')->createInstance($plugin);
   return $plugin_ui->access($facet);
 }
 
@@ -1186,7 +1186,7 @@ function system_plugin_ui_access($plugin, $facet = NULL) {
  */
 function system_forms() {
   $forms = array();
-  foreach (drupal_container()->get('plugin.manager.system.plugin_ui')->getDefinitions() as $plugin_id => $plugin) {
+  foreach (Drupal::pluginManager('system', 'plugin_ui')->getDefinitions() as $plugin_id => $plugin) {
     if (empty($forms[$plugin['id']])) {
       $forms[$plugin['id']]['callback'] = 'system_plugin_ui_form';
     }
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 f365c3a..6d8e9bf 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
@@ -95,7 +95,7 @@ public function query() {
       $def['table formula'] = $query;
     }
 
-    $join = drupal_container()->get('plugin.manager.views.join')->createInstance('standard', $def);
+    $join = \Drupal::pluginManager('views', 'join')->createInstance('standard', $def);
 
     // use a short alias for this:
     $alias = $def['table'] . '_' . $this->table;
diff --git a/core/modules/tour/lib/Drupal/tour/Plugin/Core/Entity/Tour.php b/core/modules/tour/lib/Drupal/tour/Plugin/Core/Entity/Tour.php
index cd6421a..325cd69 100644
--- a/core/modules/tour/lib/Drupal/tour/Plugin/Core/Entity/Tour.php
+++ b/core/modules/tour/lib/Drupal/tour/Plugin/Core/Entity/Tour.php
@@ -82,7 +82,7 @@ class Tour extends ConfigEntityBase implements TourInterface {
   public function __construct(array $values, $entity_type) {
     parent::__construct($values, $entity_type);
 
-    $this->tipsBag = new TipsBag(drupal_container()->get('plugin.manager.tour.tip'), $this->tips);
+    $this->tipsBag = new TipsBag(\Drupal::pluginManager('tour', 'tip'), $this->tips);
   }
 
   /**
diff --git a/core/modules/tour/tour.api.php b/core/modules/tour/tour.api.php
index 2bda3d6..fea9b84 100644
--- a/core/modules/tour/tour.api.php
+++ b/core/modules/tour/tour.api.php
@@ -72,7 +72,7 @@ function hook_tour_presave($entity) {
  *   The tour object being inserted.
  */
 function hook_tour_insert($entity) {
-  drupal_container()->get('plugin.manager.tour.tip')->clearCachedDefinitions();
+  Drupal::pluginManager('tour', 'tip')->clearCachedDefinitions();
   cache('cache_tour')->deleteTags(array('tour_items'));
 }
 
@@ -83,6 +83,6 @@ function hook_tour_insert($entity) {
  *   The tour object being updated.
  */
 function hook_tour_update($entity) {
-  drupal_container()->get('plugin.manager.tour.tip')->clearCachedDefinitions();
+  Drupal::pluginManager('tour', 'tip')->clearCachedDefinitions();
   cache('cache_tour')->deleteTags(array('tour_items'));
 }
diff --git a/core/modules/tour/tour.module b/core/modules/tour/tour.module
index fe9bc1a..de1b067 100644
--- a/core/modules/tour/tour.module
+++ b/core/modules/tour/tour.module
@@ -135,12 +135,12 @@ function tour_preprocess_page(&$variables) {
  * Implements hook_tour_insert().
  */
 function tour_tour_insert($entity) {
-  drupal_container()->get('plugin.manager.tour.tip')->clearCachedDefinitions();
+  Drupal::pluginManager('tour', 'tip')->clearCachedDefinitions();
 }
 
 /**
  * Implements hook_tour_update().
  */
 function tour_tour_update($entity) {
-  drupal_container()->get('plugin.manager.tour.tip')->clearCachedDefinitions();
+  Drupal::pluginManager('tour', 'tip')->clearCachedDefinitions();
 }
diff --git a/core/modules/views/lib/Drupal/views/Views.php b/core/modules/views/lib/Drupal/views/Views.php
index 8dfe762..1c3103e 100644
--- a/core/modules/views/lib/Drupal/views/Views.php
+++ b/core/modules/views/lib/Drupal/views/Views.php
@@ -47,6 +47,8 @@ public static function analyzer() {
   /**
    * Returns the plugin manager for a certain views plugin type.
    *
+   * @todo: Remove in favor of Drupal:pluginManager('views', $type)?
+   *
    * @param string $type
    *   The plugin type, for example filter.
    *
diff --git a/core/modules/views/views.module b/core/modules/views/views.module
index 02d7791..31e7eb7 100644
--- a/core/modules/views/views.module
+++ b/core/modules/views/views.module
@@ -692,7 +692,7 @@ function views_invalidate_cache() {
 
   // Invalidate the block cache to update views block derivatives.
   if ($module_handler->moduleExists('block')) {
-    Drupal::service('plugin.manager.block')->clearCachedDefinitions();
+    Drupal::pluginManager('block', 'block')->clearCachedDefinitions();
   }
 
   // Allow modules to respond to the Views cache being cleared.
