diff --git a/core/lib/Drupal/Component/Plugin/Factory/DefaultFactory.php b/core/lib/Drupal/Component/Plugin/Factory/DefaultFactory.php
index 40cb49b8415fcdd08e0736728188d4d04bcf4f2c..242ff16c2a6ec22d9c4a0f30ce22d0ce113f8c3e 100644
--- a/core/lib/Drupal/Component/Plugin/Factory/DefaultFactory.php
+++ b/core/lib/Drupal/Component/Plugin/Factory/DefaultFactory.php
@@ -40,7 +40,7 @@ public function __construct(DiscoveryInterface $discovery) {
   /**
    * Implements Drupal\Component\Plugin\Factory\FactoryInterface::createInstance().
    */
-  public function createInstance($plugin_id, array $configuration) {
+  public function createInstance($plugin_id, array $configuration = array()) {
     $plugin_definition = $this->discovery->getDefinition($plugin_id);
     $plugin_class = static::getPluginClass($plugin_id, $plugin_definition);
     return new $plugin_class($configuration, $plugin_id, $plugin_definition);
diff --git a/core/lib/Drupal/Component/Plugin/Factory/FactoryInterface.php b/core/lib/Drupal/Component/Plugin/Factory/FactoryInterface.php
index d0f11ff7aa0c2510fb0f975c4fe7d6fd55ac9b24..9e5d62ab048b8995cd69e474ee7e742fd76347ff 100644
--- a/core/lib/Drupal/Component/Plugin/Factory/FactoryInterface.php
+++ b/core/lib/Drupal/Component/Plugin/Factory/FactoryInterface.php
@@ -22,6 +22,6 @@ interface FactoryInterface {
    * @return object
    *   A fully configured plugin instance.
    */
-  public function createInstance($plugin_id, array $configuration);
+  public function createInstance($plugin_id, array $configuration = array());
 
 }
diff --git a/core/lib/Drupal/Component/Plugin/Factory/ReflectionFactory.php b/core/lib/Drupal/Component/Plugin/Factory/ReflectionFactory.php
index 1edd04fcab30371cb4bff7271f0560bf55507c61..a6e253ad35f2aad906b6a11c4eb54ed1f84d0dec 100644
--- a/core/lib/Drupal/Component/Plugin/Factory/ReflectionFactory.php
+++ b/core/lib/Drupal/Component/Plugin/Factory/ReflectionFactory.php
@@ -17,7 +17,7 @@ class ReflectionFactory extends DefaultFactory {
   /**
    * Implements Drupal\Component\Plugin\Factory\FactoryInterface::createInstance().
    */
-  public function createInstance($plugin_id, array $configuration) {
+  public function createInstance($plugin_id, array $configuration = array()) {
     $plugin_definition = $this->discovery->getDefinition($plugin_id);
     $plugin_class = static::getPluginClass($plugin_id, $plugin_definition);
 
diff --git a/core/lib/Drupal/Core/Config/TypedConfigManager.php b/core/lib/Drupal/Core/Config/TypedConfigManager.php
index 7716a5b06b89f979b5e4780f0219fab9426677da..011be4d7e24bd43a62a970bc21dacc46b3067776 100644
--- a/core/lib/Drupal/Core/Config/TypedConfigManager.php
+++ b/core/lib/Drupal/Core/Config/TypedConfigManager.php
@@ -121,7 +121,7 @@ public function create(array $definition, $value = NULL, $name = NULL, $parent =
   /**
    * Overrides Drupal\Core\TypedData\TypedDataFactory::createInstance().
    */
-  public function createInstance($plugin_id, array $configuration, $name = NULL, $parent = NULL) {
+  public function createInstance($plugin_id, array $configuration = array(), $name = NULL, $parent = NULL) {
     $type_definition = $this->getDefinition($plugin_id);
     if (!isset($type_definition)) {
       throw new \InvalidArgumentException(String::format('Invalid data type %plugin_id has been given.', array('%plugin_id' => $plugin_id)));
diff --git a/core/lib/Drupal/Core/Field/FormatterPluginManager.php b/core/lib/Drupal/Core/Field/FormatterPluginManager.php
index 8d3781829a1d7b4e7163bbc4199568d7bea363be..b825272ced332070a6cc0ecd4fc79251a49ceabe 100644
--- a/core/lib/Drupal/Core/Field/FormatterPluginManager.php
+++ b/core/lib/Drupal/Core/Field/FormatterPluginManager.php
@@ -59,7 +59,7 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac
   /**
    * {@inheritdoc}
    */
-  public function createInstance($plugin_id, array $configuration) {
+  public function createInstance($plugin_id, array $configuration = array()) {
     $plugin_definition = $this->getDefinition($plugin_id);
     $plugin_class = DefaultFactory::getPluginClass($plugin_id, $plugin_definition);
 
diff --git a/core/lib/Drupal/Core/Field/WidgetFactory.php b/core/lib/Drupal/Core/Field/WidgetFactory.php
index 49a252aa9d6c685f81a00c0bab60db46c8707881..9e9408f88b8ca575ba7b640f87e2c0a91e099a47 100644
--- a/core/lib/Drupal/Core/Field/WidgetFactory.php
+++ b/core/lib/Drupal/Core/Field/WidgetFactory.php
@@ -17,7 +17,7 @@ class WidgetFactory extends DefaultFactory {
   /**
    * {@inheritdoc}
    */
-  public function createInstance($plugin_id, array $configuration) {
+  public function createInstance($plugin_id, array $configuration = array()) {
     $plugin_definition = $this->discovery->getDefinition($plugin_id);
     $plugin_class = static::getPluginClass($plugin_id, $plugin_definition);
     return new $plugin_class($plugin_id, $plugin_definition, $configuration['field_definition'], $configuration['settings']);
diff --git a/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php b/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php
index 099056569fc803e030cd6176f827b62194d77bfa..702e6401f09d952317670c0a1b04244bc5f3663a 100644
--- a/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php
+++ b/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php
@@ -16,7 +16,7 @@ class ContainerFactory extends DefaultFactory {
   /**
    * {@inheritdoc}
    */
-  public function createInstance($plugin_id, array $configuration) {
+  public function createInstance($plugin_id, array $configuration = array()) {
     $plugin_definition = $this->discovery->getDefinition($plugin_id);
     $plugin_class = static::getPluginClass($plugin_id, $plugin_definition);
 
diff --git a/core/lib/Drupal/Core/TypedData/TypedDataManager.php b/core/lib/Drupal/Core/TypedData/TypedDataManager.php
index e9fe3ad9b98e7a120858b981bab9a53bf1173ebd..900d835a007f441982220a2b912a3d6f96554c85 100644
--- a/core/lib/Drupal/Core/TypedData/TypedDataManager.php
+++ b/core/lib/Drupal/Core/TypedData/TypedDataManager.php
@@ -83,7 +83,7 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac
    * @return \Drupal\Core\TypedData\TypedDataInterface
    *   The instantiated typed data object.
    */
-  public function createInstance($data_type, array $configuration) {
+  public function createInstance($data_type, array $configuration = array()) {
     $data_definition = $configuration['data_definition'];
     $type_definition = $this->getDefinition($data_type);