From 797556ac477b63bbc0369df9cfd0b525881a7341 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Tue, 13 Oct 2015 13:08:19 -0500
Subject: [PATCH 01/61] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Backup/Model/Config/Backend/Cron.php      |  7 +-
 .../Config/Backend/Countrycreditcard.php      |  4 +-
 .../Catalog/Model/Config/Backend/Category.php |  6 +-
 .../Model/Config/CatalogClone/Media/Image.php |  4 +-
 .../Category/Flat/System/Config/Mode.php      |  6 +-
 .../Product/Flat/System/Config/Mode.php       |  6 +-
 .../Price/System/Config/PriceScope.php        |  8 ++-
 .../Backend/Catalog/Url/Rewrite/Suffix.php    |  8 ++-
 .../Model/Config/Backend/AbstractValue.php    |  4 +-
 .../Model/Config/Backend/Backorders.php       |  2 +-
 .../Model/Config/Backend/Managestock.php      |  2 +-
 .../System/Config/Backend/Minsaleqty.php      |  4 +-
 .../System/Config/Backend/Engine.php          |  4 +-
 .../Model/Config/Backend/Admin/Custom.php     |  6 +-
 .../Model/Config/Backend/Admin/Robots.php     |  4 +-
 .../Model/Config/Backend/Admin/Usecustom.php  |  6 +-
 .../Config/Backend/Admin/Usesecretkey.php     |  6 +-
 .../Config/Model/Config/Backend/Baseurl.php   |  7 +-
 .../Backend/Currency/AbstractCurrency.php     | 33 +--------
 .../Model/Config/Backend/Currency/Allow.php   |  8 +--
 .../Model/Config/Backend/Currency/Base.php    |  8 +--
 .../Model/Config/Backend/Currency/Cron.php    |  7 +-
 .../Backend/Currency/DefaultCurrency.php      |  2 +-
 .../Config/Model/Config/Backend/Encrypted.php |  4 +-
 .../Config/Model/Config/Backend/File.php      |  5 +-
 .../Model/Config/Backend/Image/Adapter.php    |  4 +-
 .../Config/Model/Config/Backend/Locale.php    |  6 +-
 .../Config/Model/Config/Backend/Log/Cron.php  |  7 +-
 .../Config/Model/Config/Backend/Secure.php    |  7 +-
 .../Model/Config/Backend/Serialized.php       |  3 +-
 .../Backend/Serialized/ArraySerialized.php    |  4 +-
 .../Config/Model/Config/Backend/Store.php     |  7 +-
 .../Config/Model/Config/Backend/Translate.php | 67 ++-----------------
 .../Unit/Model/Config/Backend/BaseurlTest.php | 30 +++------
 .../Unit/Model/Config/Backend/SecureTest.php  | 30 +++------
 .../Model/System/Config/Backend/LinksTest.php | 10 +--
 .../Cookie/Model/Config/Backend/Domain.php    |  4 +-
 .../Cookie/Model/Config/Backend/Lifetime.php  |  7 +-
 .../Cookie/Model/Config/Backend/Path.php      |  4 +-
 .../Model/Config/Backend/Product/Alert.php    | 10 ++-
 .../Cron/Model/Config/Backend/Sitemap.php     |  7 +-
 .../Model/Config/Backend/Address/Street.php   |  6 +-
 .../DisableAutoGroupAssignDefault.php         |  4 +-
 .../Model/Config/Backend/Show/Customer.php    |  4 +-
 .../Magento/Customer/Model/Config/Share.php   |  4 +-
 .../Model/Config/Backend/AllowedIps.php       |  4 +-
 .../Config/Backend/AbstractConversion.php     |  4 +-
 .../Config/Backend/Storage/Media/Database.php |  6 +-
 .../Model/Config/Backend/Tablerate.php        |  7 +-
 .../Model/System/Config/Backend/Cert.php      |  6 +-
 .../Model/System/Config/Backend/Cron.php      |  4 +-
 .../System/Config/Backend/MerchantCountry.php |  4 +-
 .../Rss/Model/System/Config/Backend/Links.php | 32 +--------
 .../Magento/Tax/Model/Config/Notification.php |  8 ++-
 .../Magento/Tax/Model/Config/TaxClass.php     | 10 +--
 .../Theme/Model/Design/Backend/Exceptions.php |  4 +-
 .../Theme/Model/Design/Backend/Theme.php      | 37 +++++++++-
 .../Model/Design/Backend/ExceptionsTest.php   | 56 ++++------------
 .../Unit/Model/Design/Backend/ThemeTest.php   | 56 ++++------------
 app/code/Magento/Theme/etc/config.xml         |  5 ++
 .../Magento/Framework/App/Config/Value.php    | 24 +++++++
 61 files changed, 312 insertions(+), 341 deletions(-)

diff --git a/app/code/Magento/Backup/Model/Config/Backend/Cron.php b/app/code/Magento/Backup/Model/Config/Backend/Cron.php
index e4204f26879..ed8ae69bbf0 100644
--- a/app/code/Magento/Backup/Model/Config/Backend/Cron.php
+++ b/app/code/Magento/Backup/Model/Config/Backend/Cron.php
@@ -32,6 +32,7 @@ class Cron extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -42,6 +43,7 @@ class Cron extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -50,13 +52,13 @@ class Cron extends \Magento\Framework\App\Config\Value
     ) {
         $this->_runModelPath = $runModelPath;
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Cron settings after save
      *
-     * @return void
+     * @return $this
      * @throws \Magento\Framework\Exception\LocalizedException
      */
     public function afterSave()
@@ -102,5 +104,6 @@ class Cron extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Magento\Framework\Exception\LocalizedException(__('We can\'t save the Cron expression.'));
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php b/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php
index 17291f11bc9..f88ad1f405d 100644
--- a/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php
+++ b/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php
@@ -16,6 +16,7 @@ class Countrycreditcard extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Math\Random $mathRandom
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -25,13 +26,14 @@ class Countrycreditcard extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Math\Random $mathRandom,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->mathRandom = $mathRandom;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Config/Backend/Category.php b/app/code/Magento/Catalog/Model/Config/Backend/Category.php
index 31baf9603a0..70e2937bc4e 100644
--- a/app/code/Magento/Catalog/Model/Config/Backend/Category.php
+++ b/app/code/Magento/Catalog/Model/Config/Backend/Category.php
@@ -25,6 +25,7 @@ class Category extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Catalog\Model\Category $catalogCategory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -34,13 +35,14 @@ class Category extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Catalog\Model\Category $catalogCategory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_catalogCategory = $catalogCategory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -67,6 +69,6 @@ class Category extends \Magento\Framework\App\Config\Value
                 $this->_catalogCategory->setStoreId($storeId)->save();
             }
         }
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php b/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php
index 2fd92365d14..3df22c0bfa5 100644
--- a/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php
+++ b/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php
@@ -30,6 +30,7 @@ class Image extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory
      * @param \Magento\Eav\Model\Config $eavConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -40,6 +41,7 @@ class Image extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory,
         \Magento\Eav\Model\Config $eavConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -48,7 +50,7 @@ class Image extends \Magento\Framework\App\Config\Value
     ) {
         $this->_attributeCollectionFactory = $attributeCollectionFactory;
         $this->_eavConfig = $eavConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php b/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php
index 3d6eb24ce7d..d3d499d7d8f 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php
@@ -20,6 +20,7 @@ class Mode extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry
      * @param \Magento\Indexer\Model\Indexer\State $indexerState
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -30,13 +31,14 @@ class Mode extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry,
         \Magento\Indexer\Model\Indexer\State $indexerState,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->indexerRegistry = $indexerRegistry;
         $this->indexerState = $indexerState;
     }
@@ -49,7 +51,7 @@ class Mode extends \Magento\Framework\App\Config\Value
     public function afterSave()
     {
         $this->_getResource()->addCommitCallback([$this, 'processValue']);
-        return $this;
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php
index e35b88dc0e7..977ed6ed73f 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php
@@ -24,6 +24,7 @@ class Mode extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Catalog\Model\Indexer\Product\Flat\Processor $productFlatIndexerProcessor
      * @param \Magento\Indexer\Model\Indexer\State $indexerState
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -34,6 +35,7 @@ class Mode extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Catalog\Model\Indexer\Product\Flat\Processor $productFlatIndexerProcessor,
         \Magento\Indexer\Model\Indexer\State $indexerState,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -42,7 +44,7 @@ class Mode extends \Magento\Framework\App\Config\Value
     ) {
         $this->_productFlatIndexerProcessor = $productFlatIndexerProcessor;
         $this->indexerState = $indexerState;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -53,7 +55,7 @@ class Mode extends \Magento\Framework\App\Config\Value
     public function afterSave()
     {
         $this->_getResource()->addCommitCallback([$this, 'processValue']);
-        return $this;
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php b/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php
index f66ac598d46..c19ee05a358 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php
@@ -17,6 +17,7 @@ class PriceScope extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -26,24 +27,25 @@ class PriceScope extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->indexerRegistry = $indexerRegistry;
     }
 
     /**
      * Set after commit callback
      *
-     * @return \Magento\Catalog\Model\Indexer\Product\Price\System\Config\PriceScope
+     * @return $this
      */
     public function afterSave()
     {
         $this->_getResource()->addCommitCallback([$this, 'processValue']);
-        return $this;
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php b/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php
index 42ddbde393f..b4ea3dd8c5b 100644
--- a/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php
+++ b/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php
@@ -39,12 +39,13 @@ class Suffix extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\UrlRewrite\Helper\UrlRewrite $urlRewriteHelper
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Framework\App\ResourceConnection $appResource
      * @param \Magento\UrlRewrite\Model\UrlFinderInterface $urlFinder
+     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
+     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
      * @param array $data
      * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
@@ -52,6 +53,7 @@ class Suffix extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\UrlRewrite\Helper\UrlRewrite $urlRewriteHelper,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Framework\App\ResourceConnection $appResource,
@@ -60,7 +62,7 @@ class Suffix extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->urlRewriteHelper = $urlRewriteHelper;
         $this->connection = $appResource->getConnection();
         $this->urlFinder = $urlFinder;
diff --git a/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php b/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php
index 58c52b89377..ffe4998c15a 100644
--- a/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php
+++ b/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php
@@ -25,6 +25,7 @@ abstract class AbstractValue extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\CatalogInventory\Api\StockIndexInterface $stockIndex
      * @param \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -35,6 +36,7 @@ abstract class AbstractValue extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\CatalogInventory\Api\StockIndexInterface $stockIndex,
         \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -43,6 +45,6 @@ abstract class AbstractValue extends \Magento\Framework\App\Config\Value
     ) {
         $this->_stockIndexerProcessor = $stockIndexerProcessor;
         $this->stockIndex = $stockIndex;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 }
diff --git a/app/code/Magento/CatalogInventory/Model/Config/Backend/Backorders.php b/app/code/Magento/CatalogInventory/Model/Config/Backend/Backorders.php
index d5a890c3d54..383a8b911d8 100644
--- a/app/code/Magento/CatalogInventory/Model/Config/Backend/Backorders.php
+++ b/app/code/Magento/CatalogInventory/Model/Config/Backend/Backorders.php
@@ -28,6 +28,6 @@ class Backorders extends AbstractValue
             $this->stockIndex->rebuild();
             $this->_stockIndexerProcessor->markIndexerAsInvalid();
         }
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/CatalogInventory/Model/Config/Backend/Managestock.php b/app/code/Magento/CatalogInventory/Model/Config/Backend/Managestock.php
index 4b377112acc..efbc166208a 100644
--- a/app/code/Magento/CatalogInventory/Model/Config/Backend/Managestock.php
+++ b/app/code/Magento/CatalogInventory/Model/Config/Backend/Managestock.php
@@ -23,6 +23,6 @@ class Managestock extends AbstractValue
             $this->stockIndex->rebuild();
             $this->_stockIndexerProcessor->markIndexerAsInvalid();
         }
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php b/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php
index ea89069d8c5..19a6877e505 100644
--- a/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php
+++ b/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php
@@ -21,6 +21,7 @@ class Minsaleqty extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\CatalogInventory\Helper\Minsaleqty $catalogInventoryMinsaleqty
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -30,13 +31,14 @@ class Minsaleqty extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\CatalogInventory\Helper\Minsaleqty $catalogInventoryMinsaleqty,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_catalogInventoryMinsaleqty = $catalogInventoryMinsaleqty;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php b/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php
index cf56ff5dc49..831a0ee8040 100644
--- a/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php
+++ b/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php
@@ -17,6 +17,7 @@ class Engine extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -26,13 +27,14 @@ class Engine extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->indexerRegistry = $indexerRegistry;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php
index 21ce20f6174..59bb6074d69 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php
@@ -58,6 +58,7 @@ class Custom extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\Storage\WriterInterface $configWriter
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -67,13 +68,14 @@ class Custom extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\Storage\WriterInterface $configWriter,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_configWriter = $configWriter;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -122,6 +124,6 @@ class Custom extends \Magento\Framework\App\Config\Value
             );
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php
index 0fe5834b863..31df36606c6 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php
@@ -27,6 +27,7 @@ class Robots extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Filesystem $filesystem
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -36,12 +37,13 @@ class Robots extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Filesystem $filesystem,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
         $this->_file = 'robots.txt';
     }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php
index 2b2de392e7d..6b7a585dd35 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php
@@ -22,6 +22,7 @@ class Usecustom extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\Storage\WriterInterface $configWriter
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,13 +32,14 @@ class Usecustom extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\Storage\WriterInterface $configWriter,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_configWriter = $configWriter;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -81,6 +83,6 @@ class Usecustom extends \Magento\Framework\App\Config\Value
             );
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php
index 49298cb9288..283cfc3eb63 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php
@@ -20,6 +20,7 @@ class Usesecretkey extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Backend\Model\UrlInterface $backendUrl
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -29,13 +30,14 @@ class Usesecretkey extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Backend\Model\UrlInterface $backendUrl,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_backendUrl = $backendUrl;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -44,6 +46,6 @@ class Usesecretkey extends \Magento\Framework\App\Config\Value
     public function afterSave()
     {
         $this->_backendUrl->renewSecretUrls();
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Baseurl.php b/app/code/Magento/Config/Model/Config/Backend/Baseurl.php
index 9f9db6d0a99..b066e0669d9 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Baseurl.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Baseurl.php
@@ -16,6 +16,7 @@ class Baseurl extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\View\Asset\MergeService $mergeService
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -25,13 +26,14 @@ class Baseurl extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\View\Asset\MergeService $mergeService,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_mergeService = $mergeService;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -198,7 +200,7 @@ class Baseurl extends \Magento\Framework\App\Config\Value
     /**
      * Clean compiled JS/CSS when updating url configuration settings
      *
-     * @return void
+     * @return $this
      */
     public function afterSave()
     {
@@ -212,5 +214,6 @@ class Baseurl extends \Magento\Framework\App\Config\Value
                     break;
             }
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php b/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php
index 02ffa58b6b2..42c589c06a9 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php
@@ -15,37 +15,6 @@ namespace Magento\Config\Model\Config\Backend\Currency;
 
 abstract class AbstractCurrency extends \Magento\Framework\App\Config\Value
 {
-    /**
-     * Core store config
-     *
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface
-     */
-    protected $_scopeConfig;
-
-    /**
-     * Constructor
-     *
-     * @param \Magento\Framework\Model\Context $context
-     * @param \Magento\Framework\Registry $registry
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
-     * @param array $data
-     */
-    public function __construct(
-        \Magento\Framework\Model\Context $context,
-        \Magento\Framework\Registry $registry,
-        \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
-        \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
-        \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
-        array $data = []
-    ) {
-        $this->_scopeConfig = $scopeConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
-    }
-
     /**
      * Retrieve allowed currencies for current scope
      *
@@ -75,7 +44,7 @@ abstract class AbstractCurrency extends \Magento\Framework\App\Config\Value
     {
         return explode(
             ',',
-            $this->_scopeConfig->getValue(
+            $this->_config->getValue(
                 'system/currency/installed',
                 \Magento\Store\Model\ScopeInterface::SCOPE_STORE
             )
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
index f38db8cc6dd..fecb0710472 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
@@ -21,7 +21,7 @@ class Allow extends AbstractCurrency
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,14 +31,14 @@ class Allow extends AbstractCurrency
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Locale\CurrencyInterface $localeCurrency,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_localeCurrency = $localeCurrency;
-        parent::__construct($context, $registry, $config, $scopeConfig, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resourceCollection, $resource, $data);
     }
 
     /**
@@ -71,6 +71,6 @@ class Allow extends AbstractCurrency
             throw new \Magento\Framework\Exception\LocalizedException(__(join("\n", $exceptions)));
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
index 8b000db0117..fe32b71564f 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
@@ -19,7 +19,7 @@ class Base extends AbstractCurrency
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -29,13 +29,13 @@ class Base extends AbstractCurrency
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Directory\Model\CurrencyFactory $currencyFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $scopeConfig, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resourceCollection, $resource, $data);
         $this->currencyFactory = $currencyFactory;
     }
 
@@ -55,6 +55,6 @@ class Base extends AbstractCurrency
         }
 
         $this->currencyFactory->create()->saveRates([$value =>[$value => 1]]);
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php
index 2575a80ec73..273a8accec1 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php
@@ -21,6 +21,7 @@ class Cron extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -30,17 +31,18 @@ class Cron extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
-     * @return void
+     * @return $this
      * @throws \Exception
      */
     public function afterSave()
@@ -69,5 +71,6 @@ class Cron extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Exception(__('We can\'t save the Cron expression.'));
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/DefaultCurrency.php b/app/code/Magento/Config/Model/Config/Backend/Currency/DefaultCurrency.php
index 35e8e5688ca..a086a674570 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/DefaultCurrency.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/DefaultCurrency.php
@@ -33,6 +33,6 @@ class DefaultCurrency extends AbstractCurrency
             );
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Encrypted.php b/app/code/Magento/Config/Model/Config/Backend/Encrypted.php
index 51a78e6f188..d12edd3ffdb 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Encrypted.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Encrypted.php
@@ -22,6 +22,7 @@ class Encrypted extends \Magento\Framework\App\Config\Value implements
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,13 +32,14 @@ class Encrypted extends \Magento\Framework\App\Config\Value implements
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Encryption\EncryptorInterface $encryptor,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_encryptor = $encryptor;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Config/Model/Config/Backend/File.php b/app/code/Magento/Config/Model/Config/Backend/File.php
index 1b03ae15671..9496bc6ab3a 100644
--- a/app/code/Magento/Config/Model/Config/Backend/File.php
+++ b/app/code/Magento/Config/Model/Config/Backend/File.php
@@ -13,6 +13,7 @@ use Magento\Framework\Filesystem;
  * System config file field backend model
  *
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 class File extends \Magento\Framework\App\Config\Value
 {
@@ -47,6 +48,7 @@ class File extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory
      * @param \Magento\Config\Model\Config\Backend\File\RequestData\RequestDataInterface $requestData
      * @param Filesystem $filesystem
@@ -58,6 +60,7 @@ class File extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory,
         \Magento\Config\Model\Config\Backend\File\RequestData\RequestDataInterface $requestData,
         Filesystem $filesystem,
@@ -69,7 +72,7 @@ class File extends \Magento\Framework\App\Config\Value
         $this->_requestData = $requestData;
         $this->_filesystem = $filesystem;
         $this->_mediaDirectory = $filesystem->getDirectoryWrite(DirectoryList::MEDIA);
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php b/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php
index 486df64d2fc..a1f1fc2f8e9 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php
@@ -22,6 +22,7 @@ class Adapter extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Image\AdapterFactory $imageFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,12 +32,13 @@ class Adapter extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Image\AdapterFactory $imageFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_imageFactory = $imageFactory;
     }
 
diff --git a/app/code/Magento/Config/Model/Config/Backend/Locale.php b/app/code/Magento/Config/Model/Config/Backend/Locale.php
index 6c7fca6df42..bed8303d776 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Locale.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Locale.php
@@ -37,6 +37,7 @@ class Locale extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Config\Model\ResourceModel\Config\Data\CollectionFactory $configsFactory
      * @param \Magento\Store\Model\WebsiteFactory $websiteFactory
      * @param \Magento\Store\Model\StoreFactory $storeFactory
@@ -51,6 +52,7 @@ class Locale extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Config\Model\ResourceModel\Config\Data\CollectionFactory $configsFactory,
         \Magento\Store\Model\WebsiteFactory $websiteFactory,
         \Magento\Store\Model\StoreFactory $storeFactory,
@@ -63,7 +65,7 @@ class Locale extends \Magento\Framework\App\Config\Value
         $this->_websiteFactory = $websiteFactory;
         $this->_storeFactory = $storeFactory;
         $this->_localeCurrency = $localeCurrency;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -120,6 +122,6 @@ class Locale extends \Magento\Framework\App\Config\Value
             throw new \Magento\Framework\Exception\LocalizedException(__(join("\n", $exceptions)));
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php b/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php
index 83ae49a6cf7..01eebb5ce2b 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php
@@ -29,6 +29,7 @@ class Cron extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -39,6 +40,7 @@ class Cron extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -47,13 +49,13 @@ class Cron extends \Magento\Framework\App\Config\Value
     ) {
         $this->_configValueFactory = $configValueFactory;
         $this->_runModelPath = $runModelPath;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Cron settings after save
      *
-     * @return void
+     * @return $this
      * @throws \Magento\Framework\Exception\LocalizedException
      */
     public function afterSave()
@@ -91,5 +93,6 @@ class Cron extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Magento\Framework\Exception\LocalizedException(__('We can\'t save the Cron expression.'));
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Secure.php b/app/code/Magento/Config/Model/Config/Backend/Secure.php
index 7eab9b7846f..25ccf26b560 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Secure.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Secure.php
@@ -15,6 +15,7 @@ class Secure extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\View\Asset\MergeService $mergeService
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -24,24 +25,26 @@ class Secure extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\View\Asset\MergeService $mergeService,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_mergeService = $mergeService;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Clean compiled JS/CSS when updating configuration settings
      *
-     * @return void
+     * @return $this
      */
     public function afterSave()
     {
         if ($this->isValueChanged()) {
             $this->_mergeService->cleanMergedJsCss();
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Serialized.php b/app/code/Magento/Config/Model/Config/Backend/Serialized.php
index 28353119f97..08cb7030742 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Serialized.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Serialized.php
@@ -19,12 +19,13 @@ class Serialized extends \Magento\Framework\App\Config\Value
     }
 
     /**
-     * @return void
+     * @return $this
      */
     public function beforeSave()
     {
         if (is_array($this->getValue())) {
             $this->setValue(serialize($this->getValue()));
         }
+        return parent::beforeSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Serialized/ArraySerialized.php b/app/code/Magento/Config/Model/Config/Backend/Serialized/ArraySerialized.php
index cdfd0653ec7..2a012697da3 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Serialized/ArraySerialized.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Serialized/ArraySerialized.php
@@ -15,7 +15,7 @@ class ArraySerialized extends \Magento\Config\Model\Config\Backend\Serialized
     /**
      * Unset array element with '__empty' key
      *
-     * @return void
+     * @return $this
      */
     public function beforeSave()
     {
@@ -24,6 +24,6 @@ class ArraySerialized extends \Magento\Config\Model\Config\Backend\Serialized
             unset($value['__empty']);
         }
         $this->setValue($value);
-        parent::beforeSave();
+        return parent::beforeSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Store.php b/app/code/Magento/Config/Model/Config/Backend/Store.php
index 85c10c62a18..bf34f2aa09d 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Store.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Store.php
@@ -20,6 +20,7 @@ class Store extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\MutableScopeConfigInterface $mutableConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -29,17 +30,18 @@ class Store extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\MutableScopeConfigInterface $mutableConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_mutableConfig = $mutableConfig;
     }
 
     /**
-     * @return void
+     * @return $this
      */
     public function afterSave()
     {
@@ -49,5 +51,6 @@ class Store extends \Magento\Framework\App\Config\Value
             \Magento\Store\Model\ScopeInterface::SCOPE_STORE
         );
         $this->_cacheManager->clean();
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Translate.php b/app/code/Magento/Config/Model/Config/Backend/Translate.php
index e91a44e91ae..665a7e68e1a 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Translate.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Translate.php
@@ -3,77 +3,24 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+namespace Magento\Rss\Model\System\Config\Backend;
 
 /**
- * System config translate inline fields backend model
+ * Cache cleaner backend model
+ *
  */
-namespace Magento\Config\Model\Config\Backend;
-
-class Translate extends \Magento\Framework\App\Config\Value
+class Links extends \Magento\Framework\App\Config\Value
 {
     /**
-     * @var \Magento\Framework\App\Cache\TypeListInterface
-     */
-    protected $_cacheTypeList;
-
-    /**
-     * Path to config node with list of caches
-     *
-     * @var string
-     */
-    const XML_PATH_INVALID_CACHES = 'dev/translate_inline/invalid_caches';
-
-    /**
-     * Core store config
-     *
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface
-     */
-    protected $_scopeConfig;
-
-    /**
-     * Constructor
-     *
-     * @param \Magento\Framework\Model\Context $context
-     * @param \Magento\Framework\Registry $registry
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
-     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
-     * @param array $data
-     */
-    public function __construct(
-        \Magento\Framework\Model\Context $context,
-        \Magento\Framework\Registry $registry,
-        \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
-        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
-        \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
-        \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
-        array $data = []
-    ) {
-        $this->_scopeConfig = $scopeConfig;
-        $this->_cacheTypeList = $cacheTypeList;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
-    }
-
-    /**
-     * Set status 'invalidate' for blocks and other output caches
+     * Invalidate cache type, when value was changed
      *
      * @return $this
      */
     public function afterSave()
     {
-        $types = array_keys(
-            $this->_scopeConfig->getValue(
-                self::XML_PATH_INVALID_CACHES,
-                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
-            )
-        );
         if ($this->isValueChanged()) {
-            $this->_cacheTypeList->invalidate($types);
+            $this->cacheTypeList->invalidate(\Magento\Framework\View\Element\AbstractBlock::CACHE_GROUP);
         }
-
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/BaseurlTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/BaseurlTest.php
index 38b195ac336..8f9d418356e 100644
--- a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/BaseurlTest.php
+++ b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/BaseurlTest.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\Config\Test\Unit\Model\Config\Backend;
 
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\Store\Model\StoreManagerInterface;
 use Magento\Store\Model\Store;
 
@@ -12,25 +13,8 @@ class BaseurlTest extends \PHPUnit_Framework_TestCase
 {
     public function testSaveMergedJsCssMustBeCleaned()
     {
-        $eventDispatcher = $this->getMock('Magento\Framework\Event\ManagerInterface', [], [], '', false);
-        $appState = $this->getMock('Magento\Framework\App\State', [], [], '', false);
-        $cacheManager = $this->getMock('Magento\Framework\App\CacheInterface');
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $actionValidatorMock = $this->getMock(
-            'Magento\Framework\Model\ActionValidator\RemoveAction',
-            [],
-            [],
-            '',
-            false
-        );
 
-        $context = new \Magento\Framework\Model\Context(
-            $logger,
-            $eventDispatcher,
-            $cacheManager,
-            $appState,
-            $actionValidatorMock
-        );
+        $context = (new ObjectManager($this))->getObject('Magento\Framework\Model\Context');
 
         $resource = $this->getMock('Magento\Config\Model\ResourceModel\Config\Data', [], [], '', false);
         $resource->expects($this->any())->method('addCommitCallback')->will($this->returnValue($resource));
@@ -40,12 +24,18 @@ class BaseurlTest extends \PHPUnit_Framework_TestCase
         $mergeService = $this->getMock('Magento\Framework\View\Asset\MergeService', [], [], '', false);
         $coreRegistry = $this->getMock('Magento\Framework\Registry', [], [], '', false);
         $coreConfig = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface');
-
+        $cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
         $model = $this->getMock(
             'Magento\Config\Model\Config\Backend\Baseurl',
             ['getOldValue'],
-            [$context, $coreRegistry, $coreConfig, $mergeService, $resource, $resourceCollection]
+            [$context, $coreRegistry, $coreConfig, $cacheTypeListMock, $mergeService, $resource, $resourceCollection]
         );
+        $cacheTypeListMock->expects($this->once())
+            ->method('invalidate')
+            ->with(\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER)
+            ->willReturn($model);
         $mergeService->expects($this->once())->method('cleanMergedJsCss');
 
         $model->setValue('http://example.com/')->setPath(Store::XML_PATH_UNSECURE_BASE_URL);
diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/SecureTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/SecureTest.php
index 25280b8967d..16bd95fa825 100644
--- a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/SecureTest.php
+++ b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/SecureTest.php
@@ -5,28 +5,13 @@
  */
 namespace Magento\Config\Test\Unit\Model\Config\Backend;
 
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+
 class SecureTest extends \PHPUnit_Framework_TestCase
 {
     public function testSaveMergedJsCssMustBeCleaned()
     {
-        $eventDispatcher = $this->getMock('Magento\Framework\Event\ManagerInterface', [], [], '', false);
-        $appState = $this->getMock('Magento\Framework\App\State', [], [], '', false);
-        $cacheManager = $this->getMock('Magento\Framework\App\CacheInterface');
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $actionValidatorMock = $this->getMock(
-            '\Magento\Framework\Model\ActionValidator\RemoveAction',
-            [],
-            [],
-            '',
-            false
-        );
-        $context = new \Magento\Framework\Model\Context(
-            $logger,
-            $eventDispatcher,
-            $cacheManager,
-            $appState,
-            $actionValidatorMock
-        );
+        $context = (new ObjectManager($this))->getObject('Magento\Framework\Model\Context');
 
         $resource = $this->getMock('Magento\Config\Model\ResourceModel\Config\Data', [], [], '', false);
         $resource->expects($this->any())->method('addCommitCallback')->will($this->returnValue($resource));
@@ -36,12 +21,19 @@ class SecureTest extends \PHPUnit_Framework_TestCase
         $mergeService = $this->getMock('Magento\Framework\View\Asset\MergeService', [], [], '', false);
         $coreRegistry = $this->getMock('Magento\Framework\Registry', [], [], '', false);
         $coreConfig = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface');
+        $cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
 
         $model = $this->getMock(
             'Magento\Config\Model\Config\Backend\Secure',
             ['getOldValue'],
-            [$context, $coreRegistry, $coreConfig, $mergeService, $resource, $resourceCollection]
+            [$context, $coreRegistry, $coreConfig, $cacheTypeListMock, $mergeService, $resource, $resourceCollection]
         );
+        $cacheTypeListMock->expects($this->once())
+            ->method('invalidate')
+            ->with(\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER)
+            ->willReturn($model);
         $mergeService->expects($this->once())->method('cleanMergedJsCss');
 
         $model->setValue('new_value');
diff --git a/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php b/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php
index 5a2c469bf10..4ed7d555234 100644
--- a/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php
+++ b/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Contact\Test\Unit\Model\System\Config\Backend;
 
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+
 class LinksTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -14,13 +16,7 @@ class LinksTest extends \PHPUnit_Framework_TestCase
 
     public function setUp()
     {
-        $this->_model = new \Magento\Contact\Model\System\Config\Backend\Links(
-            $this->getMock('\Magento\Framework\Model\Context', [], [], '', false),
-            $this->getMock('\Magento\Framework\Registry', [], [], '', false),
-            $this->getMockForAbstractClass('\Magento\Framework\App\Config\ScopeConfigInterface', [], '', false),
-            $this->getMockForAbstractClass('\Magento\Framework\Model\ModelResource\AbstractResource', [], '', false),
-            $this->getMock('\Magento\Framework\Data\Collection\AbstractDb', [], [], '', false)
-        );
+        $this->_model = (new ObjectManager($this))->getObject('Magento\Contact\Model\System\Config\Backend\Links');
     }
 
     public function testGetIdentities()
diff --git a/app/code/Magento/Cookie/Model/Config/Backend/Domain.php b/app/code/Magento/Cookie/Model/Config/Backend/Domain.php
index 0d8fb666c75..d656941e6da 100644
--- a/app/code/Magento/Cookie/Model/Config/Backend/Domain.php
+++ b/app/code/Magento/Cookie/Model/Config/Backend/Domain.php
@@ -17,6 +17,7 @@ class Domain extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Session\Config\Validator\CookieDomainValidator $configValidator
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -27,13 +28,14 @@ class Domain extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Session\Config\Validator\CookieDomainValidator $configValidator,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->configValidator = $configValidator;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php b/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php
index 3170aadb8f5..b5b5a4d3ec3 100644
--- a/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php
+++ b/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php
@@ -17,6 +17,7 @@ class Lifetime extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Session\Config\Validator\CookieLifetimeValidator $configValidator
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -27,19 +28,20 @@ class Lifetime extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Session\Config\Validator\CookieLifetimeValidator $configValidator,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->configValidator = $configValidator;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Validate a domain name value
      *
-     * @return void
+     * @return $this
      * @throws \Magento\Framework\Exception\LocalizedException
      */
     public function beforeSave()
@@ -50,5 +52,6 @@ class Lifetime extends \Magento\Framework\App\Config\Value
             $msg = __('Invalid cookie lifetime: ' . join('; ', $this->configValidator->getMessages()));
             throw new \Magento\Framework\Exception\LocalizedException($msg);
         }
+        return parent::beforeSave();
     }
 }
diff --git a/app/code/Magento/Cookie/Model/Config/Backend/Path.php b/app/code/Magento/Cookie/Model/Config/Backend/Path.php
index 7130085fbd8..bc2661e4657 100644
--- a/app/code/Magento/Cookie/Model/Config/Backend/Path.php
+++ b/app/code/Magento/Cookie/Model/Config/Backend/Path.php
@@ -17,6 +17,7 @@ class Path extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Session\Config\Validator\CookiePathValidator $configValidator
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -27,13 +28,14 @@ class Path extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Session\Config\Validator\CookiePathValidator $configValidator,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->configValidator = $configValidator;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php b/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php
index 7427d72f392..fc1989ef261 100644
--- a/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php
+++ b/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php
@@ -37,6 +37,7 @@ class Alert extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -47,6 +48,7 @@ class Alert extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -55,11 +57,13 @@ class Alert extends \Magento\Framework\App\Config\Value
     ) {
         $this->_runModelPath = $runModelPath;
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
-     * @return void
+     * {@inheritdoc}
+     *
+     * @return $this
      * @throws \Exception
      */
     public function afterSave()
@@ -97,5 +101,7 @@ class Alert extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Exception(__('We can\'t save the cron expression.'));
         }
+
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php b/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php
index c49176ab625..13e59f4d730 100644
--- a/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php
+++ b/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php
@@ -37,6 +37,7 @@ class Sitemap extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -47,6 +48,7 @@ class Sitemap extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -55,11 +57,11 @@ class Sitemap extends \Magento\Framework\App\Config\Value
     ) {
         $this->_runModelPath = $runModelPath;
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
-     * @return void
+     * @return $this
      * @throws \Exception
      */
     public function afterSave()
@@ -97,5 +99,6 @@ class Sitemap extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Exception(__('We can\'t save the cron expression.'));
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php b/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php
index 014c25e8ea9..dd149276adf 100644
--- a/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php
+++ b/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php
@@ -26,6 +26,7 @@ class Street extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Eav\Model\Config $eavConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -36,6 +37,7 @@ class Street extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Eav\Model\Config $eavConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -43,7 +45,7 @@ class Street extends \Magento\Framework\App\Config\Value
         array $data = []
     ) {
         $this->_eavConfig = $eavConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_storeManager = $storeManager;
     }
 
@@ -71,7 +73,7 @@ class Street extends \Magento\Framework\App\Config\Value
                 break;
         }
         $attribute->save();
-        return $this;
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php b/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php
index 2c39ad5de00..363fe4cd200 100644
--- a/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php
+++ b/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php
@@ -16,6 +16,7 @@ class DisableAutoGroupAssignDefault extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Eav\Model\Config $eavConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -25,13 +26,14 @@ class DisableAutoGroupAssignDefault extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Eav\Model\Config $eavConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->eavConfig = $eavConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php b/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php
index 2957d9ae35f..a4a9b336e9c 100644
--- a/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php
+++ b/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php
@@ -26,6 +26,7 @@ class Customer extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Eav\Model\Config $eavConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -36,6 +37,7 @@ class Customer extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Eav\Model\Config $eavConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -43,7 +45,7 @@ class Customer extends \Magento\Framework\App\Config\Value
         array $data = []
     ) {
         $this->_eavConfig = $eavConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->storeManager = $storeManager;
     }
 
diff --git a/app/code/Magento/Customer/Model/Config/Share.php b/app/code/Magento/Customer/Model/Config/Share.php
index 5c8010c95b2..f7e6be108a9 100644
--- a/app/code/Magento/Customer/Model/Config/Share.php
+++ b/app/code/Magento/Customer/Model/Config/Share.php
@@ -40,6 +40,7 @@ class Share extends \Magento\Framework\App\Config\Value implements \Magento\Fram
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Customer\Model\ResourceModel\Customer $customerResource
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -50,6 +51,7 @@ class Share extends \Magento\Framework\App\Config\Value implements \Magento\Fram
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Customer\Model\ResourceModel\Customer $customerResource,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -58,7 +60,7 @@ class Share extends \Magento\Framework\App\Config\Value implements \Magento\Fram
     ) {
         $this->_storeManager = $storeManager;
         $this->_customerResource = $customerResource;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php b/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php
index e4552761129..19852067353 100644
--- a/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php
+++ b/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php
@@ -30,6 +30,7 @@ class AllowedIps extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Message\ManagerInterface $messageManager
      * @param \Magento\Framework\Escaper $escaper
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -40,6 +41,7 @@ class AllowedIps extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Message\ManagerInterface $messageManager,
         \Magento\Framework\Escaper $escaper,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -48,7 +50,7 @@ class AllowedIps extends \Magento\Framework\App\Config\Value
     ) {
         $this->messageManager = $messageManager;
         $this->escaper = $escaper;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php b/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php
index f072d2114d6..f70ffd207dd 100644
--- a/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php
+++ b/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php
@@ -26,6 +26,7 @@ abstract class AbstractConversion extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Validator\DataObjectFactory $validatorCompositeFactory
      * @param \Magento\GoogleAdwords\Model\Validator\Factory $validatorFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -36,13 +37,14 @@ abstract class AbstractConversion extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Validator\DataObjectFactory $validatorCompositeFactory,
         \Magento\GoogleAdwords\Model\Validator\Factory $validatorFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
 
         $this->_validatorFactory = $validatorFactory;
         $this->_validatorComposite = $validatorCompositeFactory->create();
diff --git a/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php b/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php
index 95f4d6c2165..0b1ebbd8317 100644
--- a/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php
+++ b/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php
@@ -18,6 +18,7 @@ class Database extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\MediaStorage\Helper\File\Storage $coreFileStorage
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -27,13 +28,14 @@ class Database extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\MediaStorage\Helper\File\Storage $coreFileStorage,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_coreFileStorage = $coreFileStorage;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -46,6 +48,6 @@ class Database extends \Magento\Framework\App\Config\Value
         $helper = $this->_coreFileStorage;
         $helper->getStorageModel(null, ['init' => true]);
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php b/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php
index e48b75956b3..605afa75833 100644
--- a/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php
+++ b/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php
@@ -23,6 +23,7 @@ class Tablerate extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\OfflineShipping\Model\ResourceModel\Carrier\TablerateFactory $tablerateFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -32,22 +33,24 @@ class Tablerate extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\OfflineShipping\Model\ResourceModel\Carrier\TablerateFactory $tablerateFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_tablerateFactory = $tablerateFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
-     * @return \Magento\Framework\Model\AbstractModel|void
+     * @return $this
      */
     public function afterSave()
     {
         /** @var \Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate $tableRate */
         $tableRate = $this->_tablerateFactory->create();
         $tableRate->uploadAndImport($this);
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php b/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php
index 5edc101cc02..48569dd3bc3 100644
--- a/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php
+++ b/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php
@@ -10,6 +10,8 @@ use Magento\Framework\Filesystem\DirectoryList;
 
 /**
  * Backend model for saving certificate file in case of using certificate based authentication
+ *
+ * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 class Cert extends \Magento\Framework\App\Config\Value
 {
@@ -32,6 +34,7 @@ class Cert extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Paypal\Model\CertFactory $certFactory
      * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor
      * @param \Magento\Framework\Filesystem $filesystem
@@ -43,6 +46,7 @@ class Cert extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Paypal\Model\CertFactory $certFactory,
         \Magento\Framework\Encryption\EncryptorInterface $encryptor,
         \Magento\Framework\Filesystem $filesystem,
@@ -53,7 +57,7 @@ class Cert extends \Magento\Framework\App\Config\Value
         $this->_certFactory = $certFactory;
         $this->_encryptor = $encryptor;
         $this->_tmpDirectory = $filesystem->getDirectoryRead(DirectoryList::SYS_TMP);
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php b/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php
index dda1f596559..0603fe3ee40 100644
--- a/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php
+++ b/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php
@@ -20,6 +20,7 @@ class Cron extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -29,13 +30,14 @@ class Cron extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php b/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php
index bef8a6e42b4..d02e68e1bf0 100644
--- a/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php
+++ b/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php
@@ -26,6 +26,7 @@ class MerchantCountry extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Directory\Helper\Data $directoryHelper
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -36,6 +37,7 @@ class MerchantCountry extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Directory\Helper\Data $directoryHelper,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -43,7 +45,7 @@ class MerchantCountry extends \Magento\Framework\App\Config\Value
         array $data = []
     ) {
         $this->directoryHelper = $directoryHelper;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_storeManager = $storeManager;
     }
 
diff --git a/app/code/Magento/Rss/Model/System/Config/Backend/Links.php b/app/code/Magento/Rss/Model/System/Config/Backend/Links.php
index c86f176a373..665a7e68e1a 100644
--- a/app/code/Magento/Rss/Model/System/Config/Backend/Links.php
+++ b/app/code/Magento/Rss/Model/System/Config/Backend/Links.php
@@ -11,42 +11,16 @@ namespace Magento\Rss\Model\System\Config\Backend;
  */
 class Links extends \Magento\Framework\App\Config\Value
 {
-    /**
-     * @var \Magento\Framework\App\Cache\TypeListInterface
-     */
-    protected $_cacheTypeList;
-
-    /**
-     * @param \Magento\Framework\Model\Context $context
-     * @param \Magento\Framework\Registry $registry
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
-     * @param array $data
-     */
-    public function __construct(
-        \Magento\Framework\Model\Context $context,
-        \Magento\Framework\Registry $registry,
-        \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
-        \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
-        \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
-        array $data = []
-    ) {
-        $this->_cacheTypeList = $cacheTypeList;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
-    }
-
     /**
      * Invalidate cache type, when value was changed
      *
-     * @return void
+     * @return $this
      */
     public function afterSave()
     {
         if ($this->isValueChanged()) {
-            $this->_cacheTypeList->invalidate(\Magento\Framework\View\Element\AbstractBlock::CACHE_GROUP);
+            $this->cacheTypeList->invalidate(\Magento\Framework\View\Element\AbstractBlock::CACHE_GROUP);
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Tax/Model/Config/Notification.php b/app/code/Magento/Tax/Model/Config/Notification.php
index 1c830caee47..25b1cde5df6 100644
--- a/app/code/Magento/Tax/Model/Config/Notification.php
+++ b/app/code/Magento/Tax/Model/Config/Notification.php
@@ -21,6 +21,7 @@ class Notification extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Config\Model\ResourceModel\Config $resourceConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -30,19 +31,20 @@ class Notification extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Config\Model\ResourceModel\Config $resourceConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->resourceConfig = $resourceConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Prepare and store cron settings after save
      *
-     * @return \Magento\Tax\Model\Config\Notification
+     * @return $this
      */
     public function afterSave()
     {
@@ -50,7 +52,7 @@ class Notification extends \Magento\Framework\App\Config\Value
             $this->_resetNotificationFlag(\Magento\Tax\Model\Config::XML_PATH_TAX_NOTIFICATION_IGNORE_DISCOUNT);
             $this->_resetNotificationFlag(\Magento\Tax\Model\Config::XML_PATH_TAX_NOTIFICATION_IGNORE_PRICE_DISPLAY);
         }
-        return parent::afterSave($this);
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Tax/Model/Config/TaxClass.php b/app/code/Magento/Tax/Model/Config/TaxClass.php
index 2d2503c8c3e..2d47f9aae7b 100644
--- a/app/code/Magento/Tax/Model/Config/TaxClass.php
+++ b/app/code/Magento/Tax/Model/Config/TaxClass.php
@@ -24,6 +24,7 @@ class TaxClass extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Config\Model\ResourceModel\Config $resourceConfig
      * @param \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -34,6 +35,7 @@ class TaxClass extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Config\Model\ResourceModel\Config $resourceConfig,
         \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -42,15 +44,15 @@ class TaxClass extends \Magento\Framework\App\Config\Value
     ) {
         $this->resourceConfig = $resourceConfig;
         $this->attributeFactory = $attributeFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Update the default product tax class
      *
-     * @return \Magento\Tax\Model\Config\TaxClass
+     * @return $this
      */
-    protected function _afterSave()
+    public function afterSave()
     {
         $attributeCode = "tax_class_id";
 
@@ -62,6 +64,6 @@ class TaxClass extends \Magento\Framework\App\Config\Value
         $attribute->setData("default_value", $this->getData('value'));
         $attribute->save();
 
-        return parent::_afterSave($this);
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php b/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php
index 948f64ef6a7..44a2e63bc7f 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php
@@ -22,6 +22,7 @@ class Exceptions extends ArraySerialized
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\View\DesignInterface $design
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,13 +32,14 @@ class Exceptions extends ArraySerialized
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\View\DesignInterface $design,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_design = $design;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index 5e85a547c37..d77f694b4b4 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -16,28 +16,37 @@ class Theme extends Value
      */
     protected $_design = null;
 
+    /**
+     * Path to config node with list of caches
+     *
+     * @var string
+     */
+    const XML_PATH_INVALID_CACHES = 'design/invalid_caches';
+
     /**
      * Initialize dependencies
      *
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\View\DesignInterface $design
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
+     * @param \Magento\Framework\Model\ModelResource\AbstractResource|null $resource
+     * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
      * @param array $data
      */
     public function __construct(
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\View\DesignInterface $design,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_design = $design;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -53,4 +62,26 @@ class Theme extends Value
         }
         return parent::beforeSave();
     }
+
+    /**
+     * {@inheritdoc}
+     *
+     * {@inheritdoc}. In addition, it sets status 'invalidate' for blocks and other output caches
+     *
+     * @return $this
+     */
+    public function afterSave()
+    {
+        $types = array_keys(
+            $this->_config->getValue(
+                self::XML_PATH_INVALID_CACHES,
+                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+            )
+        );
+        if ($this->isValueChanged()) {
+            $this->cacheTypeList->invalidate($types);
+        }
+
+        return parent::afterSave();
+    }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ExceptionsTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ExceptionsTest.php
index 47a9acad4ee..74760ac7a77 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ExceptionsTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ExceptionsTest.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\Theme\Test\Unit\Model\Design\Backend;
 
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\Theme\Model\Design\Backend\Exceptions;
 use Magento\Framework\App\Area;
 
@@ -18,60 +19,29 @@ class ExceptionsTest extends \PHPUnit_Framework_TestCase
     /**
      * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $context;
-
-    /**
-     * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $registry;
-
-    /**
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $config;
+    protected $contextMock;
 
     /**
      * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $design;
-
-    /**
-     * @var \Magento\Theme\Model\ResourceModel\Design|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $resource;
-
-    /**
-     * @var \Magento\Theme\Model\ResourceModel\Design\Collection|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $resourceCollection;
+    protected $designMock;
 
     protected function setUp()
     {
-        $this->context = $this->getMockBuilder('Magento\Framework\Model\Context')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->registry = $this->getMockBuilder('Magento\Framework\Registry')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->config = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
-        $this->design = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
-        $this->resource = $this->getMockBuilder('Magento\Theme\Model\ResourceModel\Design')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->resourceCollection = $this->getMockBuilder('Magento\Theme\Model\ResourceModel\Design\Collection')
+        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
             ->disableOriginalConstructor()
             ->getMock();
-        $this->context->expects($this->once())
+        $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
+        $this->contextMock->expects($this->once())
             ->method('getEventDispatcher')
             ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
 
-        $this->model = new Exceptions(
-            $this->context,
-            $this->registry,
-            $this->config,
-            $this->design,
-            $this->resource,
-            $this->resourceCollection
+        $this->model = (new ObjectManager($this))->getObject(
+            'Magento\Theme\Model\Design\Backend\Exceptions',
+            [
+                'context' => $this->contextMock,
+                'design' => $this->designMock,
+            ]
         );
     }
 
@@ -86,7 +56,7 @@ class ExceptionsTest extends \PHPUnit_Framework_TestCase
     public function testBeforeSave()
     {
         $value = ['__empty' => '', 'test' => ['search' => '1qwe', 'value' => '#val#', 'regexp' => '[a-zA-Z0-9]*']];
-        $this->design->expects($this->once())
+        $this->designMock->expects($this->once())
             ->method('setDesignTheme')
             ->with('#val#', Area::AREA_FRONTEND);
         $this->model->setValue($value);
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index f6ac670502a..14e25f82611 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -7,6 +7,7 @@
 namespace Magento\Theme\Test\Unit\Model\Design\Backend;
 
 use Magento\Framework\App\Area;
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\Theme\Model\Design\Backend\Theme;
 
 class ThemeTest extends \PHPUnit_Framework_TestCase
@@ -19,60 +20,29 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     /**
      * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $context;
-
-    /**
-     * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $registry;
-
-    /**
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $config;
+    protected $contextMock;
 
     /**
      * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $design;
-
-    /**
-     * @var \Magento\Theme\Model\ResourceModel\Design|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $resource;
-
-    /**
-     * @var \Magento\Theme\Model\ResourceModel\Design\Collection|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $resourceCollection;
+    protected $designMock;
 
     protected function setUp()
     {
-        $this->context = $this->getMockBuilder('Magento\Framework\Model\Context')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->registry = $this->getMockBuilder('Magento\Framework\Registry')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->config = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
-        $this->design = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
-        $this->resource = $this->getMockBuilder('Magento\Theme\Model\ResourceModel\Design')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->resourceCollection = $this->getMockBuilder('Magento\Theme\Model\ResourceModel\Design\Collection')
+        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
             ->disableOriginalConstructor()
             ->getMock();
-        $this->context->expects($this->once())
+        $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
+        $this->contextMock->expects($this->once())
             ->method('getEventDispatcher')
             ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
 
-        $this->model = new Theme(
-            $this->context,
-            $this->registry,
-            $this->config,
-            $this->design,
-            $this->resource,
-            $this->resourceCollection
+        $this->model = (new ObjectManager($this))->getObject(
+            'Magento\Theme\Model\Design\Backend\Theme',
+            [
+                'design' => $this->designMock,
+                'context' => $this->contextMock,
+            ]
         );
     }
 
@@ -84,7 +54,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     public function testBeforeSave()
     {
-        $this->design->expects($this->once())
+        $this->designMock->expects($this->once())
             ->method('setDesignTheme')
             ->with('some_value', Area::AREA_FRONTEND);
         $this->model->setValue('some_value');
diff --git a/app/code/Magento/Theme/etc/config.xml b/app/code/Magento/Theme/etc/config.xml
index 332043e56df..4f25cd7e2ab 100644
--- a/app/code/Magento/Theme/etc/config.xml
+++ b/app/code/Magento/Theme/etc/config.xml
@@ -8,6 +8,11 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
     <default>
         <design>
+            <invalid_caches>
+                <block_html />
+                <layout />
+                <translate />
+            </invalid_caches>
             <head translate="default_description">
                 <default_title>Magento Commerce</default_title>
                 <default_description>Default Description</default_description>
diff --git a/lib/internal/Magento/Framework/App/Config/Value.php b/lib/internal/Magento/Framework/App/Config/Value.php
index 1065c8f1f19..629b066aa35 100644
--- a/lib/internal/Magento/Framework/App/Config/Value.php
+++ b/lib/internal/Magento/Framework/App/Config/Value.php
@@ -42,10 +42,16 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F
      */
     protected $_config;
 
+    /**
+     * @var \Magento\Framework\App\Cache\TypeListInterface
+     */
+    protected $cacheTypeList;
+
     /**
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
      * @param array $data
@@ -54,12 +60,14 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_config = $config;
         parent::__construct($context, $registry, $resource, $resourceCollection, $data);
+        $this->cacheTypeList = $cacheTypeList;
     }
 
     /**
@@ -107,4 +115,20 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F
         $data = $this->_getData('fieldset_data');
         return is_array($data) && isset($data[$key]) ? $data[$key] : null;
     }
+
+    /**
+     * {@inheritdoc}
+     *
+     * {@inheritdoc}. In addition, it sets status 'invalidate' for config caches
+     *
+     * @return $this
+     */
+    public function afterSave()
+    {
+        if ($this->isValueChanged()) {
+            $this->cacheTypeList->invalidate(\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER);
+        }
+
+        return parent::afterSave();
+    }
 }
-- 
GitLab


From 323630196ea4fd0e7a856aa6be458783749c8ccc Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Tue, 13 Oct 2015 15:12:16 -0500
Subject: [PATCH 02/61] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Model/Config/Backend/Currency/Allow.php   |  2 +-
 .../Model/Config/Backend/Currency/Base.php    |  2 +-
 .../Config/Model/Config/Backend/Translate.php | 26 ++++++++++++++-----
 .../Model/Config/Backend/ManagestockTest.php  |  1 +
 .../Config/Backend/Image/AdapterTest.php      |  1 +
 .../Model/Config/Backend/DomainTest.php       |  1 +
 .../Model/Config/Backend/AllowedIpsTest.php   |  1 +
 7 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
index fecb0710472..61ed9ef5266 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
@@ -38,7 +38,7 @@ class Allow extends AbstractCurrency
         array $data = []
     ) {
         $this->_localeCurrency = $localeCurrency;
-        parent::__construct($context, $registry, $config, $cacheTypeList, $resourceCollection, $resource, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
index fe32b71564f..abff700c120 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
@@ -35,7 +35,7 @@ class Base extends AbstractCurrency
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $cacheTypeList, $resourceCollection, $resource, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->currencyFactory = $currencyFactory;
     }
 
diff --git a/app/code/Magento/Config/Model/Config/Backend/Translate.php b/app/code/Magento/Config/Model/Config/Backend/Translate.php
index 665a7e68e1a..6f6ae7071c7 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Translate.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Translate.php
@@ -3,24 +3,38 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Rss\Model\System\Config\Backend;
 
 /**
- * Cache cleaner backend model
- *
+ * System config translate inline fields backend model
  */
-class Links extends \Magento\Framework\App\Config\Value
+namespace Magento\Config\Model\Config\Backend;
+
+class Translate extends \Magento\Framework\App\Config\Value
 {
     /**
-     * Invalidate cache type, when value was changed
+     * Path to config node with list of caches
+     *
+     * @var string
+     */
+    const XML_PATH_INVALID_CACHES = 'dev/translate_inline/invalid_caches';
+
+    /**
+     * Set status 'invalidate' for blocks and other output caches
      *
      * @return $this
      */
     public function afterSave()
     {
+        $types = array_keys(
+            $this->_config->getValue(
+                self::XML_PATH_INVALID_CACHES,
+                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+            )
+        );
         if ($this->isValueChanged()) {
-            $this->cacheTypeList->invalidate(\Magento\Framework\View\Element\AbstractBlock::CACHE_GROUP);
+            $this->cacheTypeList->invalidate($types);
         }
+
         return parent::afterSave();
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Config/Backend/ManagestockTest.php b/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Config/Backend/ManagestockTest.php
index 07fcc69d89c..8f63143bddc 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Config/Backend/ManagestockTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Config/Backend/ManagestockTest.php
@@ -54,6 +54,7 @@ class ManagestockTest extends \PHPUnit_Framework_TestCase
             Bootstrap::getObjectManager()->get('Magento\Framework\Model\Context'),
             Bootstrap::getObjectManager()->get('Magento\Framework\Registry'),
             Bootstrap::getObjectManager()->get('Magento\Framework\App\Config\ScopeConfigInterface'),
+            Bootstrap::getObjectManager()->get('Magento\Framework\App\Cache\TypeListInterface'),
             $stockManagement,
             Bootstrap::getObjectManager()->get('Magento\CatalogInventory\Model\Indexer\Stock\Processor'),
             Bootstrap::getObjectManager()->get('Magento\Config\Model\ResourceModel\Config')
diff --git a/dev/tests/integration/testsuite/Magento/Config/Model/Config/Backend/Image/AdapterTest.php b/dev/tests/integration/testsuite/Magento/Config/Model/Config/Backend/Image/AdapterTest.php
index fc7c961049d..3bdc1817762 100644
--- a/dev/tests/integration/testsuite/Magento/Config/Model/Config/Backend/Image/AdapterTest.php
+++ b/dev/tests/integration/testsuite/Magento/Config/Model/Config/Backend/Image/AdapterTest.php
@@ -18,6 +18,7 @@ class AdapterTest extends \PHPUnit_Framework_TestCase
         $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Config\Model\Config\Backend\Image\Adapter'
         );
+        $this->_model->setPath('path');
     }
 
     /**
diff --git a/dev/tests/integration/testsuite/Magento/Cookie/Model/Config/Backend/DomainTest.php b/dev/tests/integration/testsuite/Magento/Cookie/Model/Config/Backend/DomainTest.php
index 7f469f42e7b..5f24039ee05 100644
--- a/dev/tests/integration/testsuite/Magento/Cookie/Model/Config/Backend/DomainTest.php
+++ b/dev/tests/integration/testsuite/Magento/Cookie/Model/Config/Backend/DomainTest.php
@@ -27,6 +27,7 @@ class DomainTest extends \PHPUnit_Framework_TestCase
             'Magento\Cookie\Model\Config\Backend\Domain'
         );
         $domain->setValue($value);
+        $domain->setPath('path');
         try {
             $domain->save();
             if ($exceptionMessage) {
diff --git a/dev/tests/integration/testsuite/Magento/Developer/Model/Config/Backend/AllowedIpsTest.php b/dev/tests/integration/testsuite/Magento/Developer/Model/Config/Backend/AllowedIpsTest.php
index d34c64a96dc..3b23c65d06b 100644
--- a/dev/tests/integration/testsuite/Magento/Developer/Model/Config/Backend/AllowedIpsTest.php
+++ b/dev/tests/integration/testsuite/Magento/Developer/Model/Config/Backend/AllowedIpsTest.php
@@ -22,6 +22,7 @@ class AllowedIpsTest extends \PHPUnit_Framework_TestCase
             'Magento\Developer\Model\Config\Backend\AllowedIps'
         );
         $model->setValue($value);
+        $model->setPath('path');
         $model->beforeSave();
         $model->save();
         $this->assertEquals($expected, $model->getValue());
-- 
GitLab


From 4b971f731d007d4095a9567e06b3b511c244386a Mon Sep 17 00:00:00 2001
From: Alex Bomko <abomko@ebay.com>
Date: Wed, 14 Oct 2015 18:18:04 +0300
Subject: [PATCH 03/61] MAGETWO-43956: The "configurable_variations" column is
 absent in exported file

---
 .../BundleImportExport/Model/Export/RowCustomizer.php        | 5 +++--
 .../ConfigurableImportExport/Model/Export/RowCustomizer.php  | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php b/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php
index 5c8f89c8982..c2007318423 100644
--- a/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php
+++ b/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php
@@ -95,7 +95,8 @@ class RowCustomizer implements RowCustomizerInterface
      */
     public function prepareData($collection, $productIds)
     {
-        $collection->addAttributeToFilter(
+        $productCollection = clone $collection;
+        $productCollection->addAttributeToFilter(
             'entity_id',
             ['in' => $productIds]
         )->addAttributeToFilter(
@@ -103,7 +104,7 @@ class RowCustomizer implements RowCustomizerInterface
             ['eq' => \Magento\Catalog\Model\Product\Type::TYPE_BUNDLE]
         );
 
-        return $this->populateBundleData($collection);
+        return $this->populateBundleData($productCollection);
     }
 
     /**
diff --git a/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php b/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php
index 4405feba184..2ed091296f1 100644
--- a/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php
+++ b/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php
@@ -24,7 +24,8 @@ class RowCustomizer implements RowCustomizerInterface
      */
     public function prepareData($collection, $productIds)
     {
-        $collection->addAttributeToFilter(
+        $productCollection = clone $collection;
+        $productCollection->addAttributeToFilter(
             'entity_id',
             ['in' => $productIds]
         )->addAttributeToFilter(
@@ -32,7 +33,7 @@ class RowCustomizer implements RowCustomizerInterface
             ['eq' => \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE]
         );
 
-        while ($product = $collection->fetchItem()) {
+        while ($product = $productCollection->fetchItem()) {
             $productAttributesOptions = $product->getTypeInstance()->getConfigurableOptions($product);
 
             foreach ($productAttributesOptions as $productAttributeOption) {
-- 
GitLab


From 5e89cdb71137f1ad02547f334bff32181a0b189e Mon Sep 17 00:00:00 2001
From: Alex Bomko <abomko@ebay.com>
Date: Wed, 14 Oct 2015 22:35:14 +0300
Subject: [PATCH 04/61] MAGETWO-43956: The configurable_variations column is
 absent in exported file

---
 .../Model/Export/RowCustomizer.php            |  2 +-
 .../Model/Export/RowCustomizer/Composite.php  |  2 +-
 .../Model/Export/RowCustomizerInterface.php   |  2 +-
 .../Model/Export/RowCustomizer.php            |  2 +-
 .../Model/Export/RowCustomizerTest.php        | 48 +++++++++++++++++++
 .../Model/Export/RowCustomizerTest.php        | 48 +++++++++++++++++++
 6 files changed, 100 insertions(+), 4 deletions(-)
 create mode 100644 dev/tests/integration/testsuite/Magento/BundleImportExport/Model/Export/RowCustomizerTest.php
 create mode 100644 dev/tests/integration/testsuite/Magento/ConfigurableImportExport/Model/Export/RowCustomizerTest.php

diff --git a/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php b/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php
index c2007318423..1bf95ba4ea8 100644
--- a/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php
+++ b/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php
@@ -90,7 +90,7 @@ class RowCustomizer implements RowCustomizerInterface
      * Prepare data for export
      *
      * @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection
-     * @param int $productIds
+     * @param int[] $productIds
      * @return $this
      */
     public function prepareData($collection, $productIds)
diff --git a/app/code/Magento/CatalogImportExport/Model/Export/RowCustomizer/Composite.php b/app/code/Magento/CatalogImportExport/Model/Export/RowCustomizer/Composite.php
index 1997d39b47e..ab96bf9f354 100644
--- a/app/code/Magento/CatalogImportExport/Model/Export/RowCustomizer/Composite.php
+++ b/app/code/Magento/CatalogImportExport/Model/Export/RowCustomizer/Composite.php
@@ -34,7 +34,7 @@ class Composite implements RowCustomizerInterface
      * Prepare data for export
      *
      * @param mixed $collection
-     * @param int $productIds
+     * @param int[] $productIds
      * @return mixed|void
      */
     public function prepareData($collection, $productIds)
diff --git a/app/code/Magento/CatalogImportExport/Model/Export/RowCustomizerInterface.php b/app/code/Magento/CatalogImportExport/Model/Export/RowCustomizerInterface.php
index 6723dbc24af..240284ed320 100644
--- a/app/code/Magento/CatalogImportExport/Model/Export/RowCustomizerInterface.php
+++ b/app/code/Magento/CatalogImportExport/Model/Export/RowCustomizerInterface.php
@@ -14,7 +14,7 @@ interface RowCustomizerInterface
      * Prepare data for export
      *
      * @param mixed $collection
-     * @param int $productIds
+     * @param int[] $productIds
      * @return mixed
      */
     public function prepareData($collection, $productIds);
diff --git a/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php b/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php
index 2ed091296f1..a14abd1037a 100644
--- a/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php
+++ b/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php
@@ -19,7 +19,7 @@ class RowCustomizer implements RowCustomizerInterface
      * Prepare configurable data for export
      *
      * @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection
-     * @param int $productIds
+     * @param int[] $productIds
      * @return void
      */
     public function prepareData($collection, $productIds)
diff --git a/dev/tests/integration/testsuite/Magento/BundleImportExport/Model/Export/RowCustomizerTest.php b/dev/tests/integration/testsuite/Magento/BundleImportExport/Model/Export/RowCustomizerTest.php
new file mode 100644
index 00000000000..c5adb5a6bd0
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/BundleImportExport/Model/Export/RowCustomizerTest.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\BundleImportExport\Model\Export;
+
+/**
+ * @magentoAppArea adminhtml
+ */
+class RowCustomizerTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\BundleImportExport\Model\Export\RowCustomizer
+     */
+    private $model;
+
+    /**
+     * @var \Magento\Framework\ObjectManagerInterface
+     */
+    private $objectManager;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+        $this->model = $this->objectManager->create(
+            'Magento\BundleImportExport\Model\Export\RowCustomizer'
+        );
+    }
+
+    /**
+     * @magentoDataFixture Magento/Bundle/_files/product.php
+     */
+    public function testPrepareData()
+    {
+        $collection = $this->objectManager->get('Magento\Catalog\Model\ResourceModel\Product\Collection');
+        $select = (string)$collection->getSelect();
+        $this->model->prepareData($collection, [1, 2, 3, 4]);
+        $this->assertEquals($select, (string)$collection->getSelect());
+        $result = $this->model->addData([], 3);
+        $this->assertArrayHasKey('bundle_price_type', $result);
+        $this->assertArrayHasKey('bundle_sku_type', $result);
+        $this->assertArrayHasKey('bundle_price_view', $result);
+        $this->assertArrayHasKey('bundle_weight_type', $result);
+        $this->assertArrayHasKey('bundle_values', $result);
+        $this->assertContains('sku=simple,', $result['bundle_values']);
+    }
+}
diff --git a/dev/tests/integration/testsuite/Magento/ConfigurableImportExport/Model/Export/RowCustomizerTest.php b/dev/tests/integration/testsuite/Magento/ConfigurableImportExport/Model/Export/RowCustomizerTest.php
new file mode 100644
index 00000000000..9dc933734fd
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/ConfigurableImportExport/Model/Export/RowCustomizerTest.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\ConfigurableImportExport\Model\Export;
+
+/**
+ * @magentoAppArea adminhtml
+ */
+class RowCustomizerTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\ConfigurableImportExport\Model\Export\RowCustomizer
+     */
+    private $model;
+
+    /**
+     * @var \Magento\Framework\ObjectManagerInterface
+     */
+    private $objectManager;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+        $this->model = $this->objectManager->create(
+            'Magento\ConfigurableImportExport\Model\Export\RowCustomizer'
+        );
+    }
+
+    /**
+     * @magentoDataFixture Magento/ConfigurableProduct/_files/product_configurable.php
+     */
+    public function testPrepareData()
+    {
+        $collection = $this->objectManager->get('Magento\Catalog\Model\ResourceModel\Product\Collection');
+        $select = (string)$collection->getSelect();
+        $this->model->prepareData($collection, [1, 2, 3, 4]);
+        $this->assertEquals($select, (string)$collection->getSelect());
+        $result = $this->model->addData([], 1);
+        $this->assertArrayHasKey('configurable_variations', $result);
+        $this->assertArrayHasKey('configurable_variation_labels', $result);
+        $this->assertEquals(
+            'sku=simple_10,test_configurable=Option 1|sku=simple_20,test_configurable=Option 2',
+            $result['configurable_variations']
+        );
+    }
+}
-- 
GitLab


From 425a511df3d44f24a5148d25480be49fc429e734 Mon Sep 17 00:00:00 2001
From: Alex Bomko <abomko@ebay.com>
Date: Wed, 14 Oct 2015 21:34:11 +0300
Subject: [PATCH 05/61] MAGETWO-44026: Fatal Error on Product Reviews Report
 when Ratings have not been assigned to Store

---
 .../Review/Product/Collection.php             |  7 ++--
 .../Review/Product/CollectionTest.php         | 34 +++++++++++++++++++
 2 files changed, 37 insertions(+), 4 deletions(-)
 create mode 100644 dev/tests/integration/testsuite/Magento/Reports/Model/ResourceModel/Review/Product/CollectionTest.php

diff --git a/app/code/Magento/Reports/Model/ResourceModel/Review/Product/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Review/Product/Collection.php
index 98221969049..662047abeca 100644
--- a/app/code/Magento/Reports/Model/ResourceModel/Review/Product/Collection.php
+++ b/app/code/Magento/Reports/Model/ResourceModel/Review/Product/Collection.php
@@ -58,8 +58,7 @@ class Collection extends \Magento\Catalog\Model\ResourceModel\Product\Collection
             $this->getConnection()->quoteInto('table_rating.store_id > ?', 0),
         ];
 
-        $percentField = $this->getConnection()->quoteIdentifier('table_rating.percent');
-        $sumPercentField = new \Zend_Db_Expr("SUM({$percentField})");
+        $sumPercentField = new \Zend_Db_Expr("SUM(table_rating.percent)");
         $sumPercentApproved = new \Zend_Db_Expr('SUM(table_rating.percent_approved)');
         $countRatingId = new \Zend_Db_Expr('COUNT(table_rating.rating_id)');
 
@@ -67,8 +66,8 @@ class Collection extends \Magento\Catalog\Model\ResourceModel\Product\Collection
             ['table_rating' => $this->getTable('rating_option_vote_aggregated')],
             implode(' AND ', $joinCondition),
             [
-                'avg_rating' => sprintf('%s/%s', $sumPercentField, $countRatingId),
-                'avg_rating_approved' => sprintf('%s/%s', $sumPercentApproved, $countRatingId)
+                'avg_rating' => new \Zend_Db_Expr(sprintf('%s/%s', $sumPercentField, $countRatingId)),
+                'avg_rating_approved' => new \Zend_Db_Expr(sprintf('%s/%s', $sumPercentApproved, $countRatingId))
             ]
         );
 
diff --git a/dev/tests/integration/testsuite/Magento/Reports/Model/ResourceModel/Review/Product/CollectionTest.php b/dev/tests/integration/testsuite/Magento/Reports/Model/ResourceModel/Review/Product/CollectionTest.php
new file mode 100644
index 00000000000..d8c0eddd7ec
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Reports/Model/ResourceModel/Review/Product/CollectionTest.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Reports\Model\ResourceModel\Review\Product;
+
+/**
+ * @magentoAppArea adminhtml
+ */
+class CollectionTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Reports\Model\ResourceModel\Review\Product\Collection
+     */
+    private $_collection;
+
+    protected function setUp()
+    {
+        $this->_collection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Reports\Model\ResourceModel\Review\Product\Collection'
+        );
+    }
+
+    public function testGetSelect()
+    {
+        $select = (string)$this->_collection->getSelect();
+        $search = '/SUM\(table_rating.percent\)\/COUNT\(table_rating.rating_id\) AS `avg_rating`'
+            . '[\s\S]+SUM\(table_rating.percent_approved\)\/COUNT\(table_rating.rating_id\) AS `avg_rating_approved`'
+            . '[\s\S]+LEFT JOIN `.*rating_option_vote_aggregated` AS `table_rating`/';
+
+        $this->assertRegExp($search, $select);
+    }
+}
-- 
GitLab


From d6189dd4c6bb4c149b2f9bdbd71d03ac58cfa1ef Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 14 Oct 2015 15:40:25 -0500
Subject: [PATCH 06/61] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Unit/Model/Design/Backend/ThemeTest.php   | 56 +++++++++++++++++++
 .../App/Test/Unit/Config/ValueTest.php        | 43 ++++++++++++--
 2 files changed, 94 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index 14e25f82611..e83a4e4ca30 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -27,21 +27,37 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     protected $designMock;
 
+    /**
+     * @var \Magento\Framework\App\Cache\TypeListInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cacheTypeListMock;
+
+    /**
+     * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $configMock;
+
     protected function setUp()
     {
         $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
             ->disableOriginalConstructor()
             ->getMock();
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
+        $this->cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
         $this->contextMock->expects($this->once())
             ->method('getEventDispatcher')
             ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
+        $this->configMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
 
         $this->model = (new ObjectManager($this))->getObject(
             'Magento\Theme\Model\Design\Backend\Theme',
             [
                 'design' => $this->designMock,
                 'context' => $this->contextMock,
+                'cacheTypeList' => $this->cacheTypeListMock,
+                'config' => $this->configMock,
             ]
         );
     }
@@ -60,4 +76,44 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
         $this->model->setValue('some_value');
         $this->assertInstanceOf(get_class($this->model), $this->model->beforeSave());
     }
+
+    /**
+     * @param int $callNumber
+     * @param string $oldValue
+     * @dataProvider afterSaveDataProvider
+     */
+    public function testAfterSave($callNumber, $oldValue)
+    {
+        $this->cacheTypeListMock->expects($this->exactly($callNumber))
+            ->method('invalidate');
+        $this->configMock->expects($this->any())
+            ->method('getValue')
+            ->willReturnMap(
+                [
+                    [
+                        Theme::XML_PATH_INVALID_CACHES,
+                        \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
+                        null,
+                        ['block_html' => 1, 'layout' => 1, 'translate' => 1]
+                    ],
+                    [
+                        null,
+                        \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
+                        null,
+                        $oldValue
+                    ],
+
+                ]
+            );
+        $this->model->setValue('some_value');
+        $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
+    }
+
+    public function afterSaveDataProvider()
+    {
+        return [
+            [0, 'some_value'],
+            [2, 'other_value'],
+        ];
+    }
 }
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/ValueTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Config/ValueTest.php
index db103705fef..175509af622 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/ValueTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/ValueTest.php
@@ -15,27 +15,36 @@ class ValueTest extends \PHPUnit_Framework_TestCase
     /**
      * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $eventManager;
+    protected $eventManagerMock;
 
     /**
      * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $configMock;
 
+    /**
+     * @var \Magento\Framework\App\Cache\TypeListInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cacheTypeListMock;
+
     /**
      * @return void
      */
     protected function setUp()
     {
         $this->configMock = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface');
-        $this->eventManager = $this->getMock('Magento\Framework\Event\ManagerInterface');
+        $this->eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface');
+        $this->cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
 
         $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $this->model = $objectManager->getObject(
             'Magento\Framework\App\Config\Value',
             [
                 'config' => $this->configMock,
-                'eventDispatcher' => $this->eventManager,
+                'eventDispatcher' => $this->eventManagerMock,
+                'cacheTypeList' => $this->cacheTypeListMock,
             ]
         );
     }
@@ -99,7 +108,7 @@ class ValueTest extends \PHPUnit_Framework_TestCase
      */
     public function testAfterLoad()
     {
-        $this->eventManager->expects(
+        $this->eventManagerMock->expects(
             $this->at(0)
         )->method(
             'dispatch'
@@ -107,7 +116,7 @@ class ValueTest extends \PHPUnit_Framework_TestCase
             'model_load_after',
             ['object' => $this->model]
         );
-        $this->eventManager->expects(
+        $this->eventManagerMock->expects(
             $this->at(1)
         )->method(
             'dispatch'
@@ -158,4 +167,28 @@ class ValueTest extends \PHPUnit_Framework_TestCase
             ],
         ];
     }
+
+    /**
+     * @param int $callNumber
+     * @param string $oldValue
+     * @dataProvider afterSaveDataProvider
+     */
+    public function testAfterSave($callNumber, $oldValue)
+    {
+        $this->cacheTypeListMock->expects($this->exactly($callNumber))
+            ->method('invalidate');
+        $this->configMock->expects($this->any())
+            ->method('getValue')
+            ->willReturn($oldValue);
+        $this->model->setValue('some_value');
+        $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
+    }
+
+    public function afterSaveDataProvider()
+    {
+        return [
+            [0, 'some_value'],
+            [1, 'other_value'],
+        ];
+    }
 }
-- 
GitLab


From 405dd8cbe911673974f90e3d0c5162628b4fc29b Mon Sep 17 00:00:00 2001
From: Alex Bomko <abomko@ebay.com>
Date: Wed, 14 Oct 2015 23:41:30 +0300
Subject: [PATCH 07/61] MAGETWO-44009: Fatal error occurs when user opens
 scheduled import section with removed products-import-export module

---
 .../Model/Export/RowCustomizer.php            | 15 +++----
 .../Model/Export/Product.php                  | 17 ++++----
 .../Model/Import/Product.php                  | 40 +++++++++----------
 .../Test/Unit/Model/Import/ProductTest.php    |  3 +-
 .../Model/Export/RowCustomizer.php            |  7 ++--
 .../Unit/Model/Export/RowCustomizerTest.php   | 12 +++---
 .../Model/Import/Product/Type/Grouped.php     |  3 +-
 .../Block/Adminhtml/Import/Edit/Form.php      |  3 +-
 .../Magento/ImportExport/Model/Import.php     |  5 +++
 9 files changed, 57 insertions(+), 48 deletions(-)

diff --git a/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php b/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php
index 5c8f89c8982..ffb475c5769 100644
--- a/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php
+++ b/app/code/Magento/BundleImportExport/Model/Export/RowCustomizer.php
@@ -10,6 +10,7 @@ use Magento\CatalogImportExport\Model\Export\RowCustomizerInterface;
 use Magento\CatalogImportExport\Model\Import\Product as ImportProductModel;
 use Magento\Bundle\Model\ResourceModel\Selection\Collection as SelectionCollection;
 use Magento\ImportExport\Controller\Adminhtml\Import;
+use Magento\ImportExport\Model\Import as ImportModel;
 
 /**
  * Class RowCustomizer
@@ -214,9 +215,9 @@ class RowCustomizer implements RowCustomizerInterface
                 'price_type' => $this->getPriceTypeValue($selection->getSelectionPriceType())
             ];
             $bundleData .= $optionValues
-                . ImportProductModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
+                . ImportModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
                 . implode(
-                    ImportProductModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR,
+                    ImportModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR,
                     array_map(
                         function ($value, $key) {
                             return $key . ImportProductModel::PAIR_NAME_VALUE_SEPARATOR . $value;
@@ -240,9 +241,9 @@ class RowCustomizer implements RowCustomizerInterface
     protected function getFormattedOptionValues($option)
     {
         return 'name' . ImportProductModel::PAIR_NAME_VALUE_SEPARATOR
-        . $option->getTitle() . ImportProductModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
+        . $option->getTitle() . ImportModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
         . 'type' . ImportProductModel::PAIR_NAME_VALUE_SEPARATOR
-        . $option->getType() . ImportProductModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
+        . $option->getType() . ImportModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
         . 'required' . ImportProductModel::PAIR_NAME_VALUE_SEPARATOR
         . $option->getRequired();
     }
@@ -290,7 +291,7 @@ class RowCustomizer implements RowCustomizerInterface
     {
         if (!empty($dataRow['additional_attributes'])) {
             $additionalAttributes = explode(
-                ImportProductModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR,
+                ImportModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR,
                 $dataRow['additional_attributes']
             );
             $dataRow['additional_attributes'] = $this->getNotBundleAttributes($additionalAttributes);
@@ -314,10 +315,10 @@ class RowCustomizer implements RowCustomizerInterface
                 $cleanedAdditionalAttributes .= $attributeCode
                     . ImportProductModel::PAIR_NAME_VALUE_SEPARATOR
                     . $attributeValue
-                    . ImportProductModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR;
+                    . ImportModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR;
             }
         }
 
-        return rtrim($cleanedAdditionalAttributes, ImportProductModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR);
+        return rtrim($cleanedAdditionalAttributes, ImportModel::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR);
     }
 }
diff --git a/app/code/Magento/CatalogImportExport/Model/Export/Product.php b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
index 5ba8ed055cd..23001345137 100644
--- a/app/code/Magento/CatalogImportExport/Model/Export/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\CatalogImportExport\Model\Export;
 
+use Magento\ImportExport\Model\Import;
 use \Magento\Store\Model\Store;
 use \Magento\CatalogImportExport\Model\Import\Product as ImportProduct;
 
@@ -901,7 +902,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
 
                 if (!empty($additionalAttributes)) {
                     $data[$itemId][$storeId][self::COL_ADDITIONAL_ATTRIBUTES] =
-                        implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalAttributes);
+                        implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalAttributes);
                 } else {
                     unset($data[$itemId][$storeId][self::COL_ADDITIONAL_ATTRIBUTES]);
                 }
@@ -981,7 +982,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
     protected function collectMultiselectValues($item, $attrCode, $storeId)
     {
         $attrValue = $item->getData($attrCode);
-        $optionIds = explode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $attrValue);
+        $optionIds = explode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $attrValue);
         $options = array_intersect_key(
             $this->_attributeValues[$attrCode],
             array_flip($optionIds)
@@ -1041,7 +1042,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
                     $websiteCodes[] = $this->_websiteIdToCode[$productWebsite];
                 }
                 $dataRow['_product_websites'] =
-                    implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $websiteCodes);
+                    implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $websiteCodes);
                 $multiRawData['rowWebsites'][$productId] = [];
             }
             if (!empty($multiRawData['mediaGalery'][$productId])) {
@@ -1052,9 +1053,9 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
                     $additionalImageLabels[] = $mediaItem['_media_label'];
                 }
                 $dataRow['additional_images'] =
-                    implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImages);
+                    implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImages);
                 $dataRow['additional_image_labels'] =
-                    implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImageLabels);
+                    implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImageLabels);
                 $multiRawData['mediaGalery'][$productId] = [];
             }
             foreach ($this->_linkTypeProvider->getLinkTypes() as $linkTypeName => $linkId) {
@@ -1074,7 +1075,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
                     $multiRawData['linksRows'][$productId][$linkId] = [];
                     asort($associations);
                     $dataRow[$colPrefix . 'skus'] =
-                        implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, array_keys($associations));
+                        implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, array_keys($associations));
                 }
             }
             $dataRow = $this->rowCustomizer->addData($dataRow, $productId);
@@ -1085,7 +1086,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
             foreach (array_keys($this->collectedMultiselectsData[$storeId][$productId]) as $attrKey) {
                 if (!empty($this->collectedMultiselectsData[$storeId][$productId][$attrKey])) {
                     $dataRow[$attrKey] = implode(
-                        ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR,
+                        Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR,
                         $this->collectedMultiselectsData[$storeId][$productId][$attrKey]
                     );
                 }
@@ -1161,7 +1162,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
             $result[] = $key . ImportProduct::PAIR_NAME_VALUE_SEPARATOR . $value;
         }
 
-        return implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $result);
+        return implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $result);
     }
 
     /**
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index 1e8fcbc4aa0..8d19881ef2c 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -13,6 +13,7 @@ use Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface as Va
 use Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface;
 use Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor;
 use Magento\Framework\Stdlib\DateTime;
+use Magento\ImportExport\Model\Import;
 use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingError;
 use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface;
 
@@ -36,11 +37,6 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
      */
     const ATTRIBUTE_DELETE_BUNCH = 1000;
 
-    /**
-     * default delimiter for several values in one cell
-     */
-    const DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR = ',';
-
     /**
      * Pseudo multi line separator in one cell.
      *
@@ -727,10 +723,10 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
      */
     public function getMultipleValueSeparator()
     {
-        if (!empty($this->_parameters[\Magento\ImportExport\Model\Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR])) {
-            return $this->_parameters[\Magento\ImportExport\Model\Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR];
+        if (!empty($this->_parameters[Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR])) {
+            return $this->_parameters[Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR];
         }
-        return self::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR;
+        return Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR;
     }
 
     /**
@@ -781,7 +777,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
      */
     public function deleteProductsForReplacement()
     {
-        $this->setParameters(array('behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_DELETE));
+        $this->setParameters(array('behavior' => Import::BEHAVIOR_DELETE));
         $this->_deleteProducts();
 
         return $this;
@@ -837,9 +833,9 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     protected function _importData()
     {
         $this->_validatedRows = null;
-        if (\Magento\ImportExport\Model\Import::BEHAVIOR_DELETE == $this->getBehavior()) {
+        if (Import::BEHAVIOR_DELETE == $this->getBehavior()) {
             $this->_deleteProducts();
-        } elseif (\Magento\ImportExport\Model\Import::BEHAVIOR_REPLACE == $this->getBehavior()) {
+        } elseif (Import::BEHAVIOR_REPLACE == $this->getBehavior()) {
             $this->_replaceFlag = true;
             $this->_replaceProducts();
         } else {
@@ -859,7 +855,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         $this->deleteProductsForReplacement();
         $this->_oldSku = $this->skuProcessor->reloadOldSkus()->getOldSkus();
         $this->_validatedRows = null;
-        $this->setParameters(array('behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND));
+        $this->setParameters(array('behavior' => Import::BEHAVIOR_APPEND));
         $this->_saveProductsData();
 
         return $this;
@@ -975,7 +971,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
 
         static $lastSku = null;
 
-        if (\Magento\ImportExport\Model\Import::BEHAVIOR_DELETE == $this->getBehavior()) {
+        if (Import::BEHAVIOR_DELETE == $this->getBehavior()) {
             return $rowData;
         }
 
@@ -1092,7 +1088,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                     }
                 }
             }
-            if (\Magento\ImportExport\Model\Import::BEHAVIOR_APPEND != $this->getBehavior() && $productIds) {
+            if (Import::BEHAVIOR_APPEND != $this->getBehavior() && $productIds) {
                 $this->_connection->delete(
                     $mainTable,
                     $this->_connection->quoteInto('product_id IN (?)', array_unique($productIds))
@@ -1186,7 +1182,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                     $categoriesIn[] = ['product_id' => $productId, 'category_id' => $categoryId, 'position' => 1];
                 }
             }
-            if (\Magento\ImportExport\Model\Import::BEHAVIOR_APPEND != $this->getBehavior()) {
+            if (Import::BEHAVIOR_APPEND != $this->getBehavior()) {
                 $this->_connection->delete(
                     $tableName,
                     $this->_connection->quoteInto('product_id IN (?)', $delProductId)
@@ -1547,7 +1543,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                         $this->taxClassProcessor->upsertTaxClass($rowData['tax_class_name'], $productTypeModel);
                 }
 
-                if ($this->getBehavior() == \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND ||
+                if ($this->getBehavior() == Import::BEHAVIOR_APPEND ||
                     empty($rowData[self::COL_SKU])
                 ) {
                     $rowData = $productTypeModel->clearEmptyData($rowData);
@@ -1678,7 +1674,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                     $tierPriceIn[] = $row;
                 }
             }
-            if (\Magento\ImportExport\Model\Import::BEHAVIOR_APPEND != $this->getBehavior()) {
+            if (Import::BEHAVIOR_APPEND != $this->getBehavior()) {
                 $this->_connection->delete(
                     $tableName,
                     $this->_connection->quoteInto('entity_id IN (?)', $delProductId)
@@ -1709,8 +1705,8 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
 
             $DS = DIRECTORY_SEPARATOR;
 
-            if (!empty($this->_parameters[\Magento\ImportExport\Model\Import::FIELD_NAME_IMG_FILE_DIR])) {
-                $tmpPath = $this->_parameters[\Magento\ImportExport\Model\Import::FIELD_NAME_IMG_FILE_DIR];
+            if (!empty($this->_parameters[Import::FIELD_NAME_IMG_FILE_DIR])) {
+                $tmpPath = $this->_parameters[Import::FIELD_NAME_IMG_FILE_DIR];
             } else {
                 $tmpPath = $dirAddon . $DS . $this->_mediaDirectory->getRelativePath('import');
             }
@@ -1790,7 +1786,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
             $productId = $this->skuProcessor->getNewSku($productSku)['entity_id'];
             $productIds[] = $productId;
             $insertedGalleryImgs = [];
-            if (\Magento\ImportExport\Model\Import::BEHAVIOR_APPEND != $this->getBehavior()) {
+            if (Import::BEHAVIOR_APPEND != $this->getBehavior()) {
                 $this->_connection->delete(
                     $mediaGalleryTableName,
                     $this->_connection->quoteInto('entity_id IN (?)', $productId)
@@ -1881,7 +1877,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                     $websitesData[] = ['product_id' => $productId, 'website_id' => $websiteId];
                 }
             }
-            if (\Magento\ImportExport\Model\Import::BEHAVIOR_APPEND != $this->getBehavior()) {
+            if (Import::BEHAVIOR_APPEND != $this->getBehavior()) {
                 $this->_connection->delete(
                     $tableName,
                     $this->_connection->quoteInto('product_id IN (?)', $delProductId)
@@ -2084,7 +2080,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         $rowScope = $this->getRowScope($rowData);
 
         // BEHAVIOR_DELETE use specific validation logic
-        if (\Magento\ImportExport\Model\Import::BEHAVIOR_DELETE == $this->getBehavior()) {
+        if (Import::BEHAVIOR_DELETE == $this->getBehavior()) {
             if (self::SCOPE_DEFAULT == $rowScope && !isset($this->_oldSku[$rowData[self::COL_SKU]])) {
                 $this->addRowError(ValidatorInterface::ERROR_SKU_NOT_FOUND_FOR_DELETE, $rowNum);
                 return false;
diff --git a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php
index 6c9f1f89ff5..b635405b79f 100644
--- a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php
+++ b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php
@@ -8,6 +8,7 @@ namespace Magento\CatalogImportExport\Test\Unit\Model\Import;
 use Magento\CatalogImportExport\Model\Import\Product;
 use Magento\Framework\App\Filesystem\DirectoryList;
 use Magento\Framework\Stdlib\DateTime;
+use Magento\ImportExport\Model\Import;
 
 /**
  * Class ProductTest
@@ -567,7 +568,7 @@ class ProductTest extends \Magento\ImportExport\Test\Unit\Model\Import\AbstractI
     {
         $this->setPropertyValue($this->importProduct, '_parameters', null);
         $this->assertEquals(
-            \Magento\CatalogImportExport\Model\Import\Product::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR,
+            Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR,
             $this->importProduct->getMultipleValueSeparator()
         );
     }
diff --git a/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php b/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php
index 4405feba184..1173cf0ce39 100644
--- a/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php
+++ b/app/code/Magento/ConfigurableImportExport/Model/Export/RowCustomizer.php
@@ -7,6 +7,7 @@ namespace Magento\ConfigurableImportExport\Model\Export;
 
 use Magento\CatalogImportExport\Model\Export\RowCustomizerInterface;
 use \Magento\CatalogImportExport\Model\Import\Product as ImportProduct;
+use Magento\ImportExport\Model\Import;
 
 class RowCustomizer implements RowCustomizerInterface
 {
@@ -51,11 +52,11 @@ class RowCustomizer implements RowCustomizerInterface
 
                 foreach ($variations as $sku => $values) {
                     $variations[$sku] =
-                        'sku=' . $sku . ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
-                        . implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $values);
+                        'sku=' . $sku . Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
+                        . implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $values);
                 }
                 $variations = implode(ImportProduct::PSEUDO_MULTI_LINE_SEPARATOR, $variations);
-                $variationsLabels = implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $variationsLabels);
+                $variationsLabels = implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $variationsLabels);
 
                 $this->configurableData[$product->getId()] = [
                     'configurable_variations' => $variations,
diff --git a/app/code/Magento/ConfigurableImportExport/Test/Unit/Model/Export/RowCustomizerTest.php b/app/code/Magento/ConfigurableImportExport/Test/Unit/Model/Export/RowCustomizerTest.php
index 65732d3df1d..b067e19c381 100644
--- a/app/code/Magento/ConfigurableImportExport/Test/Unit/Model/Export/RowCustomizerTest.php
+++ b/app/code/Magento/ConfigurableImportExport/Test/Unit/Model/Export/RowCustomizerTest.php
@@ -7,6 +7,7 @@
 namespace Magento\ConfigurableImportExport\Test\Unit\Model\Export;
 
 use \Magento\CatalogImportExport\Model\Import\Product as ImportProduct;
+use Magento\ImportExport\Model\Import;
 
 class RowCustomizerTest extends \PHPUnit_Framework_TestCase
 {
@@ -256,17 +257,17 @@ class RowCustomizerTest extends \PHPUnit_Framework_TestCase
         return [
             $this->initiatedProductId => [
                 'configurable_variations' => implode(ImportProduct::PSEUDO_MULTI_LINE_SEPARATOR, [
-                    '_sku_' => 'sku=_sku_'  . ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
-                        . implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, [
+                    '_sku_' => 'sku=_sku_'  . Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
+                        . implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, [
                             'code_of_attribute=Option Title',
                             'code_of_attribute=Option Title',
                         ]),
-                    '_sku_2' => 'sku=_sku_2'  . ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
-                        . implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, [
+                    '_sku_2' => 'sku=_sku_2' . Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
+                        . implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, [
                             'code_of_attribute_2=Option Title 2',
                         ])
                 ]),
-                'configurable_variation_labels' => implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, [
+                'configurable_variation_labels' => implode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, [
                     'code_of_attribute' => 'code_of_attribute=Super attribute label',
                     'code_of_attribute_2' => 'code_of_attribute_2=Super attribute label 2',
                 ]),
@@ -291,6 +292,7 @@ class RowCustomizerTest extends \PHPUnit_Framework_TestCase
     /**
      * @param $object
      * @param $property
+     * @return mixed
      */
     protected function getPropertyValue(&$object, $property)
     {
diff --git a/app/code/Magento/GroupedImportExport/Model/Import/Product/Type/Grouped.php b/app/code/Magento/GroupedImportExport/Model/Import/Product/Type/Grouped.php
index 6bccd718310..3185df16bdb 100644
--- a/app/code/Magento/GroupedImportExport/Model/Import/Product/Type/Grouped.php
+++ b/app/code/Magento/GroupedImportExport/Model/Import/Product/Type/Grouped.php
@@ -8,6 +8,7 @@
 namespace Magento\GroupedImportExport\Model\Import\Product\Type;
 
 use Magento\CatalogImportExport\Model\Import\Product;
+use Magento\ImportExport\Model\Import;
 
 class Grouped extends \Magento\CatalogImportExport\Model\Import\Product\Type\AbstractType
 {
@@ -76,7 +77,7 @@ class Grouped extends \Magento\CatalogImportExport\Model\Import\Product\Type\Abs
                 if (!$this->_entityModel->isRowAllowedToImport($rowData, $rowNum) || empty($associatedSkusQty)) {
                     continue;
                 }
-                $associatedSkusAndQtyPairs = explode(Product::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $associatedSkusQty);
+                $associatedSkusAndQtyPairs = explode(Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $associatedSkusQty);
                 $position = 0;
                 foreach ($associatedSkusAndQtyPairs as $associatedSkuAndQty) {
                     ++$position;
diff --git a/app/code/Magento/ImportExport/Block/Adminhtml/Import/Edit/Form.php b/app/code/Magento/ImportExport/Block/Adminhtml/Import/Edit/Form.php
index 71f342b5b58..1a8f446b1de 100644
--- a/app/code/Magento/ImportExport/Block/Adminhtml/Import/Edit/Form.php
+++ b/app/code/Magento/ImportExport/Block/Adminhtml/Import/Edit/Form.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\ImportExport\Block\Adminhtml\Import\Edit;
 
+use Magento\ImportExport\Model\Import;
 use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface;
 
 /**
@@ -170,7 +171,7 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic
                     'required' => true,
                     'disabled' => true,
                     'class' => $behaviorCode,
-                    'value' => ',',
+                    'value' => Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR,
                 ]
             );
         }
diff --git a/app/code/Magento/ImportExport/Model/Import.php b/app/code/Magento/ImportExport/Model/Import.php
index 3742d5e54f3..1d9984df794 100644
--- a/app/code/Magento/ImportExport/Model/Import.php
+++ b/app/code/Magento/ImportExport/Model/Import.php
@@ -80,6 +80,11 @@ class Import extends \Magento\ImportExport\Model\AbstractModel
 
     /**#@-*/
 
+    /**
+     * default delimiter for several values in one cell as default for FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR
+     */
+    const DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR = ',';
+
     /**#@+
      * Import constants
      */
-- 
GitLab


From 4ec17e2bd241a455f1cf475949e2d4d16a468dc9 Mon Sep 17 00:00:00 2001
From: Alex Bomko <abomko@ebay.com>
Date: Thu, 15 Oct 2015 00:01:43 +0300
Subject: [PATCH 08/61] MAGETWO-44009: Fatal error occurs when user opens
 scheduled import section with removed products-import-export module

---
 .../Magento/Test/Legacy/_files/obsolete_constants.php        | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php
index 174f0004e29..72e5faf7de5 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php
@@ -952,4 +952,9 @@ return [
         'THEMES',
         'Magento\Framework\App\Filesystem\DirectoryList'
     ],
+    [
+        'DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR',
+        'Magento\CatalogImportExport\Model\Import\Product',
+        'Magento\ImportExport\Model\Import::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR'
+    ]
 ];
-- 
GitLab


From b165f7860b4765fd38dd8968a35fd34aaa2d5c20 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 16 Oct 2015 15:59:26 -0500
Subject: [PATCH 09/61] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 lib/internal/Magento/Framework/App/Config/Value.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/internal/Magento/Framework/App/Config/Value.php b/lib/internal/Magento/Framework/App/Config/Value.php
index 629b066aa35..32bb526b015 100644
--- a/lib/internal/Magento/Framework/App/Config/Value.php
+++ b/lib/internal/Magento/Framework/App/Config/Value.php
@@ -66,8 +66,8 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F
         array $data = []
     ) {
         $this->_config = $config;
-        parent::__construct($context, $registry, $resource, $resourceCollection, $data);
         $this->cacheTypeList = $cacheTypeList;
+        parent::__construct($context, $registry, $resource, $resourceCollection, $data);
     }
 
     /**
-- 
GitLab


From 99eb89be0ce15d8a1b6f808cf2a974c351ec7660 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Sun, 18 Oct 2015 14:53:47 +0300
Subject: [PATCH 10/61] MAGETWO-43953: Unable to import images when
 DocumentRoot is pub/index.php

---
 .../adminhtml/templates/widget/form/renderer/fieldset.phtml     | 2 +-
 app/code/Magento/CatalogImportExport/Model/Import/Uploader.php  | 2 +-
 .../view/adminhtml/templates/import/form/after.phtml            | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset.phtml b/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset.phtml
index fedec572af9..41f6bf34afc 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset.phtml
@@ -22,7 +22,7 @@ if (!isset($advancedLabel)) {
     $advancedLabel = __('Additional Settings');
 }
 
-$cssClass = ($isField) ? 'field ' . $element->getClass() : 'fieldset admin__fieldset' . $element->getClass();
+$cssClass = ($isField) ? 'field ' . $element->getClass() : 'fieldset admin__fieldset ' . $element->getClass();
 
 if ($isField) {
     $count = $element->getCountBasicChildren();
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Uploader.php b/app/code/Magento/CatalogImportExport/Model/Import/Uploader.php
index dc0263e99d4..f22d910ccd4 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Uploader.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Uploader.php
@@ -223,7 +223,7 @@ class Uploader extends \Magento\MediaStorage\Model\File\Uploader
                 && method_exists($params['object'], $params['method'])
                 && is_callable([$params['object'], $params['method']])
             ) {
-                $params['object']->{$params['method']}($filePath);
+                $params['object']->{$params['method']}($this->_directory->getAbsolutePath($filePath));
             }
         }
     }
diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml
index 73eacb73e78..e363b6fe0d0 100644
--- a/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml
+++ b/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml
@@ -14,7 +14,7 @@
     <div id="import_validation_messages" class="fieldset"><!-- --></div>
 </div>
 <script>
-require(['jquery', 'prototype'], function(jQuery){
+require(['jquery', 'Magento_Ui/js/modal/alert', 'prototype'], function(jQuery){
 //<![CDATA[
     varienImport.resetSelectIndex('entity'); // forced resetting entity selector after page refresh
 //]]>
-- 
GitLab


From 4146f58fd175cdb92e23b2fd1deaa3cf637f232d Mon Sep 17 00:00:00 2001
From: Alex Bomko <abomko@ebay.com>
Date: Mon, 19 Oct 2015 22:50:56 +0300
Subject: [PATCH 11/61] MAGETWO-44226: Multi-store: Import product to two
 different websites

---
 .../Observer/AfterImportDataObserver.php      |  8 +-
 .../Observer/AfterImportDataObserverTest.php  | 91 +++++++++++++------
 2 files changed, 69 insertions(+), 30 deletions(-)

diff --git a/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php b/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php
index fa7a1b0b386..a1d7000e8ce 100644
--- a/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php
+++ b/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php
@@ -201,6 +201,8 @@ class AfterImportDataObserver implements ObserverInterface
             && ($storeId = $this->import->getStoreIdByCode($rowData[ImportProduct::COL_STORE]))
         ) {
             $product->setStoreId($storeId);
+        } elseif (!$product->hasData(\Magento\Catalog\Api\Data\ProductInterface::STORE_ID)) {
+            $product->setStoreId(Store::DEFAULT_STORE_ID);
         }
         if ($this->isGlobalScope($product->getStoreId())) {
             $this->populateGlobalProduct($product);
@@ -213,7 +215,7 @@ class AfterImportDataObserver implements ObserverInterface
     /**
      * Add product to import
      *
-     * @param \Magento\CatalogImportExport\Model\Import\Product $product
+     * @param \Magento\Catalog\Model\Product $product
      * @param string $storeId
      * @return $this
      */
@@ -221,15 +223,15 @@ class AfterImportDataObserver implements ObserverInterface
     {
         if (!isset($this->products[$product->getId()])) {
             $this->products[$product->getId()] = [];
-            $this->products[$product->getId()][$storeId] = $product;
         }
+        $this->products[$product->getId()][$storeId] = $product;
         return $this;
     }
 
     /**
      * Populate global product
      *
-     * @param \Magento\CatalogImportExport\Model\Import\Product $product
+     * @param \Magento\Catalog\Model\Product $product
      * @return $this
      */
     protected function populateGlobalProduct($product)
diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/AfterImportDataObserverTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/AfterImportDataObserverTest.php
index 5c50b55ecc9..fc6636a16bd 100644
--- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/AfterImportDataObserverTest.php
+++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/AfterImportDataObserverTest.php
@@ -379,8 +379,7 @@ class AfterImportDataObserverTest extends \PHPUnit_Framework_TestCase
 
     /**
      * Test for afterImportData()
-     * Covers afterImportData() + protected methods used inside except related to generateUrls() ones.
-     * generateUrls will be covered separately.
+     * Covers afterImportData() + protected methods used inside
      *
      * @covers \Magento\CatalogUrlRewrite\Observer\AfterImportDataObserver::afterImportData
      * @covers \Magento\CatalogUrlRewrite\Observer\AfterImportDataObserver::_populateForUrlGeneration
@@ -392,7 +391,7 @@ class AfterImportDataObserverTest extends \PHPUnit_Framework_TestCase
      */
     public function testAfterImportData()
     {
-        $newSku = ['entity_id' => 'value'];
+        $newSku = [['entity_id' => 'value'], ['entity_id' => 'value3']];
         $websiteId = 'websiteId value';
         $productsCount = count($this->products);
         $websiteMock = $this->getMock(
@@ -421,21 +420,24 @@ class AfterImportDataObserverTest extends \PHPUnit_Framework_TestCase
                 [$this->products[0][ImportProduct::COL_SKU]],
                 [$this->products[1][ImportProduct::COL_SKU]]
             )
-            ->willReturn($newSku);
+            ->will($this->onConsecutiveCalls($newSku[0], $newSku[1]));
         $this->importProduct
             ->expects($this->exactly($productsCount))
             ->method('getProductCategories')
             ->withConsecutive(
                 [$this->products[0][ImportProduct::COL_SKU]],
                 [$this->products[1][ImportProduct::COL_SKU]]
-            );
+            )->willReturn([]);
         $getProductWebsitesCallsCount = $productsCount*2;
         $this->importProduct
             ->expects($this->exactly($getProductWebsitesCallsCount))
             ->method('getProductWebsites')
-            ->willReturn([
-                $newSku['entity_id'] => $websiteId,
-            ]);
+            ->willReturnOnConsecutiveCalls(
+                [$newSku[0]['entity_id'] => $websiteId],
+                [$newSku[0]['entity_id'] => $websiteId],
+                [$newSku[1]['entity_id'] => $websiteId],
+                [$newSku[1]['entity_id'] => $websiteId]
+            );
         $map = [
             [$this->products[0][ImportProduct::COL_STORE], $this->products[0][ImportProduct::COL_STORE]],
             [$this->products[1][ImportProduct::COL_STORE], $this->products[1][ImportProduct::COL_STORE]]
@@ -460,11 +462,20 @@ class AfterImportDataObserverTest extends \PHPUnit_Framework_TestCase
         $product
             ->expects($this->exactly($productsCount))
             ->method('setId')
-            ->with($newSku['entity_id']);
+            ->withConsecutive([$newSku[0]['entity_id']], [$newSku[1]['entity_id']]);
         $product
             ->expects($this->any())
             ->method('getId')
-            ->willReturn($newSku['entity_id']);
+            ->willReturnOnConsecutiveCalls(
+                $newSku[0]['entity_id'],
+                $newSku[0]['entity_id'],
+                $newSku[0]['entity_id'],
+                $newSku[0]['entity_id'],
+                $newSku[0]['entity_id'],
+                $newSku[1]['entity_id'],
+                $newSku[1]['entity_id'],
+                $newSku[1]['entity_id']
+            );
         $product
             ->expects($this->exactly($productsCount))
             ->method('getSku')
@@ -480,9 +491,12 @@ class AfterImportDataObserverTest extends \PHPUnit_Framework_TestCase
                 $this->products[1][ImportProduct::COL_STORE]
             ));
         $product
-            ->expects($this->once())
+            ->expects($this->exactly($productsCount))
             ->method('setStoreId')
-            ->with($this->products[1][ImportProduct::COL_STORE]);
+            ->withConsecutive(
+                [$this->products[0][ImportProduct::COL_STORE]],
+                [$this->products[1][ImportProduct::COL_STORE]]
+            );
         $this->catalogProductFactory
             ->expects($this->exactly($productsCount))
             ->method('create')
@@ -497,32 +511,55 @@ class AfterImportDataObserverTest extends \PHPUnit_Framework_TestCase
                 ],
                 [
                     ' AND entity_id = ?)',
-                    $newSku['entity_id'],
+                    $newSku[0]['entity_id'],
+                ],
+                [
+                    '(store_id = ?',
+                    $storeIds[0],
+                ],
+                [
+                    ' AND entity_id = ?)',
+                    $newSku[1]['entity_id'],
                 ]
             );
+        $this->connection
+            ->expects($this->once())
+            ->method('fetchAll')
+            ->willReturn([]);
+        $this->select->expects($this->any())->method('from')->willReturnSelf();
+        $this->select->expects($this->any())->method('where')->willReturnSelf();
+
+        $this->urlFinder->expects($this->any())->method('findAllByData')->willReturn([]);
+
+        $this->productUrlPathGenerator->expects($this->any())->method('getUrlPathWithSuffix')
+            ->willReturn('urlPathWithSuffix');
+        $this->productUrlPathGenerator->expects($this->any())->method('getUrlPath')
+            ->willReturn('urlPath');
+        $this->productUrlPathGenerator->expects($this->any())->method('getCanonicalUrlPath')
+            ->willReturn('canonicalUrlPath');
+
+        $this->urlRewrite->expects($this->any())->method('setStoreId')->willReturnSelf();
+        $this->urlRewrite->expects($this->any())->method('setEntityId')->willReturnSelf();
+        $this->urlRewrite->expects($this->any())->method('setEntityType')->willReturnSelf();
+        $this->urlRewrite->expects($this->any())->method('setRequestPath')->willReturnSelf();
+        $this->urlRewrite->expects($this->any())->method('setTargetPath')->willReturnSelf();
+        $this->urlRewrite->expects($this->any())->method('getTargetPath')->willReturn('targetPath');
+        $this->urlRewrite->expects($this->any())->method('getStoreId')
+            ->willReturnOnConsecutiveCalls(0, 'not global');
+
+        $this->urlRewriteFactory->expects($this->any())->method('create')->willReturn($this->urlRewrite);
 
         $productUrls = [
-            'url 1',
-            'url 2',
+            'targetPath-0' => $this->urlRewrite,
+            'targetPath-not global' => $this->urlRewrite
         ];
 
-        $importMock = $this->getImportMock([
-            'generateUrls',
-            'canonicalUrlRewriteGenerate',
-            'categoriesUrlRewriteGenerate',
-            'currentUrlRewritesRegenerate',
-            'cleanOverriddenUrlKey',
-        ]);
-        $importMock
-            ->expects($this->once())
-            ->method('generateUrls')
-            ->willReturn($productUrls);
         $this->urlPersist
             ->expects($this->once())
             ->method('replace')
             ->with($productUrls);
 
-        $importMock->execute($this->observer);
+        $this->import->execute($this->observer);
     }
 
     /**
-- 
GitLab


From c660111991434ca31214d8455813ac25178d3085 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Tue, 20 Oct 2015 14:37:37 +0300
Subject: [PATCH 12/61] MAGETWO-39795: Check data for import product does not
 work MAGETWO-43900: Imported products with broken images link don't appear on
 front MAGETWO-43901: The "Imported resource (image) could not be downloaded"
 message appears when user tries to import products using "Replace" behavior
 MAGETWO-44238: Categories imported in a comma-separated format are not
 created properly MAGETWO-42245: _media_is_disabled is not exported

---
 .../Model/Export/Product.php                  |   9 +-
 .../Model/Import/Product.php                  | 256 +++++++++---------
 .../Import/Product/CategoryProcessor.php      |  10 +-
 .../Import/Product/CategoryProcessorTest.php  |   3 +-
 .../Controller/Adminhtml/Import/Download.php  |  15 +-
 .../Files/Sample/catalog_product.csv          |  16 +-
 6 files changed, 164 insertions(+), 145 deletions(-)

diff --git a/app/code/Magento/CatalogImportExport/Model/Export/Product.php b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
index 5ba8ed055cd..9dc79f6a3cf 100644
--- a/app/code/Magento/CatalogImportExport/Model/Export/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
@@ -683,7 +683,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
                     'crosssell_skus',
                     'upsell_skus',
                 ],
-                ['additional_images', 'additional_image_labels']
+               ['additional_images', 'additional_image_labels', 'hide_from_product_page']
             );
             // have we merge custom options columns
             if ($customOptionsData) {
@@ -1047,14 +1047,21 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
             if (!empty($multiRawData['mediaGalery'][$productId])) {
                 $additionalImages = [];
                 $additionalImageLabels = [];
+               $additionalImageIsDisabled = [];
                 foreach ($multiRawData['mediaGalery'][$productId] as $mediaItem) {
                     $additionalImages[] = $mediaItem['_media_image'];
                     $additionalImageLabels[] = $mediaItem['_media_label'];
+
+                   if ($mediaItem['_media_is_disabled'] == true) {
+                       $additionalImageIsDisabled[] = $mediaItem['_media_image'];
+                   }
                 }
                 $dataRow['additional_images'] =
                     implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImages);
                 $dataRow['additional_image_labels'] =
                     implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImageLabels);
+               $dataRow['hide_from_product_page'] =
+                   implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImageIsDisabled);
                 $multiRawData['mediaGalery'][$productId] = [];
             }
             foreach ($this->_linkTypeProvider->getLinkTypes() as $linkTypeName => $linkId) {
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index a2a98fcdbc5..df1fe7bbec2 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -247,12 +247,11 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     protected $_fieldsMap = [
         'image' => 'base_image',
         'image_label' => "base_image_label",
-        'image' => 'base_image',
-        'image_label' => 'base_image_label',
         'thumbnail' => 'thumbnail_image',
         'thumbnail_label' => 'thumbnail_image_label',
         self::COL_MEDIA_IMAGE => 'additional_images',
         '_media_image_label' => 'additional_image_labels',
+        '_media_is_disabled' => 'hide_from_product_page',
         Product::COL_STORE => 'store_view_code',
         Product::COL_ATTR_SET => 'attribute_set_code',
         Product::COL_TYPE => 'product_type',
@@ -332,7 +331,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         self::COL_MEDIA_IMAGE,
         '_media_label',
         '_media_position',
-        '_media_is_disabled',
+        '_media_is_disabled'
     ];
 
     /**
@@ -781,7 +780,10 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
      */
     public function deleteProductsForReplacement()
     {
-        $this->setParameters(array('behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_DELETE));
+        $this->setParameters(array_merge(
+            $this->getParameters(),
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_DELETE]
+        ));
         $this->_deleteProducts();
 
         return $this;
@@ -859,7 +861,10 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         $this->deleteProductsForReplacement();
         $this->_oldSku = $this->skuProcessor->reloadOldSkus()->getOldSkus();
         $this->_validatedRows = null;
-        $this->setParameters(array('behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND));
+        $this->setParameters(array_merge(
+            $this->getParameters(),
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND]
+        ));
         $this->_saveProductsData();
 
         return $this;
@@ -1244,36 +1249,40 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
      * @param $bunch
      * @return array
      */
-    protected function _getAllBunchImages($bunch)
+    protected function getBunchImages($bunch)
     {
-        $allImagesFromBunch = [];
-        foreach ($bunch as $rowData) {
-            $rowData = $this->_customFieldsMapping($rowData);
-            foreach ($this->_imagesArrayKeys as $image) {
-                if (empty($rowData[$image])) {
+        $images = [];
+        foreach ($bunch as $row) {
+            $row = $this->_customFieldsMapping($row);
+            foreach ($this->_imagesArrayKeys as $imageColumn) {
+                if (empty($row[$imageColumn])) {
                     continue;
                 }
-                $dispersionPath =
-                    \Magento\Framework\File\Uploader::getDispretionPath($rowData[$image]);
-                $importImages = explode($this->getMultipleValueSeparator(), $rowData[$image]);
-                foreach ($importImages as $importImage) {
-                    $imageSting = mb_strtolower(
-                        $dispersionPath . '/' . preg_replace('/[^a-z0-9\._-]+/i', '', $importImage)
-                    );
-                    $allImagesFromBunch[$importImage] = $imageSting;
+
+                $rowImages = explode($this->getMultipleValueSeparator(), $row[$imageColumn]);
+                foreach ($rowImages as $rowImage) {
+                    $destinationPath = str_replace('\\', '/', $rowImage);
+                    $destinationPath = explode('/', $destinationPath);
+                    $destinationPath = array_pop($destinationPath);
+                    $destinationPath = preg_replace('/[^a-z0-9\._-]+/i', '', $destinationPath);
+
+                    $dispersion = \Magento\Framework\File\Uploader::getDispretionPath($destinationPath);
+                    $destinationPath = mb_strtolower($dispersion . '/' . $destinationPath);
+
+                    $images[$rowImage] = $destinationPath;
                 }
             }
         }
-        return $allImagesFromBunch;
+        return $images;
     }
 
     /**
      * Prepare all media files
      *
-     * @param $allImagesFromBunch
+     * @param $images
      * @return array
      */
-    protected function _prepareAllMediaFiles($allImagesFromBunch)
+    protected function getExistingImages($images)
     {
         static $productMediaGalleryTableName = null;
         static $resource = null;
@@ -1292,22 +1301,54 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
             ['entity_id' => 'mgvte.entity_id']
         )->where(
             'mg.value IN(?)',
-            $allImagesFromBunch
+            $images
         );
         $allMedia = $this->_connection->fetchAll($select);
-        $result = array();
+        $result = [];
         foreach ($allMedia as $image) {
-            $result[$image['value']] = [];
+            if (!isset($result[$image['value']])){
+                $result[$image['value']] = [];
+            }
             foreach ($this->_oldSku as $sku => $oldSkuData) {
-                if ($oldSkuData['entity_id'] != $image['entity_id']) {
-                    continue;
+                if ($oldSkuData['entity_id'] == $image['entity_id']) {
+                    $result[$image['value']][$image['entity_id']] = $sku;
                 }
-                $result[$image['value']][] = $sku;
             }
         }
         return $result;
     }
 
+    /*
+     * @param array $rowData
+     * @return array
+     */
+    public function getImagesFromRow($rowData)
+    {
+        $images = [];
+        $labels = [];
+        foreach ($this->_imagesArrayKeys as $column) {
+            $images[$column] = [];
+            $labels[$column] = [];
+            if (!empty($rowData[$column])) {
+                $images[$column] = array_unique(
+                    explode($this->getMultipleValueSeparator(), $rowData[$column])
+                );
+            }
+
+            if (!empty($rowData[$column . '_label'])) {
+                $labels[$column] = explode($this->getMultipleValueSeparator(), $rowData[$column . '_label']);
+            }
+
+            if (count($labels[$column]) > count($images[$column])) {
+                $labels[$column] = array_slice($labels[$column], 0, count($images[$column]));
+            } elseif (count($labels[$column]) < count($images[$column])) {
+                $labels[$column] = array_pad($labels[$column], count($images[$column]), '');
+            }
+        }
+
+        return [$images, $labels];
+    }
+
     /**
      * Gather and save information about product entities.
      *
@@ -1319,8 +1360,6 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
      */
     protected function _saveProducts()
     {
-        /** @var $resource \Magento\CatalogImportExport\Model\Import\Proxy\Product\ResourceModel */
-        $resource = $this->_resourceFactory->create();
         $priceIsGlobal = $this->_catalogData->isPriceGlobal();
         $productLimit = null;
         $productsQty = null;
@@ -1333,11 +1372,11 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
             $this->categoriesCache = [];
             $tierPrices = [];
             $mediaGallery = [];
-            $uploadedGalleryFiles = [];
+            $uploadedImages = [];
             $previousType = null;
             $prevAttributeSet = null;
-            $allImagesFromBunch = $this->_getAllBunchImages($bunch);
-            $existingImages = $this->_prepareAllMediaFiles($allImagesFromBunch);
+            $bunchImages = $this->getBunchImages($bunch);
+            $existingImages = $this->getExistingImages($bunchImages);
 
             foreach ($bunch as $rowNum => $rowData) {
                 if (!$this->validateRow($rowData, $rowNum)) {
@@ -1399,10 +1438,18 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
 
                 // 3. Categories phase
                 $categoriesString = empty($rowData[self::COL_CATEGORY]) ? '' : $rowData[self::COL_CATEGORY];
+                $separatorName = \Magento\ImportExport\Model\Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR;
+                $multipleSeparatorValue = empty($this->_parameters[$separatorName])
+                    ? static::PSEUDO_MULTI_LINE_SEPARATOR
+                    : $this->_parameters[$separatorName];
                 $this->categoriesCache[$rowSku] = [];
                 if (!empty($categoriesString)) {
-                    foreach ($this->categoryProcessor->upsertCategories($categoriesString) as $categoryId) {
-                        $this->categoriesCache[$rowSku][$categoryId] = true;
+                    $categoryIds = $this->categoryProcessor->upsertCategories(
+                        $categoriesString,
+                        $multipleSeparatorValue
+                    );
+                    foreach ($categoryIds as $id) {
+                        $this->categoriesCache[$rowSku][$id] = true;
                     }
                 }
 
@@ -1424,95 +1471,52 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                 }
 
                 // 5. Media gallery phase
-                $mediaGalleryImages = array();
-                $mediaGalleryLabels = array();
-                if (!empty($rowData[self::COL_MEDIA_IMAGE])) {
-                    $mediaGalleryImages =
-                        explode($this->getMultipleValueSeparator(), $rowData[self::COL_MEDIA_IMAGE]);
-                    if (isset($rowData['_media_image_label'])) {
-                        $mediaGalleryLabels =
-                            explode($this->getMultipleValueSeparator(), $rowData['_media_image_label']);
-                    } else {
-                        $mediaGalleryLabels = [];
-                    }
-                    if (count($mediaGalleryLabels) > count($mediaGalleryImages)) {
-                        $mediaGalleryLabels = array_slice($mediaGalleryLabels, 0, count($mediaGalleryImages));
-                    } elseif (count($mediaGalleryLabels) < count($mediaGalleryImages)) {
-                        $mediaGalleryLabels = array_pad($mediaGalleryLabels, count($mediaGalleryImages), '');
-                    }
-                }
-
-                foreach ($this->_imagesArrayKeys as $imageCol) {
-                    if (!empty($rowData[$imageCol])
-                        && ($imageCol != self::COL_MEDIA_IMAGE)
-                        && !in_array($rowData[$imageCol], $mediaGalleryImages)
-                    ) {
-                        $mediaGalleryImages[] = $rowData[$imageCol];
-                        if (isset($mediaGalleryLabels)) {
-                            $mediaGalleryLabels[] = isset($rowData[$imageCol . '_label'])
-                                ? $rowData[$imageCol . '_label']
-                                : '';
-                        } else {
-                            $mediaGalleryLabels[] = '';
-                        }
-                    }
+                $disabledImages = [];
+                list($rowImages, $rowLabels) = $this->getImagesFromRow($rowData);
+                if (isset($rowData['_media_is_disabled'])) {
+                    $disabledImages = array_flip(
+                        explode($this->getMultipleValueSeparator(), $rowData['_media_is_disabled'])
+                    );
                 }
-                $rowData[self::COL_MEDIA_IMAGE] = array();
-                foreach ($mediaGalleryImages as $mediaImage) {
-                    $imagePath = $allImagesFromBunch[$mediaImage];
-                    if (isset($existingImages[$imagePath]) && in_array($rowSku, $existingImages[$imagePath])) {
-                        if (!array_key_exists($mediaImage, $uploadedGalleryFiles)) {
-                            $uploadedFile = $this->_uploadMediaFiles(
-                                trim($mediaImage),
-                                true
-                            );
+                $rowData[self::COL_MEDIA_IMAGE] = [];
+                foreach ($rowImages as $column => $columnImages) {
+                    foreach ($columnImages as $position => $columnImage) {
+                        if (!isset($uploadedImages[$columnImage])) {
+                            $uploadedFile = $this->uploadMediaFiles(trim($columnImage), true);
                             if ($uploadedFile) {
-                                $uploadedGalleryFiles[$mediaImage] = $uploadedFile;
+                                $uploadedImages[$columnImage] = $uploadedFile;
                             } else {
-                                $this->addRowError(ValidatorInterface::ERROR_MEDIA_URL_NOT_ACCESSIBLE, $rowNum, null, null, ProcessingError::ERROR_LEVEL_NOT_CRITICAL);
+                                $this->addRowError(
+                                    ValidatorInterface::ERROR_MEDIA_URL_NOT_ACCESSIBLE,
+                                    $rowNum,
+                                    null,
+                                    null,
+                                    ProcessingError::ERROR_LEVEL_NOT_CRITICAL
+                                );
                             }
+                        } else {
+                            $uploadedFile = $uploadedImages[$columnImage];
                         }
-                    } elseif (!isset($existingImages[$imagePath])) {
-                        if (!array_key_exists($mediaImage, $uploadedGalleryFiles)) {
-                            $uploadedFile = $this->_uploadMediaFiles(
-                                trim($mediaImage),
-                                true
-                            );
-                            if ($uploadedFile) {
-                                $uploadedGalleryFiles[$mediaImage] = $uploadedFile;
-                                $newImagePath = $uploadedGalleryFiles[$mediaImage];
-                                $existingImages[$newImagePath][] = $rowSku;
-                            } else {
-                                $this->addRowError(ValidatorInterface::ERROR_MEDIA_URL_NOT_ACCESSIBLE, $rowNum, null, null, ProcessingError::ERROR_LEVEL_NOT_CRITICAL);
-                            }
+
+                        if ($uploadedFile && $column !== self::COL_MEDIA_IMAGE) {
+                            $rowData[$column] = $uploadedFile;
                         }
-                        if (isset($uploadedGalleryFiles[$mediaImage])) {
-                            $rowData[self::COL_MEDIA_IMAGE][] = $uploadedGalleryFiles[$mediaImage];
-                            if (!empty($rowData[self::COL_MEDIA_IMAGE]) && is_array($rowData[self::COL_MEDIA_IMAGE])) {
-                                $position = array_search($mediaImage, $mediaGalleryImages);
-                                foreach ($rowData[self::COL_MEDIA_IMAGE] as $mediaImage) {
-                                    $mediaGallery[$rowSku][] = [
-                                        'attribute_id' => $this->getMediaGalleryAttributeId(),
-                                        'label' => isset($mediaGalleryLabels[$position]) ? $mediaGalleryLabels[$position] : '',
-                                        'position' => $position,
-                                        'disabled' => '',
-                                        'value' => $mediaImage,
-                                    ];
-                                }
+
+                        $imageNotAssigned = !isset($existingImages[$uploadedFile])
+                            || !in_array($rowSku, $existingImages[$uploadedFile]);
+
+                        if ($uploadedFile && $imageNotAssigned) {
+                            if ($column == self::COL_MEDIA_IMAGE) {
+                                $rowData[$column][] = $uploadedFile;
                             }
-                        }
-                    }
-                    foreach ($this->_imagesArrayKeys as $imageCol) {
-                        if (empty($rowData[$imageCol]) || ($imageCol == self::COL_MEDIA_IMAGE)) {
-                            continue;
-                        }
-                        if (isset($existingImages[$imagePath])
-                            && !in_array($rowSku, $existingImages[$imagePath])
-                            && (($rowData[$imageCol] == $imagePath) || ($rowData[$imageCol] == $mediaImage))
-                        ) {
-                            unset($rowData[$imageCol]);
-                        } elseif (isset($uploadedGalleryFiles[$rowData[$imageCol]])) {
-                            $rowData[$imageCol] = $uploadedGalleryFiles[$rowData[$imageCol]];
+                            $mediaGallery[$rowSku][] = [
+                                'attribute_id' => $this->getMediaGalleryAttributeId(),
+                                'label' => isset($rowLabels[$column][$position]) ? $rowLabels[$column][$position] : '',
+                                'position' => $position + 1,
+                                'disabled' => isset($disabledImages[$columnImage]) ? '1' : '0',
+                                'value' => $uploadedFile,
+                            ];
+                            $existingImages[$uploadedFile][] = $rowSku;
                         }
                     }
                 }
@@ -1740,7 +1744,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
      * @param string $fileName
      * @return string
      */
-    protected function _uploadMediaFiles($fileName, $renameFileOff = false)
+    protected function uploadMediaFiles($fileName, $renameFileOff = false)
     {
         try {
             $res = $this->_getUploader()->move($fileName, $renameFileOff);
@@ -1802,26 +1806,31 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                         'attribute_id' => $insertValue['attribute_id'],
                         'value' => $insertValue['value'],
                     ];
-                    $valueToProductId[$insertValue['value']] = $productId;
+                    $valueToProductId[$insertValue['value']][] = $productId;
                     $imageNames[] = $insertValue['value'];
                     $multiInsertData[] = $valueArr;
                     $insertedGalleryImgs[] = $insertValue['value'];
                 }
             }
         }
+        $oldMediaValues = $this->_connection->fetchAssoc(
+            $this->_connection->select()->from($mediaGalleryTableName, ['value_id', 'value'])
+                ->where('value IN (?)', $imageNames)
+        );
         $this->_connection->insertOnDuplicate($mediaGalleryTableName, $multiInsertData, []);
         $multiInsertData = [];
         $dataForSkinnyTable = [];
         $newMediaValues = $this->_connection->fetchAssoc(
             $this->_connection->select()->from($mediaGalleryTableName, ['value_id', 'value'])
                 ->where('value IN (?)', $imageNames)
+                ->where('value_id NOT IN (?)', array_keys($oldMediaValues))
         );
         foreach ($mediaGalleryData as $productSku => $mediaGalleryRows) {
             foreach ($mediaGalleryRows as $insertValue) {
                 foreach ($newMediaValues as $value_id => $values) {
                     if ($values['value'] == $insertValue['value']) {
                         $insertValue['value_id'] = $value_id;
-                        $insertValue['entity_id'] = $valueToProductId[$values['value']];
+                        $insertValue['entity_id'] = array_shift($valueToProductId[$values['value']]);
                         unset($newMediaValues[$value_id]);
                         break;
                     }
@@ -1844,7 +1853,11 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
             }
         }
         try {
-            $this->_connection->insertOnDuplicate($mediaValueTableName, $multiInsertData, ['value_id']);
+            $this->_connection->insertOnDuplicate(
+                $mediaValueTableName,
+                $multiInsertData,
+                ['value_id', 'store_id', 'entity_id', 'label', 'position', 'disabled']
+            );
             $this->_connection->insertOnDuplicate($mediaEntityToValueTableName, $dataForSkinnyTable, ['value_id']);
         } catch (\Exception $e) {
             $this->_connection->delete(
@@ -1852,6 +1865,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                 $this->_connection->quoteInto('value_id IN (?)', $newMediaValues)
             );
         }
+
         return $this;
     }
 
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product/CategoryProcessor.php b/app/code/Magento/CatalogImportExport/Model/Import/Product/CategoryProcessor.php
index 6d4ba7ee183..c442b195795 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product/CategoryProcessor.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product/CategoryProcessor.php
@@ -7,11 +7,6 @@ namespace Magento\CatalogImportExport\Model\Import\Product;
 
 class CategoryProcessor
 {
-    /**
-     * Delimiter in import file between categories.
-     */
-    const DELIMITER_CATEGORIES = '|';
-
     /**
      * Delimiter in category path.
      */
@@ -144,13 +139,14 @@ class CategoryProcessor
      * Returns IDs of categories by string path creating nonexistent ones.
      *
      * @param string $categoriesString
+     * @param string $categoriesSeparator
      *
      * @return array
      */
-    public function upsertCategories($categoriesString)
+    public function upsertCategories($categoriesString, $categoriesSeparator)
     {
         $categoriesIds = [];
-        $categories = explode(self::DELIMITER_CATEGORIES, $categoriesString);
+        $categories = explode($categoriesSeparator, $categoriesString);
 
         foreach ($categories as $category) {
             $categoriesIds[] = $this->upsertCategory($category);
diff --git a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/CategoryProcessorTest.php b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/CategoryProcessorTest.php
index c6b5fd5570d..3e281ba84af 100644
--- a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/CategoryProcessorTest.php
+++ b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/CategoryProcessorTest.php
@@ -110,7 +110,8 @@ class CategoryProcessorTest extends \PHPUnit_Framework_TestCase
 
     public function testUpsertCategories()
     {
-        $categoryIds = $this->categoryProcessor->upsertCategories(self::CHILD_CATEGORY_NAME);
+        $categoriesSeparator = ',';
+        $categoryIds = $this->categoryProcessor->upsertCategories(self::CHILD_CATEGORY_NAME, $categoriesSeparator);
         $this->assertArrayHasKey(self::CHILD_CATEGORY_ID, array_flip($categoryIds));
     }
 
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php
index 005a2b0cde1..e32306da9d0 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\ImportExport\Controller\Adminhtml\Import;
 
+use Magento\Framework\Component\ComponentRegistrar;
 use Magento\ImportExport\Controller\Adminhtml\Import as ImportController;
 use Magento\Framework\App\Filesystem\DirectoryList;
 
@@ -26,9 +27,9 @@ class Download extends ImportController
     protected $readFactory;
 
     /**
-     * @var \Magento\Framework\Module\Dir\Reader
+     * @var \Magento\Framework\Component\ComponentRegistrar
      */
-    protected $reader;
+    protected $componentRegistrar;
 
     /**
      * @var \Magento\Framework\App\Response\Http\FileFactory
@@ -42,14 +43,14 @@ class Download extends ImportController
      * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory
      * @param \Magento\Framework\Controller\Result\RawFactory $resultRawFactory
      * @param \Magento\Framework\Filesystem\Directory\ReadFactory $readFactory
-     * @param \Magento\Framework\Module\Dir\Reader $reader
+     * @param ComponentRegistrar $componentRegistrar
      */
     public function __construct(
         \Magento\Backend\App\Action\Context $context,
         \Magento\Framework\App\Response\Http\FileFactory $fileFactory,
         \Magento\Framework\Controller\Result\RawFactory $resultRawFactory,
         \Magento\Framework\Filesystem\Directory\ReadFactory $readFactory,
-        \Magento\Framework\Module\Dir\Reader $reader
+        \Magento\Framework\Component\ComponentRegistrar $componentRegistrar
     ) {
         parent::__construct(
             $context
@@ -57,7 +58,7 @@ class Download extends ImportController
         $this->fileFactory = $fileFactory;
         $this->resultRawFactory = $resultRawFactory;
         $this->readFactory = $readFactory;
-        $this->reader = $reader;
+        $this->componentRegistrar = $componentRegistrar;
     }
 
     /**
@@ -68,8 +69,8 @@ class Download extends ImportController
     public function execute()
     {
         $fileName = $this->getRequest()->getParam('filename') . '.csv';
-        $moduleDir = $this->reader->getModuleDir('', self::SAMPLE_FILES_MODULE);
-        $fileAbsolutePath = $moduleDir . '/' . $fileName;
+        $moduleDir = $this->componentRegistrar->getPath(ComponentRegistrar::MODULE, self::SAMPLE_FILES_MODULE);
+        $fileAbsolutePath = $moduleDir . '/Files/Sample/' . $fileName;
         $directoryRead = $this->readFactory->create($moduleDir);
         $filePath = $directoryRead->getRelativePath($fileAbsolutePath);
 
diff --git a/app/code/Magento/ImportExport/Files/Sample/catalog_product.csv b/app/code/Magento/ImportExport/Files/Sample/catalog_product.csv
index 488c1f0894b..e71a80c8711 100644
--- a/app/code/Magento/ImportExport/Files/Sample/catalog_product.csv
+++ b/app/code/Magento/ImportExport/Files/Sample/catalog_product.csv
@@ -1,8 +1,8 @@
-sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,custom_options,configurable_variations,configurable_variation_prices,configurable_variation_labels,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values
-24-WG085,,Sprite Yoga Strap,simple,Default Category/Gear|Default Category/Gear/Fitness Equipment,base,Sprite Yoga Strap 6 foot,"<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and urable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,,1,Taxable Goods,"Catalog, Search",14,,,,sprite-yoga-strap-6-foot,Meta Title,"meta1, meta2, meta3",meta description,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,01.07.2015 15:38,01.07.2015 15:38,,,Block after Info Column,,,,,,,,,,,,,"has_options=0,required_options=0,size_strap=6 foot",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087","/sample_data/l/u/luma-yoga-strap.jpg,/sample_data/l/u/luma-yoga-strap.jpg","Image,Image","name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Gold|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Silver|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=yoga3sku,option_title=Platinum",,,,,,,,
-24-WG086,,Sprite Yoga Strap,simple,Default Category/Gear|Default Category/Gear/Fitness Equipment,base,Sprite Yoga Strap 8 foot,"<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>8' long x 1.0"" wide.<li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,,1,Taxable Goods,"Catalog, Search",17,,,,sprite-yoga-strap-8-foot,Meta Title,"meta1, meta2, meta4",meta description,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,01.07.2015 15:38,01.07.2015 15:38,,,Block after Info Column,,,,,,,,,,,,,"has_options=0,required_options=0,size_strap=8 foot",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087","/sample_data/l/u/luma-yoga-strap.jpg,/sample_data/l/u/luma-yoga-strap.jpg","Image,Image",,,,,,,,,
-24-WG087,,Sprite Yoga Strap,simple,Default Category/Gear|Default Category/Gear/Fitness Equipment,base,Sprite Yoga Strap 10 foot,"<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>10' long x 1.0"" wide.<li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,,1,Taxable Goods,"Catalog, Search",21,,,,sprite-yoga-strap-10-foot,Meta Title,"meta1, meta2, meta5",meta description,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,01.07.2015 15:39,01.07.2015 15:39,,,Block after Info Column,,,,,,,,,,,,,"has_options=0,required_options=0,size_strap=10 foot",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087","/sample_data/l/u/luma-yoga-strap.jpg,/sample_data/l/u/luma-yoga-strap.jpg","Image,Image",,,,,,,,,
-24-WG085_Group,,Gear,grouped,Default Category/Gear|Default Category/Gear/Fitness Equipment,base,Set of Sprite Yoga Straps,"<p>Great set of Sprite Yoga Straps for every stretch and hold you need. There are three straps in this set: 6', 8' and 10'.</p><ul><li> 100% soft and durable cotton.<li> Plastic cinch buckle is easy to use.<li> Choice of three natural colors made from phthalate and heavy metal free dyes.</ul>",,,1,,"Catalog, Search",,,,,set-of-sprite-yoga-straps,Meta Title,"meta1, meta2, meta6",meta description,/sample_data/l/u/luma-yoga-strap-set.jpg,Image Label,/sample_data/l/u/luma-yoga-strap-set.jpg,Image Label,/sample_data/l/u/luma-yoga-strap-set.jpg,Image Label,01.07.2015 15:39,01.07.2015 15:39,,,Block after Info Column,,,,,,,,,,,,,"has_options=0,required_options=0",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/sample_data/l/u/luma-yoga-strap-set.jpg,"Image,Image",,,,,,,,,
-24-WG085-configurable,,Sprite Yoga Strap,configurable,Default Category/Gear|Default Category/Gear/Fitness Equipment,base,Sprite Yoga Strap,"<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,,1,Taxable Goods,"Catalog, Search",14,,,,sprite-yoga-strap1,Meta Title,"meta1, meta2, meta7",meta description,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,01.07.2015 16:15,01.07.2015 16:15,,,Block after Info Column,,,,,,,,,,,,,"has_options=1,required_options=1",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/sample_data/l/u/luma-yoga-strap.jpg,"Image,Image",,"sku=24-WG086,size_strap=8 foot|sku=24-WG087,size_strap=10 foot|sku=24-WG085,size_strap=6 foot","name=size_strap,value=8 foot,price=3.0000,price_type=fixed|name=size_strap,value=10 foot,price=7.0000,price_type=fixed|name=size_strap,value=6 foot,price=,price_type=fixed",size_strap=Size Strap,,,,,
-24-WG085-bundle-dynamic,,Sprite Yoga Strap,bundle,Default Category/Gear|Default Category/Gear/Fitness Equipment,base,Sprite Yoga Strap,"<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,,1,Taxable Goods,"Catalog, Search",14,,,,sprite-yoga-strap2,Meta Title,"meta1, meta2, meta8",meta description,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,01.07.2015 16:15,01.07.2015 16:15,,,Block after Info Column,,,,,,,,,,,,,"has_options=1,required_options=1",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/sample_data/l/u/luma-yoga-strap.jpg,"Image,Image",,,,,dynamic,dynamic,Price Range,fixed,"name=Bundle Option One1,type=dropdown,required=1,sku=bunsimplesku30,price=15; price_type=fixed, default_qty=1, is_defaul=0 | name=Bundle Option One1,type=dropdown; required=1, sku=bunsimplesku31,price=10, price_type=fixed, default_qty=1, is_defaul=1"
-24-WG085-bundle-fixed,,Sprite Yoga Strap,bundle,Default Category/Gear|Default Category/Gear/Fitness Equipment,base,Sprite Yoga Strap,"<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,,1,Taxable Goods,"Catalog, Search",14,,,,sprite-yoga-strap3,Meta Title,"meta1, meta2, meta9",meta description,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,/sample_data/l/u/luma-yoga-strap.jpg,Image Label,01.07.2015 16:15,01.07.2015 16:15,,,Block after Info Column,,,,,,,,,,,,,"has_options=1,required_options=1",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/sample_data/l/u/luma-yoga-strap.jpg,"Image,Image",,,,,fixed,fixed,Price Range,fixed,"name=Yoga Strap,type=radiobutton,required=1,sku=24-WG086,default_qty=3,default=1 | name=Yoga Strap,type=radiobutton,required=1,sku=24-WG085,default_qty=3,default=0"
+sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,custom_options,configurable_variations,configurable_variation_prices,configurable_variation_labels,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values
+24-WG085,,"Sprite Yoga Strap",simple,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap 6 foot","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and urable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,"1",1,"Taxable Goods","Catalog, Search",14,,,,sprite-yoga-strap-6-foot,"Meta Title","meta1, meta2, meta3","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 15:38","01.07.2015 15:38",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,required_options=0,size=6 foot",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087","/l/u/luma-yoga-strap.jpg,/l/u/luma-yoga-strap.jpg","Image,Image","name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Gold|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Silver|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=yoga3sku,option_title=Platinum",,,,,,,,
+24-WG086,,"Sprite Yoga Strap",simple,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap 8 foot","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>8' long x 1.0"" wide.<li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,"1",1,"Taxable Goods","Catalog, Search",17,,,,sprite-yoga-strap-8-foot,"Meta Title","meta1, meta2, meta4","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 15:38","01.07.2015 15:38",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,required_options=0,size=8 foot",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087","/l/u/luma-yoga-strap.jpg,/l/u/luma-yoga-strap.jpg","Image,Image",,,,,,,,,
+24-WG087,,"Sprite Yoga Strap",simple,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap 10 foot","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>10' long x 1.0"" wide.<li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,"1",1,"Taxable Goods","Catalog, Search",21,,,,sprite-yoga-strap-10-foot,"Meta Title","meta1, meta2, meta5","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 15:39","01.07.2015 15:39",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,required_options=0,size=10 foot",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087","/l/u/luma-yoga-strap.jpg,/l/u/luma-yoga-strap.jpg","Image,Image",,,,,,,,,
+24-WG085_Group,,Gear,grouped,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Set of Sprite Yoga Straps","<p>Great set of Sprite Yoga Straps for every stretch and hold you need. There are three straps in this set: 6', 8' and 10'.</p><ul><li> 100% soft and durable cotton.<li> Plastic cinch buckle is easy to use.<li> Choice of three natural colors made from phthalate and heavy metal free dyes.</ul>",,"1",1,,"Catalog, Search",,,,,set-of-sprite-yoga-straps,"Meta Title","meta1, meta2, meta6","meta description",/l/u/luma-yoga-strap-set.jpg,"Image Label",/l/u/luma-yoga-strap-set.jpg,"Image Label",/l/u/luma-yoga-strap-set.jpg,"Image Label","01.07.2015 15:39","01.07.2015 15:39",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,required_options=0",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/l/u/luma-yoga-strap-set.jpg,"Image,Image",,,,,,,,,
+24-WG085-configurable,,"Sprite Yoga Strap",configurable,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap Configurable","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1,1,"Taxable Goods","Catalog, Search",14,,,,sprite-yoga-strap1,"Meta Title","meta1, meta2, meta7","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 16:15","01.07.2015 16:15",,,"Block after Info Column",,,,,,,,,,,,,"has_options=1,required_options=1",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/l/u/luma-yoga-strap.jpg,"Image,Image",,"sku=24-WG086,size=8 foot|sku=24-WG087,size=10 foot|sku=24-WG085,size=6 foot","name=size,value=8 foot,price=3.0000,price_type=fixed|name=size,value=10 foot,price=7.0000,price_type=fixed|name=size,value=6 foot,price=,price_type=fixed",size=Size,,,,,
+24-WG085-bundle-dynamic,,"Sprite Yoga Strap",bundle,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap Dynamic Bundle","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1,1,"Taxable Goods","Catalog, Search",14,,,,sprite-yoga-strap2,"Meta Title","meta1, meta2, meta8","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 16:15","01.07.2015 16:15",,,"Block after Info Column",,,,,,,,,,,,,"has_options=1,required_options=1",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/l/u/luma-yoga-strap.jpg,"Image,Image",,,,,dynamic,dynamic,"Price Range",fixed,"name=Bundle Option One1,type=dropdown,required=1,sku=24-WG085,price=15; price_type=fixed, default_qty=1, default=0 | name=Bundle Option One1,type=dropdown; required=1, sku=24-WG086,price=10, price_type=fixed, default_qty=1, default=1"
+24-WG085-bundle-fixed,,"Sprite Yoga Strap",bundle,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap Fixed Bundle","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1,1,"Taxable Goods","Catalog, Search",14,,,,sprite-yoga-strap3,"Meta Title","meta1, meta2, meta9","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 16:15","01.07.2015 16:15",,,"Block after Info Column",,,,,,,,,,,,,"has_options=1,required_options=1",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/l/u/luma-yoga-strap.jpg,"Image,Image",,,,,fixed,fixed,"Price Range",fixed,"name=Yoga Strap,type=radiobutton,required=1,sku=24-WG086,default_qty=3,default=1 | name=Yoga Strap,type=radiobutton,required=1,sku=24-WG085,default_qty=3,default=0"
-- 
GitLab


From 4a8ab2baee49aa5ffe2eadeb2ddc27a3f999dd2d Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Wed, 21 Oct 2015 12:46:10 +0300
Subject: [PATCH 13/61] MAGETWO-39795: Check data for import product does not
 work MAGETWO-43900: Imported products with broken images link don't appear on
 front MAGETWO-43901: The "Imported resource (image) could not be downloaded"
 message appears when user tries to import products using "Replace" behavior
 MAGETWO-44238: Categories imported in a comma-separated format are not
 created properly MAGETWO-42245: _media_is_disabled is not exported

---
 .../Model/Import/Product.php                  |   2 +-
 .../Model/Import/AbstractEntity.php           |   2 +-
 .../integration/etc/di/preferences/ce.php     |   1 +
 .../Catalog/_files/multiselect_attribute.php  |   1 +
 .../Model/Export/ProductTest.php              | 174 ++++
 .../Model/Import/ProductTest.php              | 794 ++++++++++++++++++
 .../Model/Import/_files/import_media.csv      |   2 +
 .../product_with_custom_options_new.csv       |   4 +-
 .../Import/_files/products_to_import.csv      |   9 +-
 ...oducts_to_import_invalid_attribute_set.csv |   4 +-
 .../products_to_import_with_datetime.csv      |   6 +-
 11 files changed, 985 insertions(+), 14 deletions(-)
 create mode 100644 dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Export/ProductTest.php
 create mode 100644 dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
 create mode 100644 dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_media.csv

diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index df1fe7bbec2..31bd9b0fbb2 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -228,7 +228,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         ValidatorInterface::ERROR_SUPER_PRODUCTS_SKU_NOT_FOUND => 'Product with specified super products SKU not found',
         ValidatorInterface::ERROR_MEDIA_DATA_INCOMPLETE => 'Media data is incomplete',
         ValidatorInterface::ERROR_EXCEEDED_MAX_LENGTH => 'Attribute %s exceeded max length',
-        ValidatorInterface::ERROR_INVALID_ATTRIBUTE_TYPE => 'Value for \'%s\' attribute contains incorrect value, acceptable values are in %s format',
+        ValidatorInterface::ERROR_INVALID_ATTRIBUTE_TYPE => 'Value for \'%s\' attribute contains incorrect value',
         ValidatorInterface::ERROR_ABSENT_REQUIRED_ATTRIBUTE => 'Attribute %s is required',
         ValidatorInterface::ERROR_INVALID_ATTRIBUTE_OPTION => 'Value for \'%s\' attribute contains incorrect value, see acceptable values on settings specified for Admin',
         ValidatorInterface::ERROR_DUPLICATE_UNIQUE_ATTRIBUTE => 'Duplicated unique attribute',
diff --git a/app/code/Magento/ImportExport/Model/Import/AbstractEntity.php b/app/code/Magento/ImportExport/Model/Import/AbstractEntity.php
index e9b684c2bd2..4eafd311c5c 100644
--- a/app/code/Magento/ImportExport/Model/Import/AbstractEntity.php
+++ b/app/code/Magento/ImportExport/Model/Import/AbstractEntity.php
@@ -69,7 +69,7 @@ abstract class AbstractEntity
         self::ERROR_CODE_COLUMNS_NUMBER => "Number of columns does not correspond to the number of rows in the header",
         self::ERROR_EXCEEDED_MAX_LENGTH => 'Attribute %s exceeded max length',
         self::ERROR_INVALID_ATTRIBUTE_TYPE =>
-            'Value for \'%s\' attribute contains incorrect value, acceptable values are in %s format',
+            'Value for \'%s\' attribute contains incorrect value',
         self::ERROR_INVALID_ATTRIBUTE_OPTION =>
             "Value for %s attribute contains incorrect value, see acceptable values on settings specified for Admin",
     ];
diff --git a/dev/tests/integration/etc/di/preferences/ce.php b/dev/tests/integration/etc/di/preferences/ce.php
index fdf00fa6d59..674ebe49afc 100644
--- a/dev/tests/integration/etc/di/preferences/ce.php
+++ b/dev/tests/integration/etc/di/preferences/ce.php
@@ -19,4 +19,5 @@ return [
     'Magento\Framework\View\LayoutInterface' => 'Magento\TestFramework\View\Layout',
     'Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface' =>
         'Magento\TestFramework\Db\ConnectionAdapter',
+    'Magento\Framework\Filesystem\DriverInterface' => 'Magento\Framework\Filesystem\Driver\File'
 ];
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/multiselect_attribute.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/multiselect_attribute.php
index b87c30697f2..8a48ef56be1 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/_files/multiselect_attribute.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/multiselect_attribute.php
@@ -32,6 +32,7 @@ $attribute->setData(
         'used_for_sort_by' => 0,
         'frontend_label' => ['Multiselect Attribute'],
         'backend_type' => 'varchar',
+        'backend_model' => 'Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend',
         'option' => [
             'value' => [
                 'option_1' => ['Option 1'],
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Export/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Export/ProductTest.php
new file mode 100644
index 00000000000..604e317213c
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Export/ProductTest.php
@@ -0,0 +1,174 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\CatalogImportExport\Model\Export;
+
+/**
+ * @magentoDataFixtureBeforeTransaction Magento/Catalog/_files/enable_reindex_schedule.php
+ */
+class ProductTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\CatalogImportExport\Model\Export\Product
+     */
+    protected $_model;
+
+    /**
+     * Stock item attributes which must be exported
+     *
+     * @var array
+     */
+    public static $stockItemAttributes = [
+        'qty',
+        'min_qty',
+        'use_config_min_qty',
+        'is_qty_decimal',
+        'backorders',
+        'use_config_backorders',
+        'min_sale_qty',
+        'use_config_min_sale_qty',
+        'max_sale_qty',
+        'use_config_max_sale_qty',
+        'is_in_stock',
+        'notify_stock_qty',
+        'use_config_notify_stock_qty',
+        'manage_stock',
+        'use_config_manage_stock',
+        'use_config_qty_increments',
+        'qty_increments',
+        'use_config_enable_qty_inc',
+        'enable_qty_increments',
+        'is_decimal_divided',
+    ];
+
+    protected function setUp()
+    {
+        parent::setUp();
+
+        $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\CatalogImportExport\Model\Export\Product'
+        );
+    }
+
+    /**
+     * @magentoDataFixture Magento/CatalogImportExport/_files/product_export_data.php
+     */
+    public function testExport()
+    {
+        $this->_model->setWriter(
+            \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+                'Magento\ImportExport\Model\Export\Adapter\Csv'
+            )
+        );
+        $this->assertNotEmpty($this->_model->export());
+    }
+
+    /**
+     * Verify that all stock item attribute values are exported (aren't equal to empty string)
+     *
+     * @covers \Magento\CatalogImportExport\Model\Export\Product::export
+     * @magentoDataFixture Magento/CatalogImportExport/_files/product_export_data.php
+     */
+    public function testExportStockItemAttributesAreFilled()
+    {
+        $fileWrite = $this->getMock('Magento\Framework\Filesystem\File\Write', [], [], '', false);
+        $directoryMock = $this->getMock('Magento\Framework\Filesystem\Directory\Write', [], [], '', false);
+        $directoryMock->expects($this->any())->method('getParentDirectory')->will($this->returnValue('some#path'));
+        $directoryMock->expects($this->any())->method('isWritable')->will($this->returnValue(true));
+        $directoryMock->expects($this->any())->method('isFile')->will($this->returnValue(true));
+        $directoryMock->expects(
+            $this->any()
+        )->method(
+            'readFile'
+        )->will(
+            $this->returnValue('some string read from file')
+        );
+        $directoryMock->expects($this->once())->method('openFile')->will($this->returnValue($fileWrite));
+
+        $filesystemMock = $this->getMock('Magento\Framework\Filesystem', [], [], '', false);
+        $filesystemMock->expects($this->once())->method('getDirectoryWrite')->will($this->returnValue($directoryMock));
+
+        $exportAdapter = new \Magento\ImportExport\Model\Export\Adapter\Csv($filesystemMock);
+
+        $this->_model->setWriter($exportAdapter)->export();
+    }
+
+    /**
+     * Verify header columns (that stock item attributes column headers are present)
+     *
+     * @param array $headerColumns
+     */
+    public function verifyHeaderColumns(array $headerColumns)
+    {
+        foreach (self::$stockItemAttributes as $stockItemAttribute) {
+            $this->assertContains(
+                $stockItemAttribute,
+                $headerColumns,
+                "Stock item attribute {$stockItemAttribute} is absent among header columns"
+            );
+        }
+    }
+
+    /**
+     * Verify row data (stock item attribute values)
+     *
+     * @param array $rowData
+     */
+    public function verifyRow(array $rowData)
+    {
+        foreach (self::$stockItemAttributes as $stockItemAttribute) {
+            $this->assertNotSame(
+                '',
+                $rowData[$stockItemAttribute],
+                "Stock item attribute {$stockItemAttribute} value is empty string"
+            );
+        }
+    }
+
+    /**
+     * Verifies if exception processing works properly
+     *
+     * @magentoDataFixture Magento/CatalogImportExport/_files/product_export_data.php
+     */
+    public function testExceptionInGetExportData()
+    {
+        $exception = new \Exception('Error');
+
+        $rowCustomizerMock = $this->getMockBuilder('Magento\CatalogImportExport\Model\Export\RowCustomizerInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $loggerMock = $this->getMockBuilder('\Psr\Log\LoggerInterface')->getMock();
+
+        $directoryMock = $this->getMock('Magento\Framework\Filesystem\Directory\Write', [], [], '', false);
+        $directoryMock->expects($this->any())->method('getParentDirectory')->will($this->returnValue('some#path'));
+        $directoryMock->expects($this->any())->method('isWritable')->will($this->returnValue(true));
+
+        $filesystemMock = $this->getMock('Magento\Framework\Filesystem', [], [], '', false);
+        $filesystemMock->expects($this->once())->method('getDirectoryWrite')->will($this->returnValue($directoryMock));
+
+        $exportAdapter = new \Magento\ImportExport\Model\Export\Adapter\Csv($filesystemMock);
+
+        $rowCustomizerMock->expects($this->once())->method('prepareData')->willThrowException($exception);
+        $loggerMock->expects($this->once())->method('critical')->with($exception);
+
+        $collection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            '\Magento\Catalog\Model\ResourceModel\Product\Collection'
+        );
+
+        /** @var \Magento\CatalogImportExport\Model\Export\Product $model */
+        $model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\CatalogImportExport\Model\Export\Product',
+            [
+                'rowCustomizer' => $rowCustomizerMock,
+                'logger' => $loggerMock,
+                'collection' => $collection
+            ]
+        );
+
+        $data = $model->setWriter($exportAdapter)->export();
+        $this->assertEmpty($data);
+    }
+}
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
new file mode 100644
index 00000000000..73df8b7a14c
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
@@ -0,0 +1,794 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+// @codingStandardsIgnoreFile
+
+/**
+ * Test class for \Magento\CatalogImportExport\Model\Import\Product
+ *
+ * The "CouplingBetweenObjects" warning is caused by tremendous complexity of the original class
+ *
+ */
+namespace Magento\CatalogImportExport\Model\Import;
+
+use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface;
+
+/**
+ * Class ProductTest
+ *
+ * @magentoDataFixtureBeforeTransaction Magento/Catalog/_files/enable_reindex_schedule.php
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
+class ProductTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\CatalogImportExport\Model\Import\Product
+     */
+    protected $_model;
+
+    /**
+     * @var \Magento\CatalogImportExport\Model\Import\Uploader
+     */
+    protected $_uploader;
+
+    /**
+     * @var \Magento\CatalogImportExport\Model\Import\UploaderFactory
+     */
+    protected $_uploaderFactory;
+
+    /**
+     * @var \Magento\CatalogInventory\Model\Spi\StockStateProviderInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_stockStateProvider;
+
+    protected function setUp()
+    {
+        $this->_uploaderFactory = $this->getMock(
+            'Magento\CatalogImportExport\Model\Import\UploaderFactory',
+            ['create'],
+            [],
+            '',
+            false
+        );
+
+        $this->_stockStateProvider = $this->getMock(
+            'Magento\CatalogInventory\Model\StockStateProvider',
+            ['verifyStock'],
+            [],
+            '',
+            false
+        );
+        $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\CatalogImportExport\Model\Import\Product',
+            [
+                'uploaderFactory' => $this->_uploaderFactory,
+                'stockStateProvider' => $this->_stockStateProvider
+            ]
+        );
+    }
+
+    /**
+     * Options for assertion
+     *
+     * @var array
+     */
+    protected $_assertOptions = [
+        'is_require' => '_custom_option_is_required',
+        'price' => '_custom_option_price',
+        'sku' => '_custom_option_sku',
+        'sort_order' => '_custom_option_sort_order',
+    ];
+
+    /**
+     * Option values for assertion
+     *
+     * @var array
+     */
+    protected $_assertOptionValues = ['title', 'price', 'sku'];
+
+    /**
+     * Test if visibility properly saved after import
+     *
+     * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
+     * @magentoAppIsolation enabled
+     */
+    public function _testSaveProductsVisibility()
+    {
+        $existingProductIds = [10, 11, 12];
+        $productsBeforeImport = [];
+        foreach ($existingProductIds as $productId) {
+            $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+                'Magento\Catalog\Model\Product'
+            );
+            $product->load($productId);
+            $productsBeforeImport[] = $product;
+        }
+
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Framework\Filesystem');
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv(
+            __DIR__ . '/_files/products_to_import.csv',
+            $directory
+        );
+        $errors = $this->_model->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+        )->setSource(
+            $source
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 0);
+
+        $this->_model->importData();
+
+        /** @var $productBeforeImport \Magento\Catalog\Model\Product */
+        foreach ($productsBeforeImport as $productBeforeImport) {
+            /** @var $productAfterImport \Magento\Catalog\Model\Product */
+            $productAfterImport = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+                'Magento\Catalog\Model\Product'
+            );
+            $productAfterImport->load($productBeforeImport->getId());
+
+            $this->assertEquals($productBeforeImport->getVisibility(), $productAfterImport->getVisibility());
+            unset($productAfterImport);
+        }
+
+        unset($productsBeforeImport, $product);
+    }
+
+    /**
+     * Test if stock item quantity properly saved after import
+     *
+     * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
+     * @magentoAppIsolation enabled
+     */
+    public function _testSaveStockItemQty()
+    {
+        $existingProductIds = [10, 11, 12];
+        $stockItems = [];
+        foreach ($existingProductIds as $productId) {
+            /** @var $stockRegistry \Magento\CatalogInventory\Model\StockRegistry */
+            $stockRegistry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+                'Magento\CatalogInventory\Model\StockRegistry'
+            );
+
+            $stockItem = $stockRegistry->getStockItem($productId, 1);
+            $stockItems[$productId] = $stockItem;
+        }
+
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Framework\Filesystem');
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv(
+            __DIR__ . '/_files/products_to_import.csv',
+            $directory
+        );
+        $errors = $this->_model->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+        )->setSource(
+            $source
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 0);
+
+        $this->_model->importData();
+
+        /** @var $stockItmBeforeImport \Magento\CatalogInventory\Model\Stock\Item */
+        foreach ($stockItems as $productId => $stockItmBeforeImport) {
+            /** @var $stockRegistry \Magento\CatalogInventory\Model\StockRegistry */
+            $stockRegistry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+                'Magento\CatalogInventory\Model\StockRegistry'
+            );
+
+            $stockItemAfterImport = $stockRegistry->getStockItem($productId, 1);
+
+            $this->assertEquals($stockItmBeforeImport->getQty(), $stockItemAfterImport->getQty());
+            $this->assertEquals(1, $stockItemAfterImport->getIsInStock());
+            unset($stockItemAfterImport);
+        }
+
+        unset($stockItems, $stockItem);
+    }
+
+    /**
+     * Test if stock state properly changed after import
+     *
+     * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
+     * @magentoAppIsolation enabled
+     */
+    public function _testStockState()
+    {
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Framework\Filesystem');
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv(
+            __DIR__ . '/_files/products_to_import_with_qty.csv',
+            $directory
+        );
+
+        $errors = $this->_model->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+        )->setSource(
+            $source
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 0);
+
+        $this->_stockStateProvider->expects($this->atLeastOnce())->method('verifyStock')->willReturn(true);
+        $this->_model->importData();
+    }
+
+    /**
+     * Tests adding of custom options with existing and new product
+     *
+     * @param $behavior
+     *
+     * @magentoDataFixture Magento/Catalog/_files/product_simple.php
+     * @dataProvider getBehaviorDataProvider
+     * @param string $behavior
+     * @param string $importFile
+     * @param string $sku
+     * @magentoAppIsolation enabled
+     */
+    public function _testSaveCustomOptions($behavior, $importFile, $sku)
+    {
+        $this->_stockStateProvider->method('verifyStock')->willReturn(true);
+
+        // import data from CSV file
+        $pathToFile = __DIR__ . '/_files/' . $importFile;
+
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Framework\Filesystem');
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv($pathToFile, $directory);
+        $errors = $this->_model->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+        )->setSource(
+            $source
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 0);
+        $this->_model->importData();
+
+        /** @var \Magento\Catalog\Model\Product $productModel */
+        $productModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Catalog\Model\Product'
+        );
+        $product = $productModel->loadByAttribute('sku', $sku);
+
+        $this->assertInstanceOf('Magento\Catalog\Model\Product', $product);
+        $options = $product->getProductOptionsCollection();
+
+        $expectedData = $this->getExpectedOptionsData($pathToFile);
+        $expectedData = $this->mergeWithExistingData($expectedData, $options);
+        $actualData = $this->getActualOptionsData($options);
+
+        // assert of equal type+titles
+        $expectedOptions = $expectedData['options'];
+        // we need to save key values
+        $actualOptions = $actualData['options'];
+        sort($expectedOptions);
+        sort($actualOptions);
+        $this->assertEquals($expectedOptions, $actualOptions);
+
+        // assert of options data
+        $this->assertCount(count($expectedData['data']), $actualData['data']);
+        $this->assertCount(count($expectedData['values']), $actualData['values']);
+        foreach ($expectedData['options'] as $expectedId => $expectedOption) {
+            $elementExist = false;
+            // find value in actual options and values
+            foreach ($actualData['options'] as $actualId => $actualOption) {
+                if ($actualOption == $expectedOption) {
+                    $elementExist = true;
+                    $this->assertEquals($expectedData['data'][$expectedId], $actualData['data'][$actualId]);
+                    if (array_key_exists($expectedId, $expectedData['values'])) {
+                        $this->assertEquals($expectedData['values'][$expectedId], $actualData['values'][$actualId]);
+                    }
+                    unset($actualData['options'][$actualId]);
+                    // remove value in case of duplicating key values
+                    break;
+                }
+            }
+            $this->assertTrue($elementExist, 'Element must exist.');
+        }
+    }
+
+    /**
+     * Data provider for test 'testSaveCustomOptionsDuplicate'
+     *
+     * @return array
+     */
+    public function getBehaviorDataProvider()
+    {
+        return [
+            'Append behavior with existing product' => [
+                '$behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
+                '$importFile' => 'product_with_custom_options.csv',
+                '$sku' => 'simple',
+            ],
+            'Append behavior with new product' => [
+                '$behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
+                '$importFile' => 'product_with_custom_options_new.csv',
+                '$sku' => 'simple_new',
+            ]
+        ];
+    }
+
+    /**
+     * Test if datetime properly saved after import
+     *
+     * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
+     * @magentoAppIsolation enabled
+     */
+    public function _testSaveDatetimeAttribute()
+    {
+        $this->_stockStateProvider->method('verifyStock')->willReturn(true);
+
+        $existingProductIds = [10, 11, 12];
+        $productsBeforeImport = [];
+        foreach ($existingProductIds as $productId) {
+            $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+                'Magento\Catalog\Model\Product'
+            );
+            $product->load($productId);
+            $productsBeforeImport[$product->getSku()] = $product;
+        }
+
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Framework\Filesystem');
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv(
+            __DIR__ . '/_files/products_to_import_with_datetime.csv',
+            $directory
+        );
+        $errors = $this->_model->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+        )->setSource(
+            $source
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 0);
+
+        $this->_model->importData();
+
+        $source->rewind();
+        foreach ($source as $row) {
+            /** @var $productAfterImport \Magento\Catalog\Model\Product */
+            $productBeforeImport = $productsBeforeImport[$row['sku']];
+
+            /** @var $productAfterImport \Magento\Catalog\Model\Product */
+            $productAfterImport = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+                'Magento\Catalog\Model\Product'
+            );
+            $productAfterImport->load($productBeforeImport->getId());
+            $this->assertEquals(
+                @strtotime($row['news_from_date']),
+                @strtotime($productAfterImport->getNewsFromDate())
+            );
+            unset($productAfterImport);
+        }
+        unset($productsBeforeImport, $product);
+    }
+
+    /**
+     * Returns expected product data: current id, options, options data and option values
+     *
+     * @param string $pathToFile
+     * @return array
+     */
+    protected function getExpectedOptionsData($pathToFile)
+    {
+        $productData = $this->csvToArray(file_get_contents($pathToFile));
+        $expectedOptionId = 0;
+        $expectedOptions = [];
+        // array of type and title types, key is element ID
+        $expectedData = [];
+        // array of option data
+        $expectedValues = [];
+        // array of option values data
+        foreach ($productData['data'] as $data) {
+            if (!empty($data['_custom_option_type']) && !empty($data['_custom_option_title'])) {
+                $lastOptionKey = $data['_custom_option_type'] . '|' . $data['_custom_option_title'];
+                $expectedOptionId++;
+                $expectedOptions[$expectedOptionId] = $lastOptionKey;
+                $expectedData[$expectedOptionId] = [];
+                foreach ($this->_assertOptions as $assertKey => $assertFieldName) {
+                    if (array_key_exists($assertFieldName, $data)) {
+                        $expectedData[$expectedOptionId][$assertKey] = $data[$assertFieldName];
+                    }
+                }
+            }
+            if (!empty($data['_custom_option_row_title']) && empty($data['_custom_option_store'])) {
+                $optionData = [];
+                foreach ($this->_assertOptionValues as $assertKey) {
+                    $valueKey = \Magento\CatalogImportExport\Model\Import\Product\Option::COLUMN_PREFIX .
+                        'row_' .
+                        $assertKey;
+                    $optionData[$assertKey] = $data[$valueKey];
+                }
+                $expectedValues[$expectedOptionId][] = $optionData;
+            }
+        }
+
+        return [
+            'id' => $expectedOptionId,
+            'options' => $expectedOptions,
+            'data' => $expectedData,
+            'values' => $expectedValues
+        ];
+    }
+
+    /**
+     * Updates expected options data array with existing unique options data
+     *
+     * @param array $expected
+     * @param \Magento\Catalog\Model\ResourceModel\Product\Option\Collection $options
+     * @return array
+     */
+    protected function mergeWithExistingData(
+        array $expected,
+        \Magento\Catalog\Model\ResourceModel\Product\Option\Collection $options
+    ) {
+        $expectedOptionId = $expected['id'];
+        $expectedOptions = $expected['options'];
+        $expectedData = $expected['data'];
+        $expectedValues = $expected['values'];
+        foreach ($options->getItems() as $option) {
+            $optionKey = $option->getType() . '|' . $option->getTitle();
+            if (!in_array($optionKey, $expectedOptions)) {
+                $expectedOptionId++;
+                $expectedOptions[$expectedOptionId] = $optionKey;
+                $expectedData[$expectedOptionId] = $this->getOptionData($option);
+                if ($optionValues = $this->getOptionValues($option)) {
+                    $expectedValues[$expectedOptionId] = $optionValues;
+                }
+            }
+        }
+
+        return [
+            'id' => $expectedOptionId,
+            'options' => $expectedOptions,
+            'data' => $expectedData,
+            'values' => $expectedValues
+        ];
+    }
+
+    /**
+     *  Returns actual product data: current id, options, options data and option values
+     *
+     * @param \Magento\Catalog\Model\ResourceModel\Product\Option\Collection $options
+     * @return array
+     */
+    protected function getActualOptionsData(\Magento\Catalog\Model\ResourceModel\Product\Option\Collection $options)
+    {
+        $actualOptionId = 0;
+        $actualOptions = [];
+        // array of type and title types, key is element ID
+        $actualData = [];
+        // array of option data
+        $actualValues = [];
+        // array of option values data
+        /** @var $option \Magento\Catalog\Model\Product\Option */
+        foreach ($options->getItems() as $option) {
+            $lastOptionKey = $option->getType() . '|' . $option->getTitle();
+            $actualOptionId++;
+            if (!in_array($lastOptionKey, $actualOptions)) {
+                $actualOptions[$actualOptionId] = $lastOptionKey;
+                $actualData[$actualOptionId] = $this->getOptionData($option);
+                if ($optionValues = $this->getOptionValues($option)) {
+                    $actualValues[$actualOptionId] = $optionValues;
+                }
+            }
+        }
+        return [
+            'id' => $actualOptionId,
+            'options' => $actualOptions,
+            'data' => $actualData,
+            'values' => $actualValues
+        ];
+    }
+
+    /**
+     * Retrieve option data
+     *
+     * @param \Magento\Catalog\Model\Product\Option $option
+     * @return array
+     */
+    protected function getOptionData(\Magento\Catalog\Model\Product\Option $option)
+    {
+        $result = [];
+        foreach (array_keys($this->_assertOptions) as $assertKey) {
+            $result[$assertKey] = $option->getData($assertKey);
+        }
+        return $result;
+    }
+
+    /**
+     * Retrieve option values or false for options which has no values
+     *
+     * @param \Magento\Catalog\Model\Product\Option $option
+     * @return array|bool
+     */
+    protected function getOptionValues(\Magento\Catalog\Model\Product\Option $option)
+    {
+        $values = $option->getValues();
+        if (!empty($values)) {
+            $result = [];
+            /** @var $value \Magento\Catalog\Model\Product\Option\Value */
+            foreach ($values as $value) {
+                $optionData = [];
+                foreach ($this->_assertOptionValues as $assertKey) {
+                    if ($value->hasData($assertKey)) {
+                        $optionData[$assertKey] = $value->getData($assertKey);
+                    }
+                }
+                $result[] = $optionData;
+            }
+            return $result;
+        }
+
+        return false;
+    }
+
+    /**
+     * @magentoDataIsolation enabled
+     * @magentoDataFixture mediaImportImageFixture
+     *
+     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
+     */
+    public function _testSaveMediaImage()
+    {
+        $this->markTestSkipped();
+        $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+        /** @var \Magento\ImportExport\Model\Import $importModel */
+        $importModel = $objectManager->get('\Magento\ImportExport\Model\Import');
+        $readFactory = $objectManager->get('\Magento\Framework\Filesystem\Directory\ReadFactory');
+        $source = $objectManager->get('\Magento\ImportExport\Model\Import\Source\CsvFactory')->create(
+            [
+                'file' => '_files/import_media.csv',
+                'directory' => $readFactory->create(__DIR__)
+            ]
+        );
+        $importModel->setData(
+            [
+                'entity' => 'catalog_product',
+                'behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
+                'import_images_file_dir' => 'dev/tests/integration/tmp/sandbox-0-f23d6c7dcc8c9a5dc09f50ba2f96aed5/media/import',
+                \Magento\ImportExport\Model\Import::FIELD_NAME_VALIDATION_STRATEGY =>
+                    ProcessingErrorAggregatorInterface::VALIDATION_STRATEGY_SKIP_ERRORS
+            ]
+        );
+
+        $this->assertTrue($importModel->validateSource($source));
+        $importModel->importSource();
+
+        $resource = $objectManager->get('Magento\Catalog\Model\ResourceModel\Product');
+        $productId = $resource->getIdBySku('simple_new');
+
+        $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Catalog\Model\Product'
+        );
+        $product->load($productId);
+        $gallery = $product->getMediaGalleryImages();
+        $this->assertInstanceOf('Magento\Framework\Data\Collection', $gallery);
+        $items = $gallery->getItems();
+        $this->assertCount(1, $items);
+        $item = array_pop($items);
+        $this->assertInstanceOf('Magento\Framework\Object', $item);
+        $this->assertEquals('magento_image.jpg', $item->getFile());
+        $this->assertEquals('Image Label', $item->getLabel());
+    }
+
+    /**
+     * Copy a fixture image into media import directory
+     */
+    public static function mediaImportImageFixture()
+    {
+        /** @var \Magento\Framework\Filesystem\Directory\Write $mediaDirectory */
+        $mediaDirectory = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
+            'Magento\Framework\Filesystem'
+        )->getDirectoryWrite(
+            DirectoryList::MEDIA
+        );
+        $mediaDirectory->create('import');
+        $dirPath = $mediaDirectory->getAbsolutePath('import');
+        copy(__DIR__ . '/../../../../Magento/Catalog/_files/magento_image.jpg', "{$dirPath}/magento_image.jpg");
+    }
+
+    /**
+     * Cleanup media import and catalog directories
+     */
+    public static function mediaImportImageFixtureRollback()
+    {
+        /** @var \Magento\Framework\Filesystem\Directory\Write $mediaDirectory */
+        $mediaDirectory = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
+            'Magento\Framework\Filesystem'
+        )->getDirectoryWrite(
+            DirectoryList::MEDIA
+        );
+        $mediaDirectory->delete('import');
+        $mediaDirectory->delete('catalog');
+    }
+
+    /**
+     * Export CSV string to array
+     *
+     * @param string $content
+     * @param mixed $entityId
+     * @return array
+     */
+    protected function csvToArray($content, $entityId = null)
+    {
+        $data = ['header' => [], 'data' => []];
+
+        $lines = str_getcsv($content, "\n");
+        foreach ($lines as $index => $line) {
+            if ($index == 0) {
+                $data['header'] = str_getcsv($line);
+            } else {
+                $row = array_combine($data['header'], str_getcsv($line));
+                if (!is_null($entityId) && !empty($row[$entityId])) {
+                    $data['data'][$row[$entityId]] = $row;
+                } else {
+                    $data['data'][] = $row;
+                }
+            }
+        }
+        return $data;
+    }
+
+    /**
+     * Tests that an import will still work with an invalid import line and
+     * SKU data.
+     *
+     * In this case, the second product data has an invalid attribute set.
+     *
+     * @magentoDbIsolation enabled
+     */
+    public function testInvalidSkuLink()
+    {
+        $this->_stockStateProvider->method('verifyStock')->willReturn(true);
+
+        // import data from CSV file
+        $pathToFile = __DIR__ . '/_files/products_to_import_invalid_attribute_set.csv';
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Framework\Filesystem'
+        );
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv($pathToFile, $directory);
+        $errors = $this->_model->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+        )->setSource(
+            $source
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 1);
+        $this->_model->importData();
+
+        $productCollection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Catalog\Model\ResourceModel\Product\Collection'
+        );
+
+        $products = [];
+        /** @var $product \Magento\Catalog\Model\Product */
+        foreach ($productCollection as $product) {
+            $products[$product->getSku()] = $product;
+        }
+        $this->assertArrayHasKey("simple1", $products, "Simple Product should have been imported");
+        $this->assertArrayHasKey("simple3", $products, "Simple Product 3 should have been imported");
+        $this->assertArrayNotHasKey("simple2", $products, "Simple Product2 should not have been imported");
+
+        $upsellProductIds = $products["simple3"]->getUpSellProductIds();
+        $this->assertEquals(
+            0,
+            count($upsellProductIds),
+            "There should not be any linked upsell SKUs. The original  product SKU linked does not import cleanly."
+        );
+    }
+
+    /**
+     * @magentoDataFixture Magento/Catalog/_files/products_with_multiselect_attribute.php
+     * @magentoAppIsolation enabled
+     */
+    public function _testValidateInvalidMultiselectValues()
+    {
+        // import data from CSV file
+        $pathToFile = __DIR__ . '/_files/products_with_invalid_multiselect_values.csv';
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Framework\Filesystem'
+        );
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv($pathToFile, $directory);
+        $errors = $this->_model->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+        )->setSource(
+            $source
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 0);
+
+        $errors = $this->_model->getErrorMessages();
+        $expectedErrors = [
+            "Please correct the value for 'multiselect_attribute'." => [2],
+        ];
+        foreach ($expectedErrors as $message => $invalidRows) {
+            $this->assertArrayHasKey($message, $errors);
+            $this->assertEquals($invalidRows, $errors[$message]);
+        }
+    }
+
+    /**
+     * @magentoDataFixture Magento/Catalog/_files/categories.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
+     * @magentoDataFixture Magento/Catalog/Model/Layer/Filter/_files/attribute_with_option.php
+     * @magentoDataFixture Magento/ConfigurableProduct/_files/configurable_attribute.php
+     * @magentoAppIsolation enabled
+     */
+    public function _testProductsWithMultipleStores()
+    {
+        $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+
+        $filesystem = $objectManager->create('Magento\Framework\Filesystem');
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv(
+            __DIR__ . '/_files/products_multiple_stores.csv',
+            $directory
+        );
+        $errors = $this->_model->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+        )->setSource(
+            $source
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 0);
+
+        $this->_model->importData();
+
+        /** @var \Magento\Catalog\Model\Product $product */
+        $product = $objectManager->create('Magento\Catalog\Model\Product');
+        $id = $product->getIdBySku('Configurable 03');
+        $product->load($id);
+        $this->assertEquals('1', $product->getHasOptions());
+
+        $objectManager->get('Magento\Store\Model\StoreManagerInterface')->setCurrentStore('fixturestore');
+
+        /** @var \Magento\Catalog\Model\Product $simpleProduct */
+        $simpleProduct = $objectManager->create('Magento\Catalog\Model\Product');
+        $id = $simpleProduct->getIdBySku('Configurable 03-option_0');
+        $simpleProduct->load($id);
+        $this->assertEquals('Option Label', $simpleProduct->getAttributeText('attribute_with_option'));
+    }
+
+    /**
+     * @magentoDbIsolation enabled
+     */
+    public function _testProductWithInvalidWeight()
+    {
+        // import data from CSV file
+        $pathToFile = __DIR__ . '/_files/product_to_import_invalid_weight.csv';
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Framework\Filesystem'
+        );
+
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv($pathToFile, $directory);
+        $errors = $this->_model->setSource(
+            $source
+        )->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND]
+        )->validateData();
+
+        $expectedErrors = ["Product weight is invalid" => [2]];
+
+        $this->assertFalse($errors->getErrorsCount() == 1);
+        $this->assertEquals($expectedErrors, $errors->getAllErrors());
+    }
+}
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_media.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_media.csv
new file mode 100644
index 00000000000..608b7569826
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_media.csv
@@ -0,0 +1,2 @@
+sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,associated_skus
+simple_new,,Default,simple,,base,New Product,,,,1,Taxable Goods,"Catalog, Search",10,,,,new-product,New Product,New Product,New Product ,magento_image.jpg,,magento_image.jpg,,magento_image.jpg,,10/20/15 07:05,10/20/15 07:05,,,Block after Info Column,,,,,,,,,,,,,"has_options=1,quantity_and_stock_status=In Stock,required_options=1",100,0,1,0,0,1,1,1,10000,1,1,1,1,1,0,1,1,0,0,0,1,,,,magento_image.jpg,Image Label,,,,,,,,
\ No newline at end of file
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/product_with_custom_options_new.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/product_with_custom_options_new.csv
index 5211dd576ae..9c4e8846463 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/product_with_custom_options_new.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/product_with_custom_options_new.csv
@@ -1,2 +1,2 @@
-sku,store_view_code,attribute_set_code,product_type,categories,product_websites,color,cost,country_of_manufacture,created_at,custom_design,custom_design_from,custom_design_to,custom_layout_update,description,gallery,gift_message_available,has_options,image,image_label,manufacturer,media_gallery,meta_description,meta_keyword,meta_title,minimal_price,msrp,msrp_display_actual_price_type,msrp_enabled,name,news_from_date,news_to_date,options_container,page_layout,price,required_options,short_description,small_image,small_image_label,special_from_date,special_price,special_to_date,product_online,tax_class_name,thumbnail,thumbnail_label,updated_at,url_key,url_path,visibility,weight,qty,min_qty,use_config_min_qty,is_qty_decimal,backorders,use_config_backorders,min_sale_qty,use_config_min_sale_qty,max_sale_qty,use_config_max_sale_qty,is_in_stock,notify_stock_qty,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,_related_sku,_related_position,_crosssell_sku,_crosssell_position,_upsell_sku,_upsell_position,_associated_sku,_associated_default_qty,_associated_position,_tier_price_website,_tier_price_customer_group,_tier_price_qty,_tier_price_price,_group_price_website,_group_price_customer_group,_group_price_price,_media_attribute_id,_media_image,_media_label,_media_position,_media_is_disabled,custom_options
-simple_new,,Default,simple,,,base,,,,,,,,,,,1,,,,,,,,,,,,New Product,,,Block after Info Column,,10,1,,,,,,,1,Taxable Goods,,,2012-07-13 12:04:17,new-product,new-product.html,"Catalog, Search",,100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,,,,,,,,,,,,,,,,,,,,,,"name=Test Field Title,type=field,required=1;sku=1-text,price=0,price_type=fixed|name=Test Date and Time Title,type=date_time,required=1,price=2,option_title=custom option 1,sku=2-date|name=New Select,type=drop_down,required=1,price=3,option_title=Option 1,sku=3-1-select|name=New Select,type=drop_down,required=1,price=3,option_title=Option 2,sku=3-2-select|name=New Radio,type=radio,required=1,price=3,option_title=Option 1,sku=4-1-radio|name=New Radio,type=radio,required=1,price=3,option_title=Option 2,sku=4-2-radio"
+sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,associated_skus
+simple_new,,Default,simple,,base,"New Product",,,,1,"Taxable Goods","Catalog, Search",10.0000,,,,new-product,"New Product","New Product","New Product ",,,,,,,"2015-10-20 07:05:38","2015-10-20 07:05:38",,,"Block after Info Column",,,,,,,,,,,,,"has_options=1,quantity_and_stock_status=In Stock,required_options=1",100.0000,0.0000,1,0,0,1,1.0000,1,10000.0000,1,1,1.0000,1,1,0,1,1.0000,0,0,0,1,,,,,,,"name=New Radio,type=radio,required=1,price=3.0000,price_type=fixed,sku=4-1-radio,option_title=Option 1|name=New Radio,type=radio,required=1,price=3.0000,price_type=fixed,sku=4-2-radio,option_title=Option 2|name=New Select,type=drop_down,required=1,price=3.0000,price_type=fixed,sku=3-1-select,option_title=Option 1|name=New Select,type=drop_down,required=1,price=3.0000,price_type=fixed,sku=3-2-select,option_title=Option2|name=Test Date and Time Title,type=date_time,required=1,price=2.0000,price_type=fixed,sku=2-date|name=Test Field Title,type=field,required=1,price=0.0000,price_type=fixed,sku=1-text",,,,,,
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import.csv
index d8d879193d8..a107fdff250 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import.csv
@@ -1,5 +1,4 @@
-sku,store_view_code,name,price
-simple1,,"simple 1",25
-simple1,German,"simple 1 German",
-simple2,,"simple 2",34
-simple3,,"simple 3",58
+sku,product_type,store_view_code,name,price,attribute_set_code
+simple1,simple,,"simple 1",25,Default
+simple2,simple,,"simple 2",34,Default
+simple3,simple,,"simple 3",58,Default
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_invalid_attribute_set.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_invalid_attribute_set.csv
index ae16f0735a1..59b8b7b4895 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_invalid_attribute_set.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_invalid_attribute_set.csv
@@ -1,4 +1,4 @@
-sku,price,name,product_type,_attribute_set,_upsell_sku,description
+sku,price,name,product_type,attribute_set_code,_upsell_sku,description
 simple1,25,"Simple Product",simple,Default,,description
-simple2,NULL,"Simple Product2",invalid attribute set,Default,,HiThere
+simple2,10,"Simple Product2",simple,invalid attribute set,,description
 simple3,58,"Simple Product 3",simple,Default,simple2,description
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_datetime.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_datetime.csv
index a45a871fab6..ae7e27dbd95 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_datetime.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_datetime.csv
@@ -1,4 +1,4 @@
 sku,news_from_date
-simple1,"1/1/2015 20:00 pm"
-simple2,"10/8/2012 23:58 pm"
-simple3,"12/31/1998 17:30 pm"
+simple1,"1/1/2015 20:00"
+simple2,"10/8/2012 23:58"
+simple3,"12/31/1998 17:30"
-- 
GitLab


From 462893481c481f0138f23f0c250646ced07dd747 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 21 Oct 2015 16:30:58 -0500
Subject: [PATCH 14/61] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Theme/Model/Design/Backend/Theme.php      | 14 ++----
 .../Unit/Model/Design/Backend/ThemeTest.php   | 47 +++++++++----------
 app/code/Magento/Theme/etc/config.xml         |  5 --
 3 files changed, 25 insertions(+), 41 deletions(-)

diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index d77f694b4b4..4b5f23bcf34 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -66,22 +66,16 @@ class Theme extends Value
     /**
      * {@inheritdoc}
      *
-     * {@inheritdoc}. In addition, it sets status 'invalidate' for blocks and other output caches
+     * {@inheritdoc}. In addition, it cleans all
      *
      * @return $this
      */
     public function afterSave()
     {
-        $types = array_keys(
-            $this->_config->getValue(
-                self::XML_PATH_INVALID_CACHES,
-                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
-            )
-        );
+        parent::afterSave();
         if ($this->isValueChanged()) {
-            $this->cacheTypeList->invalidate($types);
+            $this->_cacheManager->clean();
         }
-
-        return parent::afterSave();
+        return $this;
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index e83a4e4ca30..75530869fa5 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -18,9 +18,9 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     protected $model;
 
     /**
-     * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Model\Context
      */
-    protected $contextMock;
+    protected $context;
 
     /**
      * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject
@@ -32,6 +32,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     protected $cacheTypeListMock;
 
+    /**
+     * @var \Magento\Framework\App\CacheInterface | \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cacheManagerMock;
+
     /**
      * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -39,23 +44,27 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
+        $objectManager = new ObjectManager($this);
+        $this->cacheManagerMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
             ->disableOriginalConstructor()
             ->getMock();
+        $this->context = $objectManager->getObject(
+            'Magento\Framework\Model\Context',
+            ['cacheManager' => $this->cacheManagerMock,]
+        );
+
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
         $this->cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
             ->disableOriginalConstructor()
             ->getMock();
-        $this->contextMock->expects($this->once())
-            ->method('getEventDispatcher')
-            ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
         $this->configMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
 
-        $this->model = (new ObjectManager($this))->getObject(
+
+        $this->model = $objectManager->getObject(
             'Magento\Theme\Model\Design\Backend\Theme',
             [
                 'design' => $this->designMock,
-                'context' => $this->contextMock,
+                'context' => $this->context,
                 'cacheTypeList' => $this->cacheTypeListMock,
                 'config' => $this->configMock,
             ]
@@ -86,25 +95,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     {
         $this->cacheTypeListMock->expects($this->exactly($callNumber))
             ->method('invalidate');
+        $this->cacheManagerMock->expects($this->exactly($callNumber))
+            ->method('clean');
         $this->configMock->expects($this->any())
             ->method('getValue')
-            ->willReturnMap(
-                [
-                    [
-                        Theme::XML_PATH_INVALID_CACHES,
-                        \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
-                        null,
-                        ['block_html' => 1, 'layout' => 1, 'translate' => 1]
-                    ],
-                    [
-                        null,
-                        \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
-                        null,
-                        $oldValue
-                    ],
-
-                ]
-            );
+            ->willReturn($oldValue);
         $this->model->setValue('some_value');
         $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
     }
@@ -113,7 +108,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     {
         return [
             [0, 'some_value'],
-            [2, 'other_value'],
+            [1, 'other_value'],
         ];
     }
 }
diff --git a/app/code/Magento/Theme/etc/config.xml b/app/code/Magento/Theme/etc/config.xml
index 4f25cd7e2ab..332043e56df 100644
--- a/app/code/Magento/Theme/etc/config.xml
+++ b/app/code/Magento/Theme/etc/config.xml
@@ -8,11 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
     <default>
         <design>
-            <invalid_caches>
-                <block_html />
-                <layout />
-                <translate />
-            </invalid_caches>
             <head translate="default_description">
                 <default_title>Magento Commerce</default_title>
                 <default_description>Default Description</default_description>
-- 
GitLab


From 96878e4e3bf4f07d86be7587d8b28f04f683e0b6 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Wed, 21 Oct 2015 18:42:07 -0500
Subject: [PATCH 15/61] MAGETWO-44189: Does not work to switch the language in
 the admin area  - remove locale switcher from backend

---
 .../Magento/Backend/Block/Page/Locale.php     | 94 -------------------
 .../Backend/view/adminhtml/layout/default.xml |  3 +-
 .../adminhtml/templates/page/locale.phtml     | 31 ------
 3 files changed, 1 insertion(+), 127 deletions(-)
 delete mode 100644 app/code/Magento/Backend/Block/Page/Locale.php
 delete mode 100644 app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml

diff --git a/app/code/Magento/Backend/Block/Page/Locale.php b/app/code/Magento/Backend/Block/Page/Locale.php
deleted file mode 100644
index d6d279ac760..00000000000
--- a/app/code/Magento/Backend/Block/Page/Locale.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * Backend locale switcher block
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Backend\Block\Page;
-
-use Magento\Framework\App\ActionInterface;
-
-class Locale extends \Magento\Backend\Block\Template
-{
-    /**
-     * Path to template file in theme
-     *
-     * @var string
-     */
-    protected $_template = 'page/locale.phtml';
-
-    /**
-     * @var \Magento\Framework\Locale\ListsInterface
-     */
-    protected $_localeLists;
-
-    /**
-     * @var \Magento\Framework\Locale\ResolverInterface
-     */
-    protected $_localeResolver;
-
-    /**
-     * @var \Magento\Framework\Url\Helper\Data
-     */
-    protected $_urlHelper;
-
-    /**
-     * @param \Magento\Backend\Block\Template\Context $context
-     * @param \Magento\Framework\Locale\ListsInterface $localeLists
-     * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
-     * @param \Magento\Framework\Url\Helper\Data $urlHelper
-     * @param array $data
-     */
-    public function __construct(
-        \Magento\Backend\Block\Template\Context $context,
-        \Magento\Framework\Locale\ListsInterface $localeLists,
-        \Magento\Framework\Locale\ResolverInterface $localeResolver,
-        \Magento\Framework\Url\Helper\Data $urlHelper,
-        array $data = []
-    ) {
-        $this->_localeLists = $localeLists;
-        $this->_localeResolver = $localeResolver;
-        $this->_urlHelper = $urlHelper;
-        parent::__construct($context, $data);
-    }
-
-    /**
-     * Prepare URL for change locale
-     *
-     * @return string
-     */
-    public function getChangeLocaleUrl()
-    {
-        return $this->getUrl('adminhtml/index/changeLocale');
-    }
-
-    /**
-     * Prepare current URL for referer
-     *
-     * @return string
-     */
-    public function getUrlForReferer()
-    {
-        return ActionInterface::PARAM_NAME_URL_ENCODED . '/' . $this->_urlHelper->getEncodedUrl();
-    }
-
-    /**
-     * Retrieve locale select element
-     *
-     * @return string
-     */
-    public function getLocaleSelect()
-    {
-        $html = $this->getLayout()->createBlock('Magento\Framework\View\Element\Html\Select')
-            ->setName('locale')
-            ->setId('footer_interface_locale')
-            ->setTitle(__('Interface Language'))
-            ->setClass('admin__control-select')
-            ->setValue($this->_localeResolver->getLocale())
-            ->setOptions($this->_localeLists->getTranslatedOptionLocales())
-            ->getHtml();
-
-        return $html;
-    }
-}
diff --git a/app/code/Magento/Backend/view/adminhtml/layout/default.xml b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
index f960316fcc9..56c7c5d553a 100644
--- a/app/code/Magento/Backend/view/adminhtml/layout/default.xml
+++ b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
@@ -53,8 +53,7 @@
             <block class="Magento\Framework\View\Element\Template" name="page.actions.toolbar" template="Magento_Backend::pageactions.phtml" after="-"/>
         </referenceContainer>
         <referenceContainer name="footer">
-            <block class="Magento\Backend\Block\Page\Locale" name="locale.switcher" template="Magento_Backend::page/locale.phtml"/>
-            <container name="legal" htmlTag="div" htmlClass="footer-legal col-m-6 col-m-offset-1">
+            <container name="legal" htmlTag="div" htmlClass="footer-legal col-m-12">
                 <block class="Magento\Backend\Block\Page\Footer" name="version" as="version" />
                 <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright" />
                 <block class="Magento\Framework\View\Element\Template" name="report" as="report" template="Magento_Backend::page/report.phtml">
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml
deleted file mode 100644
index 03347fbcbe6..00000000000
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-// @codingStandardsIgnoreFile
-
-?>
-<div class="locale-switcher col-m-5">
-    <label class="label" for="footer_interface_locale"><span><?php /* @escapeNotVerified */ echo __('Interface Locale'); ?></span></label>
-    <?php /* @escapeNotVerified */ echo $block->getLocaleSelect(); ?>
-    <script>
-        require([
-                'mage/validation/url'
-            ],
-            function (urlValidator) {
-                'use strict';
-
-                var elem = document.getElementById('footer_interface_locale');
-
-                function onChange() {
-                    urlValidator.redirect('<?php /* @escapeNotVerified */ echo $block->getChangeLocaleUrl() ?>locale/' +
-                    elem.value +
-                    '/<?php /* @escapeNotVerified */ echo $block->getUrlForReferer() ?>');
-                }
-
-                elem.addEventListener('change', onChange);
-            });
-    </script>
-</div>
-- 
GitLab


From 3fe31b7cb6684a12f6c24d8b4d0396ca23bc4b59 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Thu, 22 Oct 2015 09:16:27 -0500
Subject: [PATCH 16/61] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index 75530869fa5..4082cac2232 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -50,7 +50,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
             ->getMock();
         $this->context = $objectManager->getObject(
             'Magento\Framework\Model\Context',
-            ['cacheManager' => $this->cacheManagerMock,]
+            ['cacheManager' => $this->cacheManagerMock]
         );
 
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
-- 
GitLab


From f6f26912fa2b83e4a3ef955d6fbe8b162cc92eae Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Thu, 22 Oct 2015 14:02:22 -0500
Subject: [PATCH 17/61] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 app/code/Magento/Theme/Model/Design/Backend/Theme.php | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index cafa2703fd4..d58e9b38242 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -16,13 +16,6 @@ class Theme extends Value
      */
     protected $_design = null;
 
-    /**
-     * Path to config node with list of caches
-     *
-     * @var string
-     */
-    const XML_PATH_INVALID_CACHES = 'design/invalid_caches';
-
     /**
      * Initialize dependencies
      *
@@ -66,7 +59,7 @@ class Theme extends Value
     /**
      * {@inheritdoc}
      *
-     * {@inheritdoc}. In addition, it cleans all
+     * {@inheritdoc}. In addition, it cleans all Magento cache
      *
      * @return $this
      */
-- 
GitLab


From 8d1842a0ea6afef4f5db923a06b96f5bf4d9be41 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Thu, 22 Oct 2015 21:30:12 -0500
Subject: [PATCH 18/61] MAGETWO-44470: clear generated files in CLI framework 
 - clear var/generation when command is for compilation

---
 .../Magento/Framework/Console/Cli.php         | 27 ++++++--
 .../Console/Command/DiCompileCommand.php      |  6 +-
 .../Command/DiCompileMultiTenantCommand.php   |  5 +-
 .../Setup/Console/CompilerPreparation.php     | 64 +++++++++++++++++++
 4 files changed, 95 insertions(+), 7 deletions(-)
 create mode 100644 setup/src/Magento/Setup/Console/CompilerPreparation.php

diff --git a/lib/internal/Magento/Framework/Console/Cli.php b/lib/internal/Magento/Framework/Console/Cli.php
index 786a658b7e9..8fb5e79d672 100644
--- a/lib/internal/Magento/Framework/Console/Cli.php
+++ b/lib/internal/Magento/Framework/Console/Cli.php
@@ -22,6 +22,27 @@ class Cli extends SymfonyApplication
      */
     const INPUT_KEY_BOOTSTRAP = 'bootstrap';
 
+    /** @var \Zend\ServiceManager\ServiceManager */
+    private $serviceManager;
+
+    /**
+     * @param string $name    The name of the application
+     * @param string $version The version of the application
+     */
+    public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN')
+    {
+        $this->serviceManager = \Zend\Mvc\Application::init(require BP . '/setup/config/application.config.php')
+            ->getServiceManager();
+        /**
+         * Temporary workaround until the compiler is able to clear the generation directory. (MAGETWO-44493)
+         */
+        if (class_exists('Magento\Setup\Console\CompilerPreparation')) {
+            (new \Magento\Setup\Console\CompilerPreparation($this->serviceManager))->handleCompilerEnvironment();
+        }
+
+        parent::__construct($name, $version);
+    }
+
     /**
      * {@inheritdoc}
      */
@@ -45,14 +66,12 @@ class Cli extends SymfonyApplication
         $params[Bootstrap::PARAM_REQUIRE_MAINTENANCE] = null;
         $bootstrap = Bootstrap::create(BP, $params);
         $objectManager = $bootstrap->getObjectManager();
-        $serviceManager = \Zend\Mvc\Application::init(require BP . '/setup/config/application.config.php')
-            ->getServiceManager();
         /** @var \Magento\Setup\Model\ObjectManagerProvider $omProvider */
-        $omProvider = $serviceManager->get('Magento\Setup\Model\ObjectManagerProvider');
+        $omProvider = $this->serviceManager->get('Magento\Setup\Model\ObjectManagerProvider');
         $omProvider->setObjectManager($objectManager);
 
         if (class_exists('Magento\Setup\Console\CommandList')) {
-            $setupCommandList = new \Magento\Setup\Console\CommandList($serviceManager);
+            $setupCommandList = new \Magento\Setup\Console\CommandList($this->serviceManager);
             $setupCommands = $setupCommandList->getCommands();
         }
 
diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
index b404778db16..8138a0db280 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
@@ -28,6 +28,9 @@ use Symfony\Component\Console\Output\OutputInterface;
  */
 class DiCompileCommand extends Command
 {
+    /** Command name */
+    const NAME = 'setup:di:compile';
+
     /** @var DeploymentConfig */
     private $deploymentConfig;
 
@@ -89,7 +92,7 @@ class DiCompileCommand extends Command
      */
     protected function configure()
     {
-        $this->setName('setup:di:compile')
+        $this->setName(self::NAME)
             ->setDescription(
                 'Generates DI configuration and all non-existing interceptors and factories'
             );
@@ -172,7 +175,6 @@ class DiCompileCommand extends Command
             $this->cleanupFilesystem(
                 [
                     DirectoryList::CACHE,
-                    DirectoryList::GENERATION,
                     DirectoryList::DI,
                 ]
             );
diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php
index 33f8f763ede..ea56ed13dbd 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php
@@ -56,6 +56,9 @@ class DiCompileMultiTenantCommand extends AbstractSetupCommand
     const SERIALIZER_VALUE_IGBINARY = 'igbinary';
     /**#@- */
 
+    /** Command name */
+    const NAME = 'setup:di:compile-multi-tenant';
+
     /**
      * Object Manager
      *
@@ -155,7 +158,7 @@ class DiCompileMultiTenantCommand extends AbstractSetupCommand
                 'Allows to exclude Paths from compilation (default is #[\\\\/]m1[\\\\/]#i)'
             ),
         ];
-        $this->setName('setup:di:compile-multi-tenant')
+        $this->setName(self::NAME)
             ->setDescription(
                 'Generates all non-existing proxies and factories, and pre-compile class definitions, '
                 . 'inheritance information and plugin definitions'
diff --git a/setup/src/Magento/Setup/Console/CompilerPreparation.php b/setup/src/Magento/Setup/Console/CompilerPreparation.php
new file mode 100644
index 00000000000..457b4f23b37
--- /dev/null
+++ b/setup/src/Magento/Setup/Console/CompilerPreparation.php
@@ -0,0 +1,64 @@
+<?php
+/***
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Console;
+
+
+use Magento\Framework\App\Bootstrap;
+use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Framework\Filesystem\Driver\File;
+use Magento\Setup\Console\Command\DiCompileCommand;
+use Magento\Setup\Console\Command\DiCompileMultiTenantCommand;
+use Magento\Setup\Mvc\Bootstrap\InitParamListener;
+use Symfony\Component\Console\Input\ArgvInput;
+
+class CompilerPreparation
+{
+    /** @var \Zend\ServiceManager\ServiceManager */
+    private $serviceManager;
+
+    /**
+     * @param \Zend\ServiceManager\ServiceManager $serviceManager
+     */
+    public function __construct(\Zend\ServiceManager\ServiceManager $serviceManager)
+    {
+        $this->serviceManager = $serviceManager;
+    }
+
+    /**
+     * Determine whether a CLI command is for compilation, and if so, clear the directory
+     *
+     * @throws \Magento\Framework\Exception\FileSystemException
+     */
+    public function handleCompilerEnvironment()
+    {
+        $input = new ArgvInput();
+        $compilationCommands = [DiCompileCommand::NAME, DiCompileMultiTenantCommand::NAME];
+        $cmdName = $input->getFirstArgument();
+        $isHelpOption = $input->hasParameterOption('--help') || $input->hasParameterOption('-h');
+
+        if (!in_array($cmdName, $compilationCommands) || $isHelpOption) {
+            return;
+        }
+
+        $generationDir = ($cmdName === DiCompileMultiTenantCommand::NAME)
+            ? $input->getParameterOption(DiCompileMultiTenantCommand::INPUT_KEY_GENERATION)
+            : null;
+
+        if (!$generationDir) {
+            $mageInitParams = $this->serviceManager->get(InitParamListener::BOOTSTRAP_PARAM);
+            $mageDirs = isset($mageInitParams[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS])
+                ? $mageInitParams[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS]
+                : [];
+            $generationDir = (new DirectoryList(BP, $mageDirs))->getPath(DirectoryList::GENERATION);
+        }
+
+        $filesystemDriver = new File();
+        if ($filesystemDriver->isExists($generationDir)) {
+            $filesystemDriver->deleteDirectory($generationDir);
+        }
+    }
+}
-- 
GitLab


From 38bcb3c079b709ccce980ee69b3c9ac49ecb3df9 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Thu, 22 Oct 2015 23:03:18 -0500
Subject: [PATCH 19/61] MAGETWO-44470: clear generated files in CLI framework 
 - add unit test coverage  - refactor CompilerPreparation

---
 .../Magento/Framework/Console/Cli.php         |   5 +-
 .../Setup/Console/CompilerPreparation.php     |  30 ++-
 .../Console/Command/DiCompileCommandTest.php  |   1 +
 .../DiCompileMultiTenantCommandTest.php       |  21 ++
 .../Unit/Console/CompilerPreparationTest.php  | 181 ++++++++++++++++++
 5 files changed, 228 insertions(+), 10 deletions(-)
 create mode 100644 setup/src/Magento/Setup/Test/Unit/Console/CompilerPreparationTest.php

diff --git a/lib/internal/Magento/Framework/Console/Cli.php b/lib/internal/Magento/Framework/Console/Cli.php
index 8fb5e79d672..56b792bf85b 100644
--- a/lib/internal/Magento/Framework/Console/Cli.php
+++ b/lib/internal/Magento/Framework/Console/Cli.php
@@ -6,9 +6,11 @@
 
 namespace Magento\Framework\Console;
 
+use Magento\Framework\Filesystem\Driver\File;
 use Symfony\Component\Console\Application as SymfonyApplication;
 use Magento\Framework\App\Bootstrap;
 use Magento\Framework\Shell\ComplexParameter;
+use Symfony\Component\Console\Input\ArgvInput;
 
 /**
  * Magento2 CLI Application. This is the hood for all command line tools supported by Magento.
@@ -37,7 +39,8 @@ class Cli extends SymfonyApplication
          * Temporary workaround until the compiler is able to clear the generation directory. (MAGETWO-44493)
          */
         if (class_exists('Magento\Setup\Console\CompilerPreparation')) {
-            (new \Magento\Setup\Console\CompilerPreparation($this->serviceManager))->handleCompilerEnvironment();
+            (new \Magento\Setup\Console\CompilerPreparation($this->serviceManager, new ArgvInput(), new File()))
+                ->handleCompilerEnvironment();
         }
 
         parent::__construct($name, $version);
diff --git a/setup/src/Magento/Setup/Console/CompilerPreparation.php b/setup/src/Magento/Setup/Console/CompilerPreparation.php
index 457b4f23b37..23e796bfcec 100644
--- a/setup/src/Magento/Setup/Console/CompilerPreparation.php
+++ b/setup/src/Magento/Setup/Console/CompilerPreparation.php
@@ -20,12 +20,26 @@ class CompilerPreparation
     /** @var \Zend\ServiceManager\ServiceManager */
     private $serviceManager;
 
+    /** @var ArgvInput */
+    private $input;
+
+    /** @var File */
+    private $filesystemDriver;
+
     /**
      * @param \Zend\ServiceManager\ServiceManager $serviceManager
+     * @param ArgvInput $input
+     * @param File $filesystemDriver
      */
-    public function __construct(\Zend\ServiceManager\ServiceManager $serviceManager)
+    public function __construct(
+        \Zend\ServiceManager\ServiceManager $serviceManager,
+        \Symfony\Component\Console\Input\ArgvInput $input,
+        \Magento\Framework\Filesystem\Driver\File $filesystemDriver
+    )
     {
-        $this->serviceManager = $serviceManager;
+        $this->serviceManager   = $serviceManager;
+        $this->input            = $input;
+        $this->filesystemDriver = $filesystemDriver;
     }
 
     /**
@@ -35,17 +49,16 @@ class CompilerPreparation
      */
     public function handleCompilerEnvironment()
     {
-        $input = new ArgvInput();
         $compilationCommands = [DiCompileCommand::NAME, DiCompileMultiTenantCommand::NAME];
-        $cmdName = $input->getFirstArgument();
-        $isHelpOption = $input->hasParameterOption('--help') || $input->hasParameterOption('-h');
+        $cmdName = $this->input->getFirstArgument();
+        $isHelpOption = $this->input->hasParameterOption('--help') || $this->input->hasParameterOption('-h');
 
         if (!in_array($cmdName, $compilationCommands) || $isHelpOption) {
             return;
         }
 
         $generationDir = ($cmdName === DiCompileMultiTenantCommand::NAME)
-            ? $input->getParameterOption(DiCompileMultiTenantCommand::INPUT_KEY_GENERATION)
+            ? $this->input->getParameterOption(DiCompileMultiTenantCommand::INPUT_KEY_GENERATION)
             : null;
 
         if (!$generationDir) {
@@ -56,9 +69,8 @@ class CompilerPreparation
             $generationDir = (new DirectoryList(BP, $mageDirs))->getPath(DirectoryList::GENERATION);
         }
 
-        $filesystemDriver = new File();
-        if ($filesystemDriver->isExists($generationDir)) {
-            $filesystemDriver->deleteDirectory($generationDir);
+        if ($this->filesystemDriver->isExists($generationDir)) {
+            $this->filesystemDriver->deleteDirectory($generationDir);
         }
     }
 }
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
index 4230d3a67d8..303e4a80142 100644
--- a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
@@ -149,5 +149,6 @@ class DiCompileCommandTest extends \PHPUnit_Framework_TestCase
             'Generated code and dependency injection configuration successfully.',
             explode(PHP_EOL, $tester->getDisplay())
         );
+        $this->assertSame(DiCompileCommand::NAME, $this->command->getName());
     }
 }
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileMultiTenantCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileMultiTenantCommandTest.php
index 45edf5578c8..c8581808c66 100644
--- a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileMultiTenantCommandTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileMultiTenantCommandTest.php
@@ -6,11 +6,22 @@
 namespace Magento\Setup\Test\Unit\Console\Command;
 
 use Magento\Framework\Component\ComponentRegistrar;
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\Setup\Console\Command\DiCompileMultiTenantCommand;
 use Symfony\Component\Console\Tester\CommandTester;
 
 class DiCompileMultiTenantCommandTest extends \PHPUnit_Framework_TestCase
 {
+    /** @var \Magento\Setup\Console\Command\DiCompileMultiTenantCommand */
+    private $model;
+
+    public function setUp()
+    {
+        $this->model = (new ObjectManager($this))->getObject(
+            '\Magento\Setup\Console\Command\DiCompileMultiTenantCommand'
+        );
+    }
+
     /**
      * @dataProvider validateDataProvider
      * @param array $option
@@ -83,4 +94,14 @@ class DiCompileMultiTenantCommandTest extends \PHPUnit_Framework_TestCase
             ],
         ];
     }
+
+    public function testConfigure()
+    {
+        $methodUnderTest = new \ReflectionMethod($this->model, 'configure');
+        $methodUnderTest->setAccessible(true);
+        $methodUnderTest->invoke($this->model);
+        $this->assertSame(DiCompileMultiTenantCommand::NAME, $this->model->getName());
+        $this->assertNotEmpty($this->model->getDescription());
+        $this->assertCount(6, $this->model->getDefinition()->getOptions());
+    }
 }
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/CompilerPreparationTest.php b/setup/src/Magento/Setup/Test/Unit/Console/CompilerPreparationTest.php
new file mode 100644
index 00000000000..cc46c653e8b
--- /dev/null
+++ b/setup/src/Magento/Setup/Test/Unit/Console/CompilerPreparationTest.php
@@ -0,0 +1,181 @@
+<?php
+/***
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Test\Unit\Console;
+
+
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+use Magento\Setup\Console\Command\DiCompileCommand;
+use Magento\Setup\Console\Command\DiCompileMultiTenantCommand;
+use Magento\Setup\Mvc\Bootstrap\InitParamListener;
+use Symfony\Component\Console\Input\ArgvInput;
+
+class CompilerPreparationTest extends \PHPUnit_Framework_TestCase
+{
+    /** @var \Magento\Setup\Console\CompilerPreparation */
+    private $model;
+
+    /** @var \Zend\ServiceManager\ServiceManager | \PHPUnit_Framework_MockObject_MockObject */
+    private $serviceManagerMock;
+
+    /** @var \Symfony\Component\Console\Input\ArgvInput | \PHPUnit_Framework_MockObject_MockObject */
+    private $inputMock;
+
+    /** @var \Magento\Framework\Filesystem\Driver\File | \PHPUnit_Framework_MockObject_MockObject */
+    private $filesystemDriverMock;
+
+    public function setUp()
+    {
+        $this->serviceManagerMock = $this->getMockBuilder('\Zend\ServiceManager\ServiceManager')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->inputMock = $this->getMockBuilder('\Symfony\Component\Console\Input\ArgvInput')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->filesystemDriverMock = $this->getMockBuilder('\Magento\Framework\Filesystem\Driver\File')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->model = (new ObjectManager($this))->getObject(
+            '\Magento\Setup\Console\CompilerPreparation',
+            [
+                'serviceManager' => $this->serviceManagerMock,
+                'input' => $this->inputMock,
+                'filesystemDriver' => $this->filesystemDriverMock
+            ]
+        );
+    }
+
+    /**
+     * @dataProvider commandNameDataProvider
+     * @param $commandName
+     * @param $isCompileCommand
+     * @param $isHelpOption
+     * @param bool|null $dirExists
+     */
+    public function testClearGenerationDirWhenNeeded($commandName, $isCompileCommand, $isHelpOption, $dirExists = false)
+    {
+        $this->inputMock->expects($this->once())->method('getFirstArgument')->willReturn($commandName);
+        $this->inputMock->expects($this->atLeastOnce())
+            ->method('hasParameterOption')
+            ->with(
+                $this->logicalOr('--help', '-h')
+            )->willReturn($isHelpOption);
+        if ($isCompileCommand && !$isHelpOption) {
+            $this->filesystemDriverMock->expects($this->once())
+                ->method('isExists')
+                ->willReturn($dirExists);
+            $this->filesystemDriverMock->expects($this->exactly((int)$dirExists))->method('deleteDirectory');
+        } else {
+            $this->filesystemDriverMock->expects($this->never())->method('isExists');
+            $this->filesystemDriverMock->expects($this->never())->method('deleteDirectory');
+        }
+        $this->model->handleCompilerEnvironment();
+    }
+
+    public function commandNameDataProvider()
+    {
+        return [
+            'ST compiler, directory exists' => [
+                'commandName' => DiCompileCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => false,
+                'dirExists' => true
+            ],
+            'ST compiler, directory does not exist' => [
+                'commandName' => DiCompileCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => false,
+                'dirExists' => false
+            ],
+            'ST compiler, help option' => [
+                'commandName' => DiCompileCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => true,
+                'dirExists' => false
+            ],
+            'MT compiler, directory exists' => [
+                'commandName' => DiCompileMultiTenantCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => false,
+                'dirExists' => true
+            ],
+            'MT compiler, directory does not exist' => [
+                'commandName' => DiCompileMultiTenantCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => false,
+                'dirExists' => false
+            ],
+            'MT compiler, help option' => [
+                'commandName' => DiCompileMultiTenantCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => true,
+                'dirExists' => true
+            ],
+            'Other command' => [
+                'commandName' => 'not:a:compiler',
+                'isCompileCommand' => false,
+                'isHelpOption' => false,
+            ]
+        ];
+    }
+
+    public function testGenerationDirectoryFromInitParams()
+    {
+        $customGenerationDirectory = '/custom/generated/code/directory';
+        $mageInitParams = ['MAGE_DIRS' => ['generation' => ['path' => $customGenerationDirectory]]];
+
+        $this->inputMock->expects($this->once())
+            ->method('getFirstArgument')
+            ->willReturn(DiCompileMultiTenantCommand::NAME);
+
+        // Filesystem mock
+        $this->filesystemDriverMock->expects($this->once())->method('isExists')->willReturn(true);
+        $this->filesystemDriverMock->expects($this->once())
+            ->method('deleteDirectory')
+            ->with($customGenerationDirectory);
+
+        $this->serviceManagerMock->expects($this->once())
+            ->method('get')
+            ->with(InitParamListener::BOOTSTRAP_PARAM)
+            ->willReturn($mageInitParams);
+        $this->model->handleCompilerEnvironment();
+    }
+
+    /**
+     * @dataProvider compilerCommandDataProvider
+     */
+    public function testGenerationDirectoryFromCliOption($commandName)
+    {
+        $customGenerationDirectory = '/custom/generated/code/directory';
+        $useCliOption = $commandName === DiCompileMultiTenantCommand::NAME;
+
+        $this->inputMock->expects($this->once())
+            ->method('getFirstArgument')
+            ->willReturn($commandName);
+        $this->inputMock->expects($this->exactly((int)$useCliOption))
+            ->method('getParameterOption')
+            ->with(DiCompileMultiTenantCommand::INPUT_KEY_GENERATION)
+            ->willReturn($customGenerationDirectory);
+        // Filesystem mock
+        $directoryArgConstraint = $useCliOption
+            ? $this->equalTo($customGenerationDirectory)
+            : $this->logicalNot($this->equalTo($customGenerationDirectory));
+        $this->filesystemDriverMock->expects($this->once())->method('isExists')->willReturn(true);
+        $this->filesystemDriverMock->expects($this->once())
+            ->method('deleteDirectory')
+            ->with($directoryArgConstraint);
+
+        $this->model->handleCompilerEnvironment();
+    }
+
+    public function compilerCommandDataProvider()
+    {
+        return [
+            [DiCompileCommand::NAME],
+            [DiCompileMultiTenantCommand::NAME]
+        ];
+    }
+}
-- 
GitLab


From 2db7eeec7eb92ec05062420ad99eea6e5b2bfd02 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Fri, 23 Oct 2015 12:49:56 +0300
Subject: [PATCH 20/61] MAGETWO-39795: Check data for import product does not
 work MAGETWO-43900: Imported products with broken images link don't appear on
 front MAGETWO-43901: The "Imported resource (image) could not be downloaded"
 message appears when user tries to import products using "Replace" behavior
 MAGETWO-44238: Categories imported in a comma-separated format are not
 created properly MAGETWO-42245: _media_is_disabled is not exported

---
 .../Model/Import/Product.php                  | 34 ++++++----
 .../Model/Import/Product/Validator.php        | 63 +++++++++++++------
 .../Model/Import/ProductTest.php              | 52 +++++++--------
 .../_files/products_multiple_stores.csv       | 10 +--
 ...oducts_with_invalid_multiselect_values.csv |  6 +-
 5 files changed, 96 insertions(+), 69 deletions(-)

diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index 31bd9b0fbb2..465e0bd865c 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -1596,7 +1596,9 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                         }
                     }
                     foreach ($storeIds as $storeId) {
-                        $attributes[$attrTable][$rowSku][$attrId][$storeId] = $attrValue;
+                        if (!isset($attributes[$attrTable][$rowSku][$attrId][$storeId])) {
+                            $attributes[$attrTable][$rowSku][$attrId][$storeId] = $attrValue;
+                        }
                     }
                     // restore 'backend_model' to avoid 'default' setting
                     $attribute->setBackendModel($backModel);
@@ -1819,12 +1821,14 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         );
         $this->_connection->insertOnDuplicate($mediaGalleryTableName, $multiInsertData, []);
         $multiInsertData = [];
-        $dataForSkinnyTable = [];
-        $newMediaValues = $this->_connection->fetchAssoc(
-            $this->_connection->select()->from($mediaGalleryTableName, ['value_id', 'value'])
-                ->where('value IN (?)', $imageNames)
-                ->where('value_id NOT IN (?)', array_keys($oldMediaValues))
-        );
+        $newMediaSelect = $this->_connection->select()
+            ->from($mediaGalleryTableName, ['value_id', 'value'])
+            ->where('value IN (?)', $imageNames);
+        if (array_keys($oldMediaValues)) {
+            $newMediaSelect->where('value_id NOT IN (?)', array_keys($oldMediaValues));
+        }
+
+        $newMediaValues = $this->_connection->fetchAssoc($newMediaSelect);
         foreach ($mediaGalleryData as $productSku => $mediaGalleryRows) {
             foreach ($mediaGalleryRows as $insertValue) {
                 foreach ($newMediaValues as $value_id => $values) {
@@ -1959,12 +1963,14 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                 } else {
                     $row['qty'] = 0;
                 }
-                $stockData[] = $row;
+                if (!isset($stockData[$rowData[self::COL_SKU]])) {
+                    $stockData[$rowData[self::COL_SKU]] = $row;
+                }
             }
 
             // Insert rows
             if (!empty($stockData)) {
-                $this->_connection->insertOnDuplicate($entityTable, $stockData);
+                $this->_connection->insertOnDuplicate($entityTable, array_values($stockData));
             }
 
             if ($productIdsToReindex) {
@@ -2247,7 +2253,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     private function _customFieldsMapping($rowData)
     {
         foreach ($this->_fieldsMap as $systemFieldName => $fileFieldName) {
-            if (isset($rowData[$fileFieldName])) {
+            if (array_key_exists($fileFieldName, $rowData)) {
                 $rowData[$systemFieldName] = $rowData[$fileFieldName];
             }
         }
@@ -2255,10 +2261,12 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         $rowData = $this->_parseAdditionalAttributes($rowData);
 
         $rowData = $this->_setStockUseConfigFieldsValues($rowData);
-        if (isset($rowData['status'])) {
-            if (($rowData['status'] == \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED) || $rowData['status'] == 'yes') {
+        if (array_key_exists('status', $rowData)
+            && $rowData['status'] != \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED
+        ) {
+            if ($rowData['status'] == 'yes') {
                 $rowData['status'] = \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED;
-            } else {
+            } elseif (!empty($rowData['status']) || $this->getRowScope($rowData) == self::SCOPE_DEFAULT) {
                 $rowData['status'] = \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED;
             }
         }
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php
index 89230e1da34..26d5493409b 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php
@@ -93,6 +93,20 @@ class Validator extends AbstractValidator implements RowValidatorInterface
         return $valid;
     }
 
+    public function isRequiredAttributeValid($attrCode, array $attributeParams, array $rowData)
+    {
+        $doCheck = false;
+        if ($attrCode == Product::COL_SKU) {
+            $doCheck = true;
+        } elseif ($attributeParams['is_required'] && $this->getRowScope($rowData) == Product::SCOPE_DEFAULT
+            && $this->context->getBehavior() != \Magento\ImportExport\Model\Import::BEHAVIOR_DELETE
+        ) {
+            $doCheck = true;
+        }
+
+        return $doCheck ? isset($rowData[$attrCode]) && strlen(trim($rowData[$attrCode])) : true;
+    }
+
     /**
      * @param string $attrCode
      * @param array $attrParams
@@ -107,25 +121,20 @@ class Validator extends AbstractValidator implements RowValidatorInterface
         if (!empty($attrParams['apply_to']) && !in_array($rowData['product_type'], $attrParams['apply_to'])) {
             return true;
         }
-        if ($attrCode == Product::COL_SKU || $attrParams['is_required']
-            && ($this->context->getBehavior() == \Magento\ImportExport\Model\Import::BEHAVIOR_REPLACE
-                || ($this->context->getBehavior() == \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND
-                    && !isset($this->context->getOldSku()[$rowData[$attrCode]])))
-        ) {
-            if (!isset($rowData[$attrCode]) || !strlen(trim($rowData[$attrCode]))) {
-                $valid = false;
-                $this->_addMessages(
-                    [
-                        sprintf(
-                            $this->context->retrieveMessageTemplate(
-                                RowValidatorInterface::ERROR_VALUE_IS_REQUIRED
-                            ),
-                            $attrCode
-                        )
-                    ]
-                );
-                return $valid;
-            }
+
+        if (!$this->isRequiredAttributeValid($attrCode, $attrParams, $rowData)) {
+            $valid = false;
+            $this->_addMessages(
+                [
+                    sprintf(
+                        $this->context->retrieveMessageTemplate(
+                            RowValidatorInterface::ERROR_VALUE_IS_REQUIRED
+                        ),
+                        $attrCode
+                    )
+                ]
+            );
+            return $valid;
         }
 
         if (!strlen(trim($rowData[$attrCode]))) {
@@ -146,7 +155,7 @@ class Validator extends AbstractValidator implements RowValidatorInterface
                 $values = explode(Product::PSEUDO_MULTI_LINE_SEPARATOR, $rowData[$attrCode]);
                 $valid = true;
                 foreach ($values as $value) {
-                    $valid = $valid || isset($attrParams['options'][strtolower($value)]);
+                    $valid = $valid && isset($attrParams['options'][strtolower($value)]);
                 }
                 if (!$valid) {
                     $this->_addMessages(
@@ -227,6 +236,20 @@ class Validator extends AbstractValidator implements RowValidatorInterface
         return $returnValue;
     }
 
+    /**
+     * Obtain scope of the row from row data.
+     *
+     * @param array $rowData
+     * @return int
+     */
+    public function getRowScope(array $rowData)
+    {
+        if (empty($rowData[Product::COL_STORE])) {
+            return Product::SCOPE_DEFAULT;
+        }
+        return Product::SCOPE_STORE;
+    }
+
     /**
      * @param \Magento\CatalogImportExport\Model\Import\Product $context
      * @return $this
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
index 73df8b7a14c..aa5101c8700 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
@@ -645,14 +645,13 @@ class ProductTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * Tests that an import will still work with an invalid import line and
-     * SKU data.
+     * Tests that no products imported if source file contains errors
      *
      * In this case, the second product data has an invalid attribute set.
      *
      * @magentoDbIsolation enabled
      */
-    public function testInvalidSkuLink()
+    public function _testInvalidSkuLink()
     {
         $this->_stockStateProvider->method('verifyStock')->willReturn(true);
 
@@ -664,12 +663,19 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
         $source = new \Magento\ImportExport\Model\Import\Source\Csv($pathToFile, $directory);
         $errors = $this->_model->setParameters(
-            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+            [
+                'behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
+                'entity' => 'catalog_product'
+            ]
         )->setSource(
             $source
         )->validateData();
 
         $this->assertTrue($errors->getErrorsCount() == 1);
+        $this->assertEquals(
+            'Invalid value for Product Template column (set doesn\'t exist?)',
+            $errors->getErrorByRowNumber(1)[0]->getErrorMessage()
+        );
         $this->_model->importData();
 
         $productCollection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
@@ -681,16 +687,9 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         foreach ($productCollection as $product) {
             $products[$product->getSku()] = $product;
         }
-        $this->assertArrayHasKey("simple1", $products, "Simple Product should have been imported");
-        $this->assertArrayHasKey("simple3", $products, "Simple Product 3 should have been imported");
+        $this->assertArrayNotHasKey("simple1", $products, "Simple Product should not have been imported");
+        $this->assertArrayNotHasKey("simple3", $products, "Simple Product 3 should not have been imported");
         $this->assertArrayNotHasKey("simple2", $products, "Simple Product2 should not have been imported");
-
-        $upsellProductIds = $products["simple3"]->getUpSellProductIds();
-        $this->assertEquals(
-            0,
-            count($upsellProductIds),
-            "There should not be any linked upsell SKUs. The original  product SKU linked does not import cleanly."
-        );
     }
 
     /**
@@ -699,29 +698,26 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      */
     public function _testValidateInvalidMultiselectValues()
     {
-        // import data from CSV file
-        $pathToFile = __DIR__ . '/_files/products_with_invalid_multiselect_values.csv';
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Framework\Filesystem'
         );
         $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
-        $source = new \Magento\ImportExport\Model\Import\Source\Csv($pathToFile, $directory);
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv(
+            __DIR__ . '/_files/products_with_invalid_multiselect_values.csv',
+            $directory
+        );
         $errors = $this->_model->setParameters(
             ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
         )->setSource(
             $source
         )->validateData();
 
-        $this->assertTrue($errors->getErrorsCount() == 0);
-
-        $errors = $this->_model->getErrorMessages();
-        $expectedErrors = [
-            "Please correct the value for 'multiselect_attribute'." => [2],
-        ];
-        foreach ($expectedErrors as $message => $invalidRows) {
-            $this->assertArrayHasKey($message, $errors);
-            $this->assertEquals($invalidRows, $errors[$message]);
-        }
+        $this->assertTrue($errors->getErrorsCount() == 1);
+        $this->assertEquals(
+            "Value for 'multiselect_attribute' attribute contains incorrect value, "
+            ."see acceptable values on settings specified for Admin",
+            $errors->getErrorByRowNumber(1)[0]->getErrorMessage()
+        );
     }
 
     /**
@@ -731,7 +727,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/ConfigurableProduct/_files/configurable_attribute.php
      * @magentoAppIsolation enabled
      */
-    public function _testProductsWithMultipleStores()
+    public function testProductsWithMultipleStores()
     {
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 
@@ -762,7 +758,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
 
         /** @var \Magento\Catalog\Model\Product $simpleProduct */
         $simpleProduct = $objectManager->create('Magento\Catalog\Model\Product');
-        $id = $simpleProduct->getIdBySku('Configurable 03-option_0');
+        $id = $simpleProduct->getIdBySku('Configurable 03-Option 1');
         $simpleProduct->load($id);
         $this->assertEquals('Option Label', $simpleProduct->getAttributeText('attribute_with_option'));
     }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv
index 10299936a27..1772f62d709 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv
@@ -1,5 +1,5 @@
-sku,store_view_code,attribute_set_code,product_type,categories,product_websites,test_configurable,cost,country_of_manufacture,created_at,custom_design,custom_design_from,custom_design_to,custom_layout_update,description,gallery,gift_message_available,gift_wrapping_available,gift_wrapping_price,has_options,image,image_label,is_returnable,manufacturer,meta_description,meta_keyword,meta_title,minimal_price,msrp,msrp_display_actual_price_type,msrp_enabled,name,news_from_date,news_to_date,options_container,page_layout,price,quantity_and_stock_status,related_tgtr_position_behavior,related_tgtr_position_limit,required_options,short_description,attribute_with_option,small_image,small_image_label,special_from_date,special_price,special_to_date,product_online,tax_class_name,thumbnail,thumbnail_label,updated_at,upsell_tgtr_position_behavior,upsell_tgtr_position_limit,url_key,visibility,weight,qty,min_qty,use_config_min_qty,is_qty_decimal,backorders,use_config_backorders,min_sale_qty,use_config_min_sale_qty,max_sale_qty,use_config_max_sale_qty,is_in_stock,notify_stock_qty,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,_related_sku,_related_position,_crosssell_sku,_crosssell_position,_upsell_sku,_upsell_position,configurable_variations,configurable_variation_prices,configurable_variation_labels
-Configurable 03-option_0,,Default,virtual,Default Category/Category 1/Category 1.1,base,Option 1,,,2014-06-13 07:34:02,,,,,,,,,,0,,,Use config,,Configurable 03 ,Configurable 03,Configurable 03,,,Use config,Use config,Configurable 03-option_0,,,Block after Info Column,,10,In Stock,,,0,,Option Label,,,,,,1,Taxable Goods,,,2014-06-13 07:35:59,,,configurable-03-option11,Search,,99999,0,1,0,0,1,1,1,0,1,1,,1,1,1,1,0,1,0,0,,,,,,,,,
-Configurable 03-option_0,fixturestore,Default,virtual,Default Category/Category 1/Category 1.1,base,Option 1,,,2014-06-13 07:34:02,,,,,,,,,,,,,,,,,,,,,,Configurable 03-option_0,,,Block after Info Column,,10,,,,0,,Option Label,,,,,,,,,,,,,,Search,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Configurable 03-option_1,,Default,virtual,Default Category/Category 1/Category 1.1,base,Option 2,,,2014-06-13 07:34:05,,,,,,,,,,0,,,Use config,,Configurable 03 ,Configurable 03,Configurable 03,,,Use config,Use config,Configurable 03-option_1,,,Block after Info Column,,10,In Stock,,,0,,,,,,,,1,Taxable Goods,,,2014-06-13 07:34:05,,,configurable-03-option12,Search,,99999,0,1,0,0,1,1,1,0,1,1,,1,1,1,1,0,1,0,0,,,,,,,,,
-Configurable 03,,Default,configurable,Default Category/Category 1/Category 1.1,base,,,,2014-06-13 07:34:07,,,,,,,,,,1,,,Use config,,Configurable 03 ,Configurable 03,Configurable 03,,,Use config,Use config,Configurable 03,,,Block after Info Column,,10,In Stock,,,1,,,,,,,,1,Taxable Goods,,,2014-06-13 07:36:32,,,Configurable-03-11,"Catalog, Search",,0,0,1,0,0,1,1,1,0,1,1,,1,1,1,1,0,1,0,0,,,,,,,"sku=Configurable 03-option_0,test_configurable=Option 1,display=1|sku=Configurable 03-option_1,test_configurable=Option 2,display=1","name=test_configurable,value=Option 1,price=1|name=test_configurable,value=Option 2,price=2",
+sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,hide_from_product_page,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,configurable_variations,configurable_variation_labels,associated_skus
+"Configurable 03-Option 1",,Default,virtual,"Default Category/Category 1/Category 1.1",base,"Configurable 03-Option 1",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-1,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-22 05:41:46","2015-10-22 05:51:11",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 1",99998.0000,0.0000,1,0,0,1,1.0000,1,10000.0000,1,1,1.0000,1,1,1,1,0.0000,0,0,0,1,,,,,,,,,,,,,,
+"Configurable 03-Option 1",fixturestore,Default,virtual,,,"Configurable 03-Option 1 fixturestore",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"Configurable 03-Option 2",,Default,virtual,"Default Category/Category 1/Category 1.1",base,"Configurable 03-Option 2",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-2,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-22 05:41:47","2015-10-22 05:41:47",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 2",99999.0000,0.0000,1,0,0,1,1.0000,1,0.0000,1,1,,1,1,1,1,1.0000,0,0,0,1,,,,,,,,,,,,,,
+"Configurable 03",,Default,configurable,"Default Category/Category 1/Category 1.1",base,"Configurable 03",,,,1,"Taxable Goods","Catalog, Search",10.0000,,,,configurable-03,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-22 05:41:47","2015-10-22 05:41:47",,,"Block after Info Column",,,,,,,,,,,,,"has_options=1,quantity_and_stock_status=In Stock,required_options=1",0.0000,0.0000,1,0,0,1,1.0000,1,0.0000,1,1,,1,0,0,1,1.0000,0,0,0,1,,,,,,,,,,,,"sku=Configurable 03-Option 1,test_configurable=Option 1|sku=Configurable 03-Option 2,test_configurable=Option 2",test_configurable=test_configurable,
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_with_invalid_multiselect_values.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_with_invalid_multiselect_values.csv
index b6da8449c9c..a7cc848ea4b 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_with_invalid_multiselect_values.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_with_invalid_multiselect_values.csv
@@ -1,3 +1,3 @@
-sku,store_view_code,product_type,name,price,multiselect_attribute
-simple_ms_1,,simple,"With Multiselect 1",10,Option 1
-simple_ms_2,,simple,"With Multiselect 2",10,"Option 5,Option 2,Option 3"
+sku,store_view_code,product_type,name,price,additional_attributes
+simple_ms_1,,simple,"With Multiselect 1",10,"multiselect_attribute=Option 1"
+simple_ms_2,,simple,"With Multiselect 2",10,"multiselect_attribute=Option 5|Option 2|Option 3"
-- 
GitLab


From 50c5a5b6af501e6caba65dc59a61eb52effefbc1 Mon Sep 17 00:00:00 2001
From: Olga Lytvynenko <olytvynenko@ebay.com>
Date: Fri, 23 Oct 2015 17:23:51 +0300
Subject: [PATCH 21/61] MAGETWO-44353: [IE9]Gallery thumbnail navigation arrow
 displayed particularly inside thumbnails block

---
 lib/web/mage/gallery/gallery.less | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less
index f1a68415517..d9b22b2d0b4 100644
--- a/lib/web/mage/gallery/gallery.less
+++ b/lib/web/mage/gallery/gallery.less
@@ -1137,20 +1137,28 @@
         z-index: @z-index-10;
         cursor: pointer;
         .fotorama__thumb__arr {
-            width: 100%;
             .fotorama-abs-center();
+            width: 100%;
+
+            .ie9 & {
+                margin: (-@fotorama-thumb-arrow/2) 0 0 (-@fotorama-thumb-arrow/2);
+            }
         }
     }
     .fotorama__thumb__arr--left {
         .fotorama-arrow-gradient(left);
+        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=1 );
         left: 0;
+
         .fotorama__thumb__arr {
             background-position: (-@fotorama-thumb-arrow) (-@fotorama-thumb-arrow);
         }
     }
     .fotorama__thumb__arr--right {
         .fotorama-arrow-gradient(right);
+        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1 );
         right: 0;
+
         .fotorama__thumb__arr {
             background-position: (-@fotorama-thumb-arrow*2) (-@fotorama-thumb-arrow);
         }
-- 
GitLab


From e2eda477ba1138bbe73df57a231f9ee2f909fa65 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Fri, 23 Oct 2015 18:17:37 +0300
Subject: [PATCH 22/61] MAGETWO-39795: Check data for import product does not
 work MAGETWO-43900: Imported products with broken images link don't appear on
 front MAGETWO-43901: The "Imported resource (image) could not be downloaded"
 message appears when user tries to import products using "Replace" behavior
 MAGETWO-44238: Categories imported in a comma-separated format are not
 created properly MAGETWO-42245: _media_is_disabled is not exported
 MAGETWO-44407: CLONE - Product export and re-import with different store view
 level data causes data corruption

---
 .../Model/Import/Product.php                  |   9 ++
 .../Magento/TestFramework/Application.php     |   6 +-
 .../Model/Import/ProductTest.php              | 109 +++++++-----------
 .../_files/products_multiple_stores.csv       |   8 +-
 .../_files/products_to_import_with_qty.csv    |   4 +-
 5 files changed, 61 insertions(+), 75 deletions(-)

diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index 465e0bd865c..faaed58e2f7 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -1739,6 +1739,15 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         return $this->_fileUploader;
     }
 
+    /**
+     * @return Uploader
+     * @throws \Magento\Framework\Exception\LocalizedException
+     */
+    public function getUploader()
+    {
+        return $this->_getUploader();
+    }
+
     /**
      * Uploading files into the "catalog/product" media folder.
      * Return a new file name if the same file is already exists.
diff --git a/dev/tests/integration/framework/Magento/TestFramework/Application.php b/dev/tests/integration/framework/Magento/TestFramework/Application.php
index 523c4de04e4..966451fb358 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/Application.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/Application.php
@@ -441,6 +441,7 @@ class Application
         $dirs = \Magento\Framework\App\Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS;
         $this->_ensureDirExists($this->installDir);
         $this->_ensureDirExists($this->_configDir);
+        $this->_ensureDirExists($this->_initParams[$dirs][DirectoryList::PUB][DirectoryList::PATH]);
         $this->_ensureDirExists($this->_initParams[$dirs][DirectoryList::MEDIA][DirectoryList::PATH]);
         $this->_ensureDirExists($this->_initParams[$dirs][DirectoryList::STATIC_VIEW][DirectoryList::PATH]);
         $this->_ensureDirExists($this->_initParams[$dirs][DirectoryList::VAR_DIR][DirectoryList::PATH]);
@@ -624,14 +625,15 @@ class Application
         $customDirs = [
             DirectoryList::CONFIG => [$path => "{$this->installDir}/etc"],
             DirectoryList::VAR_DIR => [$path => $var],
-            DirectoryList::MEDIA => [$path => "{$this->installDir}/media"],
-            DirectoryList::STATIC_VIEW => [$path => "{$this->installDir}/pub_static"],
+            DirectoryList::MEDIA => [$path => "{$this->installDir}/pub/media"],
+            DirectoryList::STATIC_VIEW => [$path => "{$this->installDir}/pub/static"],
             DirectoryList::GENERATION => [$path => "{$var}/generation"],
             DirectoryList::CACHE => [$path => "{$var}/cache"],
             DirectoryList::LOG => [$path => "{$var}/log"],
             DirectoryList::SESSION => [$path => "{$var}/session"],
             DirectoryList::TMP => [$path => "{$var}/tmp"],
             DirectoryList::UPLOAD => [$path => "{$var}/upload"],
+            DirectoryList::PUB => [$path => "{$this->installDir}/pub"],
         ];
         return $customDirs;
     }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
index aa5101c8700..a140d2aefcf 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
@@ -14,8 +14,8 @@
  */
 namespace Magento\CatalogImportExport\Model\Import;
 
+use Magento\Framework\App\Bootstrap;
 use Magento\Framework\App\Filesystem\DirectoryList;
-use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface;
 
 /**
  * Class ProductTest
@@ -47,27 +47,8 @@ class ProductTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->_uploaderFactory = $this->getMock(
-            'Magento\CatalogImportExport\Model\Import\UploaderFactory',
-            ['create'],
-            [],
-            '',
-            false
-        );
-
-        $this->_stockStateProvider = $this->getMock(
-            'Magento\CatalogInventory\Model\StockStateProvider',
-            ['verifyStock'],
-            [],
-            '',
-            false
-        );
         $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
-            'Magento\CatalogImportExport\Model\Import\Product',
-            [
-                'uploaderFactory' => $this->_uploaderFactory,
-                'stockStateProvider' => $this->_stockStateProvider
-            ]
+            'Magento\CatalogImportExport\Model\Import\Product'
         );
     }
 
@@ -96,7 +77,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function _testSaveProductsVisibility()
+    public function testSaveProductsVisibility()
     {
         $existingProductIds = [10, 11, 12];
         $productsBeforeImport = [];
@@ -147,7 +128,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function _testSaveStockItemQty()
+    public function testSaveStockItemQty()
     {
         $existingProductIds = [10, 11, 12];
         $stockItems = [];
@@ -201,7 +182,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function _testStockState()
+    public function testStockState()
     {
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Framework\Filesystem');
@@ -218,30 +199,21 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         )->validateData();
 
         $this->assertTrue($errors->getErrorsCount() == 0);
-
-        $this->_stockStateProvider->expects($this->atLeastOnce())->method('verifyStock')->willReturn(true);
         $this->_model->importData();
     }
 
     /**
      * Tests adding of custom options with existing and new product
      *
-     * @param $behavior
-     *
      * @magentoDataFixture Magento/Catalog/_files/product_simple.php
      * @dataProvider getBehaviorDataProvider
-     * @param string $behavior
      * @param string $importFile
      * @param string $sku
      * @magentoAppIsolation enabled
      */
-    public function _testSaveCustomOptions($behavior, $importFile, $sku)
+    public function testSaveCustomOptions($importFile, $sku)
     {
-        $this->_stockStateProvider->method('verifyStock')->willReturn(true);
-
-        // import data from CSV file
         $pathToFile = __DIR__ . '/_files/' . $importFile;
-
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Framework\Filesystem');
         $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
@@ -308,12 +280,10 @@ class ProductTest extends \PHPUnit_Framework_TestCase
     {
         return [
             'Append behavior with existing product' => [
-                '$behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
                 '$importFile' => 'product_with_custom_options.csv',
                 '$sku' => 'simple',
             ],
             'Append behavior with new product' => [
-                '$behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
                 '$importFile' => 'product_with_custom_options_new.csv',
                 '$sku' => 'simple_new',
             ]
@@ -326,10 +296,8 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function _testSaveDatetimeAttribute()
+    public function testSaveDatetimeAttribute()
     {
-        $this->_stockStateProvider->method('verifyStock')->willReturn(true);
-
         $existingProductIds = [10, 11, 12];
         $productsBeforeImport = [];
         foreach ($existingProductIds as $productId) {
@@ -543,31 +511,39 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      *
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function _testSaveMediaImage()
+    public function testSaveMediaImage()
     {
-        $this->markTestSkipped();
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
-        /** @var \Magento\ImportExport\Model\Import $importModel */
-        $importModel = $objectManager->get('\Magento\ImportExport\Model\Import');
-        $readFactory = $objectManager->get('\Magento\Framework\Filesystem\Directory\ReadFactory');
-        $source = $objectManager->get('\Magento\ImportExport\Model\Import\Source\CsvFactory')->create(
-            [
-                'file' => '_files/import_media.csv',
-                'directory' => $readFactory->create(__DIR__)
-            ]
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Framework\Filesystem');
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv(
+            __DIR__ . '/_files/import_media.csv',
+            $directory
         );
-        $importModel->setData(
+        $this->_model->setParameters(
             [
-                'entity' => 'catalog_product',
                 'behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
-                'import_images_file_dir' => 'dev/tests/integration/tmp/sandbox-0-f23d6c7dcc8c9a5dc09f50ba2f96aed5/media/import',
-                \Magento\ImportExport\Model\Import::FIELD_NAME_VALIDATION_STRATEGY =>
-                    ProcessingErrorAggregatorInterface::VALIDATION_STRATEGY_SKIP_ERRORS
+                'entity' => 'catalog_product',
+                'import_images_file_dir' => 'pub/media/import'
             ]
         );
+        $appParams = \Magento\TestFramework\Helper\Bootstrap::getInstance()->getBootstrap()->getApplication()->getInitParams()[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS];
+        $uploader = $this->_model->getUploader();
 
-        $this->assertTrue($importModel->validateSource($source));
-        $importModel->importSource();
+        $destDir = $directory->getRelativePath($appParams[DirectoryList::MEDIA][DirectoryList::PATH] . '/catalog/product');
+        $tmpDir = $directory->getRelativePath($appParams[DirectoryList::MEDIA][DirectoryList::PATH] . '/import');
+
+        $directory->create($destDir);
+        $this->assertTrue($uploader->setDestDir($destDir));
+        $this->assertTrue($uploader->setTmpDir($tmpDir));
+        $errors = $this->_model->setSource(
+            $source
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 0);
+        $this->_model->importData();
 
         $resource = $objectManager->get('Magento\Catalog\Model\ResourceModel\Product');
         $productId = $resource->getIdBySku('simple_new');
@@ -581,8 +557,8 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $items = $gallery->getItems();
         $this->assertCount(1, $items);
         $item = array_pop($items);
-        $this->assertInstanceOf('Magento\Framework\Object', $item);
-        $this->assertEquals('magento_image.jpg', $item->getFile());
+        $this->assertInstanceOf('Magento\Framework\DataObject', $item);
+        $this->assertEquals('/m/a/magento_image.jpg', $item->getFile());
         $this->assertEquals('Image Label', $item->getLabel());
     }
 
@@ -651,10 +627,8 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      *
      * @magentoDbIsolation enabled
      */
-    public function _testInvalidSkuLink()
+    public function testInvalidSkuLink()
     {
-        $this->_stockStateProvider->method('verifyStock')->willReturn(true);
-
         // import data from CSV file
         $pathToFile = __DIR__ . '/_files/products_to_import_invalid_attribute_set.csv';
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
@@ -696,7 +670,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/products_with_multiselect_attribute.php
      * @magentoAppIsolation enabled
      */
-    public function _testValidateInvalidMultiselectValues()
+    public function testValidateInvalidMultiselectValues()
     {
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Framework\Filesystem'
@@ -766,7 +740,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
     /**
      * @magentoDbIsolation enabled
      */
-    public function _testProductWithInvalidWeight()
+    public function testProductWithInvalidWeight()
     {
         // import data from CSV file
         $pathToFile = __DIR__ . '/_files/product_to_import_invalid_weight.csv';
@@ -782,9 +756,10 @@ class ProductTest extends \PHPUnit_Framework_TestCase
             ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND]
         )->validateData();
 
-        $expectedErrors = ["Product weight is invalid" => [2]];
-
-        $this->assertFalse($errors->getErrorsCount() == 1);
-        $this->assertEquals($expectedErrors, $errors->getAllErrors());
+        $this->assertTrue($errors->getErrorsCount() == 1);
+        $this->assertEquals(
+            "Value for 'weight' attribute contains incorrect value",
+            $errors->getErrorByRowNumber(1)[0]->getErrorMessage()
+        );
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv
index 1772f62d709..d3e6af92cba 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv
@@ -1,5 +1,5 @@
 sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,hide_from_product_page,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,configurable_variations,configurable_variation_labels,associated_skus
-"Configurable 03-Option 1",,Default,virtual,"Default Category/Category 1/Category 1.1",base,"Configurable 03-Option 1",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-1,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-22 05:41:46","2015-10-22 05:51:11",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 1",99998.0000,0.0000,1,0,0,1,1.0000,1,10000.0000,1,1,1.0000,1,1,1,1,0.0000,0,0,0,1,,,,,,,,,,,,,,
-"Configurable 03-Option 1",fixturestore,Default,virtual,,,"Configurable 03-Option 1 fixturestore",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-"Configurable 03-Option 2",,Default,virtual,"Default Category/Category 1/Category 1.1",base,"Configurable 03-Option 2",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-2,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-22 05:41:47","2015-10-22 05:41:47",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 2",99999.0000,0.0000,1,0,0,1,1.0000,1,0.0000,1,1,,1,1,1,1,1.0000,0,0,0,1,,,,,,,,,,,,,,
-"Configurable 03",,Default,configurable,"Default Category/Category 1/Category 1.1",base,"Configurable 03",,,,1,"Taxable Goods","Catalog, Search",10.0000,,,,configurable-03,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-22 05:41:47","2015-10-22 05:41:47",,,"Block after Info Column",,,,,,,,,,,,,"has_options=1,quantity_and_stock_status=In Stock,required_options=1",0.0000,0.0000,1,0,0,1,1.0000,1,0.0000,1,1,,1,0,0,1,1.0000,0,0,0,1,,,,,,,,,,,,"sku=Configurable 03-Option 1,test_configurable=Option 1|sku=Configurable 03-Option 2,test_configurable=Option 2",test_configurable=test_configurable,
+"Configurable 03-Option 1",,Default,simple,"Default Category/Category 1/Category 1.1",base,"Configurable 03-Option 1",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-1,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-23 00:35:03","2015-10-23 01:00:25",,,"Block after Info Column",,,,,,,,,,,"Use config",,"attribute_with_option=Option Label,has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 1",99999.0000,0.0000,0,0,0,1,1.0000,0,0.0000,0,1,,1,1,0,0,1.0000,0,0,0,1,,,,,,,,,,,,,,
+"Configurable 03-Option 1",fixturestore,Default,"simple",,base,"Configurable 03-Option 1 fixturestore",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"Configurable 03-Option 2",,Default,simple,"Default Category/Category 1/Category 1.1",base,"Configurable 03-Option 2",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-2,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-23 00:35:03","2015-10-23 00:35:03",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 2",99999.0000,0.0000,0,0,0,1,1.0000,0,0.0000,0,1,,1,1,0,0,1.0000,0,0,0,1,,,,,,,,,,,,,,
+"Configurable 03",,Default,configurable,"Default Category/Category 1/Category 1.1",base,"Configurable 03",,,,1,"Taxable Goods","Catalog, Search",10.0000,,,,configurable-03,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-23 00:35:03","2015-10-23 00:35:03",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=1,quantity_and_stock_status=In Stock,required_options=0",0.0000,0.0000,0,0,0,1,1.0000,0,0.0000,0,1,,1,0,0,0,1.0000,0,0,0,1,,,,,,,,,,,,"sku=Configurable 03-Option 1,test_configurable=Option 1|sku=Configurable 03-Option 2,test_configurable=Option 2",test_configurable=test_configurable,
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_qty.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_qty.csv
index 7872a167277..3abf9cecb6f 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_qty.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_qty.csv
@@ -1,2 +1,2 @@
-sku,store_view_code,name,price,qty,product_type,attribute_set_code,manage_stock
-simple1,,"simple 1",25,0.0000,simple,Default,1
+sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,associated_skus
+simple_new,,Default,simple,,base,New Product,,,,1,Taxable Goods,"Catalog, Search",10,,,,new-product,New Product,New Product,New Product ,,,,,,,10/20/15 07:05,10/20/15 07:05,,,Block after Info Column,,,,,,,,,,,,,"has_options=1,quantity_and_stock_status=In Stock,required_options=1",100,0,1,0,0,1,1,1,10000,1,1,1,1,1,0,1,1,0,0,0,1,,,,,,,,,,,,,
-- 
GitLab


From b3061c49fc5ed0a2f305d80e1d430783ea80d97a Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 14:51:28 -0500
Subject: [PATCH 23/61] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Framework/Interception/Config/Config.php  |   2 +-
 .../Test/Unit/Config/ConfigTest.php           |  13 +-
 .../Console/Command/DiCompileCommand.php      |  14 ++-
 .../Operation/ApplicationCodeGenerator.php    |  35 +++++-
 .../Di/App/Task/Operation/Interception.php    |   7 +-
 .../Di/App/Task/Operation/ProxyGenerator.php  |  75 ++++++++++++
 .../Task/Operation/RepositoryGenerator.php    |  10 +-
 .../Module/Di/App/Task/OperationFactory.php   |   8 +-
 .../Console/Command/DiCompileCommandTest.php  |   2 +-
 .../App/Task/ApplicationCodeGeneratorTest.php | 111 ++++++++++++++++++
 .../Module/Di/App/Task/ProxyGeneratorTest.php |  94 +++++++++++++++
 11 files changed, 358 insertions(+), 13 deletions(-)
 create mode 100644 setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
 create mode 100644 setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ApplicationCodeGeneratorTest.php
 create mode 100644 setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php

diff --git a/lib/internal/Magento/Framework/Interception/Config/Config.php b/lib/internal/Magento/Framework/Interception/Config/Config.php
index 7c9ede12daf..43be5547c46 100644
--- a/lib/internal/Magento/Framework/Interception/Config/Config.php
+++ b/lib/internal/Magento/Framework/Interception/Config/Config.php
@@ -63,7 +63,7 @@ class Config implements \Magento\Framework\Interception\ConfigInterface
      *
      * @var array
      */
-    protected $_serviceClassTypes = ['Proxy', 'Interceptor'];
+    protected $_serviceClassTypes = ['Interceptor'];
 
     /**
      * @var \Magento\Framework\Config\ScopeListInterface
diff --git a/lib/internal/Magento/Framework/Interception/Test/Unit/Config/ConfigTest.php b/lib/internal/Magento/Framework/Interception/Test/Unit/Config/ConfigTest.php
index 6c127589056..b2bcba673e2 100644
--- a/lib/internal/Magento/Framework/Interception/Test/Unit/Config/ConfigTest.php
+++ b/lib/internal/Magento/Framework/Interception/Test/Unit/Config/ConfigTest.php
@@ -102,6 +102,10 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
                         'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Enhanced',
                         'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Enhanced',
                     ],
+                    [
+                        'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy',
+                        'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy',
+                    ],
                     [
                         'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemProxy',
                         'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemProxy',
@@ -151,6 +155,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\Item' => true,
             'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\Item\Enhanced' => true,
             'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Enhanced' => true,
+            'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy' => true,
             'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemProxy' => false,
             'virtual_custom_item' => true,
         ];
@@ -195,7 +200,13 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             [
                 // the following model has only inherited plugins
                 true,
-                'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Enhanced',
+                'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy',
+                ['Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer'],
+            ],
+            [
+                // the following model has only inherited plugins
+                true,
+                'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy',
                 ['Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer'],
             ],
             [
diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
index 8138a0db280..8540a636d63 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
@@ -294,6 +294,10 @@ class DiCompileCommand extends Command
         array $dataAttributesIncludePattern
     ) {
         $operations = [
+            OperationFactory::PROXY_GENERATOR => [
+                'paths' => $compiledPathsList['application'],
+                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
+            ],
             OperationFactory::REPOSITORY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
                 'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
@@ -303,9 +307,13 @@ class DiCompileCommand extends Command
                 'filePatterns' => $dataAttributesIncludePattern
             ],
             OperationFactory::APPLICATION_CODE_GENERATOR => [
-                $compiledPathsList['application'],
-                $compiledPathsList['library'],
-                $compiledPathsList['generated_helpers'],
+                'paths' => [
+                    $compiledPathsList['application'],
+                    $compiledPathsList['library'],
+                    $compiledPathsList['generated_helpers'],
+                ],
+                'filePatterns' => ['php' => '/\.php$/'],
+                'excludePatterns' => ['/\/Test\//']
             ],
             OperationFactory::INTERCEPTION => [
                 'intercepted_paths' => [
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
index 3b412d15cc1..21254457ddf 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
@@ -5,8 +5,12 @@
  */
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
+use Magento\Framework\App\Bootstrap;
+use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
+use Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner;
+use Magento\Setup\Module\Di\Code\Scanner\PhpScanner;
 
 class ApplicationCodeGenerator implements OperationInterface
 {
@@ -20,16 +24,30 @@ class ApplicationCodeGenerator implements OperationInterface
      */
     private $classesScanner;
 
+    /**
+     * @var PhpScanner
+     */
+    private $phpScanner;
+
+    /**
+     * @var DirectoryScanner
+     */
+    private $directoryScanner;
+
     /**
      * @param ClassesScanner $classesScanner
      * @param array $data
      */
     public function __construct(
         ClassesScanner $classesScanner,
+        PhpScanner $phpScanner,
+        DirectoryScanner $directoryScanner,
         $data = []
     ) {
         $this->data = $data;
         $this->classesScanner = $classesScanner;
+        $this->phpScanner = $phpScanner;
+        $this->directoryScanner = $directoryScanner;
     }
 
     /**
@@ -37,16 +55,27 @@ class ApplicationCodeGenerator implements OperationInterface
      */
     public function doOperation()
     {
-        if (empty($this->data)) {
+        if (array_diff(array_keys($this->data), ['filePatterns', 'paths', 'excludePatterns'])
+            !== array_diff(['filePatterns', 'paths', 'excludePatterns'], array_keys($this->data))) {
             return;
         }
 
-        foreach ($this->data as $paths) {
+        foreach ($this->data['paths'] as $paths) {
             if (!is_array($paths)) {
                 $paths = (array)$paths;
             }
+            $files = [];
             foreach ($paths as $path) {
-                $this->classesScanner->getList($path);
+                try {
+                    $this->classesScanner->getList($path);
+                    $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns']));
+                } catch(FileSystemException $e) {
+                    // skip
+                }
+            }
+            $entities = $this->phpScanner->collectEntities($files['php']);
+            foreach ($entities as $entityName) {
+                class_exists($entityName);
             }
         }
     }
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
index 0c48cd4f519..269e65bb48c 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
+use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder;
 use Magento\Framework\Interception\Code\Generator\Interceptor;
@@ -80,7 +81,11 @@ class Interception implements OperationInterface
                 $paths = (array)$paths;
             }
             foreach ($paths as $path) {
-                $classesList = array_merge($classesList, $this->classesScanner->getList($path));
+                try {
+                    $classesList = array_merge($classesList, $this->classesScanner->getList($path));
+                } catch(FileSystemException $e) {
+                    // skip
+                }
             }
         }
 
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
new file mode 100644
index 00000000000..38751954c9e
--- /dev/null
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Module\Di\App\Task\Operation;
+
+use Magento\Setup\Module\Di\App\Task\OperationInterface;
+use Magento\Setup\Module\Di\Code\Scanner;
+
+class ProxyGenerator implements OperationInterface
+{
+    /**
+     * @var Scanner\DirectoryScanner
+     */
+    private $directoryScanner;
+
+    /**
+     * @var Scanner\XmlScanner
+     */
+    private $proxyScanner;
+
+    /**
+     * @var array
+     */
+    private $data;
+
+    /**
+     * @param Scanner\DirectoryScanner $directoryScanner
+     * @param Scanner\XmlScanner $proxyScanner
+     * @param array $data
+     */
+    public function __construct(
+        Scanner\DirectoryScanner $directoryScanner,
+        Scanner\XmlScanner $proxyScanner,
+        $data = []
+    ) {
+        $this->directoryScanner = $directoryScanner;
+        $this->proxyScanner = $proxyScanner;
+        $this->data = $data;
+    }
+
+    /**
+     * Processes operation task
+     *
+     * @return void
+     */
+    public function doOperation()
+    {
+        if (array_diff(array_keys($this->data), ['filePatterns', 'paths'])
+            !== array_diff(['filePatterns', 'paths'], array_keys($this->data))) {
+            return;
+        }
+
+        $files = [];
+        foreach ($this->data['paths'] as $path) {
+            $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns']));
+        }
+        $proxies = $this->proxyScanner->collectEntities($files['di']);
+        foreach ($proxies as $entityName) {
+            class_exists($entityName);
+        }
+    }
+
+    /**
+     * Returns operation name
+     *
+     * @return string
+     */
+    public function getName()
+    {
+        return 'Proxies code generation';
+    }
+}
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
index cf3c779a3f7..d72b4c932a7 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
@@ -6,6 +6,7 @@
 
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
+use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Scanner;
 use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
@@ -62,9 +63,14 @@ class RepositoryGenerator implements OperationInterface
             return;
         }
 
-        foreach ($this->data['paths'] as $path) {
-            $this->classesScanner->getList($path);
+        try {
+            foreach ($this->data['paths'] as $path) {
+                $this->classesScanner->getList($path);
+            }
+        } catch(FileSystemException $e) {
+            // skip
         }
+
         $this->repositoryScanner->setUseAutoload(false);
         $files = [];
         foreach ($this->data['paths'] as $path) {
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php b/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php
index dd6bfa1f5ff..cb5c930f6e4 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php
@@ -32,6 +32,11 @@ class OperationFactory
      */
     const REPOSITORY_GENERATOR = 'repository_generator';
 
+    /**
+     * Proxy generator
+     */
+    const PROXY_GENERATOR = 'proxy_generator';
+
     /**
      * Service data attributes generator
      */
@@ -53,7 +58,8 @@ class OperationFactory
         self::APPLICATION_CODE_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\ApplicationCodeGenerator',
         self::INTERCEPTION => 'Magento\Setup\Module\Di\App\Task\Operation\Interception',
         self::INTERCEPTION_CACHE => 'Magento\Setup\Module\Di\App\Task\Operation\InterceptionCache',
-        self::REPOSITORY_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\RepositoryGenerator'
+        self::REPOSITORY_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\RepositoryGenerator',
+        self::PROXY_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\ProxyGenerator',
     ];
 
     /**
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
index 303e4a80142..2cbf5cc3f8e 100644
--- a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
@@ -141,7 +141,7 @@ class DiCompileCommandTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with('Symfony\Component\Console\Helper\ProgressBar')
             ->willReturn($progressBar);
-        $this->manager->expects($this->exactly(6))->method('addOperation');
+        $this->manager->expects($this->exactly(7))->method('addOperation');
         $this->manager->expects($this->once())->method('process');
         $tester = new CommandTester($this->command);
         $tester->execute([]);
diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ApplicationCodeGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ApplicationCodeGeneratorTest.php
new file mode 100644
index 00000000000..0a988bb3a51
--- /dev/null
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ApplicationCodeGeneratorTest.php
@@ -0,0 +1,111 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Test\Unit\Module\Di\App\Task;
+
+use Magento\Setup\Module\Di\App\Task\Operation\ApplicationCodeGenerator;
+use Magento\Setup\Module\Di\Code\Scanner;
+use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
+
+class ApplicationCodeGeneratorTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var Scanner\DirectoryScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $directoryScannerMock;
+
+    /**
+     * @var Scanner\PhpScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $phpScannerMock;
+
+    /**
+     * @var ClassesScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $classesScannerMock;
+
+    protected function setUp()
+    {
+        $this->directoryScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->phpScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\PhpScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->classesScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Reader\ClassesScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+    }
+
+    /**
+     * @param array $data
+     *
+     * @dataProvider doOperationWrongDataDataProvider
+     */
+    public function testDoOperationWrongData($data)
+    {
+        $model = new ApplicationCodeGenerator(
+            $this->classesScannerMock,
+            $this->phpScannerMock,
+            $this->directoryScannerMock,
+            $data
+        );
+
+        $this->classesScannerMock->expects($this->never())
+            ->method('getList');
+        $this->directoryScannerMock->expects($this->never())
+            ->method('scan');
+        $this->phpScannerMock->expects($this->never())
+            ->method('collectEntities');
+
+        $this->assertEmpty($model->doOperation());
+    }
+
+    /**
+     * @return array
+     */
+    public function doOperationWrongDataDataProvider()
+    {
+        return [
+            [[]],
+            [['filePatterns' => ['php' => '*.php']]],
+            [['path' => 'path']],
+        ];
+    }
+
+    public function testDoOperation()
+    {
+        $data = [
+            'paths' => ['path/to/app'],
+            'filePatterns' => ['php' => '.php'],
+            'excludePatterns' => ['/\/Test\//']
+        ];
+        $files = ['php' => []];
+        $model = new ApplicationCodeGenerator(
+            $this->classesScannerMock,
+            $this->phpScannerMock,
+            $this->directoryScannerMock,
+            $data
+        );
+
+        $this->classesScannerMock->expects($this->once())
+            ->method('getList')
+            ->with($data['paths'][0]);
+        $this->directoryScannerMock->expects($this->once())
+            ->method('scan')
+            ->with(
+                $data['paths'][0],
+                $data['filePatterns'],
+                $data['excludePatterns']
+            )->willReturn($files);
+        $this->phpScannerMock->expects($this->once())
+            ->method('collectEntities')
+            ->with($files['php'])
+            ->willReturn([]);
+
+        $this->assertEmpty($model->doOperation());
+    }
+}
diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
new file mode 100644
index 00000000000..9b78e237db3
--- /dev/null
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Test\Unit\Module\Di\App\Task;
+
+use Magento\Setup\Module\Di\App\Task\Operation\ProxyGenerator;
+use Magento\Setup\Module\Di\Code\Scanner;
+use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
+
+class ProxyGeneratorTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var Scanner\DirectoryScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $directoryScannerMock;
+
+    /**
+     * @var Scanner\XmlScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $proxyScannerMock;
+
+    protected function setUp()
+    {
+        $this->directoryScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->proxyScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\XmlScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+    }
+
+    /**
+     * @param array $data
+     *
+     * @dataProvider doOperationWrongDataDataProvider
+     */
+    public function testDoOperationWrongData($data)
+    {
+        $model = new ProxyGenerator(
+            $this->directoryScannerMock,
+            $this->proxyScannerMock,
+            $data
+        );
+
+        $this->directoryScannerMock->expects($this->never())
+            ->method('scan');
+        $this->proxyScannerMock->expects($this->never())
+            ->method('collectEntities');
+
+        $this->assertEmpty($model->doOperation());
+    }
+
+    /**
+     * @return array
+     */
+    public function doOperationWrongDataDataProvider()
+    {
+        return [
+            [[]],
+            [['filePatterns' => ['php' => '*.php']]],
+            [['path' => 'path']],
+        ];
+    }
+
+    public function testDoOperation()
+    {
+        $data = [
+            'paths' => ['path/to/app'],
+            'filePatterns' => ['di' => 'di.xml'],
+        ];
+        $files = ['di' => []];
+        $model = new ProxyGenerator(
+            $this->directoryScannerMock,
+            $this->proxyScannerMock,
+            $data
+        );
+
+        $this->directoryScannerMock->expects($this->once())
+            ->method('scan')
+            ->with(
+                $data['paths'][0],
+                $data['filePatterns']
+            )->willReturn($files);
+        $this->proxyScannerMock->expects($this->once())
+            ->method('collectEntities')
+            ->with($files['di'])
+            ->willReturn([]);
+
+        $this->assertEmpty($model->doOperation());
+    }
+}
-- 
GitLab


From c068c8e5a86f9ee75b48decbc458a7cd1965482b Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Fri, 23 Oct 2015 14:54:38 -0500
Subject: [PATCH 24/61] MAGETWO-44189: Does not work to switch the language in
 the admin area  - apply new  style to  the legal section

---
 .../Backend/view/adminhtml/layout/default.xml | 20 +++++++++++--------
 .../adminhtml/templates/page/copyright.phtml  |  6 ++----
 .../web/css/source/module/_footer.less        | 10 +++-------
 3 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/app/code/Magento/Backend/view/adminhtml/layout/default.xml b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
index 56c7c5d553a..216934514bc 100644
--- a/app/code/Magento/Backend/view/adminhtml/layout/default.xml
+++ b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
@@ -53,14 +53,18 @@
             <block class="Magento\Framework\View\Element\Template" name="page.actions.toolbar" template="Magento_Backend::pageactions.phtml" after="-"/>
         </referenceContainer>
         <referenceContainer name="footer">
-            <container name="legal" htmlTag="div" htmlClass="footer-legal col-m-12">
-                <block class="Magento\Backend\Block\Page\Footer" name="version" as="version" />
-                <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright" />
-                <block class="Magento\Framework\View\Element\Template" name="report" as="report" template="Magento_Backend::page/report.phtml">
-                    <arguments>
-                        <argument name="bugreport_url" xsi:type="string">https://github.com/magento/magento2/issues</argument>
-                    </arguments>
-                </block>
+            <container name="legal" htmlTag="div" htmlClass="footer-legal">
+                <container name="legal.copyright" htmlTag="p" htmlClass="copyright col-m-6">
+                    <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright" />
+                </container>
+                <container name="legal.system" htmlTag="div" htmlClass="footer-legal-system col-m-6">
+                    <block class="Magento\Backend\Block\Page\Footer" name="version" as="version" />
+                    <block class="Magento\Framework\View\Element\Template" name="report" as="report" template="Magento_Backend::page/report.phtml">
+                        <arguments>
+                            <argument name="bugreport_url" xsi:type="string">https://github.com/magento/magento2/issues</argument>
+                        </arguments>
+                    </block>
+                </container>
             </container>
         </referenceContainer>
         <referenceContainer name="backend.page">
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml
index 5612ab20661..41781c9d128 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml
@@ -7,7 +7,5 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<p class="copyright">
-    <a class="link-copyright" href="http://magento.com" target="_blank" title="<?php /* @escapeNotVerified */ echo __('Magento') ?>"></a>
-    <?php /* @escapeNotVerified */ echo __('Copyright &copy; %1 Magento. All rights reserved.', date('Y')) ?>
-</p>
+<a class="link-copyright" href="http://magento.com" target="_blank" title="<?php /* @escapeNotVerified */ echo __('Magento') ?>"></a>
+<?php /* @escapeNotVerified */ echo __('Copyright &copy; %1 Magento. All rights reserved.', date('Y')) ?>
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
index 65e24732ac4..7752b6d2fed 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
@@ -53,6 +53,7 @@
 
 //  Copyright
 .copyright {
+    text-align: left;
     margin-bottom: -.2rem;
     position: relative;
     .link-copyright {
@@ -85,15 +86,10 @@
 
 .footer-legal {
     padding-top: 1rem;
-    text-align: right;
 }
 
-//  Locale switcher
-.locale-switcher {
-    .label {
-        display: block;
-        margin-bottom: 1rem;
-    }
+.footer-legal-system {
+    text-align: right;
 }
 
 //
-- 
GitLab


From bbb9f6c131afcc3ae2f84f6e774b36df3acf7bd4 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 15:10:56 -0500
Subject: [PATCH 25/61] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Theme/Model/Design/Backend/Theme.php       |  1 +
 .../Unit/Model/Design/Backend/ThemeTest.php    | 18 +++++++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index d58e9b38242..108e82528a0 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -68,6 +68,7 @@ class Theme extends Value
         parent::afterSave();
         if ($this->isValueChanged()) {
             $this->_cacheManager->clean();
+            $this->_eventManager->dispatch('adminhtml_cache_flush_system');
         }
         return $this;
     }
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index 4082cac2232..e394482d748 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -32,6 +32,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     protected $cacheTypeListMock;
 
+    /**
+     * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $eventManagerMock;
+
     /**
      * @var \Magento\Framework\App\CacheInterface | \PHPUnit_Framework_MockObject_MockObject
      */
@@ -48,9 +53,15 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
         $this->cacheManagerMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
             ->disableOriginalConstructor()
             ->getMock();
+        $this->eventManagerMock = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
         $this->context = $objectManager->getObject(
             'Magento\Framework\Model\Context',
-            ['cacheManager' => $this->cacheManagerMock]
+            [
+                'cacheManager' => $this->cacheManagerMock,
+                'eventDispatcher' => $this->eventManagerMock,
+            ]
         );
 
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
@@ -100,6 +111,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
         $this->configMock->expects($this->any())
             ->method('getValue')
             ->willReturn($oldValue);
+        if ($callNumber) {
+            $this->eventManagerMock->expects($this->at(3))
+                ->method('dispatch')
+                ->with('adminhtml_cache_flush_system');
+        }
         $this->model->setValue('some_value');
         $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
     }
-- 
GitLab


From 9dcfff78d4d8cc0f6fc54c33e5aa497835cd41ca Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Fri, 23 Oct 2015 15:09:49 -0500
Subject: [PATCH 26/61] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

---
 .../Adminhtml/Notification/AjaxMarkAsRead.php |  2 +-
 .../Adminhtml/Notification/Index.php          |  2 +-
 .../Adminhtml/Notification/MarkAsRead.php     |  2 +-
 .../Adminhtml/Notification/MassMarkAsRead.php |  2 +-
 .../Adminhtml/Notification/MassRemove.php     |  2 +-
 .../Adminhtml/Notification/Remove.php         |  2 +-
 .../Adminhtml/System/Message/ListAction.php   |  2 +-
 .../Controller/Adminhtml/Export/GetFilter.php |  2 +-
 .../Authorizenet/Directpost/Payment/Place.php |  2 +-
 .../Directpost/Payment/Redirect.php           |  2 +-
 .../Directpost/Payment/ReturnQuote.php        |  2 +-
 .../Directpost/Payment/BackendResponse.php    |  2 +-
 .../Controller/Directpost/Payment/Place.php   |  2 +-
 .../Directpost/Payment/Redirect.php           |  2 +-
 .../Directpost/Payment/Response.php           |  2 +-
 .../Directpost/Payment/ReturnQuote.php        |  2 +-
 .../Directpost/Payment/PlaceTest.php          |  4 ++--
 .../Magento/Backend/App/AbstractAction.php    |  6 +++---
 .../Controller/Adminhtml/Ajax/Translate.php   |  2 +-
 .../Adminhtml/Auth/DeniedIframe.php           |  2 +-
 .../Controller/Adminhtml/Auth/DeniedJson.php  |  2 +-
 .../Controller/Adminhtml/Auth/Login.php       |  2 +-
 .../Controller/Adminhtml/Auth/Logout.php      |  2 +-
 .../Adminhtml/BackendApp/Redirect.php         |  2 +-
 .../Adminhtml/Cache/CleanImages.php           |  2 +-
 .../Controller/Adminhtml/Cache/CleanMedia.php |  2 +-
 .../Adminhtml/Cache/CleanStaticFiles.php      |  2 +-
 .../Controller/Adminhtml/Cache/FlushAll.php   |  2 +-
 .../Adminhtml/Cache/FlushSystem.php           |  2 +-
 .../Controller/Adminhtml/Cache/Index.php      |  2 +-
 .../Adminhtml/Cache/MassDisable.php           |  2 +-
 .../Controller/Adminhtml/Cache/MassEnable.php |  2 +-
 .../Adminhtml/Cache/MassRefresh.php           |  2 +-
 .../Adminhtml/Dashboard/AjaxBlock.php         |  2 +-
 .../Adminhtml/Dashboard/CustomersMost.php     |  2 +-
 .../Adminhtml/Dashboard/CustomersNewest.php   |  2 +-
 .../Controller/Adminhtml/Dashboard/Index.php  |  2 +-
 .../Adminhtml/Dashboard/ProductsViewed.php    |  2 +-
 .../Adminhtml/Dashboard/RefreshStatistics.php |  2 +-
 .../Controller/Adminhtml/Dashboard/Tunnel.php |  2 +-
 .../Backend/Controller/Adminhtml/Denied.php   |  2 +-
 .../Adminhtml/Index/ChangeLocale.php          |  2 +-
 .../Adminhtml/Index/GlobalSearch.php          |  2 +-
 .../Controller/Adminhtml/Index/Index.php      |  2 +-
 .../Controller/Adminhtml/Noroute/Index.php    |  2 +-
 .../Adminhtml/System/Account/Index.php        |  2 +-
 .../Adminhtml/System/Account/Save.php         |  2 +-
 .../Adminhtml/System/Design/Delete.php        |  2 +-
 .../Adminhtml/System/Design/Edit.php          |  2 +-
 .../Adminhtml/System/Design/Grid.php          |  2 +-
 .../Adminhtml/System/Design/Index.php         |  2 +-
 .../Adminhtml/System/Design/NewAction.php     |  2 +-
 .../Adminhtml/System/Design/Save.php          |  2 +-
 .../Controller/Adminhtml/System/Index.php     |  2 +-
 .../Controller/Adminhtml/System/SetStore.php  |  2 +-
 .../Adminhtml/System/Store/DeleteGroup.php    |  2 +-
 .../System/Store/DeleteGroupPost.php          |  2 +-
 .../Adminhtml/System/Store/DeleteStore.php    |  2 +-
 .../System/Store/DeleteStorePost.php          |  2 +-
 .../Adminhtml/System/Store/DeleteWebsite.php  |  2 +-
 .../System/Store/DeleteWebsitePost.php        |  2 +-
 .../Adminhtml/System/Store/EditGroup.php      |  2 +-
 .../Adminhtml/System/Store/EditStore.php      |  2 +-
 .../Adminhtml/System/Store/EditWebsite.php    |  2 +-
 .../Adminhtml/System/Store/Index.php          |  2 +-
 .../Adminhtml/System/Store/NewGroup.php       |  2 +-
 .../Adminhtml/System/Store/NewStore.php       |  2 +-
 .../Adminhtml/System/Store/NewWebsite.php     |  2 +-
 .../Adminhtml/System/Store/Save.php           |  2 +-
 .../Test/Unit/App/Action/Stub/ActionStub.php  |  2 +-
 .../Adminhtml/Cache/CleanStaticFilesTest.php  |  2 +-
 .../Dashboard/RefreshStatisticsTest.php       |  2 +-
 .../Adminhtml/Dashboard/TunnelTest.php        |  6 +++---
 .../Adminhtml/System/Account/SaveTest.php     |  2 +-
 .../Controller/Adminhtml/Index/Create.php     |  2 +-
 .../Controller/Adminhtml/Index/Download.php   |  2 +-
 .../Controller/Adminhtml/Index/Grid.php       |  2 +-
 .../Controller/Adminhtml/Index/Index.php      |  2 +-
 .../Controller/Adminhtml/Index/MassDelete.php |  2 +-
 .../Controller/Adminhtml/Index/Rollback.php   |  2 +-
 .../Adminhtml/Index/DownloadTest.php          |  8 ++++----
 .../Controller/Creditcard/AjaxSave.php        |  2 +-
 .../Controller/Creditcard/Delete.php          |  2 +-
 .../Controller/Creditcard/DeleteConfirm.php   |  2 +-
 .../Braintree/Controller/Creditcard/Edit.php  |  2 +-
 .../Controller/Creditcard/Generate.php        |  2 +-
 .../Braintree/Controller/Creditcard/Index.php |  2 +-
 .../Controller/Creditcard/NewCard.php         |  2 +-
 .../Braintree/Controller/Creditcard/Save.php  |  2 +-
 .../Braintree/Controller/MyCreditCards.php    |  4 ++--
 .../Magento/Braintree/Controller/PayPal.php   |  4 ++--
 .../Controller/PayPal/GetButtonData.php       |  2 +-
 .../Controller/PayPal/PlaceOrder.php          |  2 +-
 .../Braintree/Controller/PayPal/Review.php    |  2 +-
 .../Controller/PayPal/SaveShippingMethod.php  |  2 +-
 .../Controller/PayPal/GetButtonDataTest.php   |  4 ++--
 .../Unit/Controller/PayPal/PlaceOrderTest.php |  4 ++--
 .../Unit/Controller/PayPal/ReviewTest.php     | 14 ++++++-------
 .../PayPal/SaveShippingMethodTest.php         |  4 ++--
 .../Test/Unit/Controller/PayPalTest.php       |  4 ++--
 .../Controller/Stub/MyCreditCardsStub.php     |  2 +-
 .../Test/Unit/Controller/Stub/PayPalStub.php  |  2 +-
 .../Adminhtml/Bundle/Product/Edit/Form.php    |  2 +-
 .../Adminhtml/Bundle/Selection/Grid.php       |  2 +-
 .../Adminhtml/Bundle/Selection/Search.php     |  2 +-
 .../Bundle/Product/Edit/FormTest.php          |  2 +-
 .../Adminhtml/Bundle/Selection/GridTest.php   |  4 ++--
 .../Adminhtml/Bundle/Selection/SearchTest.php |  2 +-
 .../Controller/Adminhtml/Refresh/Refresh.php  |  2 +-
 .../Captcha/Controller/Refresh/Index.php      |  2 +-
 .../Unit/Controller/Refresh/IndexTest.php     |  2 +-
 .../Controller/Adminhtml/Category/Add.php     |  2 +-
 .../Adminhtml/Category/CategoriesJson.php     |  2 +-
 .../Controller/Adminhtml/Category/Delete.php  |  2 +-
 .../Controller/Adminhtml/Category/Edit.php    |  2 +-
 .../Controller/Adminhtml/Category/Grid.php    |  2 +-
 .../Controller/Adminhtml/Category/Index.php   |  2 +-
 .../Controller/Adminhtml/Category/Move.php    |  2 +-
 .../Adminhtml/Category/RefreshPath.php        |  2 +-
 .../Controller/Adminhtml/Category/Save.php    |  2 +-
 .../Adminhtml/Category/SuggestCategories.php  |  2 +-
 .../Controller/Adminhtml/Category/Tree.php    |  2 +-
 .../Category/Widget/CategoriesJson.php        |  2 +-
 .../Adminhtml/Category/Widget/Chooser.php     |  2 +-
 .../Product/Action/Attribute/Edit.php         |  2 +-
 .../Product/Action/Attribute/Save.php         |  2 +-
 .../Product/Action/Attribute/Validate.php     |  2 +-
 .../Product/AddAttributeToTemplate.php        |  2 +-
 .../Adminhtml/Product/AlertsPriceGrid.php     |  2 +-
 .../Adminhtml/Product/AlertsStockGrid.php     |  2 +-
 .../Adminhtml/Product/Attribute.php           |  4 ++--
 .../Adminhtml/Product/Attribute/Delete.php    |  2 +-
 .../Adminhtml/Product/Attribute/Edit.php      |  2 +-
 .../Adminhtml/Product/Attribute/Index.php     |  2 +-
 .../Adminhtml/Product/Attribute/NewAction.php |  2 +-
 .../Adminhtml/Product/Attribute/Save.php      |  2 +-
 .../Adminhtml/Product/Attribute/Validate.php  |  2 +-
 .../Adminhtml/Product/Categories.php          |  2 +-
 .../Adminhtml/Product/Crosssell.php           |  2 +-
 .../Adminhtml/Product/CrosssellGrid.php       |  2 +-
 .../Adminhtml/Product/CustomOptions.php       |  2 +-
 .../Adminhtml/Product/Datafeeds/Index.php     |  2 +-
 .../Adminhtml/Product/Duplicate.php           |  2 +-
 .../Controller/Adminhtml/Product/Edit.php     |  2 +-
 .../Adminhtml/Product/Gallery/Upload.php      |  2 +-
 .../Controller/Adminhtml/Product/Grid.php     |  2 +-
 .../Controller/Adminhtml/Product/GridOnly.php |  2 +-
 .../Adminhtml/Product/Group/Save.php          |  2 +-
 .../Controller/Adminhtml/Product/Index.php    |  2 +-
 .../Adminhtml/Product/MassDelete.php          |  2 +-
 .../Adminhtml/Product/MassStatus.php          |  2 +-
 .../Adminhtml/Product/NewAction.php           |  2 +-
 .../Controller/Adminhtml/Product/Options.php  |  2 +-
 .../Adminhtml/Product/OptionsImportGrid.php   |  2 +-
 .../Controller/Adminhtml/Product/Related.php  |  2 +-
 .../Controller/Adminhtml/Product/Save.php     |  2 +-
 .../Controller/Adminhtml/Product/Set/Add.php  |  2 +-
 .../Adminhtml/Product/Set/Delete.php          |  2 +-
 .../Controller/Adminhtml/Product/Set/Edit.php |  2 +-
 .../Adminhtml/Product/Set/Index.php           |  2 +-
 .../Controller/Adminhtml/Product/Set/Save.php |  2 +-
 .../Adminhtml/Product/Set/SetGrid.php         |  2 +-
 .../Adminhtml/Product/ShowUpdateResult.php    |  2 +-
 .../Adminhtml/Product/SuggestAttributes.php   |  2 +-
 .../Product/SuggestProductTemplates.php       |  2 +-
 .../Controller/Adminhtml/Product/Upsell.php   |  2 +-
 .../Adminhtml/Product/UpsellGrid.php          |  2 +-
 .../Controller/Adminhtml/Product/Validate.php |  2 +-
 .../Adminhtml/Product/Widget/Chooser.php      |  2 +-
 .../Controller/Adminhtml/Product/Wysiwyg.php  |  2 +-
 .../Catalog/Controller/Category/View.php      |  2 +-
 .../Catalog/Controller/Index/Index.php        |  2 +-
 .../Controller/Product/Compare/Add.php        |  2 +-
 .../Controller/Product/Compare/Clear.php      |  2 +-
 .../Controller/Product/Compare/Index.php      |  2 +-
 .../Controller/Product/Compare/Remove.php     |  2 +-
 .../Catalog/Controller/Product/Gallery.php    |  2 +-
 .../Catalog/Controller/Product/View.php       |  2 +-
 .../Adminhtml/Category/DeleteTest.php         |  4 ++--
 .../Adminhtml/Category/SaveTest.php           |  2 +-
 .../Category/Widget/CategoriesJsonTest.php    |  2 +-
 .../Adminhtml/Category/Widget/ChooserTest.php |  2 +-
 .../Product/Action/Attribute/SaveTest.php     |  2 +-
 .../Adminhtml/Product/Attribute/EditTest.php  |  4 ++--
 .../Adminhtml/Product/MassStatusTest.php      |  2 +-
 .../Adminhtml/Product/NewActionTest.php       |  4 ++--
 .../Controller/Adminhtml/Product/SaveTest.php |  2 +-
 .../Product/ShowUpdateResultTest.php          |  2 +-
 .../Adminhtml/Product/ValidateTest.php        |  4 ++--
 .../Unit/Controller/Category/ViewTest.php     |  2 +-
 .../Controller/Product/Compare/IndexTest.php  |  4 ++--
 .../Adminhtml/Promo/Catalog/ApplyRules.php    |  2 +-
 .../Adminhtml/Promo/Catalog/Chooser.php       |  2 +-
 .../Adminhtml/Promo/Catalog/Delete.php        |  2 +-
 .../Adminhtml/Promo/Catalog/Edit.php          |  2 +-
 .../Adminhtml/Promo/Catalog/Index.php         |  2 +-
 .../Adminhtml/Promo/Catalog/NewAction.php     |  2 +-
 .../Adminhtml/Promo/Catalog/NewActionHtml.php |  2 +-
 .../Promo/Catalog/NewConditionHtml.php        |  2 +-
 .../Adminhtml/Promo/Catalog/Save.php          |  2 +-
 .../Controller/Adminhtml/Promo/Index.php      |  2 +-
 .../Adminhtml/Promo/Widget/CategoriesJson.php |  2 +-
 .../Adminhtml/Promo/Widget/Chooser.php        |  2 +-
 .../Controller/Advanced/Index.php             |  2 +-
 .../Controller/Advanced/Result.php            |  2 +-
 .../CatalogSearch/Controller/Result/Index.php |  2 +-
 .../Unit/Controller/Advanced/ResultTest.php   |  2 +-
 .../Adminhtml/Product/Widget/Conditions.php   |  2 +-
 .../Product/Widget/ConditionsTest.php         |  2 +-
 .../Checkout/Controller/Account/Create.php    |  2 +-
 .../Magento/Checkout/Controller/Cart/Add.php  |  2 +-
 .../Checkout/Controller/Cart/Addgroup.php     |  2 +-
 .../Checkout/Controller/Cart/Configure.php    |  2 +-
 .../Checkout/Controller/Cart/CouponPost.php   |  2 +-
 .../Checkout/Controller/Cart/Delete.php       |  2 +-
 .../Checkout/Controller/Cart/EstimatePost.php |  2 +-
 .../Controller/Cart/EstimateUpdatePost.php    |  2 +-
 .../Checkout/Controller/Cart/Index.php        |  2 +-
 .../Controller/Cart/UpdateItemOptions.php     |  2 +-
 .../Checkout/Controller/Cart/UpdatePost.php   |  2 +-
 .../Checkout/Controller/Index/Index.php       |  2 +-
 .../Checkout/Controller/Noroute/Index.php     |  2 +-
 .../Magento/Checkout/Controller/Onepage.php   |  4 ++--
 .../Checkout/Controller/Onepage/Failure.php   |  2 +-
 .../Checkout/Controller/Onepage/SaveOrder.php |  2 +-
 .../Checkout/Controller/Onepage/Success.php   |  2 +-
 .../Controller/ShippingRates/Index.php        |  2 +-
 .../Controller/Sidebar/RemoveItem.php         |  2 +-
 .../Controller/Sidebar/UpdateItemQty.php      |  2 +-
 .../Unit/Controller/Account/CreateTest.php    |  4 ++--
 .../Unit/Controller/Cart/ConfigureTest.php    |  4 ++--
 .../Unit/Controller/Cart/CouponPostTest.php   | 10 +++++-----
 .../Test/Unit/Controller/Cart/IndexTest.php   |  2 +-
 .../Test/Unit/Controller/Index/IndexTest.php  |  6 +++---
 .../Test/Unit/Controller/OnepageTest.php      |  2 +-
 .../Controller/Sidebar/RemoveItemTest.php     |  6 +++---
 .../Controller/Sidebar/UpdateItemQtyTest.php  |  6 +++---
 .../Test/Unit/Controller/Stub/OnepageStub.php |  2 +-
 .../Controller/Adminhtml/Agreement/Delete.php |  2 +-
 .../Controller/Adminhtml/Agreement/Edit.php   |  2 +-
 .../Controller/Adminhtml/Agreement/Index.php  |  2 +-
 .../Adminhtml/Agreement/NewAction.php         |  2 +-
 .../Controller/Adminhtml/Agreement/Save.php   |  2 +-
 .../Cms/Controller/Adminhtml/Block/Delete.php |  2 +-
 .../Cms/Controller/Adminhtml/Block/Edit.php   |  2 +-
 .../Cms/Controller/Adminhtml/Block/Index.php  |  2 +-
 .../Controller/Adminhtml/Block/InlineEdit.php |  2 +-
 .../Controller/Adminhtml/Block/MassDelete.php |  2 +-
 .../Controller/Adminhtml/Block/NewAction.php  |  2 +-
 .../Cms/Controller/Adminhtml/Block/Save.php   |  2 +-
 .../Adminhtml/Block/Widget/Chooser.php        |  2 +-
 .../Cms/Controller/Adminhtml/Page/Delete.php  |  2 +-
 .../Cms/Controller/Adminhtml/Page/Edit.php    |  2 +-
 .../Cms/Controller/Adminhtml/Page/Index.php   |  2 +-
 .../Controller/Adminhtml/Page/InlineEdit.php  |  2 +-
 .../Controller/Adminhtml/Page/MassDelete.php  |  2 +-
 .../Controller/Adminhtml/Page/MassDisable.php |  2 +-
 .../Controller/Adminhtml/Page/MassEnable.php  |  2 +-
 .../Controller/Adminhtml/Page/NewAction.php   |  2 +-
 .../Cms/Controller/Adminhtml/Page/Save.php    |  2 +-
 .../Adminhtml/Page/Widget/Chooser.php         |  2 +-
 .../Adminhtml/Wysiwyg/Directive.php           |  2 +-
 .../Adminhtml/Wysiwyg/Images/Contents.php     |  2 +-
 .../Adminhtml/Wysiwyg/Images/DeleteFiles.php  |  2 +-
 .../Adminhtml/Wysiwyg/Images/DeleteFolder.php |  2 +-
 .../Adminhtml/Wysiwyg/Images/Index.php        |  2 +-
 .../Adminhtml/Wysiwyg/Images/NewFolder.php    |  2 +-
 .../Adminhtml/Wysiwyg/Images/OnInsert.php     |  2 +-
 .../Adminhtml/Wysiwyg/Images/Thumbnail.php    |  2 +-
 .../Adminhtml/Wysiwyg/Images/TreeJson.php     |  2 +-
 .../Adminhtml/Wysiwyg/Images/Upload.php       |  2 +-
 .../Cms/Controller/Index/DefaultNoRoute.php   |  2 +-
 .../Magento/Cms/Controller/Index/Index.php    |  2 +-
 .../Magento/Cms/Controller/Noroute/Index.php  |  2 +-
 app/code/Magento/Cms/Controller/Page/View.php |  2 +-
 .../Controller/Adminhtml/Block/DeleteTest.php |  6 +++---
 .../Controller/Adminhtml/Block/EditTest.php   |  4 ++--
 .../Adminhtml/Block/MassDeleteTest.php        |  2 +-
 .../Controller/Adminhtml/Block/SaveTest.php   | 10 +++++-----
 .../Controller/Adminhtml/Page/DeleteTest.php  |  6 +++---
 .../Adminhtml/Page/InlineEditTest.php         |  8 ++++----
 .../Adminhtml/Page/MassDeleteTest.php         |  2 +-
 .../Adminhtml/Page/MassDisableTest.php        |  2 +-
 .../Adminhtml/Page/MassEnableTest.php         |  2 +-
 .../Adminhtml/Wysiwyg/DirectiveTest.php       |  8 ++++----
 .../Unit/Controller/Block/InlineEditTest.php  |  4 ++--
 .../Test/Unit/Controller/Index/IndexTest.php  |  4 ++--
 .../Unit/Controller/Noroute/IndexTest.php     |  4 ++--
 .../Test/Unit/Controller/Page/ViewTest.php    |  4 ++--
 .../Adminhtml/System/AbstractConfig.php       |  4 ++--
 .../Adminhtml/System/Config/Edit.php          |  2 +-
 .../Adminhtml/System/Config/Index.php         |  2 +-
 .../Adminhtml/System/Config/Save.php          |  2 +-
 .../Adminhtml/System/Config/State.php         |  2 +-
 .../Adminhtml/System/Config/SaveTest.php      |  8 ++++----
 .../Adminhtml/Product/AddAttribute.php        |  2 +-
 .../Adminhtml/Product/Associated/Grid.php     |  2 +-
 .../Product/Attribute/CreateOptions.php       |  2 +-
 .../Product/Attribute/GetAttributes.php       |  2 +-
 .../SuggestConfigurableAttributes.php         |  2 +-
 .../Adminhtml/Product/AddAttributeTest.php    |  2 +-
 .../SuggestConfigurableAttributesTest.php     |  2 +-
 app/code/Magento/Contact/Controller/Index.php |  4 ++--
 .../Contact/Controller/Index/Index.php        |  2 +-
 .../Magento/Contact/Controller/Index/Post.php |  2 +-
 .../Test/Unit/Controller/Index/IndexTest.php  |  2 +-
 .../Test/Unit/Controller/Index/PostTest.php   |  6 +++---
 .../Test/Unit/Controller/IndexTest.php        |  2 +-
 .../Test/Unit/Controller/Stub/IndexStub.php   |  2 +-
 .../Cookie/Controller/Index/NoCookies.php     |  2 +-
 .../Unit/Controller/Index/NoCookiesTest.php   |  6 +++---
 .../Adminhtml/System/Currency/FetchRates.php  |  2 +-
 .../Adminhtml/System/Currency/Index.php       |  2 +-
 .../Adminhtml/System/Currency/SaveRates.php   |  2 +-
 .../Adminhtml/System/Currencysymbol/Index.php |  2 +-
 .../Adminhtml/System/Currencysymbol/Save.php  |  2 +-
 .../System/Currencysymbol/IndexTest.php       |  2 +-
 .../System/Currencysymbol/SaveTest.php        |  2 +-
 .../Customer/Controller/Account/Confirm.php   |  2 +-
 .../Controller/Account/Confirmation.php       |  2 +-
 .../Customer/Controller/Account/Create.php    |  2 +-
 .../Controller/Account/CreatePassword.php     |  2 +-
 .../Controller/Account/CreatePost.php         |  2 +-
 .../Customer/Controller/Account/Edit.php      |  2 +-
 .../Customer/Controller/Account/EditPost.php  |  2 +-
 .../Controller/Account/ForgotPassword.php     |  2 +-
 .../Controller/Account/ForgotPasswordPost.php |  2 +-
 .../Customer/Controller/Account/Index.php     |  2 +-
 .../Customer/Controller/Account/Login.php     |  2 +-
 .../Customer/Controller/Account/LoginPost.php |  2 +-
 .../Customer/Controller/Account/Logout.php    |  2 +-
 .../Controller/Account/LogoutSuccess.php      |  2 +-
 .../Controller/Account/ResetPasswordPost.php  |  2 +-
 .../Magento/Customer/Controller/Address.php   |  4 ++--
 .../Customer/Controller/Address/Delete.php    |  2 +-
 .../Customer/Controller/Address/Edit.php      |  2 +-
 .../Customer/Controller/Address/Form.php      |  2 +-
 .../Customer/Controller/Address/FormPost.php  |  2 +-
 .../Customer/Controller/Address/Index.php     |  2 +-
 .../Customer/Controller/Address/NewAction.php |  2 +-
 .../Cart/Product/Composite/Cart/Configure.php |  2 +-
 .../Cart/Product/Composite/Cart/Update.php    |  2 +-
 .../Adminhtml/Customer/InvalidateToken.php    |  2 +-
 .../Controller/Adminhtml/Group/Delete.php     |  2 +-
 .../Controller/Adminhtml/Group/Edit.php       |  2 +-
 .../Controller/Adminhtml/Group/Index.php      |  2 +-
 .../Controller/Adminhtml/Group/NewAction.php  |  2 +-
 .../Controller/Adminhtml/Group/Save.php       |  2 +-
 .../Adminhtml/Index/AbstractMassAction.php    |  2 +-
 .../Controller/Adminhtml/Index/Cart.php       |  2 +-
 .../Controller/Adminhtml/Index/Carts.php      |  2 +-
 .../Controller/Adminhtml/Index/Delete.php     |  2 +-
 .../Controller/Adminhtml/Index/Edit.php       |  2 +-
 .../Controller/Adminhtml/Index/Index.php      |  2 +-
 .../Controller/Adminhtml/Index/InlineEdit.php |  2 +-
 .../Controller/Adminhtml/Index/LastOrders.php |  2 +-
 .../Controller/Adminhtml/Index/NewAction.php  |  2 +-
 .../Controller/Adminhtml/Index/Newsletter.php |  2 +-
 .../Controller/Adminhtml/Index/Orders.php     |  2 +-
 .../Adminhtml/Index/ProductReviews.php        |  2 +-
 .../Adminhtml/Index/ResetPassword.php         |  2 +-
 .../Controller/Adminhtml/Index/Save.php       |  2 +-
 .../Controller/Adminhtml/Index/Validate.php   |  2 +-
 .../Controller/Adminhtml/Index/ViewCart.php   |  2 +-
 .../Adminhtml/Index/ViewWishlist.php          |  2 +-
 .../Controller/Adminhtml/Index/Viewfile.php   |  2 +-
 .../Controller/Adminhtml/Index/Wishlist.php   |  2 +-
 .../Controller/Adminhtml/Online/Index.php     |  2 +-
 .../System/Config/Validatevat/Validate.php    |  2 +-
 .../Config/Validatevat/ValidateAdvanced.php   |  2 +-
 .../Product/Composite/Wishlist/Configure.php  |  2 +-
 .../Product/Composite/Wishlist/Update.php     |  2 +-
 .../Customer/Controller/Ajax/Login.php        |  2 +-
 .../Customer/Controller/Ajax/Logout.php       |  2 +-
 .../Magento/Customer/Controller/Review.php    |  2 +-
 .../Customer/Controller/Section/Load.php      |  2 +-
 .../Unit/Controller/Account/ConfirmTest.php   |  8 ++++----
 .../Controller/Account/CreatePasswordTest.php |  6 +++---
 .../Controller/Account/CreatePostTest.php     |  8 ++++----
 .../Unit/Controller/Account/CreateTest.php    |  4 ++--
 .../Unit/Controller/Account/EditPostTest.php  | 10 +++++-----
 .../Account/ForgotPasswordPostTest.php        |  8 ++++----
 .../Unit/Controller/Account/LoginPostTest.php | 10 +++++-----
 .../Account/ResetPasswordPostTest.php         |  8 ++++----
 .../Unit/Controller/Address/FormPostTest.php  | 10 +++++-----
 .../Controller/Adminhtml/Index/IndexTest.php  |  8 ++++----
 .../Adminhtml/Index/InlineEditTest.php        |  8 ++++----
 .../Adminhtml/Index/MassAssignGroupTest.php   |  4 ++--
 .../Adminhtml/Index/MassDeleteTest.php        |  4 ++--
 .../Adminhtml/Index/MassSubscribeTest.php     |  4 ++--
 .../Adminhtml/Index/MassUnsubscribeTest.php   |  4 ++--
 .../Adminhtml/Index/NewsletterTest.php        |  2 +-
 .../Adminhtml/Index/ResetPasswordTest.php     | 12 +++++------
 .../Controller/Adminhtml/Index/SaveTest.php   | 20 +++++++++----------
 .../Adminhtml/Index/ValidateTest.php          |  6 +++---
 .../Adminhtml/Index/ViewfileTest.php          |  6 +++---
 .../Config/Validatevat/ValidateTest.php       |  2 +-
 .../Test/Unit/Controller/Ajax/LoginTest.php   |  4 ++--
 .../Controller/Adminhtml/Index/ExportCsv.php  |  2 +-
 .../Controller/Adminhtml/Index/ExportXml.php  |  2 +-
 .../Adminhtml/Json/CountryRegion.php          |  2 +-
 .../Controller/Currency/SwitchAction.php      |  2 +-
 .../Adminhtml/Downloadable/File/Upload.php    |  2 +-
 .../Downloadable/Product/Edit/Form.php        |  2 +-
 .../Downloadable/Product/Edit/Link.php        |  2 +-
 .../Downloadable/Product/Edit/Sample.php      |  2 +-
 .../Controller/Customer/Products.php          |  6 +++---
 .../Downloadable/Controller/Download/Link.php |  2 +-
 .../Controller/Download/LinkSample.php        |  2 +-
 .../Controller/Download/Sample.php            |  2 +-
 .../Downloadable/File/UploadTest.php          |  2 +-
 .../Downloadable/Product/Edit/LinkTest.php    |  4 ++--
 .../Downloadable/Product/Edit/SampleTest.php  |  4 ++--
 .../Controller/Download/LinkSampleTest.php    |  4 ++--
 .../Unit/Controller/Download/LinkTest.php     | 10 +++++-----
 .../Unit/Controller/Download/SampleTest.php   |  4 ++--
 .../Email/Template/DefaultTemplate.php        |  2 +-
 .../Adminhtml/Email/Template/Delete.php       |  2 +-
 .../Adminhtml/Email/Template/Edit.php         |  2 +-
 .../Adminhtml/Email/Template/Grid.php         |  2 +-
 .../Adminhtml/Email/Template/Index.php        |  2 +-
 .../Adminhtml/Email/Template/NewAction.php    |  2 +-
 .../Adminhtml/Email/Template/Preview.php      |  2 +-
 .../Adminhtml/Email/Template/Save.php         |  2 +-
 .../Adminhtml/Email/Template/EditTest.php     |  8 ++++----
 .../Adminhtml/Email/Template/IndexTest.php    |  6 +++---
 .../Controller/Adminhtml/Crypt/Key/Index.php  |  2 +-
 .../Controller/Adminhtml/Crypt/Key/Save.php   |  2 +-
 .../Adminhtml/Crypt/Key/SaveTest.php          |  6 +++---
 .../Controller/Adminhtml/Edit/Popup.php       |  2 +-
 .../Controller/Adminhtml/Edit/PopupTest.php   |  4 ++--
 .../Controller/Adminhtml/Export/Export.php    |  2 +-
 .../Controller/Adminhtml/Export/GetFilter.php |  2 +-
 .../Controller/Adminhtml/Export/Index.php     |  2 +-
 .../Controller/Adminhtml/History/Download.php |  2 +-
 .../Controller/Adminhtml/History/Index.php    |  2 +-
 .../Controller/Adminhtml/Import/Download.php  |  2 +-
 .../Controller/Adminhtml/Import/Index.php     |  2 +-
 .../Controller/Adminhtml/Import/Start.php     |  2 +-
 .../Controller/Adminhtml/Import/Validate.php  |  2 +-
 .../Adminhtml/History/DownloadTest.php        |  4 ++--
 .../Adminhtml/History/IndexTest.php           |  2 +-
 .../Adminhtml/Indexer/ListAction.php          |  2 +-
 .../Adminhtml/Indexer/MassChangelog.php       |  2 +-
 .../Adminhtml/Indexer/MassOnTheFly.php        |  2 +-
 .../Adminhtml/Indexer/ListActionTest.php      |  2 +-
 .../Adminhtml/Indexer/MassChangelogTest.php   |  2 +-
 .../Adminhtml/Indexer/MassOnTheFlyTest.php    |  2 +-
 .../Adminhtml/Integration/Delete.php          |  2 +-
 .../Controller/Adminhtml/Integration/Edit.php |  2 +-
 .../Controller/Adminhtml/Integration/Grid.php |  2 +-
 .../Adminhtml/Integration/Index.php           |  2 +-
 .../Integration/LoginSuccessCallback.php      |  2 +-
 .../Adminhtml/Integration/NewAction.php       |  2 +-
 .../Integration/PermissionsDialog.php         |  2 +-
 .../Controller/Adminhtml/Integration/Save.php |  2 +-
 .../Adminhtml/Integration/TokensDialog.php    |  2 +-
 .../Adminhtml/Integration/TokensExchange.php  |  2 +-
 .../Integration/Controller/Token/Access.php   |  2 +-
 .../Integration/Controller/Token/Request.php  |  2 +-
 .../Adminhtml/Integration/DeleteTest.php      | 12 +++++------
 .../Adminhtml/Integration/EditTest.php        |  8 ++++----
 .../Adminhtml/Integration/IndexTest.php       |  2 +-
 .../Adminhtml/Integration/NewActionTest.php   |  2 +-
 .../Integration/PermissionsDialogTest.php     |  2 +-
 .../Adminhtml/Integration/SaveTest.php        | 10 +++++-----
 .../Integration/TokensDialogTest.php          |  4 ++--
 .../Test/Unit/Controller/Token/AccessTest.php |  2 +-
 .../Unit/Controller/Token/RequestTest.php     |  2 +-
 .../Controller/Adminhtml/Index/Index.php      |  2 +-
 .../Controller/Adminhtml/Partners/Index.php   |  2 +-
 .../Test/Unit/Controller/Index/IndexTest.php  |  4 ++--
 .../Unit/Controller/Partners/IndexTest.php    |  4 ++--
 .../System/Config/System/Storage/Status.php   |  2 +-
 .../Config/System/Storage/Synchronize.php     |  2 +-
 .../Multishipping/Controller/Checkout.php     | 14 ++++++-------
 .../Controller/Checkout/Address.php           |  4 ++--
 .../Checkout/Address/EditAddress.php          |  2 +-
 .../Checkout/Address/EditBilling.php          |  2 +-
 .../Checkout/Address/EditShipping.php         |  2 +-
 .../Checkout/Address/EditShippingPost.php     |  2 +-
 .../Checkout/Address/NewBilling.php           |  2 +-
 .../Checkout/Address/NewShipping.php          |  2 +-
 .../Checkout/Address/SaveBilling.php          |  2 +-
 .../Checkout/Address/SelectBilling.php        |  2 +-
 .../Checkout/Address/SetBilling.php           |  2 +-
 .../Checkout/Address/ShippingSaved.php        |  2 +-
 .../Controller/Checkout/Addresses.php         |  2 +-
 .../Controller/Checkout/AddressesPost.php     |  2 +-
 .../Controller/Checkout/BackToAddresses.php   |  2 +-
 .../Controller/Checkout/BackToBilling.php     |  2 +-
 .../Controller/Checkout/BackToShipping.php    |  2 +-
 .../Controller/Checkout/Billing.php           |  2 +-
 .../Controller/Checkout/Index.php             |  2 +-
 .../Controller/Checkout/Login.php             |  2 +-
 .../Controller/Checkout/Overview.php          |  2 +-
 .../Controller/Checkout/OverviewPost.php      |  2 +-
 .../Controller/Checkout/Register.php          |  2 +-
 .../Controller/Checkout/RemoveItem.php        |  2 +-
 .../Controller/Checkout/Shipping.php          |  2 +-
 .../Controller/Checkout/ShippingPost.php      |  2 +-
 .../Controller/Checkout/Success.php           |  2 +-
 .../Checkout/Address/EditAddressTest.php      |  4 ++--
 .../Checkout/Address/EditBillingTest.php      |  4 ++--
 .../Checkout/Address/EditShippingTest.php     |  4 ++--
 .../Checkout/Address/NewBillingTest.php       |  4 ++--
 .../Checkout/Address/NewShippingTest.php      |  4 ++--
 .../Checkout/Address/ShippingSavedTest.php    |  4 ++--
 .../Controller/Adminhtml/Problem/Grid.php     |  2 +-
 .../Controller/Adminhtml/Problem/Index.php    |  2 +-
 .../Controller/Adminhtml/Queue/Cancel.php     |  2 +-
 .../Controller/Adminhtml/Queue/Drop.php       |  2 +-
 .../Controller/Adminhtml/Queue/Edit.php       |  2 +-
 .../Controller/Adminhtml/Queue/Grid.php       |  2 +-
 .../Controller/Adminhtml/Queue/Index.php      |  2 +-
 .../Controller/Adminhtml/Queue/Pause.php      |  2 +-
 .../Controller/Adminhtml/Queue/Preview.php    |  2 +-
 .../Controller/Adminhtml/Queue/Resume.php     |  2 +-
 .../Controller/Adminhtml/Queue/Save.php       |  2 +-
 .../Controller/Adminhtml/Queue/Sending.php    |  2 +-
 .../Controller/Adminhtml/Queue/Start.php      |  2 +-
 .../Adminhtml/Subscriber/ExportCsv.php        |  2 +-
 .../Adminhtml/Subscriber/ExportXml.php        |  2 +-
 .../Controller/Adminhtml/Subscriber/Grid.php  |  2 +-
 .../Controller/Adminhtml/Subscriber/Index.php |  2 +-
 .../Adminhtml/Subscriber/MassDelete.php       |  2 +-
 .../Adminhtml/Subscriber/MassUnsubscribe.php  |  2 +-
 .../Controller/Adminhtml/Template/Delete.php  |  2 +-
 .../Controller/Adminhtml/Template/Drop.php    |  2 +-
 .../Controller/Adminhtml/Template/Edit.php    |  2 +-
 .../Controller/Adminhtml/Template/Grid.php    |  2 +-
 .../Controller/Adminhtml/Template/Index.php   |  2 +-
 .../Adminhtml/Template/NewAction.php          |  2 +-
 .../Controller/Adminhtml/Template/Preview.php |  2 +-
 .../Controller/Adminhtml/Template/Save.php    |  2 +-
 .../Magento/Newsletter/Controller/Manage.php  |  4 ++--
 .../Newsletter/Controller/Manage/Index.php    |  2 +-
 .../Newsletter/Controller/Manage/Save.php     |  2 +-
 .../Controller/Subscriber/Confirm.php         |  2 +-
 .../Controller/Subscriber/NewAction.php       |  2 +-
 .../Controller/Subscriber/Unsubscribe.php     |  2 +-
 .../Test/Unit/Controller/Manage/SaveTest.php  |  6 +++---
 .../System/Config/ExportTablerates.php        |  2 +-
 .../PageCache/ExportVarnishConfig.php         |  2 +-
 .../PageCache/Controller/Block/Esi.php        |  2 +-
 .../PageCache/Controller/Block/Render.php     |  2 +-
 .../PageCache/ExportVarnishConfigTest.php     |  2 +-
 .../Test/Unit/Controller/Block/EsiTest.php    |  4 ++--
 .../Test/Unit/Controller/Block/RenderTest.php |  6 +++---
 .../Adminhtml/Billing/Agreement/Cancel.php    |  2 +-
 .../Billing/Agreement/CustomerGrid.php        |  2 +-
 .../Adminhtml/Billing/Agreement/Delete.php    |  2 +-
 .../Adminhtml/Billing/Agreement/Grid.php      |  2 +-
 .../Adminhtml/Billing/Agreement/Index.php     |  2 +-
 .../Billing/Agreement/OrdersGrid.php          |  2 +-
 .../Adminhtml/Billing/Agreement/View.php      |  2 +-
 .../Adminhtml/Paypal/Reports/Details.php      |  2 +-
 .../Adminhtml/Paypal/Reports/Fetch.php        |  2 +-
 .../Adminhtml/Paypal/Reports/Grid.php         |  2 +-
 .../Adminhtml/Paypal/Reports/Index.php        |  2 +-
 .../Paypal/Controller/Billing/Agreement.php   |  6 +++---
 .../Controller/Billing/Agreement/Cancel.php   |  2 +-
 .../Billing/Agreement/CancelWizard.php        |  2 +-
 .../Controller/Billing/Agreement/Index.php    |  2 +-
 .../Billing/Agreement/ReturnWizard.php        |  2 +-
 .../Billing/Agreement/StartWizard.php         |  2 +-
 .../Controller/Billing/Agreement/View.php     |  2 +-
 .../Magento/Paypal/Controller/Bml/Start.php   |  2 +-
 .../Express/AbstractExpress/Cancel.php        |  2 +-
 .../Express/AbstractExpress/Edit.php          |  2 +-
 .../Express/AbstractExpress/PlaceOrder.php    |  2 +-
 .../Express/AbstractExpress/ReturnAction.php  |  2 +-
 .../Express/AbstractExpress/Review.php        |  2 +-
 .../AbstractExpress/SaveShippingMethod.php    |  2 +-
 .../ShippingOptionsCallback.php               |  2 +-
 .../Express/AbstractExpress/Start.php         |  2 +-
 .../AbstractExpress/UpdateShippingMethods.php |  2 +-
 .../Paypal/Controller/Hostedpro/Cancel.php    |  2 +-
 .../Paypal/Controller/Hostedpro/Redirect.php  |  2 +-
 .../Controller/Hostedpro/ReturnAction.php     |  2 +-
 .../Magento/Paypal/Controller/Ipn/Index.php   |  2 +-
 .../Controller/Payflow/CancelPayment.php      |  2 +-
 .../Paypal/Controller/Payflow/Form.php        |  2 +-
 .../Paypal/Controller/Payflow/ReturnUrl.php   |  2 +-
 .../Paypal/Controller/Payflow/SilentPost.php  |  2 +-
 .../Paypal/Controller/Payflowbml/Start.php    |  2 +-
 .../Transparent/RequestSecureToken.php        |  2 +-
 .../Controller/Transparent/Response.php       |  2 +-
 .../Billing/Agreement/CancelTest.php          |  6 +++---
 .../Unit/Controller/Payflow/ReturnUrlTest.php |  4 ++--
 .../Transparent/RequestSecureTokenTest.php    |  6 +++---
 .../Controller/Transparent/ResponseTest.php   |  4 ++--
 .../Controller/Index/ExpressCheckout.php      |  2 +-
 .../Controller/Index/SaveMethod.php           |  2 +-
 .../Controller/Index/UnsetCookie.php          |  2 +-
 .../Magento/ProductAlert/Controller/Add.php   |  4 ++--
 .../ProductAlert/Controller/Add/Price.php     |  2 +-
 .../ProductAlert/Controller/Add/Stock.php     |  2 +-
 .../Controller/Add/TestObserver.php           |  2 +-
 .../Controller/Unsubscribe/Price.php          |  2 +-
 .../Controller/Unsubscribe/PriceAll.php       |  2 +-
 .../Controller/Unsubscribe/Stock.php          |  2 +-
 .../Controller/Unsubscribe/StockAll.php       |  2 +-
 .../Product/Gallery/RetrieveImage.php         |  2 +-
 .../Product/Gallery/RetrieveImageTest.php     |  2 +-
 .../Adminhtml/Report/Customer/Accounts.php    |  2 +-
 .../Report/Customer/ExportAccountsCsv.php     |  2 +-
 .../Report/Customer/ExportAccountsExcel.php   |  2 +-
 .../Report/Customer/ExportOrdersCsv.php       |  2 +-
 .../Report/Customer/ExportOrdersExcel.php     |  2 +-
 .../Report/Customer/ExportTotalsCsv.php       |  2 +-
 .../Report/Customer/ExportTotalsExcel.php     |  2 +-
 .../Adminhtml/Report/Customer/Orders.php      |  2 +-
 .../Adminhtml/Report/Customer/Totals.php      |  2 +-
 .../Adminhtml/Report/Product/Downloads.php    |  2 +-
 .../Report/Product/ExportDownloadsCsv.php     |  2 +-
 .../Report/Product/ExportDownloadsExcel.php   |  2 +-
 .../Report/Product/ExportLowstockCsv.php      |  2 +-
 .../Report/Product/ExportLowstockExcel.php    |  2 +-
 .../Report/Product/ExportSoldCsv.php          |  2 +-
 .../Report/Product/ExportSoldExcel.php        |  2 +-
 .../Report/Product/ExportViewedCsv.php        |  2 +-
 .../Report/Product/ExportViewedExcel.php      |  2 +-
 .../Adminhtml/Report/Product/Lowstock.php     |  2 +-
 .../Adminhtml/Report/Product/Sold.php         |  2 +-
 .../Adminhtml/Report/Product/Viewed.php       |  2 +-
 .../Adminhtml/Report/Review/Customer.php      |  2 +-
 .../Report/Review/ExportCustomerCsv.php       |  2 +-
 .../Report/Review/ExportCustomerExcel.php     |  2 +-
 .../Report/Review/ExportProductCsv.php        |  2 +-
 .../Report/Review/ExportProductDetailCsv.php  |  2 +-
 .../Review/ExportProductDetailExcel.php       |  2 +-
 .../Report/Review/ExportProductExcel.php      |  2 +-
 .../Adminhtml/Report/Review/Product.php       |  2 +-
 .../Adminhtml/Report/Review/ProductDetail.php |  2 +-
 .../Adminhtml/Report/Sales/Bestsellers.php    |  2 +-
 .../Adminhtml/Report/Sales/Coupons.php        |  2 +-
 .../Report/Sales/ExportBestsellersCsv.php     |  2 +-
 .../Report/Sales/ExportBestsellersExcel.php   |  2 +-
 .../Report/Sales/ExportCouponsCsv.php         |  2 +-
 .../Report/Sales/ExportCouponsExcel.php       |  2 +-
 .../Report/Sales/ExportInvoicedCsv.php        |  2 +-
 .../Report/Sales/ExportInvoicedExcel.php      |  2 +-
 .../Report/Sales/ExportRefundedCsv.php        |  2 +-
 .../Report/Sales/ExportRefundedExcel.php      |  2 +-
 .../Adminhtml/Report/Sales/ExportSalesCsv.php |  2 +-
 .../Report/Sales/ExportSalesExcel.php         |  2 +-
 .../Report/Sales/ExportShippingCsv.php        |  2 +-
 .../Report/Sales/ExportShippingExcel.php      |  2 +-
 .../Adminhtml/Report/Sales/ExportTaxCsv.php   |  2 +-
 .../Adminhtml/Report/Sales/ExportTaxExcel.php |  2 +-
 .../Adminhtml/Report/Sales/Invoiced.php       |  2 +-
 .../Report/Sales/RefreshLifetime.php          |  2 +-
 .../Adminhtml/Report/Sales/RefreshRecent.php  |  2 +-
 .../Report/Sales/RefreshStatistics.php        |  2 +-
 .../Adminhtml/Report/Sales/Refunded.php       |  2 +-
 .../Adminhtml/Report/Sales/Sales.php          |  2 +-
 .../Adminhtml/Report/Sales/Shipping.php       |  2 +-
 .../Controller/Adminhtml/Report/Sales/Tax.php |  2 +-
 .../Adminhtml/Report/Shopcart/Abandoned.php   |  2 +-
 .../Adminhtml/Report/Shopcart/Customer.php    |  2 +-
 .../Report/Shopcart/ExportAbandonedCsv.php    |  2 +-
 .../Report/Shopcart/ExportAbandonedExcel.php  |  2 +-
 .../Report/Shopcart/ExportCustomerCsv.php     |  2 +-
 .../Report/Shopcart/ExportCustomerExcel.php   |  2 +-
 .../Report/Shopcart/ExportProductCsv.php      |  2 +-
 .../Report/Shopcart/ExportProductExcel.php    |  2 +-
 .../Adminhtml/Report/Shopcart/Product.php     |  2 +-
 .../Adminhtml/Report/Statistics/Index.php     |  2 +-
 .../Report/Statistics/RefreshLifetime.php     |  2 +-
 .../Report/Statistics/RefreshRecent.php       |  2 +-
 .../Report/Customer/AccountsTest.php          |  2 +-
 .../Report/Customer/ExportAccountsCsvTest.php |  2 +-
 .../Customer/ExportAccountsExcelTest.php      |  2 +-
 .../Report/Customer/ExportOrdersCsvTest.php   |  2 +-
 .../Report/Customer/ExportOrdersExcelTest.php |  2 +-
 .../Report/Customer/ExportTotalsCsvTest.php   |  2 +-
 .../Report/Customer/ExportTotalsExcelTest.php |  2 +-
 .../Adminhtml/Report/Customer/OrdersTest.php  |  2 +-
 .../Adminhtml/Report/Customer/TotalsTest.php  |  2 +-
 .../Report/Product/DownloadsTest.php          |  2 +-
 .../Report/Product/ExportDownloadsCsvTest.php |  2 +-
 .../Product/ExportDownloadsExcelTest.php      |  2 +-
 .../Report/Product/ExportLowstockCsvTest.php  |  2 +-
 .../Product/ExportLowstockExcelTest.php       |  2 +-
 .../Report/Product/ExportSoldCsvTest.php      |  2 +-
 .../Report/Product/ExportSoldExcelTest.php    |  2 +-
 .../Report/Product/ExportViewedCsvTest.php    |  2 +-
 .../Report/Product/ExportViewedExcelTest.php  |  2 +-
 .../Adminhtml/Report/Product/LowstockTest.php |  2 +-
 .../Adminhtml/Report/Product/SoldTest.php     |  2 +-
 .../Adminhtml/Report/Product/ViewedTest.php   |  6 +++---
 .../Controller/Adminhtml/Product/Delete.php   |  2 +-
 .../Controller/Adminhtml/Product/Edit.php     |  2 +-
 .../Controller/Adminhtml/Product/Index.php    |  2 +-
 .../Adminhtml/Product/JsonProductInfo.php     |  2 +-
 .../Adminhtml/Product/MassDelete.php          |  2 +-
 .../Adminhtml/Product/MassUpdateStatus.php    |  2 +-
 .../Adminhtml/Product/MassVisibleIn.php       |  2 +-
 .../Adminhtml/Product/NewAction.php           |  2 +-
 .../Controller/Adminhtml/Product/Pending.php  |  2 +-
 .../Controller/Adminhtml/Product/Post.php     |  2 +-
 .../Adminhtml/Product/ProductGrid.php         |  2 +-
 .../Adminhtml/Product/RatingItems.php         |  2 +-
 .../Adminhtml/Product/ReviewGrid.php          |  2 +-
 .../Adminhtml/Product/Reviews/Grid.php        |  2 +-
 .../Controller/Adminhtml/Product/Save.php     |  2 +-
 .../Controller/Adminhtml/Rating/Delete.php    |  2 +-
 .../Controller/Adminhtml/Rating/Edit.php      |  2 +-
 .../Controller/Adminhtml/Rating/Index.php     |  2 +-
 .../Controller/Adminhtml/Rating/NewAction.php |  2 +-
 .../Controller/Adminhtml/Rating/Save.php      |  2 +-
 .../Magento/Review/Controller/Customer.php    |  4 ++--
 .../Review/Controller/Customer/Index.php      |  2 +-
 .../Review/Controller/Customer/View.php       |  2 +-
 .../Magento/Review/Controller/Product.php     |  6 +++---
 .../Review/Controller/Product/ListAction.php  |  2 +-
 .../Review/Controller/Product/ListAjax.php    |  2 +-
 .../Review/Controller/Product/Post.php        |  2 +-
 .../Review/Controller/Product/View.php        |  2 +-
 .../Controller/Adminhtml/Product/PostTest.php |  2 +-
 .../Test/Unit/Controller/Product/PostTest.php |  2 +-
 .../Rss/Controller/Adminhtml/Feed/Index.php   |  2 +-
 .../Magento/Rss/Controller/Feed/Index.php     |  2 +-
 .../Magento/Rss/Controller/Index/Index.php    |  2 +-
 .../Controller/Adminhtml/Feed/IndexTest.php   |  4 ++--
 .../Test/Unit/Controller/Feed/IndexTest.php   |  4 ++--
 .../AbstractController/PrintAction.php        |  2 +-
 .../AbstractController/PrintCreditmemo.php    |  2 +-
 .../AbstractController/PrintInvoice.php       |  2 +-
 .../AbstractController/PrintShipment.php      |  2 +-
 .../Controller/AbstractController/Reorder.php |  2 +-
 .../Controller/AbstractController/View.php    |  2 +-
 .../Creditmemo/AbstractCreditmemo/Email.php   |  2 +-
 .../Creditmemo/AbstractCreditmemo/Grid.php    |  2 +-
 .../Creditmemo/AbstractCreditmemo/Index.php   |  2 +-
 .../AbstractCreditmemo/PrintAction.php        |  2 +-
 .../Creditmemo/AbstractCreditmemo/View.php    |  2 +-
 .../Controller/Adminhtml/Creditmemo/Index.php |  4 ++--
 .../Invoice/AbstractInvoice/Email.php         |  2 +-
 .../Invoice/AbstractInvoice/Grid.php          |  2 +-
 .../Invoice/AbstractInvoice/Index.php         |  2 +-
 .../Invoice/AbstractInvoice/PrintAction.php   |  2 +-
 .../Invoice/AbstractInvoice/View.php          |  2 +-
 .../Adminhtml/Order/AbstractMassAction.php    |  2 +-
 .../Controller/Adminhtml/Order/AddComment.php |  2 +-
 .../Controller/Adminhtml/Order/Address.php    |  2 +-
 .../Adminhtml/Order/AddressSave.php           |  2 +-
 .../Controller/Adminhtml/Order/Cancel.php     |  2 +-
 .../Adminhtml/Order/CommentsHistory.php       |  2 +-
 .../Adminhtml/Order/Create/AddConfigured.php  |  2 +-
 .../Adminhtml/Order/Create/Cancel.php         |  2 +-
 .../Order/Create/ConfigureProductToAdd.php    |  2 +-
 .../Order/Create/ConfigureQuoteItems.php      |  2 +-
 .../Adminhtml/Order/Create/Index.php          |  2 +-
 .../Adminhtml/Order/Create/LoadBlock.php      |  2 +-
 .../Adminhtml/Order/Create/ProcessData.php    |  2 +-
 .../Adminhtml/Order/Create/Reorder.php        |  2 +-
 .../Adminhtml/Order/Create/Save.php           |  2 +-
 .../Order/Create/ShowUpdateResult.php         |  2 +-
 .../Adminhtml/Order/Create/Start.php          |  2 +-
 .../Adminhtml/Order/Creditmemo/AddComment.php |  2 +-
 .../Adminhtml/Order/Creditmemo/Cancel.php     |  2 +-
 .../Adminhtml/Order/Creditmemo/NewAction.php  |  2 +-
 .../Order/Creditmemo/PrintAction.php          |  4 ++--
 .../Adminhtml/Order/Creditmemo/Save.php       |  2 +-
 .../Adminhtml/Order/Creditmemo/Start.php      |  2 +-
 .../Adminhtml/Order/Creditmemo/UpdateQty.php  |  2 +-
 .../Adminhtml/Order/Creditmemo/View.php       |  2 +-
 .../Adminhtml/Order/Creditmemo/Void.php       |  2 +-
 .../Adminhtml/Order/Creditmemos.php           |  2 +-
 .../Controller/Adminhtml/Order/Edit/Index.php |  2 +-
 .../Controller/Adminhtml/Order/Edit/Start.php |  2 +-
 .../Controller/Adminhtml/Order/Email.php      |  2 +-
 .../Sales/Controller/Adminhtml/Order/Grid.php |  2 +-
 .../Sales/Controller/Adminhtml/Order/Hold.php |  2 +-
 .../Controller/Adminhtml/Order/Index.php      |  2 +-
 .../Adminhtml/Order/Invoice/AddComment.php    |  2 +-
 .../Adminhtml/Order/Invoice/Cancel.php        |  2 +-
 .../Adminhtml/Order/Invoice/Capture.php       |  2 +-
 .../Adminhtml/Order/Invoice/NewAction.php     |  2 +-
 .../Adminhtml/Order/Invoice/Save.php          |  2 +-
 .../Adminhtml/Order/Invoice/Start.php         |  2 +-
 .../Adminhtml/Order/Invoice/UpdateQty.php     |  2 +-
 .../Adminhtml/Order/Invoice/View.php          |  2 +-
 .../Adminhtml/Order/Invoice/Void.php          |  2 +-
 .../Controller/Adminhtml/Order/Invoices.php   |  2 +-
 .../Adminhtml/Order/ReviewPayment.php         |  2 +-
 .../Controller/Adminhtml/Order/Shipments.php  |  2 +-
 .../Adminhtml/Order/Status/Assign.php         |  2 +-
 .../Adminhtml/Order/Status/AssignPost.php     |  2 +-
 .../Adminhtml/Order/Status/Edit.php           |  2 +-
 .../Adminhtml/Order/Status/Index.php          |  2 +-
 .../Adminhtml/Order/Status/NewAction.php      |  2 +-
 .../Adminhtml/Order/Status/Save.php           |  2 +-
 .../Adminhtml/Order/Status/Unassign.php       |  2 +-
 .../Adminhtml/Order/Transactions.php          |  2 +-
 .../Controller/Adminhtml/Order/Unhold.php     |  2 +-
 .../Sales/Controller/Adminhtml/Order/View.php |  2 +-
 .../Adminhtml/Order/View/Giftmessage/Save.php |  2 +-
 .../Adminhtml/Order/VoidPayment.php           |  2 +-
 .../Shipment/AbstractShipment/Index.php       |  2 +-
 .../Shipment/AbstractShipment/PrintAction.php |  2 +-
 .../Shipment/AbstractShipment/View.php        |  2 +-
 .../Adminhtml/Transactions/Fetch.php          |  2 +-
 .../Adminhtml/Transactions/Grid.php           |  2 +-
 .../Adminhtml/Transactions/Index.php          |  2 +-
 .../Adminhtml/Transactions/View.php           |  2 +-
 .../Download/DownloadCustomOption.php         |  2 +-
 .../Magento/Sales/Controller/Guest/Form.php   |  2 +-
 .../Controller/Guest/PrintCreditmemo.php      |  2 +-
 .../Sales/Controller/Guest/PrintInvoice.php   |  2 +-
 .../Sales/Controller/Guest/PrintShipment.php  |  2 +-
 .../Magento/Sales/Controller/Guest/View.php   |  2 +-
 .../Sales/Controller/Order/History.php        |  2 +-
 .../AbstractCreditmemo/EmailTest.php          |  4 ++--
 .../Invoice/AbstractInvoice/EmailTest.php     |  6 +++---
 .../Controller/Adminhtml/Order/CancelTest.php |  2 +-
 .../Order/Create/ProcessDataTest.php          |  2 +-
 .../Order/Creditmemo/AddCommentTest.php       |  8 ++++----
 .../Adminhtml/Order/Creditmemo/CancelTest.php |  8 ++++----
 .../Order/Creditmemo/NewActionTest.php        |  2 +-
 .../Order/Creditmemo/PrintActionTest.php      |  8 ++++----
 .../Order/Creditmemo/UpdateQtyTest.php        |  6 +++---
 .../Adminhtml/Order/Creditmemo/ViewTest.php   |  4 ++--
 .../Adminhtml/Order/Creditmemo/VoidTest.php   |  8 ++++----
 .../Controller/Adminhtml/Order/EmailTest.php  |  4 ++--
 .../Controller/Adminhtml/Order/HoldTest.php   |  2 +-
 .../Order/Invoice/AddCommentTest.php          |  6 +++---
 .../Adminhtml/Order/Invoice/CancelTest.php    |  8 ++++----
 .../Adminhtml/Order/Invoice/CaptureTest.php   |  8 ++++----
 .../Adminhtml/Order/Invoice/NewActionTest.php |  4 ++--
 .../Order/Invoice/PrintActionTest.php         |  2 +-
 .../Adminhtml/Order/Invoice/SaveTest.php      |  2 +-
 .../Adminhtml/Order/Invoice/UpdateQtyTest.php |  6 +++---
 .../Adminhtml/Order/Invoice/ViewTest.php      |  4 ++--
 .../Adminhtml/Order/Invoice/VoidTest.php      |  6 +++---
 .../Adminhtml/Order/MassCancelTest.php        |  6 +++---
 .../Adminhtml/Order/MassHoldTest.php          |  4 ++--
 .../Adminhtml/Order/MassUnholdTest.php        |  4 ++--
 .../Adminhtml/Order/ReviewPaymentTest.php     |  2 +-
 .../Controller/Adminhtml/Order/UnholdTest.php |  2 +-
 .../Controller/Adminhtml/Order/ViewTest.php   | 12 +++++------
 .../Download/DownloadCustomOptionTest.php     |  4 ++--
 .../Test/Unit/Controller/Guest/ViewTest.php   |  4 ++--
 .../Adminhtml/Promo/Quote/ApplyRules.php      |  2 +-
 .../Adminhtml/Promo/Quote/Chooser.php         |  2 +-
 .../Adminhtml/Promo/Quote/CouponsGrid.php     |  2 +-
 .../Promo/Quote/CouponsMassDelete.php         |  2 +-
 .../Adminhtml/Promo/Quote/Delete.php          |  2 +-
 .../Controller/Adminhtml/Promo/Quote/Edit.php |  2 +-
 .../Promo/Quote/ExportCouponsCsv.php          |  2 +-
 .../Promo/Quote/ExportCouponsXml.php          |  2 +-
 .../Adminhtml/Promo/Quote/Generate.php        |  2 +-
 .../Adminhtml/Promo/Quote/Index.php           |  2 +-
 .../Adminhtml/Promo/Quote/NewAction.php       |  2 +-
 .../Adminhtml/Promo/Quote/NewActionHtml.php   |  2 +-
 .../Promo/Quote/NewConditionHtml.php          |  2 +-
 .../Controller/Adminhtml/Promo/Quote/Save.php |  2 +-
 .../Controller/Adminhtml/Term/Delete.php      |  2 +-
 .../Search/Controller/Adminhtml/Term/Edit.php |  2 +-
 .../Adminhtml/Term/ExportSearchCsv.php        |  2 +-
 .../Adminhtml/Term/ExportSearchExcel.php      |  2 +-
 .../Controller/Adminhtml/Term/Index.php       |  2 +-
 .../Controller/Adminhtml/Term/MassDelete.php  |  2 +-
 .../Controller/Adminhtml/Term/NewAction.php   |  2 +-
 .../Controller/Adminhtml/Term/Report.php      |  2 +-
 .../Search/Controller/Adminhtml/Term/Save.php |  2 +-
 .../Search/Controller/Ajax/Suggest.php        |  2 +-
 .../Search/Controller/Term/Popular.php        |  6 +++---
 .../Controller/Adminhtml/Ajax/SuggestTest.php |  4 ++--
 .../Adminhtml/Term/MassDeleteTest.php         |  2 +-
 .../Controller/Adminhtml/Term/SaveTest.php    | 12 +++++------
 .../Magento/SendFriend/Controller/Product.php |  4 ++--
 .../SendFriend/Controller/Product/Send.php    |  2 +-
 .../Controller/Product/Sendmail.php           |  2 +-
 .../Test/Unit/Controller/Product/SendTest.php | 12 +++++------
 .../Unit/Controller/Product/SendmailTest.php  | 16 +++++++--------
 .../Adminhtml/Order/Shipment/AddComment.php   |  2 +-
 .../Adminhtml/Order/Shipment/AddTrack.php     |  2 +-
 .../Adminhtml/Order/Shipment/CreateLabel.php  |  2 +-
 .../Adminhtml/Order/Shipment/Email.php        |  2 +-
 .../Order/Shipment/GetShippingItemsGrid.php   |  2 +-
 .../Adminhtml/Order/Shipment/NewAction.php    |  2 +-
 .../Adminhtml/Order/Shipment/PrintLabel.php   |  2 +-
 .../Adminhtml/Order/Shipment/PrintPackage.php |  2 +-
 .../Adminhtml/Order/Shipment/RemoveTrack.php  |  2 +-
 .../Adminhtml/Order/Shipment/Save.php         |  2 +-
 .../Adminhtml/Order/Shipment/Start.php        |  2 +-
 .../Adminhtml/Order/Shipment/View.php         |  2 +-
 .../Shipping/Controller/Tracking/Popup.php    |  2 +-
 .../Order/Shipment/AddCommentTest.php         |  8 ++++----
 .../Adminhtml/Order/Shipment/AddTrackTest.php |  2 +-
 .../Order/Shipment/CreateLabelTest.php        |  8 ++++----
 .../Adminhtml/Order/Shipment/EmailTest.php    |  2 +-
 .../Shipment/GetShippingItemsGridTest.php     |  2 +-
 .../Order/Shipment/NewActionTest.php          |  2 +-
 .../Order/Shipment/PrintLabelTest.php         |  8 ++++----
 .../Order/Shipment/PrintPackageTest.php       |  4 ++--
 .../Order/Shipment/RemoveTrackTest.php        |  8 ++++----
 .../Adminhtml/Order/Shipment/SaveTest.php     |  4 ++--
 .../Adminhtml/Order/Shipment/ViewTest.php     |  4 ++--
 .../Controller/Adminhtml/Sitemap/Delete.php   |  2 +-
 .../Controller/Adminhtml/Sitemap/Edit.php     |  2 +-
 .../Controller/Adminhtml/Sitemap/Generate.php |  2 +-
 .../Controller/Adminhtml/Sitemap/Index.php    |  2 +-
 .../Adminhtml/Sitemap/NewAction.php           |  2 +-
 .../Controller/Adminhtml/Sitemap/Save.php     |  2 +-
 .../Controller/Adminhtml/Sitemap/SaveTest.php |  4 ++--
 .../Store/Controller/Store/SwitchAction.php   |  2 +-
 .../Swagger/Controller/Index/Index.php        |  2 +-
 .../Controller/Adminhtml/Iframe/Show.php      |  2 +-
 .../Swatches/Controller/Ajax/Media.php        |  2 +-
 .../Controller/Adminhtml/Iframe/ShowTest.php  |  4 ++--
 .../Test/Unit/Controller/Ajax/MediaTest.php   |  4 ++--
 .../Tax/Controller/Adminhtml/Rate/Add.php     |  2 +-
 .../Controller/Adminhtml/Rate/AjaxDelete.php  |  2 +-
 .../Controller/Adminhtml/Rate/AjaxLoad.php    |  2 +-
 .../Controller/Adminhtml/Rate/AjaxSave.php    |  2 +-
 .../Tax/Controller/Adminhtml/Rate/Delete.php  |  2 +-
 .../Tax/Controller/Adminhtml/Rate/Edit.php    |  2 +-
 .../Tax/Controller/Adminhtml/Rate/Index.php   |  2 +-
 .../Tax/Controller/Adminhtml/Rate/Save.php    |  2 +-
 .../Tax/Controller/Adminhtml/Rule/Delete.php  |  2 +-
 .../Tax/Controller/Adminhtml/Rule/Edit.php    |  2 +-
 .../Tax/Controller/Adminhtml/Rule/Index.php   |  2 +-
 .../Controller/Adminhtml/Rule/NewAction.php   |  2 +-
 .../Tax/Controller/Adminhtml/Rule/Save.php    |  2 +-
 .../Controller/Adminhtml/Tax/AjaxDelete.php   |  2 +-
 .../Tax/Controller/Adminhtml/Tax/AjaxSave.php |  2 +-
 .../Adminhtml/Tax/IgnoreTaxNotification.php   |  2 +-
 .../Controller/Adminhtml/Rate/ExportCsv.php   |  2 +-
 .../Controller/Adminhtml/Rate/ExportPost.php  |  2 +-
 .../Controller/Adminhtml/Rate/ExportXml.php   |  2 +-
 .../Adminhtml/Rate/ImportExport.php           |  2 +-
 .../Controller/Adminhtml/Rate/ImportPost.php  |  2 +-
 .../Adminhtml/System/Design/Theme/Delete.php  |  2 +-
 .../System/Design/Theme/DownloadCss.php       |  2 +-
 .../System/Design/Theme/DownloadCustomCss.php |  2 +-
 .../Adminhtml/System/Design/Theme/Edit.php    |  2 +-
 .../Adminhtml/System/Design/Theme/Grid.php    |  2 +-
 .../Adminhtml/System/Design/Theme/Index.php   |  2 +-
 .../System/Design/Theme/NewAction.php         |  2 +-
 .../Adminhtml/System/Design/Theme/Save.php    |  2 +-
 .../System/Design/Theme/UploadCss.php         |  2 +-
 .../System/Design/Theme/UploadJs.php          |  2 +-
 .../System/Design/Wysiwyg/Files/Contents.php  |  2 +-
 .../Design/Wysiwyg/Files/DeleteFiles.php      |  2 +-
 .../Design/Wysiwyg/Files/DeleteFolder.php     |  2 +-
 .../System/Design/Wysiwyg/Files/Index.php     |  2 +-
 .../System/Design/Wysiwyg/Files/NewFolder.php |  2 +-
 .../System/Design/Wysiwyg/Files/OnInsert.php  |  2 +-
 .../Design/Wysiwyg/Files/PreviewImage.php     |  2 +-
 .../System/Design/Wysiwyg/Files/TreeJson.php  |  2 +-
 .../System/Design/Wysiwyg/Files/Upload.php    |  2 +-
 .../System/Design/Theme/DeleteTest.php        |  6 +++---
 .../System/Design/Theme/DownloadCssTest.php   |  4 ++--
 .../Design/Theme/DownloadCustomCssTest.php    |  4 ++--
 .../System/Design/Theme/EditTest.php          |  6 +++---
 .../System/Design/Theme/IndexTest.php         |  2 +-
 .../System/Design/Theme/SaveTest.php          |  2 +-
 .../System/Design/Theme/UploadCssTest.php     |  6 +++---
 .../System/Design/Theme/UploadJsTest.php      |  6 +++---
 .../Design/Wysiwyg/Files/ContentsTest.php     |  2 +-
 .../Design/Wysiwyg/Files/DeleteFilesTest.php  |  4 ++--
 .../Design/Wysiwyg/Files/DeleteFolderTest.php |  2 +-
 .../System/Design/Wysiwyg/Files/IndexTest.php |  2 +-
 .../Design/Wysiwyg/Files/OnInsertTest.php     |  2 +-
 .../Translation/Controller/Ajax/Index.php     |  2 +-
 .../Controller/Adminhtml/AbstractAction.php   |  2 +-
 .../Controller/Adminhtml/Bookmark/Delete.php  |  2 +-
 .../Ui/Controller/Adminhtml/Bookmark/Save.php |  2 +-
 .../Controller/Adminhtml/Export/GridToCsv.php |  2 +-
 .../Controller/Adminhtml/Export/GridToXml.php |  2 +-
 .../Ui/Controller/Adminhtml/Index/Render.php  |  2 +-
 .../Adminhtml/Export/GridToCsvTest.php        |  2 +-
 .../Adminhtml/Export/GridToXmlTest.php        |  2 +-
 .../Adminhtml/Url/Rewrite/CategoriesJson.php  |  2 +-
 .../Adminhtml/Url/Rewrite/CmsPageGrid.php     |  2 +-
 .../Adminhtml/Url/Rewrite/Delete.php          |  2 +-
 .../Controller/Adminhtml/Url/Rewrite/Edit.php |  2 +-
 .../Adminhtml/Url/Rewrite/Index.php           |  2 +-
 .../Adminhtml/Url/Rewrite/ProductGrid.php     |  2 +-
 .../Controller/Adminhtml/Url/Rewrite/Save.php |  2 +-
 .../Adminhtml/Auth/Forgotpassword.php         |  2 +-
 .../Adminhtml/Auth/ResetPassword.php          |  2 +-
 .../Adminhtml/Auth/ResetPasswordPost.php      |  2 +-
 .../User/Controller/Adminhtml/Locks/Grid.php  |  2 +-
 .../User/Controller/Adminhtml/Locks/Index.php |  2 +-
 .../Controller/Adminhtml/Locks/MassUnlock.php |  2 +-
 .../User/Controller/Adminhtml/User/Delete.php |  2 +-
 .../User/Controller/Adminhtml/User/Edit.php   |  2 +-
 .../User/Controller/Adminhtml/User/Index.php  |  2 +-
 .../Adminhtml/User/InvalidateToken.php        |  2 +-
 .../Controller/Adminhtml/User/NewAction.php   |  2 +-
 .../Controller/Adminhtml/User/Role/Delete.php |  2 +-
 .../Adminhtml/User/Role/EditRole.php          |  2 +-
 .../Adminhtml/User/Role/Editrolegrid.php      |  2 +-
 .../Controller/Adminhtml/User/Role/Index.php  |  2 +-
 .../Adminhtml/User/Role/RoleGrid.php          |  2 +-
 .../Adminhtml/User/Role/SaveRole.php          |  2 +-
 .../Controller/Adminhtml/User/RoleGrid.php    |  2 +-
 .../Controller/Adminhtml/User/RolesGrid.php   |  2 +-
 .../User/Controller/Adminhtml/User/Save.php   |  2 +-
 .../Controller/Adminhtml/User/Validate.php    |  2 +-
 .../Adminhtml/System/Variable/Delete.php      |  2 +-
 .../Adminhtml/System/Variable/Edit.php        |  2 +-
 .../Adminhtml/System/Variable/Index.php       |  2 +-
 .../Adminhtml/System/Variable/NewAction.php   |  2 +-
 .../Adminhtml/System/Variable/Save.php        |  2 +-
 .../Adminhtml/System/Variable/Validate.php    |  2 +-
 .../System/Variable/WysiwygPlugin.php         |  2 +-
 .../System/Variable/ValidateTest.php          |  2 +-
 .../Version/Controller/Index/Index.php        |  2 +-
 .../Adminhtml/Widget/BuildWidget.php          |  2 +-
 .../Controller/Adminhtml/Widget/Index.php     |  2 +-
 .../Adminhtml/Widget/Instance/Blocks.php      |  2 +-
 .../Adminhtml/Widget/Instance/Categories.php  |  2 +-
 .../Adminhtml/Widget/Instance/Delete.php      |  2 +-
 .../Adminhtml/Widget/Instance/Edit.php        |  2 +-
 .../Adminhtml/Widget/Instance/Index.php       |  2 +-
 .../Adminhtml/Widget/Instance/NewAction.php   |  2 +-
 .../Adminhtml/Widget/Instance/Products.php    |  2 +-
 .../Adminhtml/Widget/Instance/Save.php        |  2 +-
 .../Adminhtml/Widget/Instance/Template.php    |  2 +-
 .../Adminhtml/Widget/Instance/Validate.php    |  2 +-
 .../Adminhtml/Widget/LoadOptions.php          |  2 +-
 .../Widget/Instance/CategoriesTest.php        |  2 +-
 .../Magento/Wishlist/Controller/Index/Add.php |  2 +-
 .../Wishlist/Controller/Index/Allcart.php     |  2 +-
 .../Wishlist/Controller/Index/Cart.php        |  2 +-
 .../Wishlist/Controller/Index/Configure.php   |  2 +-
 .../Controller/Index/DownloadCustomOption.php |  2 +-
 .../Wishlist/Controller/Index/Fromcart.php    |  2 +-
 .../Wishlist/Controller/Index/Index.php       |  2 +-
 .../Wishlist/Controller/Index/Remove.php      |  2 +-
 .../Wishlist/Controller/Index/Send.php        |  2 +-
 .../Wishlist/Controller/Index/Share.php       |  2 +-
 .../Wishlist/Controller/Index/Update.php      |  2 +-
 .../Controller/Index/UpdateItemOptions.php    |  2 +-
 .../Wishlist/Controller/Shared/Allcart.php    |  2 +-
 .../Wishlist/Controller/Shared/Cart.php       |  2 +-
 .../Wishlist/Controller/Shared/Index.php      |  2 +-
 .../Unit/Controller/Index/AllcartTest.php     |  6 +++---
 .../Test/Unit/Controller/Index/CartTest.php   | 12 +++++------
 .../Unit/Controller/Index/FromcartTest.php    |  8 ++++----
 .../Test/Unit/Controller/Index/IndexTest.php  |  4 ++--
 .../Test/Unit/Controller/Index/RemoveTest.php |  8 ++++----
 .../Test/Unit/Controller/Index/SendTest.php   | 10 +++++-----
 .../Test/Unit/Controller/Index/ShareTest.php  |  4 ++--
 .../Index/UpdateItemOptionsTest.php           | 10 +++++-----
 .../Unit/Controller/Shared/AllcartTest.php    |  4 ++--
 .../Test/Unit/Controller/Shared/CartTest.php  |  8 ++++----
 .../TestModule1/Controller/CookieTester.php   |  2 +-
 .../Backend/Controller/Adminhtml/AuthTest.php | 10 +++++-----
 .../Controller/Adminhtml/IndexTest.php        |  6 +++---
 .../Product/Action/AttributeTest.php          |  4 ++--
 .../Product/Stub/ProductControllerStub.php    |  2 +-
 .../System/Currency/FetchRatesTest.php        |  2 +-
 .../Controller/Billing/AgreementTest.php      |  2 +-
 .../Adminhtml/Order/Stub/OrderCreateStub.php  |  2 +-
 .../Controller/Adminhtml/Noroute.php          |  2 +-
 .../User/Controller/Adminhtml/AuthTest.php    | 14 ++++++-------
 .../Controller/Adminhtml/User/RoleTest.php    |  4 ++--
 .../Magento/Framework/App/Action/Action.php   |  6 +++---
 .../Magento/Framework/App/Action/Forward.php  |  2 +-
 .../Magento/Framework/App/Action/Redirect.php |  2 +-
 .../Magento/Framework/App/ActionInterface.php |  2 +-
 .../Magento/Framework/App/FrontController.php |  2 +-
 .../App/Test/Unit/Action/ActionTest.php       |  4 ++--
 .../App/Test/Unit/Action/ForwardTest.php      |  2 +-
 .../App/Test/Unit/Action/Stub/ActionStub.php  |  2 +-
 .../Framework/Controller/Index/Index.php      |  2 +-
 .../Framework/Controller/Noroute/Index.php    |  2 +-
 1074 files changed, 1408 insertions(+), 1408 deletions(-)

diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php
index 793cbe22525..53f8a7fc3ae 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php
@@ -13,7 +13,7 @@ class AjaxMarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Not
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->getPostValue()) {
             return;
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Index.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Index.php
index 15b88e4c2b6..df4b3465ad9 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Index.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\AdminNotification\Controller\Adminhtml\Notification
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu(
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MarkAsRead.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MarkAsRead.php
index bcf66825edf..fe11c65da69 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MarkAsRead.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MarkAsRead.php
@@ -11,7 +11,7 @@ class MarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Notific
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $notificationId = (int)$this->getRequest()->getParam('id');
         if ($notificationId) {
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassMarkAsRead.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassMarkAsRead.php
index 78090163aa6..3f923e05797 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassMarkAsRead.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassMarkAsRead.php
@@ -11,7 +11,7 @@ class MassMarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Not
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $ids = $this->getRequest()->getParam('notification');
         if (!is_array($ids)) {
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassRemove.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassRemove.php
index 4b0068520ba..fd73d3cece4 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassRemove.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassRemove.php
@@ -11,7 +11,7 @@ class MassRemove extends \Magento\AdminNotification\Controller\Adminhtml\Notific
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $ids = $this->getRequest()->getParam('notification');
         if (!is_array($ids)) {
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Remove.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Remove.php
index b4fe7e0e295..81a62e76134 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Remove.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Remove.php
@@ -11,7 +11,7 @@ class Remove extends \Magento\AdminNotification\Controller\Adminhtml\Notificatio
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($id = $this->getRequest()->getParam('id')) {
             $model = $this->_objectManager->create('Magento\AdminNotification\Model\Inbox')->load($id);
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
index 4bf51c2df29..e173f1df102 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
@@ -38,7 +38,7 @@ class ListAction extends \Magento\Backend\App\AbstractAction
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $severity = $this->getRequest()->getParam('severity');
         if ($severity) {
diff --git a/app/code/Magento/AdvancedPricingImportExport/Controller/Adminhtml/Export/GetFilter.php b/app/code/Magento/AdvancedPricingImportExport/Controller/Adminhtml/Export/GetFilter.php
index 945c25b67b9..d41f9c69c2a 100644
--- a/app/code/Magento/AdvancedPricingImportExport/Controller/Adminhtml/Export/GetFilter.php
+++ b/app/code/Magento/AdvancedPricingImportExport/Controller/Adminhtml/Export/GetFilter.php
@@ -17,7 +17,7 @@ class GetFilter extends ExportController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getParams();
         if ($this->getRequest()->isXmlHttpRequest() && $data) {
diff --git a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Place.php b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Place.php
index 3da7f100f75..2934f7a00cc 100644
--- a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Place.php
+++ b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Place.php
@@ -51,7 +51,7 @@ class Place extends \Magento\Sales\Controller\Adminhtml\Order\Create
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.UnusedLocalVariable)
      */
-    public function execute()
+    public function executeInternal()
     {
         $paymentParam = $this->getRequest()->getParam('payment');
         $controller = $this->getRequest()->getParam('controller');
diff --git a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Redirect.php b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Redirect.php
index d147c3d91e1..2387a1bf5b7 100644
--- a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Redirect.php
+++ b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Redirect.php
@@ -90,7 +90,7 @@ class Redirect extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirectParams = $this->getRequest()->getParams();
         $params = [];
diff --git a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/ReturnQuote.php b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/ReturnQuote.php
index 7ac7153fecf..ae85af3ad68 100644
--- a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/ReturnQuote.php
+++ b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/ReturnQuote.php
@@ -31,7 +31,7 @@ class ReturnQuote extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_returnQuote();
         $this->getResponse()->representJson(
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/BackendResponse.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/BackendResponse.php
index 6f0696fbf9d..5dc96c39a91 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/BackendResponse.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/BackendResponse.php
@@ -14,7 +14,7 @@ class BackendResponse extends \Magento\Authorizenet\Controller\Directpost\Paymen
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_responseAction('adminhtml');
     }
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Place.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Place.php
index 2cb3ea54210..7a13d0ba6c0 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Place.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Place.php
@@ -71,7 +71,7 @@ class Place extends Payment
      *
      * @return string
      */
-    public function execute()
+    public function executeInternal()
     {
         $paymentParam = $this->getRequest()->getParam('payment');
         $controller = $this->getRequest()->getParam('controller');
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Redirect.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Redirect.php
index 0a0fc1a9906..421e4f04fe1 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Redirect.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Redirect.php
@@ -15,7 +15,7 @@ class Redirect extends \Magento\Authorizenet\Controller\Directpost\Payment
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $helper = $this->dataFactory->create('frontend');
 
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Response.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Response.php
index 7a25db11b46..541571db6d9 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Response.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Response.php
@@ -14,7 +14,7 @@ class Response extends \Magento\Authorizenet\Controller\Directpost\Payment
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_responseAction('frontend');
     }
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/ReturnQuote.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/ReturnQuote.php
index 1cef3b03286..b90112bca7f 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/ReturnQuote.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/ReturnQuote.php
@@ -13,7 +13,7 @@ class ReturnQuote extends \Magento\Authorizenet\Controller\Directpost\Payment
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_returnCustomerQuote();
         $this->getResponse()->representJson(
diff --git a/app/code/Magento/Authorizenet/Test/Unit/Controller/Directpost/Payment/PlaceTest.php b/app/code/Magento/Authorizenet/Test/Unit/Controller/Directpost/Payment/PlaceTest.php
index 517b9e41f7d..a80b7b41420 100644
--- a/app/code/Magento/Authorizenet/Test/Unit/Controller/Directpost/Payment/PlaceTest.php
+++ b/app/code/Magento/Authorizenet/Test/Unit/Controller/Directpost/Payment/PlaceTest.php
@@ -205,7 +205,7 @@ class PlaceTest extends \PHPUnit_Framework_TestCase
             ->method('jsonEncode')
             ->with($result);
 
-        $this->placeOrderController->execute();
+        $this->placeOrderController->executeInternal();
     }
 
     /**
@@ -243,7 +243,7 @@ class PlaceTest extends \PHPUnit_Framework_TestCase
             ->method('jsonEncode')
             ->with($result);
 
-        $this->placeOrderController->execute();
+        $this->placeOrderController->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Backend/App/AbstractAction.php b/app/code/Magento/Backend/App/AbstractAction.php
index c41338591d3..e84bee226d2 100644
--- a/app/code/Magento/Backend/App/AbstractAction.php
+++ b/app/code/Magento/Backend/App/AbstractAction.php
@@ -200,10 +200,10 @@ abstract class AbstractAction extends \Magento\Framework\App\Action\Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(\Magento\Framework\App\RequestInterface $request)
+    public function execute(\Magento\Framework\App\RequestInterface $request)
     {
         if (!$this->_processUrlKeys()) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         if ($request->isDispatched() && $request->getActionName() !== 'denied' && !$this->_isAllowed()) {
@@ -223,7 +223,7 @@ abstract class AbstractAction extends \Magento\Framework\App\Action\Action
 
         $this->_processLocaleSettings();
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Ajax/Translate.php b/app/code/Magento/Backend/Controller/Adminhtml/Ajax/Translate.php
index 143b12d06c3..c8e72073581 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Ajax/Translate.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Ajax/Translate.php
@@ -40,7 +40,7 @@ class Translate extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $translate = (array)$this->getRequest()->getPost('translate');
 
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedIframe.php b/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedIframe.php
index 08f81426145..42836b603d0 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedIframe.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedIframe.php
@@ -41,7 +41,7 @@ class DeniedIframe extends \Magento\Backend\Controller\Adminhtml\Auth
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
         $resultRaw = $this->resultRawFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedJson.php b/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedJson.php
index 43062aa6908..bd2d2150076 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedJson.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedJson.php
@@ -43,7 +43,7 @@ class DeniedJson extends \Magento\Backend\Controller\Adminhtml\Auth
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php
index 6aed5e22c52..e29183357ea 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php
@@ -32,7 +32,7 @@ class Login extends \Magento\Backend\Controller\Adminhtml\Auth
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_auth->isLoggedIn()) {
             if ($this->_auth->getAuthStorage()->isFirstPageAfterLogin()) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Logout.php b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Logout.php
index 098022bed0a..a8b3973595e 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Logout.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Logout.php
@@ -13,7 +13,7 @@ class Logout extends \Magento\Backend\Controller\Adminhtml\Auth
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_auth->logout();
         $this->messageManager->addSuccess(__('You have logged out.'));
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/BackendApp/Redirect.php b/app/code/Magento/Backend/Controller/Adminhtml/BackendApp/Redirect.php
index f622e39e491..6ac1f14d193 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/BackendApp/Redirect.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/BackendApp/Redirect.php
@@ -39,7 +39,7 @@ class Redirect extends AbstractAction
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if ($this->getRequest()->getParam('app')) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanImages.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanImages.php
index 2cb699549bd..75ea9ccaa84 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanImages.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanImages.php
@@ -16,7 +16,7 @@ class CleanImages extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_objectManager->create('Magento\Catalog\Model\Product\Image')->clearCache();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanMedia.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanMedia.php
index 41174c3c1f2..553e22810c1 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanMedia.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanMedia.php
@@ -16,7 +16,7 @@ class CleanMedia extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_objectManager->get('Magento\Framework\View\Asset\MergeService')->cleanMergedJsCss();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanStaticFiles.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanStaticFiles.php
index 4ca025b3ec5..29529085927 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanStaticFiles.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanStaticFiles.php
@@ -15,7 +15,7 @@ class CleanStaticFiles extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_objectManager->get('Magento\Framework\App\State\CleanupFiles')->clearMaterializedViewFiles();
         $this->_eventManager->dispatch('clean_static_files_cache_after');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushAll.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushAll.php
index 049f5fa3cb3..2bdddc1048c 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushAll.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushAll.php
@@ -13,7 +13,7 @@ class FlushAll extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_eventManager->dispatch('adminhtml_cache_flush_all');
         /** @var $cacheFrontend \Magento\Framework\Cache\FrontendInterface */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushSystem.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushSystem.php
index bdd099206ed..35885a93ee9 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushSystem.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushSystem.php
@@ -13,7 +13,7 @@ class FlushSystem extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var $cacheFrontend \Magento\Framework\Cache\FrontendInterface */
         foreach ($this->_cacheFrontendPool as $cacheFrontend) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/Index.php
index 1078cdf7201..2d0fd902112 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassDisable.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassDisable.php
index 98703f0bfa1..5ed4d74b9e6 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassDisable.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassDisable.php
@@ -16,7 +16,7 @@ class MassDisable extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $types = $this->getRequest()->getParam('types');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassEnable.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassEnable.php
index 3fd92bc7077..361e4c12a7e 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassEnable.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassEnable.php
@@ -16,7 +16,7 @@ class MassEnable extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $types = $this->getRequest()->getParam('types');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassRefresh.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassRefresh.php
index 420d8757e5b..d44b9996429 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassRefresh.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassRefresh.php
@@ -16,7 +16,7 @@ class MassRefresh extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $types = $this->getRequest()->getParam('types');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/AjaxBlock.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/AjaxBlock.php
index e51999e6fc9..b5823437cd8 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/AjaxBlock.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/AjaxBlock.php
@@ -36,7 +36,7 @@ class AjaxBlock extends \Magento\Backend\Controller\Adminhtml\Dashboard
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $output = '';
         $blockTab = $this->getRequest()->getParam('block');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersMost.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersMost.php
index 16f345f31fd..6a942ca15f0 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersMost.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersMost.php
@@ -13,7 +13,7 @@ class CustomersMost extends AjaxBlock
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $output = $this->layoutFactory->create()
             ->createBlock('Magento\Backend\Block\Dashboard\Tab\Customers\Most')
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersNewest.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersNewest.php
index d1d460971fb..1e531683a74 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersNewest.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersNewest.php
@@ -13,7 +13,7 @@ class CustomersNewest extends AjaxBlock
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $output = $this->layoutFactory->create()
             ->createBlock('Magento\Backend\Block\Dashboard\Tab\Customers\Newest')
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Index.php
index 4b6474bfee4..1c3098e82bc 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Index.php
@@ -28,7 +28,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\Dashboard
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/ProductsViewed.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/ProductsViewed.php
index 8d5862fcc22..1931f7284d4 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/ProductsViewed.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/ProductsViewed.php
@@ -13,7 +13,7 @@ class ProductsViewed extends AjaxBlock
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $output = $this->layoutFactory->create()
             ->createBlock('Magento\Backend\Block\Dashboard\Tab\Products\Viewed')
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/RefreshStatistics.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/RefreshStatistics.php
index e9e51cd3f1d..943e8e0d2f6 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/RefreshStatistics.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/RefreshStatistics.php
@@ -27,7 +27,7 @@ class RefreshStatistics extends \Magento\Reports\Controller\Adminhtml\Report\Sta
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collectionsNames = array_values($this->reportTypes);
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Tunnel.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Tunnel.php
index f738be1e83a..b4e624b0943 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Tunnel.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Tunnel.php
@@ -36,7 +36,7 @@ class Tunnel extends \Magento\Backend\Controller\Adminhtml\Dashboard
      *
      * @return  \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $error = __('invalid request');
         $httpCode = 400;
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Denied.php b/app/code/Magento/Backend/Controller/Adminhtml/Denied.php
index c77bb09fb00..478cfa7bca0 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Denied.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Denied.php
@@ -28,7 +28,7 @@ class Denied extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_auth->isLoggedIn()) {
             /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Index/ChangeLocale.php b/app/code/Magento/Backend/Controller/Adminhtml/Index/ChangeLocale.php
index 9505f4b1d6d..cdb9fa361c3 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Index/ChangeLocale.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Index/ChangeLocale.php
@@ -13,7 +13,7 @@ class ChangeLocale extends \Magento\Backend\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirectResult = $this->resultRedirectFactory->create();
         $redirectResult->setRefererUrl();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Index/GlobalSearch.php b/app/code/Magento/Backend/Controller/Adminhtml/Index/GlobalSearch.php
index afa3019cfd6..8e69d2bc6a2 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Index/GlobalSearch.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Index/GlobalSearch.php
@@ -40,7 +40,7 @@ class GlobalSearch extends \Magento\Backend\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $items = [];
 
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Index/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/Index/Index.php
index 0298a2b9d36..0fc32f759c1 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Index/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Index/Index.php
@@ -14,7 +14,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Noroute/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/Noroute/Index.php
index a11957e1b7d..6f8101396f7 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Noroute/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Noroute/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Index.php
index 950b72df2df..4c63db63ef3 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Index.php
@@ -28,7 +28,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\System\Account
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->resultPageFactory->create();
         $resultPage->getConfig()->getTitle()->prepend(__('My Account'));
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php
index 4607cd61274..31f60ebc84d 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php
@@ -18,7 +18,7 @@ class Save extends \Magento\Backend\Controller\Adminhtml\System\Account
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $userId = $this->_objectManager->get('Magento\Backend\Model\Auth\Session')->getUser()->getId();
         $password = (string)$this->getRequest()->getParam('password');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Delete.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Delete.php
index cec54abf608..a1cdb07d9f5 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Delete.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         if ($id) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Edit.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Edit.php
index 7d3445f51d1..afac63a56c6 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Edit.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Edit.php
@@ -11,7 +11,7 @@ class Edit extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Grid.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Grid.php
index 1c8dca8b425..b0d9594e04a 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Grid.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Grid.php
@@ -11,7 +11,7 @@ class Grid extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Index.php
index b1538003926..0df90982922 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/NewAction.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/NewAction.php
index 3734ef53d73..6521aa114f7 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/NewAction.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/NewAction.php
@@ -11,7 +11,7 @@ class NewAction extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php
index 1d6cc8c6c23..7e52e57ecad 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php
@@ -28,7 +28,7 @@ class Save extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Index.php
index 4af63776d24..0203351b888 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Index.php
@@ -28,7 +28,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\System
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/SetStore.php b/app/code/Magento/Backend/Controller/Adminhtml/System/SetStore.php
index a53452ec158..962a4b882d9 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/SetStore.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/SetStore.php
@@ -11,7 +11,7 @@ class SetStore extends \Magento\Backend\Controller\Adminhtml\System
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = (int)$this->getRequest()->getParam('store');
         if ($storeId) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroup.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroup.php
index 3604948ee6b..e6066ce3d2a 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroup.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroup.php
@@ -11,7 +11,7 @@ class DeleteGroup extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id', null);
         if (!($model = $this->_objectManager->create('Magento\Store\Model\Group')->load($itemId))) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroupPost.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroupPost.php
index fe67adeca90..28557917199 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroupPost.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroupPost.php
@@ -13,7 +13,7 @@ class DeleteGroupPost extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id');
 
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStore.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStore.php
index 826f8493fa0..82486686752 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStore.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStore.php
@@ -11,7 +11,7 @@ class DeleteStore extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id', null);
         if (!($model = $this->_objectManager->create('Magento\Store\Model\Store')->load($itemId))) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php
index c7764a1b204..589be3238e5 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php
@@ -15,7 +15,7 @@ class DeleteStorePost extends \Magento\Backend\Controller\Adminhtml\System\Store
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id');
 
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsite.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsite.php
index ea67a101763..b2c88101d37 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsite.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsite.php
@@ -11,7 +11,7 @@ class DeleteWebsite extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id', null);
         if (!($model = $this->_objectManager->create('Magento\Store\Model\Website')->load($itemId))) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsitePost.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsitePost.php
index 6951bc3b3a9..dc705339ddd 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsitePost.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsitePost.php
@@ -13,7 +13,7 @@ class DeleteWebsitePost extends \Magento\Backend\Controller\Adminhtml\System\Sto
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id');
         $model = $this->_objectManager->create('Magento\Store\Model\Website');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditGroup.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditGroup.php
index f7403c9eaa2..4e591b0b106 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditGroup.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditGroup.php
@@ -11,7 +11,7 @@ class EditGroup extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('store_type', 'group');
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditStore.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditStore.php
index f6521a418f4..0d9465c4b8d 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditStore.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditStore.php
@@ -13,7 +13,7 @@ class EditStore extends \Magento\Backend\Controller\Adminhtml\System\Store
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_getSession()->getPostData()) {
             $this->_coreRegistry->register('store_post_data', $this->_getSession()->getPostData());
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditWebsite.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditWebsite.php
index 1fe94f98173..b26692e6f54 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditWebsite.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditWebsite.php
@@ -11,7 +11,7 @@ class EditWebsite extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('store_type', 'website');
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Index.php
index b1f9cf67309..a91d61bfb20 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->resultPageFactory->create();
         $resultPage->getConfig()->getTitle()->prepend(__('Stores'));
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewGroup.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewGroup.php
index 70f9d8b726b..f020762e613 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewGroup.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewGroup.php
@@ -11,7 +11,7 @@ class NewGroup extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('store_type', 'group');
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewStore.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewStore.php
index 817c67c8be9..b59df090433 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewStore.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewStore.php
@@ -11,7 +11,7 @@ class NewStore extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_coreRegistry->registry('store_type')) {
             $this->_coreRegistry->register('store_type', 'store');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewWebsite.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewWebsite.php
index 65bdd1ee1ed..cf514c49d02 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewWebsite.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewWebsite.php
@@ -11,7 +11,7 @@ class NewWebsite extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('store_type', 'website');
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php
index 7f2152e1e89..de1d131eaf8 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Backend\Controller\Adminhtml\System\Store
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $redirectResult */
         $redirectResult = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php b/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php
index fa8eb043b33..d8a8df5bc17 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php
@@ -8,7 +8,7 @@ namespace Magento\Backend\Test\Unit\App\Action\Stub;
 
 class ActionStub extends \Magento\Backend\App\Action
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanStaticFilesTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanStaticFilesTest.php
index 0e78f533c85..dfc5059ec47 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanStaticFilesTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanStaticFilesTest.php
@@ -94,6 +94,6 @@ class CleanStaticFilesTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
 
         // Run
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/RefreshStatisticsTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/RefreshStatisticsTest.php
index 76d670fef54..a224583fe5a 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/RefreshStatisticsTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/RefreshStatisticsTest.php
@@ -128,7 +128,7 @@ class RefreshStatisticsTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->refreshStatisticsController->execute()
+            $this->refreshStatisticsController->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/TunnelTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/TunnelTest.php
index 2e5cd51547e..cae77b8ad3c 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/TunnelTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/TunnelTest.php
@@ -92,7 +92,7 @@ class TunnelTest extends \PHPUnit_Framework_TestCase
             ->with('success_msg')
             ->willReturnSelf();
 
-        $controller->execute();
+        $controller->executeInternal();
         $this->assertEquals('success_msg', $controller->getResponse()->getBody());
     }
 
@@ -112,7 +112,7 @@ class TunnelTest extends \PHPUnit_Framework_TestCase
             ->with('Service unavailable: invalid request')
             ->willReturnSelf();
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testTunnelAction503()
@@ -164,7 +164,7 @@ class TunnelTest extends \PHPUnit_Framework_TestCase
             ->with('Service unavailable: see error log for details')
             ->willReturnSelf();
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/System/Account/SaveTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/System/Account/SaveTest.php
index b63c4f1e1a5..a68d23ab22c 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/System/Account/SaveTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/System/Account/SaveTest.php
@@ -199,6 +199,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->_messagesMock->expects($this->once())->method('addSuccess')->with($this->equalTo($testedMessage));
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Create.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Create.php
index abfd789889b..caa8da583a6 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Create.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Create.php
@@ -17,7 +17,7 @@ class Create extends \Magento\Backup\Controller\Adminhtml\Index
      * @return void|\Magento\Backend\App\Action
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->isAjax()) {
             return $this->_redirect('*/*/index');
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Download.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Download.php
index c9fe2c57586..a5ea380d2b6 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Download.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Download.php
@@ -49,7 +49,7 @@ class Download extends \Magento\Backup\Controller\Adminhtml\Index
      *
      * @return void|\Magento\Backend\App\Action
      */
-    public function execute()
+    public function executeInternal()
     {
         /* @var $backup \Magento\Backup\Model\Backup */
         $backup = $this->_backupModelFactory->create(
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Grid.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Grid.php
index 0b932103382..f1b60948461 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Grid.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Backup\Controller\Adminhtml\Index
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Index.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Index.php
index 6d3e4f75f4a..5335d40f9a8 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Index.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Backup\Controller\Adminhtml\Index
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/MassDelete.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/MassDelete.php
index b0c1af3a1f4..c9958e65d66 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/MassDelete.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/MassDelete.php
@@ -13,7 +13,7 @@ class MassDelete extends \Magento\Backup\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\App\Action
      */
-    public function execute()
+    public function executeInternal()
     {
         $backupIds = $this->getRequest()->getParam('ids', []);
 
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Rollback.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Rollback.php
index fdb4714f0ac..bd80aff5feb 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Rollback.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Rollback.php
@@ -19,7 +19,7 @@ class Rollback extends \Magento\Backup\Controller\Adminhtml\Index
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_objectManager->get('Magento\Backup\Helper\Data')->isRollbackAllowed()) {
             $this->_forward('denied');
diff --git a/app/code/Magento/Backup/Test/Unit/Controller/Adminhtml/Index/DownloadTest.php b/app/code/Magento/Backup/Test/Unit/Controller/Adminhtml/Index/DownloadTest.php
index 21d27ef0c5a..6d2c6d515f1 100644
--- a/app/code/Magento/Backup/Test/Unit/Controller/Adminhtml/Index/DownloadTest.php
+++ b/app/code/Magento/Backup/Test/Unit/Controller/Adminhtml/Index/DownloadTest.php
@@ -143,7 +143,7 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Backup\Controller\Adminhtml\Index\Download::execute
+     * @covers \Magento\Backup\Controller\Adminhtml\Index\Download::executeInternal
      */
     public function testExecuteBackupFound()
     {
@@ -201,11 +201,11 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($this->resultRawMock);
 
-        $this->assertSame($this->resultRawMock, $this->downloadController->execute());
+        $this->assertSame($this->resultRawMock, $this->downloadController->executeInternal());
     }
 
     /**
-     * @covers \Magento\Backup\Controller\Adminhtml\Index\Download::execute
+     * @covers \Magento\Backup\Controller\Adminhtml\Index\Download::executeInternal
      * @param int $time
      * @param bool $exists
      * @param int $existsCount
@@ -240,7 +240,7 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($this->resultRedirectMock);
 
-        $this->assertSame($this->resultRedirectMock, $this->downloadController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->downloadController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/AjaxSave.php b/app/code/Magento/Braintree/Controller/Creditcard/AjaxSave.php
index 0177988ea45..c5d284c62cd 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/AjaxSave.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/AjaxSave.php
@@ -14,7 +14,7 @@ class AjaxSave extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->vault->processNonce(
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Delete.php b/app/code/Magento/Braintree/Controller/Creditcard/Delete.php
index 2dd4c4f9b13..a1f8d5e55a9 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Delete.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Delete.php
@@ -12,7 +12,7 @@ class Delete extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\View\Result\Page|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->hasToken()) {
             if (!$this->vault->storedCard($this->hasToken())) {
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/DeleteConfirm.php b/app/code/Magento/Braintree/Controller/Creditcard/DeleteConfirm.php
index bef7c62f781..20102ff5c36 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/DeleteConfirm.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/DeleteConfirm.php
@@ -29,7 +29,7 @@ class DeleteConfirm extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($token = $this->hasToken()) {
             $result = $this->vault->deleteCard($token);
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Edit.php b/app/code/Magento/Braintree/Controller/Creditcard/Edit.php
index 864d53f5563..7e88faeeeed 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Edit.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Edit.php
@@ -12,7 +12,7 @@ class Edit extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\View\Result\Page|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->hasToken()) {
             if (!$this->vault->storedCard($this->hasToken())) {
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Generate.php b/app/code/Magento/Braintree/Controller/Creditcard/Generate.php
index 7bfcdfde5b9..41c13f08cda 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Generate.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Generate.php
@@ -19,7 +19,7 @@ class Generate extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if ($this->hasToken()) {
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Index.php b/app/code/Magento/Braintree/Controller/Creditcard/Index.php
index db240cda6fc..9e94ccdb307 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Index.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/NewCard.php b/app/code/Magento/Braintree/Controller/Creditcard/NewCard.php
index 000ba39e0ab..1ac92a741d1 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/NewCard.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/NewCard.php
@@ -12,7 +12,7 @@ class NewCard extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Save.php b/app/code/Magento/Braintree/Controller/Creditcard/Save.php
index d51c3de2828..9080a2a3b65 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Save.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Save.php
@@ -12,7 +12,7 @@ class Save extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->messageManager->addError(__('There was error during saving card data'));
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Braintree/Controller/MyCreditCards.php b/app/code/Magento/Braintree/Controller/MyCreditCards.php
index 122edc79ca2..04ff04202bc 100644
--- a/app/code/Magento/Braintree/Controller/MyCreditCards.php
+++ b/app/code/Magento/Braintree/Controller/MyCreditCards.php
@@ -68,7 +68,7 @@ abstract class MyCreditCards extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $loginUrl = $this->customerUrl->getLoginUrl();
         if (!$this->customerSession->authenticate($loginUrl)) {
@@ -82,7 +82,7 @@ abstract class MyCreditCards extends \Magento\Framework\App\Action\Action
             return $resultRedirect;
         }
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Braintree/Controller/PayPal.php b/app/code/Magento/Braintree/Controller/PayPal.php
index e24bd47e8d3..b85b605c9ef 100644
--- a/app/code/Magento/Braintree/Controller/PayPal.php
+++ b/app/code/Magento/Braintree/Controller/PayPal.php
@@ -77,7 +77,7 @@ abstract class PayPal extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->braintreePayPalConfig->isActive() || !$this->braintreePayPalConfig->isShortcutCheckoutEnabled()) {
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
@@ -87,7 +87,7 @@ abstract class PayPal extends \Magento\Framework\App\Action\Action
             return $resultRedirect;
         }
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Braintree/Controller/PayPal/GetButtonData.php b/app/code/Magento/Braintree/Controller/PayPal/GetButtonData.php
index 4d070aa489d..4be1d5aaebd 100644
--- a/app/code/Magento/Braintree/Controller/PayPal/GetButtonData.php
+++ b/app/code/Magento/Braintree/Controller/PayPal/GetButtonData.php
@@ -37,7 +37,7 @@ class GetButtonData extends \Magento\Framework\App\Action\Action
      * @return ResultInterface
      * @throws LocalizedException
      */
-    public function execute()
+    public function executeInternal()
     {
         $isAjax = $this->_request->getParam('isAjax');
 
diff --git a/app/code/Magento/Braintree/Controller/PayPal/PlaceOrder.php b/app/code/Magento/Braintree/Controller/PayPal/PlaceOrder.php
index 45041a25ef0..febdcf06fed 100644
--- a/app/code/Magento/Braintree/Controller/PayPal/PlaceOrder.php
+++ b/app/code/Magento/Braintree/Controller/PayPal/PlaceOrder.php
@@ -48,7 +48,7 @@ class PlaceOrder extends \Magento\Braintree\Controller\PayPal
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if (!$this->agreementsValidator->isValid(array_keys($this->getRequest()->getPost('agreement', [])))) {
diff --git a/app/code/Magento/Braintree/Controller/PayPal/Review.php b/app/code/Magento/Braintree/Controller/PayPal/Review.php
index ef01f89b38e..48634e9fe7b 100644
--- a/app/code/Magento/Braintree/Controller/PayPal/Review.php
+++ b/app/code/Magento/Braintree/Controller/PayPal/Review.php
@@ -49,7 +49,7 @@ class Review extends \Magento\Braintree\Controller\PayPal
     /**
      * @return $this|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $paymentMethodNonce = $this->getRequest()->getParam('payment_method_nonce');
         $details = $this->getRequest()->getParam('details');
diff --git a/app/code/Magento/Braintree/Controller/PayPal/SaveShippingMethod.php b/app/code/Magento/Braintree/Controller/PayPal/SaveShippingMethod.php
index d8041b7186e..6ec5b0c18e2 100644
--- a/app/code/Magento/Braintree/Controller/PayPal/SaveShippingMethod.php
+++ b/app/code/Magento/Braintree/Controller/PayPal/SaveShippingMethod.php
@@ -15,7 +15,7 @@ class SaveShippingMethod extends \Magento\Braintree\Controller\PayPal
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $isAjax = $this->getRequest()->getParam('isAjax');
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/GetButtonDataTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/GetButtonDataTest.php
index 75718aa2f9c..ee314f710e2 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/GetButtonDataTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/GetButtonDataTest.php
@@ -85,7 +85,7 @@ class GetButtonDataTest extends \PHPUnit_Framework_TestCase
             ->willReturn($data['currency']);
 
         $getButtonData = new GetButtonData($this->contextMock, $this->checkoutSessionMock);
-        $getButtonData->execute();
+        $getButtonData->executeInternal();
     }
 
     /**
@@ -168,7 +168,7 @@ class GetButtonDataTest extends \PHPUnit_Framework_TestCase
         ->method('getQuote');
 
         $getButtonData = new GetButtonData($this->contextMock, $this->checkoutSessionMock);
-        $getButtonData->execute();
+        $getButtonData->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/PlaceOrderTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/PlaceOrderTest.php
index e27de2bedd4..1d4fb2a241b 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/PlaceOrderTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/PlaceOrderTest.php
@@ -204,7 +204,7 @@ class PlaceOrderTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
 
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteException()
@@ -234,6 +234,6 @@ class PlaceOrderTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
 
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/ReviewTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/ReviewTest.php
index bac4378b974..c7fc1da8662 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/ReviewTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/ReviewTest.php
@@ -253,7 +253,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->with($paymentMethodNonce, ['email' => $email]);
         $resultPageMock = $this->setupReviewPage($quoteMock);
 
-        $this->assertEquals($resultPageMock, $this->controller->execute());
+        $this->assertEquals($resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteWithBillingAddress()
@@ -285,7 +285,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->with($paymentMethodNonce, $details);
         $resultPageMock = $this->setupReviewPage($quoteMock);
 
-        $this->assertEquals($resultPageMock, $this->controller->execute());
+        $this->assertEquals($resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteRefresh()
@@ -296,7 +296,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->willReturn(\Magento\Braintree\Model\PaymentMethod\PayPal::METHOD_CODE);
         $resultPageMock = $this->setupReviewPage($quoteMock);
 
-        $this->assertEquals($resultPageMock, $this->controller->execute());
+        $this->assertEquals($resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteNoPayment()
@@ -328,7 +328,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteIncorrectPaymentMathod()
@@ -352,7 +352,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteValidationFailure()
@@ -400,7 +400,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteException()
@@ -447,6 +447,6 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/SaveShippingMethodTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/SaveShippingMethodTest.php
index 38d61187310..c1c5da115fc 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/SaveShippingMethodTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/SaveShippingMethodTest.php
@@ -198,7 +198,7 @@ class SaveShippingMethodTest extends \PHPUnit_Framework_TestCase
             ->with(ResultFactory::TYPE_PAGE)
             ->willReturn($responsePageMock);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteException()
@@ -236,6 +236,6 @@ class SaveShippingMethodTest extends \PHPUnit_Framework_TestCase
             ->method('setBody')
             ->with($html);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPalTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPalTest.php
index b20831f92fe..f9d3db87e6d 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPalTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPalTest.php
@@ -125,7 +125,7 @@ class PayPalTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($resultRedirect);
 
-        $this->assertEquals($resultRedirect, $this->controller->dispatch($this->requestMock));
+        $this->assertEquals($resultRedirect, $this->controller->execute($this->requestMock));
         $this->assertEquals('noRoute', $resultRedirect->getPath()) ;
     }
 
@@ -146,7 +146,7 @@ class PayPalTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($resultRedirect);
 
-        $this->assertEquals($resultRedirect, $this->controller->dispatch($this->requestMock));
+        $this->assertEquals($resultRedirect, $this->controller->execute($this->requestMock));
         $this->assertEquals('noRoute', $resultRedirect->getPath()) ;
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Stub/MyCreditCardsStub.php b/app/code/Magento/Braintree/Test/Unit/Controller/Stub/MyCreditCardsStub.php
index 971edb13bfa..b8abdda7eb0 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Stub/MyCreditCardsStub.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Stub/MyCreditCardsStub.php
@@ -8,7 +8,7 @@ namespace Magento\Braintree\Test\Unit\Controller\Stub;
 
 class MyCreditCardsStub extends \Magento\Braintree\Controller\MyCreditCards
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Stub/PayPalStub.php b/app/code/Magento/Braintree/Test/Unit/Controller/Stub/PayPalStub.php
index b0b5a3dc318..ca9248d5e6b 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Stub/PayPalStub.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Stub/PayPalStub.php
@@ -8,7 +8,7 @@ namespace Magento\Braintree\Test\Unit\Controller\Stub;
 
 class PayPalStub extends \Magento\Braintree\Controller\PayPal
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Product/Edit/Form.php b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Product/Edit/Form.php
index 8323781a07c..2f6f5061a79 100644
--- a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Product/Edit/Form.php
+++ b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Product/Edit/Form.php
@@ -33,7 +33,7 @@ class Form extends \Magento\Catalog\Controller\Adminhtml\Product
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $product = $this->initializationHelper->initialize($this->productBuilder->build($this->getRequest()));
         $this->getResponse()->setBody(
diff --git a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Grid.php b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Grid.php
index 684eb43e4ad..359f69c72e0 100644
--- a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Grid.php
+++ b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Grid.php
@@ -11,7 +11,7 @@ class Grid extends \Magento\Backend\App\Action
     /**
      * @return mixed
      */
-    public function execute()
+    public function executeInternal()
     {
         $index = $this->getRequest()->getParam('index');
         if (!preg_match('/^[a-z0-9_.]*$/i', $index)) {
diff --git a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Search.php b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Search.php
index 46c2fae16f4..6101d8b9593 100644
--- a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Search.php
+++ b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Search.php
@@ -11,7 +11,7 @@ class Search extends \Magento\Backend\App\Action
     /**
      * @return mixed
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->getResponse()->setBody(
             $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Product/Edit/FormTest.php b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Product/Edit/FormTest.php
index 34f249ca2cd..75a14fd13a6 100644
--- a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Product/Edit/FormTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Product/Edit/FormTest.php
@@ -112,6 +112,6 @@ class FormTest extends \PHPUnit_Framework_TestCase
         $layout->expects($this->once())->method('createBlock')->willReturn($block);
         $block->expects($this->once())->method('toHtml')->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/GridTest.php b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/GridTest.php
index c0a7342f824..49a6c22704e 100644
--- a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/GridTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/GridTest.php
@@ -88,7 +88,7 @@ class GridTest extends \PHPUnit_Framework_TestCase
         $block->expects($this->once())->method('setIndex')->willReturnSelf();
         $block->expects($this->once())->method('toHtml')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->controller->execute());
+        $this->assertEquals($this->response, $this->controller->executeInternal());
     }
 
     /**
@@ -99,6 +99,6 @@ class GridTest extends \PHPUnit_Framework_TestCase
     {
         $this->request->expects($this->once())->method('getParam')->with('index')->willReturn('<index"');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/SearchTest.php b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/SearchTest.php
index 2ef224ab717..7f03eeccfd1 100644
--- a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/SearchTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/SearchTest.php
@@ -87,6 +87,6 @@ class SearchTest extends \PHPUnit_Framework_TestCase
         $block->expects($this->once())->method('setFirstShow')->with(true)->willReturnSelf();
         $block->expects($this->once())->method('toHtml')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->controller->execute());
+        $this->assertEquals($this->response, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Captcha/Controller/Adminhtml/Refresh/Refresh.php b/app/code/Magento/Captcha/Controller/Adminhtml/Refresh/Refresh.php
index 2c6ad98a280..7dd6846a3fd 100644
--- a/app/code/Magento/Captcha/Controller/Adminhtml/Refresh/Refresh.php
+++ b/app/code/Magento/Captcha/Controller/Adminhtml/Refresh/Refresh.php
@@ -13,7 +13,7 @@ class Refresh extends \Magento\Backend\App\Action
     /**
      * {@inheritdoc}
      */
-    public function execute()
+    public function executeInternal()
     {
         $formId = $this->getRequest()->getPost('formId');
         $captchaModel = $this->_objectManager->get('Magento\Captcha\Helper\Data')->getCaptcha($formId);
diff --git a/app/code/Magento/Captcha/Controller/Refresh/Index.php b/app/code/Magento/Captcha/Controller/Refresh/Index.php
index f12d17afaa9..6e4a78090bd 100644
--- a/app/code/Magento/Captcha/Controller/Refresh/Index.php
+++ b/app/code/Magento/Captcha/Controller/Refresh/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Framework\App\Action\Action
     /**
      * {@inheritdoc}
      */
-    public function execute()
+    public function executeInternal()
     {
         $formId = $this->_request->getPost('formId');
         if (null === $formId) {
diff --git a/app/code/Magento/Captcha/Test/Unit/Controller/Refresh/IndexTest.php b/app/code/Magento/Captcha/Test/Unit/Controller/Refresh/IndexTest.php
index fd47b19ea90..55f33af2161 100644
--- a/app/code/Magento/Captcha/Test/Unit/Controller/Refresh/IndexTest.php
+++ b/app/code/Magento/Captcha/Test/Unit/Controller/Refresh/IndexTest.php
@@ -100,7 +100,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->responseMock->expects($this->once())->method('representJson')->with(json_encode(['imgSrc' => 'source']));
         $this->flagMock->expects($this->once())->method('set')->with('', 'no-postDispatch', true);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Add.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Add.php
index 5cd9fffd001..9860f99b826 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Add.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Add.php
@@ -30,7 +30,7 @@ class Add extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_objectManager->get('Magento\Backend\Model\Auth\Session')->unsActiveTabId();
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/CategoriesJson.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/CategoriesJson.php
index 6f9cf5cc6e5..21c4c2fddbd 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/CategoriesJson.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/CategoriesJson.php
@@ -38,7 +38,7 @@ class CategoriesJson extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('expand_all')) {
             $this->_objectManager->get('Magento\Backend\Model\Auth\Session')->setIsTreeWasExpanded(true);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Delete.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Delete.php
index cc0e60a82a3..7590c92887c 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Delete.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Delete.php
@@ -28,7 +28,7 @@ class Delete extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Edit.php
index 3c308d5deea..4c8f0e0be64 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Edit.php
@@ -40,7 +40,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Category
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = (int)$this->getRequest()->getParam('store');
         $parentId = (int)$this->getRequest()->getParam('parent');
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Grid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Grid.php
index fdecd7c3922..6f389e87de6 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Grid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Grid.php
@@ -39,7 +39,7 @@ class Grid extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $category = $this->_initCategory(true);
         if (!$category) {
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Index.php
index 1b0bbf347f5..7fb6ab9e956 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Move.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Move.php
index fb0d48aacc4..28f7d43bec6 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Move.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Move.php
@@ -46,7 +46,7 @@ class Move extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         /**
          * New parent category identifier
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php
index 150b0194664..5441e165874 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php
@@ -30,7 +30,7 @@ class RefreshPath extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $categoryId = (int)$this->getRequest()->getParam('id');
         if ($categoryId) {
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
index ac0b303f18d..014bea2cfa3 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
@@ -70,7 +70,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Category
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/SuggestCategories.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/SuggestCategories.php
index 94c8010cc39..6fbed45cc76 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/SuggestCategories.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/SuggestCategories.php
@@ -38,7 +38,7 @@ class SuggestCategories extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Tree.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Tree.php
index 9acd075bc82..1eee483d716 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Tree.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Tree.php
@@ -39,7 +39,7 @@ class Tree extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = (int)$this->getRequest()->getParam('store');
         $categoryId = (int)$this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/CategoriesJson.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/CategoriesJson.php
index 329f786314f..953daaa4607 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/CategoriesJson.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/CategoriesJson.php
@@ -42,7 +42,7 @@ class CategoriesJson extends \Magento\Catalog\Controller\Adminhtml\Category\Widg
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $categoryId = (int)$this->getRequest()->getPost('id');
         if ($categoryId) {
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/Chooser.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/Chooser.php
index fa9b2ab95b2..f65912621ce 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/Chooser.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/Chooser.php
@@ -32,7 +32,7 @@ class Chooser extends \Magento\Catalog\Controller\Adminhtml\Category\Widget
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
         $resultRaw = $this->resultRawFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Edit.php
index 29f30ad573f..e83384f5f35 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Edit.php
@@ -51,7 +51,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribut
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $this->attributeHelper->setProductIds($collection->getAllIds());
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php
index 3661567d5fa..c77b65c71a2 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php
@@ -85,7 +85,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribut
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_validateProducts()) {
             return $this->resultRedirectFactory->create()->setPath('catalog/product/', ['_current' => true]);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Validate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Validate.php
index a7f2da57762..1b3c6e2ad17 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Validate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Validate.php
@@ -40,7 +40,7 @@ class Validate extends \Magento\Catalog\Controller\Adminhtml\Product\Action\Attr
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = $this->_objectManager->create('Magento\Framework\DataObject');
         $response->setError(false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php
index 7d337411b0a..4f53240f745 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php
@@ -31,7 +31,7 @@ class AddAttributeToTemplate extends \Magento\Catalog\Controller\Adminhtml\Produ
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsPriceGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsPriceGrid.php
index b865313f943..e8b34dde057 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsPriceGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsPriceGrid.php
@@ -14,7 +14,7 @@ class AlertsPriceGrid extends AbstractProductGrid
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsStockGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsStockGrid.php
index dc4a3f14470..e6324f21714 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsStockGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsStockGrid.php
@@ -39,7 +39,7 @@ class AlertsStockGrid extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php
index 6d444009f5a..d2bc262e1a8 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php
@@ -62,14 +62,14 @@ abstract class Attribute extends \Magento\Backend\App\Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(\Magento\Framework\App\RequestInterface $request)
+    public function execute(\Magento\Framework\App\RequestInterface $request)
     {
         $this->_entityTypeId = $this->_objectManager->create(
             'Magento\Eav\Model\Entity'
         )->setType(
             \Magento\Catalog\Model\Product::ENTITY
         )->getTypeId();
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Delete.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Delete.php
index aa99a78945e..be13157399e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Delete.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('attribute_id');
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Edit.php
index bfe598b3d9b..14baeaa2461 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Edit.php
@@ -12,7 +12,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('attribute_id');
         /** @var $model \Magento\Catalog\Model\ResourceModel\Eav\Attribute */
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Index.php
index bb264940f4a..b2caa1c5219 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->createActionPage();
         $resultPage->addContent(
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/NewAction.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/NewAction.php
index 08e6e33b32f..97886d735b7 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/NewAction.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/NewAction.php
@@ -34,7 +34,7 @@ class NewAction extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultForwardFactory->create()->forward('edit');
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Save.php
index 2d57b6148e5..17bed1b247b 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Save.php
@@ -86,7 +86,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Validate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Validate.php
index bb870c3f8ef..7a529343b1f 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Validate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Validate.php
@@ -44,7 +44,7 @@ class Validate extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Categories.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Categories.php
index 202f41cda59..f62dc494341 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Categories.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Categories.php
@@ -32,7 +32,7 @@ class Categories extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         return $this->resultPageFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Crosssell.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Crosssell.php
index 298dd38b065..a39e81bcb5d 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Crosssell.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Crosssell.php
@@ -32,7 +32,7 @@ class Crosssell extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/CrosssellGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/CrosssellGrid.php
index 7dd03b84c09..06213df4acd 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/CrosssellGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/CrosssellGrid.php
@@ -32,7 +32,7 @@ class CrosssellGrid extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/CustomOptions.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/CustomOptions.php
index cc5dde10f1a..23546bfe57d 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/CustomOptions.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/CustomOptions.php
@@ -45,7 +45,7 @@ class CustomOptions extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->registry->register('import_option_products', $this->getRequest()->getPost('products'));
         return $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Datafeeds/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Datafeeds/Index.php
index f51fb90425a..0abe6282eee 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Datafeeds/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Datafeeds/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Backend\App\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
     }
 }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Duplicate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Duplicate.php
index d335b898f71..fa68907d14c 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Duplicate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Duplicate.php
@@ -35,7 +35,7 @@ class Duplicate extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Edit.php
index 30e1299ca17..123117c22a7 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Edit.php
@@ -39,7 +39,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int) $this->getRequest()->getParam('id');
         $product = $this->productBuilder->build($this->getRequest());
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Gallery/Upload.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Gallery/Upload.php
index fb6511ec6bb..6e41eed07bb 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Gallery/Upload.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Gallery/Upload.php
@@ -38,7 +38,7 @@ class Upload extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $uploader = $this->_objectManager->create(
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Grid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Grid.php
index fdda822206b..a9536e615d0 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Grid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Grid.php
@@ -32,7 +32,7 @@ class Grid extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultPageFactory->create();
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/GridOnly.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/GridOnly.php
index 0732fd041b9..f489d581fe3 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/GridOnly.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/GridOnly.php
@@ -39,7 +39,7 @@ class GridOnly extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Products'));
 
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Group/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Group/Save.php
index 9c4ba567e04..810fa031ba9 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Group/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Group/Save.php
@@ -19,7 +19,7 @@ class Save extends \Magento\Backend\App\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $model = $this->_objectManager->create('Magento\Eav\Model\Entity\Attribute\Group');
 
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Index.php
index 2edf364aa66..89051652951 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Index.php
@@ -32,7 +32,7 @@ class Index extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassDelete.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassDelete.php
index 831fb79fc5f..2140d25e250 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassDelete.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassDelete.php
@@ -46,7 +46,7 @@ class MassDelete extends \Magento\Catalog\Controller\Adminhtml\Product
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $productDeleted = 0;
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php
index 04f37fda61f..913a1be34b5 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php
@@ -75,7 +75,7 @@ class MassStatus extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $productIds = $collection->getAllIds();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php
index 47c42d49e3a..d22b64ee03e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php
@@ -51,7 +51,7 @@ class NewAction extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->getParam('set')) {
             return $this->resultForwardFactory->create()->forward('noroute');
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Options.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Options.php
index 2fcd0dcf961..3bd0b5eab8e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Options.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Options.php
@@ -32,7 +32,7 @@ class Options extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         return $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/OptionsImportGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/OptionsImportGrid.php
index a2b2dbda990..2958d8fb965 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/OptionsImportGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/OptionsImportGrid.php
@@ -13,7 +13,7 @@ class OptionsImportGrid extends AbstractProductGrid
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Related.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Related.php
index d503a79ff3a..98bc500a023 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Related.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Related.php
@@ -31,7 +31,7 @@ class Related extends \Magento\Catalog\Controller\Adminhtml\Product
     /**
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php
index f37bc324c56..d09ce170e4c 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php
@@ -53,7 +53,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = $this->getRequest()->getParam('store');
         $redirectBack = $this->getRequest()->getParam('back', false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Add.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Add.php
index 81f61ec8362..d452df55b25 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Add.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Add.php
@@ -30,7 +30,7 @@ class Add extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_setTypeId();
 
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Delete.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Delete.php
index 9849dc68847..42ceb88ed7e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Delete.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Delete.php
@@ -30,7 +30,7 @@ class Delete extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $setId = $this->getRequest()->getParam('id');
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Edit.php
index d40982a5d56..b4cab4b49ce 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Edit.php
@@ -30,7 +30,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_setTypeId();
         $attributeSet = $this->_objectManager->create('Magento\Eav\Model\Entity\Attribute\Set')
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Index.php
index 7b9edb21c7e..131ec6cd61e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_setTypeId();
 
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
index 5870190db02..2535d9b4c65 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
@@ -57,7 +57,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Set
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $entityTypeId = $this->_getEntityTypeId();
         $hasError = false;
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/SetGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/SetGrid.php
index d58fa4a600a..13a7440a7a7 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/SetGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/SetGrid.php
@@ -30,7 +30,7 @@ class SetGrid extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_setTypeId();
         return $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/ShowUpdateResult.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/ShowUpdateResult.php
index d7e4db8dbb7..c5bda8da562 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/ShowUpdateResult.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/ShowUpdateResult.php
@@ -35,7 +35,7 @@ class ShowUpdateResult extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $layout = false;
         if ($this->_session->hasCompositeProductResult()
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestAttributes.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestAttributes.php
index 6b60c4f7481..b5db6ac5e07 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestAttributes.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestAttributes.php
@@ -40,7 +40,7 @@ class SuggestAttributes extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultJson = $this->resultJsonFactory->create();
         $resultJson->setData(
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestProductTemplates.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestProductTemplates.php
index d28b72799e7..2ef7b040654 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestProductTemplates.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestProductTemplates.php
@@ -38,7 +38,7 @@ class SuggestProductTemplates extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultJson = $this->resultJsonFactory->create();
         $resultJson->setData(
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Upsell.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Upsell.php
index 4c11f14d9f9..09ef399f3ce 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Upsell.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Upsell.php
@@ -32,7 +32,7 @@ class Upsell extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/UpsellGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/UpsellGrid.php
index 171a1e4694a..b4a6a42d94f 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/UpsellGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/UpsellGrid.php
@@ -32,7 +32,7 @@ class UpsellGrid extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Validate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Validate.php
index 82e68cd1c94..be1d2b5b962 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Validate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Validate.php
@@ -72,7 +72,7 @@ class Validate extends \Magento\Catalog\Controller\Adminhtml\Product
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Widget/Chooser.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Widget/Chooser.php
index 1c883ea7989..eeb41e0bea5 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Widget/Chooser.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Widget/Chooser.php
@@ -38,7 +38,7 @@ class Chooser extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $uniqId = $this->getRequest()->getParam('uniq_id');
         $massAction = $this->getRequest()->getParam('use_massaction', false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Wysiwyg.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Wysiwyg.php
index f0f0b5274a6..98daec96d73 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Wysiwyg.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Wysiwyg.php
@@ -40,7 +40,7 @@ class Wysiwyg extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $elementId = $this->getRequest()->getParam('element_id', md5(microtime()));
         $storeId = $this->getRequest()->getParam('store_id', 0);
diff --git a/app/code/Magento/Catalog/Controller/Category/View.php b/app/code/Magento/Catalog/Controller/Category/View.php
index b0684d90546..bcdea75c74c 100644
--- a/app/code/Magento/Catalog/Controller/Category/View.php
+++ b/app/code/Magento/Catalog/Controller/Category/View.php
@@ -150,7 +150,7 @@ class View extends \Magento\Framework\App\Action\Action
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_request->getParam(\Magento\Framework\App\ActionInterface::PARAM_NAME_URL_ENCODED)) {
             return $this->resultRedirectFactory->create()->setUrl($this->_redirect->getRedirectUrl());
diff --git a/app/code/Magento/Catalog/Controller/Index/Index.php b/app/code/Magento/Catalog/Controller/Index/Index.php
index 5ea3a57caf4..d6890855f14 100644
--- a/app/code/Magento/Catalog/Controller/Index/Index.php
+++ b/app/code/Magento/Catalog/Controller/Index/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return $this
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         return $resultRedirect->setPath('/');
diff --git a/app/code/Magento/Catalog/Controller/Product/Compare/Add.php b/app/code/Magento/Catalog/Controller/Product/Compare/Add.php
index 995f51e23ec..99dccd664df 100644
--- a/app/code/Magento/Catalog/Controller/Product/Compare/Add.php
+++ b/app/code/Magento/Catalog/Controller/Product/Compare/Add.php
@@ -15,7 +15,7 @@ class Add extends \Magento\Catalog\Controller\Product\Compare
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
diff --git a/app/code/Magento/Catalog/Controller/Product/Compare/Clear.php b/app/code/Magento/Catalog/Controller/Product/Compare/Clear.php
index 40525ddb90f..085013b86a4 100644
--- a/app/code/Magento/Catalog/Controller/Product/Compare/Clear.php
+++ b/app/code/Magento/Catalog/Controller/Product/Compare/Clear.php
@@ -15,7 +15,7 @@ class Clear extends \Magento\Catalog\Controller\Product\Compare
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Catalog\Model\ResourceModel\Product\Compare\Item\Collection $items */
         $items = $this->_itemCollectionFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Product/Compare/Index.php b/app/code/Magento/Catalog/Controller/Product/Compare/Index.php
index a8e79afa1c0..5808e737e5d 100644
--- a/app/code/Magento/Catalog/Controller/Product/Compare/Index.php
+++ b/app/code/Magento/Catalog/Controller/Product/Compare/Index.php
@@ -71,7 +71,7 @@ class Index extends \Magento\Catalog\Controller\Product\Compare
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $items = $this->getRequest()->getParam('items');
 
diff --git a/app/code/Magento/Catalog/Controller/Product/Compare/Remove.php b/app/code/Magento/Catalog/Controller/Product/Compare/Remove.php
index b710c3a066d..00db1446bda 100644
--- a/app/code/Magento/Catalog/Controller/Product/Compare/Remove.php
+++ b/app/code/Magento/Catalog/Controller/Product/Compare/Remove.php
@@ -15,7 +15,7 @@ class Remove extends \Magento\Catalog\Controller\Product\Compare
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('product');
         if ($productId) {
diff --git a/app/code/Magento/Catalog/Controller/Product/Gallery.php b/app/code/Magento/Catalog/Controller/Product/Gallery.php
index b4e9c7480ba..32411c663db 100644
--- a/app/code/Magento/Catalog/Controller/Product/Gallery.php
+++ b/app/code/Magento/Catalog/Controller/Product/Gallery.php
@@ -44,7 +44,7 @@ class Gallery extends \Magento\Catalog\Controller\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = null;
         if (!$this->_initProduct()) {
diff --git a/app/code/Magento/Catalog/Controller/Product/View.php b/app/code/Magento/Catalog/Controller/Product/View.php
index aed317633da..b50819ecb98 100644
--- a/app/code/Magento/Catalog/Controller/Product/View.php
+++ b/app/code/Magento/Catalog/Controller/Product/View.php
@@ -69,7 +69,7 @@ class View extends \Magento\Catalog\Controller\Product
      *
      * @return \Magento\Framework\Controller\Result\Forward|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // Get initial data from request
         $categoryId = (int) $this->getRequest()->getParam('category', false);
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/DeleteTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/DeleteTest.php
index bec5548f8bb..203f49495c8 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/DeleteTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/DeleteTest.php
@@ -122,7 +122,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('catalog/*/', ['_current' => true, 'id' => null]);
         $this->categoryRepository->expects($this->never())->method('get');
 
-        $this->unit->execute();
+        $this->unit->executeInternal();
     }
 
     public function testDelete()
@@ -138,6 +138,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
         $this->resultRedirect->expects($this->once())->method('setPath')
             ->with('catalog/*/', ['_current' => true, 'id' => $parentId]);
 
-        $this->unit->execute();
+        $this->unit->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php
index 09cad210ad8..b4e61882ee5 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php
@@ -550,7 +550,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             )
             ->will($this->returnValue('result-execute'));
 
-        $this->assertEquals('result-execute', $this->save->execute());
+        $this->assertEquals('result-execute', $this->save->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/CategoriesJsonTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/CategoriesJsonTest.php
index 26b7598e03b..e1ae3110fed 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/CategoriesJsonTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/CategoriesJsonTest.php
@@ -141,6 +141,6 @@ class CategoriesJsonTest extends \PHPUnit_Framework_TestCase
         $testHtml = '<div>Some test html</div>';
         $this->chooserBlockMock->expects($this->once())->method('getTreeJson')->will($this->returnValue($testHtml));
         $this->resultJson->expects($this->once())->method('setJsonData')->with($testHtml)->willReturnSelf();
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/ChooserTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/ChooserTest.php
index f61c31a6620..ec55fc86161 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/ChooserTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/ChooserTest.php
@@ -123,6 +123,6 @@ class ChooserTest extends \PHPUnit_Framework_TestCase
         $testHtml = '<div>Some test html</div>';
         $this->chooserBlockMock->expects($this->once())->method('toHtml')->will($this->returnValue($testHtml));
         $this->resultRaw->expects($this->once())->method('setContents')->with($testHtml);
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php
index b83afa0e636..db88d451374 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php
@@ -274,6 +274,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->never())->method('addError');
         $this->messageManager->expects($this->never())->method('addException');
 
-        $this->object->execute();
+        $this->object->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Attribute/EditTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Attribute/EditTest.php
index f8cf08f5474..480f84e43b8 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Attribute/EditTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Attribute/EditTest.php
@@ -199,7 +199,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
 
         $this->blockTemplate->expects($this->any())->method('setIsPopup')->willReturnSelf();
 
-        $this->assertSame($this->resultPage, $this->editController->execute());
+        $this->assertSame($this->resultPage, $this->editController->executeInternal());
     }
 
     public function testExecuteNoPopup()
@@ -250,6 +250,6 @@ class EditTest extends \PHPUnit_Framework_TestCase
 
         $this->blockTemplate->expects($this->any())->method('setIsPopup')->willReturnSelf();
 
-        $this->assertSame($this->resultPage, $this->editController->execute());
+        $this->assertSame($this->resultPage, $this->editController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/MassStatusTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/MassStatusTest.php
index 47dd99f5ce0..9a66cfdd37e 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/MassStatusTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/MassStatusTest.php
@@ -80,6 +80,6 @@ class MassStatusTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Pro
     public function testMassStatusAction()
     {
         $this->priceProcessor->expects($this->once())->method('reindexList');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/NewActionTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/NewActionTest.php
index 215be1b4d16..8dd5602000f 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/NewActionTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/NewActionTest.php
@@ -76,7 +76,7 @@ class NewActionTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Prod
         $this->action->getRequest()->expects($this->any())->method('getParam')->willReturn(true);
         $this->action->getRequest()->expects($this->any())->method('getFullActionName')
             ->willReturn('catalog_product_new');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testExecuteObtainsProductDataFromSession()
@@ -90,6 +90,6 @@ class NewActionTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Prod
 
         $this->product->expects($this->once())->method('addData')->with(['name' => 'test-name', 'stock_data' => null]);
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/SaveTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/SaveTest.php
index 17a99b3ab8f..4a9d892060a 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/SaveTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/SaveTest.php
@@ -120,7 +120,7 @@ class SaveTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\ProductTe
         $this->session->expects($this->once())->method('setProductData')->with($productData);
         $this->resultRedirect->expects($this->once())->method('setPath')->with('catalog/*/new');
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ShowUpdateResultTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ShowUpdateResultTest.php
index c9209c3f0a7..e5c1e4f425f 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ShowUpdateResultTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ShowUpdateResultTest.php
@@ -146,6 +146,6 @@ class ShowUpdateResultTest extends \PHPUnit_Framework_TestCase
 
         /** @var \Magento\Catalog\Controller\Adminhtml\Product\ShowUpdateResult $controller */
         $controller = new ShowUpdateResult($context, $productBuilder, $productCompositeHelper);
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ValidateTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ValidateTest.php
index 9c58d09dfe4..709cd8db941 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ValidateTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ValidateTest.php
@@ -132,7 +132,7 @@ class ValidateTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Produ
         $this->request->expects($this->any())->method('getPost')->willReturnMap([['set', null, 9]]);
         $this->product->expects($this->once())->method('setAttributeSetId')->with(9);
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testAttributeSetIsObtainedFromGetWhenThereIsNoOneInPost()
@@ -141,6 +141,6 @@ class ValidateTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Produ
         $this->request->expects($this->any())->method('getPost')->willReturnMap([['set', null, null]]);
         $this->product->expects($this->once())->method('setAttributeSetId')->with(4);
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Category/ViewTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Category/ViewTest.php
index 735c13b0483..eacdcc13328 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Category/ViewTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Category/ViewTest.php
@@ -197,6 +197,6 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->catalogDesign->expects($this->any())->method('getDesignSettings')->will($this->returnValue($settings));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Product/Compare/IndexTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Product/Compare/IndexTest.php
index 134776df353..da0c0c7bea7 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Product/Compare/IndexTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Product/Compare/IndexTest.php
@@ -154,7 +154,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
         $this->listCompareMock->expects($this->never())->method('addProducts');
         $this->redirectFactoryMock->expects($this->never())->method('create');
-        $this->index->execute();
+        $this->index->executeInternal();
     }
 
     public function testExecuteWithItems()
@@ -180,6 +180,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->redirectFactoryMock->expects($this->once())
             ->method('create')
             ->willReturn($redirect);
-        $this->index->execute();
+        $this->index->executeInternal();
     }
 }
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/ApplyRules.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/ApplyRules.php
index abe88aa2fcc..df2b1a38b58 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/ApplyRules.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/ApplyRules.php
@@ -16,7 +16,7 @@ class ApplyRules extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $errorMessage = __('We can\'t apply the rules.');
         try {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Chooser.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Chooser.php
index 34d74818512..ac908bffe6d 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Chooser.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Chooser.php
@@ -11,7 +11,7 @@ class Chooser extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('attribute') == 'sku') {
             $type = 'Magento\CatalogRule\Block\Adminhtml\Promo\Widget\Chooser\Sku';
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Delete.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Delete.php
index 41cca27abd8..dd14365e464 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Delete.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         if ($id) {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Edit.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Edit.php
index 97495f7d0d4..1f2f29390f7 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Edit.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Edit.php
@@ -11,7 +11,7 @@ class Edit extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $model = $this->_objectManager->create('Magento\CatalogRule\Model\Rule');
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Index.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Index.php
index fd6533a042c..9eb60fc13cd 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Index.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $dirtyRules = $this->_objectManager->create('Magento\CatalogRule\Model\Flag')->loadSelf();
         if ($dirtyRules->getState()) {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewAction.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewAction.php
index fe944cf16f4..f3a42f0c955 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewAction.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewAction.php
@@ -11,7 +11,7 @@ class NewAction extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewActionHtml.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewActionHtml.php
index 2a1d8aaf878..a588a5e00ad 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewActionHtml.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewActionHtml.php
@@ -13,7 +13,7 @@ class NewActionHtml extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Cata
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php
index 977806d176b..5a58180e448 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php
@@ -13,7 +13,7 @@ class NewConditionHtml extends \Magento\CatalogRule\Controller\Adminhtml\Promo\C
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php
index 16415977b55..2ac65d736b4 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php
@@ -14,7 +14,7 @@ class Save extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getPostValue()) {
             try {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Index.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Index.php
index 646e3cf6c37..4b8f29d1444 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Index.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Index.php
@@ -19,7 +19,7 @@ class Index extends \Magento\Backend\App\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_CatalogRule::promo');
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php
index 592d6f0bbc2..ae1c964761f 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php
@@ -68,7 +68,7 @@ class CategoriesJson extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Wid
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $categoryId = (int)$this->getRequest()->getPost('id');
         if ($categoryId) {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/Chooser.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/Chooser.php
index ea081c9c436..7c764a2452c 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/Chooser.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/Chooser.php
@@ -13,7 +13,7 @@ class Chooser extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Widget
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
 
diff --git a/app/code/Magento/CatalogSearch/Controller/Advanced/Index.php b/app/code/Magento/CatalogSearch/Controller/Advanced/Index.php
index dfc0013e6e2..961a4cd73d7 100644
--- a/app/code/Magento/CatalogSearch/Controller/Advanced/Index.php
+++ b/app/code/Magento/CatalogSearch/Controller/Advanced/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Framework\App\Action\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/CatalogSearch/Controller/Advanced/Result.php b/app/code/Magento/CatalogSearch/Controller/Advanced/Result.php
index d98ff86f779..e5c71f294f6 100644
--- a/app/code/Magento/CatalogSearch/Controller/Advanced/Result.php
+++ b/app/code/Magento/CatalogSearch/Controller/Advanced/Result.php
@@ -47,7 +47,7 @@ class Result extends \Magento\Framework\App\Action\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_catalogSearchAdvanced->addFilters($this->getRequest()->getQueryValue());
diff --git a/app/code/Magento/CatalogSearch/Controller/Result/Index.php b/app/code/Magento/CatalogSearch/Controller/Result/Index.php
index 4a682161c6d..92221b02af4 100644
--- a/app/code/Magento/CatalogSearch/Controller/Result/Index.php
+++ b/app/code/Magento/CatalogSearch/Controller/Result/Index.php
@@ -65,7 +65,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->layerResolver->create(Resolver::CATALOG_LAYER_SEARCH);
         /* @var $query \Magento\Search\Model\Query */
diff --git a/app/code/Magento/CatalogSearch/Test/Unit/Controller/Advanced/ResultTest.php b/app/code/Magento/CatalogSearch/Test/Unit/Controller/Advanced/ResultTest.php
index 529b92bf436..f90be4e218f 100644
--- a/app/code/Magento/CatalogSearch/Test/Unit/Controller/Advanced/ResultTest.php
+++ b/app/code/Magento/CatalogSearch/Test/Unit/Controller/Advanced/ResultTest.php
@@ -50,6 +50,6 @@ class ResultTest extends \PHPUnit_Framework_TestCase
             'Magento\CatalogSearch\Controller\Advanced\Result',
             ['context' => $context, 'catalogSearchAdvanced' => $catalogSearchAdvanced]
         );
-        $instance->execute();
+        $instance->executeInternal();
     }
 }
diff --git a/app/code/Magento/CatalogWidget/Controller/Adminhtml/Product/Widget/Conditions.php b/app/code/Magento/CatalogWidget/Controller/Adminhtml/Product/Widget/Conditions.php
index dd779b03510..f2a0dde38a0 100644
--- a/app/code/Magento/CatalogWidget/Controller/Adminhtml/Product/Widget/Conditions.php
+++ b/app/code/Magento/CatalogWidget/Controller/Adminhtml/Product/Widget/Conditions.php
@@ -32,7 +32,7 @@ class Conditions extends \Magento\CatalogWidget\Controller\Adminhtml\Product\Wid
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeData = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/CatalogWidget/Test/Unit/Controller/Adminhtml/Product/Widget/ConditionsTest.php b/app/code/Magento/CatalogWidget/Test/Unit/Controller/Adminhtml/Product/Widget/ConditionsTest.php
index 984b420c0bd..5b76de4974c 100644
--- a/app/code/Magento/CatalogWidget/Test/Unit/Controller/Adminhtml/Product/Widget/ConditionsTest.php
+++ b/app/code/Magento/CatalogWidget/Test/Unit/Controller/Adminhtml/Product/Widget/ConditionsTest.php
@@ -94,6 +94,6 @@ class ConditionsTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')->will($this->returnValue($condition));
 
         $this->response->expects($this->once())->method('setBody')->with('<some_html>')->will($this->returnSelf());
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Checkout/Controller/Account/Create.php b/app/code/Magento/Checkout/Controller/Account/Create.php
index 4e8514699c1..c6f7ccb7c60 100644
--- a/app/code/Magento/Checkout/Controller/Account/Create.php
+++ b/app/code/Magento/Checkout/Controller/Account/Create.php
@@ -52,7 +52,7 @@ class Create extends \Magento\Framework\App\Action\Action
      * @throws \Exception
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->customerSession->isLoggedIn()) {
             $this->messageManager->addError(__("Customer is already registered"));
diff --git a/app/code/Magento/Checkout/Controller/Cart/Add.php b/app/code/Magento/Checkout/Controller/Cart/Add.php
index 6e4b71de00f..1106eab2282 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Add.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Add.php
@@ -75,7 +75,7 @@ class Add extends \Magento\Checkout\Controller\Cart
      * @return \Magento\Framework\Controller\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
             return $this->resultRedirectFactory->create()->setPath('*/*/');
diff --git a/app/code/Magento/Checkout/Controller/Cart/Addgroup.php b/app/code/Magento/Checkout/Controller/Cart/Addgroup.php
index 0665e0c2915..abaed132df4 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Addgroup.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Addgroup.php
@@ -11,7 +11,7 @@ class Addgroup extends \Magento\Checkout\Controller\Cart
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $orderItemIds = $this->getRequest()->getParam('order_items', []);
         if (is_array($orderItemIds)) {
diff --git a/app/code/Magento/Checkout/Controller/Cart/Configure.php b/app/code/Magento/Checkout/Controller/Cart/Configure.php
index bd614ec3110..f1086d86f2c 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Configure.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Configure.php
@@ -48,7 +48,7 @@ class Configure extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\View\Result\Page|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // Extract item and product to configure
         $id = (int)$this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Checkout/Controller/Cart/CouponPost.php b/app/code/Magento/Checkout/Controller/Cart/CouponPost.php
index 2496709c162..421effe5552 100644
--- a/app/code/Magento/Checkout/Controller/Cart/CouponPost.php
+++ b/app/code/Magento/Checkout/Controller/Cart/CouponPost.php
@@ -61,7 +61,7 @@ class CouponPost extends \Magento\Checkout\Controller\Cart
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $couponCode = $this->getRequest()->getParam('remove') == 1
             ? ''
diff --git a/app/code/Magento/Checkout/Controller/Cart/Delete.php b/app/code/Magento/Checkout/Controller/Cart/Delete.php
index 3d73a5f0c20..873133f3cbb 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Delete.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         if ($id) {
diff --git a/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php b/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php
index 2ce3a8805e8..e7808167252 100644
--- a/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php
+++ b/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php
@@ -50,7 +50,7 @@ class EstimatePost extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $country = (string)$this->getRequest()->getParam('country_id');
         $postcode = (string)$this->getRequest()->getParam('estimate_postcode');
diff --git a/app/code/Magento/Checkout/Controller/Cart/EstimateUpdatePost.php b/app/code/Magento/Checkout/Controller/Cart/EstimateUpdatePost.php
index 0dcd81a8e01..da121bf5cb4 100644
--- a/app/code/Magento/Checkout/Controller/Cart/EstimateUpdatePost.php
+++ b/app/code/Magento/Checkout/Controller/Cart/EstimateUpdatePost.php
@@ -11,7 +11,7 @@ class EstimateUpdatePost extends \Magento\Checkout\Controller\Cart
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $code = (string)$this->getRequest()->getParam('estimate_method');
         if (!empty($code)) {
diff --git a/app/code/Magento/Checkout/Controller/Cart/Index.php b/app/code/Magento/Checkout/Controller/Cart/Index.php
index 1486c2b8487..3a6ffc2d9de 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Index.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Index.php
@@ -49,7 +49,7 @@ class Index extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->resultPageFactory->create();
         $resultPage->getConfig()->getTitle()->set(__('Shopping Cart'));
diff --git a/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php b/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php
index c3e38a96dd3..9b5dcc0f396 100644
--- a/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php
+++ b/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php
@@ -15,7 +15,7 @@ class UpdateItemOptions extends \Magento\Checkout\Controller\Cart
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         $params = $this->getRequest()->getParams();
diff --git a/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php b/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php
index 71685ea0005..73261faf037 100644
--- a/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php
+++ b/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php
@@ -64,7 +64,7 @@ class UpdatePost extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
             return $this->resultRedirectFactory->create()->setPath('*/*/');
diff --git a/app/code/Magento/Checkout/Controller/Index/Index.php b/app/code/Magento/Checkout/Controller/Index/Index.php
index 0bb9c2fe851..73de6be7b12 100644
--- a/app/code/Magento/Checkout/Controller/Index/Index.php
+++ b/app/code/Magento/Checkout/Controller/Index/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Checkout\Controller\Onepage
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Checkout\Helper\Data $checkoutHelper */
         $checkoutHelper = $this->_objectManager->get('Magento\Checkout\Helper\Data');
diff --git a/app/code/Magento/Checkout/Controller/Noroute/Index.php b/app/code/Magento/Checkout/Controller/Noroute/Index.php
index e8925820094..6c1821f30ed 100644
--- a/app/code/Magento/Checkout/Controller/Noroute/Index.php
+++ b/app/code/Magento/Checkout/Controller/Noroute/Index.php
@@ -17,7 +17,7 @@ class Index extends \Magento\Framework\App\Action\Action
      * @return void
      * @codeCoverageIgnore
      */
-    public function execute()
+    public function executeInternal()
     {
         throw new NotFoundException(__('Page not found.'));
     }
diff --git a/app/code/Magento/Checkout/Controller/Onepage.php b/app/code/Magento/Checkout/Controller/Onepage.php
index 38e141855f3..2bfbf61db7a 100644
--- a/app/code/Magento/Checkout/Controller/Onepage.php
+++ b/app/code/Magento/Checkout/Controller/Onepage.php
@@ -141,7 +141,7 @@ abstract class Onepage extends Action
      * @return \Magento\Framework\App\ResponseInterface
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $this->_request = $request;
         $result = $this->_preDispatchValidateCustomer();
@@ -158,7 +158,7 @@ abstract class Onepage extends Action
         if (!$this->_canShowForUnregisteredUsers()) {
             throw new NotFoundException(__('Page not found.'));
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Checkout/Controller/Onepage/Failure.php b/app/code/Magento/Checkout/Controller/Onepage/Failure.php
index e6155dbea29..dcff66c6c29 100644
--- a/app/code/Magento/Checkout/Controller/Onepage/Failure.php
+++ b/app/code/Magento/Checkout/Controller/Onepage/Failure.php
@@ -11,7 +11,7 @@ class Failure extends \Magento\Checkout\Controller\Onepage
     /**
      * @return \Magento\Framework\View\Result\Page|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $lastQuoteId = $this->getOnepage()->getCheckout()->getLastQuoteId();
         $lastOrderId = $this->getOnepage()->getCheckout()->getLastOrderId();
diff --git a/app/code/Magento/Checkout/Controller/Onepage/SaveOrder.php b/app/code/Magento/Checkout/Controller/Onepage/SaveOrder.php
index 6c66fd165de..55fded81c19 100644
--- a/app/code/Magento/Checkout/Controller/Onepage/SaveOrder.php
+++ b/app/code/Magento/Checkout/Controller/Onepage/SaveOrder.php
@@ -17,7 +17,7 @@ class SaveOrder extends \Magento\Checkout\Controller\Onepage
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
             return $this->resultRedirectFactory->create()->setPath('*/*/');
diff --git a/app/code/Magento/Checkout/Controller/Onepage/Success.php b/app/code/Magento/Checkout/Controller/Onepage/Success.php
index 6287f478544..18155e5c61d 100644
--- a/app/code/Magento/Checkout/Controller/Onepage/Success.php
+++ b/app/code/Magento/Checkout/Controller/Onepage/Success.php
@@ -13,7 +13,7 @@ class Success extends \Magento\Checkout\Controller\Onepage
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $session = $this->getOnepage()->getCheckout();
         if (!$this->_objectManager->get('Magento\Checkout\Model\Session\SuccessValidator')->isValid()) {
diff --git a/app/code/Magento/Checkout/Controller/ShippingRates/Index.php b/app/code/Magento/Checkout/Controller/ShippingRates/Index.php
index c407b0bab65..ea8a4da9076 100644
--- a/app/code/Magento/Checkout/Controller/ShippingRates/Index.php
+++ b/app/code/Magento/Checkout/Controller/ShippingRates/Index.php
@@ -41,7 +41,7 @@ class Index extends \Magento\Framework\App\Action\Action
      * @return \Magento\Framework\Controller\ResultInterface
      * @throws Action\NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         $quote = $this->checkoutSession->getQuote();
         $address = $quote->getShippingAddress();
diff --git a/app/code/Magento/Checkout/Controller/Sidebar/RemoveItem.php b/app/code/Magento/Checkout/Controller/Sidebar/RemoveItem.php
index 0eac880fcbd..307cc0ae49a 100644
--- a/app/code/Magento/Checkout/Controller/Sidebar/RemoveItem.php
+++ b/app/code/Magento/Checkout/Controller/Sidebar/RemoveItem.php
@@ -61,7 +61,7 @@ class RemoveItem extends Action
     /**
      * @return $this
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = (int)$this->getRequest()->getParam('item_id');
         try {
diff --git a/app/code/Magento/Checkout/Controller/Sidebar/UpdateItemQty.php b/app/code/Magento/Checkout/Controller/Sidebar/UpdateItemQty.php
index e5504082d6f..434276d6951 100644
--- a/app/code/Magento/Checkout/Controller/Sidebar/UpdateItemQty.php
+++ b/app/code/Magento/Checkout/Controller/Sidebar/UpdateItemQty.php
@@ -52,7 +52,7 @@ class UpdateItemQty extends Action
     /**
      * @return $this
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = (int)$this->getRequest()->getParam('item_id');
         $itemQty = (int)$this->getRequest()->getParam('item_qty');
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Account/CreateTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Account/CreateTest.php
index 2e3ce377ab7..43e765cea0a 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Account/CreateTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Account/CreateTest.php
@@ -65,7 +65,7 @@ class CreateTest extends \PHPUnit_Framework_TestCase
     {
         $this->customerSession->expects($this->once())->method('isLoggedIn')->will($this->returnValue(true));
         $this->messageManager->expects($this->once())->method('addError')->with();
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testExecute()
@@ -76,6 +76,6 @@ class CreateTest extends \PHPUnit_Framework_TestCase
         $this->orderCustomerService->expects($this->once())->method('create')->with(100)->will(
             $this->returnValue($customer)
         );
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/ConfigureTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/ConfigureTest.php
index 35fff77a2b4..9c2664a966a 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/ConfigureTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/ConfigureTest.php
@@ -162,7 +162,7 @@ class ConfigureTest extends \PHPUnit_Framework_TestCase
 
         $productMock->expects($this->exactly(2))->method('getId')->willReturn($actualProductId);
 
-        $this->assertSame($pageMock, $this->configureController->execute());
+        $this->assertSame($pageMock, $this->configureController->executeInternal());
     }
 
     /**
@@ -206,6 +206,6 @@ class ConfigureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(ResultFactory::TYPE_REDIRECT, [])
             ->willReturn($this->resultRedirectMock);
-        $this->assertSame($this->resultRedirectMock, $this->configureController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->configureController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php
index 99e3ccd1a7c..42453493e53 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php
@@ -174,7 +174,7 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->method('getQuote')
             ->willReturn($this->quote);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithGoodCouponAndItems()
@@ -232,7 +232,7 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->method('get')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithGoodCouponAndNoItems()
@@ -286,7 +286,7 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->method('get')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithBadCouponAndItems()
@@ -337,7 +337,7 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->with('You canceled the coupon code.')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithBadCouponAndNoItems()
@@ -382,6 +382,6 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->method('get')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/IndexTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/IndexTest.php
index fc219940727..7fe1d10605d 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/IndexTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/IndexTest.php
@@ -156,7 +156,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->resultPageFactory->expects($this->once())
             ->method('create')
             ->willReturn($page);
-        $result = $this->controller->execute();
+        $result = $this->controller->executeInternal();
         $this->assertInstanceOf('Magento\Framework\View\Result\Page', $result);
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Index/IndexTest.php
index c0f13dc4094..85d242087e6 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Index/IndexTest.php
@@ -192,7 +192,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
         //Expected outcomes
         $this->sessionMock->expects($this->once())->method('regenerateId');
-        $this->assertSame($this->resultPageMock, $this->model->execute());
+        $this->assertSame($this->resultPageMock, $this->model->executeInternal());
     }
 
     public function testOnepageCheckoutNotAvailable()
@@ -205,7 +205,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->with($expectedPath)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     public function testInvalidQuote()
@@ -218,7 +218,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->with($expectedPath)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/OnepageTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/OnepageTest.php
index 659fa90754e..8afa4c6326d 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/OnepageTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/OnepageTest.php
@@ -100,6 +100,6 @@ class OnepageTest extends \PHPUnit_Framework_TestCase
             ->method('getActionName')
             ->willReturn('index');
 
-        $this->assertEquals($this->response, $this->controller->dispatch($this->request));
+        $this->assertEquals($this->response, $this->controller->execute($this->request));
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/RemoveItemTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/RemoveItemTest.php
index d2cf39386d2..4e8b5690ab1 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/RemoveItemTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/RemoveItemTest.php
@@ -113,7 +113,7 @@ class RemoveItemTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->removeItem->execute());
+        $this->assertEquals('json represented', $this->removeItem->executeInternal());
     }
 
     public function testExecuteWithLocalizedException()
@@ -153,7 +153,7 @@ class RemoveItemTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->removeItem->execute());
+        $this->assertEquals('json represented', $this->removeItem->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -200,6 +200,6 @@ class RemoveItemTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->removeItem->execute());
+        $this->assertEquals('json represented', $this->removeItem->executeInternal());
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/UpdateItemQtyTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/UpdateItemQtyTest.php
index b36cbed010b..dd666066f96 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/UpdateItemQtyTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/UpdateItemQtyTest.php
@@ -110,7 +110,7 @@ class UpdateItemQtyTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->updateItemQty->execute());
+        $this->assertEquals('json represented', $this->updateItemQty->executeInternal());
     }
 
     public function testExecuteWithLocalizedException()
@@ -154,7 +154,7 @@ class UpdateItemQtyTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->updateItemQty->execute());
+        $this->assertEquals('json represented', $this->updateItemQty->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -205,6 +205,6 @@ class UpdateItemQtyTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->updateItemQty->execute());
+        $this->assertEquals('json represented', $this->updateItemQty->executeInternal());
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Stub/OnepageStub.php b/app/code/Magento/Checkout/Test/Unit/Controller/Stub/OnepageStub.php
index 0ee81629337..01d5acd4222 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Stub/OnepageStub.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Stub/OnepageStub.php
@@ -8,7 +8,7 @@ namespace Magento\Checkout\Test\Unit\Controller\Stub;
 
 class OnepageStub extends \Magento\Checkout\Controller\Onepage
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Delete.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Delete.php
index 8ca81a642df..72b54d8986c 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Delete.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreement
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         $model = $this->_objectManager->get('Magento\CheckoutAgreements\Model\Agreement')->load($id);
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Edit.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Edit.php
index 01fcef39eaf..117905e8c50 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Edit.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Edit.php
@@ -12,7 +12,7 @@ class Edit extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreement
      * @return void
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $agreementModel = $this->_objectManager->create('Magento\CheckoutAgreements\Model\Agreement');
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Index.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Index.php
index 5327672f749..e290737d272 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Index.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreement
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_addContent(
             $this->_view->getLayout()->createBlock('Magento\CheckoutAgreements\Block\Adminhtml\Agreement')
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/NewAction.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/NewAction.php
index 49c4368bc67..666d8e90763 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/NewAction.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/NewAction.php
@@ -12,7 +12,7 @@ class NewAction extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreeme
      * @return void
      * @codeCoverageIgnore
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Save.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Save.php
index ffdfd74395d..d85847caab2 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Save.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Save.php
@@ -11,7 +11,7 @@ class Save extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreement
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $postData = $this->getRequest()->getPostValue();
         if ($postData) {
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php
index 107b5f4eb9e..3a11c2b4ff0 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Cms\Controller\Adminhtml\Block
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Edit.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Edit.php
index bc8f586567c..bd0a0fbb62e 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Edit.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Edit.php
@@ -33,7 +33,7 @@ class Edit extends \Magento\Cms\Controller\Adminhtml\Block
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         // 1. Get ID and create model
         $id = $this->getRequest()->getParam('block_id');
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Index.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Index.php
index b81e879b917..5e36a87e5a7 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Index.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Index.php
@@ -32,7 +32,7 @@ class Index extends \Magento\Cms\Controller\Adminhtml\Block
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/InlineEdit.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/InlineEdit.php
index 6ce12cfbf02..4d8a7f238bc 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/InlineEdit.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/InlineEdit.php
@@ -36,7 +36,7 @@ class InlineEdit extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->jsonFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php
index a173e9f3dac..3b45c6902d2 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php
@@ -44,7 +44,7 @@ class MassDelete extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $collectionSize = $collection->getSize();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/NewAction.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/NewAction.php
index bc87b5cb808..29e37ffeaef 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/NewAction.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/NewAction.php
@@ -32,7 +32,7 @@ class NewAction extends \Magento\Cms\Controller\Adminhtml\Block
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Save.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Save.php
index c6e17f07cbf..9582e89c995 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Save.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Cms\Controller\Adminhtml\Block
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Widget/Chooser.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Widget/Chooser.php
index e785e256d97..363805df349 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Widget/Chooser.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Widget/Chooser.php
@@ -39,7 +39,7 @@ class Chooser extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Layout $layout */
         $layout = $this->layoutFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php
index 278515e3f10..3ae84ce63e7 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php
@@ -21,7 +21,7 @@ class Delete extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // check if we know what should be deleted
         $id = $this->getRequest()->getParam('page_id');
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Edit.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Edit.php
index c53641376c4..716e51bc0b4 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Edit.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Edit.php
@@ -67,7 +67,7 @@ class Edit extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         // 1. Get ID and create model
         $id = $this->getRequest()->getParam('page_id');
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Index.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Index.php
index 61405419a00..7be6ad88b7b 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Index.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Index.php
@@ -42,7 +42,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/InlineEdit.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/InlineEdit.php
index 52882ff71fd..762d5384afe 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/InlineEdit.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/InlineEdit.php
@@ -47,7 +47,7 @@ class InlineEdit extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->jsonFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php
index 45314ebf2d9..9ab84769739 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php
@@ -43,7 +43,7 @@ class MassDelete extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $collectionSize = $collection->getSize();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php
index 8d8da00375c..cda4e802f06 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php
@@ -43,7 +43,7 @@ class MassDisable extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
 
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php
index aa44d34ea78..a904249e653 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php
@@ -43,7 +43,7 @@ class MassEnable extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
 
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/NewAction.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/NewAction.php
index 100c0b05f2a..9f816a59252 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/NewAction.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/NewAction.php
@@ -38,7 +38,7 @@ class NewAction extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php
index 6858ef9cadf..276073e1e96 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php
@@ -38,7 +38,7 @@ class Save extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Widget/Chooser.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Widget/Chooser.php
index 49e8206f822..493ae73a83d 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Widget/Chooser.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Widget/Chooser.php
@@ -40,7 +40,7 @@ class Chooser extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $uniqId = $this->getRequest()->getParam('uniq_id');
         /** @var \Magento\Framework\View\Layout $layout */
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Directive.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Directive.php
index 51d1fc3502b..05e6350da2b 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Directive.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Directive.php
@@ -40,7 +40,7 @@ class Directive extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $directive = $this->getRequest()->getParam('___directive');
         $directive = $this->urlDecoder->decode($directive);
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Contents.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Contents.php
index 0b115525837..05c8912acf8 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Contents.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Contents.php
@@ -53,7 +53,7 @@ class Contents extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initAction()->_saveSessionCurrentPath();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFiles.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFiles.php
index 73389122633..1af77052535 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFiles.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFiles.php
@@ -43,7 +43,7 @@ class DeleteFiles extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if (!$this->getRequest()->isPost()) {
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFolder.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFolder.php
index 2566d3159e4..45a85b1d009 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFolder.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFolder.php
@@ -40,7 +40,7 @@ class DeleteFolder extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $path = $this->getStorage()->getCmsWysiwygImages()->getCurrentPath();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Index.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Index.php
index 3c22b5fbcb0..eacf2cb6268 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Index.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Index.php
@@ -32,7 +32,7 @@ class Index extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = (int)$this->getRequest()->getParam('store');
 
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/NewFolder.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/NewFolder.php
index 24240b5ab25..8077f38a5a4 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/NewFolder.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/NewFolder.php
@@ -32,7 +32,7 @@ class NewFolder extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initAction();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/OnInsert.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/OnInsert.php
index 738cba1295e..b0d4818b940 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/OnInsert.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/OnInsert.php
@@ -32,7 +32,7 @@ class OnInsert extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $helper = $this->_objectManager->get('Magento\Cms\Helper\Wysiwyg\Images');
         $storeId = $this->getRequest()->getParam('store');
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Thumbnail.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Thumbnail.php
index a5a2d6bbc2a..9412c2471a0 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Thumbnail.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Thumbnail.php
@@ -35,7 +35,7 @@ class Thumbnail extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $file = $this->getRequest()->getParam('file');
         $file = $this->_objectManager->get('Magento\Cms\Helper\Wysiwyg\Images')->idDecode($file);
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/TreeJson.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/TreeJson.php
index 9d70dd5a038..1690cb3d708 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/TreeJson.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/TreeJson.php
@@ -40,7 +40,7 @@ class TreeJson extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Upload.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Upload.php
index b05ff1ac92b..0811d0572db 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Upload.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Upload.php
@@ -32,7 +32,7 @@ class Upload extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initAction();
diff --git a/app/code/Magento/Cms/Controller/Index/DefaultNoRoute.php b/app/code/Magento/Cms/Controller/Index/DefaultNoRoute.php
index 91cb0939634..51c6ec15a24 100644
--- a/app/code/Magento/Cms/Controller/Index/DefaultNoRoute.php
+++ b/app/code/Magento/Cms/Controller/Index/DefaultNoRoute.php
@@ -27,7 +27,7 @@ class DefaultNoRoute extends \Magento\Framework\App\Action\Action
     /**
      * @return \Magento\Framework\View\Result\LayoutFactory
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultLayout = $this->resultPageFactory->create();
         $resultLayout->setStatusHeader(404, '1.1', 'Not Found');
diff --git a/app/code/Magento/Cms/Controller/Index/Index.php b/app/code/Magento/Cms/Controller/Index/Index.php
index fe007e0d517..969ad75a366 100644
--- a/app/code/Magento/Cms/Controller/Index/Index.php
+++ b/app/code/Magento/Cms/Controller/Index/Index.php
@@ -32,7 +32,7 @@ class Index extends \Magento\Framework\App\Action\Action
      * @return \Magento\Framework\Controller\Result\Forward
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function execute($coreRoute = null)
+    public function executeInternal($coreRoute = null)
     {
         $pageId = $this->_objectManager->get(
             'Magento\Framework\App\Config\ScopeConfigInterface'
diff --git a/app/code/Magento/Cms/Controller/Noroute/Index.php b/app/code/Magento/Cms/Controller/Noroute/Index.php
index 18c4d218147..16d67c38a81 100644
--- a/app/code/Magento/Cms/Controller/Noroute/Index.php
+++ b/app/code/Magento/Cms/Controller/Noroute/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $pageId = $this->_objectManager->get(
             'Magento\Framework\App\Config\ScopeConfigInterface',
diff --git a/app/code/Magento/Cms/Controller/Page/View.php b/app/code/Magento/Cms/Controller/Page/View.php
index 4775fc3fe93..0c185380200 100644
--- a/app/code/Magento/Cms/Controller/Page/View.php
+++ b/app/code/Magento/Cms/Controller/Page/View.php
@@ -30,7 +30,7 @@ class View extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $pageId = $this->getRequest()->getParam('page_id', $this->getRequest()->getParam('id', false));
         $resultPage = $this->_objectManager->get('Magento\Cms\Helper\Page')->prepareResultPage($this, $pageId);
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/DeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/DeleteTest.php
index c32d11572cf..08c23452659 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/DeleteTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/DeleteTest.php
@@ -148,7 +148,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 
     public function testDeleteActionNoId()
@@ -168,7 +168,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 
     public function testDeleteActionThrowsException()
@@ -195,6 +195,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit', ['block_id' => $this->blockId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/EditTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/EditTest.php
index b2432abc0cb..a48b5b69ea8 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/EditTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/EditTest.php
@@ -154,7 +154,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->editController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->editController->executeInternal());
     }
 
     /**
@@ -220,7 +220,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->method('getConfig')
             ->willReturn($pageConfigMock);
 
-        $this->assertSame($resultPageMock, $this->editController->execute());
+        $this->assertSame($resultPageMock, $this->editController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php
index 81164feafac..4c52ac86c94 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php
@@ -80,7 +80,7 @@ class MassDeleteTest extends AbstractMassActionTest
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->massDeleteController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/SaveTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/SaveTest.php
index 0a1c7be6c95..04f6ac3f081 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/SaveTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/SaveTest.php
@@ -216,14 +216,14 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->resultRedirect->expects($this->atLeastOnce())->method('setPath')->with('*/*/') ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 
     public function testSaveActionWithoutData()
     {
         $this->requestMock->expects($this->any())->method('getPostValue')->willReturn(false);
         $this->resultRedirect->expects($this->atLeastOnce())->method('setPath')->with('*/*/') ->willReturnSelf();
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 
     public function testSaveActionNoId()
@@ -256,7 +256,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->resultRedirect->expects($this->atLeastOnce())->method('setPath')->with('*/*/') ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 
     public function testSaveAndContinue()
@@ -303,7 +303,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit', ['block_id' => $this->blockId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 
     public function testSaveActionThrowsException()
@@ -352,6 +352,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit', ['block_id' => $this->blockId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/DeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/DeleteTest.php
index 4d2b25a708d..e218e22421c 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/DeleteTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/DeleteTest.php
@@ -146,7 +146,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 
     public function testDeleteActionNoId()
@@ -166,7 +166,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 
     public function testDeleteActionThrowsException()
@@ -210,6 +210,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit', ['page_id' => $this->pageId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/InlineEditTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/InlineEditTest.php
index 8402fbc8f3b..3024c271a3e 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/InlineEditTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/InlineEditTest.php
@@ -163,7 +163,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteWithRuntimeException()
@@ -184,7 +184,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -205,7 +205,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteWithoutData()
@@ -231,7 +231,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testSetCmsPageData()
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php
index 98a5df2b619..72cd0cedba3 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php
@@ -80,7 +80,7 @@ class MassDeleteTest extends AbstractMassActionTest
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->massDeleteController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php
index 688cc87fa09..f8d82e0b863 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php
@@ -85,7 +85,7 @@ class MassDisableTest extends AbstractMassActionTest
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->massDisableController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->massDisableController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php
index 661231aa012..f7460ae29cb 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php
@@ -85,7 +85,7 @@ class MassEnableTest extends AbstractMassActionTest
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->massEnableController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->massEnableController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Wysiwyg/DirectiveTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Wysiwyg/DirectiveTest.php
index 7d0ec584d46..b0120b54ae0 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Wysiwyg/DirectiveTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Wysiwyg/DirectiveTest.php
@@ -157,7 +157,7 @@ class DirectiveTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Cms\Controller\Adminhtml\Wysiwyg\Directive::execute
+     * @covers \Magento\Cms\Controller\Adminhtml\Wysiwyg\Directive::executeInternal
      */
     public function testExecute()
     {
@@ -188,12 +188,12 @@ class DirectiveTest extends \PHPUnit_Framework_TestCase
 
         $this->assertSame(
             $this->rawMock,
-            $this->wysiwygDirective->execute()
+            $this->wysiwygDirective->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Cms\Controller\Adminhtml\Wysiwyg\Directive::execute
+     * @covers \Magento\Cms\Controller\Adminhtml\Wysiwyg\Directive::executeInternal
      */
     public function testExecuteException()
     {
@@ -236,7 +236,7 @@ class DirectiveTest extends \PHPUnit_Framework_TestCase
 
         $this->assertSame(
             $this->rawMock,
-            $this->wysiwygDirective->execute()
+            $this->wysiwygDirective->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Block/InlineEditTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Block/InlineEditTest.php
index 85cab72d2aa..37872f893c3 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Block/InlineEditTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Block/InlineEditTest.php
@@ -131,7 +131,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithoutData()
@@ -157,6 +157,6 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Index/IndexTest.php
index 3b4ecc8ee10..10bb82ac001 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Index/IndexTest.php
@@ -96,7 +96,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('prepareResultPage')
             ->with($this->controller, $this->pageId)
             ->willReturn($this->resultPageMock);
-        $this->assertSame($this->resultPageMock, $this->controller->execute());
+        $this->assertSame($this->resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteResultForward()
@@ -105,6 +105,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('forward')
             ->with('defaultIndex')
             ->willReturnSelf();
-        $this->assertSame($this->forwardMock, $this->controller->execute());
+        $this->assertSame($this->forwardMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Noroute/IndexTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Noroute/IndexTest.php
index 4ff2bcaa752..444a1d76725 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Noroute/IndexTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Noroute/IndexTest.php
@@ -113,7 +113,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         );
         $this->assertSame(
             $this->resultPageMock,
-            $this->_controller->execute()
+            $this->_controller->executeInternal()
         );
     }
 
@@ -146,7 +146,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         );
         $this->assertSame(
             $this->forwardMock,
-            $this->_controller->execute()
+            $this->_controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Page/ViewTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Page/ViewTest.php
index df009be3bb0..5c15f13b931 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Page/ViewTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Page/ViewTest.php
@@ -89,7 +89,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('prepareResultPage')
             ->with($this->controller, $this->pageId)
             ->willReturn($this->resultPageMock);
-        $this->assertSame($this->resultPageMock, $this->controller->execute());
+        $this->assertSame($this->resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteResultForward()
@@ -106,6 +106,6 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('forward')
             ->with('noroute')
             ->willReturnSelf();
-        $this->assertSame($this->forwardMock, $this->controller->execute());
+        $this->assertSame($this->forwardMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/AbstractConfig.php b/app/code/Magento/Config/Controller/Adminhtml/System/AbstractConfig.php
index 92e50151a75..57b28ebdd42 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/AbstractConfig.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/AbstractConfig.php
@@ -44,12 +44,12 @@ abstract class AbstractConfig extends \Magento\Backend\App\AbstractAction
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(\Magento\Framework\App\RequestInterface $request)
+    public function execute(\Magento\Framework\App\RequestInterface $request)
     {
         if (!$request->getParam('section')) {
             $request->setParam('section', $this->_configStructure->getFirstSection()->getId());
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Edit.php b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Edit.php
index 9f8bf3a73f1..ad25ce834a5 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Edit.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Edit.php
@@ -36,7 +36,7 @@ class Edit extends AbstractScopeConfig
      *
      * @return \Magento\Framework\App\ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $current = $this->getRequest()->getParam('section');
         $website = $this->getRequest()->getParam('website');
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Index.php b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Index.php
index 2513c9cb00f..f92619feb04 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Index.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Index.php
@@ -36,7 +36,7 @@ class Index extends AbstractScopeConfig
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Save.php b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Save.php
index d18c4ffc4bc..6dea5197bb4 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Save.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Save.php
@@ -141,7 +141,7 @@ class Save extends AbstractConfig
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             // custom save logic
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/Config/State.php b/app/code/Magento/Config/Controller/Adminhtml/System/Config/State.php
index d1f299e6a32..9ac46a6dcb3 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/Config/State.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/Config/State.php
@@ -36,7 +36,7 @@ class State extends AbstractScopeConfig
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('isAjax')
             && $this->getRequest()->getParam('container') != ''
diff --git a/app/code/Magento/Config/Test/Unit/Controller/Adminhtml/System/Config/SaveTest.php b/app/code/Magento/Config/Test/Unit/Controller/Adminhtml/System/Config/SaveTest.php
index eb5d66c4a62..3cbd4c901d1 100644
--- a/app/code/Magento/Config/Test/Unit/Controller/Adminhtml/System/Config/SaveTest.php
+++ b/app/code/Magento/Config/Test/Unit/Controller/Adminhtml/System/Config/SaveTest.php
@@ -213,7 +213,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             $this->returnValue($backendConfigMock)
         );
 
-        $this->assertEquals($this->resultRedirect, $this->_controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->_controller->executeInternal());
     }
 
     public function testIndexActionSaveState()
@@ -234,7 +234,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         )->will(
             $this->returnValue($data)
         );
-        $this->assertEquals($this->resultRedirect, $this->_controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->_controller->executeInternal());
     }
 
     public function testIndexActionGetGroupForSave()
@@ -285,7 +285,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         );
         $backendConfigMock->expects($this->once())->method('save');
 
-        $this->assertEquals($this->resultRedirect, $this->_controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->_controller->executeInternal());
     }
 
     public function testIndexActionSaveAdvanced()
@@ -311,6 +311,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $backendConfigMock->expects($this->once())->method('save');
 
         $this->_cacheMock->expects($this->once())->method('clean')->with(\Zend_Cache::CLEANING_MODE_ALL);
-        $this->assertEquals($this->resultRedirect, $this->_controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->_controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/AddAttribute.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/AddAttribute.php
index 2377de0c5b9..ac318931264 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/AddAttribute.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/AddAttribute.php
@@ -32,7 +32,7 @@ class AddAttribute extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout('popup');
         $this->productBuilder->build($this->getRequest());
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Associated/Grid.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Associated/Grid.php
index 6eb4facfee9..6fb61d0548a 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Associated/Grid.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Associated/Grid.php
@@ -33,7 +33,7 @@ class Grid extends Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/CreateOptions.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/CreateOptions.php
index 7516807654a..8e620c74944 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/CreateOptions.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/CreateOptions.php
@@ -52,7 +52,7 @@ class CreateOptions extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->representJson($this->jsonHelper->jsonEncode($this->saveAttributeOptions()));
     }
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/GetAttributes.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/GetAttributes.php
index 39bee40024e..b0e66aba601 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/GetAttributes.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/GetAttributes.php
@@ -60,7 +60,7 @@ class GetAttributes extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->storeManager->setCurrentStore(\Magento\Store\Model\Store::ADMIN_CODE);
         $collection = $this->collectionFactory->create();
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributes.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributes.php
index 4135ea97ab6..1fabe24b05b 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributes.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributes.php
@@ -61,7 +61,7 @@ class SuggestConfigurableAttributes extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->storeManager->setCurrentStore(\Magento\Store\Model\Store::ADMIN_CODE);
 
diff --git a/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/AddAttributeTest.php b/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/AddAttributeTest.php
index f37d40eccf0..228f44a9a50 100644
--- a/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/AddAttributeTest.php
+++ b/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/AddAttributeTest.php
@@ -102,6 +102,6 @@ class AddAttributeTest extends \PHPUnit_Framework_TestCase
         $layout->expects($this->once())->method('setChild')->willReturnSelf();
         $this->view->expects($this->any())->method('renderLayout')->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributesTest.php b/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributesTest.php
index d8b1fc5a051..24ace68cf47 100644
--- a/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributesTest.php
+++ b/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributesTest.php
@@ -86,6 +86,6 @@ class SuggestConfigurableAttributesTest extends \PHPUnit_Framework_TestCase
             $this->returnValue('body')
         );
         $this->responseMock->expects($this->once())->method('representJson')->with('body');
-        $this->suggestAttributes->execute();
+        $this->suggestAttributes->executeInternal();
     }
 }
diff --git a/app/code/Magento/Contact/Controller/Index.php b/app/code/Magento/Contact/Controller/Index.php
index 8a04b5b7b1d..28272b87d0c 100644
--- a/app/code/Magento/Contact/Controller/Index.php
+++ b/app/code/Magento/Contact/Controller/Index.php
@@ -82,11 +82,11 @@ abstract class Index extends \Magento\Framework\App\Action\Action
      * @return \Magento\Framework\App\ResponseInterface
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->scopeConfig->isSetFlag(self::XML_PATH_ENABLED, ScopeInterface::SCOPE_STORE)) {
             throw new NotFoundException(__('Page not found.'));
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 }
diff --git a/app/code/Magento/Contact/Controller/Index/Index.php b/app/code/Magento/Contact/Controller/Index/Index.php
index 247728f63f8..c1ff54c71f7 100644
--- a/app/code/Magento/Contact/Controller/Index/Index.php
+++ b/app/code/Magento/Contact/Controller/Index/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Contact\Controller\Index
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Contact/Controller/Index/Post.php b/app/code/Magento/Contact/Controller/Index/Post.php
index f5114cd6f68..854a2e15610 100644
--- a/app/code/Magento/Contact/Controller/Index/Post.php
+++ b/app/code/Magento/Contact/Controller/Index/Post.php
@@ -14,7 +14,7 @@ class Post extends \Magento\Contact\Controller\Index
      * @return void
      * @throws \Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $post = $this->getRequest()->getPostValue();
         if (!$post) {
diff --git a/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php
index a914cf698e3..9a980ca0b7c 100644
--- a/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php
@@ -99,6 +99,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->_view->expects($this->once())
             ->method('renderLayout');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Contact/Test/Unit/Controller/Index/PostTest.php b/app/code/Magento/Contact/Test/Unit/Controller/Index/PostTest.php
index a508c25a445..d062bb7ad9c 100644
--- a/app/code/Magento/Contact/Test/Unit/Controller/Index/PostTest.php
+++ b/app/code/Magento/Contact/Test/Unit/Controller/Index/PostTest.php
@@ -135,7 +135,7 @@ class PostTest extends \PHPUnit_Framework_TestCase
     {
         $this->_request->expects($this->once())->method('getPostValue')->will($this->returnValue([]));
         $this->_redirect->expects($this->once())->method('redirect');
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     /**
@@ -157,7 +157,7 @@ class PostTest extends \PHPUnit_Framework_TestCase
         $this->_inlineTranslation->expects($this->once())
             ->method('suspend');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testPostDataProvider()
@@ -224,6 +224,6 @@ class PostTest extends \PHPUnit_Framework_TestCase
         $this->_inlineTranslation->expects($this->once())
             ->method('suspend');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php b/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php
index 93f055f4d0a..b27d4db46d4 100644
--- a/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php
+++ b/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php
@@ -78,7 +78,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             )
             ->will($this->returnValue(false));
 
-        $this->_controller->dispatch(
+        $this->_controller->execute(
             $this->getMockForAbstractClass('\Magento\Framework\App\RequestInterface', [], '', false)
         );
     }
diff --git a/app/code/Magento/Contact/Test/Unit/Controller/Stub/IndexStub.php b/app/code/Magento/Contact/Test/Unit/Controller/Stub/IndexStub.php
index 4d4320d4acb..4966ddd26be 100644
--- a/app/code/Magento/Contact/Test/Unit/Controller/Stub/IndexStub.php
+++ b/app/code/Magento/Contact/Test/Unit/Controller/Stub/IndexStub.php
@@ -8,7 +8,7 @@ namespace Magento\Contact\Test\Unit\Controller\Stub;
 
 class IndexStub extends \Magento\Contact\Controller\Index
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/Cookie/Controller/Index/NoCookies.php b/app/code/Magento/Cookie/Controller/Index/NoCookies.php
index c8ce45e0a38..edf4949fb0b 100644
--- a/app/code/Magento/Cookie/Controller/Index/NoCookies.php
+++ b/app/code/Magento/Cookie/Controller/Index/NoCookies.php
@@ -13,7 +13,7 @@ class NoCookies extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirect = new \Magento\Framework\DataObject();
         $this->_eventManager->dispatch(
diff --git a/app/code/Magento/Cookie/Test/Unit/Controller/Index/NoCookiesTest.php b/app/code/Magento/Cookie/Test/Unit/Controller/Index/NoCookiesTest.php
index 7e2db7aeaf5..0d9c3439eda 100644
--- a/app/code/Magento/Cookie/Test/Unit/Controller/Index/NoCookiesTest.php
+++ b/app/code/Magento/Cookie/Test/Unit/Controller/Index/NoCookiesTest.php
@@ -95,7 +95,7 @@ class NoCookiesTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('setDispatched')->with($this->isTrue());
 
         // Make the call to test
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteRedirectPath()
@@ -126,7 +126,7 @@ class NoCookiesTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('setDispatched')->with($this->isTrue());
 
         // Make the call to test
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteDefault()
@@ -139,6 +139,6 @@ class NoCookiesTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('setDispatched')->with($this->isTrue());
 
         // Make the call to test
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRates.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRates.php
index 08cb0511025..9cc52750b3d 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRates.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRates.php
@@ -16,7 +16,7 @@ class FetchRates extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Cur
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\Session $backendSession */
         $backendSession = $this->_objectManager->get('Magento\Backend\Model\Session');
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/Index.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/Index.php
index 751020010a7..1646068a7c4 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/Index.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Currency
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_CurrencySymbol::system_currency_rates');
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/SaveRates.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/SaveRates.php
index 01ba604f110..06e2a760d25 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/SaveRates.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/SaveRates.php
@@ -16,7 +16,7 @@ class SaveRates extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Curr
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getParam('rate');
         if (is_array($data)) {
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Index.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Index.php
index 12ae3374a88..fdc897735d1 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Index.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Currency
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // set active menu and breadcrumbs
         $this->_view->loadLayout();
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php
index 716ca26e493..86cb38a43a2 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Currencys
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $symbolsDataArray = $this->getRequest()->getParam('custom_currency_symbol', null);
         if (is_array($symbolsDataArray)) {
diff --git a/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/IndexTest.php b/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/IndexTest.php
index b75df9bce15..5584c064d30 100644
--- a/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/IndexTest.php
+++ b/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/IndexTest.php
@@ -106,6 +106,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->viewMock->expects($this->atLeastOnce())->method('getLayout')->willReturn($this->layoutMock);
         $this->viewMock->expects($this->atLeastOnce())->method('getPage')->willReturn($this->pageMock);
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php b/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php
index 5d6b9d997fc..7e730e7da55 100644
--- a/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php
+++ b/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php
@@ -143,6 +143,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->method('addSuccess')
             ->with(__('You applied the custom currency symbols.'));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Controller/Account/Confirm.php b/app/code/Magento/Customer/Controller/Account/Confirm.php
index 24037307539..26fcce39f20 100644
--- a/app/code/Magento/Customer/Controller/Account/Confirm.php
+++ b/app/code/Magento/Customer/Controller/Account/Confirm.php
@@ -86,7 +86,7 @@ class Confirm extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Customer/Controller/Account/Confirmation.php b/app/code/Magento/Customer/Controller/Account/Confirmation.php
index 6f050098deb..a1da7d92d79 100644
--- a/app/code/Magento/Customer/Controller/Account/Confirmation.php
+++ b/app/code/Magento/Customer/Controller/Account/Confirmation.php
@@ -59,7 +59,7 @@ class Confirmation extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->session->isLoggedIn()) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Account/Create.php b/app/code/Magento/Customer/Controller/Account/Create.php
index 51e1c151ea8..fa910d2fbad 100644
--- a/app/code/Magento/Customer/Controller/Account/Create.php
+++ b/app/code/Magento/Customer/Controller/Account/Create.php
@@ -51,7 +51,7 @@ class Create extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->session->isLoggedIn() || !$this->registration->isAllowed()) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Account/CreatePassword.php b/app/code/Magento/Customer/Controller/Account/CreatePassword.php
index f0288b1f2b4..889b2538eca 100644
--- a/app/code/Magento/Customer/Controller/Account/CreatePassword.php
+++ b/app/code/Magento/Customer/Controller/Account/CreatePassword.php
@@ -51,7 +51,7 @@ class CreatePassword extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resetPasswordToken = (string)$this->getRequest()->getParam('token');
         $customerId = (int)$this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Customer/Controller/Account/CreatePost.php b/app/code/Magento/Customer/Controller/Account/CreatePost.php
index 8d2c5b81fa4..3bd8c5bacf8 100644
--- a/app/code/Magento/Customer/Controller/Account/CreatePost.php
+++ b/app/code/Magento/Customer/Controller/Account/CreatePost.php
@@ -201,7 +201,7 @@ class CreatePost extends Action implements AccountInterface
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/Edit.php b/app/code/Magento/Customer/Controller/Account/Edit.php
index 3f035bdcdf1..4c862f9509e 100644
--- a/app/code/Magento/Customer/Controller/Account/Edit.php
+++ b/app/code/Magento/Customer/Controller/Account/Edit.php
@@ -58,7 +58,7 @@ class Edit extends Action implements AccountInterface
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/EditPost.php b/app/code/Magento/Customer/Controller/Account/EditPost.php
index a61c551b171..8fbc85dac02 100644
--- a/app/code/Magento/Customer/Controller/Account/EditPost.php
+++ b/app/code/Magento/Customer/Controller/Account/EditPost.php
@@ -69,7 +69,7 @@ class EditPost extends Action implements AccountInterface
      * @return \Magento\Framework\Controller\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/ForgotPassword.php b/app/code/Magento/Customer/Controller/Account/ForgotPassword.php
index daeb13e1eae..53139df7a1e 100644
--- a/app/code/Magento/Customer/Controller/Account/ForgotPassword.php
+++ b/app/code/Magento/Customer/Controller/Account/ForgotPassword.php
@@ -44,7 +44,7 @@ class ForgotPassword extends Action implements AccountInterface
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/ForgotPasswordPost.php b/app/code/Magento/Customer/Controller/Account/ForgotPasswordPost.php
index be1d15b56e3..e40689ea1e5 100644
--- a/app/code/Magento/Customer/Controller/Account/ForgotPasswordPost.php
+++ b/app/code/Magento/Customer/Controller/Account/ForgotPasswordPost.php
@@ -51,7 +51,7 @@ class ForgotPasswordPost extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/Index.php b/app/code/Magento/Customer/Controller/Account/Index.php
index c99d8dd199e..db90eec8363 100644
--- a/app/code/Magento/Customer/Controller/Account/Index.php
+++ b/app/code/Magento/Customer/Controller/Account/Index.php
@@ -35,7 +35,7 @@ class Index extends Action implements AccountInterface
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/Login.php b/app/code/Magento/Customer/Controller/Account/Login.php
index ca404047dd2..72511c59423 100644
--- a/app/code/Magento/Customer/Controller/Account/Login.php
+++ b/app/code/Magento/Customer/Controller/Account/Login.php
@@ -44,7 +44,7 @@ class Login extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->session->isLoggedIn()) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Account/LoginPost.php b/app/code/Magento/Customer/Controller/Account/LoginPost.php
index 7b6191eb255..b1b3a8b020c 100644
--- a/app/code/Magento/Customer/Controller/Account/LoginPost.php
+++ b/app/code/Magento/Customer/Controller/Account/LoginPost.php
@@ -67,7 +67,7 @@ class LoginPost extends Action implements AccountInterface
      * @return \Magento\Framework\Controller\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->session->isLoggedIn() || !$this->formKeyValidator->validate($this->getRequest())) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Account/Logout.php b/app/code/Magento/Customer/Controller/Account/Logout.php
index be0dcd6ba5e..4d070b401ce 100644
--- a/app/code/Magento/Customer/Controller/Account/Logout.php
+++ b/app/code/Magento/Customer/Controller/Account/Logout.php
@@ -35,7 +35,7 @@ class Logout extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $lastCustomerId = $this->session->getId();
         $this->session->logout()->setBeforeAuthUrl($this->_redirect->getRefererUrl())
diff --git a/app/code/Magento/Customer/Controller/Account/LogoutSuccess.php b/app/code/Magento/Customer/Controller/Account/LogoutSuccess.php
index 77eb5314990..8185c93a60c 100644
--- a/app/code/Magento/Customer/Controller/Account/LogoutSuccess.php
+++ b/app/code/Magento/Customer/Controller/Account/LogoutSuccess.php
@@ -35,7 +35,7 @@ class LogoutSuccess extends Action implements AccountInterface
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultPageFactory->create();
     }
diff --git a/app/code/Magento/Customer/Controller/Account/ResetPasswordPost.php b/app/code/Magento/Customer/Controller/Account/ResetPasswordPost.php
index 0e996ea9a80..1044c71379f 100644
--- a/app/code/Magento/Customer/Controller/Account/ResetPasswordPost.php
+++ b/app/code/Magento/Customer/Controller/Account/ResetPasswordPost.php
@@ -51,7 +51,7 @@ class ResetPasswordPost extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Address.php b/app/code/Magento/Customer/Controller/Address.php
index b527db41ac0..f4ffb6c9dac 100644
--- a/app/code/Magento/Customer/Controller/Address.php
+++ b/app/code/Magento/Customer/Controller/Address.php
@@ -120,12 +120,12 @@ abstract class Address extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->_getSession()->authenticate()) {
             $this->_actionFlag->set('', 'no-dispatch', true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Customer/Controller/Address/Delete.php b/app/code/Magento/Customer/Controller/Address/Delete.php
index 6dfa17be32b..6c736e3fcdf 100644
--- a/app/code/Magento/Customer/Controller/Address/Delete.php
+++ b/app/code/Magento/Customer/Controller/Address/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\Customer\Controller\Address
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $addressId = $this->getRequest()->getParam('id', false);
 
diff --git a/app/code/Magento/Customer/Controller/Address/Edit.php b/app/code/Magento/Customer/Controller/Address/Edit.php
index 0691ffd8ad5..5857b0c64b2 100644
--- a/app/code/Magento/Customer/Controller/Address/Edit.php
+++ b/app/code/Magento/Customer/Controller/Address/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Customer\Controller\Address
      *
      * @return \Magento\Framework\Controller\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Address/Form.php b/app/code/Magento/Customer/Controller/Address/Form.php
index b30d453dce8..6699bf27d5e 100644
--- a/app/code/Magento/Customer/Controller/Address/Form.php
+++ b/app/code/Magento/Customer/Controller/Address/Form.php
@@ -13,7 +13,7 @@ class Form extends \Magento\Customer\Controller\Address
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Address/FormPost.php b/app/code/Magento/Customer/Controller/Address/FormPost.php
index 9360ca0f7d6..eb3e6817dd0 100644
--- a/app/code/Magento/Customer/Controller/Address/FormPost.php
+++ b/app/code/Magento/Customer/Controller/Address/FormPost.php
@@ -176,7 +176,7 @@ class FormPost extends \Magento\Customer\Controller\Address
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirectUrl = null;
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
diff --git a/app/code/Magento/Customer/Controller/Address/Index.php b/app/code/Magento/Customer/Controller/Address/Index.php
index b445fa6fbfa..1d5c09e317b 100644
--- a/app/code/Magento/Customer/Controller/Address/Index.php
+++ b/app/code/Magento/Customer/Controller/Address/Index.php
@@ -68,7 +68,7 @@ class Index extends \Magento\Customer\Controller\Address
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $addresses = $this->customerRepository->getById($this->_getSession()->getCustomerId())->getAddresses();
         if (count($addresses)) {
diff --git a/app/code/Magento/Customer/Controller/Address/NewAction.php b/app/code/Magento/Customer/Controller/Address/NewAction.php
index 4bfdabbbd5e..9bd9402d5e2 100644
--- a/app/code/Magento/Customer/Controller/Address/NewAction.php
+++ b/app/code/Magento/Customer/Controller/Address/NewAction.php
@@ -11,7 +11,7 @@ class NewAction extends \Magento\Customer\Controller\Address
     /**
      * @return \Magento\Framework\Controller\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Configure.php b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Configure.php
index c74520cb965..ea8a214c16a 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Configure.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Configure.php
@@ -13,7 +13,7 @@ class Configure extends \Magento\Customer\Controller\Adminhtml\Cart\Product\Comp
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $configureResult = new \Magento\Framework\DataObject();
         try {
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Update.php b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Update.php
index 42f9ee513a8..7daaa2cc9ec 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Update.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Update.php
@@ -13,7 +13,7 @@ class Update extends \Magento\Customer\Controller\Adminhtml\Cart\Product\Composi
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $updateResult = new \Magento\Framework\DataObject();
         try {
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Customer/InvalidateToken.php b/app/code/Magento/Customer/Controller/Adminhtml/Customer/InvalidateToken.php
index 92961f2a0d4..f4f788c61b7 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Customer/InvalidateToken.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Customer/InvalidateToken.php
@@ -125,7 +125,7 @@ class InvalidateToken extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if ($customerId = $this->getRequest()->getParam('customer_id')) {
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/Delete.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/Delete.php
index 17af771114f..5b3b91fcf05 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/Delete.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/Delete.php
@@ -15,7 +15,7 @@ class Delete extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/Edit.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/Edit.php
index 303d2f4f1af..838cf9b940a 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/Edit.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultForwardFactory->create()->forward('new');
     }
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/Index.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/Index.php
index 290e77238ff..f80a6fcaa27 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/Index.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/NewAction.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/NewAction.php
index 0750422cd94..383af26a037 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/NewAction.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/NewAction.php
@@ -28,7 +28,7 @@ class NewAction extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $groupId = $this->_initGroup();
 
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/Save.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/Save.php
index a842d8653b3..a775194f12e 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/Save.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/Save.php
@@ -67,7 +67,7 @@ class Save extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $taxClass = (int)$this->getRequest()->getParam('tax_class');
 
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/AbstractMassAction.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/AbstractMassAction.php
index 9a3ca5645f5..096efc640be 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/AbstractMassAction.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/AbstractMassAction.php
@@ -51,7 +51,7 @@ abstract class AbstractMassAction extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collection = $this->filter->getCollection($this->collectionFactory->create());
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php
index e1c4dd68c9c..ff39bf28ac3 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php
@@ -14,7 +14,7 @@ class Cart extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
         $websiteId = $this->getRequest()->getParam('website_id');
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php
index 4c4cb77fa3b..fc4c0c0aeca 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php
@@ -12,7 +12,7 @@ class Carts extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Delete.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Delete.php
index 503969226aa..c8a0615408f 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Delete.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Delete.php
@@ -14,7 +14,7 @@ class Delete extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         $formKeyIsValid = $this->_formKeyValidator->validate($this->getRequest());
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Edit.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Edit.php
index 64af44a9bb8..0820fbea962 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Edit.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Edit.php
@@ -18,7 +18,7 @@ class Edit extends \Magento\Customer\Controller\Adminhtml\Index
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
 
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Index.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Index.php
index b238a8287e7..fa9dfbd5529 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Index.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php
index f97c48b0ebc..4cbc90e88a5 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php
@@ -60,7 +60,7 @@ class InlineEdit extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/LastOrders.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/LastOrders.php
index fa0dcca712a..4711b9e2b18 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/LastOrders.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/LastOrders.php
@@ -12,7 +12,7 @@ class LastOrders extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/NewAction.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/NewAction.php
index d3bdd1eadfd..bdb7a8b79a6 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/NewAction.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/NewAction.php
@@ -12,7 +12,7 @@ class NewAction extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultForward = $this->resultForwardFactory->create();
         $resultForward->forward('edit');
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Newsletter.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Newsletter.php
index 6c27c0a46bd..6918cf84954 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Newsletter.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Newsletter.php
@@ -12,7 +12,7 @@ class Newsletter extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
         /** @var  \Magento\Newsletter\Model\Subscriber $subscriber */
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Orders.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Orders.php
index c825e5c24a8..1964c958428 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Orders.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Orders.php
@@ -12,7 +12,7 @@ class Orders extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/ProductReviews.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/ProductReviews.php
index effaa2618f2..3a8f93a1c30 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/ProductReviews.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/ProductReviews.php
@@ -12,7 +12,7 @@ class ProductReviews extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/ResetPassword.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/ResetPassword.php
index c330eedde0f..43c2d474843 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/ResetPassword.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/ResetPassword.php
@@ -14,7 +14,7 @@ class ResetPassword extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         $customerId = (int)$this->getRequest()->getParam('customer_id', 0);
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php
index 2cbe283339d..b4aa639c817 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php
@@ -176,7 +176,7 @@ class Save extends \Magento\Customer\Controller\Adminhtml\Index
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $returnToEdit = false;
         $originalRequestData = $this->getRequest()->getPostValue();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Validate.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Validate.php
index bd7230f1aa1..001726280a4 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Validate.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Validate.php
@@ -107,7 +107,7 @@ class Validate extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(0);
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewCart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewCart.php
index ee95065596c..cda5a37bc0e 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewCart.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewCart.php
@@ -12,7 +12,7 @@ class ViewCart extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewWishlist.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewWishlist.php
index 34fa6b66a11..2f201d26028 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewWishlist.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewWishlist.php
@@ -12,7 +12,7 @@ class ViewWishlist extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Viewfile.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Viewfile.php
index 52a8ea95f94..75341af2d6a 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Viewfile.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Viewfile.php
@@ -129,7 +129,7 @@ class Viewfile extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $file = null;
         $plain = false;
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Wishlist.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Wishlist.php
index 6f7e0e3bfbd..c550f125dc7 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Wishlist.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Wishlist.php
@@ -12,7 +12,7 @@ class Wishlist extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
         $itemId = (int)$this->getRequest()->getParam('delete');
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Online/Index.php b/app/code/Magento/Customer/Controller/Adminhtml/Online/Index.php
index 8bd9ce97c34..172622ac176 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Online/Index.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Online/Index.php
@@ -43,7 +43,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php
index f1f638a852e..e8a7b96b4bb 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php
@@ -31,7 +31,7 @@ class Validate extends \Magento\Customer\Controller\Adminhtml\System\Config\Vali
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->_validate();
 
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/ValidateAdvanced.php b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/ValidateAdvanced.php
index b3df87ed9ff..8d8d3408687 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/ValidateAdvanced.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/ValidateAdvanced.php
@@ -30,7 +30,7 @@ class ValidateAdvanced extends \Magento\Customer\Controller\Adminhtml\System\Con
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->_validate();
         $valid = $result->getIsValid();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Configure.php b/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Configure.php
index 6101483eb98..31038f2bd08 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Configure.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Configure.php
@@ -15,7 +15,7 @@ class Configure extends \Magento\Customer\Controller\Adminhtml\Wishlist\Product\
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $configureResult = new \Magento\Framework\DataObject();
         try {
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Update.php b/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Update.php
index cb895085d7f..8e098708fb9 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Update.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Update.php
@@ -15,7 +15,7 @@ class Update extends \Magento\Customer\Controller\Adminhtml\Wishlist\Product\Com
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // Update wishlist item
         $updateResult = new \Magento\Framework\DataObject();
diff --git a/app/code/Magento/Customer/Controller/Ajax/Login.php b/app/code/Magento/Customer/Controller/Ajax/Login.php
index 4258ebf1ef0..08b72b1e3ec 100644
--- a/app/code/Magento/Customer/Controller/Ajax/Login.php
+++ b/app/code/Magento/Customer/Controller/Ajax/Login.php
@@ -76,7 +76,7 @@ class Login extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $credentials = null;
         $httpBadRequestCode = 400;
diff --git a/app/code/Magento/Customer/Controller/Ajax/Logout.php b/app/code/Magento/Customer/Controller/Ajax/Logout.php
index 69ce4693b03..4d90a7ae39a 100644
--- a/app/code/Magento/Customer/Controller/Ajax/Logout.php
+++ b/app/code/Magento/Customer/Controller/Ajax/Logout.php
@@ -47,7 +47,7 @@ class Logout extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $lastCustomerId = $this->customerSession->getId();
         $this->customerSession->logout()
diff --git a/app/code/Magento/Customer/Controller/Review.php b/app/code/Magento/Customer/Controller/Review.php
index 2a667e4c3e7..396ad3da692 100644
--- a/app/code/Magento/Customer/Controller/Review.php
+++ b/app/code/Magento/Customer/Controller/Review.php
@@ -30,7 +30,7 @@ class Review extends \Magento\Framework\App\Action\Action
     /**
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultPageFactory->create();
     }
diff --git a/app/code/Magento/Customer/Controller/Section/Load.php b/app/code/Magento/Customer/Controller/Section/Load.php
index df4abe308ba..503c075d9bf 100644
--- a/app/code/Magento/Customer/Controller/Section/Load.php
+++ b/app/code/Magento/Customer/Controller/Section/Load.php
@@ -51,7 +51,7 @@ class Load extends \Magento\Framework\App\Action\Action
     /**
      * @return \Magento\Framework\Controller\Result\Json|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/ConfirmTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/ConfirmTest.php
index f3dee06b411..0a0d2dbbefd 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/ConfirmTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/ConfirmTest.php
@@ -190,7 +190,7 @@ class ConfirmTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->model->execute());
+        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->model->executeInternal());
     }
 
     /**
@@ -232,7 +232,7 @@ class ConfirmTest extends \PHPUnit_Framework_TestCase
             ->with($this->equalTo($testUrl))
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->model->execute());
+        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->model->executeInternal());
     }
 
     /**
@@ -307,7 +307,7 @@ class ConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('getStore')
             ->will($this->returnValue($this->storeMock));
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
@@ -404,7 +404,7 @@ class ConfirmTest extends \PHPUnit_Framework_TestCase
             )
             ->willReturn($isSetFlag);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePasswordTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePasswordTest.php
index 3a1172d0953..6ef1faa6378 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePasswordTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePasswordTest.php
@@ -108,7 +108,7 @@ class CreatePasswordTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/createpassword', [])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithSession()
@@ -176,7 +176,7 @@ class CreatePasswordTest extends \PHPUnit_Framework_TestCase
             ->with($token)
             ->willReturnSelf();
 
-        $this->assertEquals($pageMock, $this->model->execute());
+        $this->assertEquals($pageMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -225,6 +225,6 @@ class CreatePasswordTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/forgotpassword', [])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePostTest.php
index c765dc83939..d8815ba253b 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePostTest.php
@@ -270,7 +270,7 @@ class CreatePostTest extends \PHPUnit_Framework_TestCase
         $this->customerRepository->expects($this->never())
             ->method('save');
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     public function testRegenerateIdOnExecution()
@@ -297,7 +297,7 @@ class CreatePostTest extends \PHPUnit_Framework_TestCase
         $this->storeManagerMock->expects($this->once())
             ->method('getStore')
             ->willReturn($this->storeMock);
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
@@ -391,7 +391,7 @@ class CreatePostTest extends \PHPUnit_Framework_TestCase
             ->method('getTaxCalculationAddressType')
             ->will($this->returnValue($addressType));
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
@@ -539,7 +539,7 @@ class CreatePostTest extends \PHPUnit_Framework_TestCase
             ->method('getStore')
             ->will($this->returnValue($this->storeMock));
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     public function getSuccessRedirectDataProvider()
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreateTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreateTest.php
index 0706355a39f..894582be4b3 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreateTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreateTest.php
@@ -116,7 +116,7 @@ class CreateTest extends \PHPUnit_Framework_TestCase
         $this->resultPageMock->expects($this->never())
             ->method('getLayout');
 
-        $this->object->execute();
+        $this->object->executeInternal();
     }
 
     /**
@@ -139,6 +139,6 @@ class CreateTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($this->resultPageMock);
 
-        $this->object->execute();
+        $this->object->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/EditPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/EditPostTest.php
index 991a4b17eca..acd413d0006 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/EditPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/EditPostTest.php
@@ -131,7 +131,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testNoPostValues()
@@ -150,7 +150,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testGeneralSave()
@@ -211,7 +211,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->with('customer/account')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -311,7 +311,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->willReturn($errors['counter']);
 
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -443,7 +443,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/ForgotPasswordPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/ForgotPasswordPostTest.php
index 8f060f2dd3b..0cf693299fe 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/ForgotPasswordPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/ForgotPasswordPostTest.php
@@ -107,7 +107,7 @@ class ForgotPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/forgotpassword')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->controller->execute());
+        $this->assertSame($this->resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecute()
@@ -143,7 +143,7 @@ class ForgotPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteNoSuchEntityException()
@@ -179,7 +179,7 @@ class ForgotPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteException()
@@ -207,7 +207,7 @@ class ForgotPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/forgotpassword')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     protected function prepareContext()
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php
index e71e413d7e1..ca9a975b7cd 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php
@@ -133,7 +133,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
@@ -176,7 +176,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->method('getRedirect')
             ->willReturn($this->redirect);
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteEmptyLoginData()
@@ -207,7 +207,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->method('getRedirect')
             ->willReturn($this->redirect);
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteSuccess()
@@ -255,7 +255,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->method('getRedirect')
             ->willReturn($this->redirect);
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
@@ -303,7 +303,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->method('getRedirect')
             ->willReturn($this->redirect);
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/ResetPasswordPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/ResetPasswordPostTest.php
index 6cb488a07c6..5581be2e75a 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/ResetPasswordPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/ResetPasswordPostTest.php
@@ -142,7 +142,7 @@ class ResetPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/login', [])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -208,7 +208,7 @@ class ResetPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/createPassword', ['id' => $customerId, 'token' => $token])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithWrongConfirmation()
@@ -255,7 +255,7 @@ class ResetPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/createPassword', ['id' => $customerId, 'token' => $token])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithEmptyPassword()
@@ -302,6 +302,6 @@ class ResetPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/createPassword', ['id' => $customerId, 'token' => $token])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php
index 39fa2018cff..e082233b6e2 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php
@@ -342,7 +342,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testExecuteNoPostData()
@@ -389,7 +389,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -575,7 +575,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function dataProviderTestExecute()
@@ -668,7 +668,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testExecuteException()
@@ -731,6 +731,6 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/IndexTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/IndexTest.php
index 38d6e7d53ef..17c90338031 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/IndexTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/IndexTest.php
@@ -108,7 +108,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      */
     public function testExecute()
     {
@@ -140,12 +140,12 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\View\Result\Page',
-            $this->indexController->execute()
+            $this->indexController->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      */
     public function testExecuteAjax()
     {
@@ -161,7 +161,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->indexController->execute()
+            $this->indexController->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/InlineEditTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/InlineEditTest.php
index e806e302013..181b8dbab6e 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/InlineEditTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/InlineEditTest.php
@@ -259,7 +259,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ->method('save')
             ->with($this->customerData);
         $this->prepareMocksForErrorMessagesProcessing();
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteWithoutItems()
@@ -283,7 +283,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
                 'error' => true,
             ])
             ->willReturnSelf();
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteLocalizedException()
@@ -305,7 +305,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ->with($exception);
 
         $this->prepareMocksForErrorMessagesProcessing();
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteException()
@@ -327,6 +327,6 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ->with($exception);
 
         $this->prepareMocksForErrorMessagesProcessing();
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassAssignGroupTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassAssignGroupTest.php
index 4cbd57be538..f78e202b884 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassAssignGroupTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassAssignGroupTest.php
@@ -172,7 +172,7 @@ class MassAssignGroupTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/index')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -191,6 +191,6 @@ class MassAssignGroupTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Some message.');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassDeleteTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassDeleteTest.php
index de91d73d10a..dcfc2084e26 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassDeleteTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassDeleteTest.php
@@ -172,7 +172,7 @@ class MassDeleteTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/index')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -191,6 +191,6 @@ class MassDeleteTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Some message.');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassSubscribeTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassSubscribeTest.php
index 8aff6b96313..6e288583c1c 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassSubscribeTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassSubscribeTest.php
@@ -188,7 +188,7 @@ class MassSubscribeTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/index')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -207,6 +207,6 @@ class MassSubscribeTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Some message.');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassUnsubscribeTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassUnsubscribeTest.php
index 00eaa7546e7..9129be9c89f 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassUnsubscribeTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassUnsubscribeTest.php
@@ -188,7 +188,7 @@ class MassUnsubscribeTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/index')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -207,6 +207,6 @@ class MassUnsubscribeTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Some message.');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/NewsletterTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/NewsletterTest.php
index 97599618c34..36c3ff14267 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/NewsletterTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/NewsletterTest.php
@@ -256,7 +256,7 @@ class NewsletterTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\View\Result\Layout',
-            $this->_testedObject->execute()
+            $this->_testedObject->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ResetPasswordTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ResetPasswordTest.php
index a4a9df750dc..416f8055bec 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ResetPasswordTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ResetPasswordTest.php
@@ -236,7 +236,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->_testedObject->execute()
+            $this->_testedObject->executeInternal()
         );
     }
 
@@ -290,7 +290,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->_testedObject->execute()
+            $this->_testedObject->executeInternal()
         );
     }
 
@@ -329,7 +329,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
             ->method('addMessage')
             ->with($error);
 
-        $this->_testedObject->execute();
+        $this->_testedObject->executeInternal();
     }
 
     public function testResetPasswordActionCoreExceptionWarn()
@@ -358,7 +358,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
             ->method('addMessage')
             ->with(new \Magento\Framework\Message\Error($warningText));
 
-        $this->_testedObject->execute();
+        $this->_testedObject->executeInternal();
     }
 
     public function testResetPasswordActionException()
@@ -399,7 +399,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
             $this->equalTo('Something went wrong while resetting customer password.')
         );
 
-        $this->_testedObject->execute();
+        $this->_testedObject->executeInternal();
     }
 
     public function testResetPasswordActionSendEmail()
@@ -479,7 +479,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->_testedObject->execute()
+            $this->_testedObject->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/SaveTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/SaveTest.php
index 95c875393ed..dee2600fb33 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/SaveTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/SaveTest.php
@@ -239,7 +239,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithExistentCustomer()
@@ -512,11 +512,11 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/edit', ['id' => $customerId, '_current' => true])
             ->willReturn(true);
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithNewCustomer()
@@ -760,11 +760,11 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/index', [])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithNewCustomerAndValidationException()
@@ -900,11 +900,11 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/new', ['_current' => true])
             ->willReturn(true);
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithNewCustomerAndLocalizedException()
@@ -1040,11 +1040,11 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/new', ['_current' => true])
             ->willReturn(true);
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithNewCustomerAndException()
@@ -1181,6 +1181,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/new', ['_current' => true])
             ->willReturn(true);
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ValidateTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ValidateTest.php
index f4065cc205e..c7abdf3bb46 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ValidateTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ValidateTest.php
@@ -186,7 +186,7 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ->method('validate')
             ->willReturn($validationResult);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithoutAddresses()
@@ -225,7 +225,7 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ->method('validate')
             ->willReturn($validationResult);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -271,6 +271,6 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ->method('validate')
             ->willReturn($validationResult);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ViewfileTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ViewfileTest.php
index afa437c58ac..3b838c369b0 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ViewfileTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ViewfileTest.php
@@ -107,7 +107,7 @@ class ViewfileTest extends \PHPUnit_Framework_TestCase
     {
         /** @var \Magento\Customer\Controller\Adminhtml\Index\Viewfile $controller */
         $controller = $this->objectManager->getObject('Magento\Customer\Controller\Adminhtml\Index\Viewfile');
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testExecuteParamFile()
@@ -154,7 +154,7 @@ class ViewfileTest extends \PHPUnit_Framework_TestCase
                 'fileFactory' => $fileFactoryMock
             ]
         );
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testExecuteGetParamImage()
@@ -217,6 +217,6 @@ class ViewfileTest extends \PHPUnit_Framework_TestCase
                 'resultRawFactory' => $this->resultRawFactoryMock
             ]
         );
-        $this->assertSame($this->resultRawMock, $controller->execute());
+        $this->assertSame($this->resultRawMock, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php
index ac5625eadef..377f7d331a6 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php
@@ -104,7 +104,7 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturn($json);
 
-        $this->assertEquals($json, $this->controller->execute());
+        $this->assertEquals($json, $this->controller->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Ajax/LoginTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Ajax/LoginTest.php
index 77260f56c58..e1ec62d3537 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Ajax/LoginTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Ajax/LoginTest.php
@@ -204,7 +204,7 @@ class LoginTest extends \PHPUnit_Framework_TestCase
             ->method('setData')
             ->with($result)
             ->willReturn($loginSuccessResponse);
-        $this->assertEquals($loginSuccessResponse, $this->object->execute());
+        $this->assertEquals($loginSuccessResponse, $this->object->executeInternal());
     }
 
     public function testLoginFailure()
@@ -260,6 +260,6 @@ class LoginTest extends \PHPUnit_Framework_TestCase
             ->with($result)
             ->willReturn($loginFailureResponse);
 
-        $this->assertEquals($loginFailureResponse, $this->object->execute());
+        $this->assertEquals($loginFailureResponse, $this->object->executeInternal());
     }
 }
diff --git a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php
index d078bd13b33..8afd580c5b4 100644
--- a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php
+++ b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php
@@ -37,7 +37,7 @@ class ExportCsv extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customers.csv';
diff --git a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportXml.php b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportXml.php
index 7a5edb1d278..686e829e3c5 100644
--- a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportXml.php
+++ b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportXml.php
@@ -37,7 +37,7 @@ class ExportXml extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customers.xml';
diff --git a/app/code/Magento/Directory/Controller/Adminhtml/Json/CountryRegion.php b/app/code/Magento/Directory/Controller/Adminhtml/Json/CountryRegion.php
index 412028bdd8f..b8006ccfd07 100644
--- a/app/code/Magento/Directory/Controller/Adminhtml/Json/CountryRegion.php
+++ b/app/code/Magento/Directory/Controller/Adminhtml/Json/CountryRegion.php
@@ -13,7 +13,7 @@ class CountryRegion extends \Magento\Backend\App\Action
      *
      * @return string
      */
-    public function execute()
+    public function executeInternal()
     {
         $arrRes = [];
 
diff --git a/app/code/Magento/Directory/Controller/Currency/SwitchAction.php b/app/code/Magento/Directory/Controller/Currency/SwitchAction.php
index b8aada56cf7..1a30600ef8a 100644
--- a/app/code/Magento/Directory/Controller/Currency/SwitchAction.php
+++ b/app/code/Magento/Directory/Controller/Currency/SwitchAction.php
@@ -11,7 +11,7 @@ class SwitchAction extends \Magento\Framework\App\Action\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Store\Model\StoreManagerInterface $storeManager */
         $storeManager = $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface');
diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/File/Upload.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/File/Upload.php
index 6e056ee9e45..a762b2d52c2 100644
--- a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/File/Upload.php
+++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/File/Upload.php
@@ -69,7 +69,7 @@ class Upload extends \Magento\Downloadable\Controller\Adminhtml\Downloadable\Fil
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $type = $this->getRequest()->getParam('type');
         $tmpPath = '';
diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Form.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Form.php
index 926491e0735..1d966b22bfb 100644
--- a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Form.php
+++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Form.php
@@ -13,7 +13,7 @@ class Form extends \Magento\Catalog\Controller\Adminhtml\Product\Edit
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initProduct();
         $this->getResponse()->setBody(
diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Link.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Link.php
index 0da0cf5fb96..9cc1bb7b00f 100644
--- a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Link.php
+++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Link.php
@@ -77,7 +77,7 @@ class Link extends \Magento\Catalog\Controller\Adminhtml\Product\Edit
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $linkId = $this->getRequest()->getParam('id', 0);
         $type = $this->getRequest()->getParam('type', 0);
diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Sample.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Sample.php
index 746b5242d5c..3176cb802ca 100644
--- a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Sample.php
+++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Sample.php
@@ -31,7 +31,7 @@ class Sample extends \Magento\Downloadable\Controller\Adminhtml\Downloadable\Pro
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $sampleId = $this->getRequest()->getParam('id', 0);
         /** @var \Magento\Downloadable\Model\Sample $sample */
diff --git a/app/code/Magento/Downloadable/Controller/Customer/Products.php b/app/code/Magento/Downloadable/Controller/Customer/Products.php
index 78e865dd8c3..b05852738e1 100644
--- a/app/code/Magento/Downloadable/Controller/Customer/Products.php
+++ b/app/code/Magento/Downloadable/Controller/Customer/Products.php
@@ -34,14 +34,14 @@ class Products extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $loginUrl = $this->_objectManager->get('Magento\Customer\Model\Url')->getLoginUrl();
 
         if (!$this->_customerSession->authenticate($loginUrl)) {
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
@@ -49,7 +49,7 @@ class Products extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         if ($block = $this->_view->getLayout()->getBlock('downloadable_customer_products_list')) {
diff --git a/app/code/Magento/Downloadable/Controller/Download/Link.php b/app/code/Magento/Downloadable/Controller/Download/Link.php
index c2cd4b91b92..59f49533c9e 100644
--- a/app/code/Magento/Downloadable/Controller/Download/Link.php
+++ b/app/code/Magento/Downloadable/Controller/Download/Link.php
@@ -31,7 +31,7 @@ class Link extends \Magento\Downloadable\Controller\Download
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $session = $this->_getCustomerSession();
 
diff --git a/app/code/Magento/Downloadable/Controller/Download/LinkSample.php b/app/code/Magento/Downloadable/Controller/Download/LinkSample.php
index 351fc26c55c..46747905711 100644
--- a/app/code/Magento/Downloadable/Controller/Download/LinkSample.php
+++ b/app/code/Magento/Downloadable/Controller/Download/LinkSample.php
@@ -17,7 +17,7 @@ class LinkSample extends \Magento\Downloadable\Controller\Download
      * @return ResponseInterface
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $linkId = $this->getRequest()->getParam('link_id', 0);
         /** @var \Magento\Downloadable\Model\Link $link */
diff --git a/app/code/Magento/Downloadable/Controller/Download/Sample.php b/app/code/Magento/Downloadable/Controller/Download/Sample.php
index a8cecbc48bd..c6715dbf90c 100644
--- a/app/code/Magento/Downloadable/Controller/Download/Sample.php
+++ b/app/code/Magento/Downloadable/Controller/Download/Sample.php
@@ -17,7 +17,7 @@ class Sample extends \Magento\Downloadable\Controller\Download
      * @return ResponseInterface
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $sampleId = $this->getRequest()->getParam('sample_id', 0);
         /** @var \Magento\Downloadable\Model\Sample $sample */
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/File/UploadTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/File/UploadTest.php
index 7c1040876e8..1a900b56c3f 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/File/UploadTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/File/UploadTest.php
@@ -165,6 +165,6 @@ class UploadTest extends \PHPUnit_Framework_TestCase
         $this->resultFactory->expects($this->once())->method('create')->willReturn($resultJson);
         $resultJson->expects($this->once())->method('setData')->willReturnSelf();
 
-        $this->assertEquals($resultJson, $this->upload->execute());
+        $this->assertEquals($resultJson, $this->upload->executeInternal());
     }
 }
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/LinkTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/LinkTest.php
index 5e8c472595f..887e35d8b11 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/LinkTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/LinkTest.php
@@ -171,7 +171,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')
             ->will($this->returnValue($this->linkModel));
 
-        $this->link->execute();
+        $this->link->executeInternal();
     }
 
     /**
@@ -217,7 +217,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')
             ->will($this->returnValue($this->linkModel));
 
-        $this->link->execute();
+        $this->link->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/SampleTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/SampleTest.php
index 88f7b2a301c..e2de4bde347 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/SampleTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/SampleTest.php
@@ -164,7 +164,7 @@ class SampleTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')
             ->will($this->returnValue($this->sampleModel));
 
-        $this->sample->execute();
+        $this->sample->executeInternal();
     }
 
     /**
@@ -205,6 +205,6 @@ class SampleTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')
             ->will($this->returnValue($this->sampleModel));
 
-        $this->sample->execute();
+        $this->sample->executeInternal();
     }
 }
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkSampleTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkSampleTest.php
index 110ce5fe279..9d58bbd27ef 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkSampleTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkSampleTest.php
@@ -191,7 +191,7 @@ class LinkSampleTest extends \PHPUnit_Framework_TestCase
         $this->redirect->expects($this->once())->method('getRedirectUrl')->willReturn('redirect_url');
         $this->response->expects($this->once())->method('setRedirect')->with('redirect_url')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->linkSample->execute());
+        $this->assertEquals($this->response, $this->linkSample->executeInternal());
     }
 
     public function testExecuteLinkTypeFile()
@@ -238,6 +238,6 @@ class LinkSampleTest extends \PHPUnit_Framework_TestCase
         $this->redirect->expects($this->once())->method('getRedirectUrl')->willReturn('redirect_url');
         $this->response->expects($this->once())->method('setRedirect')->with('redirect_url')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->linkSample->execute());
+        $this->assertEquals($this->response, $this->linkSample->executeInternal());
     }
 }
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkTest.php
index 7801f285941..939b3786f12 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkTest.php
@@ -236,7 +236,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
             ->with("We can't find the link you requested.");
         $this->redirect->expects($this->once())->method('redirect')->with($this->response, '*/customer/products', []);
 
-        $this->assertEquals($this->response, $this->link->execute());
+        $this->assertEquals($this->response, $this->link->executeInternal());
     }
 
     public function testGetLinkForGuestCustomer()
@@ -287,7 +287,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
             ->willReturn('before_auth_url');
         $this->session->expects($this->once())->method('setBeforeAuthUrl')->with('before_auth_url')->willReturnSelf();
 
-        $this->assertNull($this->link->execute());
+        $this->assertNull($this->link->executeInternal());
     }
 
     public function testGetLinkForWrongCustomer()
@@ -327,7 +327,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
             ->with("We can't find the link you requested.");
         $this->redirect->expects($this->once())->method('redirect')->with($this->response, '*/customer/products', []);
 
-        $this->assertEquals($this->response, $this->link->execute());
+        $this->assertEquals($this->response, $this->link->executeInternal());
     }
 
     public function testExceptionInUpdateLinkStatus()
@@ -371,7 +371,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
         $this->redirect->expects($this->once())->method('redirect')->with($this->response, '*/customer/products', []);
 
-        $this->assertEquals($this->response, $this->link->execute());
+        $this->assertEquals($this->response, $this->link->executeInternal());
     }
 
     private function processDownload($resource, $resourceType)
@@ -448,7 +448,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
         $this->linkPurchasedItem->expects($this->once())->method('getStatus')->willReturn($status);
         $this->messageManager->expects($this->once())->method($messageType)->with($notice)->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->link->execute());
+        $this->assertEquals($this->response, $this->link->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/SampleTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/SampleTest.php
index 7366846899d..42933e534d0 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/SampleTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/SampleTest.php
@@ -191,7 +191,7 @@ class SampleTest extends \PHPUnit_Framework_TestCase
         $this->redirect->expects($this->once())->method('getRedirectUrl')->willReturn('redirect_url');
         $this->response->expects($this->once())->method('setRedirect')->with('redirect_url')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->sample->execute());
+        $this->assertEquals($this->response, $this->sample->executeInternal());
     }
 
     public function testExecuteLinkTypeFile()
@@ -234,6 +234,6 @@ class SampleTest extends \PHPUnit_Framework_TestCase
         $this->redirect->expects($this->once())->method('getRedirectUrl')->willReturn('redirect_url');
         $this->response->expects($this->once())->method('setRedirect')->with('redirect_url')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->sample->execute());
+        $this->assertEquals($this->response, $this->sample->executeInternal());
     }
 }
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/DefaultTemplate.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/DefaultTemplate.php
index 116d8871017..3ffb0528e23 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/DefaultTemplate.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/DefaultTemplate.php
@@ -32,7 +32,7 @@ class DefaultTemplate extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $template = $this->_initTemplate('id');
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Delete.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Delete.php
index 7022d18ff3c..04127a7c311 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Delete.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $template = $this->_initTemplate('id');
         if ($template->getId()) {
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Edit.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Edit.php
index 017f05898d9..653094a7baf 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Edit.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $template = $this->_initTemplate('id');
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Grid.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Grid.php
index 8205fa3e7df..0a63dad7192 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Grid.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Index.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Index.php
index 39f16849345..892affd8da8 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Index.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/NewAction.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/NewAction.php
index 4e405353acf..b92f01f12bf 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/NewAction.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Preview.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Preview.php
index fceea747f03..9ce1e0e4712 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Preview.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Preview.php
@@ -13,7 +13,7 @@ class Preview extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_view->loadLayout('systemPreview');
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Save.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Save.php
index ecb8f8c55ad..be2022ffa7e 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Save.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Save.php
@@ -15,7 +15,7 @@ class Save extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
         $id = $this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php
index 905318c274a..6838b1ba1b1 100644
--- a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php
+++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php
@@ -184,7 +184,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::execute
+     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::executeInternal
      */
     public function testExecuteNewTemplate()
     {
@@ -217,11 +217,11 @@ class EditTest extends \PHPUnit_Framework_TestCase
                 ]
             );
 
-        $this->assertNull($this->editController->execute());
+        $this->assertNull($this->editController->executeInternal());
     }
 
     /**
-     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::execute
+     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::executeInternal
      */
     public function testExecuteEdit()
     {
@@ -254,6 +254,6 @@ class EditTest extends \PHPUnit_Framework_TestCase
                 ]
             );
 
-        $this->assertNull($this->editController->execute());
+        $this->assertNull($this->editController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
index c5ada6573f6..974d4c41fc5 100644
--- a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
+++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
@@ -118,7 +118,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::execute
+     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::executeInternal
      */
     public function testExecute()
     {
@@ -157,11 +157,11 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('addLink')
             ->willReturnSelf();
 
-        $this->assertNull($this->indexController->execute());
+        $this->assertNull($this->indexController->executeInternal());
     }
 
     /**
-     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::execute
+     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::executeInternal
      */
     public function testExecuteAjax()
     {
diff --git a/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Index.php b/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Index.php
index 0c2ad5395a9..31b7833485f 100644
--- a/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Index.php
+++ b/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Index.php
@@ -16,7 +16,7 @@ class Index extends \Magento\EncryptionKey\Controller\Adminhtml\Crypt\Key
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\App\DeploymentConfig\Writer $writer */
         $writer = $this->_objectManager->get('Magento\Framework\App\DeploymentConfig\Writer');
diff --git a/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Save.php b/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Save.php
index b06c18cae6b..6921d482c1d 100644
--- a/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Save.php
+++ b/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Save.php
@@ -50,7 +50,7 @@ class Save extends \Magento\EncryptionKey\Controller\Adminhtml\Crypt\Key
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $key = null;
diff --git a/app/code/Magento/EncryptionKey/Test/Unit/Controller/Adminhtml/Crypt/Key/SaveTest.php b/app/code/Magento/EncryptionKey/Test/Unit/Controller/Adminhtml/Crypt/Key/SaveTest.php
index f4f69741834..13f8f772138 100644
--- a/app/code/Magento/EncryptionKey/Test/Unit/Controller/Adminhtml/Crypt/Key/SaveTest.php
+++ b/app/code/Magento/EncryptionKey/Test/Unit/Controller/Adminhtml/Crypt/Key/SaveTest.php
@@ -90,7 +90,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->cacheMock->expects($this->once())->method('clean');
         $this->responseMock->expects($this->once())->method('setRedirect');
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     public function testExecuteNonRandomAndWithoutCryptKey()
@@ -108,7 +108,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->willReturn($key);
         $this->managerMock->expects($this->once())->method('addErrorMessage');
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     public function testExecuteRandom()
@@ -125,6 +125,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->cacheMock->expects($this->once())->method('clean');
         $this->responseMock->expects($this->once())->method('setRedirect');
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 }
diff --git a/app/code/Magento/GroupedProduct/Controller/Adminhtml/Edit/Popup.php b/app/code/Magento/GroupedProduct/Controller/Adminhtml/Edit/Popup.php
index 5a46c44b01f..258c74c4baf 100644
--- a/app/code/Magento/GroupedProduct/Controller/Adminhtml/Edit/Popup.php
+++ b/app/code/Magento/GroupedProduct/Controller/Adminhtml/Edit/Popup.php
@@ -62,7 +62,7 @@ class Popup extends AbstractAction
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('id');
 
diff --git a/app/code/Magento/GroupedProduct/Test/Unit/Controller/Adminhtml/Edit/PopupTest.php b/app/code/Magento/GroupedProduct/Test/Unit/Controller/Adminhtml/Edit/PopupTest.php
index 4daa62a813c..fab1db70710 100644
--- a/app/code/Magento/GroupedProduct/Test/Unit/Controller/Adminhtml/Edit/PopupTest.php
+++ b/app/code/Magento/GroupedProduct/Test/Unit/Controller/Adminhtml/Edit/PopupTest.php
@@ -118,7 +118,7 @@ class PopupTest extends \PHPUnit_Framework_TestCase
         $this->request->expects($this->at(3))->method('getParam')->with('set')->will($this->returnValue($setId));
         $this->registry->expects($this->once())->method('register')->with('current_product', $product);
 
-        $this->assertSame($this->resultLayoutMock, $this->action->execute());
+        $this->assertSame($this->resultLayoutMock, $this->action->executeInternal());
     }
 
     public function testPopupActionWithProductIdNoSetId()
@@ -155,6 +155,6 @@ class PopupTest extends \PHPUnit_Framework_TestCase
         $this->request->expects($this->at(3))->method('getParam')->with('set')->will($this->returnValue($setId));
         $this->registry->expects($this->once())->method('register')->with('current_product', $product);
 
-        $this->assertSame($this->resultLayoutMock, $this->action->execute());
+        $this->assertSame($this->resultLayoutMock, $this->action->executeInternal());
     }
 }
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Export.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Export.php
index a223c72ccd1..343c24d9104 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Export.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Export.php
@@ -37,7 +37,7 @@ class Export extends ExportController
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getPost(ExportModel::FILTER_ELEMENT_GROUP)) {
             try {
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/GetFilter.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/GetFilter.php
index 7e50e5fca30..81d0aa4a8e3 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/GetFilter.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/GetFilter.php
@@ -15,7 +15,7 @@ class GetFilter extends ExportController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getParams();
         if ($this->getRequest()->isXmlHttpRequest() && $data) {
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Index.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Index.php
index 9b1a0c3ecbd..a9f4b02e784 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Index.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Index.php
@@ -15,7 +15,7 @@ class Index extends ExportController
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php
index 84d3cb4d59b..64ab7b253d8 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php
@@ -37,7 +37,7 @@ class Download extends \Magento\ImportExport\Controller\Adminhtml\History
      *
      * @return void|\Magento\Backend\App\Action
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = $this->getRequest()->getParam('filename');
 
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Index.php b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Index.php
index 5c88c232807..df70dff2a40 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Index.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Index.php
@@ -15,7 +15,7 @@ class Index extends HistoryController
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php
index 005a2b0cde1..240067a4f1f 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php
@@ -65,7 +65,7 @@ class Download extends ImportController
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = $this->getRequest()->getParam('filename') . '.csv';
         $moduleDir = $this->reader->getModuleDir('', self::SAMPLE_FILES_MODULE);
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Index.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Index.php
index ec4f027d4a9..6bf064e6869 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Index.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Index.php
@@ -15,7 +15,7 @@ class Index extends ImportController
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->messageManager->addNotice(
             $this->_objectManager->get('Magento\ImportExport\Helper\Data')->getMaxUploadSizeMessage()
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Start.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Start.php
index 54c9049bcc9..d58b1a1f81f 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Start.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Start.php
@@ -38,7 +38,7 @@ class Start extends ImportResultController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         if ($data) {
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Validate.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Validate.php
index 631966a9a40..bc009302895 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Validate.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Validate.php
@@ -19,7 +19,7 @@ class Validate extends ImportResultController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
diff --git a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php
index e9661264810..532cf1d718a 100644
--- a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php
+++ b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php
@@ -172,7 +172,7 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
     {
         $this->reportHelper->expects($this->any())->method('importFileExists')->willReturn(true);
         $this->resultRaw->expects($this->once())->method('setContents');
-        $this->downloadController->execute();
+        $this->downloadController->executeInternal();
     }
 
     /**
@@ -182,6 +182,6 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
     {
         $this->reportHelper->expects($this->any())->method('importFileExists')->willReturn(false);
         $this->resultRaw->expects($this->never())->method('setContents');
-        $this->downloadController->execute();
+        $this->downloadController->executeInternal();
     }
 }
diff --git a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/IndexTest.php b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/IndexTest.php
index 789854701f5..aa9adfde2c2 100644
--- a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/IndexTest.php
+++ b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/IndexTest.php
@@ -75,6 +75,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
      */
     public function testExecute()
     {
-        $this->indexController->execute();
+        $this->indexController->executeInternal();
     }
 }
diff --git a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/ListAction.php b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/ListAction.php
index f76a7d9ca1a..f84c939bf93 100644
--- a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/ListAction.php
+++ b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/ListAction.php
@@ -13,7 +13,7 @@ class ListAction extends \Magento\Indexer\Controller\Adminhtml\Indexer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_Indexer::system_index');
diff --git a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassChangelog.php b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassChangelog.php
index 1ea64de8b75..af4730a6662 100644
--- a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassChangelog.php
+++ b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassChangelog.php
@@ -13,7 +13,7 @@ class MassChangelog extends \Magento\Indexer\Controller\Adminhtml\Indexer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $indexerIds = $this->getRequest()->getParam('indexer_ids');
         if (!is_array($indexerIds)) {
diff --git a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassOnTheFly.php b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassOnTheFly.php
index fecf0df7a53..7fe6dd3a60b 100644
--- a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassOnTheFly.php
+++ b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassOnTheFly.php
@@ -13,7 +13,7 @@ class MassOnTheFly extends \Magento\Indexer\Controller\Adminhtml\Indexer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $indexerIds = $this->getRequest()->getParam('indexer_ids');
         if (!is_array($indexerIds)) {
diff --git a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
index 958125477b9..d3817ffe99d 100644
--- a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
+++ b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
@@ -200,6 +200,6 @@ class ListActionTest extends \PHPUnit_Framework_TestCase
             ->method('renderLayout')
             ->will($this->returnValue(1));
 
-        $this->object->execute();
+        $this->object->executeInternal();
     }
 }
diff --git a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassChangelogTest.php b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassChangelogTest.php
index 133a763f831..c08535d2731 100644
--- a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassChangelogTest.php
+++ b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassChangelogTest.php
@@ -243,7 +243,7 @@ class MassChangelogTest extends \PHPUnit_Framework_TestCase
         $this->helper->expects($this->any())->method("getUrl")->willReturn("magento.com");
         $this->response->expects($this->any())->method("setRedirect")->willReturn(1);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassOnTheFlyTest.php b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassOnTheFlyTest.php
index c535ed59f68..8adaf2d07fe 100644
--- a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassOnTheFlyTest.php
+++ b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassOnTheFlyTest.php
@@ -242,7 +242,7 @@ class MassOnTheFlyTest extends \PHPUnit_Framework_TestCase
         $this->helper->expects($this->any())->method("getUrl")->willReturn("magento.com");
         $this->response->expects($this->any())->method("setRedirect")->willReturn(1);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Delete.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Delete.php
index 8771947fce6..42409bd208c 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Delete.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Delete.php
@@ -17,7 +17,7 @@ class Delete extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Edit.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Edit.php
index db23246d371..6c45010bfb2 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Edit.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Edit.php
@@ -17,7 +17,7 @@ class Edit extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** Try to recover integration data from session if it was added during previous request which failed. */
         $integrationId = (int)$this->getRequest()->getParam(self::PARAM_INTEGRATION_ID);
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Grid.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Grid.php
index 24b4fc3af40..e5750479e09 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Grid.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Index.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Index.php
index aa4411b4598..f759279d7f3 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Index.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $unsecureIntegrationsCount = $this->_integrationCollection->addUnsecureUrlsFilter()->getSize();
         if ($unsecureIntegrationsCount > 0) {
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/LoginSuccessCallback.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/LoginSuccessCallback.php
index 7b723444420..befdfbedc84 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/LoginSuccessCallback.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/LoginSuccessCallback.php
@@ -13,7 +13,7 @@ class LoginSuccessCallback extends \Magento\Integration\Controller\Adminhtml\Int
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setBody('<script>setTimeout("self.close()",1000);</script>');
     }
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/NewAction.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/NewAction.php
index 50a97103187..2e32315b5e5 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/NewAction.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_Integration::system_integrations');
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/PermissionsDialog.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/PermissionsDialog.php
index 50f6302b49c..d8de19f8d96 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/PermissionsDialog.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/PermissionsDialog.php
@@ -15,7 +15,7 @@ class PermissionsDialog extends \Magento\Integration\Controller\Adminhtml\Integr
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $integrationId = (int)$this->getRequest()->getParam(self::PARAM_INTEGRATION_ID);
         if ($integrationId) {
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php
index 53cccbb46b0..d6581e6004d 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php
@@ -32,7 +32,7 @@ class Save extends \Magento\Integration\Controller\Adminhtml\Integration
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var array $integrationData */
         $integrationData = [];
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensDialog.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensDialog.php
index 1dcff4547e3..8ad72835c71 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensDialog.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensDialog.php
@@ -35,7 +35,7 @@ class TokensDialog extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $integrationId = $this->getRequest()->getParam(self::PARAM_INTEGRATION_ID);
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensExchange.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensExchange.php
index a6ab708350a..a186dc016a7 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensExchange.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensExchange.php
@@ -34,7 +34,7 @@ class TokensExchange extends \Magento\Integration\Controller\Adminhtml\Integrati
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $integrationId = $this->getRequest()->getParam(self::PARAM_INTEGRATION_ID);
diff --git a/app/code/Magento/Integration/Controller/Token/Access.php b/app/code/Magento/Integration/Controller/Token/Access.php
index c9c5c7c3124..979a63cbbd9 100644
--- a/app/code/Magento/Integration/Controller/Token/Access.php
+++ b/app/code/Magento/Integration/Controller/Token/Access.php
@@ -58,7 +58,7 @@ class Access extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $requestUrl = $this->helper->getRequestUrl($this->getRequest());
diff --git a/app/code/Magento/Integration/Controller/Token/Request.php b/app/code/Magento/Integration/Controller/Token/Request.php
index d1ee7d04296..be75117d2c4 100644
--- a/app/code/Magento/Integration/Controller/Token/Request.php
+++ b/app/code/Magento/Integration/Controller/Token/Request.php
@@ -38,7 +38,7 @@ class Request extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $requestUrl = $this->helper->getRequestUrl($this->getRequest());
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/DeleteTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/DeleteTest.php
index f31d3622876..4be5b0c7397 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/DeleteTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/DeleteTest.php
@@ -60,7 +60,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->method('addSuccess')
             ->with(__('The integration \'%1\' has been deleted.', $intData[Info::DATA_NAME]));
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionWithConsumer()
@@ -89,7 +89,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->method('addSuccess')
             ->with(__('The integration \'%1\' has been deleted.', $intData[Info::DATA_NAME]));
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionConfigSetUp()
@@ -117,7 +117,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
         // verify success message
         $this->_messageManager->expects($this->never())->method('addSuccess');
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionMissingId()
@@ -131,7 +131,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->method('addError')
             ->with(__('Integration ID is not specified or is invalid.'));
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionForServiceIntegrationException()
@@ -153,7 +153,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->willThrowException($invalidIdException);
         $this->_messageManager->expects($this->once())->method('addError');
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionForServiceGenericException()
@@ -175,6 +175,6 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->willThrowException($invalidIdException);
         $this->_messageManager->expects($this->never())->method('addError');
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/EditTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/EditTest.php
index 0bd7ab3e466..e4529c88f5f 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/EditTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/EditTest.php
@@ -53,7 +53,7 @@ class EditTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
             ->method('prepend');
         $this->_verifyLoadAndRenderLayout();
         $controller = $this->_createIntegrationController('Edit');
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testEditActionNonExistentIntegration()
@@ -81,7 +81,7 @@ class EditTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
             );
         $this->_verifyLoadAndRenderLayout();
         $integrationContr = $this->_createIntegrationController('Edit');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testEditActionNoDataAdd()
@@ -91,7 +91,7 @@ class EditTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         $this->_messageManager->expects($this->once())->method('addError')->with($this->equalTo($exceptionMessage));
         $this->_verifyLoadAndRenderLayout();
         $integrationContr = $this->_createIntegrationController('Edit');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testEditException()
@@ -100,6 +100,6 @@ class EditTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         // verify the error
         $this->_messageManager->expects($this->once())->method('addError')->with($this->equalTo($exceptionMessage));
         $this->_controller = $this->_createIntegrationController('Edit');
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/IndexTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/IndexTest.php
index 8dd1bfd69f5..4adf0966575 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/IndexTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/IndexTest.php
@@ -14,6 +14,6 @@ class IndexTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Inte
         $this->_verifyLoadAndRenderLayout();
         // renderLayout
         $this->_controller = $this->_createIntegrationController('Index');
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/NewActionTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/NewActionTest.php
index 013857d809f..a24b1787a8e 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/NewActionTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/NewActionTest.php
@@ -25,6 +25,6 @@ class NewActionTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\
                 $this->returnValue($this->_requestMock)
             );
         $integrationContr = $this->_createIntegrationController('NewAction');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/PermissionsDialogTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/PermissionsDialogTest.php
index 484267a7296..28e3c19b012 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/PermissionsDialogTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/PermissionsDialogTest.php
@@ -72,6 +72,6 @@ HANDLE;
                 $this->equalTo(['adminhtml_integration_activate_permissions_webapi'])
             );
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/SaveTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/SaveTest.php
index d29767e6091..68526871593 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/SaveTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/SaveTest.php
@@ -59,7 +59,7 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
                 __('The integration \'%1\' has been saved.', $intData[Info::DATA_NAME])
             );
         $integrationContr = $this->_createIntegrationController('Save');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testSaveActionException()
@@ -80,7 +80,7 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         // Verify error
         $this->_messageManager->expects($this->once())->method('addError')->with($this->equalTo($exceptionMessage));
         $integrationContr = $this->_createIntegrationController('Save');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testSaveActionIntegrationException()
@@ -101,7 +101,7 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         // Verify error
         $this->_messageManager->expects($this->once())->method('addError')->with($this->equalTo($exceptionMessage));
         $integrationContr = $this->_createIntegrationController('Save');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testSaveActionNew()
@@ -146,7 +146,7 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
                 __('The integration \'%1\' has been saved.', $integration->getName())
             );
         $integrationContr = $this->_createIntegrationController('Save');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testSaveActionExceptionDuringServiceCreation()
@@ -186,6 +186,6 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         // Verify success message
         $this->_messageManager->expects($this->once())->method('addError')->with($exceptionMessage);
         $integrationController = $this->_createIntegrationController('Save');
-        $integrationController->execute();
+        $integrationController->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/TokensDialogTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/TokensDialogTest.php
index cb7b484f40b..3db548316f5 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/TokensDialogTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/TokensDialogTest.php
@@ -48,7 +48,7 @@ class TokensDialogTest extends \Magento\Integration\Test\Unit\Controller\Adminht
         $this->_viewMock->expects($this->any())->method('loadLayout');
         $this->_viewMock->expects($this->any())->method('renderLayout');
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testTokensExchangeReauthorize()
@@ -95,6 +95,6 @@ class TokensDialogTest extends \Magento\Integration\Test\Unit\Controller\Adminht
         $this->_responseMock->expects($this->once())->method('getBody');
         $this->_responseMock->expects($this->once())->method('representJson');
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Token/AccessTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Token/AccessTest.php
index 121db1fb723..140000c8bfc 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Token/AccessTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Token/AccessTest.php
@@ -178,6 +178,6 @@ class AccessTest extends \PHPUnit_Framework_TestCase
         $this->response->expects($this->once())
             ->method('setBody');
 
-        $this->accessAction->execute();
+        $this->accessAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Token/RequestTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Token/RequestTest.php
index f387829278f..275e30191f0 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Token/RequestTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Token/RequestTest.php
@@ -142,6 +142,6 @@ class RequestTest extends \PHPUnit_Framework_TestCase
             ->willReturn(['response']);
         $this->response->expects($this->once())
             ->method('setBody');
-        $this->requestAction->execute();
+        $this->requestAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Marketplace/Controller/Adminhtml/Index/Index.php b/app/code/Magento/Marketplace/Controller/Adminhtml/Index/Index.php
index 8ce0b1b3c10..f808bbbc3f8 100644
--- a/app/code/Magento/Marketplace/Controller/Adminhtml/Index/Index.php
+++ b/app/code/Magento/Marketplace/Controller/Adminhtml/Index/Index.php
@@ -28,7 +28,7 @@ class Index extends \Magento\Marketplace\Controller\Adminhtml\Index
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->getResultPageFactory()->create();
diff --git a/app/code/Magento/Marketplace/Controller/Adminhtml/Partners/Index.php b/app/code/Magento/Marketplace/Controller/Adminhtml/Partners/Index.php
index 774f80491b1..f1657b4c182 100644
--- a/app/code/Magento/Marketplace/Controller/Adminhtml/Partners/Index.php
+++ b/app/code/Magento/Marketplace/Controller/Adminhtml/Partners/Index.php
@@ -33,7 +33,7 @@ class Index extends \Magento\Marketplace\Controller\Adminhtml\Partners
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->isAjax()) {
             $output = $this->getLayoutFactory()->create()
diff --git a/app/code/Magento/Marketplace/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Marketplace/Test/Unit/Controller/Index/IndexTest.php
index 4983cd76e0f..ebb9386d3ef 100644
--- a/app/code/Magento/Marketplace/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Marketplace/Test/Unit/Controller/Index/IndexTest.php
@@ -19,7 +19,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Marketplace\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Marketplace\Controller\Adminhtml\Index\Index::executeInternal
      */
     public function testExecute()
     {
@@ -50,7 +50,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('getConfig')
             ->will($this->returnValue($configMock));
 
-        $this->indexControllerMock->execute();
+        $this->indexControllerMock->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Marketplace/Test/Unit/Controller/Partners/IndexTest.php b/app/code/Magento/Marketplace/Test/Unit/Controller/Partners/IndexTest.php
index 2a9538a1bb7..c285f31c995 100644
--- a/app/code/Magento/Marketplace/Test/Unit/Controller/Partners/IndexTest.php
+++ b/app/code/Magento/Marketplace/Test/Unit/Controller/Partners/IndexTest.php
@@ -25,7 +25,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Marketplace\Controller\Adminhtml\Partners\Index::execute
+     * @covers \Magento\Marketplace\Controller\Adminhtml\Partners\Index::executeInternal
      */
     public function testExecute()
     {
@@ -65,7 +65,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('getResponse')
             ->will($this->returnValue($responseMock));
 
-        $this->partnersControllerMock->execute();
+        $this->partnersControllerMock->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Status.php b/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Status.php
index 3d2b755575a..469da98b91f 100644
--- a/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Status.php
+++ b/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Status.php
@@ -31,7 +31,7 @@ class Status extends \Magento\MediaStorage\Controller\Adminhtml\System\Config\Sy
      * @return \Magento\Framework\Controller\Result\Json
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = [];
         $flag = $this->_getSyncFlag();
diff --git a/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Synchronize.php b/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Synchronize.php
index 50789292706..af0239448f9 100644
--- a/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Synchronize.php
+++ b/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Synchronize.php
@@ -13,7 +13,7 @@ class Synchronize extends \Magento\MediaStorage\Controller\Adminhtml\System\Conf
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         session_write_close();
 
diff --git a/app/code/Magento/Multishipping/Controller/Checkout.php b/app/code/Magento/Multishipping/Controller/Checkout.php
index f6b391b0d89..1940acf7595 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout.php
@@ -86,11 +86,11 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $this->_request = $request;
         if ($this->_actionFlag->get('', 'redirectLogin')) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         $action = $request->getActionName();
@@ -109,7 +109,7 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
         ) {
             $this->_redirect('*/*/index');
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         if (!in_array($action, ['login', 'register'])) {
@@ -123,7 +123,7 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
                 $this->messageManager->addError($error);
                 $this->getResponse()->setRedirect($this->_getHelper()->getCartUrl());
                 $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
-                return parent::dispatch($request);
+                return parent::execute($request);
             }
         }
 
@@ -142,11 +142,11 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
         ) {
             $this->getResponse()->setRedirect($this->_getHelper()->getCartUrl());
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         if ($action == 'success' && $this->_getCheckout()->getCheckoutSession()->getDisplaySuccess(true)) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         $quote = $this->_getCheckout()->getQuote();
@@ -155,7 +155,7 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
         }
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address.php b/app/code/Magento/Multishipping/Controller/Checkout/Address.php
index 41f7377c587..ee525003fa7 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address.php
@@ -13,12 +13,12 @@ abstract class Address extends \Magento\Framework\App\Action\Action
     /**
      * {@inheritdoc}
      */
-    public function dispatch(\Magento\Framework\App\RequestInterface $request)
+    public function execute(\Magento\Framework\App\RequestInterface $request)
     {
         if (!$this->_getCheckout()->getCustomer()->getId()) {
             return $this->_redirect('customer/account/login');
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditAddress.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditAddress.php
index 724226b2e27..919c55c2cc8 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditAddress.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditAddress.php
@@ -11,7 +11,7 @@ class EditAddress extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         if ($addressForm = $this->_view->getLayout()->getBlock('customer_address_edit')) {
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditBilling.php
index eaa98e4e7c4..df532c5384b 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditBilling.php
@@ -11,7 +11,7 @@ class EditBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(
             \Magento\Multishipping\Model\Checkout\Type\Multishipping\State::STEP_BILLING
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShipping.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShipping.php
index 8409ed59f36..3d9c8ada633 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShipping.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShipping.php
@@ -11,7 +11,7 @@ class EditShipping extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(
             \Magento\Multishipping\Model\Checkout\Type\Multishipping\State::STEP_SHIPPING
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShippingPost.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShippingPost.php
index ff73e374f39..bf62a2dbb56 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShippingPost.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShippingPost.php
@@ -11,7 +11,7 @@ class EditShippingPost extends \Magento\Multishipping\Controller\Checkout\Addres
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($addressId = $this->getRequest()->getParam('id')) {
             $this->_objectManager->create(
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/NewBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/NewBilling.php
index 23b209b60b4..7f7293bdf99 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/NewBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/NewBilling.php
@@ -11,7 +11,7 @@ class NewBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         if ($addressForm = $this->_view->getLayout()->getBlock('customer_address_edit')) {
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/NewShipping.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/NewShipping.php
index 1a05f9cc46c..a0a69c2a216 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/NewShipping.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/NewShipping.php
@@ -13,7 +13,7 @@ class NewShipping extends \Magento\Multishipping\Controller\Checkout\Address
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(
             \Magento\Multishipping\Model\Checkout\Type\Multishipping\State::STEP_SELECT_ADDRESSES
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/SaveBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/SaveBilling.php
index f19e427f14b..6e254071ee0 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/SaveBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/SaveBilling.php
@@ -11,7 +11,7 @@ class SaveBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($addressId = $this->getRequest()->getParam('id')) {
             $this->_objectManager->create(
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/SelectBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/SelectBilling.php
index a64e877d586..cb7a1216760 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/SelectBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/SelectBilling.php
@@ -11,7 +11,7 @@ class SelectBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(
             \Magento\Multishipping\Model\Checkout\Type\Multishipping\State::STEP_BILLING
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/SetBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/SetBilling.php
index 4781ff1fd8d..60cf5d69887 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/SetBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/SetBilling.php
@@ -11,7 +11,7 @@ class SetBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($addressId = $this->getRequest()->getParam('id')) {
             $this->_objectManager->create(
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/ShippingSaved.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/ShippingSaved.php
index 01187fce181..dc301de3eb2 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/ShippingSaved.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/ShippingSaved.php
@@ -56,7 +56,7 @@ class ShippingSaved extends Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $filter = $this->filterBuilder->setField('parent_id')->setValue($this->_getCheckout()->getCustomer()->getId())
             ->setConditionType('eq')->create();
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Addresses.php b/app/code/Magento/Multishipping/Controller/Checkout/Addresses.php
index 38ae81fadc8..477ca6dbf2a 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Addresses.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Addresses.php
@@ -15,7 +15,7 @@ class Addresses extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // If customer do not have addresses
         if (!$this->_getCheckout()->getCustomerDefaultShippingAddress()) {
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/AddressesPost.php b/app/code/Magento/Multishipping/Controller/Checkout/AddressesPost.php
index e78d126f413..f6c74959e41 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/AddressesPost.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/AddressesPost.php
@@ -15,7 +15,7 @@ class AddressesPost extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_getCheckout()->getCustomerDefaultShippingAddress()) {
             $this->_redirect('*/checkout_address/newShipping');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/BackToAddresses.php b/app/code/Magento/Multishipping/Controller/Checkout/BackToAddresses.php
index 9f9e2352e3a..82a1ecce2b0 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/BackToAddresses.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/BackToAddresses.php
@@ -13,7 +13,7 @@ class BackToAddresses extends \Magento\Multishipping\Controller\Checkout
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(State::STEP_SELECT_ADDRESSES);
         $this->_getState()->unsCompleteStep(State::STEP_SHIPPING);
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/BackToBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/BackToBilling.php
index 49c98834c67..d2db0277429 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/BackToBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/BackToBilling.php
@@ -15,7 +15,7 @@ class BackToBilling extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(State::STEP_BILLING);
         $this->_getState()->unsCompleteStep(State::STEP_OVERVIEW);
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/BackToShipping.php b/app/code/Magento/Multishipping/Controller/Checkout/BackToShipping.php
index dddf2dab0b8..2bc68f69ee2 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/BackToShipping.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/BackToShipping.php
@@ -13,7 +13,7 @@ class BackToShipping extends \Magento\Multishipping\Controller\Checkout
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(State::STEP_SHIPPING);
         $this->_getState()->unsCompleteStep(State::STEP_BILLING);
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Billing.php b/app/code/Magento/Multishipping/Controller/Checkout/Billing.php
index 0f3d9a0103c..7ca829db580 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Billing.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Billing.php
@@ -30,7 +30,7 @@ class Billing extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void|ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_validateBilling()) {
             return;
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Index.php b/app/code/Magento/Multishipping/Controller/Checkout/Index.php
index c71c54ca8e2..03607155b87 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Index.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getCheckoutSession()->setCartWasUpdated(false);
         $this->_redirect('*/*/addresses');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Login.php b/app/code/Magento/Multishipping/Controller/Checkout/Login.php
index 8b68c678010..4c68fd50819 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Login.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Login.php
@@ -13,7 +13,7 @@ class Login extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_objectManager->get('Magento\Customer\Model\Session')->isLoggedIn()) {
             $this->_redirect('*/*/');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Overview.php b/app/code/Magento/Multishipping/Controller/Checkout/Overview.php
index 9ab19c70889..cb693c019ff 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Overview.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Overview.php
@@ -15,7 +15,7 @@ class Overview extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_validateMinimumAmount()) {
             return;
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/OverviewPost.php b/app/code/Magento/Multishipping/Controller/Checkout/OverviewPost.php
index fe288a54f74..7e80e00754b 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/OverviewPost.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/OverviewPost.php
@@ -65,7 +65,7 @@ class OverviewPost extends \Magento\Multishipping\Controller\Checkout
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->formKeyValidator->validate($this->getRequest())) {
             $this->_forward('backToAddresses');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Register.php b/app/code/Magento/Multishipping/Controller/Checkout/Register.php
index 34aba236980..4033d985801 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Register.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Register.php
@@ -13,7 +13,7 @@ class Register extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_objectManager->get('Magento\Customer\Model\Session')->isLoggedIn()) {
             $this->getResponse()->setRedirect($this->_getHelper()->getMSCheckoutUrl());
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/RemoveItem.php b/app/code/Magento/Multishipping/Controller/Checkout/RemoveItem.php
index 4bba45d3047..1dced5c2360 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/RemoveItem.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/RemoveItem.php
@@ -13,7 +13,7 @@ class RemoveItem extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('id');
         $addressId = $this->getRequest()->getParam('address');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Shipping.php b/app/code/Magento/Multishipping/Controller/Checkout/Shipping.php
index d8ffd0d2b6a..8d8e9c4643e 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Shipping.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Shipping.php
@@ -16,7 +16,7 @@ class Shipping extends \Magento\Multishipping\Controller\Checkout
      *
      * @return  ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_validateMinimumAmount()) {
             return;
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/ShippingPost.php b/app/code/Magento/Multishipping/Controller/Checkout/ShippingPost.php
index e5c1a001b9e..d3693051344 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/ShippingPost.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/ShippingPost.php
@@ -13,7 +13,7 @@ class ShippingPost extends \Magento\Multishipping\Controller\Checkout
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $shippingMethods = $this->getRequest()->getPost('shipping_method');
         try {
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Success.php b/app/code/Magento/Multishipping/Controller/Checkout/Success.php
index 52a7de51c18..ea4838ee85f 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Success.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Success.php
@@ -15,7 +15,7 @@ class Success extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_getState()->getCompleteStep(State::STEP_OVERVIEW)) {
             $this->_redirect('*/*/addresses');
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditAddressTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditAddressTest.php
index 54c431ecd3f..4f15a7d7055 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditAddressTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditAddressTest.php
@@ -126,7 +126,7 @@ class EditAddressTest extends \PHPUnit_Framework_TestCase
         $this->titleMock->expects($this->once())->method('set')->with('Address title - default_title');
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with('success/url');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
 
@@ -140,6 +140,6 @@ class EditAddressTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditBillingTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditBillingTest.php
index e0b516a09e7..232add6bf1e 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditBillingTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditBillingTest.php
@@ -153,7 +153,7 @@ class EditBillingTest extends \PHPUnit_Framework_TestCase
         $this->titleMock->expects($this->once())->method('set')->with('Address title - default_title');
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with('back/address');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWhenCustomerAddressBlockNotExist()
@@ -170,7 +170,7 @@ class EditBillingTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditShippingTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditShippingTest.php
index dbe004b62d0..0b9a5fb2f80 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditShippingTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditShippingTest.php
@@ -157,7 +157,7 @@ class EditShippingTest extends \PHPUnit_Framework_TestCase
             ->willReturn('shipping_addres');
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with('back/address');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWhenCustomerAddressBlockNotExist()
@@ -174,6 +174,6 @@ class EditShippingTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewBillingTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewBillingTest.php
index 7afb5d6ee2f..e5c701b3c21 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewBillingTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewBillingTest.php
@@ -118,7 +118,7 @@ class NewBillingTest extends \PHPUnit_Framework_TestCase
         $this->titleMock->expects($this->once())->method('set')->with('Address title - default_title');
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with('success/url');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
 
@@ -132,6 +132,6 @@ class NewBillingTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewShippingTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewShippingTest.php
index 1f98daffc1d..3b1b76d9c7c 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewShippingTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewShippingTest.php
@@ -157,7 +157,7 @@ class NewShippingTest extends \PHPUnit_Framework_TestCase
             ->willReturn($shippingAddress);
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with($url);
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function executeDataProvider()
@@ -183,6 +183,6 @@ class NewShippingTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/ShippingSavedTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/ShippingSavedTest.php
index ffb91ebb4e1..23ff549744c 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/ShippingSavedTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/ShippingSavedTest.php
@@ -100,7 +100,7 @@ class ShippingSavedTest extends \PHPUnit_Framework_TestCase
 
         // check that checkout is reset
         $this->checkoutMock->expects($this->once())->method('reset');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteDoesNotResetCheckoutIfCustomerHasMoreThanOneAddress()
@@ -120,7 +120,7 @@ class ShippingSavedTest extends \PHPUnit_Framework_TestCase
 
         // check that checkout is not reset
         $this->checkoutMock->expects($this->never())->method('reset');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Grid.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Grid.php
index cf2ae4964f7..e3904f2efad 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Grid.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Newsletter\Controller\Adminhtml\Problem
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('_unsubscribe')) {
             $problems = (array)$this->getRequest()->getParam('problem', []);
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Index.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Index.php
index 2b377e93c28..89045ddfa6a 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Adminhtml\Problem
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Cancel.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Cancel.php
index eda2ee69860..a04519e190e 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Cancel.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Cancel.php
@@ -13,7 +13,7 @@ class Cancel extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $queue = $this->_objectManager->get(
             'Magento\Newsletter\Model\Queue'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Drop.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Drop.php
index ff410c926fc..af2cc33cca5 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Drop.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Drop.php
@@ -13,7 +13,7 @@ class Drop extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout('newsletter_queue_preview_popup');
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Edit.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Edit.php
index ea3cfed3771..d8881fa43ac 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Edit.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Edit.php
@@ -30,7 +30,7 @@ class Edit extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('current_queue', $this->_objectManager->get('Magento\Newsletter\Model\Queue'));
 
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Grid.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Grid.php
index 509b868d29e..33df60e5921 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Grid.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Index.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Index.php
index 412d531b7d4..cd9b39395f7 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Pause.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Pause.php
index 1e890edcb36..2e2cad6b588 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Pause.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Pause.php
@@ -13,7 +13,7 @@ class Pause extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $queue = $this->_objectManager->get(
             'Magento\Newsletter\Model\Queue'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Preview.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Preview.php
index 3a6f564f90d..488dc897f8f 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Preview.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Preview.php
@@ -13,7 +13,7 @@ class Preview extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $data = $this->getRequest()->getParams();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Resume.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Resume.php
index f92ab4bf691..da87317dda9 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Resume.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Resume.php
@@ -13,7 +13,7 @@ class Resume extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $queue = $this->_objectManager->get(
             'Magento\Newsletter\Model\Queue'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Save.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Save.php
index 33fd2052a42..28990582b66 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Save.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Save.php
@@ -18,7 +18,7 @@ class Save extends \Magento\Newsletter\Controller\Adminhtml\Queue
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             /* @var $queue \Magento\Newsletter\Model\Queue */
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Sending.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Sending.php
index bc6053c67aa..6e5000bbb27 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Sending.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Sending.php
@@ -13,7 +13,7 @@ class Sending extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // Todo: put it somewhere in config!
         $countOfQueue = 3;
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Start.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Start.php
index 1917681ca21..bda80ec9901 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Start.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Start.php
@@ -13,7 +13,7 @@ class Start extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $queue = $this->_objectManager->create(
             'Magento\Newsletter\Model\Queue'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportCsv.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportCsv.php
index 8a795384b14..398a7ef8221 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportCsv.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportCsv.php
@@ -16,7 +16,7 @@ class ExportCsv extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'subscribers.csv';
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportXml.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportXml.php
index 44b68aa1afe..ac16f90c852 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportXml.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportXml.php
@@ -16,7 +16,7 @@ class ExportXml extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'subscribers.xml';
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Grid.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Grid.php
index 89aa1b46520..5a06ac05d3c 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Grid.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Index.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Index.php
index 9aed2baed18..a8d7f096b64 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassDelete.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassDelete.php
index 4ea5f85728e..ebc712cefb7 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassDelete.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassDelete.php
@@ -13,7 +13,7 @@ class MassDelete extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $subscribersIds = $this->getRequest()->getParam('subscriber');
         if (!is_array($subscribersIds)) {
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassUnsubscribe.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassUnsubscribe.php
index d6b6df7c19a..8a6feb8b349 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassUnsubscribe.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassUnsubscribe.php
@@ -13,7 +13,7 @@ class MassUnsubscribe extends \Magento\Newsletter\Controller\Adminhtml\Subscribe
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $subscribersIds = $this->getRequest()->getParam('subscriber');
         if (!is_array($subscribersIds)) {
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Delete.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Delete.php
index 188e800f3bf..9b1ebaa45ff 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Delete.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $template = $this->_objectManager->create(
             'Magento\Newsletter\Model\Template'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Drop.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Drop.php
index f96ac80e7f0..bf4ac7d5ff7 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Drop.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Drop.php
@@ -13,7 +13,7 @@ class Drop extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout('newsletter_template_preview_popup');
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Edit.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Edit.php
index b1030723790..fb52832aca9 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Edit.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Edit.php
@@ -30,7 +30,7 @@ class Edit extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $model = $this->_objectManager->create('Magento\Newsletter\Model\Template');
         $id = $this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Grid.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Grid.php
index dbd0e7195a5..d3c850e81b4 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Grid.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $grid = $this->_view->getLayout()->createBlock('Magento\Newsletter\Block\Adminhtml\Template\Grid')->toHtml();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Index.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Index.php
index f4c51a0f590..4647c06de1f 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/NewAction.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/NewAction.php
index 9409faf0f6a..a03fd5c6f37 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/NewAction.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Preview.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Preview.php
index 5594435c98d..fc04569de31 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Preview.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Preview.php
@@ -13,7 +13,7 @@ class Preview extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void|$this
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
 
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Save.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Save.php
index 4378ac6ba70..7f9c4bdb76e 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Save.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Save.php
@@ -16,7 +16,7 @@ class Save extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
         if (!$request->isPost()) {
diff --git a/app/code/Magento/Newsletter/Controller/Manage.php b/app/code/Magento/Newsletter/Controller/Manage.php
index 6bc940662ce..16ba747c011 100644
--- a/app/code/Magento/Newsletter/Controller/Manage.php
+++ b/app/code/Magento/Newsletter/Controller/Manage.php
@@ -37,11 +37,11 @@ abstract class Manage extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->_customerSession->authenticate()) {
             $this->_actionFlag->set('', 'no-dispatch', true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 }
diff --git a/app/code/Magento/Newsletter/Controller/Manage/Index.php b/app/code/Magento/Newsletter/Controller/Manage/Index.php
index de782a3d3bc..0ef350892c3 100644
--- a/app/code/Magento/Newsletter/Controller/Manage/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Manage/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Manage
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
 
diff --git a/app/code/Magento/Newsletter/Controller/Manage/Save.php b/app/code/Magento/Newsletter/Controller/Manage/Save.php
index 92ba7f93628..67fe6e4dd2c 100644
--- a/app/code/Magento/Newsletter/Controller/Manage/Save.php
+++ b/app/code/Magento/Newsletter/Controller/Manage/Save.php
@@ -60,7 +60,7 @@ class Save extends \Magento\Newsletter\Controller\Manage
      *
      * @return void|null
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->formKeyValidator->validate($this->getRequest())) {
             return $this->_redirect('customer/account/');
diff --git a/app/code/Magento/Newsletter/Controller/Subscriber/Confirm.php b/app/code/Magento/Newsletter/Controller/Subscriber/Confirm.php
index 91d4f0d2880..785f3ab0185 100644
--- a/app/code/Magento/Newsletter/Controller/Subscriber/Confirm.php
+++ b/app/code/Magento/Newsletter/Controller/Subscriber/Confirm.php
@@ -12,7 +12,7 @@ class Confirm extends \Magento\Newsletter\Controller\Subscriber
      * Subscription confirm action
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         $code = (string)$this->getRequest()->getParam('code');
diff --git a/app/code/Magento/Newsletter/Controller/Subscriber/NewAction.php b/app/code/Magento/Newsletter/Controller/Subscriber/NewAction.php
index 5e8850de308..11dcfacb44f 100644
--- a/app/code/Magento/Newsletter/Controller/Subscriber/NewAction.php
+++ b/app/code/Magento/Newsletter/Controller/Subscriber/NewAction.php
@@ -111,7 +111,7 @@ class NewAction extends \Magento\Newsletter\Controller\Subscriber
      * @throws \Magento\Framework\Exception\LocalizedException
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->isPost() && $this->getRequest()->getPost('email')) {
             $email = (string)$this->getRequest()->getPost('email');
diff --git a/app/code/Magento/Newsletter/Controller/Subscriber/Unsubscribe.php b/app/code/Magento/Newsletter/Controller/Subscriber/Unsubscribe.php
index 9fb7575699a..9449f3336f9 100644
--- a/app/code/Magento/Newsletter/Controller/Subscriber/Unsubscribe.php
+++ b/app/code/Magento/Newsletter/Controller/Subscriber/Unsubscribe.php
@@ -12,7 +12,7 @@ class Unsubscribe extends \Magento\Newsletter\Controller\Subscriber
      * Unsubscribe newsletter
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         $code = (string)$this->getRequest()->getParam('code');
diff --git a/app/code/Magento/Newsletter/Test/Unit/Controller/Manage/SaveTest.php b/app/code/Magento/Newsletter/Test/Unit/Controller/Manage/SaveTest.php
index f592aafcbc9..99bb1abdfc1 100644
--- a/app/code/Magento/Newsletter/Test/Unit/Controller/Manage/SaveTest.php
+++ b/app/code/Magento/Newsletter/Test/Unit/Controller/Manage/SaveTest.php
@@ -107,7 +107,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->method('addSuccess');
         $this->messageManagerMock->expects($this->never())
             ->method('addError');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testSaveActionNoCustomerInSession()
@@ -126,7 +126,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManagerMock->expects($this->once())
             ->method('addError')
             ->with('Something went wrong while saving your subscription.');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testSaveActionWithException()
@@ -156,6 +156,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManagerMock->expects($this->once())
             ->method('addError')
             ->with('Something went wrong while saving your subscription.');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/OfflineShipping/Controller/Adminhtml/System/Config/ExportTablerates.php b/app/code/Magento/OfflineShipping/Controller/Adminhtml/System/Config/ExportTablerates.php
index 8f273e49c61..af20ac56ba4 100644
--- a/app/code/Magento/OfflineShipping/Controller/Adminhtml/System/Config/ExportTablerates.php
+++ b/app/code/Magento/OfflineShipping/Controller/Adminhtml/System/Config/ExportTablerates.php
@@ -46,7 +46,7 @@ class ExportTablerates extends \Magento\Config\Controller\Adminhtml\System\Abstr
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'tablerates.csv';
         /** @var $gridBlock \Magento\OfflineShipping\Block\Adminhtml\Carrier\Tablerate\Grid */
diff --git a/app/code/Magento/PageCache/Controller/Adminhtml/PageCache/ExportVarnishConfig.php b/app/code/Magento/PageCache/Controller/Adminhtml/PageCache/ExportVarnishConfig.php
index 6ff33668ae9..36925596918 100644
--- a/app/code/Magento/PageCache/Controller/Adminhtml/PageCache/ExportVarnishConfig.php
+++ b/app/code/Magento/PageCache/Controller/Adminhtml/PageCache/ExportVarnishConfig.php
@@ -40,7 +40,7 @@ class ExportVarnishConfig extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'varnish.vcl';
         $varnishVersion = $this->getRequest()->getParam('varnish');
diff --git a/app/code/Magento/PageCache/Controller/Block/Esi.php b/app/code/Magento/PageCache/Controller/Block/Esi.php
index e21aabd7cfd..026c0ec4c15 100644
--- a/app/code/Magento/PageCache/Controller/Block/Esi.php
+++ b/app/code/Magento/PageCache/Controller/Block/Esi.php
@@ -13,7 +13,7 @@ class Esi extends \Magento\PageCache\Controller\Block
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = $this->getResponse();
         $blocks = $this->_getBlocks();
diff --git a/app/code/Magento/PageCache/Controller/Block/Render.php b/app/code/Magento/PageCache/Controller/Block/Render.php
index 499973ae1e1..b6a95919775 100644
--- a/app/code/Magento/PageCache/Controller/Block/Render.php
+++ b/app/code/Magento/PageCache/Controller/Block/Render.php
@@ -13,7 +13,7 @@ class Render extends \Magento\PageCache\Controller\Block
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->isAjax()) {
             $this->_forward('noroute');
diff --git a/app/code/Magento/PageCache/Test/Unit/Controller/Adminhtml/PageCache/ExportVarnishConfigTest.php b/app/code/Magento/PageCache/Test/Unit/Controller/Adminhtml/PageCache/ExportVarnishConfigTest.php
index d99f597c3e7..4bee20c5f4c 100644
--- a/app/code/Magento/PageCache/Test/Unit/Controller/Adminhtml/PageCache/ExportVarnishConfigTest.php
+++ b/app/code/Magento/PageCache/Test/Unit/Controller/Adminhtml/PageCache/ExportVarnishConfigTest.php
@@ -102,7 +102,7 @@ class ExportVarnishConfigTest extends \PHPUnit_Framework_TestCase
             $this->returnValue($responseMock)
         );
 
-        $result = $this->action->execute();
+        $result = $this->action->executeInternal();
         $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $result);
     }
 }
diff --git a/app/code/Magento/PageCache/Test/Unit/Controller/Block/EsiTest.php b/app/code/Magento/PageCache/Test/Unit/Controller/Block/EsiTest.php
index bc23f569d17..9bddcbeb778 100644
--- a/app/code/Magento/PageCache/Test/Unit/Controller/Block/EsiTest.php
+++ b/app/code/Magento/PageCache/Test/Unit/Controller/Block/EsiTest.php
@@ -123,7 +123,7 @@ class EsiTest extends \PHPUnit_Framework_TestCase
             ->method('appendBody')
             ->with($this->equalTo($html));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function executeDataProvider()
@@ -145,6 +145,6 @@ class EsiTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->any())->method('getParam')->will($this->returnValueMap($mapData));
         $this->viewMock->expects($this->never())->method('getLayout')->will($this->returnValue($this->layoutMock));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/PageCache/Test/Unit/Controller/Block/RenderTest.php b/app/code/Magento/PageCache/Test/Unit/Controller/Block/RenderTest.php
index a9493a7a4c3..c419a150fc6 100644
--- a/app/code/Magento/PageCache/Test/Unit/Controller/Block/RenderTest.php
+++ b/app/code/Magento/PageCache/Test/Unit/Controller/Block/RenderTest.php
@@ -79,7 +79,7 @@ class RenderTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('isAjax')->will($this->returnValue(false));
         $this->requestMock->expects($this->once())->method('setActionName')->will($this->returnValue('noroute'));
         $this->requestMock->expects($this->once())->method('setDispatched')->will($this->returnValue(false));
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     /**
@@ -96,7 +96,7 @@ class RenderTest extends \PHPUnit_Framework_TestCase
             ->method('getParam')
             ->with($this->equalTo('handles'), $this->equalTo(''))
             ->will($this->returnValue(''));
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testExecute()
@@ -171,6 +171,6 @@ class RenderTest extends \PHPUnit_Framework_TestCase
             ->method('appendBody')
             ->with($this->equalTo(json_encode($expectedData)));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Cancel.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Cancel.php
index 70134fdf282..f26e1c04391 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Cancel.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Cancel.php
@@ -13,7 +13,7 @@ class Cancel extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreementModel = $this->_initBillingAgreement();
 
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/CustomerGrid.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/CustomerGrid.php
index 0c157101b70..8fe43e3611b 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/CustomerGrid.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/CustomerGrid.php
@@ -29,7 +29,7 @@ class CustomerGrid extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreemen
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $this->_view->loadLayout(false);
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Delete.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Delete.php
index 3bc7143a4a1..3351f7dcf7e 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Delete.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreementModel = $this->_initBillingAgreement();
 
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Grid.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Grid.php
index 2753574d2b4..a84f114d41e 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Grid.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Index.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Index.php
index f20444f9214..51edf6b55bf 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Index.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_Paypal::paypal_billing_agreement');
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/OrdersGrid.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/OrdersGrid.php
index 62208a96b71..10b9b003c84 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/OrdersGrid.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/OrdersGrid.php
@@ -13,7 +13,7 @@ class OrdersGrid extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initBillingAgreement();
         $this->_view->loadLayout(false);
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/View.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/View.php
index 3755d973cac..85c81a77788 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/View.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/View.php
@@ -13,7 +13,7 @@ class View extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreementModel = $this->_initBillingAgreement();
 
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Details.php b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Details.php
index 20633c5c585..f48168d33d3 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Details.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Details.php
@@ -13,7 +13,7 @@ class Details extends \Magento\Paypal\Controller\Adminhtml\Paypal\Reports
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $rowId = $this->getRequest()->getParam('id');
         $row = $this->_rowFactory->create()->load($rowId);
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Fetch.php b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Fetch.php
index 89ccd4a5f9d..67c4824259e 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Fetch.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Fetch.php
@@ -18,7 +18,7 @@ class Fetch extends \Magento\Paypal\Controller\Adminhtml\Paypal\Reports
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $reports = $this->_settlementFactory->create();
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Grid.php b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Grid.php
index 33551753da5..0d3342c2669 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Grid.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Paypal\Controller\Adminhtml\Paypal\Reports
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Index.php b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Index.php
index 2f2ad28ce19..4bd6de4cdfb 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Index.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Paypal\Controller\Adminhtml\Paypal\Reports
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement.php b/app/code/Magento/Paypal/Controller/Billing/Agreement.php
index 8d6f0f0b1e6..01f632dba7f 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement.php
@@ -37,15 +37,15 @@ abstract class Agreement extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$request->isDispatched()) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
         if (!$this->_getSession()->authenticate()) {
             $this->_actionFlag->set('', 'no-dispatch', true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/Cancel.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/Cancel.php
index ee0daf91727..5b8e8f30b75 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/Cancel.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/Cancel.php
@@ -14,7 +14,7 @@ class Cancel extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreement = $this->_initAgreement();
         if (!$agreement) {
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/CancelWizard.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/CancelWizard.php
index f95b687f576..22394e572ad 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/CancelWizard.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/CancelWizard.php
@@ -13,7 +13,7 @@ class CancelWizard extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_redirect('*/*/index');
     }
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/Index.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/Index.php
index 85c21069996..c5ccc5c8afb 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/Index.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Billing Agreements'));
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/ReturnWizard.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/ReturnWizard.php
index 59040954d0c..f7bd4d4b3a3 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/ReturnWizard.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/ReturnWizard.php
@@ -15,7 +15,7 @@ class ReturnWizard extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Paypal\Model\Billing\Agreement $agreement */
         $agreement = $this->_objectManager->create('Magento\Paypal\Model\Billing\Agreement');
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/StartWizard.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/StartWizard.php
index 407240c756b..24364b02e0d 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/StartWizard.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/StartWizard.php
@@ -13,7 +13,7 @@ class StartWizard extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return \Magento\Framework\App\Response\Http
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreement = $this->_objectManager->create('Magento\Paypal\Model\Billing\Agreement');
         $paymentCode = $this->getRequest()->getParam('payment_method');
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/View.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/View.php
index 31b2dfd759c..2cbe118f4db 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/View.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/View.php
@@ -13,7 +13,7 @@ class View extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!($agreement = $this->_initAgreement())) {
             return;
diff --git a/app/code/Magento/Paypal/Controller/Bml/Start.php b/app/code/Magento/Paypal/Controller/Bml/Start.php
index d189c91965e..1fe8cc71700 100644
--- a/app/code/Magento/Paypal/Controller/Bml/Start.php
+++ b/app/code/Magento/Paypal/Controller/Bml/Start.php
@@ -13,7 +13,7 @@ class Start extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward(
             'start',
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Cancel.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Cancel.php
index 05c5dd2b5d1..a6b9079f913 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Cancel.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Cancel.php
@@ -15,7 +15,7 @@ class Cancel extends \Magento\Paypal\Controller\Express\AbstractExpress
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initToken(false);
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Edit.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Edit.php
index a9e879b5147..c7bca308846 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Edit.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Paypal\Controller\Express\AbstractExpress
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getResponse()->setRedirect($this->_config->getExpressCheckoutEditUrl($this->_initToken()));
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/PlaceOrder.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/PlaceOrder.php
index 3a723692287..456eb87f65e 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/PlaceOrder.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/PlaceOrder.php
@@ -60,7 +60,7 @@ class PlaceOrder extends \Magento\Paypal\Controller\Express\AbstractExpress
      * @return void
      * @throws \Magento\Framework\Exception\LocalizedException
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if ($this->isValidationRequired() &&
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ReturnAction.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ReturnAction.php
index 20604c61a1d..a1df0081066 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ReturnAction.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ReturnAction.php
@@ -15,7 +15,7 @@ class ReturnAction extends \Magento\Paypal\Controller\Express\AbstractExpress
      *
      * @return void|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Review.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Review.php
index ec848148b64..f60c2fd7847 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Review.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Review.php
@@ -15,7 +15,7 @@ class Review extends \Magento\Paypal\Controller\Express\AbstractExpress
      *
      * @return void|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initCheckout();
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/SaveShippingMethod.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/SaveShippingMethod.php
index 311900157b1..befc1615314 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/SaveShippingMethod.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/SaveShippingMethod.php
@@ -13,7 +13,7 @@ class SaveShippingMethod extends \Magento\Paypal\Controller\Express\AbstractExpr
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $isAjax = $this->getRequest()->getParam('isAjax');
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php
index a66433f346a..ca53012f534 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php
@@ -53,7 +53,7 @@ class ShippingOptionsCallback extends \Magento\Paypal\Controller\Express\Abstrac
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $quoteId = $this->getRequest()->getParam('quote_id');
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Start.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Start.php
index 1ec1c2d96c8..dae43744757 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Start.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Start.php
@@ -16,7 +16,7 @@ class Start extends \Magento\Paypal\Controller\Express\AbstractExpress
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initCheckout();
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/UpdateShippingMethods.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/UpdateShippingMethods.php
index 1d0cbdf5481..dc4f01b3f3c 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/UpdateShippingMethods.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/UpdateShippingMethods.php
@@ -13,7 +13,7 @@ class UpdateShippingMethods extends \Magento\Paypal\Controller\Express\AbstractE
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initCheckout();
diff --git a/app/code/Magento/Paypal/Controller/Hostedpro/Cancel.php b/app/code/Magento/Paypal/Controller/Hostedpro/Cancel.php
index fab449dc198..0889ae11aa1 100644
--- a/app/code/Magento/Paypal/Controller/Hostedpro/Cancel.php
+++ b/app/code/Magento/Paypal/Controller/Hostedpro/Cancel.php
@@ -48,7 +48,7 @@ class Cancel extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $gotoSection = $this->_cancelPayment();
diff --git a/app/code/Magento/Paypal/Controller/Hostedpro/Redirect.php b/app/code/Magento/Paypal/Controller/Hostedpro/Redirect.php
index aa3a234d2d2..37c874e14fa 100644
--- a/app/code/Magento/Paypal/Controller/Hostedpro/Redirect.php
+++ b/app/code/Magento/Paypal/Controller/Hostedpro/Redirect.php
@@ -13,7 +13,7 @@ class Redirect extends \Magento\Paypal\Controller\Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setRedirect(
             $this->getOrder()->getPayment()->getAdditionalInformation('secure_form_url')
diff --git a/app/code/Magento/Paypal/Controller/Hostedpro/ReturnAction.php b/app/code/Magento/Paypal/Controller/Hostedpro/ReturnAction.php
index 9f0651b3a14..b3f791e5782 100644
--- a/app/code/Magento/Paypal/Controller/Hostedpro/ReturnAction.php
+++ b/app/code/Magento/Paypal/Controller/Hostedpro/ReturnAction.php
@@ -13,7 +13,7 @@ class ReturnAction extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $session = $this->_objectManager->get('Magento\Checkout\Model\Session');
         //TODO: some actions with order
diff --git a/app/code/Magento/Paypal/Controller/Ipn/Index.php b/app/code/Magento/Paypal/Controller/Ipn/Index.php
index b8078937d32..b3384cba4de 100644
--- a/app/code/Magento/Paypal/Controller/Ipn/Index.php
+++ b/app/code/Magento/Paypal/Controller/Ipn/Index.php
@@ -45,7 +45,7 @@ class Index extends \Magento\Framework\App\Action\Action
      * @return void
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->isPost()) {
             return;
diff --git a/app/code/Magento/Paypal/Controller/Payflow/CancelPayment.php b/app/code/Magento/Paypal/Controller/Payflow/CancelPayment.php
index fa59c545b86..7bd94850d9d 100644
--- a/app/code/Magento/Paypal/Controller/Payflow/CancelPayment.php
+++ b/app/code/Magento/Paypal/Controller/Payflow/CancelPayment.php
@@ -13,7 +13,7 @@ class CancelPayment extends \Magento\Paypal\Controller\Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $gotoSection = $this->_cancelPayment();
diff --git a/app/code/Magento/Paypal/Controller/Payflow/Form.php b/app/code/Magento/Paypal/Controller/Payflow/Form.php
index 47834722d2b..32ca4209659 100644
--- a/app/code/Magento/Paypal/Controller/Payflow/Form.php
+++ b/app/code/Magento/Paypal/Controller/Payflow/Form.php
@@ -17,7 +17,7 @@ class Form extends Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setHeader('P3P', 'CP="CAO PSA OUR"');
         $this->_view->loadLayout(false)->renderLayout();
diff --git a/app/code/Magento/Paypal/Controller/Payflow/ReturnUrl.php b/app/code/Magento/Paypal/Controller/Payflow/ReturnUrl.php
index 1907a07045f..1c095d439ee 100644
--- a/app/code/Magento/Paypal/Controller/Payflow/ReturnUrl.php
+++ b/app/code/Magento/Paypal/Controller/Payflow/ReturnUrl.php
@@ -24,7 +24,7 @@ class ReturnUrl extends Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         /** @var \Magento\Checkout\Block\Onepage\Success $redirectBlock */
diff --git a/app/code/Magento/Paypal/Controller/Payflow/SilentPost.php b/app/code/Magento/Paypal/Controller/Payflow/SilentPost.php
index 8b737177ada..9f1aae5624f 100644
--- a/app/code/Magento/Paypal/Controller/Payflow/SilentPost.php
+++ b/app/code/Magento/Paypal/Controller/Payflow/SilentPost.php
@@ -13,7 +13,7 @@ class SilentPost extends \Magento\Paypal\Controller\Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         if (isset($data['INVNUM'])) {
diff --git a/app/code/Magento/Paypal/Controller/Payflowbml/Start.php b/app/code/Magento/Paypal/Controller/Payflowbml/Start.php
index 4cd82e11464..8da3b6f2715 100644
--- a/app/code/Magento/Paypal/Controller/Payflowbml/Start.php
+++ b/app/code/Magento/Paypal/Controller/Payflowbml/Start.php
@@ -13,7 +13,7 @@ class Start extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward(
             'start',
diff --git a/app/code/Magento/Paypal/Controller/Transparent/RequestSecureToken.php b/app/code/Magento/Paypal/Controller/Transparent/RequestSecureToken.php
index 2fba2402a5f..923988d12a1 100644
--- a/app/code/Magento/Paypal/Controller/Transparent/RequestSecureToken.php
+++ b/app/code/Magento/Paypal/Controller/Transparent/RequestSecureToken.php
@@ -77,7 +77,7 @@ class RequestSecureToken extends \Magento\Framework\App\Action\Action
      *
      * @return ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var Quote $quote */
         $quote = $this->sessionManager->getQuote();
diff --git a/app/code/Magento/Paypal/Controller/Transparent/Response.php b/app/code/Magento/Paypal/Controller/Transparent/Response.php
index c6c8105cba9..30792f38578 100644
--- a/app/code/Magento/Paypal/Controller/Transparent/Response.php
+++ b/app/code/Magento/Paypal/Controller/Transparent/Response.php
@@ -62,7 +62,7 @@ class Response extends \Magento\Framework\App\Action\Action
     /**
      * @return ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $parameters = [];
         try {
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Billing/Agreement/CancelTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Billing/Agreement/CancelTest.php
index 8d4e0ef4ccf..3a7ae2302c3 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Billing/Agreement/CancelTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Billing/Agreement/CancelTest.php
@@ -122,7 +122,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             $this->identicalTo($this->_agreement)
         );
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testExecuteAgreementDoesNotBelongToCustomer()
@@ -136,7 +136,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->_registry->expects($this->never())->method('register');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testExecuteAgreementStatusDoesNotAllowToCancel()
@@ -157,6 +157,6 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             $this->identicalTo($this->_agreement)
         );
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Payflow/ReturnUrlTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Payflow/ReturnUrlTest.php
index 96a45ab4cfb..b4ae7940e76 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Payflow/ReturnUrlTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Payflow/ReturnUrlTest.php
@@ -202,7 +202,7 @@ class ReturnUrlTest extends \PHPUnit_Framework_TestCase
             ->with('goto_success_page', true)
             ->will($this->returnSelf());
 
-        $this->returnUrl->execute();
+        $this->returnUrl->executeInternal();
     }
 
     /**
@@ -272,6 +272,6 @@ class ReturnUrlTest extends \PHPUnit_Framework_TestCase
             ->with('error_msg', __('Your payment has been declined. Please try again.'))
             ->will($this->returnSelf());
 
-        $this->returnUrl->execute();
+        $this->returnUrl->executeInternal();
     }
 }
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/RequestSecureTokenTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/RequestSecureTokenTest.php
index 7285064bcb7..4429f6a9e5d 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/RequestSecureTokenTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/RequestSecureTokenTest.php
@@ -153,7 +153,7 @@ class RequestSecureTokenTest extends \PHPUnit_Framework_TestCase
             ->with($resultExpectation)
             ->willReturnSelf();
 
-        $this->assertEquals($jsonMock, $this->controller->execute());
+        $this->assertEquals($jsonMock, $this->controller->executeInternal());
     }
 
     public function testExecuteTokenRequestException()
@@ -193,7 +193,7 @@ class RequestSecureTokenTest extends \PHPUnit_Framework_TestCase
             ->with($resultExpectation)
             ->willReturnSelf();
 
-        $this->assertEquals($jsonMock, $this->controller->execute());
+        $this->assertEquals($jsonMock, $this->controller->executeInternal());
     }
 
     public function testExecuteEmptyQuoteError()
@@ -220,6 +220,6 @@ class RequestSecureTokenTest extends \PHPUnit_Framework_TestCase
             ->with($resultExpectation)
             ->willReturnSelf();
 
-        $this->assertEquals($jsonMock, $this->controller->execute());
+        $this->assertEquals($jsonMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/ResponseTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/ResponseTest.php
index 7cddae94159..b772f2d79bf 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/ResponseTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/ResponseTest.php
@@ -119,7 +119,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
             ->method('getLayout')
             ->willReturn($this->getLayoutMock());
 
-        $this->assertInstanceOf('\Magento\Framework\Controller\ResultInterface', $this->object->execute());
+        $this->assertInstanceOf('\Magento\Framework\Controller\ResultInterface', $this->object->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -144,7 +144,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
             ->method('getLayout')
             ->willReturn($this->getLayoutMock());
 
-        $this->assertInstanceOf('\Magento\Framework\Controller\ResultInterface', $this->object->execute());
+        $this->assertInstanceOf('\Magento\Framework\Controller\ResultInterface', $this->object->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php b/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php
index fbe7be4e452..2defce5a718 100644
--- a/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php
+++ b/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php
@@ -18,7 +18,7 @@ class ExpressCheckout extends Index
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->messageManager->addNotice(__('Your shopping cart has been updated with new prices.'));
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Persistent/Controller/Index/SaveMethod.php b/app/code/Magento/Persistent/Controller/Index/SaveMethod.php
index 64e32cb9472..e83d6085b07 100644
--- a/app/code/Magento/Persistent/Controller/Index/SaveMethod.php
+++ b/app/code/Magento/Persistent/Controller/Index/SaveMethod.php
@@ -15,7 +15,7 @@ class SaveMethod extends Index
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->sessionHelper->isPersistent()) {
             $this->sessionHelper->getSession()->removePersistentCookie();
diff --git a/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php b/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php
index 369c63f7de8..eb45cfbb176 100644
--- a/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php
+++ b/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php
@@ -15,7 +15,7 @@ class UnsetCookie extends Index
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->sessionHelper->isPersistent()) {
             $this->cleanup();
diff --git a/app/code/Magento/ProductAlert/Controller/Add.php b/app/code/Magento/ProductAlert/Controller/Add.php
index 78ceff1e629..299dedbdbf6 100644
--- a/app/code/Magento/ProductAlert/Controller/Add.php
+++ b/app/code/Magento/ProductAlert/Controller/Add.php
@@ -35,7 +35,7 @@ abstract class Add extends Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->customerSession->authenticate()) {
             $this->_actionFlag->set('', 'no-dispatch', true);
@@ -43,6 +43,6 @@ abstract class Add extends Action
                 $this->customerSession->setBeforeUrl($this->_redirect->getRefererUrl());
             }
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 }
diff --git a/app/code/Magento/ProductAlert/Controller/Add/Price.php b/app/code/Magento/ProductAlert/Controller/Add/Price.php
index 7ee60ebf799..b6a79a78f46 100644
--- a/app/code/Magento/ProductAlert/Controller/Add/Price.php
+++ b/app/code/Magento/ProductAlert/Controller/Add/Price.php
@@ -63,7 +63,7 @@ class Price extends AddController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $backUrl = $this->getRequest()->getParam(Action::PARAM_NAME_URL_ENCODED);
         $productId = (int)$this->getRequest()->getParam('product_id');
diff --git a/app/code/Magento/ProductAlert/Controller/Add/Stock.php b/app/code/Magento/ProductAlert/Controller/Add/Stock.php
index ea0cb55cc15..0756c5168bd 100644
--- a/app/code/Magento/ProductAlert/Controller/Add/Stock.php
+++ b/app/code/Magento/ProductAlert/Controller/Add/Stock.php
@@ -37,7 +37,7 @@ class Stock extends AddController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $backUrl = $this->getRequest()->getParam(Action::PARAM_NAME_URL_ENCODED);
         $productId = (int)$this->getRequest()->getParam('product_id');
diff --git a/app/code/Magento/ProductAlert/Controller/Add/TestObserver.php b/app/code/Magento/ProductAlert/Controller/Add/TestObserver.php
index 96a357be0e8..87a3ba10cf9 100644
--- a/app/code/Magento/ProductAlert/Controller/Add/TestObserver.php
+++ b/app/code/Magento/ProductAlert/Controller/Add/TestObserver.php
@@ -13,7 +13,7 @@ class TestObserver extends AddController
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $object = new DataObject();
         /** @var \Magento\ProductAlert\Model\Observer $observer */
diff --git a/app/code/Magento/ProductAlert/Controller/Unsubscribe/Price.php b/app/code/Magento/ProductAlert/Controller/Unsubscribe/Price.php
index 46ba80f4b3a..c0050834b69 100644
--- a/app/code/Magento/ProductAlert/Controller/Unsubscribe/Price.php
+++ b/app/code/Magento/ProductAlert/Controller/Unsubscribe/Price.php
@@ -36,7 +36,7 @@ class Price extends UnsubscribeController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('product');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/ProductAlert/Controller/Unsubscribe/PriceAll.php b/app/code/Magento/ProductAlert/Controller/Unsubscribe/PriceAll.php
index 1dafba13dd7..0055633db68 100644
--- a/app/code/Magento/ProductAlert/Controller/Unsubscribe/PriceAll.php
+++ b/app/code/Magento/ProductAlert/Controller/Unsubscribe/PriceAll.php
@@ -13,7 +13,7 @@ class PriceAll extends UnsubscribeController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_objectManager->create('Magento\ProductAlert\Model\Price')
diff --git a/app/code/Magento/ProductAlert/Controller/Unsubscribe/Stock.php b/app/code/Magento/ProductAlert/Controller/Unsubscribe/Stock.php
index 3052fcfe0ab..50284d3b04d 100644
--- a/app/code/Magento/ProductAlert/Controller/Unsubscribe/Stock.php
+++ b/app/code/Magento/ProductAlert/Controller/Unsubscribe/Stock.php
@@ -36,7 +36,7 @@ class Stock extends UnsubscribeController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('product');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/ProductAlert/Controller/Unsubscribe/StockAll.php b/app/code/Magento/ProductAlert/Controller/Unsubscribe/StockAll.php
index 63872d2cdd9..7b4eddfc7c0 100644
--- a/app/code/Magento/ProductAlert/Controller/Unsubscribe/StockAll.php
+++ b/app/code/Magento/ProductAlert/Controller/Unsubscribe/StockAll.php
@@ -13,7 +13,7 @@ class StockAll extends UnsubscribeController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_objectManager->create('Magento\ProductAlert\Model\Stock')
diff --git a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
index b0cd6ca9b16..623c82edbcb 100644
--- a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
+++ b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
@@ -70,7 +70,7 @@ class RetrieveImage extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $remoteFileUrl = $this->getRequest()->getParam('remote_image');
diff --git a/app/code/Magento/ProductVideo/Test/Unit/Controller/Adminhtml/Product/Gallery/RetrieveImageTest.php b/app/code/Magento/ProductVideo/Test/Unit/Controller/Adminhtml/Product/Gallery/RetrieveImageTest.php
index bd11bb20d4e..70af0519f53 100644
--- a/app/code/Magento/ProductVideo/Test/Unit/Controller/Adminhtml/Product/Gallery/RetrieveImageTest.php
+++ b/app/code/Magento/ProductVideo/Test/Unit/Controller/Adminhtml/Product/Gallery/RetrieveImageTest.php
@@ -128,6 +128,6 @@ class RetrieveImageTest extends \PHPUnit_Framework_TestCase
         $readInterface->expects($this->any())->method('getAbsolutePath')->willReturn('/var/www/application/sample.jpg');
         $this->abstractAdapter->expects($this->any())->method('validateUploadFile')->willReturn('true');
 
-        $this->image->execute();
+        $this->image->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Accounts.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Accounts.php
index b53d9b87461..da8eb394ba5 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Accounts.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Accounts.php
@@ -13,7 +13,7 @@ class Accounts extends \Magento\Reports\Controller\Adminhtml\Report\Customer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_customers_accounts'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsCsv.php
index 1fa8340b524..2de1d222650 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsCsv.php
@@ -17,7 +17,7 @@ class ExportAccountsCsv extends \Magento\Reports\Controller\Adminhtml\Report\Cus
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'new_accounts.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsExcel.php
index 368c8d06917..b7e565a3f40 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsExcel.php
@@ -17,7 +17,7 @@ class ExportAccountsExcel extends \Magento\Reports\Controller\Adminhtml\Report\C
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'new_accounts.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersCsv.php
index d674ff274c2..8e12efa03eb 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersCsv.php
@@ -17,7 +17,7 @@ class ExportOrdersCsv extends \Magento\Reports\Controller\Adminhtml\Report\Custo
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customers_orders.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersExcel.php
index 20510752042..c3f2afa1814 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersExcel.php
@@ -17,7 +17,7 @@ class ExportOrdersExcel extends \Magento\Reports\Controller\Adminhtml\Report\Cus
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customers_orders.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsCsv.php
index 629e25bdf6d..c0b2f87e0fe 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsCsv.php
@@ -17,7 +17,7 @@ class ExportTotalsCsv extends \Magento\Reports\Controller\Adminhtml\Report\Custo
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customer_totals.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsExcel.php
index 8c2800fe6ca..6c33a4a1eef 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsExcel.php
@@ -17,7 +17,7 @@ class ExportTotalsExcel extends \Magento\Reports\Controller\Adminhtml\Report\Cus
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customer_totals.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Orders.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Orders.php
index 5e556d9fe89..bc7363825f2 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Orders.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Orders.php
@@ -13,7 +13,7 @@ class Orders extends \Magento\Reports\Controller\Adminhtml\Report\Customer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_customers_orders'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Totals.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Totals.php
index f58bfb2bfc8..b7e3d117467 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Totals.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Totals.php
@@ -13,7 +13,7 @@ class Totals extends \Magento\Reports\Controller\Adminhtml\Report\Customer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_customers_totals'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Downloads.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Downloads.php
index 93213f776ec..5776f796be9 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Downloads.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Downloads.php
@@ -23,7 +23,7 @@ class Downloads extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Downloadable::report_products_downloads'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsCsv.php
index 5c6af987aec..31086ee266b 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsCsv.php
@@ -25,7 +25,7 @@ class ExportDownloadsCsv extends \Magento\Reports\Controller\Adminhtml\Report\Pr
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'products_downloads.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsExcel.php
index a42c7f09851..20c5715b260 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsExcel.php
@@ -25,7 +25,7 @@ class ExportDownloadsExcel extends \Magento\Reports\Controller\Adminhtml\Report\
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'products_downloads.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockCsv.php
index 2b63aa2d4c8..bbbce2b95b1 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockCsv.php
@@ -26,7 +26,7 @@ class ExportLowstockCsv extends \Magento\Reports\Controller\Adminhtml\Report\Pro
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'products_lowstock.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockExcel.php
index 0d0ed5e0b85..f8e86a46368 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockExcel.php
@@ -26,7 +26,7 @@ class ExportLowstockExcel extends \Magento\Reports\Controller\Adminhtml\Report\P
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'products_lowstock.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php
index f1c02ac7971..7eb7c810ffb 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php
@@ -27,7 +27,7 @@ class ExportSoldCsv extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'products_ordered.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php
index 818b7a73c63..8b4e4ed7fa2 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php
@@ -27,7 +27,7 @@ class ExportSoldExcel extends \Magento\Reports\Controller\Adminhtml\Report\Produ
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'products_ordered.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedCsv.php
index a7b42c93992..9c7348d76f2 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedCsv.php
@@ -26,7 +26,7 @@ class ExportViewedCsv extends \Magento\Reports\Controller\Adminhtml\Report\Produ
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'products_mostviewed.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Product\Viewed\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedExcel.php
index b33650eee88..77a5ffff1aa 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedExcel.php
@@ -26,7 +26,7 @@ class ExportViewedExcel extends \Magento\Reports\Controller\Adminhtml\Report\Pro
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'products_mostviewed.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Product\Viewed\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Lowstock.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Lowstock.php
index f2734c22fac..14eaafe76b8 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Lowstock.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Lowstock.php
@@ -23,7 +23,7 @@ class Lowstock extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_products_lowstock'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Sold.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Sold.php
index 2b43c124f83..25445c349e1 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Sold.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Sold.php
@@ -23,7 +23,7 @@ class Sold extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_products_sold'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Viewed.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Viewed.php
index 4de88db184a..3a370259de9 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Viewed.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Viewed.php
@@ -25,7 +25,7 @@ class Viewed extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_showLastExecutionTime(Flag::REPORT_PRODUCT_VIEWED_FLAG_CODE, 'viewed');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Customer.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Customer.php
index f956bf14c1d..18c0961d483 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Customer.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Customer.php
@@ -13,7 +13,7 @@ class Customer extends \Magento\Reports\Controller\Adminhtml\Report\Review
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Review::report_review_customer'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerCsv.php
index 1a7f776d00f..473f42a4ca3 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerCsv.php
@@ -16,7 +16,7 @@ class ExportCustomerCsv extends \Magento\Reports\Controller\Adminhtml\Report\Rev
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'review_customer.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerExcel.php
index 9744feb1f5e..7dfe0c646d0 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerExcel.php
@@ -16,7 +16,7 @@ class ExportCustomerExcel extends \Magento\Reports\Controller\Adminhtml\Report\R
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'review_customer.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductCsv.php
index 2c471b80304..15d4d4d6df0 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductCsv.php
@@ -16,7 +16,7 @@ class ExportProductCsv extends \Magento\Reports\Controller\Adminhtml\Report\Revi
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'review_product.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailCsv.php
index 7358396f2aa..d27f3fe37c7 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailCsv.php
@@ -16,7 +16,7 @@ class ExportProductDetailCsv extends \Magento\Reports\Controller\Adminhtml\Repor
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'review_product_detail.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailExcel.php
index 9e80e2309c1..32abda47b6d 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailExcel.php
@@ -16,7 +16,7 @@ class ExportProductDetailExcel extends \Magento\Reports\Controller\Adminhtml\Rep
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'review_product_detail.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductExcel.php
index c5b6b33457f..dc04c672a10 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductExcel.php
@@ -16,7 +16,7 @@ class ExportProductExcel extends \Magento\Reports\Controller\Adminhtml\Report\Re
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'review_product.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Product.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Product.php
index fe7364181ea..e5f5aecb69b 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Product.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Product.php
@@ -13,7 +13,7 @@ class Product extends \Magento\Reports\Controller\Adminhtml\Report\Review
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Review::report_review_product'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ProductDetail.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ProductDetail.php
index 4ee32cade01..d4bea33168c 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ProductDetail.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ProductDetail.php
@@ -13,7 +13,7 @@ class ProductDetail extends \Magento\Reports\Controller\Adminhtml\Report\Review
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Review::report_review'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Bestsellers.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Bestsellers.php
index 5c8247bda64..97be72a935d 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Bestsellers.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Bestsellers.php
@@ -15,7 +15,7 @@ class Bestsellers extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_BESTSELLERS_FLAG_CODE, 'bestsellers');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Coupons.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Coupons.php
index 1ccc99988bb..e9ece3ae682 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Coupons.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Coupons.php
@@ -15,7 +15,7 @@ class Coupons extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_COUPONS_FLAG_CODE, 'coupons');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersCsv.php
index e831fc83471..0a531d06068 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersCsv.php
@@ -16,7 +16,7 @@ class ExportBestsellersCsv extends \Magento\Reports\Controller\Adminhtml\Report\
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'bestsellers.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Bestsellers\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersExcel.php
index bba9bbacf88..2d1afc0fac1 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersExcel.php
@@ -16,7 +16,7 @@ class ExportBestsellersExcel extends \Magento\Reports\Controller\Adminhtml\Repor
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'bestsellers.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Bestsellers\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsCsv.php
index 4b5ed51a45f..ccd04b83482 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsCsv.php
@@ -16,7 +16,7 @@ class ExportCouponsCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sale
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'coupons.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Coupons\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsExcel.php
index 54641cd4494..d70457746f8 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsExcel.php
@@ -16,7 +16,7 @@ class ExportCouponsExcel extends \Magento\Reports\Controller\Adminhtml\Report\Sa
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'coupons.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Coupons\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedCsv.php
index 46f977f4157..e4ad782163c 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedCsv.php
@@ -16,7 +16,7 @@ class ExportInvoicedCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sal
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'invoiced.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Invoiced\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedExcel.php
index 771078bae98..503bc1562ce 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedExcel.php
@@ -16,7 +16,7 @@ class ExportInvoicedExcel extends \Magento\Reports\Controller\Adminhtml\Report\S
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'invoiced.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Invoiced\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedCsv.php
index 375b63e3600..987b288f934 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedCsv.php
@@ -16,7 +16,7 @@ class ExportRefundedCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sal
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'refunded.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Refunded\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedExcel.php
index ca4a842af87..311380659a6 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedExcel.php
@@ -16,7 +16,7 @@ class ExportRefundedExcel extends \Magento\Reports\Controller\Adminhtml\Report\S
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'refunded.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Refunded\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesCsv.php
index 345f809725e..20e4a577b3f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesCsv.php
@@ -16,7 +16,7 @@ class ExportSalesCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'sales.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Sales\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesExcel.php
index b0bc6001d45..0e5b9beaccc 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesExcel.php
@@ -16,7 +16,7 @@ class ExportSalesExcel extends \Magento\Reports\Controller\Adminhtml\Report\Sale
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'sales.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Sales\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingCsv.php
index 82fe7afbead..c7c699a105f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingCsv.php
@@ -16,7 +16,7 @@ class ExportShippingCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sal
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shipping.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Shipping\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingExcel.php
index 39b7a4676c1..13ae0fe237c 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingExcel.php
@@ -16,7 +16,7 @@ class ExportShippingExcel extends \Magento\Reports\Controller\Adminhtml\Report\S
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shipping.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Shipping\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxCsv.php
index ae7ce954bb3..d9496b9f5ee 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxCsv.php
@@ -16,7 +16,7 @@ class ExportTaxCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'tax.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Tax\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxExcel.php
index b7648a55d5b..f7737132e9d 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxExcel.php
@@ -16,7 +16,7 @@ class ExportTaxExcel extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'tax.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Tax\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Invoiced.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Invoiced.php
index 3a7cd19fef7..242d9c41d27 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Invoiced.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Invoiced.php
@@ -15,7 +15,7 @@ class Invoiced extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_INVOICE_FLAG_CODE, 'invoiced');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshLifetime.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshLifetime.php
index d093fd273b7..19e3007db7a 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshLifetime.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshLifetime.php
@@ -13,7 +13,7 @@ class RefreshLifetime extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('refreshLifetime', 'report_statistics');
     }
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshRecent.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshRecent.php
index 2d4665fe4f4..0b7ccef07bd 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshRecent.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshRecent.php
@@ -13,7 +13,7 @@ class RefreshRecent extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('refreshRecent', 'report_statistics');
     }
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshStatistics.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshStatistics.php
index 77c6bfab4db..64ac14d427f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshStatistics.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshStatistics.php
@@ -13,7 +13,7 @@ class RefreshStatistics extends \Magento\Reports\Controller\Adminhtml\Report\Sal
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('index', 'report_statistics');
     }
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Refunded.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Refunded.php
index 5d03937d815..3120ff01236 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Refunded.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Refunded.php
@@ -15,7 +15,7 @@ class Refunded extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_REFUNDED_FLAG_CODE, 'refunded');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Sales.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Sales.php
index c54cafb6c0c..3dd5c10bf9f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Sales.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Sales.php
@@ -15,7 +15,7 @@ class Sales extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_ORDER_FLAG_CODE, 'sales');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Shipping.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Shipping.php
index 46aa42db9b1..10685964510 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Shipping.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Shipping.php
@@ -15,7 +15,7 @@ class Shipping extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_SHIPPING_FLAG_CODE, 'shipping');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Tax.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Tax.php
index 6fd6555ef09..143140f42b0 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Tax.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Tax.php
@@ -15,7 +15,7 @@ class Tax extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_TAX_FLAG_CODE, 'tax');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Abandoned.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Abandoned.php
index 5db3858d004..6c88e443ca5 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Abandoned.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Abandoned.php
@@ -13,7 +13,7 @@ class Abandoned extends \Magento\Reports\Controller\Adminhtml\Report\Shopcart
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_shopcart_abandoned'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Customer.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Customer.php
index 376d220a795..b8045d003aa 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Customer.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Customer.php
@@ -13,7 +13,7 @@ class Customer extends \Magento\Reports\Controller\Adminhtml\Report\Shopcart
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_shopcart_customer'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedCsv.php
index 6023236b82c..aff71b76b37 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedCsv.php
@@ -16,7 +16,7 @@ class ExportAbandonedCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sh
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_abandoned.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedExcel.php
index 6118c9fb20a..71aae22568e 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedExcel.php
@@ -16,7 +16,7 @@ class ExportAbandonedExcel extends \Magento\Reports\Controller\Adminhtml\Report\
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_abandoned.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerCsv.php
index 30218563edd..4405cfc9614 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerCsv.php
@@ -15,7 +15,7 @@ class ExportCustomerCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sho
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_customer.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerExcel.php
index 2c017142a18..f20fcb9c20f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerExcel.php
@@ -15,7 +15,7 @@ class ExportCustomerExcel extends \Magento\Reports\Controller\Adminhtml\Report\S
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_customer.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductCsv.php
index c244aee2574..9ad9dd030d3 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductCsv.php
@@ -16,7 +16,7 @@ class ExportProductCsv extends \Magento\Reports\Controller\Adminhtml\Report\Shop
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_product.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductExcel.php
index 1b844291864..43ed6690d3b 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductExcel.php
@@ -16,7 +16,7 @@ class ExportProductExcel extends \Magento\Reports\Controller\Adminhtml\Report\Sh
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_product.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Product.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Product.php
index c257a751084..d8035545af1 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Product.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Product.php
@@ -13,7 +13,7 @@ class Product extends \Magento\Reports\Controller\Adminhtml\Report\Shopcart
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_shopcart_product'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/Index.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/Index.php
index e4cf01207ad..36e87ff3d7b 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/Index.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Reports\Controller\Adminhtml\Report\Statistics
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_statistics_refresh'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshLifetime.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshLifetime.php
index 35222afc53a..016c026abaf 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshLifetime.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshLifetime.php
@@ -14,7 +14,7 @@ class RefreshLifetime extends \Magento\Reports\Controller\Adminhtml\Report\Stati
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collectionsNames = $this->_getCollectionNames();
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php
index e4e5c4e6510..8864c3401ec 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php
@@ -14,7 +14,7 @@ class RefreshRecent extends \Magento\Reports\Controller\Adminhtml\Report\Statist
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collectionsNames = $this->_getCollectionNames();
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/AccountsTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/AccountsTest.php
index baad059fb48..96a1921b295 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/AccountsTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/AccountsTest.php
@@ -70,6 +70,6 @@ class AccountsTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Repor
             ->expects($this->at(2))
             ->method('addLink')
             ->with(new Phrase('New Accounts'), new Phrase('New Accounts'));
-        $this->accounts->execute();
+        $this->accounts->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsCsvTest.php
index c5e9ccccf6d..273574130f1 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsCsvTest.php
@@ -45,6 +45,6 @@ class ExportAccountsCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->expects($this->once())
             ->method('create')
             ->with('new_accounts.csv', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportAccountsCsv->execute();
+        $this->exportAccountsCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsExcelTest.php
index 98134d20ccd..8205201a150 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsExcelTest.php
@@ -45,6 +45,6 @@ class ExportAccountsExcelTest extends \Magento\Reports\Test\Unit\Controller\Admi
             ->expects($this->once())
             ->method('create')
             ->with('new_accounts.xml', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportAccountsExcel->execute();
+        $this->exportAccountsExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersCsvTest.php
index 573720a1859..50bde9a3f42 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersCsvTest.php
@@ -45,6 +45,6 @@ class ExportOrdersCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminhtm
             ->expects($this->once())
             ->method('create')
             ->with('customers_orders.csv', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportOrdersCsv->execute();
+        $this->exportOrdersCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersExcelTest.php
index b8273becb2d..8cc84ac980e 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersExcelTest.php
@@ -45,6 +45,6 @@ class ExportOrdersExcelTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->expects($this->once())
             ->method('create')
             ->with('customers_orders.xml', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportOrdersExcel->execute();
+        $this->exportOrdersExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsCsvTest.php
index b4a7a0c68e2..989d05bc651 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsCsvTest.php
@@ -45,6 +45,6 @@ class ExportTotalsCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminhtm
             ->expects($this->once())
             ->method('create')
             ->with('customer_totals.csv', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportTotalsCsv->execute();
+        $this->exportTotalsCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsExcelTest.php
index 33177c27a18..3c2cb597647 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsExcelTest.php
@@ -45,6 +45,6 @@ class ExportTotalsExcelTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->expects($this->once())
             ->method('create')
             ->with('customer_totals.xml', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportTotalsExcel->execute();
+        $this->exportTotalsExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/OrdersTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/OrdersTest.php
index 1d960cc8175..c15797a18d9 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/OrdersTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/OrdersTest.php
@@ -70,6 +70,6 @@ class OrdersTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->expects($this->at(2))
             ->method('addLink')
             ->with(new Phrase('Customers by Number of Orders'), new Phrase('Customers by Number of Orders'));
-        $this->orders->execute();
+        $this->orders->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/TotalsTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/TotalsTest.php
index a479fb53c3a..44d554a10c7 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/TotalsTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/TotalsTest.php
@@ -70,6 +70,6 @@ class TotalsTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->expects($this->at(2))
             ->method('addLink')
             ->with(new Phrase('Customers by Orders Total'), new Phrase('Customers by Orders Total'));
-        $this->totals->execute();
+        $this->totals->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/DownloadsTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/DownloadsTest.php
index 6bae34a5687..b3e5f9c4725 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/DownloadsTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/DownloadsTest.php
@@ -86,6 +86,6 @@ class DownloadsTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Repo
             ->with('Magento\Reports\Block\Adminhtml\Product\Downloads')
             ->willReturn($this->abstractBlockMock);
 
-        $this->downloads->execute();
+        $this->downloads->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsCsvTest.php
index 9c80ef0700b..3b54b2e96fc 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsCsvTest.php
@@ -70,6 +70,6 @@ class ExportDownloadsCsvTest extends \Magento\Reports\Test\Unit\Controller\Admin
             ->method('create')
             ->with('products_downloads.csv', $content);
 
-        $this->exportDownloadsCsv->execute();
+        $this->exportDownloadsCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsExcelTest.php
index 010e14168b4..864abadb92d 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsExcelTest.php
@@ -72,6 +72,6 @@ class ExportDownloadsExcelTest extends \Magento\Reports\Test\Unit\Controller\Adm
             ->method('create')
             ->with($fileName, $content);
 
-        $this->exportDownloadsExcel->execute();
+        $this->exportDownloadsExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockCsvTest.php
index 074c8e88d57..d1897fe6ac3 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockCsvTest.php
@@ -65,6 +65,6 @@ class ExportLowstockCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->method('create')
             ->with('products_lowstock.csv', $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportLowstockCsv->execute();
+        $this->exportLowstockCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockExcelTest.php
index 509fc27b170..0b5b2240fab 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockExcelTest.php
@@ -65,6 +65,6 @@ class ExportLowstockExcelTest extends \Magento\Reports\Test\Unit\Controller\Admi
             ->method('create')
             ->with('products_lowstock.xml', $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportLowstockExcel->execute();
+        $this->exportLowstockExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldCsvTest.php
index b0f76d58049..2c01c8d3eab 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldCsvTest.php
@@ -65,6 +65,6 @@ class ExportSoldCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\
             ->method('create')
             ->with('products_ordered.csv', $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportSoldCsv->execute();
+        $this->exportSoldCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldExcelTest.php
index 21ce5635d33..202252d7f25 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldExcelTest.php
@@ -67,6 +67,6 @@ class ExportSoldExcelTest extends \Magento\Reports\Test\Unit\Controller\Adminhtm
             ->method('create')
             ->with($fileName, $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportSoldExcel->execute();
+        $this->exportSoldExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedCsvTest.php
index e31655f1183..f1f060d09f2 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedCsvTest.php
@@ -90,6 +90,6 @@ class ExportViewedCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminhtm
             ->method('create')
             ->with($fileName, $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportViewedCsv->execute();
+        $this->exportViewedCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedExcelTest.php
index 43e615c7a9a..4a92d6c8f2f 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedExcelTest.php
@@ -91,6 +91,6 @@ class ExportViewedExcelTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->method('create')
             ->with($fileName, $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportViewedExcel->execute();
+        $this->exportViewedExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/LowstockTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/LowstockTest.php
index 10eaa830d79..0ec6a082b92 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/LowstockTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/LowstockTest.php
@@ -83,6 +83,6 @@ class LowstockTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Repor
                 [new Phrase('Low Stock'), new Phrase('Low Stock')]
             );
 
-        $this->lowstock->execute();
+        $this->lowstock->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/SoldTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/SoldTest.php
index 34c9e12df2c..82981d6f142 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/SoldTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/SoldTest.php
@@ -83,6 +83,6 @@ class SoldTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\Ab
                 [new Phrase('Products Ordered'), new Phrase('Products Ordered')]
             );
 
-        $this->sold->execute();
+        $this->sold->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ViewedTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ViewedTest.php
index 686aed163ec..01cfe44f652 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ViewedTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ViewedTest.php
@@ -151,7 +151,7 @@ class ViewedTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->expects($this->once())
             ->method('renderLayout');
 
-        $this->viewed->execute();
+        $this->viewed->executeInternal();
     }
 
     /**
@@ -202,7 +202,7 @@ class ViewedTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->method('setActive')
             ->willThrowException(new \Exception());
 
-        $this->viewed->execute();
+        $this->viewed->executeInternal();
     }
 
     /**
@@ -222,6 +222,6 @@ class ViewedTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->method('setActive')
             ->willThrowException(new \Magento\Framework\Exception\LocalizedException($errorText));
 
-        $this->viewed->execute();
+        $this->viewed->executeInternal();
     }
 }
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Delete.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Delete.php
index ce84f4e9985..f6ea8b9f899 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Delete.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Delete.php
@@ -13,7 +13,7 @@ class Delete extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Edit.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Edit.php
index 10026df39b8..658b798acbf 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Edit.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Edit.php
@@ -13,7 +13,7 @@ class Edit extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Index.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Index.php
index da31a87aa9f..e999732f5ef 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Index.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Index.php
@@ -13,7 +13,7 @@ class Index extends ProductController
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('ajax')) {
             /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/JsonProductInfo.php b/app/code/Magento/Review/Controller/Adminhtml/Product/JsonProductInfo.php
index 2f449cfd4ca..acd2b40a78f 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/JsonProductInfo.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/JsonProductInfo.php
@@ -42,7 +42,7 @@ class JsonProductInfo extends ProductController
     /**
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new DataObject();
         $id = $this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/MassDelete.php b/app/code/Magento/Review/Controller/Adminhtml/Product/MassDelete.php
index 6a64c6cf549..73dfe572ba7 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/MassDelete.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/MassDelete.php
@@ -14,7 +14,7 @@ class MassDelete extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $reviewsIds = $this->getRequest()->getParam('reviews');
         if (!is_array($reviewsIds)) {
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/MassUpdateStatus.php b/app/code/Magento/Review/Controller/Adminhtml/Product/MassUpdateStatus.php
index 285503a2365..9866a2be76a 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/MassUpdateStatus.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/MassUpdateStatus.php
@@ -14,7 +14,7 @@ class MassUpdateStatus extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $reviewsIds = $this->getRequest()->getParam('reviews');
         if (!is_array($reviewsIds)) {
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/MassVisibleIn.php b/app/code/Magento/Review/Controller/Adminhtml/Product/MassVisibleIn.php
index 4e65891133a..f9d646d68e6 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/MassVisibleIn.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/MassVisibleIn.php
@@ -14,7 +14,7 @@ class MassVisibleIn extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $reviewsIds = $this->getRequest()->getParam('reviews');
         if (!is_array($reviewsIds)) {
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/NewAction.php b/app/code/Magento/Review/Controller/Adminhtml/Product/NewAction.php
index e5d2a0e1b31..4cbd60d0342 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/NewAction.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Pending.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Pending.php
index 46b341492ab..ddae839c33c 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Pending.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Pending.php
@@ -13,7 +13,7 @@ class Pending extends ProductController
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('ajax')) {
             $this->coreRegistry->register('usePendingFilter', true);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Post.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Post.php
index f6b7f24bffd..20cc725e3d1 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Post.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Post.php
@@ -15,7 +15,7 @@ class Post extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = $this->getRequest()->getParam('product_id', false);
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/ProductGrid.php b/app/code/Magento/Review/Controller/Adminhtml/Product/ProductGrid.php
index afdd87aac5d..43aaf18b473 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/ProductGrid.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/ProductGrid.php
@@ -41,7 +41,7 @@ class ProductGrid extends ProductController
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $layout = $this->layoutFactory->create();
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/RatingItems.php b/app/code/Magento/Review/Controller/Adminhtml/Product/RatingItems.php
index f79da2549bf..46a2a19088f 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/RatingItems.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/RatingItems.php
@@ -41,7 +41,7 @@ class RatingItems extends ProductController
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $layout = $this->layoutFactory->create();
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/ReviewGrid.php b/app/code/Magento/Review/Controller/Adminhtml/Product/ReviewGrid.php
index 293b958b6ec..7715f73dbff 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/ReviewGrid.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/ReviewGrid.php
@@ -41,7 +41,7 @@ class ReviewGrid extends ProductController
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $layout = $this->layoutFactory->create();
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Reviews/Grid.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Reviews/Grid.php
index 84606cfe8b3..a88025a2755 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Reviews/Grid.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Reviews/Grid.php
@@ -34,7 +34,7 @@ class Grid extends Action
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $product = $this->productBuilder->build($this->getRequest());
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Save.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Save.php
index f1121eec6b2..8494e1b5590 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Save.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Save.php
@@ -15,7 +15,7 @@ class Save extends ProductController
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/Delete.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/Delete.php
index 55fc796fc26..818f8bf9351 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/Delete.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/Delete.php
@@ -13,7 +13,7 @@ class Delete extends RatingController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/Edit.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/Edit.php
index 54bd62f83a1..e4a4e8808bc 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/Edit.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/Edit.php
@@ -13,7 +13,7 @@ class Edit extends RatingController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initEnityId();
         /** @var \Magento\Review\Model\Rating $ratingModel */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/Index.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/Index.php
index be9bebf78c7..1723d280092 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/Index.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/Index.php
@@ -13,7 +13,7 @@ class Index extends RatingController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initEnityId();
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/NewAction.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/NewAction.php
index 162f85eac65..ec6190f27de 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/NewAction.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends RatingController
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/Save.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/Save.php
index 6cfaeabfa33..2802b50031d 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/Save.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/Save.php
@@ -15,7 +15,7 @@ class Save extends RatingController
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initEnityId();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Review/Controller/Customer.php b/app/code/Magento/Review/Controller/Customer.php
index 0e96a652b72..a1a39d544c2 100644
--- a/app/code/Magento/Review/Controller/Customer.php
+++ b/app/code/Magento/Review/Controller/Customer.php
@@ -40,11 +40,11 @@ abstract class Customer extends Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->customerSession->authenticate()) {
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 }
diff --git a/app/code/Magento/Review/Controller/Customer/Index.php b/app/code/Magento/Review/Controller/Customer/Index.php
index 6123c009cdd..e51ca5c5476 100644
--- a/app/code/Magento/Review/Controller/Customer/Index.php
+++ b/app/code/Magento/Review/Controller/Customer/Index.php
@@ -15,7 +15,7 @@ class Index extends CustomerController
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/Review/Controller/Customer/View.php b/app/code/Magento/Review/Controller/Customer/View.php
index 92972dce3ae..222f8a0bcb0 100644
--- a/app/code/Magento/Review/Controller/Customer/View.php
+++ b/app/code/Magento/Review/Controller/Customer/View.php
@@ -36,7 +36,7 @@ class View extends CustomerController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $review = $this->reviewFactory->create()->load($this->getRequest()->getParam('id'));
         if ($review->getCustomerId() != $this->customerSession->getCustomerId()) {
diff --git a/app/code/Magento/Review/Controller/Product.php b/app/code/Magento/Review/Controller/Product.php
index a0137ef07b9..8db2e062706 100644
--- a/app/code/Magento/Review/Controller/Product.php
+++ b/app/code/Magento/Review/Controller/Product.php
@@ -144,11 +144,11 @@ abstract class Product extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $allowGuest = $this->_objectManager->get('Magento\Review\Helper\Data')->getIsGuestAllowToWrite();
         if (!$request->isDispatched()) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         if (!$allowGuest && $request->getActionName() == 'post' && $request->isPost()) {
@@ -166,7 +166,7 @@ abstract class Product extends \Magento\Framework\App\Action\Action
             }
         }
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Review/Controller/Product/ListAction.php b/app/code/Magento/Review/Controller/Product/ListAction.php
index 3c28379ec4a..910b9232da9 100644
--- a/app/code/Magento/Review/Controller/Product/ListAction.php
+++ b/app/code/Magento/Review/Controller/Product/ListAction.php
@@ -38,7 +38,7 @@ class ListAction extends ProductController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $product = $this->initProduct();
         if ($product) {
diff --git a/app/code/Magento/Review/Controller/Product/ListAjax.php b/app/code/Magento/Review/Controller/Product/ListAjax.php
index b261971c509..36fa3830a36 100644
--- a/app/code/Magento/Review/Controller/Product/ListAjax.php
+++ b/app/code/Magento/Review/Controller/Product/ListAjax.php
@@ -15,7 +15,7 @@ class ListAjax extends ProductController
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initProduct();
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
diff --git a/app/code/Magento/Review/Controller/Product/Post.php b/app/code/Magento/Review/Controller/Product/Post.php
index a68f0d18c3b..9cf199d7f72 100644
--- a/app/code/Magento/Review/Controller/Product/Post.php
+++ b/app/code/Magento/Review/Controller/Product/Post.php
@@ -18,7 +18,7 @@ class Post extends ProductController
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Review/Controller/Product/View.php b/app/code/Magento/Review/Controller/Product/View.php
index f65d1ceb819..fb2a1893ba6 100644
--- a/app/code/Magento/Review/Controller/Product/View.php
+++ b/app/code/Magento/Review/Controller/Product/View.php
@@ -40,7 +40,7 @@ class View extends ProductController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $review = $this->loadReview((int)$this->getRequest()->getParam('id'));
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
diff --git a/app/code/Magento/Review/Test/Unit/Controller/Adminhtml/Product/PostTest.php b/app/code/Magento/Review/Test/Unit/Controller/Adminhtml/Product/PostTest.php
index d20abf31a19..1c6cc30cafb 100644
--- a/app/code/Magento/Review/Test/Unit/Controller/Adminhtml/Product/PostTest.php
+++ b/app/code/Magento/Review/Test/Unit/Controller/Adminhtml/Product/PostTest.php
@@ -209,6 +209,6 @@ class PostTest extends \PHPUnit_Framework_TestCase
             ->method('addOptionVote')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->postController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->postController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Review/Test/Unit/Controller/Product/PostTest.php b/app/code/Magento/Review/Test/Unit/Controller/Product/PostTest.php
index 9cedb87e15a..f1ccec681b2 100644
--- a/app/code/Magento/Review/Test/Unit/Controller/Product/PostTest.php
+++ b/app/code/Magento/Review/Test/Unit/Controller/Product/PostTest.php
@@ -315,6 +315,6 @@ class PostTest extends \PHPUnit_Framework_TestCase
             ->with(true)
             ->willReturn($redirectUrl);
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Rss/Controller/Adminhtml/Feed/Index.php b/app/code/Magento/Rss/Controller/Adminhtml/Feed/Index.php
index 61da0e27c2e..96b989cdf78 100644
--- a/app/code/Magento/Rss/Controller/Adminhtml/Feed/Index.php
+++ b/app/code/Magento/Rss/Controller/Adminhtml/Feed/Index.php
@@ -20,7 +20,7 @@ class Index extends \Magento\Rss\Controller\Adminhtml\Feed
      * @return void
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->scopeConfig->getValue('rss/config/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
             throw new NotFoundException(__('Page not found.'));
diff --git a/app/code/Magento/Rss/Controller/Feed/Index.php b/app/code/Magento/Rss/Controller/Feed/Index.php
index e3679a10021..5f8e58afefd 100644
--- a/app/code/Magento/Rss/Controller/Feed/Index.php
+++ b/app/code/Magento/Rss/Controller/Feed/Index.php
@@ -20,7 +20,7 @@ class Index extends \Magento\Rss\Controller\Feed
      * @return void
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->scopeConfig->getValue('rss/config/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
             throw new NotFoundException(__('Page not found.'));
diff --git a/app/code/Magento/Rss/Controller/Index/Index.php b/app/code/Magento/Rss/Controller/Index/Index.php
index 63575ad8e44..0a2096c35d8 100644
--- a/app/code/Magento/Rss/Controller/Index/Index.php
+++ b/app/code/Magento/Rss/Controller/Index/Index.php
@@ -16,7 +16,7 @@ class Index extends \Magento\Rss\Controller\Index
      * @return void
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_scopeConfig->getValue('rss/config/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
             $this->_view->loadLayout();
diff --git a/app/code/Magento/Rss/Test/Unit/Controller/Adminhtml/Feed/IndexTest.php b/app/code/Magento/Rss/Test/Unit/Controller/Adminhtml/Feed/IndexTest.php
index 83126339130..2d58e440902 100644
--- a/app/code/Magento/Rss/Test/Unit/Controller/Adminhtml/Feed/IndexTest.php
+++ b/app/code/Magento/Rss/Test/Unit/Controller/Adminhtml/Feed/IndexTest.php
@@ -93,7 +93,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->rssFactory->expects($this->once())->method('create')->will($this->returnValue($rssModel));
 
         $this->rssManager->expects($this->once())->method('getProvider')->will($this->returnValue($dataProvider));
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -110,6 +110,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->rssManager->expects($this->once())->method('getProvider')->will($this->returnValue($dataProvider));
 
         $this->setExpectedException('\Zend_Feed_Builder_Exception');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Rss/Test/Unit/Controller/Feed/IndexTest.php b/app/code/Magento/Rss/Test/Unit/Controller/Feed/IndexTest.php
index 5b209caa274..638f2dc802d 100644
--- a/app/code/Magento/Rss/Test/Unit/Controller/Feed/IndexTest.php
+++ b/app/code/Magento/Rss/Test/Unit/Controller/Feed/IndexTest.php
@@ -81,7 +81,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->rssFactory->expects($this->once())->method('create')->will($this->returnValue($rssModel));
 
         $this->rssManager->expects($this->once())->method('getProvider')->will($this->returnValue($dataProvider));
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -98,6 +98,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->rssManager->expects($this->once())->method('getProvider')->will($this->returnValue($dataProvider));
 
         $this->setExpectedException('\Zend_Feed_Builder_Exception');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Controller/AbstractController/PrintAction.php b/app/code/Magento/Sales/Controller/AbstractController/PrintAction.php
index b011b8f60e5..433e8d38c4d 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/PrintAction.php
@@ -41,7 +41,7 @@ abstract class PrintAction extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/PrintCreditmemo.php b/app/code/Magento/Sales/Controller/AbstractController/PrintCreditmemo.php
index 24f13d49d08..bffa469a2ee 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/PrintCreditmemo.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/PrintCreditmemo.php
@@ -58,7 +58,7 @@ abstract class PrintCreditmemo extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $creditmemoId = (int)$this->getRequest()->getParam('creditmemo_id');
         if ($creditmemoId) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/PrintInvoice.php b/app/code/Magento/Sales/Controller/AbstractController/PrintInvoice.php
index 04088a9c79c..fffcb6ca4df 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/PrintInvoice.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/PrintInvoice.php
@@ -49,7 +49,7 @@ abstract class PrintInvoice extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoiceId = (int)$this->getRequest()->getParam('invoice_id');
         if ($invoiceId) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/PrintShipment.php b/app/code/Magento/Sales/Controller/AbstractController/PrintShipment.php
index 74fbb343944..ab17469ccf1 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/PrintShipment.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/PrintShipment.php
@@ -49,7 +49,7 @@ abstract class PrintShipment extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $shipmentId = (int)$this->getRequest()->getParam('shipment_id');
         if ($shipmentId) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/Reorder.php b/app/code/Magento/Sales/Controller/AbstractController/Reorder.php
index bf86825d8b4..f589dbabab9 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/Reorder.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/Reorder.php
@@ -41,7 +41,7 @@ abstract class Reorder extends Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/View.php b/app/code/Magento/Sales/Controller/AbstractController/View.php
index 987fa30704e..0bef4ed08e0 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/View.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/View.php
@@ -41,7 +41,7 @@ abstract class View extends Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php
index 68fc9d62e85..6a6babfc1b1 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php
@@ -25,7 +25,7 @@ class Email extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $creditmemoId = $this->getRequest()->getParam('creditmemo_id');
         if (!$creditmemoId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Grid.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Grid.php
index 3022cf995e6..209096f62fe 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Grid.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Grid.php
@@ -37,7 +37,7 @@ class Grid extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultLayout = $this->resultLayoutFactory->create();
         return $resultLayout;
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Index.php
index 4fbd4c7ff5b..5569d131abd 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Index.php
@@ -51,7 +51,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->_initAction();
         $resultPage->getConfig()->getTitle()->prepend(__('Credit Memos'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/PrintAction.php
index 83befcc3b58..39137a698fe 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/PrintAction.php
@@ -55,7 +55,7 @@ class PrintAction extends \Magento\Backend\App\Action
     /**
      * @return ResponseInterface|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @see \Magento\Sales\Controller\Adminhtml\Order\Invoice */
         $creditmemoId = $this->getRequest()->getParam('creditmemo_id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/View.php
index 06e42091731..c70eb6e4cb4 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/View.php
@@ -37,7 +37,7 @@ class View extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultForward = $this->resultForwardFactory->create();
         if ($this->getRequest()->getParam('creditmemo_id')) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/Index.php
index baa603c9ef5..c7ea617b535 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/Index.php
@@ -12,8 +12,8 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Creditmemo\AbstractCredi
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
-        return parent::execute();
+        return parent::executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php
index c807026addf..8c32e32f478 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php
@@ -45,7 +45,7 @@ abstract class Email extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoiceId = $this->getRequest()->getParam('invoice_id');
         if (!$invoiceId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Grid.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Grid.php
index d448d97138f..a01e0ba26f6 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Grid.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Grid.php
@@ -38,7 +38,7 @@ abstract class Grid extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Index.php
index e88f6089c48..603ec3258ba 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Index.php
@@ -53,7 +53,7 @@ abstract class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->_initAction();
         $resultPage->getConfig()->getTitle()->prepend(__('Invoices'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php
index ac5c97372b7..b72dc44f2ca 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php
@@ -47,7 +47,7 @@ abstract class PrintAction extends \Magento\Backend\App\Action
     /**
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoiceId = $this->getRequest()->getParam('invoice_id');
         if ($invoiceId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/View.php
index e6e49dd0ca6..98fe68a4def 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/View.php
@@ -49,7 +49,7 @@ abstract class View extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultForward = $this->resultForwardFactory->create();
         if ($this->getRequest()->getParam('invoice_id')) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php
index badfbc2ad43..225ab0ddd01 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php
@@ -48,7 +48,7 @@ abstract class AbstractMassAction extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collection = $this->filter->getCollection($this->collectionFactory->create());
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/AddComment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/AddComment.php
index 29729f850bb..f83fb55e218 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/AddComment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/AddComment.php
@@ -16,7 +16,7 @@ class AddComment extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $order = $this->_initOrder();
         if ($order) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Address.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Address.php
index 18fdf29cf80..07a49e22fab 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Address.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Address.php
@@ -13,7 +13,7 @@ class Address extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $addressId = $this->getRequest()->getParam('address_id');
         $address = $this->_objectManager->create('Magento\Sales\Model\Order\Address')->load($addressId);
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/AddressSave.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/AddressSave.php
index e3d15fd93cd..962b526f4d5 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/AddressSave.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/AddressSave.php
@@ -13,7 +13,7 @@ class AddressSave extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $addressId = $this->getRequest()->getParam('address_id');
         $address = $this->_objectManager->create('Magento\Sales\Model\Order\Address')->load($addressId);
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Cancel.php
index 959917738db..c4740f7825a 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Cancel.php
@@ -13,7 +13,7 @@ class Cancel extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if (!$this->isValidPostRequest()) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/CommentsHistory.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/CommentsHistory.php
index 54774ec719e..fd6239b4848 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/CommentsHistory.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/CommentsHistory.php
@@ -74,7 +74,7 @@ class CommentsHistory extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $layout = $this->layoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/AddConfigured.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/AddConfigured.php
index b991a11b287..cbc62796bcd 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/AddConfigured.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/AddConfigured.php
@@ -12,7 +12,7 @@ class AddConfigured extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $errorMessage = null;
         try {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Cancel.php
index f778a07a85a..7cfd40bda0c 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Cancel.php
@@ -12,7 +12,7 @@ class Cancel extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureProductToAdd.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureProductToAdd.php
index d8c70e6d63b..07bbc3e479f 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureProductToAdd.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureProductToAdd.php
@@ -12,7 +12,7 @@ class ConfigureProductToAdd extends \Magento\Sales\Controller\Adminhtml\Order\Cr
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         // Prepare data
         $productId = (int)$this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureQuoteItems.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureQuoteItems.php
index 080d5103c08..10c3432f5c8 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureQuoteItems.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureQuoteItems.php
@@ -12,7 +12,7 @@ class ConfigureQuoteItems extends \Magento\Sales\Controller\Adminhtml\Order\Crea
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         // Prepare data
         $configureResult = new \Magento\Framework\DataObject();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Index.php
index 055b3fe11f8..2d159a99ee4 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initSession();
 
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/LoadBlock.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/LoadBlock.php
index ba4b0e833e2..e5b063280bb 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/LoadBlock.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/LoadBlock.php
@@ -48,7 +48,7 @@ class LoadBlock extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
         try {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ProcessData.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ProcessData.php
index 7d550a7d357..cc2d978556c 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ProcessData.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ProcessData.php
@@ -12,7 +12,7 @@ class ProcessData extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initSession();
         $this->_processData();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Reorder.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Reorder.php
index b64cb14c95c..8c91da215ca 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Reorder.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Reorder.php
@@ -10,7 +10,7 @@ class Reorder extends \Magento\Sales\Controller\Adminhtml\Order\Create
     /**
      * @return \Magento\Backend\Model\View\Result\Forward|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getSession()->clearStorage();
         $orderId = $this->getRequest()->getParam('order_id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Save.php
index 3f48e6cf067..087e6311cb6 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Save.php
@@ -16,7 +16,7 @@ class Save extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ShowUpdateResult.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ShowUpdateResult.php
index a3546de1fa6..9cd5b4d5245 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ShowUpdateResult.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ShowUpdateResult.php
@@ -49,7 +49,7 @@ class ShowUpdateResult extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
         $resultRaw = $this->resultRawFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Start.php
index d9fd5c50f5b..acc80e97426 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Start.php
@@ -14,7 +14,7 @@ class Start extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getSession()->clearStorage();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php
index a3cf6e6a308..d404c6a16aa 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php
@@ -72,7 +72,7 @@ class AddComment extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Raw|\Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getRequest()->setParam('creditmemo_id', $this->getRequest()->getParam('id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php
index ce4652929c7..935eca652b3 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php
@@ -40,7 +40,7 @@ class Cancel extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $creditmemoId = $this->getRequest()->getParam('creditmemo_id');
         if ($creditmemoId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php
index a9760a20fda..e1c7b8d9cc2 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php
@@ -55,7 +55,7 @@ class NewAction extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php
index b5bb3333ac3..a848506b900 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php
@@ -49,13 +49,13 @@ class PrintAction extends \Magento\Sales\Controller\Adminhtml\Creditmemo\Abstrac
      *
      * @return ResponseInterface|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
         $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo'));
         $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id'));
         $this->creditmemoLoader->load();
-        return parent::execute();
+        return parent::executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php
index 24d74e2177f..c66532f3aa5 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php
@@ -61,7 +61,7 @@ class Save extends \Magento\Backend\App\Action
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         $data = $this->getRequest()->getPost('creditmemo');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php
index 4305bef4930..a60433a2e03 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php
@@ -20,7 +20,7 @@ class Start extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /**
          * Clear old values for creditmemo qty's
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php
index 38068b10918..d1f400c84fb 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php
@@ -63,7 +63,7 @@ class UpdateQty extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Json|\Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php
index 486b041554a..fe8808c559f 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php
@@ -55,7 +55,7 @@ class View extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php
index 23bd5f1ccdb..fcc978d5ddd 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php
@@ -47,7 +47,7 @@ class Void extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemos.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemos.php
index 46571b222f3..9fb23be0820 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemos.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemos.php
@@ -12,7 +12,7 @@ class Creditmemos extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Index.php
index a40e61cfa89..f2384d10884 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Index.php
@@ -22,7 +22,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Order\Create\Index
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initSession();
 
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Start.php
index 22bcb5a6212..c216968a893 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Start.php
@@ -22,7 +22,7 @@ class Start extends \Magento\Sales\Controller\Adminhtml\Order\Create\Start
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getSession()->clearStorage();
         $orderId = $this->getRequest()->getParam('order_id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php
index ae1763485bd..95e845bce78 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php
@@ -12,7 +12,7 @@ class Email extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $order = $this->_initOrder();
         if ($order) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Grid.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Grid.php
index d16a0ea8cd1..c2017647e88 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Grid.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Grid.php
@@ -12,7 +12,7 @@ class Grid extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultLayout = $this->resultLayoutFactory->create();
         return $resultLayout;
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Hold.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Hold.php
index 881ba0c98c9..fd5f07df5e9 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Hold.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Hold.php
@@ -12,7 +12,7 @@ class Hold extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if (!$this->isValidPostRequest()) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Index.php
index 9fc67fd2754..3aac062e01b 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->_initAction();
         $resultPage->getConfig()->getTitle()->prepend(__('Orders'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php
index 2be526b2129..f4a48a14568 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php
@@ -68,7 +68,7 @@ class AddComment extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInv
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getRequest()->setParam('invoice_id', $this->getRequest()->getParam('id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php
index a717843c7e9..d79599efb94 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php
@@ -13,7 +13,7 @@ class Cancel extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoice = $this->getInvoice();
         if (!$invoice) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php
index 50ab1d8a9f2..3f8b12d19fc 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php
@@ -13,7 +13,7 @@ class Capture extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoic
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoice = $this->getInvoice();
         if (!$invoice) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php
index 306518b16ed..4c52db5ff57 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php
@@ -73,7 +73,7 @@ class NewAction extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $orderId = $this->getRequest()->getParam('order_id');
         $invoiceData = $this->getRequest()->getParam('invoice', []);
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php
index 1ffa64f0100..5a822770fe5 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php
@@ -110,7 +110,7 @@ class Save extends \Magento\Backend\App\Action
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php
index 8db329dad08..594a437c653 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php
@@ -13,7 +13,7 @@ class Start extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /**
          * Clear old values for invoice qty's
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php
index 3b30dbde11f..cfee5ad1ff2 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php
@@ -71,7 +71,7 @@ class UpdateQty extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvo
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $orderId = $this->getRequest()->getParam('order_id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php
index b6f4ae27b44..9e01376261e 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php
@@ -39,7 +39,7 @@ class View extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\V
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoice = $this->getInvoice();
         if (!$invoice) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php
index 841d517037b..005c3cdbc47 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php
@@ -13,7 +13,7 @@ class Void extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\V
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoice = $this->getInvoice();
         if (!$invoice) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoices.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoices.php
index 08354deb668..cfb8841f41c 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoices.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoices.php
@@ -12,7 +12,7 @@ class Invoices extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/ReviewPayment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/ReviewPayment.php
index 8a0d64c9bcb..a2d72953eb4 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/ReviewPayment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/ReviewPayment.php
@@ -16,7 +16,7 @@ class ReviewPayment extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         try {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Shipments.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Shipments.php
index 98683c76017..84efbffee9d 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Shipments.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Shipments.php
@@ -12,7 +12,7 @@ class Shipments extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Assign.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Assign.php
index 04e05fc348e..7a2abd381e1 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Assign.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Assign.php
@@ -36,7 +36,7 @@ class Assign extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/AssignPost.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/AssignPost.php
index a77c6dc3cc6..a103fbf4175 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/AssignPost.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/AssignPost.php
@@ -13,7 +13,7 @@ class AssignPost extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Edit.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Edit.php
index 26ee0651e36..0f5f2e720b8 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Edit.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Edit.php
@@ -36,7 +36,7 @@ class Edit extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $status = $this->_initStatus();
         if ($status) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Index.php
index 3bafba19372..65f3dd3f164 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Index.php
@@ -36,7 +36,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/NewAction.php
index f9668e83258..57e8e0b852e 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/NewAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/NewAction.php
@@ -36,7 +36,7 @@ class NewAction extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->_getSession()->getFormData(true);
         if ($data) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Save.php
index efd73d7a2b3..79efd7eede6 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         $isNew = $this->getRequest()->getParam('is_new');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Unassign.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Unassign.php
index e44b4f5e48e..e84ac0bc45b 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Unassign.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Unassign.php
@@ -11,7 +11,7 @@ class Unassign extends \Magento\Sales\Controller\Adminhtml\Order\Status
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $state = $this->getRequest()->getParam('state');
         $status = $this->_initStatus();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Transactions.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Transactions.php
index f41824df84b..9801ada2f82 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Transactions.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Transactions.php
@@ -14,7 +14,7 @@ class Transactions extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Unhold.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Unhold.php
index 6cedb1e60b9..83fc8808df3 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Unhold.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Unhold.php
@@ -12,7 +12,7 @@ class Unhold extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if (!$this->isValidPostRequest()) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/View.php
index 831538fa21d..011056eac14 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/View.php
@@ -14,7 +14,7 @@ class View extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $order = $this->_initOrder();
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/View/Giftmessage/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/View/Giftmessage/Save.php
index 554935ed551..13ced62a888 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/View/Giftmessage/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/View/Giftmessage/Save.php
@@ -11,7 +11,7 @@ class Save extends \Magento\Sales\Controller\Adminhtml\Order\View\Giftmessage
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_getGiftmessageSaveModel()->setGiftmessages(
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/VoidPayment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/VoidPayment.php
index 03b870d71ca..3a10f5684c6 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/VoidPayment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/VoidPayment.php
@@ -12,7 +12,7 @@ class VoidPayment extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $order = $this->_initOrder();
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Index.php
index 1a800be5b93..c393c2b1a1c 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Index.php
@@ -41,7 +41,7 @@ abstract class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/PrintAction.php
index 633cf071b93..6a72dfe0ebc 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/PrintAction.php
@@ -50,7 +50,7 @@ abstract class PrintAction extends \Magento\Backend\App\Action
     /**
      * @return ResponseInterface|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $shipmentId = $this->getRequest()->getParam('shipment_id');
         if ($shipmentId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/View.php
index 150f98e597b..926a46c14c4 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/View.php
@@ -41,7 +41,7 @@ abstract class View extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Fetch.php b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Fetch.php
index df3a48ca4a7..a2ac001589d 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Fetch.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Fetch.php
@@ -17,7 +17,7 @@ class Fetch extends \Magento\Sales\Controller\Adminhtml\Transactions
      *
      * @return Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $txn = $this->_initTransaction();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Grid.php b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Grid.php
index 0b4579d1810..d65bba3d004 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Grid.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Grid.php
@@ -16,7 +16,7 @@ class Grid extends \Magento\Sales\Controller\Adminhtml\Transactions
      *
      * @return Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Index.php
index 6125b244d29..2d39c91638e 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Transactions
     /**
      * @return Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/View.php
index 867d700cb41..df25ccba4a9 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/View.php
@@ -16,7 +16,7 @@ class View extends \Magento\Sales\Controller\Adminhtml\Transactions
      *
      * @return Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $txn = $this->_initTransaction();
         if (!$txn) {
diff --git a/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php b/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php
index 991ac197d78..d0e7ca016d0 100644
--- a/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php
+++ b/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php
@@ -54,7 +54,7 @@ class DownloadCustomOption extends \Magento\Framework\App\Action\Action
      *
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $quoteItemOptionId = $this->getRequest()->getParam('id');
         /** @var $option \Magento\Quote\Model\Quote\Item\Option */
diff --git a/app/code/Magento/Sales/Controller/Guest/Form.php b/app/code/Magento/Sales/Controller/Guest/Form.php
index c9f87d44e79..03f56609495 100644
--- a/app/code/Magento/Sales/Controller/Guest/Form.php
+++ b/app/code/Magento/Sales/Controller/Guest/Form.php
@@ -30,7 +30,7 @@ class Form extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_objectManager->get('Magento\Customer\Model\Session')->isLoggedIn()) {
             return $this->resultRedirectFactory->create()->setPath('customer/account/');
diff --git a/app/code/Magento/Sales/Controller/Guest/PrintCreditmemo.php b/app/code/Magento/Sales/Controller/Guest/PrintCreditmemo.php
index 5b6fd6c5a6a..cc62bfa7047 100644
--- a/app/code/Magento/Sales/Controller/Guest/PrintCreditmemo.php
+++ b/app/code/Magento/Sales/Controller/Guest/PrintCreditmemo.php
@@ -52,7 +52,7 @@ class PrintCreditmemo extends \Magento\Sales\Controller\AbstractController\Print
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Guest/PrintInvoice.php b/app/code/Magento/Sales/Controller/Guest/PrintInvoice.php
index ddd943b3246..d8c30fe056d 100644
--- a/app/code/Magento/Sales/Controller/Guest/PrintInvoice.php
+++ b/app/code/Magento/Sales/Controller/Guest/PrintInvoice.php
@@ -42,7 +42,7 @@ class PrintInvoice extends \Magento\Sales\Controller\AbstractController\PrintInv
     /**
      * {@inheritdoc}
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Guest/PrintShipment.php b/app/code/Magento/Sales/Controller/Guest/PrintShipment.php
index 8dcbfe4ef73..8a1ad2b803e 100644
--- a/app/code/Magento/Sales/Controller/Guest/PrintShipment.php
+++ b/app/code/Magento/Sales/Controller/Guest/PrintShipment.php
@@ -42,7 +42,7 @@ class PrintShipment extends \Magento\Sales\Controller\AbstractController\PrintSh
     /**
      * {@inheritdoc}
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Guest/View.php b/app/code/Magento/Sales/Controller/Guest/View.php
index 93de3cab2db..500d1d30d08 100644
--- a/app/code/Magento/Sales/Controller/Guest/View.php
+++ b/app/code/Magento/Sales/Controller/Guest/View.php
@@ -40,7 +40,7 @@ class View extends Action\Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->guestHelper->loadValidOrder($this->getRequest());
         if ($result instanceof ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Order/History.php b/app/code/Magento/Sales/Controller/Order/History.php
index 5a87a8b9442..8dd70bfbe33 100644
--- a/app/code/Magento/Sales/Controller/Order/History.php
+++ b/app/code/Magento/Sales/Controller/Order/History.php
@@ -34,7 +34,7 @@ class History extends \Magento\Framework\App\Action\Action implements OrderInter
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php
index 6a78aef9bcf..b35968afc83 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php
@@ -163,7 +163,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->creditmemoEmail->execute()
+            $this->creditmemoEmail->executeInternal()
         );
         $this->assertEquals($this->response, $this->creditmemoEmail->getResponse());
     }
@@ -175,7 +175,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
             ->with('creditmemo_id')
             ->will($this->returnValue(null));
 
-        $this->assertNull($this->creditmemoEmail->execute());
+        $this->assertNull($this->creditmemoEmail->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Invoice/AbstractInvoice/EmailTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Invoice/AbstractInvoice/EmailTest.php
index 4e5bd8e7472..0566645df83 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Invoice/AbstractInvoice/EmailTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Invoice/AbstractInvoice/EmailTest.php
@@ -206,7 +206,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
             ->method('setPath')
             ->with('sales/invoice/view', ['order_id' => $orderId, 'invoice_id' => $invoiceId])
             ->willReturnSelf();
-        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Redirect', $this->invoiceEmail->execute());
+        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Redirect', $this->invoiceEmail->executeInternal());
     }
 
     public function testEmailNoInvoiceId()
@@ -223,7 +223,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->invoiceEmail->execute());
+        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->invoiceEmail->executeInternal());
     }
 
     public function testEmailNoInvoice()
@@ -253,6 +253,6 @@ class EmailTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->invoiceEmail->execute());
+        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->invoiceEmail->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CancelTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CancelTest.php
index 186a40730f9..fe34c10eb4f 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CancelTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CancelTest.php
@@ -137,6 +137,6 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Create/ProcessDataTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Create/ProcessDataTest.php
index 805edbea1ea..c0763bf80d8 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Create/ProcessDataTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Create/ProcessDataTest.php
@@ -233,7 +233,7 @@ class ProcessDataTest extends \PHPUnit_Framework_TestCase
             ->method('forward')
             ->with('index')
             ->willReturnSelf();
-        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->processData->execute());
+        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->processData->executeInternal());
     }
 
     public function isApplyDiscountDataProvider()
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php
index b96f2254501..f7f6a0db9dc 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php
@@ -173,7 +173,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -201,7 +201,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -230,7 +230,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -294,7 +294,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Raw',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/CancelTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/CancelTest.php
index 223b5a9753b..5b8749215aa 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/CancelTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/CancelTest.php
@@ -200,7 +200,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -235,7 +235,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -258,7 +258,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -293,7 +293,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php
index 68726f2894c..99abeba2695 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php
@@ -238,7 +238,7 @@ class NewActionTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Page',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php
index 7f2ae31af7e..753ed02380d 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php
@@ -152,7 +152,7 @@ class PrintActionTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::executeInternal
      */
     public function testExecute()
     {
@@ -201,12 +201,12 @@ class PrintActionTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\App\ResponseInterface',
-            $this->printAction->execute()
+            $this->printAction->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::executeInternal
      */
     public function testExecuteNoCreditmemoId()
     {
@@ -222,7 +222,7 @@ class PrintActionTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->printAction->execute()
+            $this->printAction->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php
index 9e02c98b1c3..30534fcacfd 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php
@@ -221,7 +221,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -252,7 +252,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -300,7 +300,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Raw',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/ViewTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/ViewTest.php
index fb87393407d..1b455624725 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/ViewTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/ViewTest.php
@@ -223,7 +223,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -269,7 +269,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Page',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidTest.php
index 6d2d02861be..efd4d5b4355 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidTest.php
@@ -207,7 +207,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -243,7 +243,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -279,7 +279,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -333,7 +333,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/EmailTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/EmailTest.php
index 73396196f97..578f64454d5 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/EmailTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/EmailTest.php
@@ -196,7 +196,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->orderEmail->execute()
+            $this->orderEmail->executeInternal()
         );
         $this->assertEquals($this->response, $this->orderEmail->getResponse());
     }
@@ -228,7 +228,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->orderEmail->execute()
+            $this->orderEmail->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/HoldTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/HoldTest.php
index 18dd6a8c8b3..2ddc7d1d212 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/HoldTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/HoldTest.php
@@ -137,6 +137,6 @@ class HoldTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/AddCommentTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/AddCommentTest.php
index f8b5c3f44b1..a72cf068a00 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/AddCommentTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/AddCommentTest.php
@@ -265,7 +265,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
         $resultRaw->expects($this->once())->method('setContents')->with($response);
 
         $this->resultRawFactoryMock->expects($this->once())->method('create')->will($this->returnValue($resultRaw));
-        $this->assertSame($resultRaw, $this->controller->execute());
+        $this->assertSame($resultRaw, $this->controller->executeInternal());
     }
 
     /**
@@ -288,7 +288,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($this->resultJsonMock));
 
         $this->resultJsonMock->expects($this->once())->method('setData')->with($response);
-        $this->assertSame($this->resultJsonMock, $this->controller->execute());
+        $this->assertSame($this->resultJsonMock, $this->controller->executeInternal());
     }
 
     /**
@@ -310,6 +310,6 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($this->resultJsonMock));
 
         $this->resultJsonMock->expects($this->once())->method('setData')->with($response);
-        $this->assertSame($this->resultJsonMock, $this->controller->execute());
+        $this->assertSame($this->resultJsonMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CancelTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CancelTest.php
index 689d7efa270..9190aefc128 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CancelTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CancelTest.php
@@ -226,7 +226,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -263,7 +263,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultForward));
 
-        $this->assertSame($resultForward, $this->controller->execute());
+        $this->assertSame($resultForward, $this->controller->executeInternal());
     }
 
     /**
@@ -319,7 +319,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -375,6 +375,6 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CaptureTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CaptureTest.php
index c0e86d79f34..e1e759a8cdd 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CaptureTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CaptureTest.php
@@ -244,7 +244,7 @@ class CaptureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -280,7 +280,7 @@ class CaptureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultForward));
 
-        $this->assertSame($resultForward, $this->controller->execute());
+        $this->assertSame($resultForward, $this->controller->executeInternal());
     }
 
     /**
@@ -339,7 +339,7 @@ class CaptureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -399,6 +399,6 @@ class CaptureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/NewActionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/NewActionTest.php
index 5beb118dda9..7ddb6084b1d 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/NewActionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/NewActionTest.php
@@ -285,7 +285,7 @@ class NewActionTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($this->resultPageMock));
 
-        $this->assertSame($this->resultPageMock, $this->controller->execute());
+        $this->assertSame($this->resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteNoOrder()
@@ -329,6 +329,6 @@ class NewActionTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/PrintActionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/PrintActionTest.php
index 223e5e4311e..4ac90b4c26b 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/PrintActionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/PrintActionTest.php
@@ -147,6 +147,6 @@ class PrintActionTest extends \PHPUnit_Framework_TestCase
             ->with('Magento\Framework\Stdlib\DateTime\DateTime')
             ->willReturn($dateTimeMock);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/SaveTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/SaveTest.php
index 619b6b0bbba..9d21a5e3027 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/SaveTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/SaveTest.php
@@ -128,6 +128,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('sales/order/index')
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->controller->execute());
+        $this->assertEquals($redirectMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php
index 2be9749e0c7..b3356c971a9 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php
@@ -257,7 +257,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
 
         $this->resultRawFactoryMock->expects($this->once())->method('create')->will($this->returnValue($resultRaw));
 
-        $this->assertSame($resultRaw, $this->controller->execute());
+        $this->assertSame($resultRaw, $this->controller->executeInternal());
     }
 
     /**
@@ -300,7 +300,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultJsonMock));
 
-        $this->assertSame($resultJsonMock, $this->controller->execute());
+        $this->assertSame($resultJsonMock, $this->controller->executeInternal());
     }
 
     /**
@@ -343,6 +343,6 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultJsonMock));
 
-        $this->assertSame($resultJsonMock, $this->controller->execute());
+        $this->assertSame($resultJsonMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/ViewTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/ViewTest.php
index edb47e37f44..af2d51618d9 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/ViewTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/ViewTest.php
@@ -244,7 +244,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($this->resultPageMock));
 
-        $this->assertSame($this->resultPageMock, $this->controller->execute());
+        $this->assertSame($this->resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteNoInvoice()
@@ -278,6 +278,6 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultForward));
 
-        $this->assertSame($resultForward, $this->controller->execute());
+        $this->assertSame($resultForward, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidTest.php
index c2bfc012aa6..a4b63898457 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidTest.php
@@ -255,7 +255,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -297,7 +297,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultForward));
 
-        $this->assertSame($resultForward, $this->controller->execute());
+        $this->assertSame($resultForward, $this->controller->executeInternal());
     }
 
     /**
@@ -354,6 +354,6 @@ class VoidTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassCancelTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassCancelTest.php
index 40a5b450f04..aa9ed541fad 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassCancelTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassCancelTest.php
@@ -215,7 +215,7 @@ class MassCancelTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     /**
@@ -259,7 +259,7 @@ class MassCancelTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     /**
@@ -287,6 +287,6 @@ class MassCancelTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Can not cancel');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassHoldTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassHoldTest.php
index 5c4d7870685..440d0dda48f 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassHoldTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassHoldTest.php
@@ -217,7 +217,7 @@ class MassHoldTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteNoOrdersPutOnHold()
@@ -257,6 +257,6 @@ class MassHoldTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassUnholdTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassUnholdTest.php
index 127ccc343ae..781834d3a1b 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassUnholdTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassUnholdTest.php
@@ -212,7 +212,7 @@ class MassUnholdTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteNoReleasedOrderFromHold()
@@ -251,6 +251,6 @@ class MassUnholdTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ReviewPaymentTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ReviewPaymentTest.php
index 866c083c049..2fd32794370 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ReviewPaymentTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ReviewPaymentTest.php
@@ -163,7 +163,7 @@ class ReviewPaymentTest extends \PHPUnit_Framework_TestCase
             ->with('sales/order/view')
             ->willReturnSelf();
 
-        $result = $this->reviewPayment->execute();
+        $result = $this->reviewPayment->executeInternal();
         $this->assertEquals($this->resultRedirectMock, $result);
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/UnholdTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/UnholdTest.php
index 1dbf1baafa6..e25884e837a 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/UnholdTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/UnholdTest.php
@@ -137,6 +137,6 @@ class UnholdTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ViewTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ViewTest.php
index 3037e323da0..fdbd6bf306e 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ViewTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ViewTest.php
@@ -167,7 +167,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::executeInternal
      */
     public function testExecute()
     {
@@ -197,12 +197,12 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Page',
-            $this->viewAction->execute()
+            $this->viewAction->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::executeInternal
      */
     public function testExecuteNoOrder()
     {
@@ -224,12 +224,12 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->viewAction->execute()
+            $this->viewAction->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::executeInternal
      */
     public function testGlobalException()
     {
@@ -253,7 +253,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->viewAction->execute()
+            $this->viewAction->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Download/DownloadCustomOptionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Download/DownloadCustomOptionTest.php
index 629cb0ce5eb..0299f484176 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Download/DownloadCustomOptionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Download/DownloadCustomOptionTest.php
@@ -209,7 +209,7 @@ class DownloadCustomOptionTest extends \PHPUnit_Framework_TestCase
 
             $this->objectMock->expects($this->once())->method('endExecute')->willReturn(true);
         }
-        $this->objectMock->execute();
+        $this->objectMock->executeInternal();
     }
 
     public function executeDataProvider()
@@ -329,6 +329,6 @@ class DownloadCustomOptionTest extends \PHPUnit_Framework_TestCase
 
         $this->resultForwardMock->expects($this->once())->method('forward')->with('noroute')->willReturn(true);
 
-        $this->objectMock->execute();
+        $this->objectMock->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Guest/ViewTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Guest/ViewTest.php
index 78aa59f9eed..dbe89bc0533 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Guest/ViewTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Guest/ViewTest.php
@@ -103,7 +103,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('getBreadcrumbs')
             ->with($this->resultPageMock);
 
-        $this->assertSame($this->resultPageMock, $this->viewController->execute());
+        $this->assertSame($this->resultPageMock, $this->viewController->executeInternal());
     }
 
     /**
@@ -116,6 +116,6 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->with($this->requestMock)
             ->willReturn($this->resultRedirectMock);
 
-        $this->assertSame($this->resultRedirectMock, $this->viewController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->viewController->executeInternal());
     }
 }
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php
index 9e694ab9ea0..28d6a8eb392 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php
@@ -13,7 +13,7 @@ class ApplyRules extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php
index f88d58097f2..0a7563e34a9 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php
@@ -13,7 +13,7 @@ class Chooser extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $uniqId = $this->getRequest()->getParam('uniq_id');
         $chooserBlock = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php
index 565e1d7d8ca..3ce01abaf9b 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php
@@ -13,7 +13,7 @@ class CouponsGrid extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initRule();
         $this->_view->loadLayout();
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php
index 623dedb6ae1..d938f67a30f 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php
@@ -13,7 +13,7 @@ class CouponsMassDelete extends \Magento\SalesRule\Controller\Adminhtml\Promo\Qu
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initRule();
         $rule = $this->_coreRegistry->registry('current_promo_quote_rule');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php
index c88dc7494f8..a8e5ca176cd 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         if ($id) {
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php
index 6138a59b95a..636e0d548c3 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php
@@ -14,7 +14,7 @@ class Edit extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      * @return void
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $model = $this->_objectManager->create('Magento\SalesRule\Model\Rule');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsCsv.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsCsv.php
index bcbfee10495..3d06d95e630 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsCsv.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsCsv.php
@@ -15,7 +15,7 @@ class ExportCouponsCsv extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quo
      *
      * @return \Magento\Framework\App\ResponseInterface|null
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initRule();
         $rule = $this->_coreRegistry->registry('current_promo_quote_rule');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsXml.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsXml.php
index 22172e206f5..717dc7246c6 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsXml.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsXml.php
@@ -15,7 +15,7 @@ class ExportCouponsXml extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quo
      *
      * @return \Magento\Framework\App\ResponseInterface|null
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initRule();
         $rule = $this->_coreRegistry->registry('current_promo_quote_rule');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php
index 437f2573bc2..0bf21e978cf 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php
@@ -13,7 +13,7 @@ class Generate extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->isAjax()) {
             $this->_forward('noroute');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php
index b27554f7fc6..8921d7c461b 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_addBreadcrumb(__('Catalog'), __('Catalog'));
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Cart Price Rules'));
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php
index dc8b49e02e2..324d2d07b6b 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewActionHtml.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewActionHtml.php
index cf383bfed2d..422ee2a38a6 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewActionHtml.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewActionHtml.php
@@ -13,7 +13,7 @@ class NewActionHtml extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php
index fb0c502a37e..48d05829f32 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php
@@ -13,7 +13,7 @@ class NewConditionHtml extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quo
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php
index 9434b07ed0b..c0d318d3453 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php
@@ -15,7 +15,7 @@ class Save extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getPostValue()) {
             try {
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Delete.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Delete.php
index 78a24106294..e3dc4e5a7a8 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Delete.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Delete.php
@@ -13,7 +13,7 @@ class Delete extends TermController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         /** @var \Magento\Backend\Model\View\Result\Redirect $redirectResult */
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Edit.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Edit.php
index ad6502e18ad..df5c08a4693 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Edit.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Edit.php
@@ -35,7 +35,7 @@ class Edit extends TermController
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $model = $this->_objectManager->create('Magento\Search\Model\Query');
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchCsv.php b/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchCsv.php
index da777ec44e4..34fe89f51be 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchCsv.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchCsv.php
@@ -35,7 +35,7 @@ class ExportSearchCsv extends TermController
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
         $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchExcel.php b/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchExcel.php
index b287a1f6ea8..2a89f2fb339 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchExcel.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchExcel.php
@@ -35,7 +35,7 @@ class ExportSearchExcel extends TermController
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
         $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Index.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Index.php
index 6bce708278a..54e3a4b11c2 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Index.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Index.php
@@ -12,7 +12,7 @@ class Index extends TermController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->createPage();
         $resultPage->getConfig()->getTitle()->prepend(__('Search Terms'));
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/MassDelete.php b/app/code/Magento/Search/Controller/Adminhtml/Term/MassDelete.php
index 97586e38d64..a10b869a24c 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/MassDelete.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/MassDelete.php
@@ -13,7 +13,7 @@ class MassDelete extends TermController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $searchIds = $this->getRequest()->getParam('search');
         if (!is_array($searchIds)) {
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/NewAction.php b/app/code/Magento/Search/Controller/Adminhtml/Term/NewAction.php
index 35f6d63e637..f049f45d9a0 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/NewAction.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends TermController
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Report.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Report.php
index 1c512961e58..f0e9c4dc098 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Report.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Report.php
@@ -15,7 +15,7 @@ class Report extends ReportsIndexController
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_eventManager->dispatch('on_view_report', ['report' => 'search']);
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Save.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Save.php
index 3a31a0555a7..e50d11a84de 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Save.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Save.php
@@ -36,7 +36,7 @@ class Save extends TermController
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         if ($this->getRequest()->isPost() && $data) {
diff --git a/app/code/Magento/Search/Controller/Ajax/Suggest.php b/app/code/Magento/Search/Controller/Ajax/Suggest.php
index f39c7bf708b..ca49bc1ccee 100644
--- a/app/code/Magento/Search/Controller/Ajax/Suggest.php
+++ b/app/code/Magento/Search/Controller/Ajax/Suggest.php
@@ -32,7 +32,7 @@ class Suggest extends Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->getParam('q', false)) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Search/Controller/Term/Popular.php b/app/code/Magento/Search/Controller/Term/Popular.php
index 687e17f62ab..bcad10e4a1e 100644
--- a/app/code/Magento/Search/Controller/Term/Popular.php
+++ b/app/code/Magento/Search/Controller/Term/Popular.php
@@ -35,7 +35,7 @@ class Popular extends Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $searchTerms = $this->scopeConfig->getValue(
             'catalog/seo/search_terms',
@@ -45,13 +45,13 @@ class Popular extends Action
             $this->_redirect('noroute');
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Ajax/SuggestTest.php b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Ajax/SuggestTest.php
index c8493a32a6b..1b097fb97a8 100644
--- a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Ajax/SuggestTest.php
+++ b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Ajax/SuggestTest.php
@@ -126,7 +126,7 @@ class SuggestTest extends \PHPUnit_Framework_TestCase
             ->method('setData')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJsonMock, $this->controller->execute());
+        $this->assertSame($this->resultJsonMock, $this->controller->executeInternal());
     }
 
     public function testExecuteEmptyQuery()
@@ -146,6 +146,6 @@ class SuggestTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->controller->execute());
+        $this->assertSame($this->resultRedirectMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/MassDeleteTest.php b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/MassDeleteTest.php
index fd0e5f83a25..8642f19bb47 100644
--- a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/MassDeleteTest.php
+++ b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/MassDeleteTest.php
@@ -114,7 +114,7 @@ class MassDeleteTest extends \PHPUnit_Framework_TestCase
             ->with('search/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->controller->execute());
+        $this->assertSame($this->resultRedirectMock, $this->controller->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/SaveTest.php b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/SaveTest.php
index 5197e7d83e4..3d17abf4677 100644
--- a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/SaveTest.php
+++ b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/SaveTest.php
@@ -120,7 +120,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->request->expects($this->at(0))->method('getPostValue')->willReturn($data);
         $this->request->expects($this->at(1))->method('isPost')->willReturn($isPost);
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
@@ -146,7 +146,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addSuccess');
 
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteLoadQueryQueryIdQueryText()
@@ -164,7 +164,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addSuccess');
 
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteLoadQueryQueryIdQueryText2()
@@ -183,7 +183,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addSuccess');
 
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteLoadQueryQueryIdQueryTextException()
@@ -202,7 +202,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addError');
         $this->session->expects($this->once())->method('setPageData');
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteException()
@@ -219,7 +219,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addException');
         $this->session->expects($this->once())->method('setPageData');
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/SendFriend/Controller/Product.php b/app/code/Magento/SendFriend/Controller/Product.php
index 73a227ce32c..0532108e6e7 100644
--- a/app/code/Magento/SendFriend/Controller/Product.php
+++ b/app/code/Magento/SendFriend/Controller/Product.php
@@ -65,7 +65,7 @@ abstract class Product extends \Magento\Framework\App\Action\Action
      * @return \Magento\Framework\App\ResponseInterface
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         /* @var $helper \Magento\SendFriend\Helper\Data */
         $helper = $this->_objectManager->get('Magento\SendFriend\Helper\Data');
@@ -84,7 +84,7 @@ abstract class Product extends \Magento\Framework\App\Action\Action
                     ->setSendfriendFormData($request->getPostValue());
             }
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/SendFriend/Controller/Product/Send.php b/app/code/Magento/SendFriend/Controller/Product/Send.php
index c6d7f3b05dd..99e0f911710 100644
--- a/app/code/Magento/SendFriend/Controller/Product/Send.php
+++ b/app/code/Magento/SendFriend/Controller/Product/Send.php
@@ -45,7 +45,7 @@ class Send extends \Magento\SendFriend\Controller\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $product = $this->_initProduct();
 
diff --git a/app/code/Magento/SendFriend/Controller/Product/Sendmail.php b/app/code/Magento/SendFriend/Controller/Product/Sendmail.php
index 048ce1060d8..aa34eefa5b2 100644
--- a/app/code/Magento/SendFriend/Controller/Product/Sendmail.php
+++ b/app/code/Magento/SendFriend/Controller/Product/Sendmail.php
@@ -50,7 +50,7 @@ class Sendmail extends \Magento\SendFriend\Controller\Product
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendTest.php b/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendTest.php
index 090dc47f19b..bc981416c84 100644
--- a/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendTest.php
+++ b/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendTest.php
@@ -175,7 +175,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with($formData)
             ->willReturnSelf();
 
-        $this->assertEquals($pageMock, $this->model->execute());
+        $this->assertEquals($pageMock, $this->model->executeInternal());
     }
 
     /**
@@ -254,7 +254,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('sendfriend.send')
             ->willReturn(false);
 
-        $this->assertEquals($pageMock, $this->model->execute());
+        $this->assertEquals($pageMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithNoticeAndNoData()
@@ -320,7 +320,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
         $pageMock->expects($this->never())
             ->method('getLayout');
 
-        $this->assertEquals($pageMock, $this->model->execute());
+        $this->assertEquals($pageMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithoutParam()
@@ -345,7 +345,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithoutProduct()
@@ -377,7 +377,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithNonVisibleProduct()
@@ -418,6 +418,6 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendmailTest.php b/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendmailTest.php
index 807cb8adf04..f6df2bc39b0 100644
--- a/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendmailTest.php
+++ b/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendmailTest.php
@@ -234,7 +234,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($productUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -361,7 +361,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -488,7 +488,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -615,7 +615,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -743,7 +743,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -799,7 +799,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 
     /**
@@ -873,7 +873,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithoutFormKey()
@@ -901,6 +901,6 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with('sendfriend/product/send', ['_current' => true])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php
index fb24a2a3258..d012a1d1ece 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php
@@ -58,7 +58,7 @@ class AddComment extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getRequest()->setParam('shipment_id', $this->getRequest()->getParam('id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php
index ea5ab1d9677..8a47ed1ddae 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php
@@ -41,7 +41,7 @@ class AddTrack extends \Magento\Backend\App\Action
      * @return void
      * @throws \Magento\Framework\Exception\LocalizedException
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $carrier = $this->getRequest()->getPost('carrier');
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php
index facbc5192d7..faac42d270f 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php
@@ -48,7 +48,7 @@ class CreateLabel extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         try {
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php
index 6d3bb9a49ed..e0ea65f65fd 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php
@@ -48,7 +48,7 @@ class Email extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php
index 26b2df96cb6..3c4dc9f49ee 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php
@@ -41,7 +41,7 @@ class GetShippingItemsGrid extends \Magento\Backend\App\Action
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php
index a0917b813d1..06e97644dfd 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php
@@ -40,7 +40,7 @@ class NewAction extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php
index 8cf58bc151f..fb3889761fa 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php
@@ -58,7 +58,7 @@ class PrintLabel extends \Magento\Backend\App\Action
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php
index d931e1e1006..db6903544d0 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php
@@ -50,7 +50,7 @@ class PrintPackage extends \Magento\Backend\App\Action
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php
index 4b85739acc0..7ef4f99eef2 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php
@@ -40,7 +40,7 @@ class RemoveTrack extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $trackId = $this->getRequest()->getParam('track_id');
         /** @var \Magento\Sales\Model\Order\Shipment\Track $track */
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php
index 0704ac04041..3e5e9a3ac2d 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php
@@ -81,7 +81,7 @@ class Save extends \Magento\Backend\App\Action
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Start.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Start.php
index d4c6015870b..e5511173323 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Start.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Start.php
@@ -21,7 +21,7 @@ class Start extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /**
          * Clear old values for shipment qty's
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php
index 980486e3bc2..ebd8a6b111e 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php
@@ -56,7 +56,7 @@ class View extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id'));
diff --git a/app/code/Magento/Shipping/Controller/Tracking/Popup.php b/app/code/Magento/Shipping/Controller/Tracking/Popup.php
index 9ae7590bdb4..d3fb5dbe349 100644
--- a/app/code/Magento/Shipping/Controller/Tracking/Popup.php
+++ b/app/code/Magento/Shipping/Controller/Tracking/Popup.php
@@ -52,7 +52,7 @@ class Popup extends \Magento\Framework\App\Action\Action
      * @return void
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         $shippingInfoModel = $this->_shippingInfoFactory->create()->loadByHash($this->getRequest()->getParam('hash'));
         $this->_coreRegistry->register('current_shipping_info', $shippingInfoModel);
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddCommentTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddCommentTest.php
index 6a60d69bdfe..9ab7b4844e4 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddCommentTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddCommentTest.php
@@ -223,7 +223,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($resultLayoutMock));
         $this->responseMock->expects($this->once())->method('setBody')->with($result);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -261,7 +261,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
             ->willThrowException(new \Magento\Framework\Exception\LocalizedException(__('message')));
         $this->exceptionResponse();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -278,7 +278,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('getPost')->with('comment')->will($this->returnValue([]));
         $this->exceptionResponse();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -322,6 +322,6 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
         $this->shipmentMock->expects($this->once())->method('save')->will($this->throwException(new \Exception()));
         $this->exceptionResponse();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddTrackTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddTrackTest.php
index 1abeb9d3dac..d078e532031 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddTrackTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddTrackTest.php
@@ -254,6 +254,6 @@ class AddTrackTest extends \PHPUnit_Framework_TestCase
         $this->response->expects($this->once())
             ->method('setBody')
             ->with($html);
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php
index d96ba639824..a8cc7c8a3ac 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php
@@ -179,7 +179,7 @@ class CreateLabelTest extends \PHPUnit_Framework_TestCase
         $this->messageManagerMock->expects($this->once())->method('addSuccess');
         $this->responseMock->expects($this->once())->method('representJson');
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -192,7 +192,7 @@ class CreateLabelTest extends \PHPUnit_Framework_TestCase
             ->willThrowException(new \Magento\Framework\Exception\LocalizedException(__('message')));
         $this->responseMock->expects($this->once())->method('representJson');
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -217,7 +217,7 @@ class CreateLabelTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($logerMock));
         $this->responseMock->expects($this->once())->method('representJson');
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -236,6 +236,6 @@ class CreateLabelTest extends \PHPUnit_Framework_TestCase
             );
         $this->responseMock->expects($this->once())->method('representJson');
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/EmailTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/EmailTest.php
index edcdbd764a1..793763607ab 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/EmailTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/EmailTest.php
@@ -235,7 +235,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
         $arguments = ['shipment_id' => $shipmentId];
         $this->prepareRedirect($path, $arguments, 0);
 
-        $this->shipmentEmail->execute();
+        $this->shipmentEmail->executeInternal();
         $this->assertEquals($this->response, $this->shipmentEmail->getResponse());
     }
 
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php
index c62c9109a26..71239d0a1be 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php
@@ -152,6 +152,6 @@ class GetShippingItemsGridTest extends \PHPUnit_Framework_TestCase
             ->method('toHtml')
             ->will($this->returnValue($result));
 
-        $this->assertNotEmpty('result-html', $this->controller->execute());
+        $this->assertNotEmpty('result-html', $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/NewActionTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/NewActionTest.php
index df9cc23823b..6179fb4eac6 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/NewActionTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/NewActionTest.php
@@ -282,6 +282,6 @@ class NewActionTest extends \PHPUnit_Framework_TestCase
             ->with('menu')
             ->will($this->returnValue($menuBlock));
 
-        $this->assertNull($this->newAction->execute());
+        $this->assertNull($this->newAction->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php
index 6548503fbee..1effd8c699b 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php
@@ -250,7 +250,7 @@ class PrintLabelTest extends \PHPUnit_Framework_TestCase
             ->method('getShippingLabel')
             ->will($this->returnValue($labelContent));
 
-        $this->assertEquals($this->fileCreate(), $this->controller->execute());
+        $this->assertEquals($this->fileCreate(), $this->controller->executeInternal());
     }
 
     /**
@@ -291,7 +291,7 @@ class PrintLabelTest extends \PHPUnit_Framework_TestCase
             ->method('getObject')
             ->will($this->returnSelf());
 
-        $this->assertEquals($this->fileCreate(), $this->controller->execute());
+        $this->assertEquals($this->fileCreate(), $this->controller->executeInternal());
     }
 
     /**
@@ -337,7 +337,7 @@ class PrintLabelTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue(1));
         $this->redirectSection();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -351,6 +351,6 @@ class PrintLabelTest extends \PHPUnit_Framework_TestCase
         $this->messageManagerMock->expects($this->once())->method('addError')->will($this->returnSelf());
         $this->redirectSection();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php
index 4c6b9608d3b..05487808f92 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php
@@ -193,7 +193,7 @@ class PrintPackageTest extends \PHPUnit_Framework_TestCase
                 'application/pdf'
             )->will($this->returnValue('result-pdf-content'));
 
-        $this->assertEquals('result-pdf-content', $this->controller->execute());
+        $this->assertEquals('result-pdf-content', $this->controller->executeInternal());
     }
 
     /**
@@ -215,6 +215,6 @@ class PrintPackageTest extends \PHPUnit_Framework_TestCase
             ->method('setIsUrlNotice')
             ->with(true);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php
index bb0b1d21202..37d4634c0da 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php
@@ -255,7 +255,7 @@ class RemoveTrackTest extends \PHPUnit_Framework_TestCase
             ->method('setBody')
             ->with($response);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -275,7 +275,7 @@ class RemoveTrackTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($trackId));
         $this->representJson($errors);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -294,7 +294,7 @@ class RemoveTrackTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue(null));
         $this->representJson($errors);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -313,6 +313,6 @@ class RemoveTrackTest extends \PHPUnit_Framework_TestCase
             ->will($this->throwException(new \Exception()));
         $this->representJson($errors);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/SaveTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/SaveTest.php
index fad9df01c37..954714bbd9a 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/SaveTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/SaveTest.php
@@ -249,7 +249,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             $this->shipmentLoader->expects($this->never())
                 ->method('load');
 
-            $this->assertEquals($this->resultRedirect, $this->saveAction->execute());
+            $this->assertEquals($this->resultRedirect, $this->saveAction->executeInternal());
         } else {
             $shipmentId = 1000012;
             $orderId = 10003;
@@ -345,7 +345,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
                 ->will($this->returnValue($orderId));
             $this->prepareRedirect($path, $arguments);
 
-            $this->saveAction->execute();
+            $this->saveAction->executeInternal();
             $this->assertEquals($this->response, $this->saveAction->getResponse());
         }
     }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/ViewTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/ViewTest.php
index 1dbf6369422..0f6aad7610e 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/ViewTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/ViewTest.php
@@ -187,7 +187,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             )
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultPageMock, $this->controller->execute());
+        $this->assertEquals($this->resultPageMock, $this->controller->executeInternal());
     }
 
     /**
@@ -209,7 +209,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultForwardMock, $this->controller->execute());
+        $this->assertEquals($this->resultForwardMock, $this->controller->executeInternal());
     }
 
     protected function loadShipment($orderId, $shipmentId, $shipment, $tracking, $comeFrom, $returnShipment)
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Delete.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Delete.php
index 70f12719c16..bdc70c0f8f8 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Delete.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Delete.php
@@ -16,7 +16,7 @@ class Delete extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Filesystem\Directory\Write $directory */
         $directory = $this->_objectManager->get(
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Edit.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Edit.php
index 47cf66a319c..87441bc1585 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Edit.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Edit.php
@@ -31,7 +31,7 @@ class Edit extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      * @return void
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         // 1. Get ID and create model
         $id = $this->getRequest()->getParam('sitemap_id');
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Generate.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Generate.php
index b5a7e40d5a0..c162942061d 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Generate.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Generate.php
@@ -14,7 +14,7 @@ class Generate extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // init and load sitemap model
         $id = $this->getRequest()->getParam('sitemap_id');
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Index.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Index.php
index 83aeca5ef8f..11b84772e32 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Index.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Index.php
@@ -15,7 +15,7 @@ class Index extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Site Map'));
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/NewAction.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/NewAction.php
index abfba8929a0..309c00a840d 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/NewAction.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/NewAction.php
@@ -14,7 +14,7 @@ class NewAction extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // the same form is used to create and edit
         $this->_forward('edit');
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Save.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Save.php
index 2f28cf98183..dd96a60dfce 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Save.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Save.php
@@ -133,7 +133,7 @@ class Save extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // check if data sent
         $data = $this->getRequest()->getPostValue();
diff --git a/app/code/Magento/Sitemap/Test/Unit/Controller/Adminhtml/Sitemap/SaveTest.php b/app/code/Magento/Sitemap/Test/Unit/Controller/Adminhtml/Sitemap/SaveTest.php
index e067bf20598..c59e5ff6631 100644
--- a/app/code/Magento/Sitemap/Test/Unit/Controller/Adminhtml/Sitemap/SaveTest.php
+++ b/app/code/Magento/Sitemap/Test/Unit/Controller/Adminhtml/Sitemap/SaveTest.php
@@ -100,7 +100,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('adminhtml/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->saveController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->saveController->executeInternal());
     }
 
     public function testTryToSaveInvalidDataShouldFailWithErrors()
@@ -166,6 +166,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('adminhtml/*/edit', ['sitemap_id' => $siteMapId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->saveController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->saveController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Store/Controller/Store/SwitchAction.php b/app/code/Magento/Store/Controller/Store/SwitchAction.php
index b527b7ad4fe..052a8fc25fb 100644
--- a/app/code/Magento/Store/Controller/Store/SwitchAction.php
+++ b/app/code/Magento/Store/Controller/Store/SwitchAction.php
@@ -68,7 +68,7 @@ class SwitchAction extends Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeCode = $this->_request->getParam(
             StoreResolver::PARAM_NAME,
diff --git a/app/code/Magento/Swagger/Controller/Index/Index.php b/app/code/Magento/Swagger/Controller/Index/Index.php
index b898836ccf3..64cd2888984 100644
--- a/app/code/Magento/Swagger/Controller/Index/Index.php
+++ b/app/code/Magento/Swagger/Controller/Index/Index.php
@@ -35,7 +35,7 @@ class Index extends \Magento\Framework\App\Action\Action
     /**
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->pageConfig->addBodyClass('swagger-section');
         return $this->pageFactory->create();
diff --git a/app/code/Magento/Swatches/Controller/Adminhtml/Iframe/Show.php b/app/code/Magento/Swatches/Controller/Adminhtml/Iframe/Show.php
index 180a777d166..362e2c7a6c5 100644
--- a/app/code/Magento/Swatches/Controller/Adminhtml/Iframe/Show.php
+++ b/app/code/Magento/Swatches/Controller/Adminhtml/Iframe/Show.php
@@ -68,7 +68,7 @@ class Show extends \Magento\Backend\App\Action
      *
      * @return string
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $uploader = $this->uploaderFactory->create(['fileId' => 'datafile']);
diff --git a/app/code/Magento/Swatches/Controller/Ajax/Media.php b/app/code/Magento/Swatches/Controller/Ajax/Media.php
index 8827f6f4652..a487115bbc0 100644
--- a/app/code/Magento/Swatches/Controller/Ajax/Media.php
+++ b/app/code/Magento/Swatches/Controller/Ajax/Media.php
@@ -50,7 +50,7 @@ class Media extends \Magento\Framework\App\Action\Action
      *
      * @return string
      */
-    public function execute()
+    public function executeInternal()
     {
         $productMedia = [];
         if ($productId = (int)$this->getRequest()->getParam('product_id')) {
diff --git a/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Iframe/ShowTest.php b/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Iframe/ShowTest.php
index 18ec75cb966..72099cb930f 100644
--- a/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Iframe/ShowTest.php
+++ b/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Iframe/ShowTest.php
@@ -96,7 +96,7 @@ class ShowTest extends \PHPUnit_Framework_TestCase
             ->expects($this->once())
             ->method('create')
             ->will($this->throwException(new \Exception));
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     /**
@@ -132,7 +132,7 @@ class ShowTest extends \PHPUnit_Framework_TestCase
 
         $this->responseMock->expects($this->once())->method('setBody')->willReturn(json_encode($expectedResult));
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function dataForExecute()
diff --git a/app/code/Magento/Swatches/Test/Unit/Controller/Ajax/MediaTest.php b/app/code/Magento/Swatches/Test/Unit/Controller/Ajax/MediaTest.php
index 6358b2d5ccf..83466261a61 100644
--- a/app/code/Magento/Swatches/Test/Unit/Controller/Ajax/MediaTest.php
+++ b/app/code/Magento/Swatches/Test/Unit/Controller/Ajax/MediaTest.php
@@ -137,7 +137,7 @@ class MediaTest extends \PHPUnit_Framework_TestCase
             ->with($this->mediaGallery)
             ->will($this->returnSelf());
 
-        $result = $this->controller->execute();
+        $result = $this->controller->executeInternal();
 
         $this->assertInstanceOf('\Magento\Framework\Controller\Result\Json', $result);
     }
@@ -179,7 +179,7 @@ class MediaTest extends \PHPUnit_Framework_TestCase
             ->with($this->mediaGallery)
             ->will($this->returnSelf());
 
-        $result = $this->controller->execute();
+        $result = $this->controller->executeInternal();
 
         $this->assertInstanceOf('\Magento\Framework\Controller\Result\Json', $result);
     }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php
index 2fe8a5b1572..a7f555a1706 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php
@@ -15,7 +15,7 @@ class Add extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register(
             RegistryConstants::CURRENT_TAX_RATE_FORM_DATA,
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php
index 5f58a4147ac..f8a99e226f7 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php
@@ -15,7 +15,7 @@ class AjaxDelete extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $rateId = (int)$this->getRequest()->getParam('tax_calculation_rate_id');
         try {
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxLoad.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxLoad.php
index 673ea280bab..e824a8185ac 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxLoad.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxLoad.php
@@ -16,7 +16,7 @@ class AjaxLoad extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $rateId = (int)$this->getRequest()->getParam('id');
         try {
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php
index 8dd31f2ca5b..635d116a31d 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php
@@ -15,7 +15,7 @@ class AjaxSave extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $rateData = $this->_processRateData($this->getRequest()->getPostValue());
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php
index c11f420db32..c6794eaf0ab 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php
@@ -16,7 +16,7 @@ class Delete extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($rateId = $this->getRequest()->getParam('rate')) {
             /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php
index e13ae2293e6..a5e2fbf1a05 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php
@@ -17,7 +17,7 @@ class Edit extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $rateId = (int)$this->getRequest()->getParam('rate');
         $this->_coreRegistry->register(RegistryConstants::CURRENT_TAX_RATE_ID, $rateId);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php
index d38d6ddd9af..145341f4f20 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->initResultPage();
         $resultPage->addBreadcrumb(__('Manage Tax Rates'), __('Manage Tax Rates'));
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php
index 442940fdfc5..85cf89a9e85 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php
@@ -16,7 +16,7 @@ class Save extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php
index 9d862df7d5a..7dd9f40e4df 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php
index ebbabcf833a..89b49f16feb 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $taxRuleId = $this->getRequest()->getParam('rule');
         $this->_coreRegistry->register('tax_rule_id', $taxRuleId);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php
index b3ea7586cf9..e3aab07b459 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->initResultPage();
         $resultPage->getConfig()->getTitle()->prepend(__('Tax Rules'));
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php
index 79f4fa7d752..74bd5b1c57a 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php
index 27e75cf819b..d050cbd6773 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php
index 8e5e003872d..37edd84177d 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php
@@ -15,7 +15,7 @@ class AjaxDelete extends \Magento\Tax\Controller\Adminhtml\Tax
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $classId = (int)$this->getRequest()->getParam('class_id');
         try {
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php
index 68527988b90..92647155fbe 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php
@@ -15,7 +15,7 @@ class AjaxSave extends \Magento\Tax\Controller\Adminhtml\Tax
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $taxClassId = (int)$this->getRequest()->getPost('class_id') ?: null;
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php b/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php
index 89ab88a5965..18860dd4891 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php
@@ -37,7 +37,7 @@ class IgnoreTaxNotification extends \Magento\Tax\Controller\Adminhtml\Tax
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $section = $this->getRequest()->getParam('section');
         if ($section) {
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php
index 9f6f1cb8e6b..2b23bd51aa6 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php
@@ -16,7 +16,7 @@ class ExportCsv extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
         $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php
index dc4e8987adc..7685d61ee95 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php
@@ -15,7 +15,7 @@ class ExportPost extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** start csv content and set template */
         $headers = new \Magento\Framework\DataObject(
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php
index 38fc277576c..546980d126f 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php
@@ -16,7 +16,7 @@ class ExportXml extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
         $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php
index b37520a99f8..56d479a43cf 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php
@@ -14,7 +14,7 @@ class ImportExport extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php
index eb5efff3d5e..db37d19fa26 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php
@@ -14,7 +14,7 @@ class ImportPost extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->isPost() && !empty($_FILES['import_rates_file']['tmp_name'])) {
             try {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Delete.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Delete.php
index 12fbe2225fa..7f29bfb7016 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Delete.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Delete.php
@@ -15,7 +15,7 @@ class Delete extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = $this->getRequest()->getParam('id');
         try {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCss.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCss.php
index 0113c1c59a4..badb051def8 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCss.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCss.php
@@ -16,7 +16,7 @@ class DownloadCss extends \Magento\Theme\Controller\Adminhtml\System\Design\Them
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = $this->getRequest()->getParam('theme_id');
         $file = $this->getRequest()->getParam('file');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCustomCss.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCustomCss.php
index 8653fa797f1..6432c23db6d 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCustomCss.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCustomCss.php
@@ -16,7 +16,7 @@ class DownloadCustomCss extends \Magento\Theme\Controller\Adminhtml\System\Desig
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = $this->getRequest()->getParam('theme_id');
         try {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Edit.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Edit.php
index 367958d22fb..2b8f9853de7 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Edit.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = (int)$this->getRequest()->getParam('id');
         /** @var $theme \Magento\Framework\View\Design\ThemeInterface */
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Grid.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Grid.php
index e49cdb3e883..8a8fb29abc4 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Grid.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Index.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Index.php
index 8216660eab1..599b0127302 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Index.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_Theme::system_design_theme');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/NewAction.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/NewAction.php
index 8e930a8c55d..f699769c615 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/NewAction.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Save.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Save.php
index c3fabcb4d02..6bb049c8be3 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Save.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Save.php
@@ -14,7 +14,7 @@ class Save extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirectBack = (bool)$this->getRequest()->getParam('back', false);
         $themeData = $this->getRequest()->getParam('theme');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadCss.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadCss.php
index c201adf38e9..d576899f2dc 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadCss.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadCss.php
@@ -13,7 +13,7 @@ class UploadCss extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var $serviceModel \Magento\Theme\Model\Uploader\Service */
         $serviceModel = $this->_objectManager->get('Magento\Theme\Model\Uploader\Service');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadJs.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadJs.php
index 58cf189c86f..84800872fc3 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadJs.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadJs.php
@@ -14,7 +14,7 @@ class UploadJs extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      * @return void
      * @throws \Magento\Framework\Exception\LocalizedException
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = $this->getRequest()->getParam('id');
         /** @var $serviceModel \Magento\Theme\Model\Uploader\Service */
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Contents.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Contents.php
index abc3ebd705a..21fbd7eaa2b 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Contents.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Contents.php
@@ -13,7 +13,7 @@ class Contents extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_view->loadLayout('empty');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFiles.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFiles.php
index 2b59d4bba3b..4f3a4fda4ac 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFiles.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFiles.php
@@ -14,7 +14,7 @@ class DeleteFiles extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysi
      * @return void
      * @throws \Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if (!$this->getRequest()->isPost()) {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolder.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolder.php
index 4958a6b3909..6c6258e7f52 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolder.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolder.php
@@ -13,7 +13,7 @@ class DeleteFolder extends \Magento\Theme\Controller\Adminhtml\System\Design\Wys
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $path = $this->storage->getCurrentPath();
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Index.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Index.php
index 7abdd3ee5ec..7584377ecce 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Index.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg\Fi
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout('overlay_popup');
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/NewFolder.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/NewFolder.php
index 018e8194f37..119a5b8b9ca 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/NewFolder.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/NewFolder.php
@@ -13,7 +13,7 @@ class NewFolder extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwy
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $name = $this->getRequest()->getPost('name');
         try {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsert.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsert.php
index 92ef5e7bdc5..32ff7003905 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsert.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsert.php
@@ -13,7 +13,7 @@ class OnInsert extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var $helperStorage \Magento\Theme\Helper\Storage */
         $helperStorage = $this->_objectManager->get('Magento\Theme\Helper\Storage');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/PreviewImage.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/PreviewImage.php
index d8f050d8d3f..cab5e4b78d6 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/PreviewImage.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/PreviewImage.php
@@ -16,7 +16,7 @@ class PreviewImage extends \Magento\Theme\Controller\Adminhtml\System\Design\Wys
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $file = $this->getRequest()->getParam('file');
         /** @var $helper \Magento\Theme\Helper\Storage */
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/TreeJson.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/TreeJson.php
index d3d8a244e73..3e789134e26 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/TreeJson.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/TreeJson.php
@@ -13,7 +13,7 @@ class TreeJson extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getResponse()->representJson(
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Upload.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Upload.php
index 877b0fc83d9..420083086ed 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Upload.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Upload.php
@@ -13,7 +13,7 @@ class Upload extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg\F
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $path = $this->storage->getCurrentPath();
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DeleteTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DeleteTest.php
index 4323967aa47..86f88c71aee 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DeleteTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DeleteTest.php
@@ -147,7 +147,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with($path)
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->controller->execute());
+        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->controller->executeInternal());
     }
 
     /**
@@ -218,7 +218,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
         $logger->expects($this->once())
             ->method('critical');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     /**
@@ -255,6 +255,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())
             ->method('addError');
 
-        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->controller->execute());
+        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCssTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCssTest.php
index 5beef00b2ae..e9b058c7bdf 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCssTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCssTest.php
@@ -186,7 +186,7 @@ class DownloadCssTest extends \PHPUnit_Framework_TestCase
             ->with($relPath, ['type' => 'filename', 'value' => $relPath], DirectoryList::ROOT)
             ->willReturn($this->getMockBuilder('Magento\Framework\App\ResponseInterface')->getMock());
 
-        $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $this->controller->execute());
+        $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $this->controller->executeInternal());
     }
 
     public function testExecuteInvalidArgument()
@@ -243,6 +243,6 @@ class DownloadCssTest extends \PHPUnit_Framework_TestCase
             ->method('setRedirect')
             ->with($refererUrl);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCustomCssTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCustomCssTest.php
index 891f455ee1d..04f013fb5e3 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCustomCssTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCustomCssTest.php
@@ -173,7 +173,7 @@ class DownloadCustomCssTest extends \PHPUnit_Framework_TestCase
             ->with($fileName, ['type' => 'filename', 'value' => $fullPath], DirectoryList::ROOT)
             ->willReturn($this->getMockBuilder('Magento\Framework\App\ResponseInterface')->getMock());
 
-        $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $this->controller->execute());
+        $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $this->controller->executeInternal());
     }
 
     public function testExecuteInvalidArgument()
@@ -213,6 +213,6 @@ class DownloadCustomCssTest extends \PHPUnit_Framework_TestCase
             ->method('setRedirect')
             ->with($refererUrl);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/EditTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/EditTest.php
index eac3f24f2fe..d9481c4ccc2 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/EditTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/EditTest.php
@@ -59,7 +59,7 @@ class EditTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Desi
             ->method('getUrl')
             ->willReturn('http://return.url');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -125,7 +125,7 @@ class EditTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Desi
             ->method('getUrl')
             ->willReturn('http://return.url');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     /**
@@ -245,6 +245,6 @@ class EditTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Desi
         $this->view->expects($this->once())
             ->method('renderLayout');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/IndexTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/IndexTest.php
index d504277d57f..a3cf13f6fd4 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/IndexTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/IndexTest.php
@@ -40,6 +40,6 @@ class IndexTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Des
             ->method('getLayout')
             ->will($this->returnValue($layout));
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/SaveTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/SaveTest.php
index 524dad54b8c..c260a330d23 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/SaveTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/SaveTest.php
@@ -85,6 +85,6 @@ class SaveTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Desi
             ->with('Magento\Theme\Model\Theme\SingleFile')
             ->will($this->returnValue(null));
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadCssTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadCssTest.php
index 1529c56175f..a90289e9062 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadCssTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadCssTest.php
@@ -39,7 +39,7 @@ class UploadCssTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System
             ->method('representJson')
             ->with('{"filename":"filename","content":"content"}');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecuteWithLocalizedException()
@@ -67,7 +67,7 @@ class UploadCssTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System
             ->with('Magento\Framework\Json\Helper\Data')
             ->willReturn($jsonData);
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -103,6 +103,6 @@ class UploadCssTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System
             ->with('Magento\Framework\Json\Helper\Data')
             ->willReturn($jsonData);
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadJsTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadJsTest.php
index 6dbfdd62e0c..271b084f5f6 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadJsTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadJsTest.php
@@ -99,7 +99,7 @@ class UploadJsTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\
             ->method('representJson')
             ->with('{"error":"true","message":"We cannot find a theme with id "' . $themeId . '"."}');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -149,7 +149,7 @@ class UploadJsTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\
             ->method('representJson')
             ->with('{"error":"true","message":"We can\'t upload the JS file right now."}');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecute()
@@ -244,6 +244,6 @@ class UploadJsTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\
             ->method('representJson')
             ->with('{"error":false,"files":{"fileOne":{"name":"name"}}}');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/ContentsTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/ContentsTest.php
index 42292699b7d..5251dcc759e 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/ContentsTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/ContentsTest.php
@@ -96,6 +96,6 @@ class ContentsTest extends \PHPUnit_Framework_TestCase
         $this->response->expects($this->once())
             ->method('representJson');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFilesTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFilesTest.php
index 2a69f64be34..3a34f63df2c 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFilesTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFilesTest.php
@@ -69,7 +69,7 @@ class DeleteFilesTest extends \PHPUnit_Framework_TestCase
             ->method('representJson')
             ->with('{"error":"true","message":"Wrong request"}');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecute()
@@ -99,6 +99,6 @@ class DeleteFilesTest extends \PHPUnit_Framework_TestCase
             ->method('deleteFile')
             ->with('file');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolderTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolderTest.php
index 9bd042cfe2e..2c6b5f2e642 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolderTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolderTest.php
@@ -66,6 +66,6 @@ class DeleteFolderTest extends \PHPUnit_Framework_TestCase
             ->with('Magento\Framework\Json\Helper\Data')
             ->willReturn($jsonData);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/IndexTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/IndexTest.php
index 63884649f39..cf913494623 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/IndexTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/IndexTest.php
@@ -34,6 +34,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->view ->expects($this->once())
             ->method('renderLayout');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsertTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsertTest.php
index 0061013ed72..48c23d765c2 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsertTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsertTest.php
@@ -54,6 +54,6 @@ class OnInsertTest extends \PHPUnit_Framework_TestCase
             ->method('setBody')
             ->with('http://relative.url/');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Translation/Controller/Ajax/Index.php b/app/code/Magento/Translation/Controller/Ajax/Index.php
index 190b4046b46..08c1fc1bce1 100644
--- a/app/code/Magento/Translation/Controller/Ajax/Index.php
+++ b/app/code/Magento/Translation/Controller/Ajax/Index.php
@@ -31,7 +31,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $translate = (array)$this->getRequest()->getPost('translate');
 
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/AbstractAction.php b/app/code/Magento/Ui/Controller/Adminhtml/AbstractAction.php
index f6ab7eed8e1..442f875e23a 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/AbstractAction.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/AbstractAction.php
@@ -57,7 +57,7 @@ abstract class AbstractAction extends Action implements UiActionInterface
      */
     public function executeAjaxRequest()
     {
-        $this->execute();
+        $this->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Delete.php b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Delete.php
index 6a2bdccd510..a4192d50134 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Delete.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Delete.php
@@ -48,7 +48,7 @@ class Delete extends AbstractAction
      *
      * @return void
      */
-    protected function execute()
+    protected function executeInternal()
     {
         $viewIds = explode('.', $this->_request->getParam('data'));
         $bookmark = $this->bookmarkManagement->getByIdentifierNamespace(
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php
index bde48047b77..55568937e97 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php
@@ -87,7 +87,7 @@ class Save extends AbstractAction
      *
      * @return void
      */
-    protected function execute()
+    protected function executeInternal()
     {
         $bookmark = $this->bookmarkFactory->create();
         $jsonData = $this->_request->getParam('data');
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToCsv.php b/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToCsv.php
index 158f90512c6..2c0b22699f7 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToCsv.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToCsv.php
@@ -46,7 +46,7 @@ class GridToCsv extends Action
      * @throws \Magento\Framework\Exception\LocalizedException
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->fileFactory->create('export.csv', $this->converter->getCsvFile(), 'var');
     }
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToXml.php b/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToXml.php
index f4de9d2da2b..c999f3f8fcd 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToXml.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToXml.php
@@ -46,7 +46,7 @@ class GridToXml extends Action
      * @throws \Magento\Framework\Exception\LocalizedException
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->fileFactory->create('export.xml', $this->converter->getXmlFile(), 'var');
     }
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Index/Render.php b/app/code/Magento/Ui/Controller/Adminhtml/Index/Render.php
index bd431cf33f4..f43135b162e 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Index/Render.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Index/Render.php
@@ -20,7 +20,7 @@ class Render extends AbstractAction
      *
      * @return void
      */
-    protected function execute()
+    protected function executeInternal()
     {
         $component = $this->factory->create($this->_request->getParam('namespace'));
         $this->prepareComponent($component);
diff --git a/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToCsvTest.php b/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToCsvTest.php
index ad295672a6c..daf5ba76d67 100644
--- a/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToCsvTest.php
+++ b/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToCsvTest.php
@@ -66,6 +66,6 @@ class GridToCsvTest extends \PHPUnit_Framework_TestCase
             ->with('export.csv', $content, 'var')
             ->willReturn($content);
 
-        $this->assertEquals($content, $this->controller->execute());
+        $this->assertEquals($content, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToXmlTest.php b/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToXmlTest.php
index 427a14e42dd..c0314e99c13 100644
--- a/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToXmlTest.php
+++ b/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToXmlTest.php
@@ -66,6 +66,6 @@ class GridToXmlTest extends \PHPUnit_Framework_TestCase
             ->with('export.xml', $content, 'var')
             ->willReturn($content);
 
-        $this->assertEquals($content, $this->controller->execute());
+        $this->assertEquals($content, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CategoriesJson.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CategoriesJson.php
index 2bc1ea519da..891ee3a1bbd 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CategoriesJson.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CategoriesJson.php
@@ -13,7 +13,7 @@ class CategoriesJson extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrit
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $categoryId = $this->getRequest()->getParam('id', null);
         $this->getResponse()->setBody(
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CmsPageGrid.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CmsPageGrid.php
index d277c5781bd..9d7668e61a0 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CmsPageGrid.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CmsPageGrid.php
@@ -13,7 +13,7 @@ class CmsPageGrid extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setBody(
             $this->_view->getLayout()->createBlock('Magento\UrlRewrite\Block\Cms\Page\Grid')->toHtml()
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Delete.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Delete.php
index a0ed60907fd..f916999158d 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Delete.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_getUrlRewrite()->getId()) {
             try {
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Edit.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Edit.php
index 3d172de7402..1a84bdb99d3 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Edit.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Edit.php
@@ -43,7 +43,7 @@ class Edit extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_UrlRewrite::urlrewrite');
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Index.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Index.php
index 13c87edc4ed..55c42bec9df 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Index.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_UrlRewrite::urlrewrite');
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/ProductGrid.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/ProductGrid.php
index 42c14184066..e6c72584937 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/ProductGrid.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/ProductGrid.php
@@ -13,7 +13,7 @@ class ProductGrid extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setBody(
             $this->_view->getLayout()->createBlock('Magento\UrlRewrite\Block\Catalog\Product\Grid')->toHtml()
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Save.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Save.php
index 951b0885f72..a8da825fc50 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Save.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Save.php
@@ -136,7 +136,7 @@ class Save extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         if ($data) {
diff --git a/app/code/Magento/User/Controller/Adminhtml/Auth/Forgotpassword.php b/app/code/Magento/User/Controller/Adminhtml/Auth/Forgotpassword.php
index ca30b16916e..82519182fda 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Auth/Forgotpassword.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Auth/Forgotpassword.php
@@ -13,7 +13,7 @@ class Forgotpassword extends \Magento\User\Controller\Adminhtml\Auth
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $email = (string)$this->getRequest()->getParam('email');
         $params = $this->getRequest()->getParams();
diff --git a/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPassword.php b/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPassword.php
index b39d7c84007..b3d5e52303f 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPassword.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPassword.php
@@ -15,7 +15,7 @@ class ResetPassword extends \Magento\User\Controller\Adminhtml\Auth
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $passwordResetToken = (string)$this->getRequest()->getQuery('token');
         $userId = (int)$this->getRequest()->getQuery('id');
diff --git a/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPasswordPost.php b/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPasswordPost.php
index bae69c2415f..5e65f610303 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPasswordPost.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPasswordPost.php
@@ -15,7 +15,7 @@ class ResetPasswordPost extends \Magento\User\Controller\Adminhtml\Auth
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $passwordResetToken = (string)$this->getRequest()->getQuery('token');
         $userId = (int)$this->getRequest()->getQuery('id');
diff --git a/app/code/Magento/User/Controller/Adminhtml/Locks/Grid.php b/app/code/Magento/User/Controller/Adminhtml/Locks/Grid.php
index 971b87791f6..1eaa4e05d5a 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Locks/Grid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Locks/Grid.php
@@ -16,7 +16,7 @@ class Grid extends \Magento\User\Controller\Adminhtml\Locks
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/User/Controller/Adminhtml/Locks/Index.php b/app/code/Magento/User/Controller/Adminhtml/Locks/Index.php
index b3e9f092fd1..f3ce5beda60 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Locks/Index.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Locks/Index.php
@@ -16,7 +16,7 @@ class Index extends \Magento\User\Controller\Adminhtml\Locks
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_User::system_acl_locks');
diff --git a/app/code/Magento/User/Controller/Adminhtml/Locks/MassUnlock.php b/app/code/Magento/User/Controller/Adminhtml/Locks/MassUnlock.php
index bf515568539..ba0621b1d70 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Locks/MassUnlock.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Locks/MassUnlock.php
@@ -18,7 +18,7 @@ class MassUnlock extends \Magento\User\Controller\Adminhtml\Locks
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             // unlock users
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Delete.php b/app/code/Magento/User/Controller/Adminhtml/User/Delete.php
index 748e44e4fc2..576138df5cf 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Delete.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $currentUser = $this->_objectManager->get('Magento\Backend\Model\Auth\Session')->getUser();
 
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Edit.php b/app/code/Magento/User/Controller/Adminhtml/User/Edit.php
index 39ac43d5539..c74f350c79f 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Edit.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $userId = $this->getRequest()->getParam('user_id');
         /** @var \Magento\User\Model\User $model */
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Index.php b/app/code/Magento/User/Controller/Adminhtml/User/Index.php
index 875b26fcaf2..214b634c06f 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Index.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Users'));
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/InvalidateToken.php b/app/code/Magento/User/Controller/Adminhtml/User/InvalidateToken.php
index adc326644ef..611b2a42890 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/InvalidateToken.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/InvalidateToken.php
@@ -40,7 +40,7 @@ class InvalidateToken extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($userId = $this->getRequest()->getParam('user_id')) {
             try {
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/NewAction.php b/app/code/Magento/User/Controller/Adminhtml/User/NewAction.php
index 38cb07dae87..598d3b5c3d3 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/NewAction.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/NewAction.php
@@ -11,7 +11,7 @@ class NewAction extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/Delete.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/Delete.php
index 1a8060e1e23..fefed2867c4 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/Delete.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/Delete.php
@@ -15,7 +15,7 @@ class Delete extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/EditRole.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/EditRole.php
index 21aef671de9..a8950a9d711 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/EditRole.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/EditRole.php
@@ -13,7 +13,7 @@ class EditRole extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $role = $this->_initRole();
         $this->_initAction();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/Editrolegrid.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/Editrolegrid.php
index ac6cf5350bd..053c65a4dca 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/Editrolegrid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/Editrolegrid.php
@@ -13,7 +13,7 @@ class Editrolegrid extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/Index.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/Index.php
index fe9c5c61382..ce8f462264e 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/Index.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Roles'));
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/RoleGrid.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/RoleGrid.php
index 32d360659bd..e771d3dd87b 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/RoleGrid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/RoleGrid.php
@@ -13,7 +13,7 @@ class RoleGrid extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/SaveRole.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/SaveRole.php
index e45c6b110db..83aa7ed1f34 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/SaveRole.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/SaveRole.php
@@ -55,7 +55,7 @@ class SaveRole extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/RoleGrid.php b/app/code/Magento/User/Controller/Adminhtml/User/RoleGrid.php
index 03f19129f6b..5f405efca0f 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/RoleGrid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/RoleGrid.php
@@ -11,7 +11,7 @@ class RoleGrid extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/RolesGrid.php b/app/code/Magento/User/Controller/Adminhtml/User/RolesGrid.php
index 11b1569e9d7..2689f3c9d77 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/RolesGrid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/RolesGrid.php
@@ -11,7 +11,7 @@ class RolesGrid extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $userId = $this->getRequest()->getParam('user_id');
         /** @var \Magento\User\Model\User $model */
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Save.php b/app/code/Magento/User/Controller/Adminhtml/User/Save.php
index e9e5cad3320..f50ebcacb27 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Save.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Save.php
@@ -14,7 +14,7 @@ class Save extends \Magento\User\Controller\Adminhtml\User
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $userId = (int)$this->getRequest()->getParam('user_id');
         $data = $this->getRequest()->getPostValue();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Validate.php b/app/code/Magento/User/Controller/Adminhtml/User/Validate.php
index 25b49ff3999..11262b0898c 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Validate.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Validate.php
@@ -13,7 +13,7 @@ class Validate extends \Magento\User\Controller\Adminhtml\User
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(0);
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Delete.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Delete.php
index 03190d55cac..10b0c13383e 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Delete.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $variable = $this->_initVariable();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Edit.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Edit.php
index adb7eaa3175..bd6db1b8f37 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Edit.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $variable = $this->_initVariable();
 
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Index.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Index.php
index 521834f094d..1dc0676e2e5 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Index.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->createPage();
         $resultPage->getConfig()->getTitle()->prepend(__('Custom Variables'));
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/NewAction.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/NewAction.php
index efbcf4c062b..465b50bfe44 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/NewAction.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Save.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Save.php
index f3640c3918e..6353e576707 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Save.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $variable = $this->_initVariable();
         $data = $this->getRequest()->getPost('variable');
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Validate.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Validate.php
index 75876b96cfe..7867af40068 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Validate.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Validate.php
@@ -13,7 +13,7 @@ class Validate extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject(['error' => false]);
         $variable = $this->_initVariable();
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/WysiwygPlugin.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/WysiwygPlugin.php
index 04b1514cfab..42e801f50a4 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/WysiwygPlugin.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/WysiwygPlugin.php
@@ -13,7 +13,7 @@ class WysiwygPlugin extends \Magento\Variable\Controller\Adminhtml\System\Variab
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $customVariables = $this->_objectManager->create('Magento\Variable\Model\Variable')
             ->getVariablesOptionArray(true);
diff --git a/app/code/Magento/Variable/Test/Unit/Controller/Adminhtml/System/Variable/ValidateTest.php b/app/code/Magento/Variable/Test/Unit/Controller/Adminhtml/System/Variable/ValidateTest.php
index cb653d6499d..8da36180eb7 100644
--- a/app/code/Magento/Variable/Test/Unit/Controller/Adminhtml/System/Variable/ValidateTest.php
+++ b/app/code/Magento/Variable/Test/Unit/Controller/Adminhtml/System/Variable/ValidateTest.php
@@ -152,7 +152,7 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ->method('setData')
             ->with($responseArray);
 
-        $this->validateMock->execute();
+        $this->validateMock->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Version/Controller/Index/Index.php b/app/code/Magento/Version/Controller/Index/Index.php
index 0fe6235bc6c..48feb6eb423 100644
--- a/app/code/Magento/Version/Controller/Index/Index.php
+++ b/app/code/Magento/Version/Controller/Index/Index.php
@@ -37,7 +37,7 @@ class Index extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $versionParts = explode('.', $this->productMetadata->getVersion());
         if (!isset($versionParts[0]) || !isset($versionParts[1])) {
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/BuildWidget.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/BuildWidget.php
index 9a3459f897f..e29a01447ca 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/BuildWidget.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/BuildWidget.php
@@ -30,7 +30,7 @@ class BuildWidget extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $type = $this->getRequest()->getPost('widget_type');
         $params = $this->getRequest()->getPost('parameters', []);
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Index.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Index.php
index a30ce4a2a84..3b0d39820dc 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Index.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Index.php
@@ -40,7 +40,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // save extra params for widgets insertion form
         $skipped = $this->getRequest()->getParam('skip_widgets');
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Blocks.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Blocks.php
index c97ab7250fe..2783889979c 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Blocks.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Blocks.php
@@ -40,7 +40,7 @@ class Blocks extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_objectManager->get(
             'Magento\Framework\App\State'
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Categories.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Categories.php
index 468a5d1b7de..76f624e2f48 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Categories.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Categories.php
@@ -40,7 +40,7 @@ class Categories extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $selected = $this->getRequest()->getParam('selected', '');
         $isAnchorOnly = $this->getRequest()->getParam('is_anchor_only', 0);
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Delete.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Delete.php
index 0866ba1fb2e..14e0a85abbd 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Delete.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $widgetInstance = $this->_initWidgetInstance();
         if ($widgetInstance) {
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Edit.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Edit.php
index 978680baa01..8dfd2a8bc66 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Edit.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $widgetInstance = $this->_initWidgetInstance();
         if (!$widgetInstance) {
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Index.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Index.php
index 704730f02c5..5b6d3474334 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Index.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Widgets'));
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/NewAction.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/NewAction.php
index 3beb19c5d1d..289ec1ee1d0 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/NewAction.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Products.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Products.php
index e750e1f88e5..a651f040b54 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Products.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Products.php
@@ -13,7 +13,7 @@ class Products extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $selected = $this->getRequest()->getParam('selected', '');
         $productTypeId = $this->getRequest()->getParam('product_type_id', '');
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Save.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Save.php
index 5435ef423cb..14657be5478 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Save.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $widgetInstance = $this->_initWidgetInstance();
         if (!$widgetInstance) {
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Template.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Template.php
index 4dea5a9f972..e7ad7a9e31b 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Template.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Template.php
@@ -13,7 +13,7 @@ class Template extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /* @var $widgetInstance \Magento\Widget\Model\Widget\Instance */
         $widgetInstance = $this->_initWidgetInstance();
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Validate.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Validate.php
index fe2bb5aaf69..e37a93e5e61 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Validate.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Validate.php
@@ -13,7 +13,7 @@ class Validate extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(false);
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/LoadOptions.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/LoadOptions.php
index 769b2d587cd..10fccc4c724 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/LoadOptions.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/LoadOptions.php
@@ -13,7 +13,7 @@ class LoadOptions extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_view->loadLayout();
diff --git a/app/code/Magento/Widget/Test/Unit/Controller/Adminhtml/Widget/Instance/CategoriesTest.php b/app/code/Magento/Widget/Test/Unit/Controller/Adminhtml/Widget/Instance/CategoriesTest.php
index 5a03ca57026..0def0e13833 100644
--- a/app/code/Magento/Widget/Test/Unit/Controller/Adminhtml/Widget/Instance/CategoriesTest.php
+++ b/app/code/Magento/Widget/Test/Unit/Controller/Adminhtml/Widget/Instance/CategoriesTest.php
@@ -120,6 +120,6 @@ class CategoriesTest extends \PHPUnit_Framework_TestCase
                     'layout' => $this->layout
                 ]
             );
-        $this->assertSame($this->resultRaw, $this->controller->execute());
+        $this->assertSame($this->resultRaw, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Add.php b/app/code/Magento/Wishlist/Controller/Index/Add.php
index 19b893de9f8..36c24b6176f 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Add.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Add.php
@@ -59,7 +59,7 @@ class Add extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.UnusedLocalVariable)
      */
-    public function execute()
+    public function executeInternal()
     {
         $wishlist = $this->wishlistProvider->getWishlist();
         if (!$wishlist) {
diff --git a/app/code/Magento/Wishlist/Controller/Index/Allcart.php b/app/code/Magento/Wishlist/Controller/Index/Allcart.php
index 7cf5a187a56..e8892270a79 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Allcart.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Allcart.php
@@ -53,7 +53,7 @@ class Allcart extends Action\Action implements IndexInterface
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
         $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
diff --git a/app/code/Magento/Wishlist/Controller/Index/Cart.php b/app/code/Magento/Wishlist/Controller/Index/Cart.php
index 8075c8e6b6e..ca39fbb782b 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Cart.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Cart.php
@@ -107,7 +107,7 @@ class Cart extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = (int)$this->getRequest()->getParam('item');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Wishlist/Controller/Index/Configure.php b/app/code/Magento/Wishlist/Controller/Index/Configure.php
index bc8e001e250..3d1077464d9 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Configure.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Configure.php
@@ -53,7 +53,7 @@ class Configure extends Action\Action implements IndexInterface
      * @return \Magento\Framework\Controller\ResultInterface
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php b/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php
index 1edd5e4426e..5dd0ff2c278 100644
--- a/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php
+++ b/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php
@@ -36,7 +36,7 @@ class DownloadCustomOption extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $option = $this->_objectManager->create(
             'Magento\Wishlist\Model\Item\Option'
diff --git a/app/code/Magento/Wishlist/Controller/Index/Fromcart.php b/app/code/Magento/Wishlist/Controller/Index/Fromcart.php
index 8ee09cc1d33..443d46f103d 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Fromcart.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Fromcart.php
@@ -78,7 +78,7 @@ class Fromcart extends Action\Action implements IndexInterface
      * @throws NotFoundException
      * @SuppressWarnings(PHPMD.UnusedLocalVariable)
      */
-    public function execute()
+    public function executeInternal()
     {
         $wishlist = $this->wishlistProvider->getWishlist();
         if (!$wishlist) {
diff --git a/app/code/Magento/Wishlist/Controller/Index/Index.php b/app/code/Magento/Wishlist/Controller/Index/Index.php
index dc0c7fcb965..821df44186a 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Index.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Index.php
@@ -35,7 +35,7 @@ class Index extends Action\Action implements IndexInterface
      * @return \Magento\Framework\View\Result\Page
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->wishlistProvider->getWishlist()) {
             throw new NotFoundException(__('Page not found.'));
diff --git a/app/code/Magento/Wishlist/Controller/Index/Remove.php b/app/code/Magento/Wishlist/Controller/Index/Remove.php
index d74487a8f19..66d068fc7f4 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Remove.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Remove.php
@@ -35,7 +35,7 @@ class Remove extends Action\Action implements IndexInterface
      * @return \Magento\Framework\Controller\Result\Redirect
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('item');
         $item = $this->_objectManager->create('Magento\Wishlist\Model\Item')->load($id);
diff --git a/app/code/Magento/Wishlist/Controller/Index/Send.php b/app/code/Magento/Wishlist/Controller/Index/Send.php
index 6baaa3772cd..9ee4f3cd1b8 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Send.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Send.php
@@ -119,7 +119,7 @@ class Send extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Wishlist/Controller/Index/Share.php b/app/code/Magento/Wishlist/Controller/Index/Share.php
index 502291b5078..4a8c92a3772 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Share.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Share.php
@@ -33,7 +33,7 @@ class Share extends Action\Action implements IndexInterface
      *
      * @return void|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->customerSession->authenticate()) {
             /** @var \Magento\Framework\View\Result\Page $resultPage */
diff --git a/app/code/Magento/Wishlist/Controller/Index/Update.php b/app/code/Magento/Wishlist/Controller/Index/Update.php
index ccb46f1c44a..863904999a2 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Update.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Update.php
@@ -53,7 +53,7 @@ class Update extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php b/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php
index 655844d6f11..e1ff89db2c8 100644
--- a/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php
+++ b/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php
@@ -51,7 +51,7 @@ class UpdateItemOptions extends Action\Action implements IndexInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('product');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Wishlist/Controller/Shared/Allcart.php b/app/code/Magento/Wishlist/Controller/Shared/Allcart.php
index ffb6e34ea96..2f9208c43e9 100644
--- a/app/code/Magento/Wishlist/Controller/Shared/Allcart.php
+++ b/app/code/Magento/Wishlist/Controller/Shared/Allcart.php
@@ -41,7 +41,7 @@ class Allcart extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $wishlist = $this->wishlistProvider->getWishlist();
         if (!$wishlist) {
diff --git a/app/code/Magento/Wishlist/Controller/Shared/Cart.php b/app/code/Magento/Wishlist/Controller/Shared/Cart.php
index b3ed5a3b330..8f03270d5be 100644
--- a/app/code/Magento/Wishlist/Controller/Shared/Cart.php
+++ b/app/code/Magento/Wishlist/Controller/Shared/Cart.php
@@ -79,7 +79,7 @@ class Cart extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = (int)$this->getRequest()->getParam('item');
 
diff --git a/app/code/Magento/Wishlist/Controller/Shared/Index.php b/app/code/Magento/Wishlist/Controller/Shared/Index.php
index 6f925099159..d54d5283304 100644
--- a/app/code/Magento/Wishlist/Controller/Shared/Index.php
+++ b/app/code/Magento/Wishlist/Controller/Shared/Index.php
@@ -51,7 +51,7 @@ class Index extends Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $wishlist = $this->wishlistProvider->getWishlist();
         $customerId = $this->customerSession->getCustomerId();
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php
index 8d58bf0be75..e72f4c4a42f 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php
@@ -157,7 +157,7 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
 
         $controller = $this->getController();
-        $this->assertSame($this->resultForwardMock, $controller->execute());
+        $this->assertSame($this->resultForwardMock, $controller->executeInternal());
     }
 
     public function testExecuteWithoutWishlist()
@@ -176,7 +176,7 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultForwardMock, $this->getController()->execute());
+        $this->assertSame($this->resultForwardMock, $this->getController()->executeInternal());
     }
 
     public function testExecutePassed()
@@ -204,6 +204,6 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php
index cdd8ea3b333..937e5f843fd 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php
@@ -259,7 +259,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithNoWishlist()
@@ -300,7 +300,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithQuantityArray()
@@ -312,7 +312,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($refererUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithQuantityArrayAjax()
@@ -324,7 +324,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with(['backUrl' => $refererUrl])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJsonMock, $this->model->execute());
+        $this->assertSame($this->resultJsonMock, $this->model->executeInternal());
     }
 
     /**
@@ -698,7 +698,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($indexUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -859,6 +859,6 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($configureUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/FromcartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/FromcartTest.php
index 58109d6dc3d..51afe2756ad 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/FromcartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/FromcartTest.php
@@ -121,7 +121,7 @@ class FromcartTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->willReturn(null);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteNoCartItem()
@@ -169,7 +169,7 @@ class FromcartTest extends \PHPUnit_Framework_TestCase
             ->with($cartUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->controller->execute());
+        $this->assertSame($this->resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecute()
@@ -235,7 +235,7 @@ class FromcartTest extends \PHPUnit_Framework_TestCase
             ->with($cartUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->controller->execute());
+        $this->assertSame($this->resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -271,7 +271,7 @@ class FromcartTest extends \PHPUnit_Framework_TestCase
             ->with($cartUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->controller->execute());
+        $this->assertSame($this->resultRedirect, $this->controller->executeInternal());
     }
 
     protected function prepareContext()
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php
index 12f3de81f38..f49d76cc0a0 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php
@@ -139,7 +139,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->willReturn(null);
 
-        $this->getController()->execute();
+        $this->getController()->executeInternal();
     }
 
     public function testExecutePassed()
@@ -150,6 +150,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->willReturn($wishlist);
 
-        $this->assertSame($this->resultPageMock, $this->getController()->execute());
+        $this->assertSame($this->resultPageMock, $this->getController()->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php
index 6b2a6b9a595..787d6ef272c 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php
@@ -164,7 +164,7 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->with('Magento\Wishlist\Model\Item')
             ->willReturn($item);
 
-        $this->getController()->execute();
+        $this->getController()->executeInternal();
     }
 
     /**
@@ -206,7 +206,7 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->with(2)
             ->willReturn(null);
 
-        $this->getController()->execute();
+        $this->getController()->executeInternal();
     }
 
     public function testExecuteCanNotSaveWishlist()
@@ -291,7 +291,7 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->with($referer)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 
     public function testExecuteCanNotSaveWishlistAndWithRedirect()
@@ -387,6 +387,6 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->with('http://test.com/frontname/module/controller/action')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/SendTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/SendTest.php
index dd6dca98716..704e5b6fb08 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/SendTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/SendTest.php
@@ -270,7 +270,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -288,7 +288,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->willReturn(null);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
@@ -356,7 +356,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/share')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -514,7 +514,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/share')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -693,6 +693,6 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', ['wishlist_id' => $wishlistId])
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/ShareTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/ShareTest.php
index b65e8d11e43..e53d854cbef 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/ShareTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/ShareTest.php
@@ -53,7 +53,7 @@ class ShareTest extends \PHPUnit_Framework_TestCase
         $this->resultFactoryMock->expects($this->once())->method('create')->with(ResultFactory::TYPE_PAGE)
             ->willReturn($resultMock);
 
-        $this->assertEquals($resultMock, $this->model->execute());
+        $this->assertEquals($resultMock, $this->model->executeInternal());
     }
 
     public function testExecuteAuthenticationFail()
@@ -61,6 +61,6 @@ class ShareTest extends \PHPUnit_Framework_TestCase
         $this->customerSessionMock->expects($this->once())->method('authenticate')
             ->willReturn(false);
 
-        $this->assertEmpty($this->model->execute());
+        $this->assertEmpty($this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php
index f70306b6025..1f811f79563 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php
@@ -186,7 +186,7 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 
     /**
@@ -218,7 +218,7 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 
     /**
@@ -286,7 +286,7 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 
     /**
@@ -407,7 +407,7 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', ['wishlist_id' => 56])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
     /**
      * Test execute add success critical exception
@@ -545,6 +545,6 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', ['wishlist_id' => 56])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php
index 09ea2bb42c7..984c2e70c16 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php
@@ -132,7 +132,7 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->allcartController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->allcartController->executeInternal());
     }
 
     public function testExecuteWithNoWishlist()
@@ -145,6 +145,6 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultForwardMock, $this->allcartController->execute());
+        $this->assertSame($this->resultForwardMock, $this->allcartController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/CartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/CartTest.php
index c42e48ba37b..a917ac8b2ba 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/CartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/CartTest.php
@@ -275,7 +275,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -329,7 +329,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($productUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testExecuteProductException()
@@ -360,7 +360,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($refererUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testExecuteException()
@@ -391,6 +391,6 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($refererUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 }
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
index 01be1182f2b..906504d782e 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
@@ -69,7 +69,7 @@ abstract class CookieTester implements \Magento\Framework\App\ActionInterface
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $result = $this->execute($request);
         return $result ? $result : $this->_response;
diff --git a/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/AuthTest.php b/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/AuthTest.php
index 6d0b535d0c6..6ae9fb368c2 100644
--- a/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/AuthTest.php
+++ b/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/AuthTest.php
@@ -58,7 +58,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
 
     /**
      * Check not logged state
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::executeInternal
      */
     public function testNotLoggedLoginAction()
     {
@@ -72,7 +72,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
 
     /**
      * Check logged state
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::executeInternal
      * @magentoDbIsolation enabled
      */
     public function testLoggedLoginAction()
@@ -120,7 +120,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
     }
 
     /**
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Logout::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Logout::executeInternal
      * @magentoDbIsolation enabled
      */
     public function testLogoutAction()
@@ -138,7 +138,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
     }
 
     /**
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedJson::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedJson::executeInternal
      * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedJson::_getDeniedJson
      * @magentoDbIsolation enabled
      */
@@ -158,7 +158,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
     }
 
     /**
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedIframe::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedIframe::executeInternal
      * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedIframe::_getDeniedIframe
      * @magentoDbIsolation enabled
      */
diff --git a/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/IndexTest.php b/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/IndexTest.php
index 6575448913a..c5c1c1da1a4 100644
--- a/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/IndexTest.php
+++ b/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/IndexTest.php
@@ -12,7 +12,7 @@ class IndexTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
 {
     /**
      * Check not logged state
-     * @covers \Magento\Backend\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Index\Index::executeInternal
      */
     public function testNotLoggedIndexAction()
     {
@@ -27,7 +27,7 @@ class IndexTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
 
     /**
      * Check logged state
-     * @covers \Magento\Backend\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Index\Index::executeInternal
      * @magentoDbIsolation enabled
      */
     public function testLoggedIndexAction()
@@ -37,7 +37,7 @@ class IndexTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
     }
 
     /**
-     * @covers \Magento\Backend\Controller\Adminhtml\Index\GlobalSearch::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Index\GlobalSearch::executeInternal
      */
     public function testGlobalSearchAction()
     {
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/AttributeTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/AttributeTest.php
index 276f752779f..9f501e36fef 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/AttributeTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/AttributeTest.php
@@ -11,7 +11,7 @@ namespace Magento\Catalog\Controller\Adminhtml\Product\Action;
 class AttributeTest extends \Magento\TestFramework\TestCase\AbstractBackendController
 {
     /**
-     * @covers \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribute\Save::execute
+     * @covers \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribute\Save::executeInternal
      *
      * @magentoDataFixture Magento/Catalog/_files/product_simple.php
      */
@@ -46,7 +46,7 @@ class AttributeTest extends \Magento\TestFramework\TestCase\AbstractBackendContr
     }
 
     /**
-     * @covers \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribute\Validate::execute
+     * @covers \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribute\Validate::executeInternal
      *
      * @dataProvider validateActionDataProvider
      *
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Helper/Product/Stub/ProductControllerStub.php b/dev/tests/integration/testsuite/Magento/Catalog/Helper/Product/Stub/ProductControllerStub.php
index f4d8df15724..87dc9a7363b 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Helper/Product/Stub/ProductControllerStub.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Helper/Product/Stub/ProductControllerStub.php
@@ -8,7 +8,7 @@ namespace Magento\Catalog\Helper\Product\Stub;
 
 class ProductControllerStub extends \Magento\Catalog\Controller\Product
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/dev/tests/integration/testsuite/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRatesTest.php b/dev/tests/integration/testsuite/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRatesTest.php
index f170ad50089..7e845870171 100644
--- a/dev/tests/integration/testsuite/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRatesTest.php
+++ b/dev/tests/integration/testsuite/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRatesTest.php
@@ -121,6 +121,6 @@ class FetchRatesTest extends \Magento\TestFramework\TestCase\AbstractBackendCont
             $context,
             $registry
         );
-        $action->execute();
+        $action->executeInternal();
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Paypal/Controller/Billing/AgreementTest.php b/dev/tests/integration/testsuite/Magento/Paypal/Controller/Billing/AgreementTest.php
index 4a606bea53b..1b098debc33 100644
--- a/dev/tests/integration/testsuite/Magento/Paypal/Controller/Billing/AgreementTest.php
+++ b/dev/tests/integration/testsuite/Magento/Paypal/Controller/Billing/AgreementTest.php
@@ -106,7 +106,7 @@ class AgreementTest extends \Magento\TestFramework\TestCase\AbstractController
         $customerSession->setCustomerId($fixtureCustomerId);
 
         /** Execute SUT */
-        $billingAgreementController->execute();
+        $billingAgreementController->executeInternal();
 
         /** Ensure that billing agreement record was created in the DB */
         /** @var \Magento\Paypal\Model\ResourceModel\Billing\Agreement\Collection $billingAgreementCollection */
diff --git a/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Stub/OrderCreateStub.php b/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Stub/OrderCreateStub.php
index 39153b58370..0169bf3ff26 100644
--- a/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Stub/OrderCreateStub.php
+++ b/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Stub/OrderCreateStub.php
@@ -8,7 +8,7 @@ namespace Magento\Sales\Controller\Adminhtml\Order\Stub;
 
 class OrderCreateStub extends \Magento\Sales\Controller\Adminhtml\Order\Create
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/dev/tests/integration/testsuite/Magento/TestFixture/Controller/Adminhtml/Noroute.php b/dev/tests/integration/testsuite/Magento/TestFixture/Controller/Adminhtml/Noroute.php
index 0116aa59ffa..ae88fa63786 100644
--- a/dev/tests/integration/testsuite/Magento/TestFixture/Controller/Adminhtml/Noroute.php
+++ b/dev/tests/integration/testsuite/Magento/TestFixture/Controller/Adminhtml/Noroute.php
@@ -22,7 +22,7 @@ class Noroute implements \Magento\Framework\App\ActionInterface
      *
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
     }
 
diff --git a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php
index 052030a1552..031bab7ac1e 100644
--- a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php
+++ b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php
@@ -14,7 +14,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
 {
     /**
      * Test form existence
-     * @covers \Magento\User\Controller\Adminhtml\Auth\Forgotpassword::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\Forgotpassword::executeInternal
      */
     public function testFormForgotpasswordAction()
     {
@@ -26,7 +26,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     /**
      * Test redirection to startup page after success password recovering posting
      *
-     * @covers \Magento\User\Controller\Adminhtml\Auth\Forgotpassword::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\Forgotpassword::executeInternal
      */
     public function testForgotpasswordAction()
     {
@@ -44,7 +44,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     /**
      * Test reset password action
      *
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::_validateResetPasswordLinkToken
      * @magentoDataFixture Magento/User/_files/dummy_user.php
      */
@@ -73,7 +73,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::_validateResetPasswordLinkToken
      */
     public function testResetPasswordActionWithDummyToken()
@@ -89,7 +89,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
 
     /**
      * @dataProvider resetPasswordDataProvider
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::_validateResetPasswordLinkToken
      * @magentoDataFixture Magento/User/_files/dummy_user.php
      */
@@ -162,7 +162,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::_validateResetPasswordLinkToken
      * @magentoDataFixture Magento/User/_files/dummy_user.php
      */
@@ -184,7 +184,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::_validateResetPasswordLinkToken
      * @magentoDataFixture Magento/User/_files/dummy_user.php
      */
diff --git a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/User/RoleTest.php b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/User/RoleTest.php
index 932351fb427..384b2e3300e 100644
--- a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/User/RoleTest.php
+++ b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/User/RoleTest.php
@@ -27,7 +27,7 @@ class RoleTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\User\Role\Editrolegrid::execute
+     * @covers \Magento\User\Controller\Adminhtml\User\Role\Editrolegrid::executeInternal
      */
     public function testEditrolegridAction()
     {
@@ -38,7 +38,7 @@ class RoleTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\User\Role\RoleGrid::execute
+     * @covers \Magento\User\Controller\Adminhtml\User\Role\RoleGrid::executeInternal
      */
     public function testRoleGridAction()
     {
diff --git a/lib/internal/Magento/Framework/App/Action/Action.php b/lib/internal/Magento/Framework/App/Action/Action.php
index 310f2f57d4d..da7a42f6122 100644
--- a/lib/internal/Magento/Framework/App/Action/Action.php
+++ b/lib/internal/Magento/Framework/App/Action/Action.php
@@ -83,7 +83,7 @@ abstract class Action extends AbstractAction
      * @return ResponseInterface
      * @throws NotFoundException
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $this->_request = $request;
         $profilerKey = 'CONTROLLER_ACTION:' . $request->getFullActionName();
@@ -99,7 +99,7 @@ abstract class Action extends AbstractAction
         $result = null;
         if ($request->isDispatched() && !$this->_actionFlag->get('', self::FLAG_NO_DISPATCH)) {
             \Magento\Framework\Profiler::start('action_body');
-            $result = $this->execute();
+            $result = $this->executeInternal();
             \Magento\Framework\Profiler::start('postdispatch');
             if (!$this->_actionFlag->get('', self::FLAG_NO_POST_DISPATCH)) {
                 $this->_eventManager->dispatch(
@@ -122,7 +122,7 @@ abstract class Action extends AbstractAction
     /**
      * @return ResultInterface
      */
-    abstract protected function execute();
+    abstract protected function executeInternal();
 
     /**
      * Throw control to different action (control and module if was specified).
diff --git a/lib/internal/Magento/Framework/App/Action/Forward.php b/lib/internal/Magento/Framework/App/Action/Forward.php
index 611b7413b41..db11b6577f3 100644
--- a/lib/internal/Magento/Framework/App/Action/Forward.php
+++ b/lib/internal/Magento/Framework/App/Action/Forward.php
@@ -17,7 +17,7 @@ class Forward extends AbstractAction
      * @return ResponseInterface
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $request->setDispatched(false);
         return $this->_response;
diff --git a/lib/internal/Magento/Framework/App/Action/Redirect.php b/lib/internal/Magento/Framework/App/Action/Redirect.php
index 5904274e561..23b3cfcb90d 100644
--- a/lib/internal/Magento/Framework/App/Action/Redirect.php
+++ b/lib/internal/Magento/Framework/App/Action/Redirect.php
@@ -19,7 +19,7 @@ class Redirect extends AbstractAction
      * @return ResponseInterface
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         return $this->_response;
     }
diff --git a/lib/internal/Magento/Framework/App/ActionInterface.php b/lib/internal/Magento/Framework/App/ActionInterface.php
index 7e90fc49922..cf740250eb8 100644
--- a/lib/internal/Magento/Framework/App/ActionInterface.php
+++ b/lib/internal/Magento/Framework/App/ActionInterface.php
@@ -26,5 +26,5 @@ interface ActionInterface
      * @return \Magento\Framework\Controller\ResultInterface|ResponseInterface
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function dispatch(RequestInterface $request);
+    public function execute(RequestInterface $request);
 }
diff --git a/lib/internal/Magento/Framework/App/FrontController.php b/lib/internal/Magento/Framework/App/FrontController.php
index c3a9b6b390b..49630bd4e6d 100644
--- a/lib/internal/Magento/Framework/App/FrontController.php
+++ b/lib/internal/Magento/Framework/App/FrontController.php
@@ -51,7 +51,7 @@ class FrontController implements FrontControllerInterface
                     if ($actionInstance) {
                         $request->setDispatched(true);
                         $this->response->setNoCacheHeaders();
-                        $result = $actionInstance->dispatch($request);
+                        $result = $actionInstance->execute($request);
                         break;
                     }
                 } catch (\Magento\Framework\Exception\NotFoundException $e) {
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Action/ActionTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Action/ActionTest.php
index 44a79370181..e7b0a27ab64 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Action/ActionTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Action/ActionTest.php
@@ -170,7 +170,7 @@ class ActionTest extends \PHPUnit_Framework_TestCase
             $expectedEventParameters
         );
 
-        $this->assertEquals($this->_responseMock, $this->action->dispatch($this->_requestMock));
+        $this->assertEquals($this->_responseMock, $this->action->execute($this->_requestMock));
     }
 }
 
@@ -179,7 +179,7 @@ class ActionFake extends Action
     /**
      * Fake action to check a method call from a parent
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward(
             ActionTest::ACTION_NAME,
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Action/ForwardTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Action/ForwardTest.php
index 2d15e0a290b..5501546bc59 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Action/ForwardTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Action/ForwardTest.php
@@ -62,7 +62,7 @@ class ForwardTest extends \PHPUnit_Framework_TestCase
     public function testDispatch()
     {
         $this->request->expects($this->once())->method('setDispatched')->with(false);
-        $this->actionAbstract->dispatch($this->request);
+        $this->actionAbstract->execute($this->request);
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Action/Stub/ActionStub.php b/lib/internal/Magento/Framework/App/Test/Unit/Action/Stub/ActionStub.php
index a5c6d5cff8e..4c654992ab2 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Action/Stub/ActionStub.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Action/Stub/ActionStub.php
@@ -8,7 +8,7 @@ namespace Magento\Framework\App\Test\Unit\Action\Stub;
 
 class ActionStub extends \Magento\Framework\App\Action\Action
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/lib/internal/Magento/Framework/Controller/Index/Index.php b/lib/internal/Magento/Framework/Controller/Index/Index.php
index bc8b9d70810..ad0c9a85ba6 100644
--- a/lib/internal/Magento/Framework/Controller/Index/Index.php
+++ b/lib/internal/Magento/Framework/Controller/Index/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Framework\App\Action\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
     }
 }
diff --git a/lib/internal/Magento/Framework/Controller/Noroute/Index.php b/lib/internal/Magento/Framework/Controller/Noroute/Index.php
index 34154715366..cce6f4671f9 100644
--- a/lib/internal/Magento/Framework/Controller/Noroute/Index.php
+++ b/lib/internal/Magento/Framework/Controller/Noroute/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $status = $this->getRequest()->getParam('__status__');
         if (!$status instanceof \Magento\Framework\DataObject) {
-- 
GitLab


From 7d65c78f9f013208a2369c6801f840e91e4fe5ae Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 15:57:11 -0500
Subject: [PATCH 27/61] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Module/Di/App/Task/Operation/Interception.php      |  7 +------
 .../Di/App/Task/Operation/RepositoryGenerator.php      | 10 ++--------
 2 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
index 269e65bb48c..0c48cd4f519 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
@@ -5,7 +5,6 @@
  */
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
-use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder;
 use Magento\Framework\Interception\Code\Generator\Interceptor;
@@ -81,11 +80,7 @@ class Interception implements OperationInterface
                 $paths = (array)$paths;
             }
             foreach ($paths as $path) {
-                try {
-                    $classesList = array_merge($classesList, $this->classesScanner->getList($path));
-                } catch(FileSystemException $e) {
-                    // skip
-                }
+                $classesList = array_merge($classesList, $this->classesScanner->getList($path));
             }
         }
 
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
index d72b4c932a7..cf3c779a3f7 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
@@ -6,7 +6,6 @@
 
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
-use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Scanner;
 use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
@@ -63,14 +62,9 @@ class RepositoryGenerator implements OperationInterface
             return;
         }
 
-        try {
-            foreach ($this->data['paths'] as $path) {
-                $this->classesScanner->getList($path);
-            }
-        } catch(FileSystemException $e) {
-            // skip
+        foreach ($this->data['paths'] as $path) {
+            $this->classesScanner->getList($path);
         }
-
         $this->repositoryScanner->setUseAutoload(false);
         $files = [];
         foreach ($this->data['paths'] as $path) {
-- 
GitLab


From 369a00bc82b31a9618bdbb394c58c0f19aa83f01 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 16:00:09 -0500
Subject: [PATCH 28/61] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Di/App/Task/Operation/ApplicationCodeGenerator.php    | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
index 21254457ddf..dfaf5b99570 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
@@ -66,12 +66,8 @@ class ApplicationCodeGenerator implements OperationInterface
             }
             $files = [];
             foreach ($paths as $path) {
-                try {
-                    $this->classesScanner->getList($path);
-                    $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns']));
-                } catch(FileSystemException $e) {
-                    // skip
-                }
+                $this->classesScanner->getList($path);
+                $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns']));
             }
             $entities = $this->phpScanner->collectEntities($files['php']);
             foreach ($entities as $entityName) {
-- 
GitLab


From fded3fc769aac401a3869bc8049c87bc9126a22b Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Fri, 23 Oct 2015 16:06:26 -0500
Subject: [PATCH 29/61] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Changed affected plugins
---
 .../Backend/App/Action/Plugin/Authentication.php |  2 +-
 .../Backend/App/Action/Plugin/MassactionKey.php  |  2 +-
 .../App/Action/Plugin/AuthenticationTest.php     | 10 +++++-----
 .../Unit/App/Action/Plugin/MassactionKeyTest.php | 16 ++++++++--------
 .../Captcha/Model/Customer/Plugin/AjaxLogin.php  |  2 +-
 .../Unit/Model/Customer/Plugin/AjaxLoginTest.php | 16 ++++++++--------
 .../Customer/Controller/Plugin/Account.php       |  2 +-
 .../Customer/Model/App/Action/ContextPlugin.php  |  2 +-
 .../Test/Unit/Controller/Plugin/AccountTest.php  |  8 ++++----
 .../Unit/Model/App/Action/ContextPluginTest.php  |  6 +++---
 .../Multishipping/Controller/Checkout/Plugin.php |  2 +-
 .../Test/Unit/Controller/Checkout/PluginTest.php |  4 ++--
 .../App/Action/Plugin/BackendAuthentication.php  |  6 +++---
 .../Action/Plugin/BackendAuthenticationTest.php  |  4 ++--
 .../Controller/Order/Plugin/Authentication.php   |  2 +-
 .../Magento/Store/App/Action/Plugin/Context.php  |  2 +-
 .../Store/App/Action/Plugin/StoreCheck.php       |  2 +-
 .../Test/Unit/App/Action/Plugin/ContextTest.php  |  8 ++++----
 .../Unit/App/Action/Plugin/StoreCheckTest.php    |  8 ++++----
 .../Adminhtml/Product/Attribute/Plugin/Save.php  |  2 +-
 .../Product/Attribute/Plugin/SaveTest.php        |  4 ++--
 .../Tax/Model/App/Action/ContextPlugin.php       |  2 +-
 .../Test/Unit/App/Action/ContextPluginTest.php   |  8 ++++----
 .../Theme/Model/Theme/Plugin/Registration.php    |  2 +-
 .../Unit/Model/Theme/Plugin/RegistrationTest.php | 12 ++++++------
 .../Weee/Model/App/Action/ContextPlugin.php      |  2 +-
 .../Test/Unit/App/Action/ContextPluginTest.php   | 16 ++++++++--------
 .../Magento/Wishlist/Controller/Index/Plugin.php |  2 +-
 .../Test/Unit/Controller/Index/PluginTest.php    |  4 ++--
 .../Framework/App/Action/Plugin/Design.php       |  2 +-
 .../App/Test/Unit/Action/Plugin/DesignTest.php   |  4 ++--
 31 files changed, 82 insertions(+), 82 deletions(-)

diff --git a/app/code/Magento/Backend/App/Action/Plugin/Authentication.php b/app/code/Magento/Backend/App/Action/Plugin/Authentication.php
index bf8d90b931e..02cc404d4fc 100644
--- a/app/code/Magento/Backend/App/Action/Plugin/Authentication.php
+++ b/app/code/Magento/Backend/App/Action/Plugin/Authentication.php
@@ -101,7 +101,7 @@ class Authentication
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Backend\App\AbstractAction $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Backend/App/Action/Plugin/MassactionKey.php b/app/code/Magento/Backend/App/Action/Plugin/MassactionKey.php
index 767163afc6d..9e1f5c713ea 100644
--- a/app/code/Magento/Backend/App/Action/Plugin/MassactionKey.php
+++ b/app/code/Magento/Backend/App/Action/Plugin/MassactionKey.php
@@ -19,7 +19,7 @@ class MassactionKey
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Backend\App\AbstractAction $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php
index 476f6ca0310..052db1d9ae9 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php
@@ -45,7 +45,7 @@ class AuthenticationTest extends \PHPUnit_Framework_TestCase
         $this->plugin = null;
     }
 
-    public function testAroundDispatchProlongStorage()
+    public function testAroundExecuteProlongStorage()
     {
         $subject = $this->getMock('Magento\Backend\Controller\Adminhtml\Index', [], [], '', false);
         $request = $this->getMock('\Magento\Framework\App\Request\Http', ['getActionName'], [], '', false);
@@ -82,11 +82,11 @@ class AuthenticationTest extends \PHPUnit_Framework_TestCase
             return $expectedResult;
         };
 
-        $this->assertEquals($expectedResult, $this->plugin->aroundDispatch($subject, $proceed, $request));
+        $this->assertEquals($expectedResult, $this->plugin->aroundExecute($subject, $proceed, $request));
     }
 
     /**
-     * Calls aroundDispatch to access protected method _processNotLoggedInUser
+     * Calls aroundExecute to access protected method _processNotLoggedInUser
      *
      * Data provider supplies different possibilities of request parameters and properties
      * @dataProvider processNotLoggedInUserDataProvider
@@ -103,7 +103,7 @@ class AuthenticationTest extends \PHPUnit_Framework_TestCase
             ->disableOriginalConstructor()
             ->getMock();
 
-        // Stubs to control the flow of execution in aroundDispatch
+        // Stubs to control the flow of execution in aroundExecute
         $this->auth->expects($this->any())->method('getAuthStorage')->will($this->returnValue($storage));
         $request->expects($this->once())->method('getActionName')->will($this->returnValue('non/open/action/name'));
         $this->auth->expects($this->any())->method('getUser')->willReturn(false);
@@ -146,7 +146,7 @@ class AuthenticationTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->assertEquals($expectedResult, $this->plugin->aroundDispatch($subject, $proceed, $request));
+        $this->assertEquals($expectedResult, $this->plugin->aroundExecute($subject, $proceed, $request));
     }
 
     public function processNotLoggedInUserDataProvider()
diff --git a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php
index 87dad8b6edd..48ec3a9a592 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php
@@ -49,13 +49,13 @@ class MassactionKeyTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Backend\App\Action\Plugin\MassactionKey::aroundDispatch
+     * @covers \Magento\Backend\App\Action\Plugin\MassactionKey::aroundExecute
      *
      * @param $postData array|string
      * @param array $convertedData
-     * @dataProvider aroundDispatchDataProvider
+     * @dataProvider aroundExecuteDataProvider
      */
-    public function testAroundDispatchWhenMassactionPrepareKeyRequestExists($postData, $convertedData)
+    public function testAroundExecuteWhenMassactionPrepareKeyRequestExists($postData, $convertedData)
     {
         $this->requestMock->expects($this->at(0))
             ->method('getPost')
@@ -71,11 +71,11 @@ class MassactionKeyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals(
             'Expected',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 
-    public function aroundDispatchDataProvider()
+    public function aroundExecuteDataProvider()
     {
         return [
             'post_data_is_array' => [['key'], ['key']],
@@ -84,9 +84,9 @@ class MassactionKeyTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Backend\App\Action\Plugin\MassactionKey::aroundDispatch
+     * @covers \Magento\Backend\App\Action\Plugin\MassactionKey::aroundExecute
      */
-    public function testAroundDispatchWhenMassactionPrepareKeyRequestNotExists()
+    public function testAroundExecuteWhenMassactionPrepareKeyRequestNotExists()
     {
         $this->requestMock->expects($this->once())
             ->method('getPost')
@@ -97,7 +97,7 @@ class MassactionKeyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals(
             'Expected',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 }
diff --git a/app/code/Magento/Captcha/Model/Customer/Plugin/AjaxLogin.php b/app/code/Magento/Captcha/Model/Customer/Plugin/AjaxLogin.php
index 9f1dcff38b6..4cc0d629b01 100644
--- a/app/code/Magento/Captcha/Model/Customer/Plugin/AjaxLogin.php
+++ b/app/code/Magento/Captcha/Model/Customer/Plugin/AjaxLogin.php
@@ -57,7 +57,7 @@ class AjaxLogin
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function aroundExecute(
+    public function aroundExecuteInternal(
         \Magento\Customer\Controller\Ajax\Login $subject,
         \Closure $proceed
     ) {
diff --git a/app/code/Magento/Captcha/Test/Unit/Model/Customer/Plugin/AjaxLoginTest.php b/app/code/Magento/Captcha/Test/Unit/Model/Customer/Plugin/AjaxLoginTest.php
index 7a79969f8ef..3d92086223c 100644
--- a/app/code/Magento/Captcha/Test/Unit/Model/Customer/Plugin/AjaxLoginTest.php
+++ b/app/code/Magento/Captcha/Test/Unit/Model/Customer/Plugin/AjaxLoginTest.php
@@ -82,7 +82,7 @@ class AjaxLoginTest extends \PHPUnit_Framework_TestCase
         );
     }
 
-    public function testAroundExecute()
+    public function testAroundExecuteInternal()
     {
         $username = 'name';
         $captchaString = 'string';
@@ -102,10 +102,10 @@ class AjaxLoginTest extends \PHPUnit_Framework_TestCase
         $closure = function () {
             return 'result';
         };
-        $this->assertEquals('result', $this->model->aroundExecute($this->loginControllerMock, $closure));
+        $this->assertEquals('result', $this->model->aroundExecuteInternal($this->loginControllerMock, $closure));
     }
 
-    public function testAroundExecuteIncorrectCaptcha()
+    public function testAroundExecuteInternalIncorrectCaptcha()
     {
         $username = 'name';
         $captchaString = 'string';
@@ -131,15 +131,15 @@ class AjaxLoginTest extends \PHPUnit_Framework_TestCase
 
         $closure = function () {
         };
-        $this->assertEquals('response', $this->model->aroundExecute($this->loginControllerMock, $closure));
+        $this->assertEquals('response', $this->model->aroundExecuteInternal($this->loginControllerMock, $closure));
     }
 
     /**
-     * @dataProvider aroundExecuteCaptchaIsNotRequired
+     * @dataProvider aroundExecuteInternalCaptchaIsNotRequired
      * @param string $username
      * @param array $requestContent
      */
-    public function testAroundExecuteCaptchaIsNotRequired($username, $requestContent)
+    public function testAroundExecuteInternalCaptchaIsNotRequired($username, $requestContent)
     {
         $this->requestMock->expects($this->once())->method('getContent')->will($this->returnValue($requestContent));
 
@@ -151,13 +151,13 @@ class AjaxLoginTest extends \PHPUnit_Framework_TestCase
         $closure = function () {
             return 'result';
         };
-        $this->assertEquals('result', $this->model->aroundExecute($this->loginControllerMock, $closure));
+        $this->assertEquals('result', $this->model->aroundExecuteInternal($this->loginControllerMock, $closure));
     }
 
     /**
      * @return array
      */
-    public function aroundExecuteCaptchaIsNotRequired()
+    public function aroundExecuteInternalCaptchaIsNotRequired()
     {
         return [
             [
diff --git a/app/code/Magento/Customer/Controller/Plugin/Account.php b/app/code/Magento/Customer/Controller/Plugin/Account.php
index c035c983d80..10f2c8fc15f 100644
--- a/app/code/Magento/Customer/Controller/Plugin/Account.php
+++ b/app/code/Magento/Customer/Controller/Plugin/Account.php
@@ -41,7 +41,7 @@ class Account
      * @param RequestInterface $request
      * @return mixed
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         ActionInterface $subject,
         \Closure $proceed,
         RequestInterface $request
diff --git a/app/code/Magento/Customer/Model/App/Action/ContextPlugin.php b/app/code/Magento/Customer/Model/App/Action/ContextPlugin.php
index a5b268eaa17..8198a70957f 100644
--- a/app/code/Magento/Customer/Model/App/Action/ContextPlugin.php
+++ b/app/code/Magento/Customer/Model/App/Action/ContextPlugin.php
@@ -43,7 +43,7 @@ class ContextPlugin
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Plugin/AccountTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Plugin/AccountTest.php
index 8146fce1aa3..2c651155321 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Plugin/AccountTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Plugin/AccountTest.php
@@ -87,9 +87,9 @@ class AccountTest extends \PHPUnit_Framework_TestCase
      * @param boolean $isActionAllowed
      * @param boolean $isAuthenticated
      *
-     * @dataProvider dataProviderAroundDispatch
+     * @dataProvider dataProviderAroundExecute
      */
-    public function testAroundDispatch(
+    public function testAroundExecute(
         $action,
         $allowedActions,
         $isActionAllowed,
@@ -128,11 +128,11 @@ class AccountTest extends \PHPUnit_Framework_TestCase
         $plugin = new Account($this->session, $allowedActions);
         $this->assertEquals(
             self::EXPECTED_VALUE,
-            $plugin->aroundDispatch($this->subject, $this->proceed, $this->request)
+            $plugin->aroundExecute($this->subject, $this->proceed, $this->request)
         );
     }
 
-    public function dataProviderAroundDispatch()
+    public function dataProviderAroundExecute()
     {
         return [
             [
diff --git a/app/code/Magento/Customer/Test/Unit/Model/App/Action/ContextPluginTest.php b/app/code/Magento/Customer/Test/Unit/Model/App/Action/ContextPluginTest.php
index 4d338cef2aa..f246b0e9559 100644
--- a/app/code/Magento/Customer/Test/Unit/Model/App/Action/ContextPluginTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Model/App/Action/ContextPluginTest.php
@@ -74,9 +74,9 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * Test aroundDispatch
+     * Test aroundExecute
      */
-    public function testAroundDispatch()
+    public function testAroundExecute()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('getCustomerGroupId')
@@ -96,7 +96,7 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
             );
         $this->assertEquals(
             'ExpectedValue',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 }
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Plugin.php b/app/code/Magento/Multishipping/Controller/Checkout/Plugin.php
index 3467cc8b9a8..4fbd38f1178 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Plugin.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Plugin.php
@@ -28,7 +28,7 @@ class Plugin
      * @return void
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function beforeExecute(\Magento\Framework\App\Action\Action $subject)
+    public function beforeExecuteInternal(\Magento\Framework\App\Action\Action $subject)
     {
         $this->cart->getQuote()->setIsMultiShipping(0);
     }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/PluginTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/PluginTest.php
index 9cfb6a0c75f..dc9a3056acd 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/PluginTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/PluginTest.php
@@ -39,10 +39,10 @@ class PluginTest extends \PHPUnit_Framework_TestCase
         $this->object = new \Magento\Multishipping\Controller\Checkout\Plugin($this->cartMock);
     }
 
-    public function testExecuteTurnsOffMultishippingModeOnQuote()
+    public function testExecuteInternalTurnsOffMultishippingModeOnQuote()
     {
         $subject = $this->getMock('Magento\Checkout\Controller\Index\Index', [], [], '', false);
         $this->quoteMock->expects($this->once())->method('setIsMultiShipping')->with(0);
-        $this->object->beforeExecute($subject);
+        $this->object->beforeExecuteInternal($subject);
     }
 }
diff --git a/app/code/Magento/Rss/App/Action/Plugin/BackendAuthentication.php b/app/code/Magento/Rss/App/Action/Plugin/BackendAuthentication.php
index 5bdb72f7036..f3e450c8c72 100644
--- a/app/code/Magento/Rss/App/Action/Plugin/BackendAuthentication.php
+++ b/app/code/Magento/Rss/App/Action/Plugin/BackendAuthentication.php
@@ -95,7 +95,7 @@ class BackendAuthentication extends \Magento\Backend\App\Action\Plugin\Authentic
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function aroundDispatch(AbstractAction $subject, \Closure $proceed, RequestInterface $request)
+    public function aroundExecute(AbstractAction $subject, \Closure $proceed, RequestInterface $request)
     {
         $resource = isset($this->aclResources[$request->getControllerName()])
             ? isset($this->aclResources[$request->getControllerName()][$request->getActionName()])
@@ -107,7 +107,7 @@ class BackendAuthentication extends \Magento\Backend\App\Action\Plugin\Authentic
         $resourceType = isset($this->aclResources[$type]) ? $this->aclResources[$type] : null;
 
         if (!$resource || !$resourceType) {
-            return parent::aroundDispatch($subject, $proceed, $request);
+            return parent::aroundExecute($subject, $proceed, $request);
         }
 
         $session = $this->_auth->getAuthStorage();
@@ -129,6 +129,6 @@ class BackendAuthentication extends \Magento\Backend\App\Action\Plugin\Authentic
             return $this->_response;
         }
 
-        return parent::aroundDispatch($subject, $proceed, $request);
+        return parent::aroundExecute($subject, $proceed, $request);
     }
 }
diff --git a/app/code/Magento/Rss/Test/Unit/App/Action/Plugin/BackendAuthenticationTest.php b/app/code/Magento/Rss/Test/Unit/App/Action/Plugin/BackendAuthenticationTest.php
index 79685fb88a3..240da650216 100644
--- a/app/code/Magento/Rss/Test/Unit/App/Action/Plugin/BackendAuthenticationTest.php
+++ b/app/code/Magento/Rss/Test/Unit/App/Action/Plugin/BackendAuthenticationTest.php
@@ -7,7 +7,7 @@ namespace Magento\Rss\Test\Unit\App\Action\Plugin;
 
 class BackendAuthenticationTest extends \PHPUnit_Framework_TestCase
 {
-    public function testAroundDispatch()
+    public function testAroundExecute()
     {
         /** @var \Magento\Backend\App\AbstractAction|\PHPUnit_Framework_MockObject_MockObject $subject */
         $subject = $this->getMock('Magento\Backend\App\AbstractAction', [], [], '', false);
@@ -69,7 +69,7 @@ class BackendAuthenticationTest extends \PHPUnit_Framework_TestCase
             );
         $this->assertSame(
             $response,
-            $plugin->aroundDispatch($subject, $proceed, $request)
+            $plugin->aroundExecute($subject, $proceed, $request)
         );
     }
 }
diff --git a/app/code/Magento/Sales/Controller/Order/Plugin/Authentication.php b/app/code/Magento/Sales/Controller/Order/Plugin/Authentication.php
index e496f13e7a6..fed11efb271 100644
--- a/app/code/Magento/Sales/Controller/Order/Plugin/Authentication.php
+++ b/app/code/Magento/Sales/Controller/Order/Plugin/Authentication.php
@@ -40,7 +40,7 @@ class Authentication
      * @return void
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function beforeDispatch(\Magento\Framework\App\ActionInterface $subject, RequestInterface $request)
+    public function beforeExecute(\Magento\Framework\App\ActionInterface $subject, RequestInterface $request)
     {
         $loginUrl = $this->customerUrl->getLoginUrl();
 
diff --git a/app/code/Magento/Store/App/Action/Plugin/Context.php b/app/code/Magento/Store/App/Action/Plugin/Context.php
index 6e3e3f4e4f5..533104a5689 100644
--- a/app/code/Magento/Store/App/Action/Plugin/Context.php
+++ b/app/code/Magento/Store/App/Action/Plugin/Context.php
@@ -69,7 +69,7 @@ class Context
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Store/App/Action/Plugin/StoreCheck.php b/app/code/Magento/Store/App/Action/Plugin/StoreCheck.php
index 46fa0bc004a..8519652f11b 100644
--- a/app/code/Magento/Store/App/Action/Plugin/StoreCheck.php
+++ b/app/code/Magento/Store/App/Action/Plugin/StoreCheck.php
@@ -31,7 +31,7 @@ class StoreCheck
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      * @throws \Magento\Framework\Exception\State\InitException
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Store/Test/Unit/App/Action/Plugin/ContextTest.php b/app/code/Magento/Store/Test/Unit/App/Action/Plugin/ContextTest.php
index e6c679b2dd4..5614f453839 100644
--- a/app/code/Magento/Store/Test/Unit/App/Action/Plugin/ContextTest.php
+++ b/app/code/Magento/Store/Test/Unit/App/Action/Plugin/ContextTest.php
@@ -185,7 +185,7 @@ class ContextTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue(self::CURRENCY_CURRENT_STORE));
     }
 
-    public function testAroundDispatchCurrencyFromSession()
+    public function testAroundExecuteCurrencyFromSession()
     {
         $this->sessionMock->expects($this->any())
             ->method('getCurrencyCode')
@@ -201,11 +201,11 @@ class ContextTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals(
             'ExpectedValue',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 
-    public function testDispatchCurrentStoreCurrency()
+    public function testExecuteCurrentStoreCurrency()
     {
         $this->httpContextMock->expects($this->at(0))
             ->method('setValue')
@@ -217,7 +217,7 @@ class ContextTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals(
             'ExpectedValue',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 }
diff --git a/app/code/Magento/Store/Test/Unit/App/Action/Plugin/StoreCheckTest.php b/app/code/Magento/Store/Test/Unit/App/Action/Plugin/StoreCheckTest.php
index feaca2ad45e..e83d629fb81 100644
--- a/app/code/Magento/Store/Test/Unit/App/Action/Plugin/StoreCheckTest.php
+++ b/app/code/Magento/Store/Test/Unit/App/Action/Plugin/StoreCheckTest.php
@@ -64,21 +64,21 @@ class StoreCheckTest extends \PHPUnit_Framework_TestCase
      * @expectedException \Magento\Framework\Exception\State\InitException
      * @expectedExceptionMessage Current store is not active.
      */
-    public function testAroundDispatchWhenStoreNotActive()
+    public function testAroundExecuteWhenStoreNotActive()
     {
         $this->_storeMock->expects($this->any())->method('isActive')->will($this->returnValue(false));
         $this->assertEquals(
             'Expected',
-            $this->_plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->_plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 
-    public function testAroundDispatchWhenStoreIsActive()
+    public function testAroundExecuteWhenStoreIsActive()
     {
         $this->_storeMock->expects($this->any())->method('isActive')->will($this->returnValue(true));
         $this->assertEquals(
             'Expected',
-            $this->_plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->_plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 
diff --git a/app/code/Magento/Swatches/Controller/Adminhtml/Product/Attribute/Plugin/Save.php b/app/code/Magento/Swatches/Controller/Adminhtml/Product/Attribute/Plugin/Save.php
index e9da825c657..1b9259fb0c6 100644
--- a/app/code/Magento/Swatches/Controller/Adminhtml/Product/Attribute/Plugin/Save.php
+++ b/app/code/Magento/Swatches/Controller/Adminhtml/Product/Attribute/Plugin/Save.php
@@ -22,7 +22,7 @@ class Save
      * @return array
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function beforeDispatch(Attribute\Save $subject, RequestInterface $request)
+    public function beforeExecute(Attribute\Save $subject, RequestInterface $request)
     {
         $data = $request->getPostValue();
         if (isset($data['frontend_input'])) {
diff --git a/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Product/Attribute/Plugin/SaveTest.php b/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Product/Attribute/Plugin/SaveTest.php
index c1d0356f66d..ab54e2ceca4 100644
--- a/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Product/Attribute/Plugin/SaveTest.php
+++ b/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Product/Attribute/Plugin/SaveTest.php
@@ -11,7 +11,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
     /**
      * @dataProvider dataRequest
      */
-    public function testBeforeDispatch($dataRequest, $runTimes)
+    public function testBeforeExecute($dataRequest, $runTimes)
     {
         $subject = $this->getMock('\Magento\Catalog\Controller\Adminhtml\Product\Attribute\Save', [], [], '', false);
         $request = $this->getMock(
@@ -40,7 +40,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $request->expects($this->once())->method('getPostValue')->willReturn($dataRequest);
         $request->expects($this->exactly($runTimes))->method('setPostValue')->willReturn($this->returnSelf());
 
-        $controller->beforeDispatch($subject, $request);
+        $controller->beforeExecute($subject, $request);
     }
 
     public function dataRequest()
diff --git a/app/code/Magento/Tax/Model/App/Action/ContextPlugin.php b/app/code/Magento/Tax/Model/App/Action/ContextPlugin.php
index 70c1e600071..408cb5aad84 100644
--- a/app/code/Magento/Tax/Model/App/Action/ContextPlugin.php
+++ b/app/code/Magento/Tax/Model/App/Action/ContextPlugin.php
@@ -79,7 +79,7 @@ class ContextPlugin
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Tax/Test/Unit/App/Action/ContextPluginTest.php b/app/code/Magento/Tax/Test/Unit/App/Action/ContextPluginTest.php
index f8ab3eb71e9..7fc90aa1d64 100644
--- a/app/code/Magento/Tax/Test/Unit/App/Action/ContextPluginTest.php
+++ b/app/code/Magento/Tax/Test/Unit/App/Action/ContextPluginTest.php
@@ -111,9 +111,9 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
      * @param bool $cache
      * @param bool $taxEnabled
      * @param bool $loggedIn
-     * @dataProvider dataProviderAroundDispatch
+     * @dataProvider dataProviderAroundExecute
      */
-    public function testAroundDispatch($cache, $taxEnabled, $loggedIn)
+    public function testAroundExecute($cache, $taxEnabled, $loggedIn)
     {
         $this->customerSessionMock->expects($this->any())
             ->method('isLoggedIn')
@@ -164,14 +164,14 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
             $proceed = function ($request) use ($expectedResult) {
                 return $expectedResult;
             };
-            $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+            $this->contextPlugin->aroundExecute($action, $proceed, $request);
         }
     }
 
     /**
      * @return array
      */
-    public function dataProviderAroundDispatch()
+    public function dataProviderAroundExecute()
     {
         return [
             [false, false, false],
diff --git a/app/code/Magento/Theme/Model/Theme/Plugin/Registration.php b/app/code/Magento/Theme/Model/Theme/Plugin/Registration.php
index 0f469442c15..1e0f900a6ec 100644
--- a/app/code/Magento/Theme/Model/Theme/Plugin/Registration.php
+++ b/app/code/Magento/Theme/Model/Theme/Plugin/Registration.php
@@ -47,7 +47,7 @@ class Registration
      * @return void
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function beforeDispatch(
+    public function beforeExecute(
         AbstractAction $subject,
         RequestInterface $request
     ) {
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Theme/Plugin/RegistrationTest.php b/app/code/Magento/Theme/Test/Unit/Model/Theme/Plugin/RegistrationTest.php
index faf0bdf9838..d9ac94ddbe7 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Theme/Plugin/RegistrationTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Theme/Plugin/RegistrationTest.php
@@ -35,30 +35,30 @@ class RegistrationTest extends \PHPUnit_Framework_TestCase
         $this->appState = $this->getMock('Magento\Framework\App\State', [], [], '', false);
     }
 
-    public function testBeforeDispatch()
+    public function testBeforeExecute()
     {
         $this->appState->expects($this->once())->method('getMode')->willReturn('default');
         $this->themeRegistration->expects($this->once())->method('register');
         $this->logger->expects($this->never())->method('critical');
         $object = new Registration($this->themeRegistration, $this->logger, $this->appState);
-        $object->beforeDispatch($this->abstractAction, $this->request);
+        $object->beforeExecute($this->abstractAction, $this->request);
     }
 
-    public function testBeforeDispatchWithProductionMode()
+    public function testBeforeExecuteWithProductionMode()
     {
         $this->appState->expects($this->once())->method('getMode')->willReturn('production');
         $this->themeRegistration->expects($this->never())->method('register');
         $this->logger->expects($this->never())->method('critical');
         $object = new Registration($this->themeRegistration, $this->logger, $this->appState);
-        $object->beforeDispatch($this->abstractAction, $this->request);
+        $object->beforeExecute($this->abstractAction, $this->request);
     }
 
-    public function testBeforeDispatchWithException()
+    public function testBeforeExecuteWithException()
     {
         $exception = new LocalizedException(new Phrase('Phrase'));
         $this->themeRegistration->expects($this->once())->method('register')->willThrowException($exception);
         $this->logger->expects($this->once())->method('critical');
         $object = new Registration($this->themeRegistration, $this->logger, $this->appState);
-        $object->beforeDispatch($this->abstractAction, $this->request);
+        $object->beforeExecute($this->abstractAction, $this->request);
     }
 }
diff --git a/app/code/Magento/Weee/Model/App/Action/ContextPlugin.php b/app/code/Magento/Weee/Model/App/Action/ContextPlugin.php
index 19502e3d794..052e4679027 100644
--- a/app/code/Magento/Weee/Model/App/Action/ContextPlugin.php
+++ b/app/code/Magento/Weee/Model/App/Action/ContextPlugin.php
@@ -100,7 +100,7 @@ class ContextPlugin
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Weee/Test/Unit/App/Action/ContextPluginTest.php b/app/code/Magento/Weee/Test/Unit/App/Action/ContextPluginTest.php
index d910384f79e..5f771f2748e 100644
--- a/app/code/Magento/Weee/Test/Unit/App/Action/ContextPluginTest.php
+++ b/app/code/Magento/Weee/Test/Unit/App/Action/ContextPluginTest.php
@@ -123,7 +123,7 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         );
     }
 
-    public function testAroundDispatchBasedOnDefault()
+    public function testAroundExecuteBasedOnDefault()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('isLoggedIn')
@@ -191,10 +191,10 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+        $this->contextPlugin->aroundExecute($action, $proceed, $request);
     }
 
-    public function testAroundDispatchBasedOnOrigin()
+    public function testAroundExecuteBasedOnOrigin()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('isLoggedIn')
@@ -223,10 +223,10 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+        $this->contextPlugin->aroundExecute($action, $proceed, $request);
     }
 
-    public function testAroundDispatchBasedOnBilling()
+    public function testAroundExecuteBasedOnBilling()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('isLoggedIn')
@@ -298,10 +298,10 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+        $this->contextPlugin->aroundExecute($action, $proceed, $request);
     }
 
-    public function testAroundDispatchBasedOnShipping()
+    public function testAroundExecuteBasedOnShipping()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('isLoggedIn')
@@ -373,6 +373,6 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+        $this->contextPlugin->aroundExecute($action, $proceed, $request);
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Plugin.php b/app/code/Magento/Wishlist/Controller/Index/Plugin.php
index 3f179a2e9a6..10e6cdd0b0c 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Plugin.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Plugin.php
@@ -60,7 +60,7 @@ class Plugin
      * @return void
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function beforeDispatch(\Magento\Framework\App\ActionInterface $subject, RequestInterface $request)
+    public function beforeExecute(\Magento\Framework\App\ActionInterface $subject, RequestInterface $request)
     {
         if ($this->authenticationState->isEnabled() && !$this->customerSession->authenticate()) {
             $subject->getActionFlag()->set('', 'no-dispatch', true);
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/PluginTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/PluginTest.php
index 4c905abca28..011eb067e36 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/PluginTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/PluginTest.php
@@ -66,7 +66,7 @@ class PluginTest extends \PHPUnit_Framework_TestCase
     /**
      * @expectedException \Magento\Framework\Exception\NotFoundException
      */
-    public function testBeforeDispatch()
+    public function testBeforeExecute()
     {
         $actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', [], [], '', false);
         $indexController = $this->getMock('Magento\Wishlist\Controller\Index\Index', [], [], '', false);
@@ -124,6 +124,6 @@ class PluginTest extends \PHPUnit_Framework_TestCase
             ->with('wishlist/general/active')
             ->willReturn(false);
 
-        $this->getPlugin()->beforeDispatch($indexController, $this->request);
+        $this->getPlugin()->beforeExecute($indexController, $this->request);
     }
 }
diff --git a/lib/internal/Magento/Framework/App/Action/Plugin/Design.php b/lib/internal/Magento/Framework/App/Action/Plugin/Design.php
index 5bb0556fe64..3d2f794ad14 100644
--- a/lib/internal/Magento/Framework/App/Action/Plugin/Design.php
+++ b/lib/internal/Magento/Framework/App/Action/Plugin/Design.php
@@ -30,7 +30,7 @@ class Design
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Action/Plugin/DesignTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Action/Plugin/DesignTest.php
index 2e86c5da431..401e9896155 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Action/Plugin/DesignTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Action/Plugin/DesignTest.php
@@ -7,7 +7,7 @@ namespace Magento\Framework\App\Test\Unit\Action\Plugin;
 
 class DesignTest extends \PHPUnit_Framework_TestCase
 {
-    public function testAroundDispatch()
+    public function testAroundExecute()
     {
         $subjectMock = $this->getMock('Magento\Framework\App\Action\Action', [], [], '', false);
         $designLoaderMock = $this->getMock('Magento\Framework\View\DesignLoader', [], [], '', false);
@@ -17,6 +17,6 @@ class DesignTest extends \PHPUnit_Framework_TestCase
         $requestMock = $this->getMock('Magento\Framework\App\RequestInterface');
         $plugin = new \Magento\Framework\App\Action\Plugin\Design($designLoaderMock);
         $designLoaderMock->expects($this->once())->method('load');
-        $this->assertEquals('Expected', $plugin->aroundDispatch($subjectMock, $closureMock, $requestMock));
+        $this->assertEquals('Expected', $plugin->aroundExecute($subjectMock, $closureMock, $requestMock));
     }
 }
-- 
GitLab


From 4fda69b73e93e2f044fda1483a68a2a39e0a6f19 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 22:59:34 -0500
Subject: [PATCH 30/61] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Module/Di/App/Task/Operation/ApplicationCodeGenerator.php   | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
index dfaf5b99570..b18f413fb68 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
@@ -36,6 +36,8 @@ class ApplicationCodeGenerator implements OperationInterface
 
     /**
      * @param ClassesScanner $classesScanner
+     * @param PhpScanner $phpScanner
+     * @param DirectoryScanner $directoryScanner
      * @param array $data
      */
     public function __construct(
-- 
GitLab


From 3b0e30ee16f40f9cffc926f3932c19631af1fd0f Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Sat, 24 Oct 2015 08:13:31 -0500
Subject: [PATCH 31/61] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Fix unit test failures
---
 .../Directpost/Payment/RedirectTest.php       | 17 +++++++----
 .../Adminhtml/Cache/CleanMediaTest.php        |  5 ++--
 .../Adminhtml/Dashboard/AbstractTestCase.php  |  4 +--
 .../Adminhtml/Dashboard/CustomersMostTest.php |  2 +-
 .../Dashboard/CustomersNewestTest.php         |  2 +-
 .../Dashboard/ProductsViewedTest.php          |  2 +-
 .../Controller/Creditcard/AjaxSaveTest.php    | 11 ++++----
 .../Creditcard/DeleteConfirmTest.php          | 28 +++++++++++--------
 .../Unit/Controller/Creditcard/DeleteTest.php | 23 +++++++--------
 .../Unit/Controller/Creditcard/EditTest.php   | 23 +++++++--------
 .../Controller/Creditcard/GenerateTest.php    | 14 ++++++----
 .../Unit/Controller/Creditcard/IndexTest.php  |  7 +++--
 .../Controller/Creditcard/NewCardTest.php     |  7 +++--
 .../Unit/Controller/Creditcard/SaveTest.php   |  7 +++--
 .../Unit/Controller/MyCreditCardsTest.php     |  8 +++---
 .../Adminhtml/Email/Template/IndexTest.php    |  6 ++--
 .../Test/Unit/Controller/Ipn/IndexTest.php    |  4 +--
 .../Adminhtml/Order/Creditmemo/SaveTest.php   |  6 ++--
 .../Test/Unit/Controller/Index/IndexTest.php  |  5 ++--
 .../Adminhtml/Rate/AjaxLoadTest.php           | 21 ++++++++------
 .../Tax/IgnoreTaxNotificationTest.php         |  7 +++--
 .../System/Design/Theme/GridTest.php          |  6 ++--
 .../App/Test/Unit/FrontControllerTest.php     |  4 +--
 .../App/Test/Unit/Router/ActionListTest.php   |  2 +-
 .../Test/Unit/Controller/Index/IndexTest.php  |  4 +--
 .../Test/Unit/Controller/NorouteTest.php      |  8 +++---
 26 files changed, 128 insertions(+), 105 deletions(-)

diff --git a/app/code/Magento/Authorizenet/Test/Unit/Controller/Adminhtml/Authorizenet/Directpost/Payment/RedirectTest.php b/app/code/Magento/Authorizenet/Test/Unit/Controller/Adminhtml/Authorizenet/Directpost/Payment/RedirectTest.php
index ad7bb7b5c02..ff31be44371 100644
--- a/app/code/Magento/Authorizenet/Test/Unit/Controller/Adminhtml/Authorizenet/Directpost/Payment/RedirectTest.php
+++ b/app/code/Magento/Authorizenet/Test/Unit/Controller/Adminhtml/Authorizenet/Directpost/Payment/RedirectTest.php
@@ -96,6 +96,11 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
      */
     protected $helperMock;
 
+    /**
+     * @var Redirect|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $controller;
+
     protected function setUp()
     {
         $this->directpostSessionMock = $this->getMockBuilder('Magento\Authorizenet\Model\Directpost\Session')
@@ -196,7 +201,7 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
         );
     }
 
-    public function testExecuteErrorMsgWithoutCancelOrder()
+    public function testExecuteInternalErrorMsgWithoutCancelOrder()
     {
         $params = ['success' => 0, 'error_msg' => 'Error message'];
         $incrementId = 1;
@@ -238,10 +243,10 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
             ->method('register')
             ->with(Iframe::REGISTRY_KEY);
 
-        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->execute());
+        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->executeInternal());
     }
 
-    public function testExecuteErrorMsgWithCancelOrder()
+    public function testExecuteInternalErrorMsgWithCancelOrder()
     {
         $params = ['success' => 0, 'error_msg' => 'Error message', 'x_invoice_num' => 1];
         $incrementId = 1;
@@ -273,10 +278,10 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
             ->method('register')
             ->with(Iframe::REGISTRY_KEY);
 
-        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->execute());
+        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->executeInternal());
     }
 
-    public function testExecuteSuccess()
+    public function testExecuteInternalSuccess()
     {
         $params = ['success' => 1, 'controller_action_name' => 'action', 'x_invoice_num' => 1];
         $this->requestMock->expects($this->once())
@@ -307,6 +312,6 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
             ->method('register')
             ->with(Iframe::REGISTRY_KEY);
 
-        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->execute());
+        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanMediaTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanMediaTest.php
index 36db725f9a9..1e6619c6f8d 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanMediaTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanMediaTest.php
@@ -10,7 +10,7 @@ namespace Magento\Backend\Test\Unit\Controller\Adminhtml\Cache;
 
 class CleanMediaTest extends \PHPUnit_Framework_TestCase
 {
-    public function testExecute()
+    public function testExecuteInternal()
     {
         // Wire object with mocks
         $response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
@@ -62,6 +62,7 @@ class CleanMediaTest extends \PHPUnit_Framework_TestCase
         $context->expects($this->once())->method('getMessageManager')->willReturn($messageManager);
         $context->expects($this->once())->method('getResultFactory')->willReturn($resultFactory);
 
+        /** @var \Magento\Backend\Controller\Adminhtml\Cache\CleanMedia $controller */
         $controller = $helper->getObject(
             'Magento\Backend\Controller\Adminhtml\Cache\CleanMedia',
             [
@@ -90,6 +91,6 @@ class CleanMediaTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
 
         // Run
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/AbstractTestCase.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/AbstractTestCase.php
index 986658d7153..3e67b831162 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/AbstractTestCase.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/AbstractTestCase.php
@@ -19,7 +19,7 @@ class AbstractTestCase extends \PHPUnit_Framework_TestCase
      * @param $controllerName
      * @param $blockName
      */
-    protected function assertExecute($controllerName, $blockName)
+    protected function assertExecuteInternal($controllerName, $blockName)
     {
         $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $outPut = "data";
@@ -47,7 +47,7 @@ class AbstractTestCase extends \PHPUnit_Framework_TestCase
                 'layoutFactory' => $layoutFactoryMock
             ]
         );
-        $result = $controller->execute();
+        $result = $controller->executeInternal();
         $this->assertInstanceOf('Magento\Framework\Controller\Result\Raw', $result);
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersMostTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersMostTest.php
index bb7cb6ff15e..f60a0fc9307 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersMostTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersMostTest.php
@@ -15,7 +15,7 @@ class CustomersMostTest extends AbstractTestCase
 {
     public function testExecute()
     {
-        $this->assertExecute(
+        $this->assertExecuteInternal(
             'Magento\Backend\Controller\Adminhtml\Dashboard\CustomersMost',
             'Magento\Backend\Block\Dashboard\Tab\Customers\Most'
         );
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersNewestTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersNewestTest.php
index d9fdd7366ef..6d229559e58 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersNewestTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersNewestTest.php
@@ -15,7 +15,7 @@ class CustomersNewestTest extends AbstractTestCase
 {
     public function testExecute()
     {
-        $this->assertExecute(
+        $this->assertExecuteInternal(
             'Magento\Backend\Controller\Adminhtml\Dashboard\CustomersNewest',
             'Magento\Backend\Block\Dashboard\Tab\Customers\Newest'
         );
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/ProductsViewedTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/ProductsViewedTest.php
index 145a8a14077..4efdf2c4edf 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/ProductsViewedTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/ProductsViewedTest.php
@@ -15,7 +15,7 @@ class ProductsViewedTest extends AbstractTestCase
 {
     public function testExecute()
     {
-        $this->assertExecute(
+        $this->assertExecuteInternal(
             'Magento\Backend\Controller\Adminhtml\Dashboard\ProductsViewed',
             'Magento\Backend\Block\Dashboard\Tab\Products\Viewed'
         );
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/AjaxSaveTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/AjaxSaveTest.php
index 53e070f5843..ff09bdb9e32 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/AjaxSaveTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/AjaxSaveTest.php
@@ -88,8 +88,8 @@ class AjaxSaveTest extends \PHPUnit_Framework_TestCase
             ->method('addSuccess')
             ->with($phrase);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\AjaxSave $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\AjaxSave',
             [
                 'request' => $this->request,
@@ -98,7 +98,7 @@ class AjaxSaveTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultJson, $notification->execute());
+        $this->assertSame($this->resultJson, $controller->executeInternal());
     }
 
     /**
@@ -124,7 +124,8 @@ class AjaxSaveTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\AjaxSave $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\AjaxSave',
             [
                 'request' => $this->request,
@@ -134,6 +135,6 @@ class AjaxSaveTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultJson, $notification->execute());
+        $this->assertSame($this->resultJson, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteConfirmTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteConfirmTest.php
index a3047c7cac4..13029d4d144 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteConfirmTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteConfirmTest.php
@@ -66,7 +66,7 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts successfully deleted
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('Credit card successfully deleted');
@@ -93,7 +93,8 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('addSuccess')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\DeleteConfirm $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\DeleteConfirm',
             [
                 'request' => $this->request,
@@ -103,13 +104,13 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirect for non valid token param
      */
-    public function testExecuteNoTokenRedirect()
+    public function testExecuteInternalNoTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -128,7 +129,8 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('setPath')
             ->willReturnSelf();
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Edit $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Edit',
             [
                 'request' => $this->request,
@@ -137,13 +139,13 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirects for can't delete card logic
      */
-    public function testExecuteNonExistingTokenRedirect()
+    public function testExecuteInternalNonExistingTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('a,b,c');
@@ -172,7 +174,8 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\DeleteConfirm $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\DeleteConfirm',
             [
                 'request' => $this->request,
@@ -182,13 +185,13 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts failed deletion
      */
-    public function testExecuteSaveFail()
+    public function testExecuteInternalSaveFail()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('There was error deleting the credit card');
@@ -214,7 +217,8 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\DeleteConfirm $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\DeleteConfirm',
             [
                 'request' => $this->request,
@@ -224,6 +228,6 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteTest.php
index 504c186ad11..76c7fa5b752 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteTest.php
@@ -106,7 +106,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -138,8 +138,8 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->method('getConfig')
             ->willReturn($this->pageConfig);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Delete $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Delete',
             [
                 'request' => $this->request,
@@ -148,13 +148,13 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultPage, $notification->execute());
+        $this->assertSame($this->resultPage, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirect for non valid token param
      */
-    public function testExecuteNoTokenRedirect()
+    public function testExecuteInternalNoTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -176,7 +176,8 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->method('setPath')
             ->willReturnSelf();
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Delete $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Delete',
             [
                 'request' => $this->request,
@@ -186,13 +187,13 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirects for non existing logic
      */
-    public function testExecuteNonExistingTokenRedirect()
+    public function testExecuteInternalNonExistingTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('Credit card does not exist');
@@ -224,8 +225,8 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Delete $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Delete',
             [
                 'request' => $this->request,
@@ -236,6 +237,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/EditTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/EditTest.php
index cd14d718134..7742f863e16 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/EditTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/EditTest.php
@@ -106,7 +106,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -138,8 +138,8 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->method('getConfig')
             ->willReturn($this->pageConfig);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Edit $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Edit',
             [
                 'request' => $this->request,
@@ -148,13 +148,13 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultPage, $notification->execute());
+        $this->assertSame($this->resultPage, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirect for non valid token param
      */
-    public function testExecuteNoTokenRedirect()
+    public function testExecuteInternalNoTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -176,7 +176,8 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->method('setPath')
             ->willReturnSelf();
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Edit $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Edit',
             [
                 'request' => $this->request,
@@ -186,13 +187,13 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirects for non existing logic
      */
-    public function testExecuteNonExistingTokenRedirect()
+    public function testExecuteInternalNonExistingTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('Credit card does not exist');
@@ -224,8 +225,8 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Edit $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Edit',
             [
                 'request' => $this->request,
@@ -236,6 +237,6 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/GenerateTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/GenerateTest.php
index 40540bb9da8..8f000251d18 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/GenerateTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/GenerateTest.php
@@ -72,7 +72,7 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManager($this);
         $this->resultJson->expects($this->once())
@@ -87,7 +87,8 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
             ->method('getParam')
             ->willReturn(true);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Generate $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Generate',
             [
                 'request' => $this->request,
@@ -96,13 +97,13 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultJson, $notification->execute());
+        $this->assertSame($this->resultJson, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecuteLocalizedException()
+    public function testExecuteInternalLocalizedException()
     {
         $phrase = new \Magento\Framework\Phrase('Something went wrong while processing.');
         $objectManager = new ObjectManager($this);
@@ -126,7 +127,8 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
             ->method('getParam')
             ->willReturn(true);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Generate $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Generate',
             [
                 'request' => $this->request,
@@ -136,6 +138,6 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultJson, $notification->execute());
+        $this->assertSame($this->resultJson, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/IndexTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/IndexTest.php
index 7f8e3861a48..38e88b0586e 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/IndexTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/IndexTest.php
@@ -86,17 +86,18 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Index $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Index',
             [
                 'resultPageFactory' => $this->resultPageFactory,
             ]
         );
 
-        $this->assertSame($this->resultPage, $notification->execute());
+        $this->assertSame($this->resultPage, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/NewCardTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/NewCardTest.php
index ee655fe49b0..23607cc3839 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/NewCardTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/NewCardTest.php
@@ -94,7 +94,7 @@ class NewCardTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
         $customerId = 1;
@@ -103,7 +103,8 @@ class NewCardTest extends \PHPUnit_Framework_TestCase
             ->method('getCustomerId')
             ->willReturn($customerId);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\NewCard $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\NewCard',
             [
                 'resultPageFactory' => $this->resultPageFactory,
@@ -111,6 +112,6 @@ class NewCardTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultPage, $notification->execute());
+        $this->assertSame($this->resultPage, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/SaveTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/SaveTest.php
index ff42e7e7c6e..512dbb4d07c 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/SaveTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/SaveTest.php
@@ -58,7 +58,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('There was error during saving card data');
@@ -84,7 +84,8 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Save $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Save',
             [
                 'request' => $this->request,
@@ -93,6 +94,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/MyCreditCardsTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/MyCreditCardsTest.php
index 39f70eb0ce2..657d83e1f7a 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/MyCreditCardsTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/MyCreditCardsTest.php
@@ -113,7 +113,7 @@ class MyCreditCardsTest extends \PHPUnit_Framework_TestCase
         $requestInterface= $this->getMockBuilder('\Magento\Framework\App\RequestInterface')
             ->getMock();
 
-        $notification = $objectManager->getObject(
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Test\Unit\Controller\Stub\MyCreditCardsStub',
             [
                 'customerSession' => $this->customerSession,
@@ -123,7 +123,7 @@ class MyCreditCardsTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->dispatch($requestInterface));
+        $this->assertSame($this->resultRedirect, $controller->execute($requestInterface));
     }
 
     /**
@@ -156,7 +156,7 @@ class MyCreditCardsTest extends \PHPUnit_Framework_TestCase
             ->getMock();
 
 
-        $notification = $objectManager->getObject(
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Test\Unit\Controller\Stub\MyCreditCardsStub',
             [
                 'customerSession' => $this->customerSession,
@@ -167,6 +167,6 @@ class MyCreditCardsTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->_response, $notification->dispatch($requestInterface));
+        $this->assertSame($this->_response, $controller->execute($requestInterface));
     }
 }
diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
index 974d4c41fc5..027e66b1670 100644
--- a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
+++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
@@ -120,7 +120,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     /**
      * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::executeInternal
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $this->prepareExecute();
 
@@ -163,7 +163,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     /**
      * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::executeInternal
      */
-    public function testExecuteAjax()
+    public function testExecuteInternalAjax()
     {
         $this->prepareExecute(true);
         $indexController = $this->getMockBuilder('Magento\Email\Controller\Adminhtml\Email\Template\Index')
@@ -176,7 +176,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $indexController->expects($this->once())
             ->method('_forward')
             ->with('grid');
-        $this->assertNull($indexController->execute());
+        $this->assertNull($indexController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Ipn/IndexTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Ipn/IndexTest.php
index e3c5c9445e4..e34159f711a 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Ipn/IndexTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Ipn/IndexTest.php
@@ -8,7 +8,7 @@ namespace Magento\Paypal\Test\Unit\Controller\Ipn;
 
 class IndexTest extends \PHPUnit_Framework_TestCase
 {
-    /** @var Index */
+    /** @var \Magento\Paypal\Controller\Ipn\Index */
     protected $model;
 
     /** @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject */
@@ -44,6 +44,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->request->expects($this->once())->method('getPostValue')->will($this->throwException($exception));
         $this->logger->expects($this->once())->method('critical')->with($this->identicalTo($exception));
         $this->response->expects($this->once())->method('setHttpResponseCode')->with(500);
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/SaveTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/SaveTest.php
index 5549ee7f193..6c0a726a516 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/SaveTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/SaveTest.php
@@ -14,7 +14,7 @@ namespace Magento\Sales\Test\Unit\Controller\Adminhtml\Order\Creditmemo;
 class SaveTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo
+     * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save
      */
     protected $_controller;
 
@@ -190,7 +190,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->_controller->execute()
+            $this->_controller->executeInternal()
         );
     }
 
@@ -237,7 +237,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->_setSaveActionExpectationForMageCoreException($data, 'The credit memo\'s total must be positive.');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Swagger/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Swagger/Test/Unit/Controller/Index/IndexTest.php
index 0143601c899..015064b2642 100644
--- a/app/code/Magento/Swagger/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Swagger/Test/Unit/Controller/Index/IndexTest.php
@@ -8,7 +8,7 @@ namespace Magento\Swagger\Test\Unit\Controller\Index;
 
 class IndexTest extends \PHPUnit_Framework_TestCase
 {
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
 
@@ -22,6 +22,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $pageConfigMock->expects($this->once())->method('addBodyClass')->with('swagger-section');
         $resultPageFactory->expects($this->once())->method('create');
 
+        /** @var \Magento\Swagger\Controller\Index\Index $model */
         $model = $objectManager->getObject(
             'Magento\Swagger\Controller\Index\Index',
             [
@@ -29,6 +30,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
                 'pageFactory' => $resultPageFactory
             ]
         );
-        $model->execute();
+        $model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Rate/AjaxLoadTest.php b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Rate/AjaxLoadTest.php
index 6373e5aa514..ffc15219382 100644
--- a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Rate/AjaxLoadTest.php
+++ b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Rate/AjaxLoadTest.php
@@ -52,7 +52,7 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $taxRateId=1;
         $returnArray=[
@@ -120,7 +120,8 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_JSON)
             ->willReturn($jsonObject);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad $controller */
+        $controller = $objectManager->getObject(
             'Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad',
             [
                 'taxRateRepository' => $this->taxRateRepository,
@@ -132,14 +133,14 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
 
 
         // No exception thrown
-        $this->assertSame($jsonObject, $notification->execute());
+        $this->assertSame($jsonObject, $controller->executeInternal());
 
     }
 
     /**
      * Check if validation throws a localized catched exception in case of incorrect id
      */
-    public function testExecuteLocalizedException()
+    public function testExecuteInternalLocalizedException()
     {
         $taxRateId=999;
         $exceptionMessage='No such entity with taxRateId = '.$taxRateId;
@@ -173,7 +174,8 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_JSON)
             ->willReturn($jsonObject);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad $controller */
+        $controller = $objectManager->getObject(
             'Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad',
             [
                 'taxRateRepository' => $this->taxRateRepository,
@@ -183,13 +185,13 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
         );
 
         //exception thrown with catch
-        $this->assertSame($jsonObject, $notification->execute());
+        $this->assertSame($jsonObject, $controller->executeInternal());
     }
 
     /**
      * Check if validation throws a localized catched exception in case of incorrect id
      */
-    public function testExecuteException()
+    public function testExecuteInternalException()
     {
         $taxRateId=999;
         $exceptionMessage=__('An error occurred while loading this tax rate.');
@@ -223,7 +225,8 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_JSON)
             ->willReturn($jsonObject);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad $controller */
+        $controller = $objectManager->getObject(
             'Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad',
             [
                 'taxRateRepository' => $this->taxRateRepository,
@@ -233,6 +236,6 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
         );
 
         //exception thrown with catch
-        $this->assertSame($jsonObject, $notification->execute());
+        $this->assertSame($jsonObject, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php
index cb3b6df2972..88656b9e4da 100644
--- a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php
+++ b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php
@@ -10,7 +10,7 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 
 class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
 {
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManager($this);
         $cacheTypeList = $this->getMockBuilder('\Magento\Framework\App\Cache\TypeList')
@@ -63,7 +63,8 @@ class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
             ->method('get')
             ->willReturn($config);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Tax\Controller\Adminhtml\Tax\IgnoreTaxNotification $controller */
+        $controller = $objectManager->getObject(
             'Magento\Tax\Controller\Adminhtml\Tax\IgnoreTaxNotification',
             [
                 'objectManager' => $manager,
@@ -74,6 +75,6 @@ class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
         );
 
         // No exception thrown
-        $this->assertSame($resultRedirect, $notification->execute());
+        $this->assertSame($resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/GridTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/GridTest.php
index 850e4d09d11..e15f4b66d8e 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/GridTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/GridTest.php
@@ -35,7 +35,7 @@ class GridTest extends \PHPUnit_Framework_TestCase
     protected $view;
 
     /**
-     * @var Delete
+     * @var Grid
      */
     protected $controller;
 
@@ -70,13 +70,13 @@ class GridTest extends \PHPUnit_Framework_TestCase
         );
     }
 
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $this->view->expects($this->once())
             ->method('loadLayout')
             ->with(false);
         $this->view->expects($this->once())
             ->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/FrontControllerTest.php b/lib/internal/Magento/Framework/App/Test/Unit/FrontControllerTest.php
index c87ab7af120..dc4f0b0c7c3 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/FrontControllerTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/FrontControllerTest.php
@@ -82,7 +82,7 @@ class FrontControllerTest extends \PHPUnit_Framework_TestCase
         $response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
         $controllerInstance = $this->getMock('Magento\Framework\App\ActionInterface');
         $controllerInstance->expects($this->any())
-            ->method('dispatch')
+            ->method('execute')
             ->with($this->request)
             ->will($this->returnValue($response));
         $this->router->expects($this->at(0))
@@ -114,7 +114,7 @@ class FrontControllerTest extends \PHPUnit_Framework_TestCase
         $response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
         $controllerInstance = $this->getMock('Magento\Framework\App\ActionInterface');
         $controllerInstance->expects($this->any())
-            ->method('dispatch')
+            ->method('execute')
             ->with($this->request)
             ->will($this->returnValue($response));
         $this->router->expects($this->at(0))
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Router/ActionListTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Router/ActionListTest.php
index adeccfb1701..48c6ad840f3 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Router/ActionListTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Router/ActionListTest.php
@@ -112,7 +112,7 @@ class ActionListTest extends \PHPUnit_Framework_TestCase
         $mockClassName = 'Mock_Action_Class';
         $actionClass = $this->getMockClass(
             'Magento\Framework\App\ActionInterface',
-            ['dispatch', 'getResponse'],
+            ['execute', 'getResponse'],
             [],
             $mockClassName
         );
diff --git a/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php
index aac2c071fb0..b1a3be4984b 100644
--- a/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php
+++ b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php
@@ -9,7 +9,7 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 
 class IndexTest extends \PHPUnit_Framework_TestCase
 {
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManager($this);
         /**
@@ -19,6 +19,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
         // The execute method is empty and returns void, just calling to verify
         // the method exists and does not throw an exception
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php
index eabedc51f1b..1ad67c8f366 100644
--- a/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php
+++ b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php
@@ -8,7 +8,7 @@ namespace Magento\Framework\Controller\Test\Unit\Controller;
 class NorouteTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\Framework\Controller\Noroute
+     * @var \Magento\Framework\Controller\Noroute\Index
      */
     protected $_controller;
 
@@ -53,7 +53,7 @@ class NorouteTest extends \PHPUnit_Framework_TestCase
         $this->_statusMock->expects($this->any())->method('getLoaded')->will($this->returnValue(false));
         $this->_viewMock->expects($this->once())->method('loadLayout')->with(['default', 'noroute']);
         $this->_viewMock->expects($this->once())->method('renderLayout');
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testIndexActionWhenStatusLoaded()
@@ -77,7 +77,7 @@ class NorouteTest extends \PHPUnit_Framework_TestCase
         )->will(
             $this->returnValue($this->_requestMock)
         );
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testIndexActionWhenStatusNotInstanceofMagentoObject()
@@ -91,6 +91,6 @@ class NorouteTest extends \PHPUnit_Framework_TestCase
         )->will(
             $this->returnValue('string')
         );
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
-- 
GitLab


From 489db080e3b8843d1813d13c32c811cbce34ce1e Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Sat, 24 Oct 2015 08:17:47 -0500
Subject: [PATCH 32/61] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Fix API tests affected by the change of method names
---
 .../_files/Magento/TestModule1/Controller/CookieTester.php      | 2 +-
 .../TestModule1/Controller/CookieTester/DeleteCookie.php        | 2 +-
 .../TestModule1/Controller/CookieTester/SetPublicCookie.php     | 2 +-
 .../TestModule1/Controller/CookieTester/SetSensitiveCookie.php  | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
index 906504d782e..d95d32a8443 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
@@ -61,7 +61,7 @@ abstract class CookieTester implements \Magento\Framework\App\ActionInterface
      * @param RequestInterface $request
      * @return mixed
      */
-    abstract protected function execute(RequestInterface $request);
+    abstract protected function executeInternal(RequestInterface $request);
 
     /**
      * Dispatch request
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/DeleteCookie.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/DeleteCookie.php
index 0baf5fdce98..755aae0f061 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/DeleteCookie.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/DeleteCookie.php
@@ -16,7 +16,7 @@ class DeleteCookie extends \Magento\TestModule1\Controller\CookieTester
      *
      * @return void
      */
-    public function execute(RequestInterface $request)
+    public function executeInternal(RequestInterface $request)
     {
         $cookieName = $request->getParam('cookie_name');
         $this->getCookieManager()->deleteCookie($cookieName);
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetPublicCookie.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetPublicCookie.php
index 6583b3bad16..da6cde29dcd 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetPublicCookie.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetPublicCookie.php
@@ -16,7 +16,7 @@ class SetPublicCookie extends \Magento\TestModule1\Controller\CookieTester
      *
      * @return void
      */
-    public function execute(RequestInterface $request)
+    public function executeInternal(RequestInterface $request)
     {
         $publicCookieMetadata = $this->getCookieMetadataFactory()->createPublicCookieMetadata();
 
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetSensitiveCookie.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetSensitiveCookie.php
index 74ea42b69bc..cf8cfd054c4 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetSensitiveCookie.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetSensitiveCookie.php
@@ -16,7 +16,7 @@ class SetSensitiveCookie extends \Magento\TestModule1\Controller\CookieTester
      *
      * @return void
      */
-    public function execute(RequestInterface $request)
+    public function executeInternal(RequestInterface $request)
     {
         $sensitiveCookieMetadata = $this->getCookieMetadataFactory()->createSensitiveCookieMetadata();
 
-- 
GitLab


From eb2a9b0ab76a17f58b0c3076f78f186aec92576e Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Sat, 24 Oct 2015 09:59:51 -0500
Subject: [PATCH 33/61] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Fix test failures
---
 .../Unit/Controller/Adminhtml/Indexer/ListActionTest.php     | 1 +
 .../_files/Magento/TestModule1/Controller/CookieTester.php   | 2 +-
 .../Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php  | 5 +++--
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
index d3817ffe99d..57364ec6060 100644
--- a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
+++ b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
@@ -60,6 +60,7 @@ class ListActionTest extends \PHPUnit_Framework_TestCase
 
     /**
      * Set up test
+     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     protected function setUp()
     {
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
index d95d32a8443..986be8b00f5 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
@@ -71,7 +71,7 @@ abstract class CookieTester implements \Magento\Framework\App\ActionInterface
      */
     public function execute(RequestInterface $request)
     {
-        $result = $this->execute($request);
+        $result = $this->executeInternal($request);
         return $result ? $result : $this->_response;
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php b/dev/tests/integration/testsuite/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php
index 85b65644004..d970637f418 100644
--- a/dev/tests/integration/testsuite/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php
+++ b/dev/tests/integration/testsuite/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php
@@ -13,7 +13,7 @@ class PlaceTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
     /**
      * Test requestToAuthorizenetData returning
      */
-    public function testExecuteAuthorizenetDataReturning()
+    public function testExecuteInternalAuthorizenetDataReturning()
     {
         $requestToAuthorizenetData = ['Authorizenet' => 'data'];
 
@@ -56,11 +56,12 @@ class PlaceTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
             ]
         );
 
+        /** @var \Magento\Authorizenet\Controller\Adminhtml\Authorizenet\Directpost\Payment\PlaceTesting $controller */
         $controller = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Authorizenet\Controller\Adminhtml\Authorizenet\Directpost\Payment\PlaceTesting',
             ['context' => $context]
         );
-        $controller->execute();
+        $controller->executeInternal();
         $this->assertContains(json_encode($requestToAuthorizenetData), $this->getResponse()->getBody());
     }
 
-- 
GitLab


From 379268939e667937147f2fad12acf11d1e8ee1b5 Mon Sep 17 00:00:00 2001
From: Alex Bomko <abomko@ebay.com>
Date: Sat, 24 Oct 2015 22:26:12 +0300
Subject: [PATCH 34/61] MAGETWO-44110: Product swatch attributes available for
 attribute type price

---
 .../catalog/product/attribute/js.phtml        | 652 +++++++++---------
 1 file changed, 330 insertions(+), 322 deletions(-)

diff --git a/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml b/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml
index 0f911d563f7..034d25f9c1b 100644
--- a/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml
+++ b/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml
@@ -15,248 +15,260 @@ require([
     'Magento_Ui/js/modal/prompt',
     "collapsable",
     "prototype"
-], function(jQuery, rg, alert, prompt){
-
-function toggleApplyVisibility(select) {
-    if ($(select).value == 1) {
-        $(select).next('select').removeClassName('no-display');
-        $(select).next('select').removeClassName('ignore-validate');
-
-    } else {
-        $(select).next('select').addClassName('no-display');
-        $(select).next('select').addClassName('ignore-validate');
-        var options = $(select).next('select').options;
-        for( var i=0; i < options.length; i++) {
-            options[i].selected = false;
-        }
-    }
-}
-function getFrontTab() {
-    if ($('product_attribute_tabs_front')) {
-        return $('product_attribute_tabs_front').up('li');
-    } else {
-        return $('front_fieldset-wrapper');
-    }
-}
+], function (jQuery, rg, alert, prompt) {
+    var frontendInput = $('frontend_input');
 
-function checkOptionsPanelVisibility(){
-    if($('manage-options-panel')){
-        var panel = $('manage-options-panel').up('.fieldset');
+    function toggleApplyVisibility (select) {
+        if ($(select).value == 1) {
+            $(select).next('select').removeClassName('no-display');
+            $(select).next('select').removeClassName('ignore-validate');
 
-        if($('frontend_input') && ($('frontend_input').value=='select' || $('frontend_input').value=='multiselect')){
-            panel.show();
-            rg.get('manage-options-panel', function() {
-                jQuery('#manage-options-panel').trigger('render');
-            });
-        }
-        else {
-            panel.hide();
-        }
-    }
-    if($('swatch-visual-options-panel')){
-        var panel = $('swatch-visual-options-panel').up('.fieldset');
-
-        if($('frontend_input') && $('frontend_input').value=='swatch_visual') {
-            panel.show();
-            rg.get('swatch-visual-options-panel', function() {
-                jQuery('#swatch-visual-options-panel').trigger('render');
-            });
-        }
-        else {
-            panel.hide();
+        } else {
+            $(select).next('select').addClassName('no-display');
+            $(select).next('select').addClassName('ignore-validate');
+            var options = $(select).next('select').options;
+            for( var i=0; i < options.length; i++) {
+                options[i].selected = false;
+            }
         }
     }
-    if($('swatch-text-options-panel')){
-        var panel = $('swatch-text-options-panel').up('.fieldset');
-
-        if($('frontend_input') && $('frontend_input').value=='swatch_text') {
-            panel.show();
-            rg.get('swatch-text-options-panel', function() {
-                jQuery('#swatch-text-options-panel').trigger('render');
-            });
-        }
-        else {
-            panel.hide();
+    function getFrontTab () {
+        var tabsFront = $('product_attribute_tabs_front');
+        if (tabsFront) {
+            return tabsFront.up('li');
+        } else {
+            return $('front_fieldset-wrapper');
         }
     }
-}
-
-function bindAttributeInputType()
-{
-    checkOptionsPanelVisibility();
-    switchDefaultValueField();
-    if($('frontend_input') && ($('frontend_input').value=='select' || $('frontend_input').value=='multiselect' || $('frontend_input').value=='price'
-        || $('frontend_input').value=='swatch_text' || $('frontend_input').value=='swatch_visual')){
-        if($('is_filterable') && !$('is_filterable').getAttribute('readonly')){
-            $('is_filterable').disabled = false;
+
+    function checkOptionsPanelVisibility () {
+        var optionsPanel = $('manage-options-panel'),
+            visualOptionsPanel = $('swatch-visual-options-panel'),
+            textOptionsPanel = $('swatch-text-options-panel');
+        if (optionsPanel) {
+            var panel = optionsPanel.up('.fieldset');
+
+            if (frontendInput && (frontendInput.value=='select' || frontendInput.value=='multiselect')) {
+                panel.show();
+                rg.get('manage-options-panel', function () {
+                    jQuery('#manage-options-panel').trigger('render');
+                });
+            } else {
+                panel.hide();
+            }
         }
-        if($('is_filterable_in_search') && !$('is_filterable_in_search').getAttribute('readonly')){
-            $('is_filterable_in_search').disabled = false;
+        if (visualOptionsPanel) {
+            var visualPanel = visualOptionsPanel.up('.fieldset');
+
+            if (frontendInput && frontendInput.value=='swatch_visual') {
+                visualPanel.show();
+                rg.get('swatch-visual-options-panel', function () {
+                    jQuery('#swatch-visual-options-panel').trigger('render');
+                });
+            } else {
+                visualPanel.hide();
+            }
         }
-        if($('backend_type') && $('backend_type').options){
-            for(var i=0;i<$('backend_type').options.length;i++){
-                if($('backend_type').options[i].value=='int') $('backend_type').selectedIndex = i;
+        if (textOptionsPanel) {
+            var textPanel = textOptionsPanel.up('.fieldset');
+
+            if (frontendInput && frontendInput.value=='swatch_text') {
+                textPanel.show();
+                rg.get('swatch-text-options-panel', function () {
+                    jQuery('#swatch-text-options-panel').trigger('render');
+                });
+            } else {
+                textPanel.hide();
             }
         }
     }
-    else {
-        if($('is_filterable')){
-            $('is_filterable').selectedIndex=0;
-            $('is_filterable').disabled = true;
-        }
-        if($('is_filterable_in_search')){
-            $('is_filterable_in_search').disabled = true;
+
+    function bindAttributeInputType () {
+        var isFilterable = $('is_filterable'),
+            isFilterableInSearch = $('is_filterable_in_search'),
+            backendType = $('backend_type'),
+            usedForSortBy = $('used_for_sort_by'),
+            frontendClass = $('frontend_class'),
+            selectFields = ['select', 'multiselect', 'price', 'swatch_text', 'swatch_visual'];
+
+        checkOptionsPanelVisibility();
+        switchDefaultValueField();
+        if (frontendInput
+            && jQuery.inArray(frontendInput.value, selectFields) >= 0
+        ) {
+            if (isFilterable && !isFilterable.getAttribute('readonly')) {
+                isFilterable.disabled = false;
+            }
+            if (isFilterableInSearch && !isFilterableInSearch.getAttribute('readonly')) {
+                isFilterableInSearch.disabled = false;
+            }
+            if (backendType && backendType.options) {
+                for (var i=0; i<backendType.options.length; i++) {
+                    if (backendType.options[i].value=='int') {
+                        backendType.selectedIndex = i;
+                    }
+                }
+            }
+        } else {
+            if (isFilterable) {
+                isFilterable.selectedIndex=0;
+                isFilterable.disabled = true;
+            }
+            if (isFilterableInSearch) {
+                isFilterableInSearch.disabled = true;
+            }
         }
-    }
 
-    if ($('frontend_input') && !$('frontend_input').disabled
-        && ($('frontend_input').value=='swatch_text' || $('frontend_input').value=='swatch_visual')
-    ) {
-        $('used_in_product_listing').value = 1;
-        $('is_visible_on_front').value = 1;
-        $('update_product_preview_image').value = 1;
-    }
+        if (frontendInput && !frontendInput.disabled
+            && (frontendInput.value=='swatch_text' || frontendInput.value=='swatch_visual')
+        ) {
+            $('used_in_product_listing').value = 1;
+            $('is_visible_on_front').value = 1;
+            $('update_product_preview_image').value = 1;
+        }
 
-    if ($('frontend_input') && ($('frontend_input').value=='multiselect'
-        || $('frontend_input').value=='gallery'
-        || $('frontend_input').value=='textarea')) {
-        if ($('used_for_sort_by')) {
-            $('used_for_sort_by').disabled = true;
+        if (frontendInput && (frontendInput.value=='multiselect'
+            || frontendInput.value=='gallery'
+            || frontendInput.value=='textarea')) {
+            if (usedForSortBy) {
+                usedForSortBy.disabled = true;
+            }
+        } else {
+            if (usedForSortBy && !usedForSortBy.getAttribute('readonly')) {
+                usedForSortBy.disabled = false;
+            }
         }
-    }
-    else {
-        if ($('used_for_sort_by') && !$('used_for_sort_by').getAttribute('readonly')) {
-            $('used_for_sort_by').disabled = false;
+
+        if (jQuery('#frontend_input').val() == 'swatch_text') {
+            jQuery('.swatch-text-field-0').addClass('required-option');
+        } else {
+            jQuery('.swatch-text-field-0').removeClass('required-option');
         }
-    }
 
-    if (jQuery('#frontend_input').val() == 'swatch_text') {
-        jQuery('.swatch-text-field-0').addClass('required-option');
-    } else {
-        jQuery('.swatch-text-field-0').removeClass('required-option');
-    }
+        setRowVisibility('is_wysiwyg_enabled', false);
+        setRowVisibility('is_html_allowed_on_front', false);
 
-    setRowVisibility('is_wysiwyg_enabled', false);
-    setRowVisibility('is_html_allowed_on_front', false);
+        switch (frontendInput.value) {
+            case 'textarea':
+                setRowVisibility('is_wysiwyg_enabled', true);
+                if ($('is_wysiwyg_enabled').value == '0') {
+                    setRowVisibility('is_html_allowed_on_front', true);
+                    $('is_html_allowed_on_front').disabled = false;
+                }
+                frontendClass.value = '';
+                frontendClass.disabled = true;
+                break;
+            case 'text':
+                setRowVisibility('is_html_allowed_on_front', true);
+                $('is_html_allowed_on_front').disabled = false;
 
-    switch ($('frontend_input').value) {
-        case 'textarea':
-            setRowVisibility('is_wysiwyg_enabled', true);
-            if($('is_wysiwyg_enabled').value == '0'){
+                if (!frontendClass.getAttribute('readonly')) {
+                    frontendClass.disabled = false;
+                }
+                break;
+            case 'select':
+            case 'multiselect':
                 setRowVisibility('is_html_allowed_on_front', true);
                 $('is_html_allowed_on_front').disabled = false;
-            }
-            $('frontend_class').value = '';
-            $('frontend_class').disabled = true;
-            break;
-        case 'text':
-            setRowVisibility('is_html_allowed_on_front', true);
-            $('is_html_allowed_on_front').disabled = false;
+                frontendClass.value = '';
+                frontendClass.disabled = true;
+                break;
+            default:
+                frontendClass.value = '';
+                frontendClass.disabled = true;
+        }
 
-            if (!$('frontend_class').getAttribute('readonly')) {
-                $('frontend_class').disabled = false;
-            }
-            break;
-        case 'select':
-        case 'multiselect':
-            setRowVisibility('is_html_allowed_on_front', true);
-            $('is_html_allowed_on_front').disabled = false;
-            $('frontend_class').value = '';
-            $('frontend_class').disabled = true;
-            break;
-        default:
-            $('frontend_class').value = '';
-            $('frontend_class').disabled = true;
+        switchIsFilterable();
     }
 
-    switchIsFilterable();
-}
-
-function switchIsFilterable()
-{
-    if ($('is_filterable')) {
-        if ($('is_filterable').selectedIndex == 0) {
-            $('position').disabled = true;
-        } else {
-            if (!$('position').getAttribute('readonly')){
-                $('position').disabled = false;
+    function switchIsFilterable () {
+        var isFilterable = $('is_filterable'),
+            position = $('position');
+        if (isFilterable) {
+            if (isFilterable.selectedIndex == 0) {
+                position.disabled = true;
+            } else {
+                if (!position.getAttribute('readonly')) {
+                    position.disabled = false;
+                }
             }
         }
     }
-}
-
-function switchDefaultValueField()
-{
-    if (!$('frontend_input')) {
-        return;
-    }
 
-    var currentValue = $('frontend_input').value;
-
-    var defaultValueTextVisibility = false;
-    var defaultValueTextareaVisibility = false;
-    var defaultValueDateVisibility = false;
-    var defaultValueYesnoVisibility = false;
-    var scopeVisibility = true;
-
-    /* swatch attributes */
-    var useProductImageForSwatch = false;
-    var defaultValueUpdateImage = false;
-
-
-    switch (currentValue) {
-        case 'select':
-            optionDefaultInputType = 'radio';
-            break;
-
-        case 'multiselect':
-            optionDefaultInputType = 'checkbox';
-            break;
-
-        case 'date':
-            defaultValueDateVisibility = true;
-            break;
+    function switchDefaultValueField () {
+        if (!frontendInput) {
+            return;
+        }
 
-        case 'boolean':
-            defaultValueYesnoVisibility = true;
-            break;
+        var currentValue = frontendInput.value;
+
+        var defaultValueTextVisibility = false;
+        var defaultValueTextareaVisibility = false;
+        var defaultValueDateVisibility = false;
+        var defaultValueYesnoVisibility = false;
+        var scopeVisibility = true;
+
+        /* swatch attributes */
+        var useProductImageForSwatch = false;
+        var defaultValueUpdateImage = false;
+
+        var optionDefaultInputType = '';
+
+
+        switch (currentValue) {
+            case 'select':
+                optionDefaultInputType = 'radio';
+                break;
+
+            case 'multiselect':
+                optionDefaultInputType = 'checkbox';
+                break;
+
+            case 'date':
+                defaultValueDateVisibility = true;
+                break;
+
+            case 'boolean':
+                defaultValueYesnoVisibility = true;
+                break;
+
+            case 'textarea':
+                defaultValueTextareaVisibility = true;
+                break;
+
+            case 'media_image':
+                defaultValueTextVisibility = false;
+                break;
+            case 'price':
+                scopeVisibility = false;
+                break;
+            case 'swatch_visual':
+                useProductImageForSwatch = true;
+                defaultValueUpdateImage = true;
+                defaultValueTextVisibility = false;
+                break;
+            case 'swatch_text':
+                useProductImageForSwatch = false;
+                defaultValueUpdateImage = true;
+                defaultValueTextVisibility = false;
+                break;
+            default:
+                defaultValueTextVisibility = true;
+                break;
+        }
 
-        case 'textarea':
-            defaultValueTextareaVisibility = true;
-            break;
+        switch (currentValue) {
+            case 'media_image':
+                getFrontTab().hide();
 
-        case 'media_image':
-            defaultValueTextVisibility = false;
+                setRowVisibility('is_required', false);
+                setRowVisibility('is_unique', false);
+                setRowVisibility('frontend_class', false);
             break;
-        case 'price':
-            scopeVisibility = false;
-        case 'swatch_visual':
-            useProductImageForSwatch = true;
-            defaultValueUpdateImage = true;
-            defaultValueTextVisibility = false;
-            break;
-        case 'swatch_text':
-            useProductImageForSwatch = false;
-            defaultValueUpdateImage = true;
-            defaultValueTextVisibility = false;
-            break;
-        default:
-            defaultValueTextVisibility = true;
-            break;
-    }
-
-    switch (currentValue) {
-        case 'media_image':
-            getFrontTab().hide();
-
-            setRowVisibility('is_required', false);
-            setRowVisibility('is_unique', false);
-            setRowVisibility('frontend_class', false);
-        break;
-
-        <?php foreach ($this->helper('Magento\Catalog\Helper\Data')->getAttributeHiddenFields() as $type => $fields): ?>
+        <?php $hiddenFields = $this->helper('Magento\Catalog\Helper\Data')->getAttributeHiddenFields() ?>
+        <?php foreach ($hiddenFields as $type => $fields): ?>
         <?php if (in_array($type, array('swatch_visual', 'swatch_text'))) continue ?>
-            case '<?php /* @escapeNotVerified */ echo $type; ?>':
+            case '<?php echo $this->escapeHtml($type); ?>':
                 <?php foreach ($fields as $one): ?>
                     <?php if ($one == '_front_fieldset'): ?>
                         getFrontTab().hide();
@@ -268,145 +280,141 @@ function switchDefaultValueField()
                     <?php elseif ($one == '_scope'): ?>
                         scopeVisibility = false;
                     <?php else: ?>
-                        setRowVisibility('<?php /* @escapeNotVerified */ echo $one; ?>', false);
+                        setRowVisibility('<?php echo $this->escapeHtml($one); ?>', false);
                     <?php endif; ?>
                 <?php endforeach; ?>
             break;
         <?php endforeach; ?>
 
-        default:
-            getFrontTab().show();
+            default:
+                getFrontTab().show();
 
-            showDefaultRows();
-        break;
-    }
+                showDefaultRows();
+            break;
+        }
 
-    setRowVisibility('default_value_text', defaultValueTextVisibility);
-    setRowVisibility('default_value_textarea', defaultValueTextareaVisibility);
-    setRowVisibility('default_value_date', defaultValueDateVisibility);
-    setRowVisibility('default_value_yesno', defaultValueYesnoVisibility);
-    setRowVisibility('is_global', scopeVisibility);
+        setRowVisibility('default_value_text', defaultValueTextVisibility);
+        setRowVisibility('default_value_textarea', defaultValueTextareaVisibility);
+        setRowVisibility('default_value_date', defaultValueDateVisibility);
+        setRowVisibility('default_value_yesno', defaultValueYesnoVisibility);
+        setRowVisibility('is_global', scopeVisibility);
 
-    /* swatch attributes */
-    setRowVisibility('use_product_image_for_swatch', useProductImageForSwatch);
-    setRowVisibility('update_product_preview_image', defaultValueUpdateImage);
+        /* swatch attributes */
+        setRowVisibility('use_product_image_for_swatch', useProductImageForSwatch);
+        setRowVisibility('update_product_preview_image', defaultValueUpdateImage);
 
-    var elems = document.getElementsByName('default[]');
-    for (var i = 0; i < elems.length; i++) {
-        elems[i].type = optionDefaultInputType;
-    }
-}
-
-function showDefaultRows()
-{
-    setRowVisibility('is_required', true);
-    setRowVisibility('is_unique', true);
-    setRowVisibility('frontend_class', true);
-}
-
-function setRowVisibility(id, isVisible)
-{
-    if ($(id)) {
-        var td = $(id).parentNode;
-        var tr = $(td.parentNode);
-
-        if (isVisible) {
-            tr.show();
-        } else {
-            tr.blur();
-            tr.hide();
+        var elems = document.getElementsByName('default[]');
+        for (var i = 0; i < elems.length; i++) {
+            elems[i].type = optionDefaultInputType;
         }
     }
-}
 
+    function showDefaultRows () {
+        setRowVisibility('is_required', true);
+        setRowVisibility('is_unique', true);
+        setRowVisibility('frontend_class', true);
+    }
 
-function updateRequriedOptions()
-{
-    if ($F('frontend_input')=='select' && $F('is_required')==1) {
-        $('option-count-check').addClassName('required-options-count');
-    } else {
-        $('option-count-check').removeClassName('required-options-count');
+    function setRowVisibility (id, isVisible) {
+        if ($(id)) {
+            var td = $(id).parentNode;
+            var tr = $(td.parentNode);
+
+            if (isVisible) {
+                tr.show();
+            } else {
+                tr.blur();
+                tr.hide();
+            }
+        }
     }
-}
 
-function saveAttributeInNewSet(promptMessage)
-{
-    var newAttributeSetName;
 
-    prompt({
-        content: promptMessage,
-        actions: {
-            confirm: function(val) {
-                newAttributeSetName = val;
+    function updateRequriedOptions () {
+        if ($F('frontend_input')=='select' && $F('is_required')==1) {
+            $('option-count-check').addClassName('required-options-count');
+        } else {
+            $('option-count-check').removeClassName('required-options-count');
+        }
+    }
 
-                if (!newAttributeSetName) {
-                    return;
-                }
+    function saveAttributeInNewSet (promptMessage) {
+        var newAttributeSetName;
 
-                var rules = ['required-entry', 'validate-no-html-tags'];
-                for (var i = 0; i < rules.length; i++) {
-                    if (!jQuery.validator.methods[rules[i]](newAttributeSetName)) {
-                        alert({
-                            content: jQuery.validator.messages[rules[i]]
-                        });
+        prompt({
+            content: promptMessage,
+            actions: {
+                confirm: function (val) {
+                    newAttributeSetName = val;
 
+                    if (!newAttributeSetName) {
                         return;
                     }
-                }
 
-                var newAttributeSetNameInputId = 'new_attribute_set_name';
-
-                if ($(newAttributeSetNameInputId)) {
-                    $(newAttributeSetNameInputId).value = newAttributeSetName;
-                } else {
-                    $('edit_form').insert({
-                        top: new Element('input', {
-                            type: 'hidden',
-                            id: newAttributeSetNameInputId,
-                            name: 'new_attribute_set_name',
-                            value: newAttributeSetName
-                        })
-                    });
+                    var rules = ['required-entry', 'validate-no-html-tags'];
+                    for (var i = 0; i < rules.length; i++) {
+                        if (!jQuery.validator.methods[rules[i]](newAttributeSetName)) {
+                            alert({
+                                content: jQuery.validator.messages[rules[i]]
+                            });
+
+                            return;
+                        }
+                    }
+
+                    var newAttributeSetNameInputId = 'new_attribute_set_name';
+
+                    if ($(newAttributeSetNameInputId)) {
+                        $(newAttributeSetNameInputId).value = newAttributeSetName;
+                    } else {
+                        $('edit_form').insert({
+                            top: new Element('input', {
+                                type: 'hidden',
+                                id: newAttributeSetNameInputId,
+                                name: 'new_attribute_set_name',
+                                value: newAttributeSetName
+                            })
+                        });
+                    }
+                    // Temporary solution will replaced after refactoring of attributes functionality
+                    jQuery('#edit_form').triggerHandler('save');
                 }
-                // Temporary solution will replaced after refactoring of attributes functionality
-                jQuery('#edit_form').triggerHandler('save');
             }
-        }
+        });
+    }
+
+    if (frontendInput) {
+        Event.observe(frontendInput, 'change', updateRequriedOptions);
+        Event.observe(frontendInput, 'change', bindAttributeInputType);
+    }
+
+    if ($('is_filterable')) {
+        Event.observe($('is_filterable'), 'change', switchIsFilterable);
+    }
+
+    if ($('is_required')) {
+        Event.observe($('is_required'), 'change', updateRequriedOptions);
+    }
+
+    jQuery(function ($) {
+        bindAttributeInputType();
+        // @todo: refactor collapsable component
+        $('.attribute-popup .collapse, [data-role="advanced_fieldset-content"]')
+            .collapsable()
+            .collapse('hide');
     });
-}
-
-if($('frontend_input')){
-    Event.observe($('frontend_input'), 'change', updateRequriedOptions);
-    Event.observe($('frontend_input'), 'change', bindAttributeInputType);
-}
-
-if ($('is_filterable')) {
-    Event.observe($('is_filterable'), 'change', switchIsFilterable);
-}
-
-if ($('is_required')) {
-    Event.observe($('is_required'), 'change', updateRequriedOptions);
-}
-
-jQuery(function($) {
-    bindAttributeInputType();
-    // @todo: refactor collapsable component
-    $('.attribute-popup .collapse, [data-role="advanced_fieldset-content"]')
-        .collapsable()
-        .collapse('hide');
-});
 
-window.saveAttributeInNewSet = saveAttributeInNewSet;
-window.updateRequriedOptions = updateRequriedOptions;
-window.setRowVisibility = setRowVisibility;
-window.showDefaultRows = showDefaultRows;
-window.switchDefaultValueField = switchDefaultValueField;
-window.switchIsFilterable = switchIsFilterable;
-window.switchIsFilterable = switchIsFilterable;
-window.bindAttributeInputType = bindAttributeInputType;
-window.checkOptionsPanelVisibility = checkOptionsPanelVisibility;
-window.getFrontTab = getFrontTab;
-window.toggleApplyVisibility = toggleApplyVisibility;
+    window.saveAttributeInNewSet = saveAttributeInNewSet;
+    window.updateRequriedOptions = updateRequriedOptions;
+    window.setRowVisibility = setRowVisibility;
+    window.showDefaultRows = showDefaultRows;
+    window.switchDefaultValueField = switchDefaultValueField;
+    window.switchIsFilterable = switchIsFilterable;
+    window.switchIsFilterable = switchIsFilterable;
+    window.bindAttributeInputType = bindAttributeInputType;
+    window.checkOptionsPanelVisibility = checkOptionsPanelVisibility;
+    window.getFrontTab = getFrontTab;
+    window.toggleApplyVisibility = toggleApplyVisibility;
 
 });
 </script>
-- 
GitLab


From 548c2921d61ccb98511ebe4c191b6f2b427d9019 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Sun, 25 Oct 2015 14:44:58 +0200
Subject: [PATCH 35/61] MAGETWO-39795: Check data for import product does not
 work MAGETWO-43900: Imported products with broken images link don't appear on
 front MAGETWO-43901: The "Imported resource (image) could not be downloaded"
 message appears when user tries to import products using "Replace" behavior
 MAGETWO-44238: Categories imported in a comma-separated format are not
 created properly MAGETWO-42245: _media_is_disabled is not exported
 MAGETWO-44407: CLONE - Product export and re-import with different store view
 level data causes data corruption

---
 .../Model/Export/Product.php                  |  10 +-
 .../Model/Import/Product.php                  |  65 ++++-----
 .../Model/Import/Product/Validator.php        |   6 +
 .../Model/Import/Product/ValidatorTest.php    | 126 ++++++++++++++++--
 .../Files/Sample/catalog_product.csv          |  15 +--
 .../Model/Import/ProductTest.php              |  62 +++++++--
 ...import_new_categories_custom_separator.csv |   2 +
 ...mport_new_categories_default_separator.csv |   2 +
 8 files changed, 216 insertions(+), 72 deletions(-)
 create mode 100644 dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_custom_separator.csv
 create mode 100644 dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_default_separator.csv

diff --git a/app/code/Magento/CatalogImportExport/Model/Export/Product.php b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
index 9dc79f6a3cf..b3f8a864758 100644
--- a/app/code/Magento/CatalogImportExport/Model/Export/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
@@ -638,7 +638,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
             }
             $categories[] = $categoryPath;
         }
-        $dataRow[self::COL_CATEGORY] = implode(ImportProduct::PSEUDO_MULTI_LINE_SEPARATOR, $categories);
+        $dataRow[self::COL_CATEGORY] = implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $categories);
         unset($rowCategories[$productId]);
 
         return true;
@@ -683,7 +683,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
                     'crosssell_skus',
                     'upsell_skus',
                 ],
-               ['additional_images', 'additional_image_labels', 'hide_from_product_page']
+                ['additional_images', 'additional_image_labels', 'hide_from_product_page']
             );
             // have we merge custom options columns
             if ($customOptionsData) {
@@ -1047,7 +1047,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
             if (!empty($multiRawData['mediaGalery'][$productId])) {
                 $additionalImages = [];
                 $additionalImageLabels = [];
-               $additionalImageIsDisabled = [];
+                $additionalImageIsDisabled = [];
                 foreach ($multiRawData['mediaGalery'][$productId] as $mediaItem) {
                     $additionalImages[] = $mediaItem['_media_image'];
                     $additionalImageLabels[] = $mediaItem['_media_label'];
@@ -1060,8 +1060,8 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
                     implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImages);
                 $dataRow['additional_image_labels'] =
                     implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImageLabels);
-               $dataRow['hide_from_product_page'] =
-                   implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImageIsDisabled);
+                $dataRow['hide_from_product_page'] =
+                    implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImageIsDisabled);
                 $multiRawData['mediaGalery'][$productId] = [];
             }
             foreach ($this->_linkTypeProvider->getLinkTypes() as $linkTypeName => $linkId) {
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index faaed58e2f7..2d6395a5f4c 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -710,18 +710,8 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     }
 
     /**
-     * Retrieve instance of product custom options import entity
      *
-     * @return \Magento\CatalogImportExport\Model\Import\Product\Option
-     */
-    public function getOptionEntity()
-    {
-        return $this->_optionEntity;
-    }
-
-    /**
      * Multiple value separator getter.
-     *
      * @return string
      */
     public function getMultipleValueSeparator()
@@ -732,6 +722,16 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         return self::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR;
     }
 
+    /**
+     * Retrieve instance of product custom options import entity
+     *
+     * @return \Magento\CatalogImportExport\Model\Import\Product\Option
+     */
+    public function getOptionEntity()
+    {
+        return $this->_optionEntity;
+    }
+
     /**
      * Retrieve id of media gallery attribute.
      *
@@ -1246,7 +1246,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     /**
      * Retrieving images from all columns and rows
      *
-     * @param $bunch
+     * @param array $bunch
      * @return array
      */
     protected function getBunchImages($bunch)
@@ -1279,7 +1279,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     /**
      * Prepare all media files
      *
-     * @param $images
+     * @param array $images
      * @return array
      */
     protected function getExistingImages($images)
@@ -1318,11 +1318,11 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         return $result;
     }
 
-    /*
+    /**
      * @param array $rowData
      * @return array
      */
-    public function getImagesFromRow($rowData)
+    public function getImagesFromRow(array $rowData)
     {
         $images = [];
         $labels = [];
@@ -1440,7 +1440,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                 $categoriesString = empty($rowData[self::COL_CATEGORY]) ? '' : $rowData[self::COL_CATEGORY];
                 $separatorName = \Magento\ImportExport\Model\Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR;
                 $multipleSeparatorValue = empty($this->_parameters[$separatorName])
-                    ? static::PSEUDO_MULTI_LINE_SEPARATOR
+                    ? static::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
                     : $this->_parameters[$separatorName];
                 $this->categoriesCache[$rowSku] = [];
                 if (!empty($categoriesString)) {
@@ -1629,7 +1629,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     }
 
     /**
-     * @param $productSku
+     * @param string $productSku
      * @return array
      */
     public function getProductWebsites($productSku)
@@ -1638,7 +1638,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     }
 
     /**
-     * @param $productSku
+     * @param string $productSku
      * @return array
      */
     public function getProductCategories($productSku)
@@ -1647,7 +1647,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
     }
 
     /**
-     * @param $storeCode
+     * @param string $storeCode
      * @return array|int|null|string
      */
     public function getStoreIdByCode($storeCode)
@@ -1781,22 +1781,16 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         static $mediaGalleryTableName = null;
         static $mediaValueTableName = null;
         static $mediaEntityToValueTableName = null;
-        static $productId = null;
-        if (!$mediaGalleryTableName) {
-            $mediaGalleryTableName = $this->_resourceFactory->create()->getTable(
-                'catalog_product_entity_media_gallery'
-            );
-        }
-        if (!$mediaValueTableName) {
-            $mediaValueTableName = $this->_resourceFactory->create()->getTable(
-                'catalog_product_entity_media_gallery_value'
-            );
-        }
-        if (!$mediaEntityToValueTableName) {
-            $mediaEntityToValueTableName = $this->_resourceFactory->create()->getTable(
-                'catalog_product_entity_media_gallery_value_to_entity'
-            );
-        }
+        $mediaGalleryTableName = $mediaGalleryTableName ?: $this->_resourceFactory->create()->getTable(
+            'catalog_product_entity_media_gallery'
+        );
+        $mediaValueTableName = $mediaValueTableName ?: $this->_resourceFactory->create()->getTable(
+            'catalog_product_entity_media_gallery_value'
+        );
+        $mediaEntityToValueTableName = $mediaEntityToValueTableName ?: $this->_resourceFactory->create()->getTable(
+            'catalog_product_entity_media_gallery_value_to_entity'
+        );
+
         $productIds = [];
         $imageNames = [];
         $multiInsertData = [];
@@ -1830,8 +1824,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         );
         $this->_connection->insertOnDuplicate($mediaGalleryTableName, $multiInsertData, []);
         $multiInsertData = [];
-        $newMediaSelect = $this->_connection->select()
-            ->from($mediaGalleryTableName, ['value_id', 'value'])
+        $newMediaSelect = $this->_connection->select()->from($mediaGalleryTableName, ['value_id', 'value'])
             ->where('value IN (?)', $imageNames);
         if (array_keys($oldMediaValues)) {
             $newMediaSelect->where('value_id NOT IN (?)', array_keys($oldMediaValues));
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php
index 26d5493409b..cee5e53e979 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php
@@ -93,6 +93,12 @@ class Validator extends AbstractValidator implements RowValidatorInterface
         return $valid;
     }
 
+    /**
+     * @param string $attrCode
+     * @param array $attributeParams
+     * @param array $rowData
+     * @return bool
+     */
     public function isRequiredAttributeValid($attrCode, array $attributeParams, array $rowData)
     {
         $doCheck = false;
diff --git a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/ValidatorTest.php b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/ValidatorTest.php
index 3541ccbb993..b7fd1e3604b 100644
--- a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/ValidatorTest.php
+++ b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/Product/ValidatorTest.php
@@ -5,8 +5,10 @@
  */
 namespace Magento\CatalogImportExport\Test\Unit\Model\Import\Product;
 
+use Magento\CatalogImportExport\Model\Import\Product;
 use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
 use Magento\CatalogImportExport\Model\Import\Product\Validator;
+use Magento\ImportExport\Model\Import;
 
 class ValidatorTest extends \PHPUnit_Framework_TestCase
 {
@@ -46,7 +48,7 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
             false
         );
         $this->context->expects($this->any())->method('retrieveProductTypeByName')->willReturn($entityTypeModel);
-        $this->context->expects($this->any())->method('retrieveMessageTemplate')->willReturn('');
+        $this->context->expects($this->any())->method('retrieveMessageTemplate')->willReturn('error message');
 
         $this->validatorOne = $this->getMock(
             'Magento\CatalogImportExport\Model\Import\Product\Validator\Media',
@@ -72,23 +74,123 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase
         $this->validator->init($this->context);
     }
 
-    public function testIsBooleanAttributeValid()
+    /**
+     * @param string $behavior
+     * @param array $attrParams
+     * @param array $rowData
+     * @param bool $isValid
+     * @param string $attrCode
+     * @dataProvider attributeValidationProvider
+     */
+    public function testAttributeValidation($behavior, $attrParams, $rowData, $isValid, $attrCode = 'attribute_code')
     {
-        $this->context->expects($this->any())->method('getBehavior')
-            ->willReturn(\Magento\ImportExport\Model\Import::BEHAVIOR_REPLACE);
+        $this->context->expects($this->any())->method('getBehavior')->willReturn($behavior);
         $result = $this->validator->isAttributeValid(
-            'boolean_attribute',
+            $attrCode,
+            $attrParams,
+            $rowData
+        );
+        $this->assertEquals($isValid, $result);
+        if (!$isValid) {
+            $this->assertTrue($this->validator->hasMessages());
+        }
+    }
+
+    /**
+     * @return array
+     */
+    public function attributeValidationProvider()
+    {
+        return [
+            [
+                'any_behavior',
+                ['apply_to' => ['expected_product_type']],
+                ['product_type' => 'not_expected_product_type'],
+                true, //validation skipped in such case, so it means attribute is valid
+                'any_attibute_code',
+            ],
+            [
+                'any_behavior',
+                [],
+                ['product_type' => 'any'],
+                false,
+                Product::COL_SKU
+            ],
+            [
+                'any_behavior',
+                ['type' => 'varchar'],
+                ['product_type' => 'any', 'sku' => 'sku_value'],
+                true,
+                Product::COL_SKU
+            ],
+            [
+                'any_behavior',
+                ['is_required' => true, 'type' => 'varchar'],
+                ['product_type' => 'any', 'attribute_code' => 'value'],
+                true
+            ],
+            [
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'varchar'],
+                ['product_type' => 'any', 'attribute_code' => ''],
+                false
+            ],
+            [
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'int'],
+                ['product_type' => 'any', 'attribute_code' => 'not-int'],
+                false
+            ],
+            [
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'int'],
+                ['product_type' => 'any', 'attribute_code' => '1'],
+                true
+            ],
+            [
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'boolean', 'options' => ['yes' => 0, 'no' => 1]],
+                ['product_type' => 'any', 'attribute_code' => 'some-value'],
+                false
+            ],
+            [
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'boolean', 'options' => ['yes' => 0, 'no' => 1]],
+                ['product_type' => 'any', 'attribute_code' => 'Yes'],
+                true
+            ],
             [
-                'type' => 'boolean',
-                'apply_to' => ['simple'],
-                'is_required' => false
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'multiselect', 'options' => ['option 1' => 0, 'option 2' => 1]],
+                ['product_type' => 'any', 'attribute_code' => 'Option 1|Option 2|Option 3'],
+                false
             ],
             [
-                'product_type' => 'simple',
-                'boolean_attribute' => 'Yes'
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'multiselect', 'options' => ['option 1' => 0, 'option 2' => 1]],
+                ['product_type' => 'any', 'attribute_code' => 'Option 1|Option 2'],
+                true
+            ],
+            [
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'datetime'],
+                ['product_type' => 'any', 'attribute_code' => '1/1/15 12am'],
+                true
+            ],
+            [
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'datetime'],
+                ['product_type' => 'any', 'attribute_code' => '1/1/15 13am'],
+                false
+            ],
+            [
+                Import::BEHAVIOR_APPEND,
+                ['is_required' => true, 'type' => 'varchar', 'is_unique' => true],
+                ['product_type' => 'any', 'unique_attribute' => 'unique-value', Product::COL_SKU => 'sku-0'],
+                true,
+                'unique_attribute'
             ]
-        );
-        $this->assertTrue($result);
+        ];
     }
 
     public function testIsValidCorrect()
diff --git a/app/code/Magento/ImportExport/Files/Sample/catalog_product.csv b/app/code/Magento/ImportExport/Files/Sample/catalog_product.csv
index e71a80c8711..8d9eaaa5e9a 100644
--- a/app/code/Magento/ImportExport/Files/Sample/catalog_product.csv
+++ b/app/code/Magento/ImportExport/Files/Sample/catalog_product.csv
@@ -1,8 +1,7 @@
-sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,custom_options,configurable_variations,configurable_variation_prices,configurable_variation_labels,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values
-24-WG085,,"Sprite Yoga Strap",simple,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap 6 foot","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and urable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,"1",1,"Taxable Goods","Catalog, Search",14,,,,sprite-yoga-strap-6-foot,"Meta Title","meta1, meta2, meta3","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 15:38","01.07.2015 15:38",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,required_options=0,size=6 foot",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087","/l/u/luma-yoga-strap.jpg,/l/u/luma-yoga-strap.jpg","Image,Image","name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Gold|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Silver|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=yoga3sku,option_title=Platinum",,,,,,,,
-24-WG086,,"Sprite Yoga Strap",simple,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap 8 foot","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>8' long x 1.0"" wide.<li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,"1",1,"Taxable Goods","Catalog, Search",17,,,,sprite-yoga-strap-8-foot,"Meta Title","meta1, meta2, meta4","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 15:38","01.07.2015 15:38",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,required_options=0,size=8 foot",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087","/l/u/luma-yoga-strap.jpg,/l/u/luma-yoga-strap.jpg","Image,Image",,,,,,,,,
-24-WG087,,"Sprite Yoga Strap",simple,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap 10 foot","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>10' long x 1.0"" wide.<li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,"1",1,"Taxable Goods","Catalog, Search",21,,,,sprite-yoga-strap-10-foot,"Meta Title","meta1, meta2, meta5","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 15:39","01.07.2015 15:39",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,required_options=0,size=10 foot",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087","/l/u/luma-yoga-strap.jpg,/l/u/luma-yoga-strap.jpg","Image,Image",,,,,,,,,
-24-WG085_Group,,Gear,grouped,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Set of Sprite Yoga Straps","<p>Great set of Sprite Yoga Straps for every stretch and hold you need. There are three straps in this set: 6', 8' and 10'.</p><ul><li> 100% soft and durable cotton.<li> Plastic cinch buckle is easy to use.<li> Choice of three natural colors made from phthalate and heavy metal free dyes.</ul>",,"1",1,,"Catalog, Search",,,,,set-of-sprite-yoga-straps,"Meta Title","meta1, meta2, meta6","meta description",/l/u/luma-yoga-strap-set.jpg,"Image Label",/l/u/luma-yoga-strap-set.jpg,"Image Label",/l/u/luma-yoga-strap-set.jpg,"Image Label","01.07.2015 15:39","01.07.2015 15:39",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,required_options=0",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/l/u/luma-yoga-strap-set.jpg,"Image,Image",,,,,,,,,
-24-WG085-configurable,,"Sprite Yoga Strap",configurable,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap Configurable","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1,1,"Taxable Goods","Catalog, Search",14,,,,sprite-yoga-strap1,"Meta Title","meta1, meta2, meta7","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 16:15","01.07.2015 16:15",,,"Block after Info Column",,,,,,,,,,,,,"has_options=1,required_options=1",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/l/u/luma-yoga-strap.jpg,"Image,Image",,"sku=24-WG086,size=8 foot|sku=24-WG087,size=10 foot|sku=24-WG085,size=6 foot","name=size,value=8 foot,price=3.0000,price_type=fixed|name=size,value=10 foot,price=7.0000,price_type=fixed|name=size,value=6 foot,price=,price_type=fixed",size=Size,,,,,
-24-WG085-bundle-dynamic,,"Sprite Yoga Strap",bundle,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap Dynamic Bundle","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1,1,"Taxable Goods","Catalog, Search",14,,,,sprite-yoga-strap2,"Meta Title","meta1, meta2, meta8","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 16:15","01.07.2015 16:15",,,"Block after Info Column",,,,,,,,,,,,,"has_options=1,required_options=1",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/l/u/luma-yoga-strap.jpg,"Image,Image",,,,,dynamic,dynamic,"Price Range",fixed,"name=Bundle Option One1,type=dropdown,required=1,sku=24-WG085,price=15; price_type=fixed, default_qty=1, default=0 | name=Bundle Option One1,type=dropdown; required=1, sku=24-WG086,price=10, price_type=fixed, default_qty=1, default=1"
-24-WG085-bundle-fixed,,"Sprite Yoga Strap",bundle,"Default Category/Gear|Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap Fixed Bundle","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1,1,"Taxable Goods","Catalog, Search",14,,,,sprite-yoga-strap3,"Meta Title","meta1, meta2, meta9","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","01.07.2015 16:15","01.07.2015 16:15",,,"Block after Info Column",,,,,,,,,,,,,"has_options=1,required_options=1",0,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,1,"24-WG086,24-WG087","24-WG086,24-WG087","24-WG086,24-WG087",/l/u/luma-yoga-strap.jpg,"Image,Image",,,,,fixed,fixed,"Price Range",fixed,"name=Yoga Strap,type=radiobutton,required=1,sku=24-WG086,default_qty=3,default=1 | name=Yoga Strap,type=radiobutton,required=1,sku=24-WG085,default_qty=3,default=0"
+sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,deferred_stock_update,use_config_deferred_stock_update,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,associated_skus
+24-WG085,,Default,simple,"Default Category/Gear,Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap 6 foot","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and urable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1.0000,1,"Taxable Goods","Catalog, Search",14.0000,,,,sprite-yoga-strap-6-foot,"Meta Title","meta1, meta2, meta3","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","2015-10-25 03:34:19","2015-10-25 03:34:20",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=1,is_returnable=Use config,quantity_and_stock_status=In Stock,required_options=0",100.0000,0.0000,1,0,0,1,1.0000,0,0.0000,1,1,,1,0,1,1,0.0000,1,0,0,1,0,1,"24-WG087,24-WG086","24-WG087,24-WG086","24-WG087,24-WG086",/l/u/luma-yoga-strap.jpg,Image,,"name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Gold|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Silver|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=yoga3sku,option_title=Platinum",,,,,,
+24-WG086,,Default,simple,"Default Category/Gear,Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap 8 foot","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>8' long x 1.0"" wide.<li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1.0000,1,"Taxable Goods","Catalog, Search",17.0000,,,,sprite-yoga-strap-8-foot,"Meta Title","meta1, meta2, meta4","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","2015-10-25 03:34:20","2015-10-25 03:34:20",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=0,is_returnable=Use config,quantity_and_stock_status=In Stock,required_options=0",100.0000,0.0000,1,0,0,1,1.0000,0,0.0000,1,1,,1,0,1,1,0.0000,1,0,0,1,0,1,24-WG087,24-WG087,24-WG087,/l/u/luma-yoga-strap.jpg,Image,,,,,,,,
+24-WG087,,Default,simple,"Default Category/Gear,Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap 10 foot","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>10' long x 1.0"" wide.<li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1.0000,1,"Taxable Goods","Catalog, Search",21.0000,,,,sprite-yoga-strap-10-foot,"Meta Title","meta1, meta2, meta5","meta description",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label",/l/u/luma-yoga-strap.jpg,"Image Label","2015-10-25 03:34:20","2015-10-25 03:34:20",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=0,is_returnable=Use config,quantity_and_stock_status=In Stock,required_options=0",100.0000,0.0000,1,0,0,1,1.0000,0,0.0000,1,1,,1,0,1,1,0.0000,1,0,0,1,0,1,24-WG086,24-WG086,24-WG086,/l/u/luma-yoga-strap.jpg,Image,,,,,,,,
+24-WG085_Group,,Default,grouped,"Default Category/Gear,Default Category/Gear/Fitness Equipment",base,"Set of Sprite Yoga Straps","<p>Great set of Sprite Yoga Straps for every stretch and hold you need. There are three straps in this set: 6', 8' and 10'.</p><ul><li>100% soft and durable cotton.</li><li>Plastic cinch buckle is easy to use.</li><li>Choice of three natural colors made from phthalate and heavy metal free dyes.</li></ul>",,,1,,"Catalog, Search",,,,,set-of-sprite-yoga-straps,"Meta Title","meta1, meta2, meta6","meta description",/l/u/luma-yoga-strap-set.jpg,Image,/l/u/luma-yoga-strap-set.jpg,Image,/l/u/luma-yoga-strap-set.jpg,Image,"2015-10-25 03:34:20","2015-10-25 03:36:31",,,"Block after Info Column",,,,,,,,,,,,,"has_options=0,is_returnable=Use config,quantity_and_stock_status=In Stock,required_options=0",0.0000,0.0000,1,0,0,1,1.0000,0,0.0000,1,1,,1,1,1,1,0.0000,1,0,0,1,0,1,"24-WG087,24-WG086","24-WG087,24-WG086","24-WG087,24-WG086",/l/u/luma-yoga-strap-set.jpg,Image,,,,,,,,"24-WG085=5.0000,24-WG086=5.0000"
+24-WG085-bundle-dynamic,,Default,bundle,"Default Category/Gear,Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap Dynamic Bundle","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1.0000,1,"Taxable Goods","Catalog, Search",14.0000,,,,sprite-yoga-strap2,"Meta Title","meta1, meta2, meta8","meta description",/l/u/luma-yoga-strap.jpg,,/l/u/luma-yoga-strap.jpg,,/l/u/luma-yoga-strap.jpg,,"2015-10-25 03:34:20","2015-10-25 03:34:20",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=1,is_returnable=Use config,quantity_and_stock_status=In Stock,required_options=0",0.0000,0.0000,1,0,0,1,1.0000,0,0.0000,1,1,,1,0,1,1,0.0000,1,0,0,1,0,1,"24-WG087,24-WG086","24-WG087,24-WG086","24-WG087,24-WG086",/l/u/luma-yoga-strap.jpg,Image,,,dynamic,dynamic,"Price range",fixed,"name=Bundle Option One1,type=select,required=1,sku=24-WG085,price=15.0000,default=0,default_qty=1.0000,price_type=fixed|name=Bundle Option One1,type=select,required=1,sku=24-WG086,price=10.0000,default=1,default_qty=1.0000,price_type=fixed",
+24-WG085-bundle-fixed,,Default,bundle,"Default Category/Gear,Default Category/Gear/Fitness Equipment",base,"Sprite Yoga Strap Fixed Bundle","<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap's 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal free dyes.</ul>",,1.0000,1,"Taxable Goods","Catalog, Search",14.0000,,,,sprite-yoga-strap3,"Meta Title","meta1, meta2, meta9","meta description",/l/u/luma-yoga-strap.jpg,,/l/u/luma-yoga-strap.jpg,,/l/u/luma-yoga-strap.jpg,,"2015-10-25 03:34:20","2015-10-25 03:34:20",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=1,is_returnable=Use config,quantity_and_stock_status=In Stock,required_options=0",0.0000,0.0000,1,0,0,1,1.0000,0,0.0000,1,1,,1,0,1,1,0.0000,1,0,0,1,0,1,"24-WG087,24-WG086","24-WG087,24-WG086","24-WG087,24-WG086",/l/u/luma-yoga-strap.jpg,Image,,,fixed,fixed,"Price range",fixed,"name=Yoga Strap,type=radio,required=1,sku=24-WG086,price=0.0000,default=1,default_qty=3.0000,price_type=percent|name=Yoga Strap,type=radio,required=1,sku=24-WG085,price=0.0000,default=0,default_qty=3.0000,price_type=percent",
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
index a140d2aefcf..329127b7bd9 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
@@ -21,7 +21,6 @@ use Magento\Framework\App\Filesystem\DirectoryList;
  * Class ProductTest
  *
  * @magentoDataFixtureBeforeTransaction Magento/Catalog/_files/enable_reindex_schedule.php
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 class ProductTest extends \PHPUnit_Framework_TestCase
 {
@@ -77,7 +76,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function testSaveProductsVisibility()
+    public function _testSaveProductsVisibility()
     {
         $existingProductIds = [10, 11, 12];
         $productsBeforeImport = [];
@@ -128,7 +127,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function testSaveStockItemQty()
+    public function _testSaveStockItemQty()
     {
         $existingProductIds = [10, 11, 12];
         $stockItems = [];
@@ -182,7 +181,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function testStockState()
+    public function _testStockState()
     {
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Framework\Filesystem');
@@ -211,7 +210,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @param string $sku
      * @magentoAppIsolation enabled
      */
-    public function testSaveCustomOptions($importFile, $sku)
+    public function _testSaveCustomOptions($importFile, $sku)
     {
         $pathToFile = __DIR__ . '/_files/' . $importFile;
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
@@ -296,7 +295,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function testSaveDatetimeAttribute()
+    public function _testSaveDatetimeAttribute()
     {
         $existingProductIds = [10, 11, 12];
         $productsBeforeImport = [];
@@ -511,7 +510,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      *
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function testSaveMediaImage()
+    public function _testSaveMediaImage()
     {
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
@@ -627,7 +626,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      *
      * @magentoDbIsolation enabled
      */
-    public function testInvalidSkuLink()
+    public function _testInvalidSkuLink()
     {
         // import data from CSV file
         $pathToFile = __DIR__ . '/_files/products_to_import_invalid_attribute_set.csv';
@@ -670,7 +669,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/products_with_multiselect_attribute.php
      * @magentoAppIsolation enabled
      */
-    public function testValidateInvalidMultiselectValues()
+    public function _testValidateInvalidMultiselectValues()
     {
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Framework\Filesystem'
@@ -701,7 +700,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/ConfigurableProduct/_files/configurable_attribute.php
      * @magentoAppIsolation enabled
      */
-    public function testProductsWithMultipleStores()
+    public function _testProductsWithMultipleStores()
     {
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 
@@ -740,7 +739,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
     /**
      * @magentoDbIsolation enabled
      */
-    public function testProductWithInvalidWeight()
+    public function _testProductWithInvalidWeight()
     {
         // import data from CSV file
         $pathToFile = __DIR__ . '/_files/product_to_import_invalid_weight.csv';
@@ -762,4 +761,45 @@ class ProductTest extends \PHPUnit_Framework_TestCase
             $errors->getErrorByRowNumber(1)[0]->getErrorMessage()
         );
     }
+
+    /**
+     * @magentoDbIsolation enabled
+     * @magentoAppIsolation enabled
+     */
+    public function testProductCategoriesDefaultSeparator()
+    {
+        // import data from CSV file
+        $pathToFile = __DIR__ . '/_files/import_new_categories_default_separator.csv';
+        $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Framework\Filesystem'
+        );
+
+        $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+        $source = new \Magento\ImportExport\Model\Import\Source\Csv($pathToFile, $directory);
+        $errors = $this->_model->setSource(
+            $source
+        )->setParameters(
+            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+        )->validateData();
+
+        $this->assertTrue($errors->getErrorsCount() == 0);
+        $this->_model->importData();
+
+        $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+        $resource = $objectManager->get('Magento\Catalog\Model\ResourceModel\Product');
+        $productId = $resource->getIdBySku('simple1');
+        $this->assertTrue(is_numeric($productId));
+        /** @var \Magento\Catalog\Model\Product $product */
+        $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Catalog\Model\Product'
+        );
+        $product->load($productId);
+        $this->assertFalse($product->isObjectNew());
+        $categories = $product->getCategoryCollection();
+        $this->assertTrue($categories->count() > 0);
+        /** @var \Magento\Catalog\Model\Category $category */
+        foreach ($categories as $category) {
+            $this->assertTrue(in_array($category->getName(), ['Category 1', 'Category 2']));
+        }
+    }
 }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_custom_separator.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_custom_separator.csv
new file mode 100644
index 00000000000..96281b790b1
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_custom_separator.csv
@@ -0,0 +1,2 @@
+sku,product_type,store_view_code,name,price,attribute_set_code,categories,product_websites
+simple2,simple,,"simple 2",25,Default,"Default Category/Category 1|Default Category/Category 2",base
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_default_separator.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_default_separator.csv
new file mode 100644
index 00000000000..9bf687dec46
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_default_separator.csv
@@ -0,0 +1,2 @@
+sku,product_type,store_view_code,name,price,attribute_set_code,categories,product_websites,url_key
+simple1,simple,,"simple 1",25,Default,"Default Category/Category 1,Default Category/Category 2",base,simple1-ds
-- 
GitLab


From c36df073d35169ee3fa2a5dc996057059c3088a1 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Sun, 25 Oct 2015 18:49:48 +0200
Subject: [PATCH 36/61] MAGETWO-39795: Check data for import product does not
 work MAGETWO-43900: Imported products with broken images link don't appear on
 front MAGETWO-43901: The "Imported resource (image) could not be downloaded"
 message appears when user tries to import products using "Replace" behavior
 MAGETWO-44238: Categories imported in a comma-separated format are not
 created properly MAGETWO-42245: _media_is_disabled is not exported
 MAGETWO-44407: CLONE - Product export and re-import with different store view
 level data causes data corruption

---
 .../Model/Export/Product.php                  |  4 +-
 .../Model/Import/Product.php                  | 35 +++++++-----
 .../Model/Import/ProductTest.php              | 54 ++++++++++++-------
 ...import_new_categories_custom_separator.csv |  2 +-
 4 files changed, 58 insertions(+), 37 deletions(-)

diff --git a/app/code/Magento/CatalogImportExport/Model/Export/Product.php b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
index b3f8a864758..58e22946ffc 100644
--- a/app/code/Magento/CatalogImportExport/Model/Export/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
@@ -672,7 +672,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
                     self::COL_ATTR_SET,
                     self::COL_TYPE,
                     self::COL_CATEGORY,
-                    '_product_websites',
+                    self::COL_PRODUCT_WEBSITES,
                 ],
                 $this->_getExportMainAttrCodes(),
                 [self::COL_ADDITIONAL_ATTRIBUTES],
@@ -1040,7 +1040,7 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
                 foreach ($multiRawData['rowWebsites'][$productId] as $productWebsite) {
                     $websiteCodes[] = $this->_websiteIdToCode[$productWebsite];
                 }
-                $dataRow['_product_websites'] =
+                $dataRow[self::COL_PRODUCT_WEBSITES] =
                     implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $websiteCodes);
                 $multiRawData['rowWebsites'][$productId] = [];
             }
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index 863ea0d9fb8..54ce88b1b0e 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -1437,20 +1437,10 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                 }
 
                 // 3. Categories phase
-                $categoriesString = empty($rowData[self::COL_CATEGORY]) ? '' : $rowData[self::COL_CATEGORY];
-                $separatorName = \Magento\ImportExport\Model\Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR;
-                $multipleSeparatorValue = empty($this->_parameters[$separatorName])
-                    ? static::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR
-                    : $this->_parameters[$separatorName];
-                $this->categoriesCache[$rowSku] = [];
-                if (!empty($categoriesString)) {
-                    $categoryIds = $this->categoryProcessor->upsertCategories(
-                        $categoriesString,
-                        $multipleSeparatorValue
-                    );
-                    foreach ($categoryIds as $id) {
-                        $this->categoriesCache[$rowSku][$id] = true;
-                    }
+                $categoryIds = $this->processRowCategories($rowData);
+                $this->categoriesCache[$rowData[Product::COL_SKU]] = [];
+                foreach ($categoryIds as $id) {
+                    $this->categoriesCache[$rowData[Product::COL_SKU]][$id] = true;
                 }
 
                 // 4.1. Tier prices phase
@@ -1628,6 +1618,23 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         return $this;
     }
 
+    /**
+     * @param array $rowData
+     * @return array
+     */
+    protected function processRowCategories($rowData)
+    {
+        $categoriesString = empty($rowData[self::COL_CATEGORY]) ? '' : $rowData[self::COL_CATEGORY];
+        $categoryIds = [];
+        if (!empty($categoriesString)) {
+            $categoryIds = $this->categoryProcessor->upsertCategories(
+                $categoriesString,
+                $this->getMultipleValueSeparator()
+            );
+        }
+        return $categoryIds;
+    }
+
     /**
      * @param string $productSku
      * @return array
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
index 329127b7bd9..fd948348e4d 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
@@ -16,6 +16,7 @@ namespace Magento\CatalogImportExport\Model\Import;
 
 use Magento\Framework\App\Bootstrap;
 use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\ImportExport\Model\Import;
 
 /**
  * Class ProductTest
@@ -76,7 +77,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function _testSaveProductsVisibility()
+    public function testSaveProductsVisibility()
     {
         $existingProductIds = [10, 11, 12];
         $productsBeforeImport = [];
@@ -127,7 +128,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function _testSaveStockItemQty()
+    public function testSaveStockItemQty()
     {
         $existingProductIds = [10, 11, 12];
         $stockItems = [];
@@ -181,7 +182,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function _testStockState()
+    public function testStockState()
     {
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Framework\Filesystem');
@@ -210,7 +211,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @param string $sku
      * @magentoAppIsolation enabled
      */
-    public function _testSaveCustomOptions($importFile, $sku)
+    public function testSaveCustomOptions($importFile, $sku)
     {
         $pathToFile = __DIR__ . '/_files/' . $importFile;
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
@@ -295,7 +296,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
      * @magentoAppIsolation enabled
      */
-    public function _testSaveDatetimeAttribute()
+    public function testSaveDatetimeAttribute()
     {
         $existingProductIds = [10, 11, 12];
         $productsBeforeImport = [];
@@ -510,7 +511,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      *
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function _testSaveMediaImage()
+    public function testSaveMediaImage()
     {
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
@@ -626,7 +627,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      *
      * @magentoDbIsolation enabled
      */
-    public function _testInvalidSkuLink()
+    public function testInvalidSkuLink()
     {
         // import data from CSV file
         $pathToFile = __DIR__ . '/_files/products_to_import_invalid_attribute_set.csv';
@@ -646,7 +647,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
 
         $this->assertTrue($errors->getErrorsCount() == 1);
         $this->assertEquals(
-            'Invalid value for Product Template column (set doesn\'t exist?)',
+            'Invalid value for Attribute Set column (set doesn\'t exist?)',
             $errors->getErrorByRowNumber(1)[0]->getErrorMessage()
         );
         $this->_model->importData();
@@ -669,7 +670,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/Catalog/_files/products_with_multiselect_attribute.php
      * @magentoAppIsolation enabled
      */
-    public function _testValidateInvalidMultiselectValues()
+    public function testValidateInvalidMultiselectValues()
     {
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Framework\Filesystem'
@@ -700,7 +701,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
      * @magentoDataFixture Magento/ConfigurableProduct/_files/configurable_attribute.php
      * @magentoAppIsolation enabled
      */
-    public function _testProductsWithMultipleStores()
+    public function testProductsWithMultipleStores()
     {
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 
@@ -739,7 +740,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
     /**
      * @magentoDbIsolation enabled
      */
-    public function _testProductWithInvalidWeight()
+    public function testProductWithInvalidWeight()
     {
         // import data from CSV file
         $pathToFile = __DIR__ . '/_files/product_to_import_invalid_weight.csv';
@@ -763,13 +764,15 @@ class ProductTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
+     * @magentoAppArea adminhtml
+     * @dataProvider categoryTestDataProvider
      * @magentoDbIsolation enabled
      * @magentoAppIsolation enabled
      */
-    public function testProductCategoriesDefaultSeparator()
+    public function testProductCategories($fixture, $separator)
     {
         // import data from CSV file
-        $pathToFile = __DIR__ . '/_files/import_new_categories_default_separator.csv';
+        $pathToFile = __DIR__ . '/_files/' . $fixture;
         $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Framework\Filesystem'
         );
@@ -779,7 +782,11 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $errors = $this->_model->setSource(
             $source
         )->setParameters(
-            ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'catalog_product']
+            [
+                'behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
+                'entity' => 'catalog_product',
+                Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR => $separator
+            ]
         )->validateData();
 
         $this->assertTrue($errors->getErrorsCount() == 0);
@@ -795,11 +802,18 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         );
         $product->load($productId);
         $this->assertFalse($product->isObjectNew());
-        $categories = $product->getCategoryCollection();
-        $this->assertTrue($categories->count() > 0);
-        /** @var \Magento\Catalog\Model\Category $category */
-        foreach ($categories as $category) {
-            $this->assertTrue(in_array($category->getName(), ['Category 1', 'Category 2']));
-        }
+        $categories = $product->getCategoryIds();
+        $this->assertTrue(count($categories) == 2);
+    }
+
+    /**
+     * @return array
+     */
+    public function categoryTestDataProvider()
+    {
+        return [
+            ['import_new_categories_default_separator.csv', ','],
+            ['import_new_categories_custom_separator.csv', '|']
+        ];
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_custom_separator.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_custom_separator.csv
index 96281b790b1..c0deb9b289f 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_custom_separator.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/import_new_categories_custom_separator.csv
@@ -1,2 +1,2 @@
 sku,product_type,store_view_code,name,price,attribute_set_code,categories,product_websites
-simple2,simple,,"simple 2",25,Default,"Default Category/Category 1|Default Category/Category 2",base
+simple1,simple,,"simple 2",25,Default,"Default Category/Category 1|Default Category/Category 2",base
-- 
GitLab


From 6aac527a0e1354fc0d5648ebbab3f6ff881e400f Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Sun, 25 Oct 2015 14:47:40 -0500
Subject: [PATCH 37/61] MAGETWO-44470: clear generated files in CLI framework 
 - fixed CR comments

---
 setup/src/Magento/Setup/Console/CompilerPreparation.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/setup/src/Magento/Setup/Console/CompilerPreparation.php b/setup/src/Magento/Setup/Console/CompilerPreparation.php
index 23e796bfcec..adfefd3db07 100644
--- a/setup/src/Magento/Setup/Console/CompilerPreparation.php
+++ b/setup/src/Magento/Setup/Console/CompilerPreparation.php
@@ -35,8 +35,7 @@ class CompilerPreparation
         \Zend\ServiceManager\ServiceManager $serviceManager,
         \Symfony\Component\Console\Input\ArgvInput $input,
         \Magento\Framework\Filesystem\Driver\File $filesystemDriver
-    )
-    {
+    ) {
         $this->serviceManager   = $serviceManager;
         $this->input            = $input;
         $this->filesystemDriver = $filesystemDriver;
@@ -46,6 +45,7 @@ class CompilerPreparation
      * Determine whether a CLI command is for compilation, and if so, clear the directory
      *
      * @throws \Magento\Framework\Exception\FileSystemException
+     * @return void
      */
     public function handleCompilerEnvironment()
     {
-- 
GitLab


From 5d7d0bc7d16e53d2258b9f147405c8f94e6c4e56 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Mon, 26 Oct 2015 00:02:31 -0500
Subject: [PATCH 38/61] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Magento/Setup/Console/Command/DiCompileCommand.php   | 6 ++++--
 .../Di/App/Task/Operation/ApplicationCodeGenerator.php   | 5 ++++-
 .../Module/Di/App/Task/Operation/ProxyGenerator.php      | 9 ++++++---
 .../Module/Di/App/Task/Operation/RepositoryGenerator.php | 9 ++++++---
 .../Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php  | 1 +
 .../Unit/Module/Di/App/Task/RepositoryGeneratorTest.php  | 3 ++-
 6 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
index 8540a636d63..9b2b2f5977d 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
@@ -296,11 +296,13 @@ class DiCompileCommand extends Command
         $operations = [
             OperationFactory::PROXY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
-                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
+                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'],
+                'excludePatterns' => ['/\/Test\//']
             ],
             OperationFactory::REPOSITORY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
-                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
+                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'],
+                'excludePatterns' => ['/\/Test\//']
             ],
             OperationFactory::DATA_ATTRIBUTES_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
index b18f413fb68..bd66d8e1223 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
@@ -69,7 +69,10 @@ class ApplicationCodeGenerator implements OperationInterface
             $files = [];
             foreach ($paths as $path) {
                 $this->classesScanner->getList($path);
-                $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns']));
+                $files = array_merge_recursive(
+                    $files,
+                    $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns'])
+                );
             }
             $entities = $this->phpScanner->collectEntities($files['php']);
             foreach ($entities as $entityName) {
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
index 38751954c9e..ebfec0635b8 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
@@ -48,14 +48,17 @@ class ProxyGenerator implements OperationInterface
      */
     public function doOperation()
     {
-        if (array_diff(array_keys($this->data), ['filePatterns', 'paths'])
-            !== array_diff(['filePatterns', 'paths'], array_keys($this->data))) {
+        if (array_diff(array_keys($this->data), ['filePatterns', 'paths', 'excludePatterns'])
+            !== array_diff(['filePatterns', 'paths', 'excludePatterns'], array_keys($this->data))) {
             return;
         }
 
         $files = [];
         foreach ($this->data['paths'] as $path) {
-            $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns']));
+            $files = array_merge_recursive(
+                $files,
+                $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns'])
+            );
         }
         $proxies = $this->proxyScanner->collectEntities($files['di']);
         foreach ($proxies as $entityName) {
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
index cf3c779a3f7..60d11596615 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
@@ -57,8 +57,8 @@ class RepositoryGenerator implements OperationInterface
      */
     public function doOperation()
     {
-        if (array_diff(array_keys($this->data), ['filePatterns', 'paths'])
-            !== array_diff(['filePatterns', 'paths'], array_keys($this->data))) {
+        if (array_diff(array_keys($this->data), ['filePatterns', 'paths', 'excludePatterns'])
+            !== array_diff(['filePatterns', 'paths', 'excludePatterns'], array_keys($this->data))) {
             return;
         }
 
@@ -68,7 +68,10 @@ class RepositoryGenerator implements OperationInterface
         $this->repositoryScanner->setUseAutoload(false);
         $files = [];
         foreach ($this->data['paths'] as $path) {
-            $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns']));
+            $files = array_merge_recursive(
+                $files,
+                $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns'])
+            );
         }
         $repositories = $this->repositoryScanner->collectEntities($files['di']);
         foreach ($repositories as $entityName) {
diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
index 9b78e237db3..c721973f615 100644
--- a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
@@ -70,6 +70,7 @@ class ProxyGeneratorTest extends \PHPUnit_Framework_TestCase
         $data = [
             'paths' => ['path/to/app'],
             'filePatterns' => ['di' => 'di.xml'],
+            'excludePatterns' => ['/\/Test\//'],
         ];
         $files = ['di' => []];
         $model = new ProxyGenerator(
diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php
index 8b49d60df51..626ccfbe713 100644
--- a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php
@@ -16,7 +16,7 @@ class RepositoryGeneratorTest extends \PHPUnit_Framework_TestCase
      * @var Scanner\DirectoryScanner | \PHPUnit_Framework_MockObject_MockObject
      */
     private $directoryScannerMock;
-    
+
     /**
      * @var Scanner\RepositoryScanner | \PHPUnit_Framework_MockObject_MockObject
      */
@@ -75,6 +75,7 @@ class RepositoryGeneratorTest extends \PHPUnit_Framework_TestCase
         $data = [
             'paths' => ['path/to/app'],
             'filePatterns' => ['di' => 'di.xml'],
+            'excludePatterns' => ['/\/Test\//'],
         ];
         $files = ['di' => []];
         $model = new RepositoryGenerator(
-- 
GitLab


From 3772e35fbea8a4d9722328bfa699c7181a65617e Mon Sep 17 00:00:00 2001
From: Oleksandr Dubovyk <odubovyk@ebay.com>
Date: Mon, 26 Oct 2015 11:58:43 +0200
Subject: [PATCH 39/61] MAGETWO-44527: Invalid padding of collapsiple panel on
 "create Product" Admin page

- Fixed dropdown when collapsiple panel is collapsed
---
 .../Magento/Catalog/view/adminhtml/web/product/product.css  | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Catalog/view/adminhtml/web/product/product.css b/app/code/Magento/Catalog/view/adminhtml/web/product/product.css
index 153a6d488fe..e9fa2e80db8 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/product/product.css
+++ b/app/code/Magento/Catalog/view/adminhtml/web/product/product.css
@@ -207,12 +207,14 @@
 }
 
 /* action in fieldset wrapper */
-.admin__scope-old #group-fields-product-details-wrapper .attribute-selector {
+.admin__scope-old .admin__collapsible-block-wrapper .attribute-selector {
     visibility: hidden;
+    height: 0;
 }
 
-.admin__scope-old #group-fields-product-details-wrapper.opened .attribute-selector {
+.admin__scope-old .admin__collapsible-block-wrapper.opened .attribute-selector {
     visibility: visible;
+    height: auto;
 }
 
 .admin__scope-old .action-manage-images {
-- 
GitLab


From 495b9b1e8e468d2e253863b50a5e4927cfc61f56 Mon Sep 17 00:00:00 2001
From: Oleksandr Dubovyk <odubovyk@ebay.com>
Date: Mon, 26 Oct 2015 12:07:59 +0200
Subject: [PATCH 40/61] MAGETWO-44527: Invalid padding of collapsiple panel on
 "create Product" Admin page

---
 .../Magento/Catalog/view/adminhtml/web/product/product.css    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Catalog/view/adminhtml/web/product/product.css b/app/code/Magento/Catalog/view/adminhtml/web/product/product.css
index e9fa2e80db8..620c87f55b9 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/product/product.css
+++ b/app/code/Magento/Catalog/view/adminhtml/web/product/product.css
@@ -208,13 +208,13 @@
 
 /* action in fieldset wrapper */
 .admin__scope-old .admin__collapsible-block-wrapper .attribute-selector {
-    visibility: hidden;
     height: 0;
+    visibility: hidden;
 }
 
 .admin__scope-old .admin__collapsible-block-wrapper.opened .attribute-selector {
-    visibility: visible;
     height: auto;
+    visibility: visible;
 }
 
 .admin__scope-old .action-manage-images {
-- 
GitLab


From 03d3054029f57d00a83ed7c39bbbf8fb110f2fe8 Mon Sep 17 00:00:00 2001
From: Olga Lytvynenko <olytvynenko@ebay.com>
Date: Mon, 26 Oct 2015 12:48:07 +0200
Subject: [PATCH 41/61] MAGETWO-44353: [IE9]Gallery thumbnail navigation arrow
 displayed particularly inside thumbnails block

- Remove unnecessary spaces.
---
 lib/web/mage/gallery/gallery.less | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less
index d9b22b2d0b4..73b98b23d5b 100644
--- a/lib/web/mage/gallery/gallery.less
+++ b/lib/web/mage/gallery/gallery.less
@@ -1147,7 +1147,7 @@
     }
     .fotorama__thumb__arr--left {
         .fotorama-arrow-gradient(left);
-        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=1 );
+        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=1);
         left: 0;
 
         .fotorama__thumb__arr {
@@ -1156,7 +1156,7 @@
     }
     .fotorama__thumb__arr--right {
         .fotorama-arrow-gradient(right);
-        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1 );
+        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1);
         right: 0;
 
         .fotorama__thumb__arr {
-- 
GitLab


From 3a9a6a6a19bdc109b812cb5e53a68f7aa60a453e Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Mon, 26 Oct 2015 13:18:37 +0200
Subject: [PATCH 42/61] MAGETWO-39795: Check data for import product does not
 work MAGETWO-43900: Imported products with broken images link don't appear on
 front MAGETWO-43901: The "Imported resource (image) could not be downloaded"
 message appears when user tries to import products using "Replace" behavior
 MAGETWO-44238: Categories imported in a comma-separated format are not
 created properly MAGETWO-42245: _media_is_disabled is not exported
 MAGETWO-44407: CLONE - Product export and re-import with different store view
 level data causes data corruption

---
 .../Magento/CatalogImportExport/Model/Import/Product.php  | 4 +++-
 .../CatalogImportExport/Model/Import/ProductTest.php      | 2 ++
 .../Model/Import/_files/products_multiple_stores.csv      | 8 ++++----
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index 54ce88b1b0e..4a145dcdb35 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -1426,7 +1426,9 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                     }
                 }
 
-                $this->websitesCache[$rowSku] = [];
+                if (!array_key_exists($rowSku, $this->websitesCache)) {
+                    $this->websitesCache[$rowSku] = [];
+                }
                 // 2. Product-to-Website phase
                 if (!empty($rowData[self::COL_PRODUCT_WEBSITES])) {
                     $websiteCodes = explode($this->getMultipleValueSeparator(), $rowData[self::COL_PRODUCT_WEBSITES]);
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
index fd948348e4d..e8205523ec8 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
@@ -696,6 +696,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
 
     /**
      * @magentoDataFixture Magento/Catalog/_files/categories.php
+     * @magentoDataFixture Magento/Store/_files/website.php
      * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      * @magentoDataFixture Magento/Catalog/Model/Layer/Filter/_files/attribute_with_option.php
      * @magentoDataFixture Magento/ConfigurableProduct/_files/configurable_attribute.php
@@ -734,6 +735,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $simpleProduct = $objectManager->create('Magento\Catalog\Model\Product');
         $id = $simpleProduct->getIdBySku('Configurable 03-Option 1');
         $simpleProduct->load($id);
+        $this->assertTrue(count($simpleProduct->getWebsiteIds()) == 2);
         $this->assertEquals('Option Label', $simpleProduct->getAttributeText('attribute_with_option'));
     }
 
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv
index d3e6af92cba..d7876f61223 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_multiple_stores.csv
@@ -1,5 +1,5 @@
 sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,crosssell_skus,upsell_skus,additional_images,additional_image_labels,hide_from_product_page,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,configurable_variations,configurable_variation_labels,associated_skus
-"Configurable 03-Option 1",,Default,simple,"Default Category/Category 1/Category 1.1",base,"Configurable 03-Option 1",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-1,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-23 00:35:03","2015-10-23 01:00:25",,,"Block after Info Column",,,,,,,,,,,"Use config",,"attribute_with_option=Option Label,has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 1",99999.0000,0.0000,0,0,0,1,1.0000,0,0.0000,0,1,,1,1,0,0,1.0000,0,0,0,1,,,,,,,,,,,,,,
-"Configurable 03-Option 1",fixturestore,Default,"simple",,base,"Configurable 03-Option 1 fixturestore",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-"Configurable 03-Option 2",,Default,simple,"Default Category/Category 1/Category 1.1",base,"Configurable 03-Option 2",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-2,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-23 00:35:03","2015-10-23 00:35:03",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 2",99999.0000,0.0000,0,0,0,1,1.0000,0,0.0000,0,1,,1,1,0,0,1.0000,0,0,0,1,,,,,,,,,,,,,,
-"Configurable 03",,Default,configurable,"Default Category/Category 1/Category 1.1",base,"Configurable 03",,,,1,"Taxable Goods","Catalog, Search",10.0000,,,,configurable-03,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-23 00:35:03","2015-10-23 00:35:03",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=1,quantity_and_stock_status=In Stock,required_options=0",0.0000,0.0000,0,0,0,1,1.0000,0,0.0000,0,1,,1,0,0,0,1.0000,0,0,0,1,,,,,,,,,,,,"sku=Configurable 03-Option 1,test_configurable=Option 1|sku=Configurable 03-Option 2,test_configurable=Option 2",test_configurable=test_configurable,
+"Configurable 03-Option 1",,Default,simple,"Default Category/Category 1/Category 1.1","base,test","Configurable 03-Option 1",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-1,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-23 00:35:03","2015-10-23 01:00:25",,,"Block after Info Column",,,,,,,,,,,"Use config",,"attribute_with_option=Option Label,has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 1",99999.0000,0.0000,0,0,0,1,1.0000,0,0.0000,0,1,,1,1,0,0,1.0000,0,0,0,1,,,,,,,,,,,,,,
+"Configurable 03-Option 1",fixturestore,Default,"simple",,,"Configurable 03-Option 1 fixturestore",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"Configurable 03-Option 2",,Default,simple,"Default Category/Category 1/Category 1.1","base,test","Configurable 03-Option 2",,,,1,"Taxable Goods","Not Visible Individually",10.0000,,,,configurable-03-option-2,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-23 00:35:03","2015-10-23 00:35:03",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=0,quantity_and_stock_status=In Stock,required_options=0,test_configurable=Option 2",99999.0000,0.0000,0,0,0,1,1.0000,0,0.0000,0,1,,1,1,0,0,1.0000,0,0,0,1,,,,,,,,,,,,,,
+"Configurable 03",,Default,configurable,"Default Category/Category 1/Category 1.1","base,test","Configurable 03",,,,1,"Taxable Goods","Catalog, Search",10.0000,,,,configurable-03,"Configurable 03","Configurable 03","Configurable 03 ",,,,,,,"2015-10-23 00:35:03","2015-10-23 00:35:03",,,"Block after Info Column",,,,,,,,,,,"Use config",,"has_options=1,quantity_and_stock_status=In Stock,required_options=0",0.0000,0.0000,0,0,0,1,1.0000,0,0.0000,0,1,,1,0,0,0,1.0000,0,0,0,1,,,,,,,,,,,,"sku=Configurable 03-Option 1,test_configurable=Option 1|sku=Configurable 03-Option 2,test_configurable=Option 2",test_configurable=test_configurable,
-- 
GitLab


From f4d3451108f601a750287afc62916194b6010411 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Mon, 26 Oct 2015 15:21:58 +0200
Subject: [PATCH 43/61] MAGETWO-39795: Check data for import product does not
 work MAGETWO-43900: Imported products with broken images link don't appear on
 front MAGETWO-43901: The "Imported resource (image) could not be downloaded"
 message appears when user tries to import products using "Replace" behavior
 MAGETWO-44238: Categories imported in a comma-separated format are not
 created properly MAGETWO-42245: _media_is_disabled is not exported
 MAGETWO-44407: CLONE - Product export and re-import with different store view
 level data causes data corruption

---
 .../Magento/CatalogImportExport/Model/Export/Product.php    | 6 +++---
 .../Magento/CatalogImportExport/Model/Import/Product.php    | 2 --
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/CatalogImportExport/Model/Export/Product.php b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
index 58e22946ffc..299084686e0 100644
--- a/app/code/Magento/CatalogImportExport/Model/Export/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Export/Product.php
@@ -1052,9 +1052,9 @@ class Product extends \Magento\ImportExport\Model\Export\Entity\AbstractEntity
                     $additionalImages[] = $mediaItem['_media_image'];
                     $additionalImageLabels[] = $mediaItem['_media_label'];
 
-                   if ($mediaItem['_media_is_disabled'] == true) {
-                       $additionalImageIsDisabled[] = $mediaItem['_media_image'];
-                   }
+                    if ($mediaItem['_media_is_disabled'] == true) {
+                        $additionalImageIsDisabled[] = $mediaItem['_media_image'];
+                    }
                 }
                 $dataRow['additional_images'] =
                     implode(ImportProduct::DEFAULT_GLOBAL_MULTI_VALUE_SEPARATOR, $additionalImages);
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index 4a145dcdb35..a7f04b26938 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -1799,7 +1799,6 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
         $mediaEntityToValueTableName = $mediaEntityToValueTableName ?: $this->_resourceFactory->create()->getTable(
             'catalog_product_entity_media_gallery_value_to_entity'
         );
-
         $productIds = [];
         $imageNames = [];
         $multiInsertData = [];
@@ -1880,7 +1879,6 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                 $this->_connection->quoteInto('value_id IN (?)', $newMediaValues)
             );
         }
-
         return $this;
     }
 
-- 
GitLab


From ea18e7d973e980d28414a3f5413a8f7aa5a80fde Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Mon, 26 Oct 2015 15:58:27 +0200
Subject: [PATCH 44/61] MAGETWO-39795: Check data for import product does not
 work MAGETWO-43900: Imported products with broken images link don't appear on
 front MAGETWO-43901: The "Imported resource (image) could not be downloaded"
 message appears when user tries to import products using "Replace" behavior
 MAGETWO-44238: Categories imported in a comma-separated format are not
 created properly MAGETWO-42245: _media_is_disabled is not exported
 MAGETWO-44407: CLONE - Product export and re-import with different store view
 level data causes data corruption

---
 .../Observer/AfterImportDataObserver.php      | 24 ++++++++++++++-----
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php b/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php
index a1d7000e8ce..55fd02dce92 100644
--- a/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php
+++ b/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php
@@ -190,6 +190,7 @@ class AfterImportDataObserver implements ObserverInterface
                 $product->setData($field, $rowData[$field]);
             }
         }
+
         $this->categoryCache[$rowData['entity_id']] = $this->import->getProductCategories($rowData['sku']);
         $this->websiteCache[$rowData['entity_id']] = $this->import->getProductWebsites($rowData['sku']);
         foreach ($this->websiteCache[$rowData['entity_id']] as $websiteId) {
@@ -197,6 +198,23 @@ class AfterImportDataObserver implements ObserverInterface
                 $this->websitesToStoreIds[$websiteId] = $this->storeManager->getWebsite($websiteId)->getStoreIds();
             }
         }
+
+        $this->setStoreToProduct($product, $rowData);
+
+        if ($this->isGlobalScope($product->getStoreId())) {
+            $this->populateGlobalProduct($product);
+        } else {
+            $this->addProductToImport($product, $product->getStoreId());
+        }
+        return $this;
+    }
+
+    /**
+     * @param \Magento\Catalog\Model\Product $product
+     * @param array $rowData
+     */
+    protected function setStoreToProduct(\Magento\Catalog\Model\Product $product, array $rowData)
+    {
         if (!empty($rowData[ImportProduct::COL_STORE])
             && ($storeId = $this->import->getStoreIdByCode($rowData[ImportProduct::COL_STORE]))
         ) {
@@ -204,12 +222,6 @@ class AfterImportDataObserver implements ObserverInterface
         } elseif (!$product->hasData(\Magento\Catalog\Api\Data\ProductInterface::STORE_ID)) {
             $product->setStoreId(Store::DEFAULT_STORE_ID);
         }
-        if ($this->isGlobalScope($product->getStoreId())) {
-            $this->populateGlobalProduct($product);
-        } else {
-            $this->addProductToImport($product, $product->getStoreId());
-        }
-        return $this;
     }
 
     /**
-- 
GitLab


From 16cdc4cce3af9a3066d6504ee2f1c9c881efbfe7 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Mon, 26 Oct 2015 16:50:43 +0200
Subject: [PATCH 45/61] MAGETWO-44226: Multi-store: Import product to two
 different websites

---
 .../CatalogUrlRewrite/Observer/AfterImportDataObserver.php       | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php b/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php
index 55fd02dce92..855d800fcfd 100644
--- a/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php
+++ b/app/code/Magento/CatalogUrlRewrite/Observer/AfterImportDataObserver.php
@@ -212,6 +212,7 @@ class AfterImportDataObserver implements ObserverInterface
     /**
      * @param \Magento\Catalog\Model\Product $product
      * @param array $rowData
+     * @return void
      */
     protected function setStoreToProduct(\Magento\Catalog\Model\Product $product, array $rowData)
     {
-- 
GitLab


From d5a48cf8b674bd8285bc00c79f8536b58b309972 Mon Sep 17 00:00:00 2001
From: Olga Lytvynenko <olytvynenko@ebay.com>
Date: Mon, 26 Oct 2015 16:54:29 +0200
Subject: [PATCH 46/61] MAGETWO-44353: [IE9]Gallery thumbnail navigation arrow
 displayed particularly inside thumbnails block

- Fix according code style.
---
 lib/web/mage/gallery/gallery.less | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less
index 73b98b23d5b..b4a20fe03cd 100644
--- a/lib/web/mage/gallery/gallery.less
+++ b/lib/web/mage/gallery/gallery.less
@@ -1147,7 +1147,7 @@
     }
     .fotorama__thumb__arr--left {
         .fotorama-arrow-gradient(left);
-        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=1);
+        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#00ffffff', GradientType=1);
         left: 0;
 
         .fotorama__thumb__arr {
@@ -1156,7 +1156,7 @@
     }
     .fotorama__thumb__arr--right {
         .fotorama-arrow-gradient(right);
-        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1);
+        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#ffffff', GradientType=1);
         right: 0;
 
         .fotorama__thumb__arr {
-- 
GitLab


From 6e12c3367b0db5b84122e7e813b5d1f9b59b9d83 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Mon, 26 Oct 2015 19:15:03 +0200
Subject: [PATCH 47/61] MAGETWO-44238: Categories imported in a comma-separated
 format are not created properly

---
 .../Magento/CatalogImportExport/Model/Import/Product.php    | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index e272baec71b..066e0cf166e 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -1435,10 +1435,12 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
                 }
 
                 // 3. Categories phase
+                if (!array_key_exists($rowSku, $this->categoriesCache)) {
+                    $this->categoriesCache[$rowSku] = [];
+                }
                 $categoryIds = $this->processRowCategories($rowData);
-                $this->categoriesCache[$rowData[Product::COL_SKU]] = [];
                 foreach ($categoryIds as $id) {
-                    $this->categoriesCache[$rowData[Product::COL_SKU]][$id] = true;
+                    $this->categoriesCache[$rowSku][$id] = true;
                 }
 
                 // 4.1. Tier prices phase
-- 
GitLab


From 8db40e1ad65ac65634f4099c8efb2ef2e75d9757 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Mon, 26 Oct 2015 12:28:30 -0500
Subject: [PATCH 48/61] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Theme/Model/Design/Backend/Theme.php      | 22 +++++--
 .../Unit/Model/Design/Backend/ThemeTest.php   | 63 ++++++++-----------
 app/code/Magento/Theme/etc/config.xml         |  5 ++
 3 files changed, 48 insertions(+), 42 deletions(-)

diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index 108e82528a0..4917dd31b07 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -16,6 +16,13 @@ class Theme extends Value
      */
     protected $_design = null;
 
+    /**
+     * Path to config node with list of caches
+     *
+     * @var string
+     */
+    const XML_PATH_INVALID_CACHES = 'design/invalid_caches';
+
     /**
      * Initialize dependencies
      *
@@ -59,17 +66,22 @@ class Theme extends Value
     /**
      * {@inheritdoc}
      *
-     * {@inheritdoc}. In addition, it cleans all Magento cache
+     * {@inheritdoc}. In addition, it sets status 'invalidate' for blocks and other output caches
      *
      * @return $this
      */
     public function afterSave()
     {
-        parent::afterSave();
+        $types = array_keys(
+            $this->_config->getValue(
+                self::XML_PATH_INVALID_CACHES,
+                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+            )
+        );
         if ($this->isValueChanged()) {
-            $this->_cacheManager->clean();
-            $this->_eventManager->dispatch('adminhtml_cache_flush_system');
+            $this->cacheTypeList->invalidate($types);
         }
-        return $this;
+
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index e394482d748..e83a4e4ca30 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -18,9 +18,9 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     protected $model;
 
     /**
-     * @var \Magento\Framework\Model\Context
+     * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $context;
+    protected $contextMock;
 
     /**
      * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject
@@ -32,16 +32,6 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     protected $cacheTypeListMock;
 
-    /**
-     * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $eventManagerMock;
-
-    /**
-     * @var \Magento\Framework\App\CacheInterface | \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $cacheManagerMock;
-
     /**
      * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -49,33 +39,23 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $objectManager = new ObjectManager($this);
-        $this->cacheManagerMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
+        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
             ->disableOriginalConstructor()
             ->getMock();
-        $this->eventManagerMock = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->context = $objectManager->getObject(
-            'Magento\Framework\Model\Context',
-            [
-                'cacheManager' => $this->cacheManagerMock,
-                'eventDispatcher' => $this->eventManagerMock,
-            ]
-        );
-
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
         $this->cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
             ->disableOriginalConstructor()
             ->getMock();
+        $this->contextMock->expects($this->once())
+            ->method('getEventDispatcher')
+            ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
         $this->configMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
 
-
-        $this->model = $objectManager->getObject(
+        $this->model = (new ObjectManager($this))->getObject(
             'Magento\Theme\Model\Design\Backend\Theme',
             [
                 'design' => $this->designMock,
-                'context' => $this->context,
+                'context' => $this->contextMock,
                 'cacheTypeList' => $this->cacheTypeListMock,
                 'config' => $this->configMock,
             ]
@@ -106,16 +86,25 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     {
         $this->cacheTypeListMock->expects($this->exactly($callNumber))
             ->method('invalidate');
-        $this->cacheManagerMock->expects($this->exactly($callNumber))
-            ->method('clean');
         $this->configMock->expects($this->any())
             ->method('getValue')
-            ->willReturn($oldValue);
-        if ($callNumber) {
-            $this->eventManagerMock->expects($this->at(3))
-                ->method('dispatch')
-                ->with('adminhtml_cache_flush_system');
-        }
+            ->willReturnMap(
+                [
+                    [
+                        Theme::XML_PATH_INVALID_CACHES,
+                        \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
+                        null,
+                        ['block_html' => 1, 'layout' => 1, 'translate' => 1]
+                    ],
+                    [
+                        null,
+                        \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
+                        null,
+                        $oldValue
+                    ],
+
+                ]
+            );
         $this->model->setValue('some_value');
         $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
     }
@@ -124,7 +113,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     {
         return [
             [0, 'some_value'],
-            [1, 'other_value'],
+            [2, 'other_value'],
         ];
     }
 }
diff --git a/app/code/Magento/Theme/etc/config.xml b/app/code/Magento/Theme/etc/config.xml
index 332043e56df..4f25cd7e2ab 100644
--- a/app/code/Magento/Theme/etc/config.xml
+++ b/app/code/Magento/Theme/etc/config.xml
@@ -8,6 +8,11 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
     <default>
         <design>
+            <invalid_caches>
+                <block_html />
+                <layout />
+                <translate />
+            </invalid_caches>
             <head translate="default_description">
                 <default_title>Magento Commerce</default_title>
                 <default_description>Default Description</default_description>
-- 
GitLab


From 087e32921e51c0d432605378853c189804b43534 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Mon, 26 Oct 2015 14:33:43 -0500
Subject: [PATCH 49/61] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Setup/Console/Command/DiCompileCommand.php        | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
index 9b2b2f5977d..8843fb66c21 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
@@ -293,16 +293,21 @@ class DiCompileCommand extends Command
         array $compiledPathsList,
         array $dataAttributesIncludePattern
     ) {
+        $excludePatterns = [];
+        foreach ($this->excludedPathsList as $excludedPaths) {
+            $excludePatterns = array_merge($excludedPaths, $excludePatterns);
+        }
+
         $operations = [
             OperationFactory::PROXY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
                 'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'],
-                'excludePatterns' => ['/\/Test\//']
+                'excludePatterns' => $excludePatterns,
             ],
             OperationFactory::REPOSITORY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
                 'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'],
-                'excludePatterns' => ['/\/Test\//']
+                'excludePatterns' => $excludePatterns,
             ],
             OperationFactory::DATA_ATTRIBUTES_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
@@ -315,7 +320,7 @@ class DiCompileCommand extends Command
                     $compiledPathsList['generated_helpers'],
                 ],
                 'filePatterns' => ['php' => '/\.php$/'],
-                'excludePatterns' => ['/\/Test\//']
+                'excludePatterns' => $excludePatterns,
             ],
             OperationFactory::INTERCEPTION => [
                 'intercepted_paths' => [
-- 
GitLab


From 3d6e1ccaa113a3591a57907be9ba08276ea41b48 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Tue, 27 Oct 2015 11:31:23 +0200
Subject: [PATCH 50/61] MAGETWO-43900: Imported products with broken images
 link don't appear on front

---
 .../ProcessingErrorAggregator.php             |  4 +++-
 .../ProcessingErrorAggregatorTest.php         | 24 ++++++++++++-------
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/app/code/Magento/ImportExport/Model/Import/ErrorProcessing/ProcessingErrorAggregator.php b/app/code/Magento/ImportExport/Model/Import/ErrorProcessing/ProcessingErrorAggregator.php
index acb19a98472..e6df28446fb 100644
--- a/app/code/Magento/ImportExport/Model/Import/ErrorProcessing/ProcessingErrorAggregator.php
+++ b/app/code/Magento/ImportExport/Model/Import/ErrorProcessing/ProcessingErrorAggregator.php
@@ -81,7 +81,9 @@ class ProcessingErrorAggregator implements ProcessingErrorAggregatorInterface
             return $this;
         }
         $this->processErrorStatistics($errorLevel);
-        $this->processInvalidRow($rowNumber);
+        if ($errorLevel == ProcessingError::ERROR_LEVEL_CRITICAL) {
+            $this->processInvalidRow($rowNumber);
+        }
         $errorMessage = $this->getErrorMessage($errorCode, $errorMessage, $columnName);
 
         /** @var ProcessingError $newError */
diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Import/ErrorProcessing/ProcessingErrorAggregatorTest.php b/app/code/Magento/ImportExport/Test/Unit/Model/Import/ErrorProcessing/ProcessingErrorAggregatorTest.php
index 63b82e3693d..7877a5c3a26 100644
--- a/app/code/Magento/ImportExport/Test/Unit/Model/Import/ErrorProcessing/ProcessingErrorAggregatorTest.php
+++ b/app/code/Magento/ImportExport/Test/Unit/Model/Import/ErrorProcessing/ProcessingErrorAggregatorTest.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\ImportExport\Test\Unit\Model\Import\ErrorProcessing;
 
+use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingError;
+
 class ProcessingErrorAggregatorTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -124,22 +126,26 @@ class ProcessingErrorAggregatorTest extends \PHPUnit_Framework_TestCase
 
     /**
      * Test for method isRowInvalid. Expected true result.
+     * @dataProvider isRowInvalidDataProvider
      */
-    public function testIsRowInvalidTrue()
+    public function testIsRowInvalid($errorLevel, $rowNumber, $isValid)
     {
-        $this->model->addError('systemException', 'critical', 7, 'Some column name', 'Message', 'Description');
-        $result = $this->model->isRowInvalid(7);
-        $this->assertTrue($result);
+        $this->model->addError('systemException', $errorLevel, $rowNumber, 'Some column name', 'Message', 'Description');
+        $result = $this->model->isRowInvalid($rowNumber);
+        $this->assertEquals($isValid, $result);
     }
 
     /**
-     * Test for method isRowInvalid. Expected false result.
+     * @return array
      */
-    public function testIsRowInvalidFalse()
+    public function isRowInvalidDataProvider()
     {
-        $this->model->addError('systemException');
-        $result = $this->model->isRowInvalid(8);
-        $this->assertFalse($result);
+        return [
+            [ProcessingError::ERROR_LEVEL_CRITICAL, 7, true],
+            [ProcessingError::ERROR_LEVEL_NOT_CRITICAL, 8, false],
+            [ProcessingError::ERROR_LEVEL_NOTICE, 9, false],
+            [ProcessingError::ERROR_LEVEL_WARNING, 10, false]
+        ];
     }
 
     /**
-- 
GitLab


From 6d2516f99b7d1d838838021f8fe24468bf44a5f2 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Tue, 27 Oct 2015 18:24:58 +0200
Subject: [PATCH 51/61] MAGETWO-44250: [Import/Export] Product doesn't exist on
 backend but still visible on frontend

---
 .../Model/Controller/Result/BuiltinPlugin.php |  15 +-
 .../Controller/Result/BuiltinPluginTest.php   | 172 +++++++++++-------
 2 files changed, 124 insertions(+), 63 deletions(-)

diff --git a/app/code/Magento/PageCache/Model/Controller/Result/BuiltinPlugin.php b/app/code/Magento/PageCache/Model/Controller/Result/BuiltinPlugin.php
index 667da81dd04..022824faafb 100644
--- a/app/code/Magento/PageCache/Model/Controller/Result/BuiltinPlugin.php
+++ b/app/code/Magento/PageCache/Model/Controller/Result/BuiltinPlugin.php
@@ -66,8 +66,9 @@ class BuiltinPlugin
     ) {
         $result = $proceed($response);
         $usePlugin = $this->registry->registry('use_page_cache_plugin');
-        if (!$this->config->isEnabled() || $this->config->getType() != \Magento\PageCache\Model\Config::BUILT_IN
-            || !$usePlugin) {
+        if (!$usePlugin || !$this->config->isEnabled()
+            || $this->config->getType() != \Magento\PageCache\Model\Config::BUILT_IN
+        ) {
             return $result;
         }
 
@@ -76,6 +77,16 @@ class BuiltinPlugin
             $response->setHeader('X-Magento-Cache-Control', $cacheControl);
             $response->setHeader('X-Magento-Cache-Debug', 'MISS', true);
         }
+
+        $tagsHeader = $response->getHeader('X-Magento-Tags');
+        $tags = [];
+        if ($tagsHeader) {
+            $tags = explode(',', $tagsHeader->getFieldValue());
+            $response->clearHeader('X-Magento-Tags');
+        }
+        $tags = array_unique(array_merge($tags, [\Magento\PageCache\Model\Cache\Type::CACHE_TAG]));
+        $response->setHeader('X-Magento-Tags', implode(',', $tags));
+
         $this->kernel->process($response);
         return $result;
     }
diff --git a/app/code/Magento/PageCache/Test/Unit/Model/Controller/Result/BuiltinPluginTest.php b/app/code/Magento/PageCache/Test/Unit/Model/Controller/Result/BuiltinPluginTest.php
index a3542bdc708..2ae5fa1f9f1 100644
--- a/app/code/Magento/PageCache/Test/Unit/Model/Controller/Result/BuiltinPluginTest.php
+++ b/app/code/Magento/PageCache/Test/Unit/Model/Controller/Result/BuiltinPluginTest.php
@@ -11,83 +11,133 @@ namespace Magento\PageCache\Test\Unit\Model\Controller\Result;
 class BuiltinPluginTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @param bool $usePlugin
-     * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $getHeaderCount
-     * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $setCacheControlHeaderCount
-     * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $setCacheDebugHeaderCount
-     * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $getModeCount
-     * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $processCount
-     * @dataProvider dataProvider
+     * @var \Magento\PageCache\Model\Controller\Result\BuiltinPlugin
      */
-    public function testAroundResult(
-        $usePlugin, $getHeaderCount, $setCacheControlHeaderCount, $setCacheDebugHeaderCount, $getModeCount,
-        $processCount
-    ) {
-        $cacheControl = 'test';
-
-        $header = $this->getMockBuilder('Zend\Http\Header\HeaderInterface')
-            ->getMockForAbstractClass();
-        $header->expects($this->any())->method('getFieldValue')
-            ->willReturn($cacheControl);
-
-        $response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
-        $response->expects($getHeaderCount)
-            ->method('getHeader')
-            ->with('Cache-Control')
-            ->willReturn($header);
-        $response->expects($setCacheControlHeaderCount)->method('setHeader')
-                ->with('X-Magento-Cache-Control', $cacheControl);
-        $response->expects($setCacheDebugHeaderCount)->method('setHeader')
-                ->with('X-Magento-Cache-Debug', 'MISS', true);
-
-        /** @var \Magento\Framework\Controller\ResultInterface $result */
+    protected $plugin;
+
+    /**
+     * @var \Magento\Framework\Controller\ResultInterface
+     */
+    protected $subject;
+
+    /**
+     * @var \Closure
+     */
+    protected $closure;
+
+    /**
+     * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $response;
+
+    /**
+     * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $registry;
+
+    /**
+     * @var \Magento\Framework\App\State|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $state;
+
+    /**
+     * @var \Zend\Http\Header\HeaderInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $header;
+
+    /**
+     * @var \Magento\Framework\App\PageCache\Kernel|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $kernel;
+
+    protected function setUp()
+    {
         $result = $this->getMock('Magento\Framework\Controller\ResultInterface', [], [], '', false);
-        $closure = function () use ($result) {
+        $this->closure = function() use ($result) {
             return $result;
         };
 
-        /** @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject $registry */
-        $registry = $this->getMock('Magento\Framework\Registry', [], [], '', false);
-        $registry->expects($this->once())->method('registry')->with('use_page_cache_plugin')
-            ->will($this->returnValue($usePlugin));
-
-        /** @var \Magento\PageCache\Model\Config|\PHPUnit_Framework_MockObject_MockObject $config */
-        $config = $this->getMock('Magento\PageCache\Model\Config', [], [], '', false);
-        $config->expects($this->once())->method('isEnabled')->will($this->returnValue(true));
-        $config->expects($this->once())->method('getType')
-            ->will($this->returnValue(\Magento\PageCache\Model\Config::BUILT_IN));
+        $this->header = $this->getMock('Zend\Http\Header\HeaderInterface', [], [], '', false);
+        $this->subject = $this->getMock('Magento\Framework\Controller\ResultInterface', [], [], '', false);
+        $this->response = $this->getMock(
+            'Magento\Framework\App\Response\Http',
+            ['getHeader', 'clearHeader', 'setHeader'],
+            [],
+            '',
+            false
+        );
+        $this->response->expects($this->any())->method('getHeader')->willReturnMap(
+            [
+                ['X-Magento-Tags', $this->header],
+                ['Cache-Control', $this->header]
+            ]
+        );
 
-        /** @var \Magento\Framework\App\State|\PHPUnit_Framework_MockObject_MockObject $state */
-        $state = $this->getMock('Magento\Framework\App\State', [], [], '', false);
-        $state->expects($getModeCount)->method('getMode')
-            ->will($this->returnValue(\Magento\Framework\App\State::MODE_DEVELOPER));
+        $this->registry = $this->getMock('Magento\Framework\Registry', [], [], '', false);
 
-        $kernel = $this->getMock('Magento\Framework\App\PageCache\Kernel', [], [], '', false);
-        $kernel->expects($processCount)->method('process')->with($response);
+        $config = $this->getMock('Magento\PageCache\Model\Config', ['isEnabled', 'getType'], [], '', false);
+        $config->expects($this->any())->method('isEnabled')->willReturn(true);
+        $config->expects($this->any())->method('getType')->willReturn(\Magento\PageCache\Model\Config::BUILT_IN);
 
-        $subject = $this->getMock('Magento\Framework\Controller\ResultInterface', [], [], '', false);
+        $this->kernel = $this->getMock('Magento\Framework\App\PageCache\Kernel', [], [], '', false);
 
-        /** @var \Magento\PageCache\Model\Controller\Result\BuiltinPlugin $plugin */
-        $plugin = (new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this))->getObject(
+        $this->state = $this->getMock('Magento\Framework\App\State', [], [], '', false);
+        $this->plugin = (new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this))->getObject(
             'Magento\PageCache\Model\Controller\Result\BuiltinPlugin',
             [
-                'registry' => $registry,
+                'registry' => $this->registry,
                 'config' => $config,
-                'kernel' => $kernel,
-                'state' => $state
+                'kernel' => $this->kernel,
+                'state' => $this->state
             ]
         );
-        $this->assertSame($result, $plugin->aroundRenderResult($subject, $closure, $response));
     }
 
-    /**
-     * @return array
-     */
-    public function dataProvider()
+    public function testAroundResultWithoutPlugin()
     {
-        return [
-            [true, $this->once(), $this->at(1), $this->at(2), $this->once(), $this->once()],
-            [false, $this->never(), $this->never(), $this->never(), $this->never(), $this->never()]
-        ];
+        $this->registry->expects($this->once())->method('registry')->with('use_page_cache_plugin')->willReturn(false);
+        $this->kernel->expects($this->never())->method('process')->with($this->response);
+        $this->assertSame(
+            call_user_func($this->closure),
+            $this->plugin->aroundRenderResult($this->subject, $this->closure, $this->response)
+        );
+    }
+
+    public function testAroundResultWithPlugin()
+    {
+        $this->registry->expects($this->once())->method('registry')->with('use_page_cache_plugin')->willReturn(true);
+        $this->state->expects($this->once())->method('getMode')->willReturn(null);
+        $this->header->expects($this->any())->method('getFieldValue')->willReturn('tag,tag');
+        $this->response->expects($this->once())->method('clearHeader')->with('X-Magento-Tags');
+        $this->response->expects($this->once())->method('setHeader')->with(
+            'X-Magento-Tags',
+            'tag,' . \Magento\PageCache\Model\Cache\Type::CACHE_TAG
+        );
+        $this->kernel->expects($this->once())->method('process')->with($this->response);
+        $result = call_user_func($this->closure);
+        $this->assertSame($result, $this->plugin->aroundRenderResult($this->subject, $this->closure, $this->response));
+    }
+
+    public function testAroundResultWithPluginDeveloperMode()
+    {
+        $this->registry->expects($this->once())->method('registry')->with('use_page_cache_plugin')->willReturn(true);
+        $this->state->expects($this->once())->method('getMode')
+            ->willReturn(\Magento\Framework\App\State::MODE_DEVELOPER);
+
+        $this->header->expects($this->any())->method('getFieldValue')->willReturnOnConsecutiveCalls('test', 'tag,tag2');
+
+        $this->response->expects($this->any())->method('setHeader')->withConsecutive(
+            ['X-Magento-Cache-Control', 'test'],
+            ['X-Magento-Cache-Debug', 'MISS', true],
+            ['X-Magento-Tags', 'tag,tag2,' . \Magento\PageCache\Model\Cache\Type::CACHE_TAG]
+        );
+
+        $this->response->expects($this->once())->method('clearHeader')->with('X-Magento-Tags');
+        $this->registry->expects($this->once())->method('registry')->with('use_page_cache_plugin')
+            ->will($this->returnValue(true));
+        $this->kernel->expects($this->once())->method('process')->with($this->response);
+
+        $result = call_user_func($this->closure);
+        $this->assertSame($result, $this->plugin->aroundRenderResult($this->subject, $this->closure, $this->response));
     }
 }
-- 
GitLab


From f63bede13c80a1716f1dc02543ffd5085b8738e2 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Tue, 27 Oct 2015 16:20:12 -0500
Subject: [PATCH 52/61] MAGETWO-44189: Does not work to switch the language in
 the admin area  - style fix

---
 .../backend/Magento_Backend/web/css/source/module/_footer.less  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
index 7752b6d2fed..8bed4f0da21 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
@@ -53,8 +53,8 @@
 
 //  Copyright
 .copyright {
-    text-align: left;
     margin-bottom: -.2rem;
+    text-align: left;
     position: relative;
     .link-copyright {
         display: inline-block;
-- 
GitLab


From 87d089e90db3ed704c3eb06e577e5c2b98737de2 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Wed, 28 Oct 2015 16:48:29 +0200
Subject: [PATCH 53/61] MAGETWO-44110: Product swatch attributes available for
 attribute type price

---
 .../adminhtml/templates/catalog/product/attribute/js.phtml  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml b/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml
index 034d25f9c1b..c407178e0be 100644
--- a/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml
+++ b/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml
@@ -265,10 +265,10 @@ require([
                 setRowVisibility('is_unique', false);
                 setRowVisibility('frontend_class', false);
             break;
-        <?php $hiddenFields = $this->helper('Magento\Catalog\Helper\Data')->getAttributeHiddenFields() ?>
+        <?php $hiddenFields = $block->helper('Magento\Catalog\Helper\Data')->getAttributeHiddenFields() ?>
         <?php foreach ($hiddenFields as $type => $fields): ?>
         <?php if (in_array($type, array('swatch_visual', 'swatch_text'))) continue ?>
-            case '<?php echo $this->escapeHtml($type); ?>':
+            case '<?php echo $block->escapeHtml($type); ?>':
                 <?php foreach ($fields as $one): ?>
                     <?php if ($one == '_front_fieldset'): ?>
                         getFrontTab().hide();
@@ -280,7 +280,7 @@ require([
                     <?php elseif ($one == '_scope'): ?>
                         scopeVisibility = false;
                     <?php else: ?>
-                        setRowVisibility('<?php echo $this->escapeHtml($one); ?>', false);
+                        setRowVisibility('<?php echo $block->escapeHtml($one); ?>', false);
                     <?php endif; ?>
                 <?php endforeach; ?>
             break;
-- 
GitLab


From 3f586711d78a1d511a69f6325621fabd42595344 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko <yonischenko@ebay.com>
Date: Wed, 28 Oct 2015 16:49:05 +0200
Subject: [PATCH 54/61] MAGETWO-43900: Imported products with broken images
 link don't appear on front

---
 .../Import/ErrorProcessing/ProcessingErrorAggregatorTest.php    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Import/ErrorProcessing/ProcessingErrorAggregatorTest.php b/app/code/Magento/ImportExport/Test/Unit/Model/Import/ErrorProcessing/ProcessingErrorAggregatorTest.php
index 7877a5c3a26..090370a728a 100644
--- a/app/code/Magento/ImportExport/Test/Unit/Model/Import/ErrorProcessing/ProcessingErrorAggregatorTest.php
+++ b/app/code/Magento/ImportExport/Test/Unit/Model/Import/ErrorProcessing/ProcessingErrorAggregatorTest.php
@@ -130,7 +130,7 @@ class ProcessingErrorAggregatorTest extends \PHPUnit_Framework_TestCase
      */
     public function testIsRowInvalid($errorLevel, $rowNumber, $isValid)
     {
-        $this->model->addError('systemException', $errorLevel, $rowNumber, 'Some column name', 'Message', 'Description');
+        $this->model->addError('systemException', $errorLevel, $rowNumber, 'Column name', 'Message', 'Description');
         $result = $this->model->isRowInvalid($rowNumber);
         $this->assertEquals($isValid, $result);
     }
-- 
GitLab


From c1e27365c9e15b2396899fbaa36f2ec7dcbd7402 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 28 Oct 2015 10:02:05 -0500
Subject: [PATCH 55/61] MAGETWO-43679: Fixed XML validation happens in
 production mode

---
 .../Media/Synchronization/SuccessTest.php     | 101 ------------------
 .../Model/Attribute/Config/ReaderTest.php     |   4 +-
 .../Unit/Model/Attribute/Config/XsdTest.php   |   5 +-
 .../Config/Model/Config/Structure/Reader.php  |   2 +-
 .../Unit/Model/Address/Config/ReaderTest.php  |   4 +-
 .../Unit/Model/Address/Config/XsdTest.php     |   5 +-
 .../Unit/Model/Template/Config/ReaderTest.php |   8 +-
 .../Unit/Model/Template/Config/XsdTest.php    |   5 +-
 .../Unit/Model/Config/Integration/XsdTest.php |   5 +-
 .../Test/Unit/Model/Config/XsdTest.php        |   5 +-
 .../Model/Order/Pdf/Config/ReaderTest.php     |   4 +-
 .../Unit/Model/Order/Pdf/Config/XsdTest.php   |   5 +-
 .../TestCase/AbstractConfigFiles.php          |   8 +-
 .../Config/Structure/Reader/ReaderTest.php    |   4 +-
 .../Modular/AbstractMergedConfigTest.php      |  15 ++-
 .../Integrity/Modular/AclConfigFilesTest.php  |   5 +-
 .../Test/Integrity/Modular/CacheFilesTest.php |   2 +-
 .../Integrity/Modular/DiConfigFilesTest.php   |   2 +-
 .../Modular/EavAttributesConfigFilesTest.php  |   2 +-
 .../Modular/EventConfigFilesTest.php          |   5 +-
 .../Modular/ExportConfigFilesTest.php         |   2 +-
 .../Modular/ImportConfigFilesTest.php         |   2 +-
 .../Modular/IndexerConfigFilesTest.php        |   5 +-
 .../Catalog/AttributeConfigFilesTest.php      |   5 +-
 .../Customer/AddressFormatsFilesTest.php      |   5 +-
 .../Email/EmailTemplateConfigFilesTest.php    |   7 +-
 .../Magento/Sales/PdfConfigFilesTest.php      |   7 +-
 .../Modular/MviewConfigFilesTest.php          |   5 +-
 .../Modular/ProductOptionsConfigFilesTest.php |   2 +-
 .../Modular/ProductTypesConfigFilesTest.php   |   2 +-
 .../Modular/ResourcesConfigFilesTest.php      |   2 +-
 .../Modular/RouteConfigFilesTest.php          |  28 ++++-
 .../Integrity/Modular/ViewConfigFilesTest.php |   5 +-
 .../Test/Integrity/Theme/XmlFilesTest.php     |  25 ++++-
 .../App/Language/CircularDependencyTest.php   |  29 ++++-
 .../ExtensionAttribute/Config/XsdTest.php     |   5 +-
 .../App/Arguments/ValidationState.php         |   2 +-
 .../Framework/App/Config/Initial/Reader.php   |  16 ++-
 .../Magento/Framework/App/Language/Config.php |  21 ++--
 .../Test/Unit/Config/Initial/ReaderTest.php   |  41 +++++--
 .../App/Test/Unit/Language/ConfigTest.php     |  20 +++-
 .../Magento/Framework/Config/AbstractXml.php  |  44 ++++----
 lib/internal/Magento/Framework/Config/Dom.php |  19 +++-
 .../Magento/Framework/Config/DomFactory.php   |   5 +-
 .../Framework/Config/Reader/Filesystem.php    |  22 ++--
 .../Framework/Config/Test/Unit/DomTest.php    |  30 ++++--
 .../Test/Unit/Reader/FilesystemTest.php       |   8 +-
 .../Config/Test/Unit/ValidationStateTest.php  |   8 +-
 .../Config/ValidationStateInterface.php       |   2 +-
 .../Magento/Framework/Config/View.php         |  11 +-
 .../Indexer/Test/Unit/Config/ReaderTest.php   |   4 +-
 .../Mview/Test/Unit/Config/ReaderTest.php     |   4 +-
 .../ObjectManager/Config/Reader/Dom.php       |   8 +-
 .../Config/Reader/_files/ConfigDomMock.php    |   2 +-
 .../Magento/Framework/Validator/Config.php    |  15 +--
 .../Validator/Test/Unit/ConfigTest.php        |  21 +++-
 .../Magento/Framework/View/Config.php         |   9 +-
 .../Element/UiComponent/Config/DomMerger.php  |  26 +++--
 .../Framework/View/PageLayout/Config.php      |  12 ++-
 .../Framework/View/Test/Unit/ConfigTest.php   |   2 +-
 .../View/Test/Unit/PageLayout/ConfigTest.php  |  23 +++-
 61 files changed, 437 insertions(+), 270 deletions(-)
 delete mode 100644 app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/SuccessTest.php

diff --git a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/SuccessTest.php b/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/SuccessTest.php
deleted file mode 100644
index a33e8800f2e..00000000000
--- a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/SuccessTest.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\AdminNotification\Test\Unit\Model\System\Message\Media\Synchronization;
-
-class SuccessTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $_syncFlagMock;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $_fileStorage;
-
-    /**
-     * @var \Magento\AdminNotification\Model\System\Message\Media\Synchronization\Success
-     */
-    protected $_model;
-
-    protected function setUp()
-    {
-        $this->_syncFlagMock = $this->getMock(
-            'Magento\MediaStorage\Model\File\Storage\Flag',
-            ['getState', 'getFlagData', 'setState', '__sleep', '__wakeup', 'save'],
-            [],
-            '',
-            false
-        );
-
-        $this->_fileStorage = $this->getMock('Magento\MediaStorage\Model\File\Storage\Flag', [], [], '', false);
-        $this->_fileStorage->expects($this->any())->method('loadSelf')->will($this->returnValue($this->_syncFlagMock));
-
-        $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
-        $arguments = ['fileStorage' => $this->_fileStorage];
-        $this->_model = $objectManagerHelper->getObject(
-            'Magento\AdminNotification\Model\System\Message\Media\Synchronization\Success',
-            $arguments
-        );
-    }
-
-    public function testGetText()
-    {
-        $messageText = 'Synchronization of media storages has been completed';
-
-        $this->assertContains($messageText, (string)$this->_model->getText());
-    }
-
-    /**
-     * @param bool $expectedFirstRun
-     * @param array $data
-     * @param int|bool $state
-     * @return void
-     * @dataProvider isDisplayedDataProvider
-     */
-    public function testIsDisplayed($expectedFirstRun, $data, $state)
-    {
-        $arguments = ['fileStorage' => $this->_fileStorage];
-        $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
-
-        $this->_syncFlagMock->expects($this->any())->method('getState')->will($this->returnValue($state));
-        $this->_syncFlagMock->expects($this->any())->method('getFlagData')->will($this->returnValue($data));
-
-        // create new instance to ensure that it hasn't been displayed yet (var $this->_isDisplayed is unset)
-        /** @var $model \Magento\AdminNotification\Model\System\Message\Media\Synchronization\Success */
-        $model = $objectManagerHelper->getObject(
-            'Magento\AdminNotification\Model\System\Message\Media\Synchronization\Success',
-            $arguments
-        );
-        //check first call
-        $this->assertEquals($expectedFirstRun, $model->isDisplayed());
-        //check second call
-        $this->assertEquals($expectedFirstRun, $model->isDisplayed());
-    }
-
-    public function isDisplayedDataProvider()
-    {
-        return [
-            [false, ['has_errors' => 1], \Magento\MediaStorage\Model\File\Storage\Flag::STATE_FINISHED],
-            [false, ['has_errors' => true], false],
-            [true, [], \Magento\MediaStorage\Model\File\Storage\Flag::STATE_FINISHED],
-            [false, ['has_errors' => 0], \Magento\MediaStorage\Model\File\Storage\Flag::STATE_RUNNING],
-            [true, ['has_errors' => 0], \Magento\MediaStorage\Model\File\Storage\Flag::STATE_FINISHED]
-        ];
-    }
-
-    public function testGetIdentity()
-    {
-        $this->assertEquals('MEDIA_SYNCHRONIZATION_SUCCESS', $this->_model->getIdentity());
-    }
-
-    public function testGetSeverity()
-    {
-        $severity = \Magento\Framework\Notification\MessageInterface::SEVERITY_MAJOR;
-        $this->assertEquals($severity, $this->_model->getSeverity());
-    }
-}
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/ReaderTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/ReaderTest.php
index 3121a3036b9..eceaee7d0dc 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/ReaderTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/ReaderTest.php
@@ -73,7 +73,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         $this->_schemaLocator = new \Magento\Catalog\Model\Attribute\Config\SchemaLocator($moduleReader);
 
         $this->_validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $this->_validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $this->_validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Catalog\Model\Attribute\Config\Reader(
             $this->_fileResolverMock,
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/XsdTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/XsdTest.php
index 033cd503892..da8c9b00333 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/XsdTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/XsdTest.php
@@ -27,7 +27,10 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, '%message%');
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, '%message%');
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
diff --git a/app/code/Magento/Config/Model/Config/Structure/Reader.php b/app/code/Magento/Config/Model/Config/Structure/Reader.php
index 45c04eeb4f0..c5a082b32fc 100644
--- a/app/code/Magento/Config/Model/Config/Structure/Reader.php
+++ b/app/code/Magento/Config/Model/Config/Structure/Reader.php
@@ -100,7 +100,7 @@ class Reader extends \Magento\Framework\Config\Reader\Filesystem
             }
         }
 
-        if ($this->_isValidated) {
+        if ($this->validationState->isValidationRequired()) {
             $errors = [];
             if ($configMerger && !$configMerger->validate($this->_schemaFile, $errors)) {
                 $message = "Invalid Document \n";
diff --git a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/ReaderTest.php b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/ReaderTest.php
index 751b2b8cf68..558d5845f1f 100644
--- a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/ReaderTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/ReaderTest.php
@@ -74,7 +74,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
 
         $this->_schemaLocator = new \Magento\Customer\Model\Address\Config\SchemaLocator($moduleReader);
         $this->_validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $this->_validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $this->_validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Customer\Model\Address\Config\Reader(
             $this->_fileResolverMock,
diff --git a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/XsdTest.php b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/XsdTest.php
index a6926146177..3b3ac8221cb 100644
--- a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/XsdTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/XsdTest.php
@@ -27,7 +27,10 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, '%message%');
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, '%message%');
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
diff --git a/app/code/Magento/Email/Test/Unit/Model/Template/Config/ReaderTest.php b/app/code/Magento/Email/Test/Unit/Model/Template/Config/ReaderTest.php
index e572b67abee..baf28034f78 100644
--- a/app/code/Magento/Email/Test/Unit/Model/Template/Config/ReaderTest.php
+++ b/app/code/Magento/Email/Test/Unit/Model/Template/Config/ReaderTest.php
@@ -69,8 +69,10 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         );
         $schemaLocator = new \Magento\Email\Model\Template\Config\SchemaLocator($moduleReader);
 
-        $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface', [], [], '', true);
+        $validationStateMock->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_moduleDirResolver = $this->getMock(
             'Magento\Framework\Module\Dir\ReverseResolver',
@@ -109,7 +111,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
             $fileResolver,
             $this->_converter,
             $schemaLocator,
-            $validationState
+            $validationStateMock
         );
     }
 
diff --git a/app/code/Magento/Email/Test/Unit/Model/Template/Config/XsdTest.php b/app/code/Magento/Email/Test/Unit/Model/Template/Config/XsdTest.php
index f2eb7b69f76..ed03f792be1 100644
--- a/app/code/Magento/Email/Test/Unit/Model/Template/Config/XsdTest.php
+++ b/app/code/Magento/Email/Test/Unit/Model/Template/Config/XsdTest.php
@@ -113,7 +113,10 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     protected function _testXmlAgainstXsd($fixtureXml, $schemaFile, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, '%message%');
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, '%message%');
         $actualResult = $dom->validate($schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
diff --git a/app/code/Magento/Integration/Test/Unit/Model/Config/Integration/XsdTest.php b/app/code/Magento/Integration/Test/Unit/Model/Config/Integration/XsdTest.php
index 5413ec66a33..e3988ecdbb1 100644
--- a/app/code/Magento/Integration/Test/Unit/Model/Config/Integration/XsdTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Model/Config/Integration/XsdTest.php
@@ -30,8 +30,11 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
         $messageFormat = '%message%';
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, $messageFormat);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, $messageFormat);
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult, "Validation result is invalid.");
         $this->assertEquals($expectedErrors, $actualErrors, "Validation errors does not match.");
diff --git a/app/code/Magento/Integration/Test/Unit/Model/Config/XsdTest.php b/app/code/Magento/Integration/Test/Unit/Model/Config/XsdTest.php
index 8e1c4195a34..ee833328e24 100644
--- a/app/code/Magento/Integration/Test/Unit/Model/Config/XsdTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Model/Config/XsdTest.php
@@ -30,8 +30,11 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
         $messageFormat = '%message%';
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, $messageFormat);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, $messageFormat);
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult, "Validation result is invalid.");
         $this->assertEquals($expectedErrors, $actualErrors, "Validation errors does not match.");
diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/ReaderTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/ReaderTest.php
index 50407a1fbd1..b00d3207cf4 100644
--- a/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/ReaderTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/ReaderTest.php
@@ -74,7 +74,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
 
         $this->_schemaLocator = new \Magento\Sales\Model\Order\Pdf\Config\SchemaLocator($moduleReader);
         $this->_validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $this->_validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $this->_validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Sales\Model\Order\Pdf\Config\Reader(
             $this->_fileResolverMock,
diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/XsdTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/XsdTest.php
index df9683026fa..01fe130398c 100644
--- a/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/XsdTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/XsdTest.php
@@ -55,7 +55,10 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     protected function _testSchema($schema, $fixtureXml, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, '%message%');
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, '%message%');
         $actualResult = $dom->validate($schema, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
diff --git a/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php b/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php
index b6accb73fb6..086b657047d 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php
@@ -51,7 +51,7 @@ abstract class AbstractConfigFiles extends \PHPUnit_Framework_TestCase
             $validateStateMock = $this->getMockBuilder(
                 'Magento\Framework\Config\ValidationStateInterface'
             )->disableOriginalConstructor()->getMock();
-            $validateStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+            $validateStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
 
             $this->_reader = $this->_objectManager->create(
                 $this->_getReaderClassName(),
@@ -79,7 +79,11 @@ abstract class AbstractConfigFiles extends \PHPUnit_Framework_TestCase
         if ($skip) {
             $this->markTestSkipped('There are no xml files in the system for this test.');
         }
-        $domConfig = new \Magento\Framework\Config\Dom($file);
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(false);
+        $domConfig = new \Magento\Framework\Config\Dom($file, $validationStateMock);
+        $errors = [];
         $result = $domConfig->validate($this->_schemaFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Paypal/Model/Config/Structure/Reader/ReaderTest.php b/dev/tests/integration/testsuite/Magento/Paypal/Model/Config/Structure/Reader/ReaderTest.php
index 03d1d6f2471..274825a41ca 100644
--- a/dev/tests/integration/testsuite/Magento/Paypal/Model/Config/Structure/Reader/ReaderTest.php
+++ b/dev/tests/integration/testsuite/Magento/Paypal/Model/Config/Structure/Reader/ReaderTest.php
@@ -62,7 +62,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         $this->fileUtility = \Magento\Framework\App\Utility\Files::init();
 
         $this->validationStateMock = $this->getMockBuilder('Magento\Framework\Config\ValidationStateInterface')
-            ->setMethods(['isValidated'])
+            ->setMethods(['isValidationRequired'])
             ->getMockForAbstractClass();
         $this->schemaLocatorMock = $this->getMockBuilder('Magento\Config\Model\Config\SchemaLocator')
             ->disableOriginalConstructor()
@@ -72,7 +72,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
             ->getMockForAbstractClass();
 
         $this->validationStateMock->expects($this->atLeastOnce())
-            ->method('isValidated')
+            ->method('isValidationRequired')
             ->willReturn(false);
         $this->schemaLocatorMock->expects($this->atLeastOnce())
             ->method('getPerFileSchema')
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AbstractMergedConfigTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AbstractMergedConfigTest.php
index bc0518559ba..051b7e891ac 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AbstractMergedConfigTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AbstractMergedConfigTest.php
@@ -39,15 +39,28 @@ abstract class AbstractMergedConfigTest extends \PHPUnit_Framework_TestCase
         $invalidFiles = [];
 
         $files = $this->getConfigFiles();
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(false);
         $mergedConfig = new \Magento\Framework\Config\Dom(
             '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></config>',
+            $validationStateMock,
             $this->getIdAttributes()
         );
 
         foreach ($files as $file) {
             $content = file_get_contents($file[0]);
             try {
-                new \Magento\Framework\Config\Dom($content, $this->getIdAttributes());
+                $validationStateMock = $this->getMock(
+                    '\Magento\Framework\Config\ValidationStateInterface',
+                    [],
+                    [],
+                    '',
+                    false
+                );
+                $validationStateMock->method('isValidationRequired')
+                    ->willReturn(true);
+                new \Magento\Framework\Config\Dom($content, $validationStateMock, $this->getIdAttributes());
                 //merge won't be performed if file is invalid because of exception thrown
                 $mergedConfig->merge($content);
             } catch (\Magento\Framework\Config\Dom\ValidationException $e) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php
index c998094fc96..9b66e0702c0 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php
@@ -35,7 +35,10 @@ class AclConfigFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testAclConfigFile($file)
     {
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $domConfig->validate($this->_schemeFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/CacheFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/CacheFilesTest.php
index 430cced2f1a..25051e023a5 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/CacheFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/CacheFilesTest.php
@@ -14,7 +14,7 @@ class CacheFilesTest extends \PHPUnit_Framework_TestCase
     public function testCacheConfig($area)
     {
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
 
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php
index 42b6a74d7e0..b9c4c7cbb94 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php
@@ -108,7 +108,7 @@ class DiConfigFilesTest extends \PHPUnit_Framework_TestCase
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('read')->will($this->returnValue($files));
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
 
         /** @var \Magento\Framework\ObjectManager\Config\SchemaLocator $schemaLocator */
         $schemaLocator = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EavAttributesConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EavAttributesConfigFilesTest.php
index 03111c820d6..0a290d04abd 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EavAttributesConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EavAttributesConfigFilesTest.php
@@ -25,7 +25,7 @@ class EavAttributesConfigFilesTest extends \PHPUnit_Framework_TestCase
         );
 
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EventConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EventConfigFilesTest.php
index f81c30cc040..d1f2fef8a81 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EventConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EventConfigFilesTest.php
@@ -25,7 +25,10 @@ class EventConfigFilesTest extends \PHPUnit_Framework_TestCase
     public function testEventConfigFiles($file)
     {
         $errors = [];
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($this->_schemaFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ExportConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ExportConfigFilesTest.php
index 6229b7d06c0..00eb532d6b9 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ExportConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ExportConfigFilesTest.php
@@ -25,7 +25,7 @@ class ExportConfigFilesTest extends \PHPUnit_Framework_TestCase
         );
 
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ImportConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ImportConfigFilesTest.php
index dd31a3287fc..61c6c66f79c 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ImportConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ImportConfigFilesTest.php
@@ -25,7 +25,7 @@ class ImportConfigFilesTest extends \PHPUnit_Framework_TestCase
         );
 
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php
index f12917f9c45..3f16450ae3e 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php
@@ -36,7 +36,10 @@ class IndexerConfigFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testIndexerConfigFile($file)
     {
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $domConfig->validate($this->schemaFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Catalog/AttributeConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Catalog/AttributeConfigFilesTest.php
index a0aaff1b953..1e4ceac5e7d 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Catalog/AttributeConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Catalog/AttributeConfigFilesTest.php
@@ -26,7 +26,10 @@ class AttributeConfigFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testFileFormat($file)
     {
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($this->_schemaFile, $errors);
         $this->assertTrue($result, print_r($errors, true));
     }
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Customer/AddressFormatsFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Customer/AddressFormatsFilesTest.php
index e503a543247..7cad3da12a0 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Customer/AddressFormatsFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Customer/AddressFormatsFilesTest.php
@@ -27,7 +27,10 @@ class AddressFormatsFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testFileFormat($file)
     {
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($this->_schemaFile, $errors);
         $this->assertTrue($result, print_r($errors, true));
     }
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Email/EmailTemplateConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Email/EmailTemplateConfigFilesTest.php
index 8c667e6d38c..546db270e1b 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Email/EmailTemplateConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Email/EmailTemplateConfigFilesTest.php
@@ -17,7 +17,10 @@ class EmailTemplateConfigFilesTest extends \PHPUnit_Framework_TestCase
     {
         $urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
         $schemaFile = $urnResolver->getRealPath('urn:magento:module:Magento_Email:etc/email_templates.xsd');
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($schemaFile, $errors);
         $this->assertTrue($result, print_r($errors, true));
     }
@@ -78,7 +81,7 @@ class EmailTemplateConfigFilesTest extends \PHPUnit_Framework_TestCase
     public function testMergedFormat()
     {
         $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationState->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         /** @var \Magento\Email\Model\Template\Config\Reader $reader */
         $reader = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Email\Model\Template\Config\Reader',
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Sales/PdfConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Sales/PdfConfigFilesTest.php
index 1bd81dbb001..f65f0fab665 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Sales/PdfConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Sales/PdfConfigFilesTest.php
@@ -19,7 +19,10 @@ class PdfConfigFilesTest extends \PHPUnit_Framework_TestCase
         );
         $schemaFile = $schemaLocator->getPerFileSchema();
 
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($schemaFile, $errors);
         $this->assertTrue($result, print_r($errors, true));
     }
@@ -35,7 +38,7 @@ class PdfConfigFilesTest extends \PHPUnit_Framework_TestCase
     public function testMergedFormat()
     {
         $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationState->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
 
         /** @var \Magento\Sales\Model\Order\Pdf\Config\Reader $reader */
         $reader = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/MviewConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/MviewConfigFilesTest.php
index d112c6d50d3..0393ef43ecd 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/MviewConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/MviewConfigFilesTest.php
@@ -36,7 +36,10 @@ class MviewConfigFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testIndexerConfigFile($file)
     {
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $domConfig->validate($this->schemaFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductOptionsConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductOptionsConfigFilesTest.php
index 17b6e7dab79..77901d2d252 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductOptionsConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductOptionsConfigFilesTest.php
@@ -31,7 +31,7 @@ class ProductOptionsConfigFilesTest extends \PHPUnit_Framework_TestCase
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
         $this->_model = $objectManager->create(
             'Magento\Catalog\Model\ProductOptions\Config\Reader',
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductTypesConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductTypesConfigFilesTest.php
index cf19b7a61da..0b21c161b14 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductTypesConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductTypesConfigFilesTest.php
@@ -27,7 +27,7 @@ class ProductTypesConfigFilesTest extends \PHPUnit_Framework_TestCase
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
         $this->_model = $objectManager->create(
             'Magento\Catalog\Model\ProductTypes\Config\Reader',
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ResourcesConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ResourcesConfigFilesTest.php
index 044605bcc3b..ad967592e61 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ResourcesConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ResourcesConfigFilesTest.php
@@ -27,7 +27,7 @@ class ResourcesConfigFilesTest extends \PHPUnit_Framework_TestCase
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $deploymentConfigMock = $this->getMock('Magento\Framework\App\DeploymentConfig', [], [], '', false);
         $deploymentConfigMock->expects($this->any())->method('getConfiguration')->will($this->returnValue([]));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/RouteConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/RouteConfigFilesTest.php
index 16bc451c47c..cecf1bf93bd 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/RouteConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/RouteConfigFilesTest.php
@@ -9,6 +9,11 @@ use Magento\Framework\Component\ComponentRegistrar;
 
 class RouteConfigFilesTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+
+    protected $validationStateMock;
     /**
      * attributes represent merging rules
      * copied from original class \Magento\Framework\App\Route\Config\Reader
@@ -36,6 +41,15 @@ class RouteConfigFilesTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
+        $this->validationStateMock = $this->getMock(
+            '\Magento\Framework\Config\ValidationStateInterface',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
         $urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
         $this->schemaFile = $urnResolver->getRealPath('urn:magento:framework:App/etc/routes.xsd');
         $this->mergedSchemaFile = $urnResolver->getRealPath('urn:magento:framework:App/etc/routes_merged.xsd');
@@ -51,12 +65,22 @@ class RouteConfigFilesTest extends \PHPUnit_Framework_TestCase
             $mask = $moduleDir . '/etc/*/routes.xml';
             $files = array_merge($files, glob($mask));
         }
-        $mergedConfig = new \Magento\Framework\Config\Dom('<config></config>', $this->_idAttributes);
+        $mergedConfig = new \Magento\Framework\Config\Dom(
+            '<config></config>',
+            $this->validationStateMock,
+            $this->_idAttributes
+        );
 
         foreach ($files as $file) {
             $content = file_get_contents($file);
             try {
-                new \Magento\Framework\Config\Dom($content, $this->_idAttributes, null, $this->schemaFile);
+                new \Magento\Framework\Config\Dom(
+                    $content,
+                    $this->validationStateMock,
+                    $this->_idAttributes,
+                    null,
+                    $this->schemaFile
+                );
 
                 //merge won't be performed if file is invalid because of exception thrown
                 $mergedConfig->merge($content);
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php
index d65b3fa9d7c..97fbba4cb67 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php
@@ -18,7 +18,10 @@ class ViewConfigFilesTest extends \PHPUnit_Framework_TestCase
             'Magento\Framework\View\Xsd\Reader'
         );
         $mergeXsd = $reader->read();
-        $domConfig = new \Magento\Framework\Config\Dom($file);
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domConfig = new \Magento\Framework\Config\Dom($file, $validationStateMock);
         $result = $domConfig->validate(
             $mergeXsd,
             $errors
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php
index 95a9bb0d8cb..5fcdf88564f 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php
@@ -9,6 +9,24 @@ use Magento\Framework\Component\ComponentRegistrar;
 
 class XmlFilesTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+    protected $validationStateMock;
+
+    public function setUp()
+    {
+        $this->validationStateMock = $this->getMock(
+            'Magento\Framework\Config\ValidationStateInterface',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+    }
+
     /**
      * @param string $file
      * @dataProvider viewConfigFileDataProvider
@@ -19,7 +37,10 @@ class XmlFilesTest extends \PHPUnit_Framework_TestCase
             'Magento\Framework\View\Xsd\Reader'
         );
         $mergeXsd = $reader->read();
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $domConfig = new \Magento\Framework\Config\Dom(
+            file_get_contents($file),
+            $this->validationStateMock
+        );
         $errors = [];
         $result = $domConfig->validate($mergeXsd, $errors);
         $this->assertTrue($result, "Invalid XML-file: {$file}\n" . join("\n", $errors));
@@ -71,7 +92,7 @@ class XmlFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testThemeConfigFileSchema($file)
     {
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file), $this->validationStateMock);
         $errors = [];
         $result = $domConfig->validate('urn:magento:framework:Config/etc/theme.xsd', $errors);
         $this->assertTrue($result, "Invalid XML-file: {$file}\n" . join("\n", $errors));
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/CircularDependencyTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/CircularDependencyTest.php
index d6e27c159ec..358b6a35af3 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/CircularDependencyTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/CircularDependencyTest.php
@@ -8,7 +8,6 @@ namespace Magento\Test\Integrity\App\Language;
 
 use Magento\Framework\App\Language\Config;
 use Magento\Framework\Component\ComponentRegistrar;
-use Magento\Framework\Config\Dom\UrnResolver;
 
 class CircularDependencyTest extends \PHPUnit_Framework_TestCase
 {
@@ -22,12 +21,36 @@ class CircularDependencyTest extends \PHPUnit_Framework_TestCase
      */
     public function testCircularDependencies()
     {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $componentRegistrar = new ComponentRegistrar();
         $declaredLanguages = $componentRegistrar->getPaths(ComponentRegistrar::LANGUAGE);
-        $urnResolver = new UrnResolver();
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domFactoryMock = $this->getMock('Magento\Framework\Config\DomFactory', [], [], '', false);
+        $domFactoryMock->expects($this->any())
+            ->method('createDom')
+            ->willReturnCallback(
+                function ($arguments) use ($validationStateMock) {
+                    return new \Magento\Framework\Config\Dom(
+                        $arguments['xml'],
+                        $validationStateMock,
+                        [],
+                        null,
+                        $arguments['schemaFile']
+                    );
+                }
+            );
+
         $packs = [];
         foreach ($declaredLanguages as $language) {
-            $languageConfig = new Config(file_get_contents($language . '/language.xml'), $urnResolver);
+            $languageConfig = $objectManager->getObject(
+                'Magento\Framework\App\Language\Config',
+                [
+                    'source' => file_get_contents($language . '/language.xml'),
+                    'domFactory' => $domFactoryMock
+                ]
+            );
             $this->packs[$languageConfig->getVendor()][$languageConfig->getPackage()] = $languageConfig;
             $packs[] = $languageConfig;
         }
diff --git a/lib/internal/Magento/Framework/Api/Test/Unit/ExtensionAttribute/Config/XsdTest.php b/lib/internal/Magento/Framework/Api/Test/Unit/ExtensionAttribute/Config/XsdTest.php
index 90658f3120b..bd2ea71987f 100644
--- a/lib/internal/Magento/Framework/Api/Test/Unit/ExtensionAttribute/Config/XsdTest.php
+++ b/lib/internal/Magento/Framework/Api/Test/Unit/ExtensionAttribute/Config/XsdTest.php
@@ -25,8 +25,11 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
         $messageFormat = '%message%';
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, $messageFormat);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, $messageFormat);
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals($expectedErrors, $actualErrors, "Validation errors does not match.");
         $this->assertEquals(empty($expectedErrors), $actualResult, "Validation result is invalid.");
diff --git a/lib/internal/Magento/Framework/App/Arguments/ValidationState.php b/lib/internal/Magento/Framework/App/Arguments/ValidationState.php
index 55c65798c64..8af1dedc59c 100644
--- a/lib/internal/Magento/Framework/App/Arguments/ValidationState.php
+++ b/lib/internal/Magento/Framework/App/Arguments/ValidationState.php
@@ -27,7 +27,7 @@ class ValidationState implements \Magento\Framework\Config\ValidationStateInterf
      *
      * @return boolean
      */
-    public function isValidated()
+    public function isValidationRequired()
     {
         return $this->_appMode == \Magento\Framework\App\State::MODE_DEVELOPER;
     }
diff --git a/lib/internal/Magento/Framework/App/Config/Initial/Reader.php b/lib/internal/Magento/Framework/App/Config/Initial/Reader.php
index d907d22223e..33f0c4cfcb3 100644
--- a/lib/internal/Magento/Framework/App/Config/Initial/Reader.php
+++ b/lib/internal/Magento/Framework/App/Config/Initial/Reader.php
@@ -55,7 +55,7 @@ class Reader
      * @param \Magento\Framework\Config\FileResolverInterface $fileResolver
      * @param \Magento\Framework\Config\ConverterInterface $converter
      * @param SchemaLocator $schemaLocator
-     * @param \Magento\Framework\Config\ValidationStateInterface $validationState
+     * @param \Magento\Framework\Config\DomFactory $domFactory
      * @param string $fileName
      * @param string $domDocumentClass
      */
@@ -63,14 +63,13 @@ class Reader
         \Magento\Framework\Config\FileResolverInterface $fileResolver,
         \Magento\Framework\Config\ConverterInterface $converter,
         SchemaLocator $schemaLocator,
-        \Magento\Framework\Config\ValidationStateInterface $validationState,
-        $fileName = 'config.xml',
-        $domDocumentClass = 'Magento\Framework\Config\Dom'
+        \Magento\Framework\Config\DomFactory $domFactory,
+        $fileName = 'config.xml'
     ) {
-        $this->_schemaFile = $validationState->isValidated() ? $schemaLocator->getSchema() : null;
+        $this->_schemaFile = $schemaLocator->getSchema();
         $this->_fileResolver = $fileResolver;
         $this->_converter = $converter;
-        $this->_domDocumentClass = $domDocumentClass;
+        $this->domFactory = $domFactory;
         $this->_fileName = $fileName;
     }
 
@@ -99,9 +98,8 @@ class Reader
         $domDocument = null;
         foreach ($fileList as $file) {
             try {
-                if ($domDocument === null) {
-                    $class = $this->_domDocumentClass;
-                    $domDocument = new $class($file, [], null, $this->_schemaFile);
+                if (!$domDocument) {
+                    $domDocument = $this->domFactory->createDom(['xml' => $file, 'schemaFile' => $this->_schemaFile]);
                 } else {
                     $domDocument->merge($file);
                 }
diff --git a/lib/internal/Magento/Framework/App/Language/Config.php b/lib/internal/Magento/Framework/App/Language/Config.php
index 84dfdfe149c..8376e47e47c 100644
--- a/lib/internal/Magento/Framework/App/Language/Config.php
+++ b/lib/internal/Magento/Framework/App/Language/Config.php
@@ -16,6 +16,11 @@ class Config
     /** @var \Magento\Framework\Config\Dom\UrnResolver */
     protected $urnResolver;
 
+    /**
+     * @var \Magento\Framework\Config\DomFactory
+     */
+    protected $domFactory;
+
     /**
      * Data extracted from the configuration file
      *
@@ -28,22 +33,18 @@ class Config
      *
      * @param string $source
      * @param \Magento\Framework\Config\Dom\UrnResolver $urnResolver
+     * @param \Magento\Framework\Config\DomFactory $domFactory
      * @throws \Magento\Framework\Exception\LocalizedException
      */
     public function __construct(
         $source,
-        \Magento\Framework\Config\Dom\UrnResolver $urnResolver
+        \Magento\Framework\Config\Dom\UrnResolver $urnResolver,
+        \Magento\Framework\Config\DomFactory $domFactory
     ) {
         $this->urnResolver = $urnResolver;
-        $config = new \DOMDocument();
-        $config->loadXML($source);
-        $errors = Dom::validateDomDocument($config, $this->getSchemaFile());
-        if (!empty($errors)) {
-            throw new \Magento\Framework\Exception\LocalizedException(
-                new \Magento\Framework\Phrase("Invalid Document: \n%1", [implode("\n", $errors)])
-            );
-        }
-        $this->_data = $this->_extractData($config);
+        $this->domFactory = $domFactory;
+        $dom = $this->domFactory->createDom(['xml' => $source, 'schemaFile' => $this->getSchemaFile()]);
+        $this->_data = $this->_extractData($dom->getDom());
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/ReaderTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/ReaderTest.php
index 4c1fde2796b..98b9d81e75b 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/ReaderTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/ReaderTest.php
@@ -20,12 +20,12 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
     protected $model;
 
     /**
-     * @var \Magento\Framework\Config\FileResolverInterface | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Config\FileResolverInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $fileResolverMock;
 
     /**
-     * @var \Magento\Framework\App\Config\Initial\Converter | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\App\Config\Initial\Converter|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $converterMock;
 
@@ -35,15 +35,20 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
     protected $filePath;
 
     /**
-     * @var \Magento\Framework\Config\ValidationStateInterface | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Config\ValidationStateInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $validationStateMock;
 
     /**
-     * @var \Magento\Framework\App\Config\Initial\SchemaLocator | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\App\Config\Initial\SchemaLocator|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $schemaLocatorMock;
 
+    /**
+     * @var \Magento\Framework\Config\DomFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $domFactoryMock;
+
     protected function setUp()
     {
         $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
@@ -58,6 +63,10 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
             false
         );
         $this->validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
+        $this->validationStateMock->expects($this->any())
+            ->method('isValidationRequired')
+            ->will($this->returnValue(true));
+        $this->domFactoryMock = $this->getMock('Magento\Framework\Config\DomFactory', [], [], '', false);
     }
 
     public function testConstructor()
@@ -85,6 +94,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
     public function testReadValidConfig()
     {
         $this->createModelAndVerifyConstructor();
+        $this->prepareDomFactoryMock();
         $testXmlFilesList = [
             file_get_contents($this->filePath . 'initial_config1.xml'),
             file_get_contents($this->filePath . 'initial_config2.xml'),
@@ -104,6 +114,24 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expectedConfig, $this->model->read());
     }
 
+    private function prepareDomFactoryMock()
+    {
+        $validationStateMock = $this->validationStateMock;
+        $this->domFactoryMock->expects($this->once())
+            ->method('createDom')
+            ->willReturnCallback(
+                function ($arguments) use ($validationStateMock) {
+                    return new \Magento\Framework\Config\Dom(
+                        $arguments['xml'],
+                        $validationStateMock,
+                        [],
+                        null,
+                        $arguments['schemaFile']
+                    );
+                }
+            );
+    }
+
     /**
      * @covers \Magento\Framework\App\Config\Initial\Reader::read
      * @expectedException \Magento\Framework\Exception\LocalizedException
@@ -112,6 +140,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
     public function testReadInvalidConfig()
     {
         $this->createModelAndVerifyConstructor();
+        $this->prepareDomFactoryMock();
         $testXmlFilesList = [
             file_get_contents($this->filePath . 'invalid_config.xml'),
             file_get_contents($this->filePath . 'initial_config2.xml'),
@@ -133,17 +162,15 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
 
     private function createModelAndVerifyConstructor()
     {
-        $this->validationStateMock->expects($this->once())->method('isValidated')->will($this->returnValue(true));
         $schemaFile = $this->filePath . 'config.xsd';
         $this->schemaLocatorMock->expects($this->once())->method('getSchema')->will($this->returnValue($schemaFile));
-
         $this->model = $this->objectManager->getObject(
             'Magento\Framework\App\Config\Initial\Reader',
             [
                 'fileResolver' => $this->fileResolverMock,
                 'converter' => $this->converterMock,
                 'schemaLocator' => $this->schemaLocatorMock,
-                'validationState' => $this->validationStateMock
+                'domFactory' => $this->domFactoryMock
             ]
         );
     }
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Language/ConfigTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Language/ConfigTest.php
index c69c340fda1..5b2f4270d21 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Language/ConfigTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Language/ConfigTest.php
@@ -30,9 +30,27 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             ->method('getRealPath')
             ->with('urn:magento:framework:App/Language/package.xsd')
             ->willReturn($this->urnResolver->getRealPath('urn:magento:framework:App/Language/package.xsd'));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domFactoryMock = $this->getMock('Magento\Framework\Config\DomFactory', [], [], '', false);
+        $domFactoryMock->expects($this->once())
+            ->method('createDom')
+            ->willReturnCallback(
+                function ($arguments) use ($validationStateMock) {
+                    return new \Magento\Framework\Config\Dom(
+                        $arguments['xml'],
+                        $validationStateMock,
+                        [],
+                        null,
+                        $arguments['schemaFile']
+                    );
+                }
+            );
         $this->config = new Config(
             file_get_contents(__DIR__ . '/_files/language.xml'),
-            $this->urnResolverMock
+            $this->urnResolverMock,
+            $domFactoryMock
         );
     }
 
diff --git a/lib/internal/Magento/Framework/Config/AbstractXml.php b/lib/internal/Magento/Framework/Config/AbstractXml.php
index acdd49eeee2..abf16d6cd17 100644
--- a/lib/internal/Magento/Framework/Config/AbstractXml.php
+++ b/lib/internal/Magento/Framework/Config/AbstractXml.php
@@ -24,14 +24,23 @@ abstract class AbstractXml
      */
     protected $_domConfig = null;
 
+    /**
+     * @var \Magento\Framework\Config\DomFactory
+     */
+    protected $domFactory;
+
     /**
      * Instantiate with the list of files to merge
      *
      * @param array $configFiles
+     * @param \Magento\Framework\Config\DomFactory $domFactory
      * @throws \InvalidArgumentException
      */
-    public function __construct($configFiles)
-    {
+    public function __construct(
+        $configFiles,
+        \Magento\Framework\Config\DomFactory $domFactory
+    ) {
+        $this->domFactory = $domFactory;
         if (empty($configFiles)) {
             throw new \InvalidArgumentException('There must be at least one configuration file specified.');
         }
@@ -81,9 +90,7 @@ abstract class AbstractXml
                 );
             }
         }
-        if ($this->_isRuntimeValidated()) {
-            $this->_performValidate();
-        }
+        $this->_performValidate();
         return $this->_getDomConfigModel()->getDom();
     }
 
@@ -96,7 +103,9 @@ abstract class AbstractXml
      */
     protected function _performValidate($file = null)
     {
-        if (!$this->_getDomConfigModel()->validate($this->getSchemaFile(), $errors)) {
+        $errors = [];
+        $this->_getDomConfigModel()->validate($this->getSchemaFile(), $errors);
+        if (!empty($errors)) {
             $phrase = (null === $file)
                 ? new \Magento\Framework\Phrase('Invalid Document %1%2', [PHP_EOL, implode("\n", $errors)])
                 : new \Magento\Framework\Phrase('Invalid XML-file: %1%2%3', [$file, PHP_EOL, implode("\n", $errors)]);
@@ -106,16 +115,6 @@ abstract class AbstractXml
         return $this;
     }
 
-    /**
-     * Get if xml files must be runtime validated
-     *
-     * @return boolean
-     */
-    protected function _isRuntimeValidated()
-    {
-        return true;
-    }
-
     /**
      * Get Dom configuration model
      *
@@ -125,13 +124,12 @@ abstract class AbstractXml
     protected function _getDomConfigModel()
     {
         if (null === $this->_domConfig) {
-            $schemaFile = $this->getPerFileSchemaFile() &&
-                $this->_isRuntimeValidated() ? $this->getPerFileSchemaFile() : null;
-            $this->_domConfig = new \Magento\Framework\Config\Dom(
-                $this->_getInitialXml(),
-                $this->_getIdAttributes(),
-                null,
-                $schemaFile
+            $this->_domConfig = $this->domFactory->createDom(
+                [
+                    'xml' => $this->_getInitialXml(),
+                    'idAttributes' => $this->_getIdAttributes(),
+                    'schemaFile' => $this->getPerFileSchemaFile()
+                ]
             );
         }
         return $this->_domConfig;
diff --git a/lib/internal/Magento/Framework/Config/Dom.php b/lib/internal/Magento/Framework/Config/Dom.php
index 4f512fd7820..f8e910c79fa 100644
--- a/lib/internal/Magento/Framework/Config/Dom.php
+++ b/lib/internal/Magento/Framework/Config/Dom.php
@@ -30,6 +30,11 @@ class Dom
      */
     const ERROR_FORMAT_DEFAULT = "%message%\nLine: %line%\n";
 
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+    private $validationState;
+
     /**
      * Dom document
      *
@@ -71,7 +76,7 @@ class Dom
     protected $rootNamespace;
 
     /**
-     * \Magento\Framework\Config\Dom\UrnResolver
+     * @var \Magento\Framework\Config\Dom\UrnResolver
      */
     private static $urnResolver;
 
@@ -82,6 +87,7 @@ class Dom
      * The path to ID attribute name should not include any attribute notations or modifiers -- only node names
      *
      * @param string $xml
+     * @param \Magento\Framework\Config\ValidationStateInterface $validationState
      * @param array $idAttributes
      * @param string $typeAttributeName
      * @param string $schemaFile
@@ -89,11 +95,13 @@ class Dom
      */
     public function __construct(
         $xml,
+        \Magento\Framework\Config\ValidationStateInterface $validationState,
         array $idAttributes = [],
         $typeAttributeName = null,
         $schemaFile = null,
         $errorFormat = self::ERROR_FORMAT_DEFAULT
     ) {
+        $this->validationState = $validationState;
         $this->schema = $schemaFile;
         $this->nodeMergingConfig = new Dom\NodeMergingConfig(new Dom\NodePathMatcher(), $idAttributes);
         $this->typeAttributeName = $typeAttributeName;
@@ -353,7 +361,7 @@ class Dom
     {
         $dom = new \DOMDocument();
         $dom->loadXML($xml);
-        if ($this->schema) {
+        if ($this->validationState->isValidationRequired() && $this->schema) {
             $errors = $this->validateDomDocument($dom, $this->schema, $this->errorFormat);
             if (count($errors)) {
                 throw new \Magento\Framework\Config\Dom\ValidationException(implode("\n", $errors));
@@ -371,8 +379,11 @@ class Dom
      */
     public function validate($schemaFileName, &$errors = [])
     {
-        $errors = $this->validateDomDocument($this->dom, $schemaFileName, $this->errorFormat);
-        return !count($errors);
+        if ($this->validationState->isValidationRequired()) {
+            $errors = $this->validateDomDocument($this->dom, $schemaFileName, $this->errorFormat);
+            return !count($errors);
+        }
+        return true;
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/Config/DomFactory.php b/lib/internal/Magento/Framework/Config/DomFactory.php
index 20be79afd0f..48d000c9e02 100644
--- a/lib/internal/Magento/Framework/Config/DomFactory.php
+++ b/lib/internal/Magento/Framework/Config/DomFactory.php
@@ -24,8 +24,9 @@ class DomFactory
      *
      * @param \Magento\Framework\ObjectManagerInterface $objectManger
      */
-    public function __construct(\Magento\Framework\ObjectManagerInterface $objectManger)
-    {
+    public function __construct(
+        \Magento\Framework\ObjectManagerInterface $objectManger
+    ) {
         $this->_objectManager = $objectManger;
     }
 
diff --git a/lib/internal/Magento/Framework/Config/Reader/Filesystem.php b/lib/internal/Magento/Framework/Config/Reader/Filesystem.php
index 992158c6edf..bbe3544318f 100644
--- a/lib/internal/Magento/Framework/Config/Reader/Filesystem.php
+++ b/lib/internal/Magento/Framework/Config/Reader/Filesystem.php
@@ -63,11 +63,9 @@ class Filesystem implements \Magento\Framework\Config\ReaderInterface
     protected $_domDocumentClass;
 
     /**
-     * Should configuration be validated
-     *
-     * @var bool
+     * @var \Magento\Framework\Config\ValidationStateInterface
      */
-    protected $_isValidated;
+    protected $validationState;
 
     /**
      * Constructor
@@ -95,10 +93,10 @@ class Filesystem implements \Magento\Framework\Config\ReaderInterface
         $this->_converter = $converter;
         $this->_fileName = $fileName;
         $this->_idAttributes = array_replace($this->_idAttributes, $idAttributes);
+        $this->validationState = $validationState;
         $this->_schemaFile = $schemaLocator->getSchema();
-        $this->_isValidated = $validationState->isValidated();
-        $this->_perFileSchema = $schemaLocator->getPerFileSchema() &&
-            $this->_isValidated ? $schemaLocator->getPerFileSchema() : null;
+        $this->_perFileSchema = $schemaLocator->getPerFileSchema() && $validationState->isValidationRequired()
+            ? $schemaLocator->getPerFileSchema() : null;
         $this->_domDocumentClass = $domDocumentClass;
         $this->_defaultScope = $defaultScope;
     }
@@ -145,7 +143,7 @@ class Filesystem implements \Magento\Framework\Config\ReaderInterface
                 );
             }
         }
-        if ($this->_isValidated) {
+        if ($this->validationState->isValidationRequired()) {
             $errors = [];
             if ($configMerger && !$configMerger->validate($this->_schemaFile, $errors)) {
                 $message = "Invalid Document \n";
@@ -172,7 +170,13 @@ class Filesystem implements \Magento\Framework\Config\ReaderInterface
      */
     protected function _createConfigMerger($mergerClass, $initialContents)
     {
-        $result = new $mergerClass($initialContents, $this->_idAttributes, null, $this->_perFileSchema);
+        $result = new $mergerClass(
+            $initialContents,
+            $this->validationState,
+            $this->_idAttributes,
+            null,
+            $this->_perFileSchema
+        );
         if (!$result instanceof \Magento\Framework\Config\Dom) {
             throw new \UnexpectedValueException(
                 "Instance of the DOM config merger is expected, got {$mergerClass} instead."
diff --git a/lib/internal/Magento/Framework/Config/Test/Unit/DomTest.php b/lib/internal/Magento/Framework/Config/Test/Unit/DomTest.php
index d759359f4ef..abe3ca2a331 100644
--- a/lib/internal/Magento/Framework/Config/Test/Unit/DomTest.php
+++ b/lib/internal/Magento/Framework/Config/Test/Unit/DomTest.php
@@ -7,6 +7,24 @@ namespace Magento\Framework\Config\Test\Unit;
 
 class DomTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+    protected $validationStateMock;
+
+    public function setUp()
+    {
+        $this->validationStateMock = $this->getMock(
+            '\Magento\Framework\Config\ValidationStateInterface',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+    }
+
     /**
      * @param string $xmlFile
      * @param string $newXmlFile
@@ -19,7 +37,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
     {
         $xml = file_get_contents(__DIR__ . "/_files/dom/{$xmlFile}");
         $newXml = file_get_contents(__DIR__ . "/_files/dom/{$newXmlFile}");
-        $config = new \Magento\Framework\Config\Dom($xml, $ids, $typeAttributeName);
+        $config = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock, $ids, $typeAttributeName);
         $config->merge($newXml);
         $this->assertXmlStringEqualsXmlFile(__DIR__ . "/_files/dom/{$expectedXmlFile}", $config->getDom()->saveXML());
     }
@@ -87,7 +105,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
     {
         $xml = file_get_contents(__DIR__ . "/_files/dom/ambiguous_two.xml");
         $newXml = file_get_contents(__DIR__ . "/_files/dom/ambiguous_new_one.xml");
-        $config = new \Magento\Framework\Config\Dom($xml);
+        $config = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock);
         $config->merge($newXml);
     }
 
@@ -98,7 +116,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
      */
     public function testValidate($xml, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($xml);
+        $dom = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock);
         $actualResult = $dom->validate(__DIR__ . '/_files/sample.xsd', $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
@@ -125,7 +143,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
         $expectedErrors = [
             "Error: `Element 'unknown_node': This element is not expected. Expected is ( node ).`",
         ];
-        $dom = new \Magento\Framework\Config\Dom($xml, [], null, null, $errorFormat);
+        $dom = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock, [], null, null, $errorFormat);
         $actualResult = $dom->validate(__DIR__ . '/_files/sample.xsd', $actualErrors);
         $this->assertFalse($actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
@@ -139,7 +157,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
     {
         $xml = '<root><unknown_node/></root>';
         $errorFormat = '%message%,%unknown%';
-        $dom = new \Magento\Framework\Config\Dom($xml, [], null, null, $errorFormat);
+        $dom = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock, [], null, null, $errorFormat);
         $dom->validate(__DIR__ . '/_files/sample.xsd');
     }
 
@@ -147,7 +165,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
     {
         $xml = '<root><node id="id1"/><node id="id2"/></root>';
         $schemaFile = __DIR__ . '/_files/sample.xsd';
-        $dom = new \Magento\Framework\Config\Dom($xml);
+        $dom = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock);
         $domMock = $this->getMock('DOMDocument', ['schemaValidate'], []);
         $domMock->expects($this->once())
             ->method('schemaValidate')
diff --git a/lib/internal/Magento/Framework/Config/Test/Unit/Reader/FilesystemTest.php b/lib/internal/Magento/Framework/Config/Test/Unit/Reader/FilesystemTest.php
index 57e7a97d573..7f83867d827 100644
--- a/lib/internal/Magento/Framework/Config/Test/Unit/Reader/FilesystemTest.php
+++ b/lib/internal/Magento/Framework/Config/Test/Unit/Reader/FilesystemTest.php
@@ -104,7 +104,9 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase
                 $this->urnResolver->getRealPath('urn:magento:framework:Config/Test/Unit/_files/reader/schema.xsd')
             )
         );
-        $this->_validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $this->_validationStateMock->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(true);
         $model = new Filesystem(
             $this->_fileResolverMock,
             $this->_converterMock,
@@ -133,7 +135,9 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase
                 $this->urnResolver->getRealPath('urn:magento:framework:Config/Test/Unit/_files/reader/schema.xsd')
             )
         );
-        $this->_validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $this->_validationStateMock->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(true);
 
         $model = new Filesystem(
             $this->_fileResolverMock,
diff --git a/lib/internal/Magento/Framework/Config/Test/Unit/ValidationStateTest.php b/lib/internal/Magento/Framework/Config/Test/Unit/ValidationStateTest.php
index 9e0cf08004e..6026273c1fc 100644
--- a/lib/internal/Magento/Framework/Config/Test/Unit/ValidationStateTest.php
+++ b/lib/internal/Magento/Framework/Config/Test/Unit/ValidationStateTest.php
@@ -10,18 +10,18 @@ class ValidationStateTest extends \PHPUnit_Framework_TestCase
     /**
      * @param string $appMode
      * @param boolean $expectedResult
-     * @dataProvider isValidatedDataProvider
+     * @dataProvider isValidationRequiredDataProvider
      */
-    public function testIsValidated($appMode, $expectedResult)
+    public function testIsValidationRequired($appMode, $expectedResult)
     {
         $model = new \Magento\Framework\App\Arguments\ValidationState($appMode);
-        $this->assertEquals($model->isValidated(), $expectedResult);
+        $this->assertEquals($model->isValidationRequired(), $expectedResult);
     }
 
     /**
      * @return array
      */
-    public function isValidatedDataProvider()
+    public function isValidationRequiredDataProvider()
     {
         return [
             [\Magento\Framework\App\State::MODE_DEVELOPER, true],
diff --git a/lib/internal/Magento/Framework/Config/ValidationStateInterface.php b/lib/internal/Magento/Framework/Config/ValidationStateInterface.php
index 61f39fb67cc..1ad9f7b1679 100644
--- a/lib/internal/Magento/Framework/Config/ValidationStateInterface.php
+++ b/lib/internal/Magento/Framework/Config/ValidationStateInterface.php
@@ -17,5 +17,5 @@ interface ValidationStateInterface
      *
      * @return boolean
      */
-    public function isValidated();
+    public function isValidationRequired();
 }
diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php
index 98a96140188..cdf7ec68b72 100644
--- a/lib/internal/Magento/Framework/Config/View.php
+++ b/lib/internal/Magento/Framework/Config/View.php
@@ -9,15 +9,11 @@
  */
 namespace Magento\Framework\Config;
 
-use Magento\Framework\Config\Dom\UrnResolver;
 use Magento\Framework\View\Xsd\Reader;
 use Magento\Framework\View\Xsd\Media\TypeDataExtractorPool;
 
 class View extends \Magento\Framework\Config\AbstractXml
 {
-    /** @var UrnResolver */
-    protected $urnResolver;
-
     /**
      * @var \Magento\Framework\View\Xsd\Media\TypeDataExtractorPool
      */
@@ -35,23 +31,22 @@ class View extends \Magento\Framework\Config\AbstractXml
 
     /**
      * @param array $configFiles
+     * @param DomFactory $domFactory
      * @param Reader $xsdReader
-     * @param UrnResolver $urnResolver
      * @param TypeDataExtractorPool $extractorPool
      * @param array $xpath
      */
     public function __construct(
         $configFiles,
+        DomFactory $domFactory,
         Reader $xsdReader,
-        UrnResolver $urnResolver,
         TypeDataExtractorPool $extractorPool,
         $xpath = []
     ) {
         $this->xpath = $xpath;
         $this->extractorPool = $extractorPool;
-        $this->urnResolver = $urnResolver;
         $this->xsdReader = $xsdReader;
-        parent::__construct($configFiles);
+        parent::__construct($configFiles, $domFactory);
     }
     
     /**
diff --git a/lib/internal/Magento/Framework/Indexer/Test/Unit/Config/ReaderTest.php b/lib/internal/Magento/Framework/Indexer/Test/Unit/Config/ReaderTest.php
index 54f09ad6128..bff3d9e5264 100644
--- a/lib/internal/Magento/Framework/Indexer/Test/Unit/Config/ReaderTest.php
+++ b/lib/internal/Magento/Framework/Indexer/Test/Unit/Config/ReaderTest.php
@@ -34,7 +34,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
 
         $this->_converter = $this->getMock('Magento\Framework\Indexer\Config\Converter', ['convert']);
         $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Framework\Indexer\Config\Reader(
             $this->_fileResolverMock,
diff --git a/lib/internal/Magento/Framework/Mview/Test/Unit/Config/ReaderTest.php b/lib/internal/Magento/Framework/Mview/Test/Unit/Config/ReaderTest.php
index ced98682173..5f2bf50dac3 100644
--- a/lib/internal/Magento/Framework/Mview/Test/Unit/Config/ReaderTest.php
+++ b/lib/internal/Magento/Framework/Mview/Test/Unit/Config/ReaderTest.php
@@ -44,7 +44,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         $schemaLocator = new \Magento\Framework\Mview\Config\SchemaLocator($urnResolverMock);
 
         $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Framework\Mview\Config\Reader(
             $this->_fileResolverMock,
diff --git a/lib/internal/Magento/Framework/ObjectManager/Config/Reader/Dom.php b/lib/internal/Magento/Framework/ObjectManager/Config/Reader/Dom.php
index 2da29257ff9..8203e4a562d 100644
--- a/lib/internal/Magento/Framework/ObjectManager/Config/Reader/Dom.php
+++ b/lib/internal/Magento/Framework/ObjectManager/Config/Reader/Dom.php
@@ -62,6 +62,12 @@ class Dom extends \Magento\Framework\Config\Reader\Filesystem
      */
     protected function _createConfigMerger($mergerClass, $initialContents)
     {
-        return new $mergerClass($initialContents, $this->_idAttributes, self::TYPE_ATTRIBUTE, $this->_perFileSchema);
+        return new $mergerClass(
+            $initialContents,
+            $this->validationState,
+            $this->_idAttributes,
+            self::TYPE_ATTRIBUTE,
+            $this->_perFileSchema
+        );
     }
 }
diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Reader/_files/ConfigDomMock.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Reader/_files/ConfigDomMock.php
index 492fbab7633..fffc1776bb0 100644
--- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Reader/_files/ConfigDomMock.php
+++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Reader/_files/ConfigDomMock.php
@@ -15,7 +15,7 @@ class ConfigDomMock extends \PHPUnit_Framework_TestCase
      * @param $perFileSchema
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function __construct($initialContents, $idAttributes, $typeAttribute, $perFileSchema)
+    public function __construct($initialContents, $validationState, $idAttributes, $typeAttribute, $perFileSchema)
     {
         $this->assertEquals('first content item', $initialContents);
         $this->assertEquals('xsi:type', $typeAttribute);
diff --git a/lib/internal/Magento/Framework/Validator/Config.php b/lib/internal/Magento/Framework/Validator/Config.php
index 9b10f61bb59..b45a12914e7 100644
--- a/lib/internal/Magento/Framework/Validator/Config.php
+++ b/lib/internal/Magento/Framework/Validator/Config.php
@@ -19,7 +19,6 @@ class Config extends \Magento\Framework\Config\AbstractXml
     const CONSTRAINT_TYPE_ENTITY = 'entity';
 
     const CONSTRAINT_TYPE_PROPERTY = 'property';
-
     /**#@-*/
 
     /**
@@ -32,22 +31,18 @@ class Config extends \Magento\Framework\Config\AbstractXml
      */
     protected $_builderFactory;
 
-    /** @var \Magento\Framework\Config\Dom\UrnResolver */
-    protected $urnResolver;
-
     /**
      * @param array $configFiles
+     * @param \Magento\Framework\Config\DomFactory $domFactory
      * @param \Magento\Framework\Validator\UniversalFactory $builderFactory
-     * @param \Magento\Framework\Config\Dom\UrnResolver $urnResolver
      */
     public function __construct(
         $configFiles,
-        \Magento\Framework\Validator\UniversalFactory $builderFactory,
-        \Magento\Framework\Config\Dom\UrnResolver $urnResolver
+        \Magento\Framework\Config\DomFactory $domFactory,
+        \Magento\Framework\Validator\UniversalFactory $builderFactory
     ) {
         $this->_builderFactory = $builderFactory;
-        $this->urnResolver = $urnResolver;
-        parent::__construct($configFiles);
+        parent::__construct($configFiles, $domFactory);
     }
 
     /**
@@ -407,7 +402,7 @@ class Config extends \Magento\Framework\Config\AbstractXml
      */
     public function getSchemaFile()
     {
-        return $this->urnResolver->getRealPath('urn:magento:framework:Validator/etc/validation.xsd');
+        return __DIR__ . '/etc/validation.xsd';
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/Validator/Test/Unit/ConfigTest.php b/lib/internal/Magento/Framework/Validator/Test/Unit/ConfigTest.php
index 9a9bb9aafca..977cfb9adf0 100644
--- a/lib/internal/Magento/Framework/Validator/Test/Unit/ConfigTest.php
+++ b/lib/internal/Magento/Framework/Validator/Test/Unit/ConfigTest.php
@@ -55,20 +55,35 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             new \Magento\Framework\ObjectManager\Relations\Runtime()
         );
         $factory = new \Magento\Framework\ObjectManager\Factory\Dynamic\Developer($config);
-        $realObjectManager = new \Magento\Framework\ObjectManager\ObjectManager($factory, $config);
-        $factory->setObjectManager($realObjectManager);
-        $universalFactory = $realObjectManager->get('Magento\Framework\Validator\UniversalFactory');
+        $appObjectManager = new \Magento\Framework\ObjectManager\ObjectManager($factory, $config);
+        $factory->setObjectManager($appObjectManager);
+        /** @var \Magento\Framework\Validator\UniversalFactory $universalFactory */
+        $universalFactory = $appObjectManager->get('Magento\Framework\Validator\UniversalFactory');
         /** @var \Magento\Framework\Config\Dom\UrnResolver $urnResolverMock */
         $urnResolverMock = $this->getMock('Magento\Framework\Config\Dom\UrnResolver', [], [], '', false);
         $urnResolverMock->expects($this->any())
             ->method('getRealPath')
             ->with('urn:magento:framework:Validator/etc/validation.xsd')
             ->willReturn($this->urnResolver->getRealPath('urn:magento:framework:Validator/etc/validation.xsd'));
+        $appObjectManager->configure(
+            [
+                'preferences' => [
+                    'Magento\Framework\Config\ValidationStateInterface' =>
+                        'Magento\Framework\App\Arguments\ValidationState',
+                ],
+                'Magento\Framework\App\Arguments\ValidationState' => [
+                    'arguments' => [
+                        'appMode' => 'developer',
+                    ]
+                ]
+            ]
+        );
         $this->_config = $this->_objectManager->getObject(
             'Magento\Framework\Validator\Config',
             [
                 'configFiles' => $configFiles,
                 'builderFactory' => $universalFactory,
+                'domFactory' => new \Magento\Framework\Config\DomFactory($appObjectManager),
                 'urnResolver' => $urnResolverMock
             ]
         );
diff --git a/lib/internal/Magento/Framework/View/Config.php b/lib/internal/Magento/Framework/View/Config.php
index fb4c687a731..85126514bb3 100644
--- a/lib/internal/Magento/Framework/View/Config.php
+++ b/lib/internal/Magento/Framework/View/Config.php
@@ -62,9 +62,6 @@ class Config implements \Magento\Framework\View\ConfigInterface
      */
     protected $fileIteratorFactory;
 
-    /** @var \Magento\Framework\Config\ViewFactory */
-    protected $viewConfigFactory;
-
     /**
      * File view factory
      *
@@ -89,7 +86,7 @@ class Config implements \Magento\Framework\View\ConfigInterface
         \Magento\Framework\View\Asset\Repository $assetRepo,
         \Magento\Framework\View\FileSystem $viewFileSystem,
         \Magento\Framework\Config\FileIteratorFactory $fileIteratorFactory,
-        \Magento\Framework\Config\ViewFactory $viewConfigFactory,
+        \Magento\Framework\Config\ViewFactory $viewFactory,
         $filename = self::CONFIG_FILE_NAME
     ) {
         $this->moduleReader = $moduleReader;
@@ -97,7 +94,7 @@ class Config implements \Magento\Framework\View\ConfigInterface
         $this->assetRepo = $assetRepo;
         $this->viewFileSystem = $viewFileSystem;
         $this->fileIteratorFactory = $fileIteratorFactory;
-        $this->viewConfigFactory = $viewConfigFactory;
+        $this->viewFactory = $viewFactory;
         $this->filename = $filename;
     }
 
@@ -131,7 +128,7 @@ class Config implements \Magento\Framework\View\ConfigInterface
                 $this->rootDirectory->getRelativePath($themeConfigFile)
             );
         }
-        $config = $this->viewConfigFactory->create($configFiles);
+        $config = $this->viewFactory->create($configFiles);
 
         $this->viewConfigs[$key] = $config;
         return $config;
diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/Config/DomMerger.php b/lib/internal/Magento/Framework/View/Element/UiComponent/Config/DomMerger.php
index ae7107665b4..554fc62e34c 100644
--- a/lib/internal/Magento/Framework/View/Element/UiComponent/Config/DomMerger.php
+++ b/lib/internal/Magento/Framework/View/Element/UiComponent/Config/DomMerger.php
@@ -8,6 +8,7 @@ namespace Magento\Framework\View\Element\UiComponent\Config;
 use Magento\Framework\Config\Dom;
 use Magento\Framework\Config\Dom\UrnResolver;
 use Magento\Framework\Module\Dir\Reader as DirectoryReader;
+use \Magento\Framework\Config\ValidationStateInterface;
 
 /**
  * Class DomMerger
@@ -19,6 +20,11 @@ class DomMerger implements DomMergerInterface
      */
     const ERROR_FORMAT_DEFAULT = "Message: %message%\nLine: %line%\n";
 
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+    private $validationState;
+
     /**
      * Location schema file
      *
@@ -62,20 +68,21 @@ class DomMerger implements DomMergerInterface
      * Format of $contextXPath: array('/config/ui')
      * The path to ID attribute name should not include any attribute notations or modifiers -- only node names
      *
-     * @param UrnResolver $urnResolver
-     * @param string $schema Absolute schema file path or URN
+     * @param ValidationStateInterface $validationState
+     * @param string $schema
      * @param bool $isMergeSimpleXMLElement
      * @param array $contextXPath
      * @param array $idAttributes
      */
     public function __construct(
-        UrnResolver $urnResolver,
+        ValidationStateInterface $validationState,
         $schema,
         $isMergeSimpleXMLElement = false,
         array $contextXPath = [],
         array $idAttributes = []
     ) {
-        $this->schemaFilePath = $urnResolver->getRealPath($schema);
+        $this->validationState = $validationState;
+        $this->schema = $schema;
         $this->isMergeSimpleXMLElement = $isMergeSimpleXMLElement;
         $this->contextXPath = $contextXPath;
         $this->idAttributes = $idAttributes;
@@ -315,7 +322,7 @@ class DomMerger implements DomMergerInterface
     {
         $domDocument = new \DOMDocument();
         $domDocument->loadXML($xml);
-        if ($this->schemaFilePath) {
+        if ($this->validationState->isValidationRequired() && $this->schema) {
             $errors = $this->validateDomDocument($domDocument);
             if (count($errors)) {
                 throw new \Magento\Framework\Exception\LocalizedException(
@@ -335,12 +342,12 @@ class DomMerger implements DomMergerInterface
      * @return array of errors
      * @throws \Exception
      */
-    protected function validateDomDocument(\DOMDocument $domDocument, $schemaFilePath = null)
+    protected function validateDomDocument(\DOMDocument $domDocument, $schema = null)
     {
-        $schemaFilePath = $schemaFilePath !== null ? $schemaFilePath : $this->schemaFilePath;
+        $schema = $schema !== null ? $schema : $this->schema;
         libxml_use_internal_errors(true);
         try {
-            $errors = \Magento\Framework\Config\Dom::validateDomDocument($domDocument, $schemaFilePath);
+            $errors = \Magento\Framework\Config\Dom::validateDomDocument($domDocument, $schema);
         } catch (\Exception $exception) {
             libxml_use_internal_errors(false);
             throw $exception;
@@ -435,6 +442,9 @@ class DomMerger implements DomMergerInterface
      */
     public function validate($schemaFilePath = null)
     {
+        if (!$this->validationState->isValidationRequired()) {
+            return [];
+        }
         return $this->validateDomDocument($this->getDom(), $schemaFilePath);
     }
 }
diff --git a/lib/internal/Magento/Framework/View/PageLayout/Config.php b/lib/internal/Magento/Framework/View/PageLayout/Config.php
index 31279b31a06..ce0f173c5d8 100644
--- a/lib/internal/Magento/Framework/View/PageLayout/Config.php
+++ b/lib/internal/Magento/Framework/View/PageLayout/Config.php
@@ -17,14 +17,18 @@ class Config extends \Magento\Framework\Config\AbstractXml
     /**
      * Instantiate with the list of files to merge
      *
-     * @param \Magento\Framework\Config\Dom\UrnResolver $urnResolver
      * @param array $configFiles
+     * @param \Magento\Framework\Config\DomFactory $domFactory
+     * @param \Magento\Framework\Config\Dom\UrnResolver $urnResolver
      * @throws \InvalidArgumentException
      */
-    public function __construct($configFiles, \Magento\Framework\Config\Dom\UrnResolver $urnResolver)
-    {
+    public function __construct(
+        $configFiles,
+        \Magento\Framework\Config\DomFactory $domFactory,
+        \Magento\Framework\Config\Dom\UrnResolver $urnResolver
+    ) {
         $this->urnResolver = $urnResolver;
-        parent::__construct($configFiles);
+        parent::__construct($configFiles, $domFactory);
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/ConfigTest.php b/lib/internal/Magento/Framework/View/Test/Unit/ConfigTest.php
index c6c980ee74c..dd2270d310a 100644
--- a/lib/internal/Magento/Framework/View/Test/Unit/ConfigTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/ConfigTest.php
@@ -68,7 +68,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
                 'assetRepo' => $this->repositoryMock,
                 'viewFileSystem' => $this->fileSystemMock,
                 'fileIteratorFactory' => $this->fileIteratorFactoryMock,
-                'viewConfigFactory' => $this->viewConfigFactoryMock
+                'viewFactory' => $this->viewConfigFactoryMock
             ]
         );
     }
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/PageLayout/ConfigTest.php b/lib/internal/Magento/Framework/View/Test/Unit/PageLayout/ConfigTest.php
index 8bdac494e98..2b10c2a26d4 100644
--- a/lib/internal/Magento/Framework/View/Test/Unit/PageLayout/ConfigTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/PageLayout/ConfigTest.php
@@ -23,6 +23,26 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             ->method('getRealPath')
             ->with('urn:magento:framework:View/PageLayout/etc/layouts.xsd')
             ->willReturn($urnResolver->getRealPath('urn:magento:framework:View/PageLayout/etc/layouts.xsd'));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domFactoryMock = $this->getMock('Magento\Framework\Config\DomFactory', [], [], '', false);
+        $domFactoryMock->expects($this->once())
+            ->method('createDom')
+            ->willReturnCallback(
+                function ($arguments) use ($validationStateMock) {
+                    // @codingStandardsIgnoreStart
+                    return new \Magento\Framework\Config\Dom(
+                        '<?xml version="1.0" encoding="UTF-8"?>'
+                            . '<page_layouts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></page_layouts>',
+                        $validationStateMock,
+                        ['/page_layouts/layout' => 'id'],
+                        null,
+                        $arguments['schemaFile']
+                    );
+                    // @codingStandardsIgnoreEnd
+                }
+            );
         $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $this->config = $objectManagerHelper->getObject(
             'Magento\Framework\View\PageLayout\Config',
@@ -31,7 +51,8 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
                 'configFiles' => [
                     'layouts_one.xml' => file_get_contents(__DIR__ . '/_files/layouts_one.xml'),
                     'layouts_two.xml' => file_get_contents(__DIR__ . '/_files/layouts_two.xml'),
-                ]
+                ],
+                'domFactory' => $domFactoryMock
             ]
         );
     }
-- 
GitLab


From 8e7a3307b610c6bb4e11e29534dcc35e4f4272f1 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Wed, 28 Oct 2015 11:37:07 -0500
Subject: [PATCH 56/61] MAGETWO-44681: page cache entries not tagged with "FPC"
 cache type  - use plugin to add cache tag

---
 .../PageCache/Model/App/PageCachePlugin.php   | 31 +++++++++++++++++++
 .../Unit/Model/App/PageCachePluginTest.php    | 28 +++++++++++++++++
 app/code/Magento/PageCache/etc/di.xml         |  3 ++
 3 files changed, 62 insertions(+)
 create mode 100644 app/code/Magento/PageCache/Model/App/PageCachePlugin.php
 create mode 100644 app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php

diff --git a/app/code/Magento/PageCache/Model/App/PageCachePlugin.php b/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
new file mode 100644
index 00000000000..8a5e3b8932d
--- /dev/null
+++ b/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
@@ -0,0 +1,31 @@
+<?php
+/***
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\PageCache\Model\App;
+
+class PageCachePlugin
+{
+    /**
+     * Attach FPC tag to all saved entries to enable cache type management
+     *
+     * @param \Magento\Framework\App\PageCache\Cache $subject
+     * @param $data
+     * @param $identifier
+     * @param array $tags
+     * @param null $lifeTime
+     * @return array
+     */
+    public function beforeSave(
+        \Magento\Framework\App\PageCache\Cache $subject,
+        $data,
+        $identifier,
+        $tags = [],
+        $lifeTime = null
+    ) {
+        $tags[] = \Magento\PageCache\Model\Cache\Type::CACHE_TAG;
+        return [$data, $identifier, $tags, $lifeTime];
+    }
+}
diff --git a/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php b/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
new file mode 100644
index 00000000000..b0a115f3860
--- /dev/null
+++ b/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
@@ -0,0 +1,28 @@
+<?php
+/***
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+use Magento\PageCache\Model\Cache\Type;
+
+class PageCachePluginTest extends \PHPUnit_Framework_TestCase
+{
+    public function testBeforeSave()
+    {
+        /** @var \Magento\PageCache\Model\App\PageCachePlugin $plugin */
+        $plugin = (new ObjectManager($this))->getObject('\Magento\PageCache\Model\App\PageCachePlugin');
+        $subjectMock = $this->getMockBuilder('\Magento\Framework\App\PageCache\Cache')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $initTags = ['tag', 'otherTag'];
+        $result = $plugin->beforeSave($subjectMock, 'data', 'identifier', $initTags);
+        $tags = isset($result[2]) ? $result[2] : null;
+        $expectedTags = array_merge($initTags, [Type::CACHE_TAG]);
+        $this->assertNotNull($tags);
+        foreach ($expectedTags as $expected) {
+            $this->assertContains($expected, $tags);
+        }
+    }
+}
diff --git a/app/code/Magento/PageCache/etc/di.xml b/app/code/Magento/PageCache/etc/di.xml
index b5a248f714a..1543abaa277 100644
--- a/app/code/Magento/PageCache/etc/di.xml
+++ b/app/code/Magento/PageCache/etc/di.xml
@@ -10,4 +10,7 @@
         <plugin name="core-app-area-design-exception-plugin"
                 type="Magento\PageCache\Model\App\CacheIdentifierPlugin" sortOrder="10"/>
     </type>
+    <type name="Magento\Framework\App\PageCache\Cache">
+        <plugin name="fpc-tag-addition-plugin" type="Magento\PageCache\Model\App\PageCachePlugin"/>
+    </type>
 </config>
-- 
GitLab


From 7de2154aaf07f1d2f22d851ddd6a5b1bff8223e9 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 28 Oct 2015 15:21:23 -0500
Subject: [PATCH 57/61] MAGETWO-37820: [GITHUB] Preference in the wrong di.xml
 file #1291

---
 app/code/Magento/Bundle/Setup/InstallData.php |  10 +-
 .../Product/Attribute/Edit/Tab/Advanced.php   |   8 +-
 .../Adminhtml/Product/Attribute/Grid.php      |   6 +-
 .../Catalog/Model/Attribute/Source/Scopes.php |   8 +-
 .../Model/Product/Attribute/Backend/Price.php |   8 +-
 .../Catalog/Model/ResourceModel/Attribute.php |   2 +-
 .../Model/ResourceModel/Eav/Attribute.php     |   8 +-
 .../ResourceModel/Setup/PropertyMapper.php    |   2 +-
 .../Magento/Catalog/Setup/CategorySetup.php   | 104 +++++++++---------
 .../Model/ResourceModel/Eav/AttributeTest.php |  10 +-
 .../CatalogUrlRewrite/Setup/InstallData.php   |   8 +-
 .../Model/ConfigurableAttributeHandler.php    |   2 +-
 .../Model/Product/Type/Configurable.php       |   2 +-
 .../Downloadable/Setup/InstallData.php        |   6 +-
 .../Attribute/ScopedAttributeInterface.php    |  15 +++
 .../Eav/Model/Entity/Setup/PropertyMapper.php |   6 +-
 app/code/Magento/Msrp/Setup/InstallData.php   |   4 +-
 .../Model/ResourceModel/Catalog/Product.php   |   2 +-
 .../Magento/Swatches/Setup/InstallData.php    |   2 +-
 app/code/Magento/Tax/Setup/InstallData.php    |   2 +-
 .../Adminhtml/Product/AttributeTest.php       |   2 +-
 .../Product/Attribute/Backend/PriceTest.php   |   6 +-
 22 files changed, 118 insertions(+), 105 deletions(-)
 create mode 100644 app/code/Magento/Eav/Model/Entity/Attribute/ScopedAttributeInterface.php

diff --git a/app/code/Magento/Bundle/Setup/InstallData.php b/app/code/Magento/Bundle/Setup/InstallData.php
index 0df0acd5734..57a3ab0851e 100644
--- a/app/code/Magento/Bundle/Setup/InstallData.php
+++ b/app/code/Magento/Bundle/Setup/InstallData.php
@@ -86,7 +86,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => true,
                 'required' => true,
                 'user_defined' => false,
@@ -112,7 +112,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
@@ -137,7 +137,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
@@ -164,7 +164,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'select',
                 'class' => '',
                 'source' => 'Magento\Bundle\Model\Product\Attribute\Source\Price\View',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => true,
                 'required' => true,
                 'user_defined' => false,
@@ -190,7 +190,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php
index 5ed9016a59f..db69fe00f5c 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php
@@ -213,14 +213,14 @@ class Advanced extends Generic
         }
 
         $scopes = [
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE => __('Store View'),
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE => __('Website'),
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL => __('Global'),
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE => __('Store View'),
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE => __('Website'),
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL => __('Global'),
         ];
 
         if ($attributeObject->getAttributeCode() == 'status' || $attributeObject->getAttributeCode() == 'tax_class_id'
         ) {
-            unset($scopes[\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE]);
+            unset($scopes[\Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE]);
         }
 
         $fieldset->addField(
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Grid.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Grid.php
index b2619647601..575a12c4308 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Grid.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Grid.php
@@ -83,9 +83,9 @@ class Grid extends AbstractGrid
                 'index' => 'is_global',
                 'type' => 'options',
                 'options' => [
-                    \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE => __('Store View'),
-                    \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE => __('Web Site'),
-                    \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL => __('Global'),
+                    \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE => __('Store View'),
+                    \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE => __('Web Site'),
+                    \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL => __('Global'),
                 ],
                 'align' => 'center'
             ],
diff --git a/app/code/Magento/Catalog/Model/Attribute/Source/Scopes.php b/app/code/Magento/Catalog/Model/Attribute/Source/Scopes.php
index f471a474320..62e02652527 100644
--- a/app/code/Magento/Catalog/Model/Attribute/Source/Scopes.php
+++ b/app/code/Magento/Catalog/Model/Attribute/Source/Scopes.php
@@ -5,7 +5,7 @@
  */
 namespace Magento\Catalog\Model\Attribute\Source;
 
-use \Magento\Catalog\Model\ResourceModel\Eav\Attribute;
+use \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface;
 
 class Scopes implements \Magento\Framework\Data\OptionSourceInterface
 {
@@ -16,15 +16,15 @@ class Scopes implements \Magento\Framework\Data\OptionSourceInterface
     {
         return [
             [
-                'value' => Attribute::SCOPE_STORE,
+                'value' => ScopedAttributeInterface::SCOPE_STORE,
                 'label' => __('Store View'),
             ],
             [
-                'value' => Attribute::SCOPE_WEBSITE,
+                'value' => ScopedAttributeInterface::SCOPE_WEBSITE,
                 'label' => __('Web Site'),
             ],
             [
-                'value' => Attribute::SCOPE_GLOBAL,
+                'value' => ScopedAttributeInterface::SCOPE_GLOBAL,
                 'label' => __('Global'),
             ],
         ];
diff --git a/app/code/Magento/Catalog/Model/Product/Attribute/Backend/Price.php b/app/code/Magento/Catalog/Model/Product/Attribute/Backend/Price.php
index ed6612507d2..9dc0dce6f51 100644
--- a/app/code/Magento/Catalog/Model/Product/Attribute/Backend/Price.php
+++ b/app/code/Magento/Catalog/Model/Product/Attribute/Backend/Price.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Catalog\Model\Product\Attribute\Backend;
 
+use \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface;
+
 /**
  * Catalog product price attribute backend model
  *
@@ -91,9 +93,9 @@ class Price extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
     public function setScope($attribute)
     {
         if ($this->_helper->isPriceGlobal()) {
-            $attribute->setIsGlobal(\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL);
+            $attribute->setIsGlobal(ScopedAttributeInterface::SCOPE_GLOBAL);
         } else {
-            $attribute->setIsGlobal(\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE);
+            $attribute->setIsGlobal(ScopedAttributeInterface::SCOPE_WEBSITE);
         }
 
         return $this;
@@ -118,7 +120,7 @@ class Price extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
             return $this;
         }
 
-        if ($this->getAttribute()->getIsGlobal() == \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE) {
+        if ($this->getAttribute()->getIsGlobal() == ScopedAttributeInterface::SCOPE_WEBSITE) {
             $baseCurrency = $this->_config->getValue(
                 \Magento\Directory\Model\Currency::XML_PATH_CURRENCY_BASE,
                 'default'
diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php b/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php
index dd522da5888..ec7bfafeee1 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php
@@ -86,7 +86,7 @@ class Attribute extends \Magento\Eav\Model\ResourceModel\Entity\Attribute
 
         if ($object->isScopeGlobal() && isset(
             $origData['is_global']
-        ) && \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL != $origData['is_global']
+        ) && \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL != $origData['is_global']
         ) {
             $attributeStoreIds = array_keys($this->_storeManager->getStores());
             if (!empty($attributeStoreIds)) {
diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php b/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php
index 2f4d6769131..cde304b004a 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php
@@ -32,14 +32,8 @@ use Magento\Framework\Stdlib\DateTime\DateTimeFormatterInterface;
  * @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
  */
 class Attribute extends \Magento\Eav\Model\Entity\Attribute implements
-    \Magento\Catalog\Api\Data\ProductAttributeInterface
+    \Magento\Catalog\Api\Data\ProductAttributeInterface, \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface
 {
-    const SCOPE_STORE = 0;
-
-    const SCOPE_GLOBAL = 1;
-
-    const SCOPE_WEBSITE = 2;
-
     const MODULE_NAME = 'Magento_Catalog';
 
     const ENTITY = 'catalog_eav_attribute';
diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Setup/PropertyMapper.php b/app/code/Magento/Catalog/Model/ResourceModel/Setup/PropertyMapper.php
index b7d5bbb301e..2f2814b5aff 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Setup/PropertyMapper.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Setup/PropertyMapper.php
@@ -26,7 +26,7 @@ class PropertyMapper extends PropertyMapperAbstract
             'is_global' => $this->_getValue(
                 $input,
                 'global',
-                \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL
+                \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL
             ),
             'is_visible' => $this->_getValue($input, 'visible', 1),
             'is_searchable' => $this->_getValue($input, 'searchable', 0),
diff --git a/app/code/Magento/Catalog/Setup/CategorySetup.php b/app/code/Magento/Catalog/Setup/CategorySetup.php
index 0efc0ac0837..23d14d9c7cf 100644
--- a/app/code/Magento/Catalog/Setup/CategorySetup.php
+++ b/app/code/Magento/Catalog/Setup/CategorySetup.php
@@ -78,7 +78,7 @@ class CategorySetup extends EavSetup
                         'label' => 'Name',
                         'input' => 'text',
                         'sort_order' => 1,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'is_active' => [
@@ -87,7 +87,7 @@ class CategorySetup extends EavSetup
                         'input' => 'select',
                         'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',
                         'sort_order' => 2,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'description' => [
@@ -96,7 +96,7 @@ class CategorySetup extends EavSetup
                         'input' => 'textarea',
                         'required' => false,
                         'sort_order' => 4,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'wysiwyg_enabled' => true,
                         'is_html_allowed_on_front' => true,
                         'group' => 'General Information',
@@ -108,7 +108,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Category\Attribute\Backend\Image',
                         'required' => false,
                         'sort_order' => 5,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'meta_title' => [
@@ -117,7 +117,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 6,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'meta_keywords' => [
@@ -126,7 +126,7 @@ class CategorySetup extends EavSetup
                         'input' => 'textarea',
                         'required' => false,
                         'sort_order' => 7,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'meta_description' => [
@@ -135,7 +135,7 @@ class CategorySetup extends EavSetup
                         'input' => 'textarea',
                         'required' => false,
                         'sort_order' => 8,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'display_mode' => [
@@ -145,7 +145,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Category\Attribute\Source\Mode',
                         'required' => false,
                         'sort_order' => 10,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                     'landing_page' => [
@@ -155,7 +155,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Category\Attribute\Source\Page',
                         'required' => false,
                         'sort_order' => 20,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                     'is_anchor' => [
@@ -211,7 +211,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Theme\Model\Theme\Source\Theme',
                         'required' => false,
                         'sort_order' => 10,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'custom_design_from' => [
@@ -221,7 +221,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Startdate',
                         'required' => false,
                         'sort_order' => 30,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'custom_design_to' => [
@@ -231,7 +231,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\Datetime',
                         'required' => false,
                         'sort_order' => 40,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'page_layout' => [
@@ -241,7 +241,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Category\Attribute\Source\Layout',
                         'required' => false,
                         'sort_order' => 50,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'custom_layout_update' => [
@@ -251,7 +251,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Customlayoutupdate',
                         'required' => false,
                         'sort_order' => 60,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'level' => [
@@ -278,7 +278,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Category\Attribute\Backend\Sortby',
                         'sort_order' => 40,
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Category\Helper\Sortby\Available',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                     'default_sort_by' => [
@@ -289,7 +289,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Category\Attribute\Backend\Sortby',
                         'sort_order' => 50,
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Category\Helper\Sortby\DefaultSortby',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                     'include_in_menu' => [
@@ -299,7 +299,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',
                         'default' => '1',
                         'sort_order' => 10,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'custom_use_parent_settings' => [
@@ -309,7 +309,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',
                         'required' => false,
                         'sort_order' => 5,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'custom_apply_to_products' => [
@@ -319,7 +319,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',
                         'required' => false,
                         'sort_order' => 6,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'filter_price_range' => [
@@ -329,7 +329,7 @@ class CategorySetup extends EavSetup
                         'required' => false,
                         'sort_order' => 51,
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Category\Helper\Pricestep',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                 ],
@@ -347,7 +347,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'frontend_class' => 'validate-length maximum-length-255',
                         'sort_order' => 1,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'searchable' => true,
                         'visible_in_advanced_search' => true,
                         'used_in_product_listing' => true,
@@ -370,7 +370,7 @@ class CategorySetup extends EavSetup
                         'label' => 'Description',
                         'input' => 'textarea',
                         'sort_order' => 3,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'searchable' => true,
                         'comparable' => true,
                         'wysiwyg_enabled' => true,
@@ -382,7 +382,7 @@ class CategorySetup extends EavSetup
                         'label' => 'Short Description',
                         'input' => 'textarea',
                         'sort_order' => 4,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'searchable' => true,
                         'comparable' => true,
                         'wysiwyg_enabled' => true,
@@ -399,7 +399,7 @@ class CategorySetup extends EavSetup
                         'input' => 'price',
                         'backend' => 'Magento\Catalog\Model\Product\Attribute\Backend\Price',
                         'sort_order' => 1,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'searchable' => true,
                         'filterable' => true,
                         'visible_in_advanced_search' => true,
@@ -415,7 +415,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Product\Attribute\Backend\Price',
                         'required' => false,
                         'sort_order' => 3,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
@@ -430,7 +430,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Startdate',
                         'required' => false,
                         'sort_order' => 4,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
@@ -445,7 +445,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\Datetime',
                         'required' => false,
                         'sort_order' => 5,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
@@ -461,7 +461,7 @@ class CategorySetup extends EavSetup
                         'required' => false,
                         'user_defined' => true,
                         'sort_order' => 6,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
                         'is_used_in_grid' => true,
@@ -501,7 +501,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 20,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Meta Information',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -513,7 +513,7 @@ class CategorySetup extends EavSetup
                         'input' => 'textarea',
                         'required' => false,
                         'sort_order' => 30,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Meta Information',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -527,7 +527,7 @@ class CategorySetup extends EavSetup
                         'note' => 'Maximum 255 chars',
                         'class' => 'validate-length maximum-length-255',
                         'sort_order' => 40,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Meta Information',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -541,7 +541,7 @@ class CategorySetup extends EavSetup
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Product\Helper\Form\BaseImage',
                         'required' => false,
                         'sort_order' => 0,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'used_in_product_listing' => true,
                         'group' => 'General',
                     ],
@@ -552,7 +552,7 @@ class CategorySetup extends EavSetup
                         'frontend' => 'Magento\Catalog\Model\Product\Attribute\Frontend\Image',
                         'required' => false,
                         'sort_order' => 2,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'used_in_product_listing' => true,
                         'group' => 'Images',
                     ],
@@ -563,7 +563,7 @@ class CategorySetup extends EavSetup
                         'frontend' => 'Magento\Catalog\Model\Product\Attribute\Frontend\Image',
                         'required' => false,
                         'sort_order' => 3,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'used_in_product_listing' => true,
                         'group' => 'Images',
                     ],
@@ -584,7 +584,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Product\Attribute\Backend\Tierprice',
                         'required' => false,
                         'sort_order' => 7,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
                     ],
@@ -610,7 +610,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Startdate',
                         'required' => false,
                         'sort_order' => 7,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -623,7 +623,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\Datetime',
                         'required' => false,
                         'sort_order' => 8,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -643,7 +643,7 @@ class CategorySetup extends EavSetup
                         'input' => 'select',
                         'source' => 'Magento\Catalog\Model\Product\Attribute\Source\Status',
                         'sort_order' => 9,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'searchable' => true,
                         'used_in_product_listing' => true,
                     ],
@@ -653,7 +653,7 @@ class CategorySetup extends EavSetup
                         'input' => 'price',
                         'required' => false,
                         'sort_order' => 8,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'visible' => false,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
@@ -665,7 +665,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Product\Visibility',
                         'default' => '4',
                         'sort_order' => 12,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                     ],
                     'custom_design' => [
                         'type' => 'varchar',
@@ -674,7 +674,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Theme\Model\Theme\Source\Theme',
                         'required' => false,
                         'sort_order' => 1,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -687,7 +687,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Startdate',
                         'required' => false,
                         'sort_order' => 2,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -700,7 +700,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\Datetime',
                         'required' => false,
                         'sort_order' => 3,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -713,7 +713,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Customlayoutupdate',
                         'required' => false,
                         'sort_order' => 4,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                     ],
                     'page_layout' => [
@@ -723,7 +723,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Product\Attribute\Source\Layout',
                         'required' => false,
                         'sort_order' => 5,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -732,7 +732,7 @@ class CategorySetup extends EavSetup
                     'category_ids' => [
                         'type' => 'static',
                         'label' => 'Categories',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                         'backend' => 'Magento\Catalog\Model\Product\Attribute\Backend\Category',
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Product\Helper\Form\Category',
                         'required' => false,
@@ -748,7 +748,7 @@ class CategorySetup extends EavSetup
                         'required' => false,
                         'default' => 'container2',
                         'sort_order' => 6,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                     ],
                     'required_options' => [
@@ -772,7 +772,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 16,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'visible' => false,
                         'used_in_product_listing' => true,
                     ],
@@ -782,7 +782,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 17,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'visible' => false,
                         'used_in_product_listing' => true,
                     ],
@@ -792,7 +792,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 18,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'visible' => false,
                         'used_in_product_listing' => true,
                     ],
@@ -816,7 +816,7 @@ class CategorySetup extends EavSetup
                         'input' => 'select',
                         'source' => 'Magento\Catalog\Model\Product\Attribute\Source\Countryofmanufacture',
                         'required' => false,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'visible' => true,
                         'user_defined' => false,
                         'searchable' => false,
@@ -838,7 +838,7 @@ class CategorySetup extends EavSetup
                         'input' => 'select',
                         'input_renderer' => 'Magento\CatalogInventory\Block\Adminhtml\Form\Field\Stock',
                         'source' => 'Magento\\CatalogInventory\\Model\\Source\\Stock',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                         'default' => \Magento\CatalogInventory\Model\Stock::STOCK_IN_STOCK,
                         'user_defined' => false,
                         'visible' => true,
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php
index ab8d0328ca6..38e97bbc108 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php
@@ -8,8 +8,6 @@
 
 namespace Magento\Catalog\Test\Unit\Model\ResourceModel\Eav;
 
-use \Magento\Catalog\Model\ResourceModel\Eav\Attribute;
-
 class AttributeTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -131,9 +129,9 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
     {
         $this->_processor->expects($this->once())->method('markIndexerAsInvalid');
 
-        $this->_model->setOrigData('is_global', \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE);
+        $this->_model->setOrigData('is_global', \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE);
         $this->_model->setOrigData('used_in_product_listing', 1);
-        $this->_model->setIsGlobal(\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL);
+        $this->_model->setIsGlobal(\Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL);
         $this->_model->afterSave();
     }
 
@@ -172,7 +170,7 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
                 'indexerEavProcessor' => $this->_eavProcessor,
                 'resource' => $this->resourceMock,
                 'data' => [
-                    'is_global' => Attribute::SCOPE_GLOBAL
+                    'is_global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL
                 ]
             ]
         );
@@ -190,7 +188,7 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
                 'indexerEavProcessor' => $this->_eavProcessor,
                 'resource' => $this->resourceMock,
                 'data' => [
-                    'is_global' => Attribute::SCOPE_WEBSITE
+                    'is_global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE
                 ]
             ]
         );
diff --git a/app/code/Magento/CatalogUrlRewrite/Setup/InstallData.php b/app/code/Magento/CatalogUrlRewrite/Setup/InstallData.php
index 56ae25a6bbb..46a0f9bea79 100644
--- a/app/code/Magento/CatalogUrlRewrite/Setup/InstallData.php
+++ b/app/code/Magento/CatalogUrlRewrite/Setup/InstallData.php
@@ -50,7 +50,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'text',
                 'required' => false,
                 'sort_order' => 3,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'group' => 'General Information',
             ]
         );
@@ -62,7 +62,7 @@ class InstallData implements InstallDataInterface
                 'type' => 'varchar',
                 'required' => false,
                 'sort_order' => 17,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'visible' => false,
                 'group' => 'General Information',
             ]
@@ -77,7 +77,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'text',
                 'required' => false,
                 'sort_order' => 10,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'used_in_product_listing' => true,
                 'group' => 'Search Engine Optimization',
                 'is_used_in_grid' => true,
@@ -93,7 +93,7 @@ class InstallData implements InstallDataInterface
                 'type' => 'varchar',
                 'required' => false,
                 'sort_order' => 11,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'visible' => false,
             ]
         );
diff --git a/app/code/Magento/ConfigurableProduct/Model/ConfigurableAttributeHandler.php b/app/code/Magento/ConfigurableProduct/Model/ConfigurableAttributeHandler.php
index 239f6d697d7..a2f9231a79d 100644
--- a/app/code/Magento/ConfigurableProduct/Model/ConfigurableAttributeHandler.php
+++ b/app/code/Magento/ConfigurableProduct/Model/ConfigurableAttributeHandler.php
@@ -40,7 +40,7 @@ class ConfigurableAttributeHandler
             1
         )->addFieldToFilter(
             'is_global',
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL
         );
     }
 
diff --git a/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php
index 85eae4dae7c..93f2588d214 100644
--- a/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php
@@ -248,7 +248,7 @@ class Configurable extends \Magento\Catalog\Model\Product\Type\AbstractType
      */
     public function canUseAttribute(\Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute)
     {
-        return $attribute->getIsGlobal() == \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL &&
+        return $attribute->getIsGlobal() == \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL &&
             $attribute->getIsVisible() &&
             $attribute->usesSource() &&
             $attribute->getIsUserDefined();
diff --git a/app/code/Magento/Downloadable/Setup/InstallData.php b/app/code/Magento/Downloadable/Setup/InstallData.php
index 28b92d361ce..594f08fad3d 100644
--- a/app/code/Magento/Downloadable/Setup/InstallData.php
+++ b/app/code/Magento/Downloadable/Setup/InstallData.php
@@ -56,7 +56,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
@@ -82,7 +82,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
@@ -107,7 +107,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/ScopedAttributeInterface.php b/app/code/Magento/Eav/Model/Entity/Attribute/ScopedAttributeInterface.php
new file mode 100644
index 00000000000..2b2412fe05b
--- /dev/null
+++ b/app/code/Magento/Eav/Model/Entity/Attribute/ScopedAttributeInterface.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Eav\Model\Entity\Attribute;
+
+interface ScopedAttributeInterface
+{
+    const SCOPE_STORE = 0;
+
+    const SCOPE_GLOBAL = 1;
+
+    const SCOPE_WEBSITE = 2;
+}
diff --git a/app/code/Magento/Eav/Model/Entity/Setup/PropertyMapper.php b/app/code/Magento/Eav/Model/Entity/Setup/PropertyMapper.php
index 0a1587fc8fc..f7b565f9055 100644
--- a/app/code/Magento/Eav/Model/Entity/Setup/PropertyMapper.php
+++ b/app/code/Magento/Eav/Model/Entity/Setup/PropertyMapper.php
@@ -35,7 +35,11 @@ class PropertyMapper extends PropertyMapperAbstract
             'default_value' => $this->_getValue($input, 'default'),
             'is_unique' => $this->_getValue($input, 'unique', 0),
             'note' => $this->_getValue($input, 'note'),
-            'is_global' => $this->_getValue($input, 'global', Attribute::SCOPE_GLOBAL)
+            'is_global' => $this->_getValue(
+                $input,
+                'global',
+                \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL
+            )
         ];
     }
 }
diff --git a/app/code/Magento/Msrp/Setup/InstallData.php b/app/code/Magento/Msrp/Setup/InstallData.php
index 080637c88e3..e9e76b117c1 100644
--- a/app/code/Magento/Msrp/Setup/InstallData.php
+++ b/app/code/Magento/Msrp/Setup/InstallData.php
@@ -60,7 +60,7 @@ class InstallData implements InstallDataInterface
                 'label' => 'Manufacturer\'s Suggested Retail Price',
                 'type' => 'decimal',
                 'input' => 'price',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                 'visible' => true,
                 'required' => false,
                 'user_defined' => false,
@@ -86,7 +86,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'select',
                 'source' => 'Magento\Msrp\Model\Product\Attribute\Source\Type\Price',
                 'source_model' => 'Magento\Msrp\Model\Product\Attribute\Source\Type\Price',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                 'visible' => true,
                 'required' => false,
                 'user_defined' => false,
diff --git a/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php b/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php
index 5a93ef13583..302d9689e1e 100644
--- a/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php
+++ b/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php
@@ -234,7 +234,7 @@ class Product extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
                 'attribute_id' => $attribute->getId(),
                 'table' => $attribute->getBackend()->getTable(),
                 'is_global' => $attribute->getIsGlobal() ==
-                \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'backend_type' => $attribute->getBackendType(),
             ];
         }
diff --git a/app/code/Magento/Swatches/Setup/InstallData.php b/app/code/Magento/Swatches/Setup/InstallData.php
index ac3a9020954..a97bd81215e 100644
--- a/app/code/Magento/Swatches/Setup/InstallData.php
+++ b/app/code/Magento/Swatches/Setup/InstallData.php
@@ -60,7 +60,7 @@ class InstallData implements InstallDataInterface
                 'frontend' => 'Magento\Catalog\Model\Product\Attribute\Frontend\Image',
                 'required' => false,
                 'sort_order' => 3,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'used_in_product_listing' => true
             ]
         );
diff --git a/app/code/Magento/Tax/Setup/InstallData.php b/app/code/Magento/Tax/Setup/InstallData.php
index 75f636abb3e..2400deda8bd 100644
--- a/app/code/Magento/Tax/Setup/InstallData.php
+++ b/app/code/Magento/Tax/Setup/InstallData.php
@@ -56,7 +56,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'select',
                 'class' => '',
                 'source' => 'Magento\Tax\Model\TaxClass\Source\Product',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                 'visible' => true,
                 'required' => false,
                 'user_defined' => false,
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/AttributeTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/AttributeTest.php
index 664fdee2198..479ffa633c8 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/AttributeTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/AttributeTest.php
@@ -249,7 +249,7 @@ class AttributeTest extends \Magento\TestFramework\TestCase\AbstractBackendContr
     protected function _getAttributeData()
     {
         return [
-            'is_global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+            'is_global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
             'default_value_text' => '0',
             'default_value_yesno' => '0',
             'default_value_date' => '',
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Attribute/Backend/PriceTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Attribute/Backend/PriceTest.php
index 5a8a484ac6e..1ba80dc05c4 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Attribute/Backend/PriceTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Attribute/Backend/PriceTest.php
@@ -36,12 +36,12 @@ class PriceTest extends \PHPUnit_Framework_TestCase
     {
         /* validate result of setAttribute */
         $this->assertEquals(
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
             $this->_model->getAttribute()->getIsGlobal()
         );
         $this->_model->setScope($this->_model->getAttribute());
         $this->assertEquals(
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
             $this->_model->getAttribute()->getIsGlobal()
         );
     }
@@ -53,7 +53,7 @@ class PriceTest extends \PHPUnit_Framework_TestCase
     {
         $this->_model->setScope($this->_model->getAttribute());
         $this->assertEquals(
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
             $this->_model->getAttribute()->getIsGlobal()
         );
     }
-- 
GitLab


From a33e4d35995d1e129fbba11859f305569990ebd6 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 28 Oct 2015 15:59:35 -0500
Subject: [PATCH 58/61] MAGETWO-37820: [GITHUB] Preference in the wrong di.xml
 file #1291

- fixed typo
---
 app/code/Magento/Catalog/Setup/CategorySetup.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/Catalog/Setup/CategorySetup.php b/app/code/Magento/Catalog/Setup/CategorySetup.php
index 23d14d9c7cf..c0dddb276cb 100644
--- a/app/code/Magento/Catalog/Setup/CategorySetup.php
+++ b/app/code/Magento/Catalog/Setup/CategorySetup.php
@@ -837,7 +837,7 @@ class CategorySetup extends EavSetup
                         'label' => 'Quantity',
                         'input' => 'select',
                         'input_renderer' => 'Magento\CatalogInventory\Block\Adminhtml\Form\Field\Stock',
-                        'source' => 'Magento\\CatalogInventory\\Model\\Source\\Stock',
+                        'source' => 'Magento\CatalogInventory\Model\Source\Stock',
                         'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                         'default' => \Magento\CatalogInventory\Model\Stock::STOCK_IN_STOCK,
                         'user_defined' => false,
-- 
GitLab


From 4b9a7c7cbacc76d3b45094d5e3197f193467d33a Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Wed, 28 Oct 2015 16:36:47 -0500
Subject: [PATCH 59/61] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Fix merge error
---
 .../Unit/Controller/Adminhtml/Email/Template/PreviewTest.php  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/PreviewTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/PreviewTest.php
index 59fccebfe38..e1f80f7f133 100644
--- a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/PreviewTest.php
+++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/PreviewTest.php
@@ -95,7 +95,7 @@ class PreviewTest extends \PHPUnit_Framework_TestCase
         ]);
     }
 
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $this->viewMock->expects($this->once())
             ->method('getPage')
@@ -110,6 +110,6 @@ class PreviewTest extends \PHPUnit_Framework_TestCase
             ->method('prepend')
             ->willReturnSelf();
 
-        $this->assertNull($this->object->execute());
+        $this->assertNull($this->object->executeInternal());
     }
 }
-- 
GitLab


From 3cd46941dfeeed4990fd3f03f2038381c82d1605 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Wed, 28 Oct 2015 19:36:12 -0500
Subject: [PATCH 60/61] MAGETWO-44681: page cache entries not tagged with "FPC"
 cache type  - fix static tests

---
 .../Magento/PageCache/Model/App/PageCachePlugin.php    | 10 ++++++----
 .../Test/Unit/Model/App/PageCachePluginTest.php        |  2 ++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/app/code/Magento/PageCache/Model/App/PageCachePlugin.php b/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
index 8a5e3b8932d..afb43a516f4 100644
--- a/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
+++ b/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
@@ -12,11 +12,13 @@ class PageCachePlugin
      * Attach FPC tag to all saved entries to enable cache type management
      *
      * @param \Magento\Framework\App\PageCache\Cache $subject
-     * @param $data
-     * @param $identifier
-     * @param array $tags
-     * @param null $lifeTime
+     * @param string $data
+     * @param string $identifier
+     * @param string[] $tags
+     * @param int|null $lifeTime
      * @return array
+     *
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function beforeSave(
         \Magento\Framework\App\PageCache\Cache $subject,
diff --git a/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php b/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
index b0a115f3860..5f10bbc7479 100644
--- a/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
+++ b/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
@@ -4,6 +4,8 @@
  * See COPYING.txt for license details.
  */
 
+namespace Magento\PageCache\Test\Unit\Model\App;
+
 use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\PageCache\Model\Cache\Type;
 
-- 
GitLab


From c9ed1b990236468b42dcf1dcb41bd0f0b10a0ea6 Mon Sep 17 00:00:00 2001
From: Olga Matviienko <omatviienko@ebay.com>
Date: Thu, 29 Oct 2015 13:47:01 +0200
Subject: [PATCH 61/61] MAGETWO-42354: Widget is displayed broken on Storefront

- Merge remote-tracking branch 'origin/develop' into PR-4
---
 .../blank/Magento_CatalogEvent/web/css/source/_widgets.less    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_widgets.less b/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_widgets.less
index 109186faad1..6b3fb6d3948 100644
--- a/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_widgets.less
+++ b/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_widgets.less
@@ -77,7 +77,8 @@
                 .category-name {
                     display: inline-block;
                     .lib-font-size(18);
-                    padding-top: 15px;
+                    padding: 15px 5px 0;
+                    word-break: break-all;
                 }
                 .ticker {
                     .lib-list-reset-styles();
-- 
GitLab