Revision 40094
Added by Michele Artini over 8 years ago
BlackboardWorkflowJobListener.java | ||
---|---|---|
3 | 3 |
import java.util.Map; |
4 | 4 |
import java.util.Map.Entry; |
5 | 5 |
|
6 |
import org.apache.commons.logging.Log; |
|
7 |
import org.apache.commons.logging.LogFactory; |
|
8 |
|
|
9 |
import com.googlecode.sarasvati.Arc; |
|
10 |
import com.googlecode.sarasvati.Engine; |
|
11 |
import com.googlecode.sarasvati.NodeToken; |
|
12 |
import com.googlecode.sarasvati.env.Env; |
|
13 |
|
|
14 | 6 |
import eu.dnetlib.enabling.tools.blackboard.AbstractBlackboardJobListener; |
15 | 7 |
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob; |
8 |
import eu.dnetlib.msro.workflows.graph.Arc; |
|
9 |
import eu.dnetlib.msro.workflows.graph.Env; |
|
10 |
import eu.dnetlib.msro.workflows.graph.Token; |
|
16 | 11 |
import eu.dnetlib.msro.workflows.util.WorkflowsConstants; |
12 |
import org.apache.commons.logging.Log; |
|
13 |
import org.apache.commons.logging.LogFactory; |
|
17 | 14 |
|
18 | 15 |
public class BlackboardWorkflowJobListener extends AbstractBlackboardJobListener { |
19 | 16 |
|
... | ... | |
23 | 20 |
private static final Log log = LogFactory.getLog(BlackboardWorkflowJobListener.class); |
24 | 21 |
|
25 | 22 |
/** |
26 |
* workflow engine. |
|
27 |
*/ |
|
28 |
private Engine engine; |
|
29 |
|
|
30 |
/** |
|
31 | 23 |
* workflow node token. |
32 | 24 |
*/ |
33 |
private NodeToken token;
|
|
25 |
private Token token; |
|
34 | 26 |
|
27 |
public BlackboardWorkflowJobListener(final Token token) { |
|
28 |
super(); |
|
29 |
this.token = token; |
|
30 |
} |
|
31 |
|
|
35 | 32 |
@Override |
36 | 33 |
protected void onDone(final BlackboardJob job) { |
37 | 34 |
log.debug("Blackboard workflow node DONE"); |
38 | 35 |
complete(job, Arc.DEFAULT_ARC); |
39 | 36 |
} |
40 | 37 |
|
41 |
public BlackboardWorkflowJobListener(final Engine engine, final NodeToken token) { |
|
42 |
super(); |
|
43 |
this.engine = engine; |
|
44 |
this.token = token; |
|
45 |
} |
|
46 |
|
|
47 | 38 |
@Override |
48 | 39 |
final public void processJob(final BlackboardJob job) { |
49 |
token.getEnv().setTransientAttribute(WorkflowsConstants.BLACKBOARD_JOB, job);
|
|
40 |
token.getEnv().setAttribute(WorkflowsConstants.BLACKBOARD_JOB, job); |
|
50 | 41 |
super.processJob(job); |
51 | 42 |
} |
52 | 43 |
|
... | ... | |
63 | 54 |
|
64 | 55 |
populateEnv(env, job.getParameters()); |
65 | 56 |
|
66 |
engine.complete(token, arc);
|
|
67 |
engine.executeQueuedArcTokens(token.getProcess());
|
|
57 |
token.setNextArc(arc);
|
|
58 |
token.release();
|
|
68 | 59 |
} |
69 | 60 |
|
70 | 61 |
protected void populateEnv(final Env env, Map<String, String> responseParams) { |
... | ... | |
75 | 66 |
|
76 | 67 |
@Override |
77 | 68 |
protected void onOngoing(final BlackboardJob job) { |
69 |
log.debug("Blackboard workflow node ONGOING"); |
|
78 | 70 |
token.getEnv().setAttribute(WorkflowsConstants.BLACKBOARD_IS_GOING, true); |
79 | 71 |
} |
80 | 72 |
|
81 |
public Engine getEngine() { |
|
82 |
return engine; |
|
83 |
} |
|
84 |
|
|
85 |
public void setEngine(final Engine engine) { |
|
86 |
this.engine = engine; |
|
87 |
} |
|
88 |
|
|
89 |
public NodeToken getToken() { |
|
73 |
public Token getToken() { |
|
90 | 74 |
return token; |
91 | 75 |
} |
92 | 76 |
|
93 |
public void setToken(final NodeToken token) {
|
|
77 |
public void setToken(final Env env) {
|
|
94 | 78 |
this.token = token; |
95 | 79 |
} |
96 | 80 |
|
Also available in: Unified diff
partial reimplementation of the wf engine