17 |
import dk.thoerup.circuitbreaker.CircuitBreaker; |
import dk.thoerup.circuitbreaker.CircuitBreaker; |
18 |
import dk.thoerup.circuitbreaker.CircuitBreakerManager; |
import dk.thoerup.circuitbreaker.CircuitBreakerManager; |
19 |
import dk.thoerup.traininfoservice.Statistics; |
import dk.thoerup.traininfoservice.Statistics; |
20 |
|
import dk.thoerup.traininfoservice.TraininfoSettings;; |
21 |
import dk.thoerup.traininfoservice.db.StationDAO; |
import dk.thoerup.traininfoservice.db.StationDAO; |
22 |
|
|
23 |
public class DepartureFetcher { |
public class DepartureFetcher { |
39 |
|
|
40 |
StationDAO stationDao = new StationDAO(); |
StationDAO stationDao = new StationDAO(); |
41 |
|
|
42 |
private boolean useAzureSite; |
|
43 |
private int replyTimeout; |
private TraininfoSettings settings; |
44 |
|
|
45 |
public DepartureFetcher(boolean azureSite, int cacheTimeout, int replyTimeout) { |
public DepartureFetcher(TraininfoSettings settings) { |
46 |
this.replyTimeout = replyTimeout; |
this.settings = settings; |
47 |
useAzureSite = azureSite; |
cache = new TimeoutMap<String,DepartureBean>( settings.getCacheTimeout() ); |
|
cache = new TimeoutMap<String,DepartureBean>(cacheTimeout); |
|
48 |
} |
} |
49 |
|
|
50 |
|
|
101 |
} |
} |
102 |
|
|
103 |
public DepartureBean lookupDepartures(String stationcode, TrainType type, boolean arrival) throws Exception { |
public DepartureBean lookupDepartures(String stationcode, TrainType type, boolean arrival) throws Exception { |
104 |
if (useAzureSite == true) { |
if ( settings.getUseAzureSite() == true) { |
105 |
return lookupDeparturesAzureSite(stationcode, type, arrival); |
return lookupDeparturesAzureSite(stationcode, type, arrival); |
106 |
} else { |
} else { |
107 |
return lookupDeparturesWwwSite(stationcode, type, arrival); |
return lookupDeparturesWwwSite(stationcode, type, arrival); |
143 |
String uri = "http://trafikinfo.bane.dk/Trafikinformation/AfgangAnkomst/" + arrivalDeparture + "/" + stationcode + "/" + typeString + "/UdvidetVisning"; |
String uri = "http://trafikinfo.bane.dk/Trafikinformation/AfgangAnkomst/" + arrivalDeparture + "/" + stationcode + "/" + typeString + "/UdvidetVisning"; |
144 |
|
|
145 |
logger.fine("URI: " + uri); |
logger.fine("URI: " + uri); |
146 |
JsoupInvocation wrapper = new JsoupInvocation( new URL(uri), replyTimeout); |
JsoupInvocation wrapper = new JsoupInvocation( new URL(uri), settings.getReplyTimeout() ); |
147 |
CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker("banedk"); |
CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker("banedk"); |
148 |
|
|
149 |
Document page = (Document) breaker.invoke(wrapper); |
Document page = (Document) breaker.invoke(wrapper); |
249 |
logger.fine("URI:" + uri); |
logger.fine("URI:" + uri); |
250 |
|
|
251 |
|
|
252 |
JsoupInvocation wrapper = new JsoupInvocation( new URL(uri), replyTimeout); |
JsoupInvocation wrapper = new JsoupInvocation( new URL(uri), settings.getReplyTimeout() ); |
253 |
CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker("banedk"); |
CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker("banedk"); |
254 |
|
|
255 |
Element page = (Element) breaker.invoke(wrapper); |
Element page = (Element) breaker.invoke(wrapper); |