码迷,mamicode.com
首页 > 其他好文 > 详细

7. ResolvingProjectdataDependenciesBetweenCuppyTra

时间:2015-06-11 17:12:37      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

动机

这个projectdataStadiums.impex 文件假设导入期间存在,这是一个UPDATE操作,这意味着它可能会抛出异常。

cuppytrail/resources/impex/projectdataStadium.impex
...
 
UPDATE Match;id[unique=true];group(competition(code),code)[unique=true];stadium(code)
;1;wc2010:A;Emirates
;2;wc2010:A;Emirates
;3;wc2010:B;Emirates
;4;wc2010:B;VillaPark
 
...

解决方案

    创建SystemSetup类,因为它是由cuppy完成并触发导入wc2010 ProjectData的.

de.hybris.platform.cuppytrail.systemsetup.CuppyTrailSystemSetup.java
/*
 * [y] hybris Platform
 *
 * Copyright (c) 2000-2012 hybris AG
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of hybris
 * ("Confidential Information"). You shall not disclose such Confidential
 * Information and shall use it only in accordance with the terms of the
 * license agreement you entered into with hybris.
 *
 *
 */
package de.hybris.platform.cuppytrail.systemsetup;
 
import de.hybris.platform.core.initialization.SystemSetup;
import de.hybris.platform.core.initialization.SystemSetup.Process;
import de.hybris.platform.core.initialization.SystemSetup.Type;
import de.hybris.platform.core.initialization.SystemSetupContext;
import de.hybris.platform.core.initialization.SystemSetupParameter;
import de.hybris.platform.core.initialization.SystemSetupParameterMethod;
import de.hybris.platform.cuppy.constants.CuppyConstants;
import de.hybris.platform.cuppy.systemsetup.CuppySystemSetup;
 
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
 
/**
 * Class to load the pre-requisite wc2010 data for projectdataStadium.impex imports
 */
@SystemSetup(extension = "cuppytrail", process = Process.ALL, type = Type.PROJECT)
public class CuppyTrailSystemSetup extends CuppySystemSetup
{
 
    @SystemSetup
    public void importPreReqsFromCuppy()
    {
        //set up the items to import
        final Map<String, String[]> params = new HashMap<String, String[]>();
        final String[] p_basics =
        { CuppyConstants.PARAM_BASICS_PLAYERS };
        params.put(CuppyConstants.EXTENSIONNAME + "_" + CuppyConstants.PARAM_BASICS, p_basics);
 
        final String[] p_wc2010 =
        { CuppyConstants.PARAM_WC2010_SETUP };
        params.put(CuppyConstants.EXTENSIONNAME + "_" + CuppyConstants.PARAM_WC2010, p_wc2010);
 
        final SystemSetupContext ctx = new SystemSetupContext(params, Type.PROJECT, Process.ALL, CuppyConstants.EXTENSIONNAME);
 
        //here we use the same context for both. since it is a fairly flat data object, this works just fine
        //super.importBasics(ctx);
        super.importWC2010(ctx);
    }
 
    @Override
    @SystemSetupParameterMethod
    public List<SystemSetupParameter> getSystemSetupParameters()
    {
        return Collections.emptyList();
    }
}

最后,它需要在Spring 注入。

cuppytrail-spring.xml
<bean id="cuppytrailSystemSetup"
    class="de.hybris.platform.cuppytrail.systemsetup.CuppyTrailSystemSetup"
    scope="tenant">
    <property name="importService" ref="importService" />
</bean>

现在,通过在更新过程中选择了ProjectData的这cuppytrail导入将在配置文件中的约定之前被触发。

7. ResolvingProjectdataDependenciesBetweenCuppyTra

标签:

原文地址:http://my.oschina.net/penfin/blog/465613

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!