/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.publication.task.impl.process;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ewcms.publication.PublishException;
import com.ewcms.publication.deploy.DeployOperatorable;
import com.ewcms.publication.task.impl.event.NoneEvent;
import com.ewcms.publication.task.impl.event.TaskEventable;
/**
* 实现任务过程
*
* @author wangwei
*/
public abstract class TaskProcessBase implements TaskProcessable{
private final static Logger logger = LoggerFactory.getLogger(TaskProcessBase.class);
private TaskEventable event =new NoneEvent();
@Override
public Boolean execute(DeployOperatorable operator){
try{
String uri = process(operator);
event.success(uri);
return Boolean.TRUE;
}catch(Exception e){
logger.error("task execute {}", e.getMessage());
event.error(e);
return Boolean.FALSE;
}
}
/**
* 执行发布过程
*
* @param operator 发布操作对象
* @return 发布资源路径
* @throws PublishException
*/
protected abstract String process(DeployOperatorable operator)throws PublishException;
@Override
public void registerEvent(TaskEventable event) {
this.event = event;
}
}