AriadnePlus/dnet-ariadneplus/src/main/java/eu/dnetlib/ariadneplus/workflows/nodes/ReadVirtuosoJobNode.java

88 lines
2.6 KiB
Java

package eu.dnetlib.ariadneplus.workflows.nodes;
import eu.dnetlib.enabling.resultset.factory.ResultSetFactory;
import eu.dnetlib.msro.workflows.graph.Arc;
import eu.dnetlib.msro.workflows.nodes.AsyncJobNode;
import eu.dnetlib.msro.workflows.procs.Env;
import eu.dnetlib.rmi.common.ResultSet;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
/**
* Created by Alessia Bardi on 26/01/2018.
*
* @author Alessia Bardi
*/
public class ReadVirtuosoJobNode extends AsyncJobNode {
private static final Log log = LogFactory.getLog(ReadVirtuosoJobNode.class);
private String datasourceName;
private String datasourceInterface;
private String virtuosoReaderAPIUrl;
private int readTimeout = 30000;
@Autowired
private ResultSetFactory rsFactory;
@Override
protected String execute(final Env env){
log.info("Using virtuoso reader at : " + getVirtuosoReaderAPIUrl());
RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());
VirtuosoAriadnePlusIterator iterator = new VirtuosoAriadnePlusIterator().datasourceInterface(getDatasourceInterface()).virtuosoReaderAPIUrl(getVirtuosoReaderAPIUrl()).datasourceName(getDatasourceName()).restTemplate(restTemplate);
ResultSet<String> rs = rsFactory.createResultSet(() -> iterator);
env.setAttribute("virtuoso_rs", rs);
return Arc.DEFAULT_ARC;
}
protected ClientHttpRequestFactory getClientHttpRequestFactory() {
HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
clientHttpRequestFactory.setReadTimeout(readTimeout);
return clientHttpRequestFactory;
}
public String getDatasourceName() {
return datasourceName;
}
public void setDatasourceName(final String datasourceName) {
this.datasourceName = datasourceName;
}
public String getDatasourceInterface() {
return datasourceInterface;
}
public void setDatasourceInterface(final String datasourceInterface) {
this.datasourceInterface = datasourceInterface;
}
public String getVirtuosoReaderAPIUrl() {
return virtuosoReaderAPIUrl;
}
public void setVirtuosoReaderAPIUrl(final String virtuosoReaderAPIUrl) {
this.virtuosoReaderAPIUrl = virtuosoReaderAPIUrl;
}
public int getReadTimeout() {
return readTimeout;
}
public void setReadTimeout(final int readTimeout) {
this.readTimeout = readTimeout;
}
public ResultSetFactory getRsFactory() {
return rsFactory;
}
}