标签:
动机
这个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