Project

General

Profile

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
}
    (1-1/1)