diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/AggregatorPluginManager.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/AggregatorPluginManager.php
index 9f51a71..eaf25d0 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/AggregatorPluginManager.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/AggregatorPluginManager.php
@@ -26,7 +26,18 @@ class AggregatorPluginManager extends PluginManagerBase {
    *   An array of paths keyed by it's corresponding namespaces.
    */
   public function __construct($type, array $namespaces) {
-    $this->discovery = new AnnotatedClassDiscovery('aggregator', $type, $namespaces);
+
+    $type_annotations = array(
+      'fetcher' => 'Drupal\aggregator\Plugin\Annotation\AggregatorFetcher',
+      'parser' => 'Drupal\aggregator\Plugin\Annotation\AggregatorParser',
+      'processor' => 'Drupal\aggregator\Plugin\Annotation\AggregatorProcessor',
+    );
+
+    $annotation_namespaces = array(
+      'Drupal\aggregator\Plugin\Annotation' => DRUPAL_ROOT . '/core/modules/aggregator/lib',
+    );
+
+    $this->discovery = new AnnotatedClassDiscovery('aggregator', $type, $namespaces, $annotation_namespaces, $type_annotations[$type]);
     $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/Annotation/AggregatorFetcher.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Annotation/AggregatorFetcher.php
new file mode 100644
index 0000000..3eb4a91
--- /dev/null
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Annotation/AggregatorFetcher.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * Contains \Drupal\aggregator\Plugin\Annotation\AggregatorFetcher.
+ */
+namespace Drupal\aggregator\Plugin\Annotation;
+
+use Drupal\Component\Annotation\Plugin;
+
+/**
+ * Defines a Plugin annotation object for aggregator fetcher plugins.
+ *
+ * @Annotation
+ */
+class AggregatorFetcher extends Plugin {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The title of the plugin.
+   *
+   * The string should be wrapped in a @Translatable()
+   *
+   * @var string
+   */
+  public $title;
+
+  /**
+   * The description of the plugin.
+   *
+   * The string should be wrapped in a @Translatable()
+   *
+   * @var string
+   */
+  public $description;
+
+}
+
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Annotation/AggregatorParser.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Annotation/AggregatorParser.php
new file mode 100644
index 0000000..5af7e91
--- /dev/null
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Annotation/AggregatorParser.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * Contains \Drupal\aggregator\Plugin\Annotation\AggregatorParser.
+ */
+namespace Drupal\aggregator\Plugin\Annotation;
+
+use Drupal\Component\Annotation\Plugin;
+
+/**
+ * Defines a Plugin annotation object for aggregator parser plugins.
+ *
+ * @Annotation
+ */
+class AggregatorParser extends Plugin {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The title of the plugin.
+   *
+   * The string should be wrapped in a @Translatable()
+   *
+   * @var string
+   */
+  public $title;
+
+  /**
+   * The description of the plugin.
+   *
+   * The string should be wrapped in a @Translatable()
+   *
+   * @var string
+   */
+  public $description;
+
+}
+
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Annotation/AggregatorProcessor.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Annotation/AggregatorProcessor.php
new file mode 100644
index 0000000..2e1a0b1
--- /dev/null
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/Annotation/AggregatorProcessor.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * Contains \Drupal\aggregator\Plugin\Annotation\AggregatorProcessor.
+ */
+namespace Drupal\aggregator\Plugin\Annotation;
+
+use Drupal\Component\Annotation\Plugin;
+
+/**
+ * Defines a Plugin annotation object for aggregator processor plugins.
+ *
+ * @Annotation
+ */
+class AggregatorProcessor extends Plugin {
+
+  /**
+   * The plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The title of the plugin.
+   *
+   * The string should be wrapped in a @Translatable()
+   *
+   * @var string
+   */
+  public $title;
+
+  /**
+   * The description of the plugin.
+   *
+   * The string should be wrapped in a @Translatable()
+   *
+   * @var string
+   */
+  public $description;
+
+}
+
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/fetcher/DefaultFetcher.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/fetcher/DefaultFetcher.php
index e71412b..0abb8d5 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/fetcher/DefaultFetcher.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/fetcher/DefaultFetcher.php
@@ -9,7 +9,7 @@
 
 use Drupal\aggregator\Plugin\FetcherInterface;
 use Drupal\aggregator\Plugin\Core\Entity\Feed;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\aggregator\Plugin\Annotation\AggregatorFetcher;
 use Drupal\Core\Annotation\Translation;
 use Guzzle\Http\Exception\BadResponseException;
 use Guzzle\Http\Exception\RequestException;
@@ -19,7 +19,7 @@
  *
  * Uses the http_default_client service to download the feed.
  *
- * @Plugin(
+ * @AggregatorFetcher(
  *   id = "aggregator",
  *   title = @Translation("Default fetcher"),
  *   description = @Translation("Downloads data from a URL using Drupal's HTTP request handler.")
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/parser/DefaultParser.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/parser/DefaultParser.php
index 0086bac..f88f882 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/parser/DefaultParser.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/parser/DefaultParser.php
@@ -9,7 +9,7 @@
 
 use Drupal\aggregator\Plugin\ParserInterface;
 use Drupal\aggregator\Plugin\Core\Entity\Feed;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\aggregator\Plugin\Annotation\AggregatorParser;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -17,7 +17,7 @@
  *
  * Parses RSS, Atom and RDF feeds.
  *
- * @Plugin(
+ * @AggregatorParser(
  *   id = "aggregator",
  *   title = @Translation("Default parser"),
  *   description = @Translation("Default parser for RSS, Atom and RDF feeds.")
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php
index 08777d1..2e1a1cc 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php
@@ -10,7 +10,7 @@
 use Drupal\Component\Plugin\PluginBase;
 use Drupal\aggregator\Plugin\ProcessorInterface;
 use Drupal\aggregator\Plugin\Core\Entity\Feed;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\aggregator\Plugin\Annotation\AggregatorProcessor;
 use Drupal\Core\Annotation\Translation;
 use Drupal\Core\Database\Database;
 
@@ -19,7 +19,7 @@
  *
  * Creates lightweight records from feed items.
  *
- * @Plugin(
+ * @AggregatorProcessor(
  *   id = "aggregator",
  *   title = @Translation("Default processor"),
  *   description = @Translation("Creates lightweight records from feed items.")
diff --git a/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/fetcher/TestFetcher.php b/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/fetcher/TestFetcher.php
index 87975b5..10ad69b 100644
--- a/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/fetcher/TestFetcher.php
+++ b/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/fetcher/TestFetcher.php
@@ -10,7 +10,7 @@
 use Drupal\aggregator\Plugin\FetcherInterface;
 use Drupal\aggregator\Plugin\aggregator\fetcher\DefaultFetcher;
 use Drupal\aggregator\Plugin\Core\Entity\Feed;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\aggregator\Plugin\Annotation\AggregatorFetcher;
 use Drupal\Core\Annotation\Translation;
 use Guzzle\Http\Exception\BadResponseException;
 
@@ -19,7 +19,7 @@
  *
  * Uses http_default_client class to download the feed.
  *
- * @Plugin(
+ * @AggregatorFetcher(
  *   id = "aggregator_test_fetcher",
  *   title = @Translation("Test fetcher"),
  *   description = @Translation("Dummy fetcher for testing purposes.")
diff --git a/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/parser/TestParser.php b/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/parser/TestParser.php
index f698763..1768710 100644
--- a/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/parser/TestParser.php
+++ b/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/parser/TestParser.php
@@ -10,7 +10,7 @@
 use Drupal\aggregator\Plugin\ParserInterface;
 use Drupal\aggregator\Plugin\Core\Entity\Feed;
 use Drupal\aggregator\Plugin\aggregator\parser\DefaultParser;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\aggregator\Plugin\Annotation\AggregatorParser;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
  *
  * Parses RSS, Atom and RDF feeds.
  *
- * @Plugin(
+ * @AggregatorParser(
  *   id = "aggregator_test_parser",
  *   title = @Translation("Test parser"),
  *   description = @Translation("Dummy parser for testing purposes.")
diff --git a/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/processor/TestProcessor.php b/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/processor/TestProcessor.php
index 3ffe213..5e499e9 100644
--- a/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/processor/TestProcessor.php
+++ b/core/modules/aggregator/tests/lib/Drupal/aggregator_test/Plugin/aggregator/processor/TestProcessor.php
@@ -10,7 +10,7 @@
 use Drupal\Component\Plugin\PluginBase;
 use Drupal\aggregator\Plugin\ProcessorInterface;
 use Drupal\aggregator\Plugin\Core\Entity\Feed;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\aggregator\Plugin\Annotation\AggregatorProcessor;
 use Drupal\Core\Annotation\Translation;
 
 /**
@@ -18,7 +18,7 @@
  *
  * Creates lightweight records from feed items.
  *
- * @Plugin(
+ * @AggregatorProcessor(
  *   id = "aggregator_test_processor",
  *   title = @Translation("Test processor"),
  *   description = @Translation("Test generic processor functionality.")
