Project

General

Profile

1
package eu.dnetlib.msro.openaireplus.workflows.nodes.repohi;
2

    
3
import eu.dnetlib.enabling.datasources.common.LocalDatasourceManager;
4
import org.springframework.beans.factory.annotation.Autowired;
5

    
6
import eu.dnetlib.enabling.datasources.LocalOpenaireDatasourceManager;
7
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
8
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
9
import eu.dnetlib.msro.workflows.nodes.repohi.UpdateMetaWfStatusJobNode;
10
import org.springframework.beans.factory.annotation.Required;
11

    
12
public class UpdateOpenaireMetaWfStatusJobNode extends UpdateMetaWfStatusJobNode {
13

    
14
	@Autowired
15
	private UniqueServiceLocator serviceLocator;
16

    
17
	@Autowired
18
	private LocalDatasourceManager dsManager;
19

    
20
	@Override
21
	protected void updateDatasource(final String dsId, final String ifaceId) throws Exception {
22

    
23
		final String openaireDsId = serviceLocator.getService(ISLookUpService.class).getResourceProfileByQuery(
24
				"/*[.//RESOURCE_IDENTIFIER/@value = '" + dsId + "']//FIELD/value[../key='OpenAireDataSourceId']/text()");
25

    
26
		if (openaireDsId.equals("openaire____::bootstrap")) {
27
			super.updateDatasource(dsId, ifaceId);
28
		} else {
29
			dsManager.setManaged(openaireDsId, true);
30
			dsManager.setActive(openaireDsId, ifaceId, true);
31
		}
32
	}
33

    
34

    
35
}
(2-2/2)