diff --git a/core/lib/Drupal/Core/Archiver/ArchiverManager.php b/core/lib/Drupal/Core/Archiver/ArchiverManager.php
index fd1165b..f94869f 100644
--- a/core/lib/Drupal/Core/Archiver/ArchiverManager.php
+++ b/core/lib/Drupal/Core/Archiver/ArchiverManager.php
@@ -25,7 +25,7 @@ class ArchiverManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('Core', 'Archiver', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('Archiver', $namespaces);
     $this->discovery = new AlterDecorator($this->discovery, 'archiver_info');
     $this->discovery = new CacheDecorator($this->discovery, 'archiver_info');
   }
diff --git a/core/lib/Drupal/Core/Condition/ConditionManager.php b/core/lib/Drupal/Core/Condition/ConditionManager.php
index ffa22fd..4131330 100644
--- a/core/lib/Drupal/Core/Condition/ConditionManager.php
+++ b/core/lib/Drupal/Core/Condition/ConditionManager.php
@@ -29,7 +29,7 @@ class ConditionManager extends PluginManagerBase implements ExecutableManagerInt
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('Core', 'Condition', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('Condition', $namespaces);
     $this->discovery = new DerivativeDiscoveryDecorator($this->discovery);
     $this->discovery = new AlterDecorator($this->discovery, 'condition_info');
     $this->discovery = new CacheDecorator($this->discovery, 'condition:' . language(LANGUAGE_TYPE_INTERFACE)->langcode);
diff --git a/core/lib/Drupal/Core/Entity/EntityManager.php b/core/lib/Drupal/Core/Entity/EntityManager.php
index 1ad1495..9e1d12f 100644
--- a/core/lib/Drupal/Core/Entity/EntityManager.php
+++ b/core/lib/Drupal/Core/Entity/EntityManager.php
@@ -50,7 +50,7 @@ public function __construct(\Traversable $namespaces) {
     $annotation_namespaces = array(
       'Drupal\Core\Entity\Annotation' => DRUPAL_ROOT . '/core/lib',
     );
-    $this->discovery = new AnnotatedClassDiscovery('Core', 'Entity', $namespaces, $annotation_namespaces, 'Drupal\Core\Entity\Annotation\EntityType');
+    $this->discovery = new AnnotatedClassDiscovery('Core/Entity', $namespaces, $annotation_namespaces, 'Drupal\Core\Entity\Annotation\EntityType');
     $this->discovery = new InfoHookDecorator($this->discovery, 'entity_info');
     $this->discovery = new AlterDecorator($this->discovery, 'entity_info');
     $this->discovery = new CacheDecorator($this->discovery, 'entity_info:' . language(LANGUAGE_TYPE_INTERFACE)->langcode, 'cache', CacheBackendInterface::CACHE_PERMANENT, array('entity_info' => TRUE));
diff --git a/core/lib/Drupal/Core/Plugin/Discovery/AnnotatedClassDiscovery.php b/core/lib/Drupal/Core/Plugin/Discovery/AnnotatedClassDiscovery.php
index 2694e33..8a45afc 100644
--- a/core/lib/Drupal/Core/Plugin/Discovery/AnnotatedClassDiscovery.php
+++ b/core/lib/Drupal/Core/Plugin/Discovery/AnnotatedClassDiscovery.php
@@ -38,14 +38,12 @@ class AnnotatedClassDiscovery extends ComponentAnnotatedClassDiscovery {
   /**
    * Constructs an AnnotatedClassDiscovery object.
    *
-   * @param string $owner
-   *   The module name that defines the plugin type.
-   * @param string $type
-   *   The plugin type, for example filter.
+   * @param string $subdir
+   *   The plugin's subdirectory, for example views/filter.
    * @param \Traversable $root_namespaces
    *   An object that implements \Traversable which contains the root paths
    *   keyed by the corresponding namespace to look for plugin implementations,
-   *   \Plugin\$owner\$type will be appended to each namespace.
+   *   \Plugin\$subdir will be appended to each namespace.
    * @param array $annotation_namespaces
    *   (optional) The namespaces of classes that can be used as annotations.
    *   Defaults to an empty array.
@@ -53,9 +51,8 @@ class AnnotatedClassDiscovery extends ComponentAnnotatedClassDiscovery {
    *   (optional) The name of the annotation that contains the plugin definition.
    *   Defaults to 'Drupal\Component\Annotation\Plugin'.
    */
-  function __construct($owner, $type, \Traversable $root_namespaces, $annotation_namespaces = array(), $plugin_definition_annotation_name = 'Drupal\Component\Annotation\Plugin') {
-    $this->owner = $owner;
-    $this->type = $type;
+  function __construct($subdir, \Traversable $root_namespaces, $annotation_namespaces = array(), $plugin_definition_annotation_name = 'Drupal\Component\Annotation\Plugin') {
+    $this->subdir = str_replace('/', '\\', $subdir);
     $this->rootNamespacesIterator = $root_namespaces;
     $annotation_namespaces += array(
       'Drupal\Component\Annotation' => DRUPAL_ROOT . '/core/lib',
@@ -71,7 +68,7 @@ function __construct($owner, $type, \Traversable $root_namespaces, $annotation_n
   protected function getPluginNamespaces() {
     $plugin_namespaces = array();
     foreach ($this->rootNamespacesIterator as $namespace => $dir) {
-      $plugin_namespaces["$namespace\\Plugin\\{$this->owner}\\{$this->type}"] = array($dir);
+      $plugin_namespaces["$namespace\\Plugin\\{$this->subdir}"] = array($dir);
     }
 
     return $plugin_namespaces;
diff --git a/core/lib/Drupal/Core/Validation/ConstraintManager.php b/core/lib/Drupal/Core/Validation/ConstraintManager.php
index 5c8719b..8afd195 100644
--- a/core/lib/Drupal/Core/Validation/ConstraintManager.php
+++ b/core/lib/Drupal/Core/Validation/ConstraintManager.php
@@ -44,7 +44,7 @@ class ConstraintManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('Validation', 'Constraint', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('Validation/Constraint', $namespaces);
     $this->discovery = new StaticDiscoveryDecorator($this->discovery, array($this, 'registerDefinitions'));
     $this->discovery = new DerivativeDiscoveryDecorator($this->discovery);
     $this->discovery = new ProcessDecorator($this->discovery, array($this, 'processDefinition'));
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/AggregatorPluginManager.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/AggregatorPluginManager.php
index aaa6e3e..20ae316 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/AggregatorPluginManager.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/AggregatorPluginManager.php
@@ -27,7 +27,7 @@ class AggregatorPluginManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct($type, \Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('aggregator', $type, $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery("aggregator/$type", $namespaces);
     $this->discovery = new CacheDecorator($this->discovery, "aggregator_$type:" . language(LANGUAGE_TYPE_INTERFACE)->langcode);
     $this->factory = new DefaultFactory($this->discovery);
   }
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/block/block/AggregatorCategoryBlock.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Block/AggregatorCategoryBlock.php
similarity index 95%
rename from core/modules/aggregator/lib/Drupal/aggregator/Plugin/block/block/AggregatorCategoryBlock.php
rename to core/modules/aggregator/lib/Drupal/aggregator/Plugin/Block/AggregatorCategoryBlock.php
index acf8520..d7af2b3 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/block/block/AggregatorCategoryBlock.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Block/AggregatorCategoryBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\aggregator\Plugin\block\block\AggregatorCategoryBlock.
+ * Contains \Drupal\aggregator\Plugin\Block\AggregatorCategoryBlock.
  */
 
-namespace Drupal\aggregator\Plugin\block\block;
+namespace Drupal\aggregator\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/block/block/AggregatorFeedBlock.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Block/AggregatorFeedBlock.php
similarity index 95%
rename from core/modules/aggregator/lib/Drupal/aggregator/Plugin/block/block/AggregatorFeedBlock.php
rename to core/modules/aggregator/lib/Drupal/aggregator/Plugin/Block/AggregatorFeedBlock.php
index 335c370..4ffa57a 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/block/block/AggregatorFeedBlock.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Block/AggregatorFeedBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\aggregator\Plugin\block\block\AggregatorFeedBlock.
+ * Contains \Drupal\aggregator\Plugin\Block\AggregatorFeedBlock.
  */
 
-namespace Drupal\aggregator\Plugin\block\block;
+namespace Drupal\aggregator\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/block/custom_block/custom_block.module b/core/modules/block/custom_block/custom_block.module
index adf9f0f..e8ffbf0 100644
--- a/core/modules/block/custom_block/custom_block.module
+++ b/core/modules/block/custom_block/custom_block.module
@@ -7,7 +7,6 @@
 
 use Drupal\custom_block\Plugin\Core\Entity\CustomBlockType;
 use Drupal\custom_block\Plugin\Core\Entity\CustomBlock;
-use Drupal\custom_block\Plugin\block\block\CustomBlockBlock;
 use Drupal\block\Plugin\Core\Entity\Block;
 
 /**
diff --git a/core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/block/block/CustomBlockBlock.php b/core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/Block/CustomBlockBlock.php
similarity index 95%
rename from core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/block/block/CustomBlockBlock.php
rename to core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/Block/CustomBlockBlock.php
index ab8c65e..25c3a86 100644
--- a/core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/block/block/CustomBlockBlock.php
+++ b/core/modules/block/custom_block/lib/Drupal/custom_block/Plugin/Block/CustomBlockBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\custom_block\Plugin\block\block\CustomBlockBlock.
+ * Contains \Drupal\custom_block\Plugin\Block\CustomBlockBlock.
  */
 
-namespace Drupal\custom_block\Plugin\block\block;
+namespace Drupal\custom_block\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/block/lib/Drupal/block/Plugin/system/plugin_ui/BlockPluginUI.php b/core/modules/block/lib/Drupal/block/Plugin/PluginUI/BlockPluginUI.php
similarity index 98%
rename from core/modules/block/lib/Drupal/block/Plugin/system/plugin_ui/BlockPluginUI.php
rename to core/modules/block/lib/Drupal/block/Plugin/PluginUI/BlockPluginUI.php
index 1d4f6f4..cda4836 100644
--- a/core/modules/block/lib/Drupal/block/Plugin/system/plugin_ui/BlockPluginUI.php
+++ b/core/modules/block/lib/Drupal/block/Plugin/PluginUI/BlockPluginUI.php
@@ -1,10 +1,10 @@
 <?php
 
 /**
- * Contains \Drupal\block\Plugin\system\plugin_ui\BlockPluginUI.
+ * Contains \Drupal\block\Plugin\PluginUI\BlockPluginUI.
  */
 
-namespace Drupal\block\Plugin\system\plugin_ui;
+namespace Drupal\block\Plugin\PluginUI;
 
 use Drupal\system\Plugin\PluginUIBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/block/lib/Drupal/block/Plugin/Type/BlockManager.php b/core/modules/block/lib/Drupal/block/Plugin/Type/BlockManager.php
index faf7500..488722c 100644
--- a/core/modules/block/lib/Drupal/block/Plugin/Type/BlockManager.php
+++ b/core/modules/block/lib/Drupal/block/Plugin/Type/BlockManager.php
@@ -32,7 +32,7 @@ class BlockManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('block', 'block', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('Block', $namespaces);
     $this->discovery = new DerivativeDiscoveryDecorator($this->discovery);
     $this->discovery = new AlterDecorator($this->discovery, 'block');
     $this->discovery = new CacheDecorator($this->discovery, 'block_plugins:' . language(LANGUAGE_TYPE_INTERFACE)->langcode, 'block', CacheBackendInterface::CACHE_PERMANENT, array('block'));
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockStorageUnitTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockStorageUnitTest.php
index f0f873f..af060db 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockStorageUnitTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockStorageUnitTest.php
@@ -8,7 +8,7 @@
 namespace Drupal\block\Tests;
 
 use Drupal\simpletest\DrupalUnitTestBase;
-use Drupal\block_test\Plugin\block\block\TestHtmlIdBlock;
+use Drupal\block_test\Plugin\Block\TestHtmlIdBlock;
 use Drupal\Component\Plugin\Exception\PluginException;
 use Drupal\block\BlockStorageController;
 use Drupal\Core\Entity\EntityMalformedException;
diff --git a/core/modules/block/tests/lib/Drupal/block_test/Plugin/block/block/TestCacheBlock.php b/core/modules/block/tests/lib/Drupal/block_test/Plugin/Block/TestCacheBlock.php
similarity index 87%
rename from core/modules/block/tests/lib/Drupal/block_test/Plugin/block/block/TestCacheBlock.php
rename to core/modules/block/tests/lib/Drupal/block_test/Plugin/Block/TestCacheBlock.php
index 14dfd9d..8dcea55 100644
--- a/core/modules/block/tests/lib/Drupal/block_test/Plugin/block/block/TestCacheBlock.php
+++ b/core/modules/block/tests/lib/Drupal/block_test/Plugin/Block/TestCacheBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\block_test\Plugin\block\block\TestCacheBlock.
+ * Contains \Drupal\block_test\Plugin\Block\TestCacheBlock.
  */
 
-namespace Drupal\block_test\Plugin\block\block;
+namespace Drupal\block_test\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/block/tests/lib/Drupal/block_test/Plugin/block/block/TestHtmlIdBlock.php b/core/modules/block/tests/lib/Drupal/block_test/Plugin/Block/TestHtmlIdBlock.php
similarity index 75%
rename from core/modules/block/tests/lib/Drupal/block_test/Plugin/block/block/TestHtmlIdBlock.php
rename to core/modules/block/tests/lib/Drupal/block_test/Plugin/Block/TestHtmlIdBlock.php
index 8eb64c5..82d1310 100644
--- a/core/modules/block/tests/lib/Drupal/block_test/Plugin/block/block/TestHtmlIdBlock.php
+++ b/core/modules/block/tests/lib/Drupal/block_test/Plugin/Block/TestHtmlIdBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\block_test\Plugin\block\block\TestHtmlIdBlock.
+ * Contains \Drupal\block_test\Plugin\Block\TestHtmlIdBlock.
  */
 
-namespace Drupal\block_test\Plugin\block\block;
+namespace Drupal\block_test\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/block/tests/lib/Drupal/block_test/Plugin/block/block/TestXSSTitleBlock.php b/core/modules/block/tests/lib/Drupal/block_test/Plugin/Block/TestXSSTitleBlock.php
similarity index 81%
rename from core/modules/block/tests/lib/Drupal/block_test/Plugin/block/block/TestXSSTitleBlock.php
rename to core/modules/block/tests/lib/Drupal/block_test/Plugin/Block/TestXSSTitleBlock.php
index 11e566d..ea134df 100644
--- a/core/modules/block/tests/lib/Drupal/block_test/Plugin/block/block/TestXSSTitleBlock.php
+++ b/core/modules/block/tests/lib/Drupal/block_test/Plugin/Block/TestXSSTitleBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\block_test\Plugin\block\block\TestXSSTitleBlock.
+ * Contains \Drupal\block_test\Plugin\Block\TestXSSTitleBlock.
  */
 
-namespace Drupal\block_test\Plugin\block\block;
+namespace Drupal\block_test\Plugin\Block;
 
 use Drupal\Component\Annotation\Plugin;
 
diff --git a/core/modules/book/lib/Drupal/book/Plugin/block/block/BookNavigationBlock.php b/core/modules/book/lib/Drupal/book/Plugin/Block/BookNavigationBlock.php
similarity index 97%
rename from core/modules/book/lib/Drupal/book/Plugin/block/block/BookNavigationBlock.php
rename to core/modules/book/lib/Drupal/book/Plugin/Block/BookNavigationBlock.php
index e3b8162..4b9ccce 100644
--- a/core/modules/book/lib/Drupal/book/Plugin/block/block/BookNavigationBlock.php
+++ b/core/modules/book/lib/Drupal/book/Plugin/Block/BookNavigationBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\book\Plugin\block\block\BookNavigationBlock.
+ * Contains \Drupal\book\Plugin\Block\BookNavigationBlock.
  */
 
-namespace Drupal\book\Plugin\block\block;
+namespace Drupal\book\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/ckeditor/lib/Drupal/ckeditor/CKEditorPluginManager.php b/core/modules/ckeditor/lib/Drupal/ckeditor/CKEditorPluginManager.php
index 5386a9f..d7e6a44 100644
--- a/core/modules/ckeditor/lib/Drupal/ckeditor/CKEditorPluginManager.php
+++ b/core/modules/ckeditor/lib/Drupal/ckeditor/CKEditorPluginManager.php
@@ -29,7 +29,7 @@ class CKEditorPluginManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('ckeditor', 'plugin', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('CKEditor', $namespaces);
     $this->discovery = new AlterDecorator($this->discovery, 'ckeditor_plugin_info');
     $this->discovery = new CacheDecorator($this->discovery, 'ckeditor_plugin');
     $this->factory = new DefaultFactory($this->discovery);
diff --git a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/ckeditor/plugin/Internal.php b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/CKEditor/Internal.php
similarity index 98%
rename from core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/ckeditor/plugin/Internal.php
rename to core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/CKEditor/Internal.php
index 6c8fd54..d881661 100644
--- a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/ckeditor/plugin/Internal.php
+++ b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/CKEditor/Internal.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\ckeditor\Plugin\ckeditor\plugin\Internal.
+ * Contains \Drupal\ckeditor\Plugin\CKEditor\Internal.
  */
 
-namespace Drupal\ckeditor\Plugin\ckeditor\plugin;
+namespace Drupal\ckeditor\Plugin\CKEditor;
 
 use Drupal\ckeditor\CKEditorPluginBase;
 use Drupal\Component\Utility\NestedArray;
diff --git a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/ckeditor/plugin/StylesCombo.php b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/CKEditor/StylesCombo.php
similarity index 97%
rename from core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/ckeditor/plugin/StylesCombo.php
rename to core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/CKEditor/StylesCombo.php
index a787676..0af025b 100644
--- a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/ckeditor/plugin/StylesCombo.php
+++ b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/CKEditor/StylesCombo.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\ckeditor\Plugin\ckeditor\plugin\StylesCombo.
+ * Contains \Drupal\ckeditor\Plugin\CKEditor\StylesCombo.
  */
 
-namespace Drupal\ckeditor\Plugin\ckeditor\plugin;
+namespace Drupal\ckeditor\Plugin\CKEditor;
 
 use Drupal\ckeditor\CKEditorPluginBase;
 use Drupal\ckeditor\CKEditorPluginConfigurableInterface;
diff --git a/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/Llama.php b/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/Llama.php
similarity index 91%
rename from core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/Llama.php
rename to core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/Llama.php
index 21d6cf1..10629c0 100644
--- a/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/Llama.php
+++ b/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/Llama.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\ckeditor_test\Plugin\ckeditor\plugin\Llama.
+ * Contains \Drupal\ckeditor_test\Plugin\CKEditor\Llama.
  */
 
-namespace Drupal\ckeditor_test\Plugin\ckeditor\plugin;
+namespace Drupal\ckeditor_test\Plugin\CKEditor;
 
 use Drupal\ckeditor\CKEditorPluginInterface;
 use Drupal\Component\Plugin\PluginBase;
diff --git a/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/LlamaButton.php b/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/LlamaButton.php
similarity index 87%
rename from core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/LlamaButton.php
rename to core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/LlamaButton.php
index 0eecda8..3150e4f 100644
--- a/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/LlamaButton.php
+++ b/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/LlamaButton.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\ckeditor_test\Plugin\ckeditor\plugin\LlamaButton.
+ * Contains \Drupal\ckeditor_test\Plugin\CKEditor\LlamaButton.
  */
 
-namespace Drupal\ckeditor_test\Plugin\ckeditor\plugin;
+namespace Drupal\ckeditor_test\Plugin\CKEditor;
 
 use Drupal\ckeditor\CKEditorPluginButtonsInterface;
 use Drupal\Component\Plugin\PluginBase;
diff --git a/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/LlamaContextual.php b/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/LlamaContextual.php
similarity index 89%
rename from core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/LlamaContextual.php
rename to core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/LlamaContextual.php
index 5c4961b..08bafb0 100644
--- a/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/LlamaContextual.php
+++ b/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/LlamaContextual.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\ckeditor_test\Plugin\ckeditor\plugin\LlamaContextual.
+ * Contains \Drupal\ckeditor_test\Plugin\CKEditor\LlamaContextual.
  */
 
-namespace Drupal\ckeditor_test\Plugin\ckeditor\plugin;
+namespace Drupal\ckeditor_test\Plugin\CKEditor;
 
 use Drupal\ckeditor\CKEditorPluginContextualInterface;
 use Drupal\Component\Plugin\PluginBase;
diff --git a/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/LlamaContextualAndButton.php b/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/LlamaContextualAndButton.php
similarity index 94%
rename from core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/LlamaContextualAndButton.php
rename to core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/LlamaContextualAndButton.php
index 474ce58..e415673 100644
--- a/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/ckeditor/plugin/LlamaContextualAndButton.php
+++ b/core/modules/ckeditor/tests/modules/lib/Drupal/ckeditor_test/Plugin/CKEditor/LlamaContextualAndButton.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\ckeditor_test\Plugin\ckeditor\plugin\LlamaContextualAndButton.
+ * Contains \Drupal\ckeditor_test\Plugin\CKEditor\LlamaContextualAndButton.
  */
 
-namespace Drupal\ckeditor_test\Plugin\ckeditor\plugin;
+namespace Drupal\ckeditor_test\Plugin\CKEditor;
 
 use Drupal\ckeditor\CKEditorPluginButtonsInterface;
 use Drupal\ckeditor\CKEditorPluginContextualInterface;
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/block/block/RecentCommentsBlock.php b/core/modules/comment/lib/Drupal/comment/Plugin/Block/RecentCommentsBlock.php
similarity index 93%
rename from core/modules/comment/lib/Drupal/comment/Plugin/block/block/RecentCommentsBlock.php
rename to core/modules/comment/lib/Drupal/comment/Plugin/Block/RecentCommentsBlock.php
index a55c8e1..14601c0 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/block/block/RecentCommentsBlock.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/Block/RecentCommentsBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\comment\Plugin\block\block\RecentCommentsBlock.
+ * Contains \Drupal\comment\Plugin\Block\RecentCommentsBlock.
  */
 
-namespace Drupal\comment\Plugin\block\block;
+namespace Drupal\comment\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/edit/lib/Drupal/edit/Plugin/EditorManager.php b/core/modules/edit/lib/Drupal/edit/Plugin/EditorManager.php
index 8d0032f..96bbf36 100644
--- a/core/modules/edit/lib/Drupal/edit/Plugin/EditorManager.php
+++ b/core/modules/edit/lib/Drupal/edit/Plugin/EditorManager.php
@@ -29,7 +29,7 @@ class EditorManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('edit', 'editor', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('edit/editor', $namespaces);
     $this->discovery = new ProcessDecorator($this->discovery, array($this, 'processDefinition'));
     $this->discovery = new AlterDecorator($this->discovery, 'edit_editor');
     $this->discovery = new CacheDecorator($this->discovery, 'edit:editor');
diff --git a/core/modules/editor/lib/Drupal/editor/Plugin/EditorManager.php b/core/modules/editor/lib/Drupal/editor/Plugin/EditorManager.php
index 989af1f..b94d259 100644
--- a/core/modules/editor/lib/Drupal/editor/Plugin/EditorManager.php
+++ b/core/modules/editor/lib/Drupal/editor/Plugin/EditorManager.php
@@ -27,7 +27,7 @@ class EditorManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('editor', 'editor', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('editor/editor', $namespaces);
     $this->discovery = new AlterDecorator($this->discovery, 'editor_info');
     $this->discovery = new CacheDecorator($this->discovery, 'editor');
     $this->factory = new DefaultFactory($this->discovery);
diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Type/SelectionPluginManager.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Type/SelectionPluginManager.php
index bd140a9..f178242 100644
--- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Type/SelectionPluginManager.php
+++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Type/SelectionPluginManager.php
@@ -28,7 +28,7 @@ class SelectionPluginManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->baseDiscovery = new AlterDecorator(new AnnotatedClassDiscovery('entity_reference', 'selection', $namespaces), 'entity_reference_selection');
+    $this->baseDiscovery = new AlterDecorator(new AnnotatedClassDiscovery('entity_reference/selection', $namespaces), 'entity_reference_selection');
     $this->discovery = new CacheDecorator($this->baseDiscovery, 'entity_reference_selection');
     $this->factory = new ReflectionFactory($this);
   }
diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterPluginManager.php b/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterPluginManager.php
index 90722d5..2260610 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterPluginManager.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterPluginManager.php
@@ -35,7 +35,7 @@ class FormatterPluginManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('field', 'formatter', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('field/formatter', $namespaces);
     $this->discovery = new ProcessDecorator($this->discovery, array($this, 'processDefinition'));
     $this->discovery = new AlterDecorator($this->discovery, 'field_formatter_info');
     $this->discovery = new CacheDecorator($this->discovery, 'field_formatter_types', 'field');
diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetPluginManager.php b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetPluginManager.php
index 6cbad1f..c8ea1f9 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetPluginManager.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetPluginManager.php
@@ -36,7 +36,7 @@ class WidgetPluginManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('field', 'widget', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('field/widget', $namespaces);
     $this->discovery = new ProcessDecorator($this->discovery, array($this, 'processDefinition'));
     $this->discovery = new AlterDecorator($this->discovery, 'field_widget_info');
     $this->discovery = new CacheDecorator($this->discovery, 'field_widget_types',  'field');
diff --git a/core/modules/forum/lib/Drupal/forum/Plugin/block/block/ActiveTopicsBlock.php b/core/modules/forum/lib/Drupal/forum/Plugin/Block/ActiveTopicsBlock.php
similarity index 88%
rename from core/modules/forum/lib/Drupal/forum/Plugin/block/block/ActiveTopicsBlock.php
rename to core/modules/forum/lib/Drupal/forum/Plugin/Block/ActiveTopicsBlock.php
index c4fab8c..b522d65 100644
--- a/core/modules/forum/lib/Drupal/forum/Plugin/block/block/ActiveTopicsBlock.php
+++ b/core/modules/forum/lib/Drupal/forum/Plugin/Block/ActiveTopicsBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\forum\Plugin\block\block\ActiveTopicsBlock.
+ * Contains \Drupal\forum\Plugin\Block\ActiveTopicsBlock.
  */
 
-namespace Drupal\forum\Plugin\block\block;
+namespace Drupal\forum\Plugin\Block;
 
 use Drupal\Component\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
diff --git a/core/modules/forum/lib/Drupal/forum/Plugin/block/block/ForumBlockBase.php b/core/modules/forum/lib/Drupal/forum/Plugin/Block/ForumBlockBase.php
similarity index 91%
rename from core/modules/forum/lib/Drupal/forum/Plugin/block/block/ForumBlockBase.php
rename to core/modules/forum/lib/Drupal/forum/Plugin/Block/ForumBlockBase.php
index 1ff05f3..4d9d64c 100644
--- a/core/modules/forum/lib/Drupal/forum/Plugin/block/block/ForumBlockBase.php
+++ b/core/modules/forum/lib/Drupal/forum/Plugin/Block/ForumBlockBase.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\forum\Plugin\block\block\ForumBlockBase.
+ * Contains \Drupal\forum\Plugin\Block\ForumBlockBase.
  */
 
-namespace Drupal\forum\Plugin\block\block;
+namespace Drupal\forum\Plugin\Block;
 
 use Drupal\block\BlockBase;
 
diff --git a/core/modules/forum/lib/Drupal/forum/Plugin/block/block/NewTopicsBlock.php b/core/modules/forum/lib/Drupal/forum/Plugin/Block/NewTopicsBlock.php
similarity index 87%
rename from core/modules/forum/lib/Drupal/forum/Plugin/block/block/NewTopicsBlock.php
rename to core/modules/forum/lib/Drupal/forum/Plugin/Block/NewTopicsBlock.php
index 1ef7311..4e85482 100644
--- a/core/modules/forum/lib/Drupal/forum/Plugin/block/block/NewTopicsBlock.php
+++ b/core/modules/forum/lib/Drupal/forum/Plugin/Block/NewTopicsBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\forum\Plugin\block\block\NewTopicsBlock.
+ * Contains \Drupal\forum\Plugin\Block\NewTopicsBlock.
  */
 
-namespace Drupal\forum\Plugin\block\block;
+namespace Drupal\forum\Plugin\Block;
 
 use Drupal\Component\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
diff --git a/core/modules/language/lib/Drupal/language/Plugin/Core/Condition/Language.php b/core/modules/language/lib/Drupal/language/Plugin/Condition/Language.php
similarity index 96%
rename from core/modules/language/lib/Drupal/language/Plugin/Core/Condition/Language.php
rename to core/modules/language/lib/Drupal/language/Plugin/Condition/Language.php
index 70ec6ef..aba35d5 100644
--- a/core/modules/language/lib/Drupal/language/Plugin/Core/Condition/Language.php
+++ b/core/modules/language/lib/Drupal/language/Plugin/Condition/Language.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\language\Plugin\Core\Condition\Language.
+ * Contains \Drupal\language\Plugin\Condition\Language.
  */
 
-namespace Drupal\language\Plugin\Core\Condition;
+namespace Drupal\language\Plugin\Condition;
 
 use Drupal\Core\Condition\ConditionPluginBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/language/lib/Drupal/language/Plugin/block/block/LanguageBlock.php b/core/modules/language/lib/Drupal/language/Plugin/Block/LanguageBlock.php
similarity index 91%
rename from core/modules/language/lib/Drupal/language/Plugin/block/block/LanguageBlock.php
rename to core/modules/language/lib/Drupal/language/Plugin/Block/LanguageBlock.php
index efe4b79..3c64703 100644
--- a/core/modules/language/lib/Drupal/language/Plugin/block/block/LanguageBlock.php
+++ b/core/modules/language/lib/Drupal/language/Plugin/Block/LanguageBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\language\Plugin\block\block\LanguageBlock.
+ * Contains \Drupal\language\Plugin\Block\LanguageBlock.
  */
 
-namespace Drupal\language\Plugin\block\block;
+namespace Drupal\language\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/layout/lib/Drupal/layout/Plugin/Type/LayoutManager.php b/core/modules/layout/lib/Drupal/layout/Plugin/Type/LayoutManager.php
index 179ea4b..e22623f1 100644
--- a/core/modules/layout/lib/Drupal/layout/Plugin/Type/LayoutManager.php
+++ b/core/modules/layout/lib/Drupal/layout/Plugin/Type/LayoutManager.php
@@ -19,7 +19,7 @@
 class LayoutManager extends PluginManagerBase {
 
   protected $defaults = array(
-    'class' => 'Drupal\layout\Plugin\layout\layout\StaticLayout',
+    'class' => 'Drupal\layout\Plugin\Layout\StaticLayout',
   );
 
   /**
@@ -31,7 +31,7 @@ class LayoutManager extends PluginManagerBase {
    */
   public function __construct(\Traversable $namespaces) {
     // Create layout plugin derivatives from declaratively defined layouts.
-    $this->discovery = new AnnotatedClassDiscovery('layout', 'layout', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('Layout', $namespaces);
     $this->discovery = new DerivativeDiscoveryDecorator($this->discovery);
     $this->discovery = new ProcessDecorator($this->discovery, array($this, 'processDefinition'));
 
diff --git a/core/modules/layout/lib/Drupal/layout/Plugin/layout/layout/StaticLayout.php b/core/modules/layout/lib/Drupal/layout/Plugin/Layout/StaticLayout.php
similarity index 96%
rename from core/modules/layout/lib/Drupal/layout/Plugin/layout/layout/StaticLayout.php
rename to core/modules/layout/lib/Drupal/layout/Plugin/Layout/StaticLayout.php
index 726b40e..ead803b 100644
--- a/core/modules/layout/lib/Drupal/layout/Plugin/layout/layout/StaticLayout.php
+++ b/core/modules/layout/lib/Drupal/layout/Plugin/Layout/StaticLayout.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\layout\Plugin\layout\layout\StaticLayout.
+ * Contains \Drupal\layout\Plugin\Layout\StaticLayout.
  */
 
-namespace Drupal\layout\Plugin\layout\layout;
+namespace Drupal\layout\Plugin\Layout;
 
 use Drupal\layout\Plugin\LayoutInterface;
 use Drupal\Component\Plugin\PluginBase;
diff --git a/core/modules/menu/lib/Drupal/menu/Plugin/block/block/MenuBlock.php b/core/modules/menu/lib/Drupal/menu/Plugin/Block/MenuBlock.php
similarity index 78%
rename from core/modules/menu/lib/Drupal/menu/Plugin/block/block/MenuBlock.php
rename to core/modules/menu/lib/Drupal/menu/Plugin/Block/MenuBlock.php
index 2044087..86dcd07 100644
--- a/core/modules/menu/lib/Drupal/menu/Plugin/block/block/MenuBlock.php
+++ b/core/modules/menu/lib/Drupal/menu/Plugin/Block/MenuBlock.php
@@ -2,12 +2,12 @@
 
 /**
  * @file
- * Contains \Drupal\menu\Plugin\block\block\MenuBlock.
+ * Contains \Drupal\menu\Plugin\Block\MenuBlock.
  */
 
-namespace Drupal\menu\Plugin\block\block;
+namespace Drupal\menu\Plugin\Block;
 
-use Drupal\system\Plugin\block\block\SystemMenuBlock;
+use Drupal\system\Plugin\Block\SystemMenuBlock;
 use Drupal\Component\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
 
diff --git a/core/modules/menu/menu.module b/core/modules/menu/menu.module
index 5daaff5..b638917 100644
--- a/core/modules/menu/menu.module
+++ b/core/modules/menu/menu.module
@@ -14,7 +14,7 @@
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\block\Plugin\Core\Entity\Block;
 use Drupal\system\Plugin\Core\Entity\Menu;
-use Drupal\system\Plugin\block\block\SystemMenuBlock;
+use Drupal\system\Plugin\Block\SystemMenuBlock;
 use Symfony\Component\HttpFoundation\JsonResponse;
 use Drupal\menu_link\Plugin\Core\Entity\MenuLink;
 use Drupal\menu_link\MenuLinkStorageController;
diff --git a/core/modules/node/lib/Drupal/node/Plugin/Core/Condition/NodeType.php b/core/modules/node/lib/Drupal/node/Plugin/Condition/NodeType.php
similarity index 96%
rename from core/modules/node/lib/Drupal/node/Plugin/Core/Condition/NodeType.php
rename to core/modules/node/lib/Drupal/node/Plugin/Condition/NodeType.php
index 0712745..71d2266 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/Core/Condition/NodeType.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/Condition/NodeType.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\node\Plugin\Core\Condition\NodeType.
+ * Contains \Drupal\node\Plugin\Condition\NodeType.
  */
 
-namespace Drupal\node\Plugin\Core\Condition;
+namespace Drupal\node\Plugin\Condition;
 
 use Drupal\Core\Condition\ConditionPluginBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/node/lib/Drupal/node/Plugin/block/block/RecentContentBlock.php b/core/modules/node/lib/Drupal/node/Plugin/Block/RecentContentBlock.php
similarity index 94%
rename from core/modules/node/lib/Drupal/node/Plugin/block/block/RecentContentBlock.php
rename to core/modules/node/lib/Drupal/node/Plugin/Block/RecentContentBlock.php
index 1064461..bc0c2c1 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/block/block/RecentContentBlock.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/Block/RecentContentBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\node\Plugin\block\block\RecentContentBlock.
+ * Contains \Drupal\node\Plugin\Block\RecentContentBlock.
  */
 
-namespace Drupal\node\Plugin\block\block;
+namespace Drupal\node\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/node/lib/Drupal/node/Plugin/block/block/SyndicateBlock.php b/core/modules/node/lib/Drupal/node/Plugin/Block/SyndicateBlock.php
similarity index 89%
rename from core/modules/node/lib/Drupal/node/Plugin/block/block/SyndicateBlock.php
rename to core/modules/node/lib/Drupal/node/Plugin/Block/SyndicateBlock.php
index 49d0eb4..a0df392 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/block/block/SyndicateBlock.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/Block/SyndicateBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\node\Plugin\block\block\SyndicateBlock.
+ * Contains \Drupal\node\Plugin\Block\SyndicateBlock.
  */
 
-namespace Drupal\node\Plugin\block\block;
+namespace Drupal\node\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/php/lib/Drupal/php/Plugin/Core/Condition/Php.php b/core/modules/php/lib/Drupal/php/Plugin/Condition/Php.php
similarity index 94%
rename from core/modules/php/lib/Drupal/php/Plugin/Core/Condition/Php.php
rename to core/modules/php/lib/Drupal/php/Plugin/Condition/Php.php
index 4427340..9d332c2 100644
--- a/core/modules/php/lib/Drupal/php/Plugin/Core/Condition/Php.php
+++ b/core/modules/php/lib/Drupal/php/Plugin/Condition/Php.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\php\Plugin\Core\Condition\Php.
+ * Contains \Drupal\php\Plugin\Condition\Php.
  */
 
-namespace Drupal\php\Plugin\Core\Condition;
+namespace Drupal\php\Plugin\Condition;
 
 use Drupal\Core\Condition\ConditionPluginBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php b/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php
index c23e970..1136376 100644
--- a/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php
+++ b/core/modules/rest/lib/Drupal/rest/Plugin/Type/ResourcePluginManager.php
@@ -26,7 +26,7 @@ class ResourcePluginManager extends PluginManagerBase {
    */
   public function __construct(\Traversable $namespaces) {
     // Create resource plugin derivatives from declaratively defined resources.
-    $this->discovery = new DerivativeDiscoveryDecorator(new AnnotatedClassDiscovery('rest', 'resource', $namespaces));
+    $this->discovery = new DerivativeDiscoveryDecorator(new AnnotatedClassDiscovery('rest/resource', $namespaces));
     $this->factory = new ReflectionFactory($this->discovery);
   }
 
diff --git a/core/modules/search/lib/Drupal/search/Plugin/block/block/SearchBlock.php b/core/modules/search/lib/Drupal/search/Plugin/Block/SearchBlock.php
similarity index 86%
rename from core/modules/search/lib/Drupal/search/Plugin/block/block/SearchBlock.php
rename to core/modules/search/lib/Drupal/search/Plugin/Block/SearchBlock.php
index 1076021..032fb5a 100644
--- a/core/modules/search/lib/Drupal/search/Plugin/block/block/SearchBlock.php
+++ b/core/modules/search/lib/Drupal/search/Plugin/Block/SearchBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\search\Plugin\block\block\SearchBlock.
+ * Contains \Drupal\search\Plugin\Block\SearchBlock.
  */
 
-namespace Drupal\search\Plugin\block\block;
+namespace Drupal\search\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/shortcut/lib/Drupal/shortcut/Plugin/block/block/ShortcutsBlock.php b/core/modules/shortcut/lib/Drupal/shortcut/Plugin/Block/ShortcutsBlock.php
similarity index 82%
rename from core/modules/shortcut/lib/Drupal/shortcut/Plugin/block/block/ShortcutsBlock.php
rename to core/modules/shortcut/lib/Drupal/shortcut/Plugin/Block/ShortcutsBlock.php
index 7a56d76..ff89f50 100644
--- a/core/modules/shortcut/lib/Drupal/shortcut/Plugin/block/block/ShortcutsBlock.php
+++ b/core/modules/shortcut/lib/Drupal/shortcut/Plugin/Block/ShortcutsBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\shortcut\Plugin\block\block\ShortcutsBlock.
+ * Contains \Drupal\shortcut\Plugin\Block\ShortcutsBlock.
  */
 
-namespace Drupal\shortcut\Plugin\block\block;
+namespace Drupal\shortcut\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/statistics/lib/Drupal/statistics/Plugin/block/block/StatisticsPopularBlock.php b/core/modules/statistics/lib/Drupal/statistics/Plugin/Block/StatisticsPopularBlock.php
similarity index 97%
rename from core/modules/statistics/lib/Drupal/statistics/Plugin/block/block/StatisticsPopularBlock.php
rename to core/modules/statistics/lib/Drupal/statistics/Plugin/Block/StatisticsPopularBlock.php
index 9a740ac..46e97b8 100644
--- a/core/modules/statistics/lib/Drupal/statistics/Plugin/block/block/StatisticsPopularBlock.php
+++ b/core/modules/statistics/lib/Drupal/statistics/Plugin/Block/StatisticsPopularBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\statistics\Plugin\block\block\StatisticsPopularBlock.
+ * Contains \Drupal\statistics\Plugin\Block\StatisticsPopularBlock.
  */
 
-namespace Drupal\statistics\Plugin\block\block;
+namespace Drupal\statistics\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/system/lib/Drupal/system/Plugin/Core/Archiver/Tar.php b/core/modules/system/lib/Drupal/system/Plugin/Archiver/Tar.php
similarity index 91%
rename from core/modules/system/lib/Drupal/system/Plugin/Core/Archiver/Tar.php
rename to core/modules/system/lib/Drupal/system/Plugin/Archiver/Tar.php
index b582804..b6510e3 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/Core/Archiver/Tar.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/Archiver/Tar.php
@@ -5,7 +5,7 @@
  * Contains \Drupal\system\Plugin\Core\Archiver\Tar.
  */
 
-namespace Drupal\system\Plugin\Core\Archiver;
+namespace Drupal\system\Plugin\Archiver;
 
 use Drupal\Component\Archiver\Tar as BaseTar;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/system/lib/Drupal/system/Plugin/Core/Archiver/Zip.php b/core/modules/system/lib/Drupal/system/Plugin/Archiver/Zip.php
similarity index 91%
rename from core/modules/system/lib/Drupal/system/Plugin/Core/Archiver/Zip.php
rename to core/modules/system/lib/Drupal/system/Plugin/Archiver/Zip.php
index 277d369..299774c 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/Core/Archiver/Zip.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/Archiver/Zip.php
@@ -5,7 +5,7 @@
  * Contains \Drupal\system\Plugin\Core\Archiver\Zip.
  */
 
-namespace Drupal\system\Plugin\Core\Archiver;
+namespace Drupal\system\Plugin\Archiver;
 
 use Drupal\Component\Archiver\Zip as BaseZip;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/system/lib/Drupal/system/Plugin/system/imagetoolkit/GDToolkit.php b/core/modules/system/lib/Drupal/system/Plugin/ImageToolkit/GDToolkit.php
similarity index 98%
rename from core/modules/system/lib/Drupal/system/Plugin/system/imagetoolkit/GDToolkit.php
rename to core/modules/system/lib/Drupal/system/Plugin/ImageToolkit/GDToolkit.php
index 1c513cb..06cb4a6 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/system/imagetoolkit/GDToolkit.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/ImageToolkit/GDToolkit.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\system\Plugin\system\imagetoolkit\GDToolkit;.
+ * Contains \Drupal\system\Plugin\ImageToolkit\GDToolkit;.
  */
 
-namespace Drupal\system\Plugin\system\imagetoolkit;
+namespace Drupal\system\Plugin\ImageToolkit;
 
 use Drupal\Component\Plugin\PluginBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/system/lib/Drupal/system/Plugin/ImageToolkitManager.php b/core/modules/system/lib/Drupal/system/Plugin/ImageToolkitManager.php
index c33f79a..dc5fb34 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/ImageToolkitManager.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/ImageToolkitManager.php
@@ -24,7 +24,7 @@ class ImageToolkitManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('system', 'imagetoolkit', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('ImageToolkit', $namespaces);
     $this->factory = new DefaultFactory($this->discovery);
   }
 
diff --git a/core/modules/system/lib/Drupal/system/Plugin/Type/PluginUIManager.php b/core/modules/system/lib/Drupal/system/Plugin/Type/PluginUIManager.php
index bc371c0..0514fe3 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/Type/PluginUIManager.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/Type/PluginUIManager.php
@@ -29,7 +29,7 @@ class PluginUIManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct(\Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('system', 'plugin_ui', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('PluginUI', $namespaces);
     $this->discovery = new DerivativeDiscoveryDecorator($this->discovery);
     $this->discovery = new AlterDecorator($this->discovery, 'plugin_ui');
     $this->discovery = new CacheDecorator($this->discovery, 'plugin_ui');
diff --git a/core/modules/system/lib/Drupal/system/Plugin/block/block/SystemHelpBlock.php b/core/modules/system/lib/Drupal/system/Plugin/Block/SystemHelpBlock.php
similarity index 88%
rename from core/modules/system/lib/Drupal/system/Plugin/block/block/SystemHelpBlock.php
rename to core/modules/system/lib/Drupal/system/Plugin/Block/SystemHelpBlock.php
index 140b092..9e12112 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/block/block/SystemHelpBlock.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/Block/SystemHelpBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\system\Plugin\block\block\SystemHelpBlock.
+ * Contains \Drupal\system\Plugin\Block\SystemHelpBlock.
  */
 
-namespace Drupal\system\Plugin\block\block;
+namespace Drupal\system\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/system/lib/Drupal/system/Plugin/block/block/SystemMainBlock.php b/core/modules/system/lib/Drupal/system/Plugin/Block/SystemMainBlock.php
similarity index 82%
rename from core/modules/system/lib/Drupal/system/Plugin/block/block/SystemMainBlock.php
rename to core/modules/system/lib/Drupal/system/Plugin/Block/SystemMainBlock.php
index 89e3a9c..db18651 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/block/block/SystemMainBlock.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/Block/SystemMainBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\system\Plugin\block\block\SystemMainBlock.
+ * Contains \Drupal\system\Plugin\Block\SystemMainBlock.
  */
 
-namespace Drupal\system\Plugin\block\block;
+namespace Drupal\system\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/system/lib/Drupal/system/Plugin/block/block/SystemMenuBlock.php b/core/modules/system/lib/Drupal/system/Plugin/Block/SystemMenuBlock.php
similarity index 90%
rename from core/modules/system/lib/Drupal/system/Plugin/block/block/SystemMenuBlock.php
rename to core/modules/system/lib/Drupal/system/Plugin/Block/SystemMenuBlock.php
index 8a2e11f..dd31fe3 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/block/block/SystemMenuBlock.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/Block/SystemMenuBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\system\Plugin\block\block\SystemMenuBlock.
+ * Contains \Drupal\system\Plugin\Block\SystemMenuBlock.
  */
 
-namespace Drupal\system\Plugin\block\block;
+namespace Drupal\system\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/system/lib/Drupal/system/Plugin/block/block/SystemPoweredByBlock.php b/core/modules/system/lib/Drupal/system/Plugin/Block/SystemPoweredByBlock.php
similarity index 83%
rename from core/modules/system/lib/Drupal/system/Plugin/block/block/SystemPoweredByBlock.php
rename to core/modules/system/lib/Drupal/system/Plugin/Block/SystemPoweredByBlock.php
index 9e29c1e..3969710 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/block/block/SystemPoweredByBlock.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/Block/SystemPoweredByBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\system\Plugin\block\block\SystemPoweredByBlock.
+ * Contains \Drupal\system\Plugin\Block\SystemPoweredByBlock.
  */
 
-namespace Drupal\system\Plugin\block\block;
+namespace Drupal\system\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/system/lib/Drupal/system/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php b/core/modules/system/lib/Drupal/system/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
index b54b064..0071f70 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
@@ -54,8 +54,8 @@ public function setUp() {
       ),
     );
     $namespaces = new \ArrayObject(array('Drupal\plugin_test' => DRUPAL_ROOT . '/core/modules/system/tests/modules/plugin_test/lib'));
-    $this->discovery = new AnnotatedClassDiscovery('plugin_test', 'fruit', $namespaces);
-    $this->emptyDiscovery = new AnnotatedClassDiscovery('non_existing_module', 'non_existing_plugin_type', $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery('plugin_test/fruit', $namespaces);
+    $this->emptyDiscovery = new AnnotatedClassDiscovery('non_existing_module/non_existing_plugin_type', $namespaces);
   }
 
 }
diff --git a/core/modules/system/lib/Drupal/system/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php b/core/modules/system/lib/Drupal/system/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
index 849933b..5ed2c5e 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
@@ -44,8 +44,8 @@ protected function setUp() {
       'Drupal\plugin_test\Plugin\Annotation' => DRUPAL_ROOT . '/core/modules/system/tests/modules/plugin_test/lib',
     );
 
-    $this->discovery = new AnnotatedClassDiscovery('plugin_test', 'custom_annotation', $root_namespaces, $annotation_namespaces, 'Drupal\plugin_test\Plugin\Annotation\PluginExample');
-    $this->emptyDiscovery = new AnnotatedClassDiscovery('non_existing_module', 'non_existing_plugin_type', $root_namespaces, $annotation_namespaces, 'Drupal\plugin_test\Plugin\Annotation\PluginExample');
+    $this->discovery = new AnnotatedClassDiscovery('plugin_test/custom_annotation', $root_namespaces, $annotation_namespaces, 'Drupal\plugin_test\Plugin\Annotation\PluginExample');
+    $this->emptyDiscovery = new AnnotatedClassDiscovery('non_existing_module/non_existing_plugin_type', $root_namespaces, $annotation_namespaces, 'Drupal\plugin_test\Plugin\Annotation\PluginExample');
   }
 
 }
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 8b8b4d0..192dada 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -10,7 +10,7 @@
 use Drupal\Core\Database\Database;
 use Drupal\Core\Utility\ModuleInfo;
 use Drupal\Core\TypedData\Primitive;
-use Drupal\system\Plugin\block\block\SystemMenuBlock;
+use Drupal\system\Plugin\Block\SystemMenuBlock;
 use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\HttpFoundation\Response;
 use Guzzle\Http\Exception\BadResponseException;
diff --git a/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/system/imagetoolkit/BrokenToolkit.php b/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/BrokenToolkit.php
similarity index 78%
rename from core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/system/imagetoolkit/BrokenToolkit.php
rename to core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/BrokenToolkit.php
index 63d3461..158083c 100644
--- a/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/system/imagetoolkit/BrokenToolkit.php
+++ b/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/BrokenToolkit.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\image_test\Plugin\system\imagetoolkit\BrokenToolkit.
+ * Contains \Drupal\image_test\Plugin\ImageToolkit\BrokenToolkit.
  */
 
-namespace Drupal\image_test\Plugin\system\imagetoolkit;
+namespace Drupal\image_test\Plugin\ImageToolkit;
 
 use Drupal\Component\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
diff --git a/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/system/imagetoolkit/TestToolkit.php b/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/TestToolkit.php
similarity index 96%
rename from core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/system/imagetoolkit/TestToolkit.php
rename to core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/TestToolkit.php
index b2634ac..18f55c6 100644
--- a/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/system/imagetoolkit/TestToolkit.php
+++ b/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/TestToolkit.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\image_test\Plugin\system\imagetoolkit\TestToolkit.
+ * Contains \Drupal\image_test\Plugin\ImageToolkit\TestToolkit.
  */
 
-namespace Drupal\image_test\Plugin\system\imagetoolkit;
+namespace Drupal\image_test\Plugin\ImageToolkit;
 
 use Drupal\Component\Plugin\PluginBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/tour/lib/Drupal/tour/TipPluginManager.php b/core/modules/tour/lib/Drupal/tour/TipPluginManager.php
index ddcc307..03658be 100644
--- a/core/modules/tour/lib/Drupal/tour/TipPluginManager.php
+++ b/core/modules/tour/lib/Drupal/tour/TipPluginManager.php
@@ -27,7 +27,7 @@ class TipPluginManager extends PluginManagerBase {
    */
   public function __construct(\Traversable $namespaces) {
     $annotation_namespaces = array('Drupal\tour\Annotation' => $namespaces['Drupal\tour']);
-    $this->discovery = new AnnotatedClassDiscovery('tour', 'tip', $namespaces, $annotation_namespaces, 'Drupal\tour\Annotation\Tip');
+    $this->discovery = new AnnotatedClassDiscovery('tour/tip', $namespaces, $annotation_namespaces, 'Drupal\tour\Annotation\Tip');
     $this->discovery = new CacheDecorator($this->discovery, 'tour');
 
     $this->factory = new DefaultFactory($this->discovery);
diff --git a/core/modules/user/lib/Drupal/user/Plugin/block/block/UserLoginBlock.php b/core/modules/user/lib/Drupal/user/Plugin/Block/UserLoginBlock.php
similarity index 94%
rename from core/modules/user/lib/Drupal/user/Plugin/block/block/UserLoginBlock.php
rename to core/modules/user/lib/Drupal/user/Plugin/Block/UserLoginBlock.php
index 4d57119..6f1486e 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/block/block/UserLoginBlock.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/Block/UserLoginBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\user\Plugin\block\block\UserLoginBlock.
+ * Contains \Drupal\user\Plugin\Block\UserLoginBlock.
  */
 
-namespace Drupal\user\Plugin\block\block;
+namespace Drupal\user\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/user/lib/Drupal/user/Plugin/block/block/UserNewBlock.php b/core/modules/user/lib/Drupal/user/Plugin/Block/UserNewBlock.php
similarity index 95%
rename from core/modules/user/lib/Drupal/user/Plugin/block/block/UserNewBlock.php
rename to core/modules/user/lib/Drupal/user/Plugin/Block/UserNewBlock.php
index b32714a..b9e1728 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/block/block/UserNewBlock.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/Block/UserNewBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\user\Plugin\block\block\UserNewBlock.
+ * Contains \Drupal\user\Plugin\Block\UserNewBlock.
  */
 
-namespace Drupal\user\Plugin\block\block;
+namespace Drupal\user\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/user/lib/Drupal/user/Plugin/block/block/UserOnlineBlock.php b/core/modules/user/lib/Drupal/user/Plugin/Block/UserOnlineBlock.php
similarity index 96%
rename from core/modules/user/lib/Drupal/user/Plugin/block/block/UserOnlineBlock.php
rename to core/modules/user/lib/Drupal/user/Plugin/Block/UserOnlineBlock.php
index 65dbe22..cad0da0 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/block/block/UserOnlineBlock.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/Block/UserOnlineBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\user\Plugin\block\block\UserOnlineBlock.
+ * Contains \Drupal\user\Plugin\Block\UserOnlineBlock.
  */
 
-namespace Drupal\user\Plugin\block\block;
+namespace Drupal\user\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\Component\Annotation\Plugin;
diff --git a/core/modules/views/lib/Drupal/views/Plugin/block/block/ViewsBlock.php b/core/modules/views/lib/Drupal/views/Plugin/Block/ViewsBlock.php
similarity index 96%
rename from core/modules/views/lib/Drupal/views/Plugin/block/block/ViewsBlock.php
rename to core/modules/views/lib/Drupal/views/Plugin/Block/ViewsBlock.php
index 6b87904..0d42a89 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/block/block/ViewsBlock.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/Block/ViewsBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\views\Plugin\block\block\ViewsBlock.
+ * Contains \Drupal\views\Plugin\Block\ViewsBlock.
  */
 
-namespace Drupal\views\Plugin\block\block;
+namespace Drupal\views\Plugin\Block;
 
 use Drupal\block\BlockBase;
 use Drupal\block\Plugin\Core\Entity\Block;
diff --git a/core/modules/views/lib/Drupal/views/Plugin/block/block/ViewsExposedFilterBlock.php b/core/modules/views/lib/Drupal/views/Plugin/Block/ViewsExposedFilterBlock.php
similarity index 87%
rename from core/modules/views/lib/Drupal/views/Plugin/block/block/ViewsExposedFilterBlock.php
rename to core/modules/views/lib/Drupal/views/Plugin/Block/ViewsExposedFilterBlock.php
index 97037bb..21d3578 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/block/block/ViewsExposedFilterBlock.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/Block/ViewsExposedFilterBlock.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\views\Plugin\block\block\ViewsExposedFilterBlock.
+ * Contains \Drupal\views\Plugin\Block\ViewsExposedFilterBlock.
  */
 
-namespace Drupal\views\Plugin\block\block;
+namespace Drupal\views\Plugin\Block;
 
 use Drupal\Component\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
diff --git a/core/modules/views/lib/Drupal/views/Plugin/ViewsPluginManager.php b/core/modules/views/lib/Drupal/views/Plugin/ViewsPluginManager.php
index 4413b00..2b8c6a6 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/ViewsPluginManager.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/ViewsPluginManager.php
@@ -31,7 +31,7 @@ class ViewsPluginManager extends PluginManagerBase {
    *   keyed by the corresponding namespace to look for plugin implementations,
    */
   public function __construct($type, \Traversable $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('views', $type, $namespaces);
+    $this->discovery = new AnnotatedClassDiscovery("views/$type", $namespaces);
     $this->discovery = new DerivativeDiscoveryDecorator($this->discovery);
     $this->discovery = new ProcessDecorator($this->discovery, array($this, 'processDefinition'));
     $this->discovery = new AlterDecorator($this->discovery, 'views_plugins_' . $type);
