package com.lemoulinstudio.bikefriend.webapp.quartz;
import com.lemoulinstudio.bikefriend.webapp.StationParser;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import java.io.IOException;
import java.io.InputStream;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
/**
*
* @author Vincent Cantin
*/
public class LoadStationDataJob extends QuartzJobBean {
private Client jerseyClient;
public LoadStationDataJob() {
ClientConfig jerseyClientConfig = new DefaultClientConfig();
this.jerseyClient = Client.create(jerseyClientConfig);
}
private StationParser[] stationParserList;
public void setStationParserList(StationParser[] stationParserList) {
this.stationParserList = stationParserList;
}
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
for (StationParser stationParser : stationParserList) {
WebResource webResource = jerseyClient.resource(stationParser.getDataSourceUri());
try (InputStream inputStream = webResource.get(InputStream.class)) {
stationParser.parseAndLogData(inputStream);
}
catch (Exception e) {}
}
}
}