/[projects]/android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/TimetableFetcher.java
ViewVC logotype

Diff of /android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/TimetableFetcher.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 353 by torben, Tue Sep 29 15:49:19 2009 UTC revision 421 by torben, Thu Oct 8 12:19:42 2009 UTC
# Line 7  import java.util.ArrayList; Line 7  import java.util.ArrayList;
7  import java.util.List;  import java.util.List;
8  import java.util.logging.Logger;  import java.util.logging.Logger;
9    
10  import com.gargoylesoftware.htmlunit.*;  import com.gargoylesoftware.htmlunit.Page;
11  import com.gargoylesoftware.htmlunit.html.*;  import com.gargoylesoftware.htmlunit.RefreshHandler;
12    import com.gargoylesoftware.htmlunit.WebClient;
13    import com.gargoylesoftware.htmlunit.html.DomNodeList;
14    import com.gargoylesoftware.htmlunit.html.HtmlElement;
15    import com.gargoylesoftware.htmlunit.html.HtmlPage;
16    
17    import dk.thoerup.curcuitbreaker.CircuitBreaker;
18    import dk.thoerup.curcuitbreaker.CircuitBreakerManager;
19    
20  public class TimetableFetcher {  public class TimetableFetcher {
21                    
# Line 17  public class TimetableFetcher { Line 24  public class TimetableFetcher {
24                  }                  }
25                                    
26          }          }
27                    
28            TimeoutCache<String, List<TimetableBean>> cache = new TimeoutCache<String,List<TimetableBean>>(120 * 1000);
29            
30                    
31          Logger logger = Logger.getLogger(TimetableFetcher.class.getName());          Logger logger = Logger.getLogger(TimetableFetcher.class.getName());
32            
33            
34            List<TimetableBean> cachedLookupTimetable(String trainID, String type) throws Throwable {
35                    String key = trainID+type;
36                    List<TimetableBean> list = cache.get(key);
37                    
38                    if (list == null) {
39                            list = lookupTimetable(trainID,type);
40                            cache.put(key, list);
41                    } else {
42                            logger.info("Timetable: Cache hit " + trainID);
43                    }
44                    return list;
45            }
46    
47          List<TimetableBean> lookupTimetable(String trainID, String type) throws Exception {          List<TimetableBean> lookupTimetable(String trainID, String type) throws Throwable {            
48                  List<TimetableBean> timetableList = new ArrayList<TimetableBean>();                  List<TimetableBean> timetableList = new ArrayList<TimetableBean>();
49                                    
50                  String url = "http://www.bane.dk/visRute.asp?W=" + type + "&TogNr=" + trainID + "&artikelId=4276";                  String url = "http://www.bane.dk/visRute.asp?W=" + type + "&TogNr=" + trainID + "&artikelId=4276";
51                                                                    
52    
53              final WebClient webClient = new WebClient();              final WebClient webClient = new WebClient();
54              webClient.setTimeout(1000);              webClient.setTimeout(2500);
55              webClient.setJavaScriptEnabled(false);                      webClient.setJavaScriptEnabled(false);        
56              webClient.setRefreshHandler( new NullRefreshHandler() );              webClient.setRefreshHandler( new NullRefreshHandler() );
57              webClient.setCssEnabled(false);              webClient.setCssEnabled(false);
58                            
59                            
60              final HtmlPage page = webClient.getPage(url);              BanedkInvocation wrapper = new BanedkInvocation(webClient, url);
61                CircuitBreaker breaker = CircuitBreakerManager.getManager().getCircuitBreaker("banedk");
62                            
63                HtmlPage page = (HtmlPage) breaker.invoke(wrapper);
64                        
65                            
66              boolean currentStation = false;              boolean currentStation = false;
67              boolean currentStationSaved = false;              boolean currentStationSaved = false;

Legend:
Removed from v.353  
changed lines
  Added in v.421

  ViewVC Help
Powered by ViewVC 1.1.20