From 3cd0f23bfa45f8adc4e79013c47d5386a8dd8ba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20P=C3=A9tremann?= Date: Tue, 26 Jan 2016 10:44:35 +0100 Subject: [PATCH 1/4] PIM-5376: Move config to standard --- app/config/config.yml | 13 ++++++++++++- app/config/config_prod.yml | 4 ++-- app/config/routing.yml | 20 +++++++++++++++++--- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/app/config/config.yml b/app/config/config.yml index 00951f03d..ea1af96ae 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -69,7 +69,7 @@ doctrine: password: "%database_password%" charset: UTF8 types: - datetime: Oro\Bundle\LocaleBundle\DoctrineExtensions\DBAL\Types\UTCDateTimeType + datetime: Akeneo\Bundle\StorageUtilsBundle\Doctrine\DBAL\Types\UTCDateTimeType orm: auto_generate_proxy_classes: "%kernel.debug%" auto_mapping: true @@ -85,3 +85,14 @@ swiftmailer: pim_reference_data: ~ akeneo_storage_utils: ~ + +pim_localization: + decimal_separators: + - { value: '.', label: 'dot (.)' } + - { value: ',', label: 'comma (,)' } + date_formats: + - { value: 'yyyy-MM-dd', label: 'yyyy-mm-dd' } + - { value: 'yyyy/MM/dd', label: 'yyyy/mm/dd' } + - { value: 'MM/dd/yyyy', label: 'mm/dd/yyyy' } + - { value: 'dd/MM/yyyy', label: 'dd/mm/yyyy' } + - { value: 'dd.MM.yyyy', label: 'dd.mm.yyyy' } diff --git a/app/config/config_prod.yml b/app/config/config_prod.yml index b915d7009..7a05b202f 100644 --- a/app/config/config_prod.yml +++ b/app/config/config_prod.yml @@ -13,12 +13,12 @@ monolog: handlers: main: type: fingers_crossed - action_level: critical + action_level: warning handler: nested nested: type: stream path: %kernel.logs_dir%/%kernel.environment%.log - level: debug + level: info console: type: console diff --git a/app/config/routing.yml b/app/config/routing.yml index 590368217..59935df63 100644 --- a/app/config/routing.yml +++ b/app/config/routing.yml @@ -32,6 +32,9 @@ pim_pdf_generator: pim_notification: resource: "@PimNotificationBundle/Resources/config/routing.yml" +pim_localization: + resource: "@PimLocalizationBundle/Resources/config/routing.yml" + pim_reference_data: resource: "@PimReferenceDataBundle/Resources/config/routing.yml" @@ -43,9 +46,20 @@ oro_default: template: PimDashboardBundle:Dashboard:index.html.twig _controller: FrameworkBundle:Template:template -oro_auto_routing: - resource: . - type: oro_auto +oro_user: + resource: "@OroUserBundle/Resources/config/oro/routing.yml" + +oro_config: + resource: "@OroConfigBundle/Resources/config/oro/routing.yml" + +oro_datagrid: + resource: "@OroDataGridBundle/Resources/config/oro/routing.yml" + +oro_navigation: + resource: "@OroNavigationBundle/Resources/config/oro/routing.yml" + +oro_translation: + resource: "@OroTranslationBundle/Resources/config/oro/routing.yml" # other third party From f272a9812d274a94986b0230080dd77b0674bd9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20P=C3=A9tremann?= Date: Tue, 26 Jan 2016 11:58:10 +0100 Subject: [PATCH 2/4] PIM-5376: Use the 1.5 alpha tag for community edition --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 9dea3c6ca..cb724646d 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ } }, "require": { - "akeneo/pim-community-dev": "v1.4.0-RC1", + "akeneo/pim-community-dev": "v1.5.0-ALPHA1@alpha", "sensio/generator-bundle": "2.3.5" }, "require-dev": { From 20f2bf5c5ceec3b77e82bfe1a1152d12abe12242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20P=C3=A9tremann?= Date: Tue, 26 Jan 2016 12:59:01 +0100 Subject: [PATCH 3/4] PIM-5376: Update symonfy requirements & app kernel bundles --- app/AppKernel.php | 11 +++-------- app/SymfonyRequirements.php | 12 +++++++++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/AppKernel.php b/app/AppKernel.php index 4c7872259..ff7e6ddd2 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -70,7 +70,6 @@ protected function getPimBundles() new Pim\Bundle\FilterBundle\PimFilterBundle(), new Pim\Bundle\UserBundle\PimUserBundle(), new Pim\Bundle\JsFormValidationBundle\PimJsFormValidationBundle(), - new Pim\Bundle\EntityBundle\PimEntityBundle(), // PIM bundles new Pim\Bundle\AnalyticsBundle\PimAnalyticsBundle(), @@ -80,7 +79,6 @@ protected function getPimBundles() new Pim\Bundle\NotificationBundle\PimNotificationBundle(), new Pim\Bundle\CatalogBundle\PimCatalogBundle(), new Pim\Bundle\DataGridBundle\PimDataGridBundle(), - new Pim\Bundle\TranslationBundle\PimTranslationBundle(), new Pim\Bundle\ImportExportBundle\PimImportExportBundle(), new Pim\Bundle\VersioningBundle\PimVersioningBundle(), new Pim\Bundle\WebServiceBundle\PimWebServiceBundle(), @@ -91,6 +89,8 @@ protected function getPimBundles() new Pim\Bundle\PdfGeneratorBundle\PimPdfGeneratorBundle(), new Pim\Bundle\ReferenceDataBundle\PimReferenceDataBundle(), new Pim\Bundle\ConnectorBundle\PimConnectorBundle(), + new Pim\Bundle\LocalizationBundle\PimLocalizationBundle(), + new Akeneo\Bundle\ClassificationBundle\AkeneoClassificationBundle(), ]; } @@ -102,14 +102,13 @@ protected function getPimBundles() protected function getPimDependenciesBundles() { return [ - new Knp\Bundle\GaufretteBundle\KnpGaufretteBundle(), new APY\JsFormValidationBundle\APYJsFormValidationBundle(), new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(), new Oneup\FlysystemBundle\OneupFlysystemBundle(), new Akeneo\Bundle\MeasureBundle\AkeneoMeasureBundle(), new Akeneo\Bundle\BatchBundle\AkeneoBatchBundle(), + new Akeneo\Bundle\BufferBundle\AkeneoBufferBundle(), new Akeneo\Bundle\StorageUtilsBundle\AkeneoStorageUtilsBundle(), - new Akeneo\Bundle\ClassificationBundle\AkeneoClassificationBundle(), new Akeneo\Bundle\FileStorageBundle\AkeneoFileStorageBundle(), ]; } @@ -166,12 +165,8 @@ protected function getOroBundles() new Oro\Bundle\AsseticBundle\OroAsseticBundle(), new Oro\Bundle\ConfigBundle\OroConfigBundle(), new Oro\Bundle\DataGridBundle\OroDataGridBundle(), - new Oro\Bundle\DistributionBundle\OroDistributionBundle(), - new Oro\Bundle\EntityBundle\OroEntityBundle(), - new Oro\Bundle\EntityConfigBundle\OroEntityConfigBundle(), new Oro\Bundle\FilterBundle\OroFilterBundle(), new Oro\Bundle\FormBundle\OroFormBundle(), - new Oro\Bundle\LocaleBundle\OroLocaleBundle(), new Oro\Bundle\NavigationBundle\OroNavigationBundle(), new Oro\Bundle\RequireJSBundle\OroRequireJSBundle(), new Oro\Bundle\SecurityBundle\OroSecurityBundle(), diff --git a/app/SymfonyRequirements.php b/app/SymfonyRequirements.php index 722eb7aa3..28b0dcdbf 100644 --- a/app/SymfonyRequirements.php +++ b/app/SymfonyRequirements.php @@ -406,7 +406,7 @@ public function __construct() is_dir(__DIR__.'/../vendor/composer'), 'Vendor libraries must be installed', 'Vendor libraries are missing. Install composer following instructions from http://getcomposer.org/. '. - 'Then run "php composer.phar install" to install them.' + 'Then run "php composer.phar install" to install them.' ); $cacheDir = is_dir(__DIR__.'/../var/cache') ? __DIR__.'/../var/cache' : __DIR__.'/cache'; @@ -446,6 +446,12 @@ public function __construct() ); } + $this->addRequirement( + function_exists('iconv'), + 'iconv() must be available', + 'Install and enable the iconv extension.' + ); + $this->addRequirement( function_exists('json_encode'), 'json_encode() must be available', @@ -546,10 +552,10 @@ function_exists('simplexml_import_dom'), require_once __DIR__.'/../vendor/autoload.php'; try { - $r = new \ReflectionClass('Sensio\Bundle\DistributionBundle\SensioDistributionBundle'); + $r = new ReflectionClass('Sensio\Bundle\DistributionBundle\SensioDistributionBundle'); $contents = file_get_contents(dirname($r->getFileName()).'/Resources/skeleton/app/SymfonyRequirements.php'); - } catch (\ReflectionException $e) { + } catch (ReflectionException $e) { $contents = ''; } $this->addRecommendation( From aaf1ffb27825c6c766c5d92b18d8c3f1d33b086c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20P=C3=A9tremann?= Date: Tue, 26 Jan 2016 14:24:22 +0100 Subject: [PATCH 4/4] PIM-5376: Update symonfy requirements & app kernel bundles & changelog --- CHANGELOG-1.5.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 CHANGELOG-1.5.md diff --git a/CHANGELOG-1.5.md b/CHANGELOG-1.5.md new file mode 100644 index 000000000..168a32d1a --- /dev/null +++ b/CHANGELOG-1.5.md @@ -0,0 +1,97 @@ +# 1.5.x + +# 1.5.0-ALPHA1 (2016-01-26) + +## Technical improvements + +- PIM-4964: Use enable / disable import parameter only to create the product +- Family is not hardcoded anymore +- PIM-4743: Added the possibility to use optgroup in Oro ChoiceFilter +- PIM-4347: `Pim\Bundle\CatalogBundle\Repository\ProductRepositoryInterface` now extends `Doctrine\Common\Persistence\ObjectRepository` +- PIM-5067: Change the JUnit formatter of behats logs +- PIM-5217: Create a Buffer component and new file writer implementations that use it +- PIM-4646: TinyMCE wysiwyg editor is replaced by Summernote in the mass-edit and variant group +- PIM-4999: jQuery UI datepicker is replaced by bootstrap datepicker in the mass-edit and variant group +- A new twig extension (StyleExtension) in UIBundle now provides a "highlight" string filter +- PIM-5450: MongoDb ODM bundle in dev requirements +- PIM-5380: It is now possible to group grid actions in dropdown by specifying it in the grid configuration (see quick export in the product grid for an example) + +## Bug fixes + +## BC breaks +- Change constructor of `Pim\Bundle\EnrichBundle\Connector\Processor\QuickExport\ProductToFlatArrayProcessor` to add `Akeneo\Component\StorageUtils\Detacher\ObjectDetacherInterface` and `Pim\Component\Catalog\Builder\ProductBuilderInterface`. +- Service `oro_filter.form.type.date_range` is removed and replaced by `pim_filter.form.type.date_range` +- Service `oro_filter.form.type.datetime_range` is removed and replaced by `pim_filter.form.type.datetime_range` +- Delete class `Pim\Bundle\CatalogBundle\Manager\ProductMassActionManager` its service `pim_catalog.manager.product_mass_action` +- Change constructor of `Pim\Bundle\EnrichBundle\Form\Type\MassEditAction\EditCommonAttributesType` to keep only $dataclass +- Change constructor of `Pim\Bundle\EnrichBundle\MassEditAction\Operation\EditCommonAttributes`. Removed arguments `Pim\Bundle\CatalogBundle\Context\CatalogContext`, `Symfony\Component\Serializer\Normalizer\NormalizerInterface`, `Akeneo\Component\FileStorage\File\FileStorerInterface`, `Pim\Bundle\CatalogBundle\Manager\ProductMassActionManager`. Added arguments `Pim\Component\Localization\Localizer\LocalizerRegistry` and `Pim\Component\Localization\Localizer\LocalizedAttributeConverterInterface`. +- Service `oro_form.type.date` is removed and replaced by `pim_form.type.date` (alias `oro_date` is replaced by `pim_date`) +- Change constructor of `Pim\Bundle\CatalogBundle\Builder\ProductTemplateBuilder`. Add `Pim\Component\Localization\LocaleResolver` as the fourth argument. +- Change constructor of `Pim\Bundle\EnrichBundle\Controller\Rest\ProductController`. Add argument `Pim\Component\Localization\Localizer\LocalizedAttributeConverterInterface`. +- Change constructor of `Pim\Bundle\EnrichBundle\Form\Handler\GroupHandler`. Add argument `Pim\Component\Localization\Localizer\LocalizedAttributeConverterInterface`. +- Change constructor of `Pim\Bundle\EnrichBundle\Form\Subscriber\TransformProductTemplateValuesSubscriber`. Add argument `Pim\Component\Localization\LocaleResolver`. +- Change constructor of `Pim\Bundle\UIBundle\Form\Type\NumberType`. Add arguments `Pim\Component\Localization\LocaleResolver` and `Pim\Component\Localization\Localizer\LocalizerInterface`. +- Add `Pim\Component\Localization\Localizer\LocalizedAttributeConverter` to `Pim\Component\Connector\Processor\Denormalization\ProductProcessor` +- Add an array `$decimalSeparators` to `Pim\Component\Connector\Reader\File\CsvProductReader` +- Column 'comment' has been added on the `pim_notification_notification` table. +- Remove OroEntityBundle +- Remove OroEntityConfigBundle +- Remove PimEntityBundle +- Move DoctrineOrmMappingsPass from Oro/EntityBundle to Akeneo/StorageUtilsBundle +- Remove OroDistributionBundle (explicitely define oro bundles routing, means oro/rounting.yml are not automaticaly loaded anymore, and remove useless twig config) +- Change constructor of `Pim\Bundle\TranslationBundle\Twig\TranslationsExtension`. Replace `Oro\Bundle\LocaleBundle\Model\LocaleSettings` by `Symfony\Component\HttpFoundation\RequestStack`. +- Removed `Pim\Bundle\UserBundle\EventListener\LocalListener` (use `Pim\Bundle\UserBundle\EventListener\LocaleListener` instead). +- Change constructor of `Pim\Bundle\UserBundle\Form\Subscriber\UserPreferencesSubscriber`. Add `Pim\Component\Localization\Provider\LocaleProviderInterface` as the first argument. +- Move `LocaleType` from `Oro\Bundle\LocalBundle\Form\Type` to `Pim\Bundle\LocalizationBundle\Form\Type` +- Move `UserType` from `Oro\Bundle\UserBundle\Form\Type` to `Pim\Bundle\UserBundle\Form\Type` +- Added Pim\Bundle\CatalogBundle\Repository\AttributeRepositoryInterface to the constructor of Pim\Component\Catalog\Updater\Remover\RemoverRegistry, Pim\Component\Catalog\Updater\Adder\AdderRegistry, Pim\Component\Catalog\Updater\Setter\SetterRegistry and Pim\Component\Catalog\Updater\Copier\CopierRegistry +- Added Pim\Bundle\CatalogBundle\Repository\AttributeRequirementRepositoryInterface to the constructor of Pim\Component\Catalog\Updater\FamilyUpdater +- Change constructor of `Pim\Bundle\BaseConnectorBundle\Processor\CsvSerializer\Processor`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface` +- Change constructor of `Pim\Bundle\BaseConnectorBundle\Processor\CsvSerializer\ProductProcessor`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface` +- Change constructor of `Pim\Bundle\BaseConnectorBundle\Processor\CsvSerializer\HeterogeneousProcessor`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface` +- Change constructor of `Pim\Bundle\BaseConnectorBundle\Processor\CsvSerializer\HomogeneousProcessor`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface` +- Change constructor of `Pim\Bundle\BaseConnectorBundle\Processor\Normalization\FamilyProcessor`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface` +- Change constructor of `Pim\Bundle\CatalogBundle\Helper\LocaleHelper`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface`. +- Change constructor of `Pim\Bundle\EnrichBundle\Controller\AttributeController`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface`. +- Change constructor of `Pim\Bundle\EnrichBundle\Form\Type\ChannelType`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface`. +- Change constructor of `Pim\Bundle\EnrichBundle\Normalizer\AttributeOptionNormalizer`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface`. +- Change constructor of `Pim\Bundle\EnrichBundle\Normalizer\ProductNormalizer`. Removed argument `Pim\Bundle\CatalogBundle\Manager\LocaleManager` and add `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface`. +- Deleted class `Pim\Bundle\CatalogBundle\Manager\LocaleManager` we should now use the `Pim\Bundle\CatalogBundle\Repository\LocaleRepositoryInterface`. +- Change constructor of `Pim\Bundle\DataGridBundle\Extension\Formatter\Property\ProductValue\PriceProperty`. Add `Pim\Component\Localization\Presenter\PresenterInterface`. +- Change constructor of `Pim\Bundle\DataGridBundle\Extension\Formatter\Property\ProductValue\MetricProperty`. Add `Pim\Component\Localization\Presenter\PresenterInterface`. +- Change constructor of `Pim\Bundle\DataGridBundle\Extension\Formatter\Property\ProductValue\NumberProperty`. Add `Pim\Component\Localization\Presenter\PresenterInterface`. +- Change constructor of `Pim\Bundle\BaseConnectorBundle\Processor\ProductToFlatArrayProcessor`. Add `array` of available decimal separators and `array` of available date formats. +- Change constructor of `Pim\Component\Localization\Normalizer\ProductValueNormalizer`. Add `Pim\Component\Localization\Localizer\LocalizerRegistryInterface`. +- Change constructor of `Pim\Bundle\BaseConnectorBundle\Processor\Normalization\VariantGroupProcessor`. Add `array` of available decimal separators and `array` of available date formats as third and fourth parameter. +- Change constructor of `Pim\Bundle\EnrichBundle\Connector\Processor\QuickExport\ProductToFlatArrayProcessor`. Add `Pim\Component\Localization\Provider\DateFormatProviderInterface` as third parameter. +- Change constructor of `Pim\Bundle\CatalogBundle\Factory\FamilyFactory`. Add family classname as last parameter. +- Change constructor of `Pim\Bundle\EnrichBundle\Controller\FamilyController`. Add family classname as last parameter. +- Change `Pim\Bundle\EnrichBundle\Controller\FamilyController` methods parameters for `editAction`, `removeAction`, `historyAction` and `addAttributesAction` changing Family by integer (id). +- Change parameters of `renderStatefulGrid` of `Pim\Bundle\DataGridBundle\Resources\views\macros.html.twig` array `defaultView` has been added. +- Change constructor of `Pim\Bundle\DataGridBundle\Datagrid\Configuration\Product\ContextConfigurator`. Unused datagrid view repository has been removed. +- Change constructor of `Pim\Bundle\UserBundle\Form\Type\UserType`. Added EventDispatcher as last parameter. +- Remove class `Pim\Bundle\CatalogBundle\Manager\AssociationTypeManager` +- Remove class `Pim\Bundle\CatalogBundle\Manager\AssociationManager` +- Remove deprecated method valueExists from `Pim\Bundle\CatalogBundle\Manager\ProductManager` +- Change constructor of `Pim\Bundle\DataGridBundle\Extension\MassAction\Util\ProductFieldsBuilder` to inject ProductRepositoryInterface and AttributeRepositoryInterface +- Added method `getAttributeCodesByGroup` to the `Pim\Bundle\CatalogBundle\Repository\AttributeRepositoryInterface` +- Changed constructor of `Pim\Bundle\TransformBundle\Normalizer\Structured\AttributeGroupNormalizer`, made AttributeRepository mandatory +- Remove deprecated method scheduleForChannel from `Pim\Bundle\CatalogBundle\Manager\CompletenessManager` +- Move `Pim\Bundle\BaseConnectorBundle\Writer\File\ArchivableWriterInterface` to `Pim\Component\Connector\Writer\File\ArchivableWriterInterface` +- `Pim\Component\Connector\Writer\File\YamlWriter` now inherits from `Pim\Component\Connector\Writer\File\AbstractFileWriter` therefore needs an instance of `Pim\Component\Connector\Writer\File\FilePathResolverInterface` as first parameter of the constructor +- Remove deprecated methods findAllWithTranslations, getIdToLabelOrderedBySortOrder, getAttributeGroupChoices from `Pim\Bundle\CatalogBundle\Repository\AttributeRepositoryInterface` +- Remove deprecated methods findAllWithTranslations, getIdToLabelOrderedBySortOrder, getAttributeGroupChoices from `Pim\Bundle\CatalogBundle\Repository\AttributeGroupRepositoryInterface` +- Remove deprecated methods getAvailableAttributesAsLabelChoice, getAttributeIds from `Pim\Bundle\CatalogBundle\Repository\AttributeRepositoryInterface` +- Remove deprecated methods getAvailableAxis, getRepository, getGroupTypeRepository, getProductList, getAttributeRepository from `Pim\Bundle\CatalogBundle\Manager\GroupManager` +- Change constructor of `Pim\Bundle\CatalogBundle\Manager\GroupManager` to pass `Pim\Bundle\CatalogBundle\Repository\GroupTypeRepositoryInterface` and `Pim\Bundle\CatalogBundle\Repository\AttributeRepositoryInterface` +- Remove deprecated method getAttributeOptionValueClass from `Pim\Bundle\CatalogBundle\Manager\AttributeOptionManager` +- Remove deprecated methods getActiveCurrencies, getCurrencies from `Pim\Bundle\CatalogBundle\Manager\CurrencyManager` +- Change constructor of `Pim\Bundle\EnrichBundle\Controller\AttributeGroupController` to inject `Pim\Bundle\CatalogBundle\Repository\AttributeGroupRepositoryInterface` and `Pim\Bundle\CatalogBundle\Repository\AttributeRepositoryInterface` +- Change constructor of `Pim\Bundle\EnrichBundle\Controller\AttributeController` to inject `Pim\Bundle\CatalogBundle\Repository\GroupRepositoryInterface` and `Pim\Bundle\CatalogBundle\Repository\AttributeRepositoryInterface` +- Change constructor of `Pim\Bundle\EnrichBundle\MassEditAction\Operation\OperationRegistry` to inject `Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface` and `Oro\Bundle\SecurityBundle\SecurityFacade` +- Update schema of `Pim\Component\Catalog\Model\Metric`. Increase precision of data and baseData. +- Change constructor of `Pim\Component\Connector\Processor\Denormalization\ProductAssociationProcessor` to add `Akeneo\Component\StorageUtils\Detacher\ObjectDetacherInterface` +- Rename `Pim\Bundle\CatalogBundle\Validator\Constraints\Numeric` to `Pim\Bundle\CatalogBundle\Validator\Constraints\IsNumeric` to fix PHP7 compatibility +- Rename `Pim\Bundle\CatalogBundle\Validator\Constraints\NumericValidator` to `Pim\Bundle\CatalogBundle\Validator\Constraints\IsNumericValidator` to fix PHP7 compatibility +- Rename `Pim\Bundle\CatalogBundle\Validator\Constraints\String` to `Pim\Bundle\CatalogBundle\Validator\Constraints\IsString` to fix PHP7 compatibility +- Rename `Pim\Bundle\CatalogBundle\Validator\Constraints\StringValidator` to `Pim\Bundle\CatalogBundle\Validator\Constraints\IsStringValidator` to fix PHP7 compatibility