dnet-applications/libs/dnet-wf-service/src/main/java/eu/dnetlib/manager/wf/nodes/AbstractJobNode.java

46 lines
1.1 KiB
Java

package eu.dnetlib.manager.wf.nodes;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import eu.dnetlib.manager.wf.workflows.procs.Env;
import eu.dnetlib.manager.wf.workflows.procs.Token;
public abstract class AbstractJobNode extends ProcessNode {
private static final Log log = LogFactory.getLog(SimpleJobNode.class);
protected void doExecute(final Token token) {
try {
log.debug("START NODE: " + getBeanName());
setProgressMessage(getNodeName());
beforeStart(token);
execute(token.getEnv());
beforeCompleted(token);
log.debug("END NODE (SUCCESS): " + getBeanName());
} catch (final Throwable e) {
log.error("got exception while executing workflow node", e);
log.debug("END NODE (FAILED): " + getBeanName());
beforeFailed(token);
token.releaseAsFailed(e);
}
}
abstract protected void execute(final Env env) throws Exception;
protected void beforeStart(final Token token) {
// For optional overwrites
}
protected void beforeCompleted(final Token token) {
// For optional overwrites
}
protected void beforeFailed(final Token token) {
// For optional overwrites
}
}