Hybris-自定义初始化处理

来源:互联网 发布:全球通史知乎 编辑:程序博客网 时间:2024/06/14 18:14

概述

初始化处理的目的是准备store数据

通过加速器扩展导入数据

加速器提供了两个专门的挂钩来导入自定义数据

core data hook,merchandisecore扩展中的de.hybris.merchandise.core.setup.CoreSystemSetup,使用@SystemSetup注解,在merchandisecore-spring.xml中定义,它的设计是为了初始化store basic data(non concrete store data, non store-specific data),如cockpit definitions, email templates, CMS layout等
sample data hook,merchandiseinitialdata扩展中的de.hybris.merchandise.initialdata.setup.InitialDataSystemSetup,使用@SystemSetup注解,在merchandiseinitialdata-spring.xml中定义,它的设计是为了初始化all the product and concrete cms content(concrete store data,store-specific data),如catalogs, Solr configurations等
Sample Data hook包括两个重要的service,它们有一个共同的父类AbstractDataImportService,提供importing all data, synchronizing catalogs, run solr indexes等功能

Core Data Import Service,它的设计是为了导入store的all essential core data(basic structure of a store),如catalog definition, email templates, site definition,可以看de.hybris.platform.commerceservices.dataimport.impl.CoreDataImportService这个类,注意store’s data是怎样导入的,如catalogs, solr configuration, cms content等
Sample Data Import Service,它的设计是为了导入all the store-specific data和用concrete data,如product data, images来填充core data import service定义的structure,可以看de.hybris.platform.commerceservices.dataimport.impl.SampleDataImportService这个类,注意store’s data是怎样导入的,如products, images, cms content等

修改InitialDataSystemSetup类

加入以下代码

package de.hybris.merchandise.initialdata.setup;...import java.util.Arrays;...@SystemSetup(extension = MerchandiseInitialDataConstants.EXTENSIONNAME)public class InitialDataSystemSetup extends AbstractSystemSetup{    ...    public static final String MERCHANDISE = "hybris";    ...    @SystemSetup(type = Type.PROJECT, process = Process.ALL)    public void createProjectData(final SystemSetupContext context)    {        /*     * Add import data for each site you have configured     *      * final List<ImportData> importData = new ArrayList<ImportData>();     *     * final ImportData sampleImportData = new ImportData();     * sampleImportData.setProductCatalogName(SAMPLE_PRODUCT_CATALOG_NAME);     * sampleImportData.setContentCatalogNames(Arrays.asList(SAMPLE_CONTENT_CATALOG_NAME));     * sampleImportData.setStoreNames(Arrays.asList(SAMPLE_STORE_NAME));     * importData.add(sampleImportData);     *      * getCoreDataImportService().execute(this, context, importData);     * getEventService().publishEvent(new CoreDataImportedEvent(context, importData));     *     * getSampleDataImportService().execute(this, context, importData);     * getEventService().publishEvent(new SampleDataImportedEvent(context, importData));     */        final List<ImportData> importData = new ArrayList<ImportData>();        final ImportData hybrisImportData = new ImportData();        hybrisImportData.setProductCatalogName(MERCHANDISE);        hybrisImportData.setContentCatalogNames(Arrays.asList(MERCHANDISE));        hybrisImportData.setStoreNames(Arrays.asList(MERCHANDISE));        importData.add(hybrisImportData);        getCoreDataImportService().execute(this, context, importData);        getEventService().publishEvent(new CoreDataImportedEvent(context, importData));        getSampleDataImportService().execute(this, context, importData);        getEventService().publishEvent(new SampleDataImportedEvent(context, importData));    }...}
原创粉丝点击