Project

General

Profile

« Previous | Next » 

Revision 40969

implemented publisher feature on DLI

View differences:

ObtainDataSourceParamsJobNode.java
1 1
package eu.dnetlib.msro.dli.workflows.nodes;
2 2

  
3
import javax.annotation.Resource;
4

  
5 3
import com.googlecode.sarasvati.Arc;
6 4
import com.googlecode.sarasvati.NodeToken;
7

  
8 5
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
9 6
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
10 7
import eu.dnetlib.miscutils.datetime.DateUtils;
11 8
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
9
import eu.dnetlib.msro.workflows.util.WorkflowsConstants;
10
import org.apache.commons.logging.Log;
11
import org.apache.commons.logging.LogFactory;
12 12

  
13
import javax.annotation.Resource;
14

  
13 15
public class ObtainDataSourceParamsJobNode extends SimpleJobNode {
14 16

  
15
	private String providerId;
16 17

  
17
	@Resource
18
	private UniqueServiceLocator serviceLocator;
18
    private static final Log log = LogFactory.getLog(ObtainDataSourceParamsJobNode.class);
19
    private String providerId;
19 20

  
20
	@Override
21
	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='DataSourceId']/value, ' @@@ ', $x/FIELD[./key='NamespacePrefix']/value)";
21
    @Resource
22
    private UniqueServiceLocator serviceLocator;
24 23

  
25
		final String[] arr = serviceLocator.getService(ISLookUpService.class).getResourceProfileByQuery(query).split("@@@");
24
    @Override
25
    protected String execute(final NodeToken token) throws Exception {
26
        final String query = "let $x := /*[.//RESOURCE_IDENTIFIER/@value='" + providerId + "']//EXTRA_FIELDS\n"
27
                + "return concat($x/FIELD[./key='DataSourceId']/value, ' @@@ ', $x/FIELD[./key='NamespacePrefix']/value)";
26 28

  
27
		token.getEnv().setAttribute("parentDatasourceId", arr[0].trim());
28
		token.getEnv().setAttribute("namespacePrefix", arr[1].trim());
29
		token.getEnv().setAttribute("dateOfCollection", DateUtils.now_ISO8601());
29
        final String[] arr = serviceLocator.getService(ISLookUpService.class).getResourceProfileByQuery(query).split("@@@");
30 30

  
31
		return Arc.DEFAULT_ARC;
32
	}
31
        token.getEnv().setAttribute("parentDatasourceId", arr[0].trim());
32
        token.getEnv().setAttribute("namespacePrefix", arr[1].trim());
33
        token.getEnv().setAttribute("dateOfCollection", DateUtils.now_ISO8601());
33 34

  
34
	public String getProviderId() {
35
		return providerId;
36
	}
35
        log.info(WorkflowsConstants.DATAPROVIDER_ID + " : " + token.getFullEnv().getAttribute(WorkflowsConstants.DATAPROVIDER_ID));
37 36

  
38
	public void setProviderId(final String providerId) {
39
		this.providerId = providerId;
40
	}
37
        return Arc.DEFAULT_ARC;
38
    }
41 39

  
40
    public String getProviderId() {
41
        return providerId;
42
    }
43

  
44
    public void setProviderId(final String providerId) {
45
        this.providerId = providerId;
46
    }
47

  
42 48
}

Also available in: Unified diff