Project

General

Profile

« Previous | Next » 

Revision 40099

partial reimplementation of the wf engine

View differences:

BlackboardWorkflowJobListener.java
6 6
import eu.dnetlib.enabling.tools.blackboard.AbstractBlackboardJobListener;
7 7
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
8 8
import eu.dnetlib.msro.workflows.graph.Arc;
9
import eu.dnetlib.msro.workflows.graph.Env;
10
import eu.dnetlib.msro.workflows.graph.Token;
9
import eu.dnetlib.msro.workflows.procs.Env;
10
import eu.dnetlib.msro.workflows.procs.Token;
11 11
import eu.dnetlib.msro.workflows.util.WorkflowsConstants;
12 12
import org.apache.commons.logging.Log;
13 13
import org.apache.commons.logging.LogFactory;
......
32 32
	@Override
33 33
	protected void onDone(final BlackboardJob job) {
34 34
		log.debug("Blackboard workflow node DONE");
35
		complete(job, Arc.DEFAULT_ARC);
35
		responseToEnv(token.getEnv(), job.getParameters());
36

  
37
		token.setNextArc(Arc.DEFAULT_ARC);
38
		token.release();
36 39
	}
37 40

  
38 41
	@Override
......
44 47
	@Override
45 48
	final protected void onFailed(final BlackboardJob job) {
46 49
		log.warn("Blackboard workflow node FAILED: " + job.getError());
47
		token.getEnv().setAttribute(WorkflowsConstants.SYSTEM_HAS_FAILED, true);
50
		responseToEnv(token.getEnv(), job.getParameters());
48 51
		token.getEnv().setAttribute(WorkflowsConstants.SYSTEM_ERROR, job.getError());
49
		complete(job, "failed");
50
	}
51

  
52
	final protected void complete(final BlackboardJob job, final String arc) {
53
		final Env env = token.getEnv();
54

  
55
		populateEnv(env, job.getParameters());
56

  
57
		token.setNextArc(arc);
58 52
		token.release();
59 53
	}
60

  
61
	protected void populateEnv(final Env env, Map<String, String> responseParams) {
54
	
55
	protected void responseToEnv(final Env env, Map<String, String> responseParams) {
62 56
		for (Entry<String, String> entry : responseParams.entrySet()) {
63 57
			env.setAttribute(WorkflowsConstants.BLACKBOARD_PARAM_PREFIX + entry.getKey(), entry.getValue());
64 58
		}

Also available in: Unified diff