Project

General

Profile

1
package eu.dnetlib.msro.workflows.nodes;
2

    
3
import eu.dnetlib.msro.workflows.procs.Env;
4
import eu.dnetlib.msro.workflows.procs.Token;
5
import org.apache.commons.logging.Log;
6
import org.apache.commons.logging.LogFactory;
7

    
8
/**
9
 * Created by claudio on 13/07/16.
10
 */
11
public abstract class AbstractJobNode extends ProcessNode {
12

    
13
	private static final Log log = LogFactory.getLog(SimpleJobNode.class);
14

    
15
	protected void doExecute(final Token token) {
16
		try {
17
			log.debug("START NODE: " + getBeanName());
18
			beforeStart(token);
19
			final String arc = execute(token.getEnv());
20
			beforeCompleted(token);
21
			log.debug("END NODE (SUCCESS): " + getBeanName());
22

    
23
			token.release(arc);
24

    
25
		} catch (Throwable e) {
26
			log.error("got exception while executing workflow node", e);
27
			log.debug("END NODE (FAILED): " + getBeanName());
28
			beforeFailed(token);
29
			token.releaseAsFailed(e);
30
		}
31
	}
32

    
33
	abstract protected String execute(final Env env) throws Exception;
34

    
35
	protected void beforeStart(final Token token) {
36
		// For optional overwrites
37
	}
38

    
39
	protected void beforeCompleted(final Token token) {
40
		// For optional overwrites
41
	}
42

    
43
	protected void beforeFailed(final Token token) {
44
		// For optional overwrites
45
	}
46

    
47
}
(1-1/10)