Project

General

Profile

« Previous | Next » 

Revision 62135

merge from eosc_services

View differences:

ObtainOpenaireDataSourceParamsJobNode.java
1 1
package eu.dnetlib.msro.openaireplus.workflows.nodes;
2 2

  
3
import javax.annotation.Resource;
3
import org.springframework.beans.factory.annotation.Autowired;
4 4

  
5 5
import com.googlecode.sarasvati.Arc;
6 6
import com.googlecode.sarasvati.NodeToken;
7
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
8
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
7

  
8
import eu.dnetlib.enabling.datasources.common.Api;
9
import eu.dnetlib.enabling.datasources.common.Datasource;
10
import eu.dnetlib.enabling.datasources.common.LocalDatasourceManager;
9 11
import eu.dnetlib.miscutils.datetime.DateUtils;
10 12
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
11 13
import eu.dnetlib.msro.workflows.util.WorkflowsConstants;
......
14 16

  
15 17
	private String providerId;
16 18

  
17
	@Resource
18
	private UniqueServiceLocator serviceLocator;
19
	@Autowired
20
	private LocalDatasourceManager<Datasource<?, ?, ?>, Api<?>> dsManager;
19 21

  
20 22
	@Override
21 23
	protected String execute(final NodeToken token) throws Exception {
22
		final String query = "let $x := /*[.//RESOURCE_IDENTIFIER/@value='" + providerId + "']//EXTRA_FIELDS\n"
23
				+ "return concat($x/FIELD[./key='OpenAireDataSourceId']/value, ' @@@ ', $x/FIELD[./key='NamespacePrefix']/value)";
24
		final String nsPrefix = dsManager.getDs(providerId).getNamespaceprefix();
24 25

  
25
		final String[] arr = serviceLocator.getService(ISLookUpService.class).getResourceProfileByQuery(query).split("@@@");
26
		token.getEnv().setAttribute("parentDatasourceId", providerId);
26 27

  
27
		final String origId = arr[0].trim();
28
		final String nsPrefix = arr[1].trim();
29
		//this is needed by the mdbuilder
30
		//TODO: update mdbuilder to use the env attributes below, whose names are defined in WorkflowConstants
31
		token.getEnv().setAttribute("parentDatasourceId", origId);
32 28
		token.getEnv().setAttribute("namespacePrefix", nsPrefix);
33 29
		token.getEnv().setAttribute("dateOfCollection", DateUtils.now_ISO8601());
34 30

  
35
		//these are needed for validation and fill hostedby
36
		token.getEnv().setAttribute(WorkflowsConstants.DATAPROVIDER_ORIGINALID, origId);
31
		// these are needed for validation and fill hostedby
32
		token.getEnv().setAttribute(WorkflowsConstants.DATAPROVIDER_ORIGINALID, providerId);
37 33
		token.getEnv().setAttribute(WorkflowsConstants.DATAPROVIDER_NAMESPACE_PREFIX, nsPrefix);
38 34

  
39
		token.getFullEnv().setAttribute(WorkflowsConstants.DATAPROVIDER_ORIGINALID, origId);
35
		token.getFullEnv().setAttribute(WorkflowsConstants.DATAPROVIDER_ORIGINALID, providerId);
40 36
		token.getFullEnv().setAttribute(WorkflowsConstants.DATAPROVIDER_NAMESPACE_PREFIX, nsPrefix);
41 37

  
42
		token.getProcess().getEnv().setAttribute(WorkflowsConstants.DATAPROVIDER_ORIGINALID, origId);
38
		token.getProcess().getEnv().setAttribute(WorkflowsConstants.DATAPROVIDER_ORIGINALID, providerId);
43 39
		token.getProcess().getEnv().setAttribute(WorkflowsConstants.DATAPROVIDER_NAMESPACE_PREFIX, nsPrefix);
44 40

  
45 41
		return Arc.DEFAULT_ARC;

Also available in: Unified diff