Revision 45579
Added by Michele Artini over 6 years ago
modules/dnet-simple-aggregation-worker/trunk/src/main/java/eu/dnetlib/msro/workers/controller/MsroWorkerController.java | ||
---|---|---|
1 |
package eu.dnetlib.msro.workers.controller; |
|
2 |
|
|
3 |
import java.util.List; |
|
4 |
import java.util.stream.Collectors; |
|
5 |
|
|
6 |
import org.springframework.beans.BeansException; |
|
7 |
import org.springframework.context.ApplicationContext; |
|
8 |
import org.springframework.context.ApplicationContextAware; |
|
9 |
import org.springframework.web.bind.annotation.RequestMapping; |
|
10 |
import org.springframework.web.bind.annotation.RestController; |
|
11 |
|
|
12 |
import eu.dnetlib.enabling.annotations.DnetService; |
|
13 |
import eu.dnetlib.enabling.annotations.DnetServiceType; |
|
14 |
import eu.dnetlib.msro.workflows.nodes.AbstractProcessNode; |
|
15 |
import eu.dnetlib.msro.workflows.procs.ProcessNodeDetails; |
|
16 |
import eu.dnetlib.services.BaseService; |
|
17 |
|
|
18 |
@RestController |
|
19 |
@RequestMapping("/worker") |
|
20 |
@DnetService(DnetServiceType.msroWorker) |
|
21 |
public class MsroWorkerController extends BaseService implements ApplicationContextAware { |
|
22 |
|
|
23 |
private ApplicationContext applicationContext; |
|
24 |
|
|
25 |
@RequestMapping("nodes") |
|
26 |
public List<ProcessNodeDetails> listNodes() { |
|
27 |
return applicationContext.getBeansOfType(AbstractProcessNode.class) |
|
28 |
.values() |
|
29 |
.stream() |
|
30 |
.map(Object::getClass) |
|
31 |
.map(ProcessNodeDetails::prepare) |
|
32 |
.collect(Collectors.toList()); |
|
33 |
} |
|
34 |
|
|
35 |
@Override |
|
36 |
public void setApplicationContext(final ApplicationContext applicationContext) throws BeansException { |
|
37 |
this.applicationContext = applicationContext; |
|
38 |
} |
|
39 |
} |
modules/dnet-simple-aggregation-worker/trunk/src/main/java/eu/dnetlib/msro/workflows/procs/WorkflowExecutor.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.io.StringReader; |
4 | 4 |
import java.util.HashMap; |
5 |
import java.util.List; |
|
6 | 5 |
import java.util.Map; |
7 | 6 |
import java.util.concurrent.Executors; |
8 | 7 |
import java.util.concurrent.TimeUnit; |
9 |
import java.util.stream.Collectors; |
|
10 | 8 |
|
11 | 9 |
import javax.annotation.PostConstruct; |
12 | 10 |
|
... | ... | |
17 | 15 |
import org.dom4j.Document; |
18 | 16 |
import org.dom4j.Element; |
19 | 17 |
import org.dom4j.io.SAXReader; |
20 |
import org.springframework.beans.BeansException; |
|
21 | 18 |
import org.springframework.beans.factory.annotation.Autowired; |
22 |
import org.springframework.context.ApplicationContext; |
|
23 |
import org.springframework.context.ApplicationContextAware; |
|
24 |
import org.springframework.web.bind.annotation.RequestMapping; |
|
25 |
import org.springframework.web.bind.annotation.RestController; |
|
19 |
import org.springframework.stereotype.Component; |
|
26 | 20 |
|
27 | 21 |
import eu.dnetlib.clients.is.InformationServiceClient; |
28 | 22 |
import eu.dnetlib.enabling.common.Stoppable; |
... | ... | |
30 | 24 |
import eu.dnetlib.msro.exceptions.MSROException; |
31 | 25 |
import eu.dnetlib.msro.workflows.graph.Graph; |
32 | 26 |
import eu.dnetlib.msro.workflows.graph.GraphLoader; |
33 |
import eu.dnetlib.msro.workflows.nodes.AbstractProcessNode; |
|
34 | 27 |
import eu.dnetlib.msro.workflows.util.ProcessCallback; |
35 | 28 |
import eu.dnetlib.msro.workflows.util.WorkflowsConstants; |
36 | 29 |
|
37 |
/** |
|
38 |
* Created by michele on 20/11/15. |
|
39 |
*/ |
|
40 |
@RestController |
|
41 |
@RequestMapping("/worker") |
|
42 |
public class WorkflowExecutor implements Stoppable, ApplicationContextAware { |
|
30 |
@Component |
|
31 |
public class WorkflowExecutor implements Stoppable { |
|
43 | 32 |
|
44 | 33 |
private static final Log log = LogFactory.getLog(WorkflowExecutor.class); |
45 | 34 |
|
... | ... | |
56 | 45 |
|
57 | 46 |
private boolean paused = false; |
58 | 47 |
|
59 |
private ApplicationContext applicationContext; |
|
60 |
|
|
61 | 48 |
@PostConstruct |
62 | 49 |
public void init() { |
63 | 50 |
|
... | ... | |
73 | 60 |
}, 10, 10, TimeUnit.SECONDS); |
74 | 61 |
} |
75 | 62 |
|
76 |
@RequestMapping("nodes") |
|
77 |
public List<ProcessNodeDetails> listNodes() { |
|
78 |
return applicationContext.getBeansOfType(AbstractProcessNode.class) |
|
79 |
.values() |
|
80 |
.stream() |
|
81 |
.map(Object::getClass) |
|
82 |
.map(ProcessNodeDetails::prepare) |
|
83 |
.collect(Collectors.toList()); |
|
84 |
} |
|
85 |
|
|
86 | 63 |
public String startRepoHiWorkflow(final String profileId, final String dsId, final String iface, final ProcessCallback processCallback, final String parent) |
87 | 64 |
throws Exception { |
88 | 65 |
|
... | ... | |
240 | 217 |
this.paused = paused; |
241 | 218 |
} |
242 | 219 |
|
243 |
@Override |
|
244 |
public void setApplicationContext(final ApplicationContext applicationContext) throws BeansException { |
|
245 |
this.applicationContext = applicationContext; |
|
246 |
} |
|
247 | 220 |
} |
Also available in: Unified diff