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

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

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

revision 307 by torben, Thu Sep 10 18:11:53 2009 UTC revision 585 by torben, Fri Feb 5 19:15:12 2010 UTC
# Line 5  import java.sql.Connection; Line 5  import java.sql.Connection;
5  import java.sql.ResultSet;  import java.sql.ResultSet;
6  import java.sql.Statement;  import java.sql.Statement;
7  import java.util.List;  import java.util.List;
8    import java.util.logging.Level;
9    import java.util.logging.Logger;
10    
11  import javax.servlet.ServletException;  import javax.servlet.ServletException;
12  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServlet;
# Line 22  import org.w3c.dom.DOMImplementation; Line 24  import org.w3c.dom.DOMImplementation;
24  import org.w3c.dom.Document;  import org.w3c.dom.Document;
25  import org.w3c.dom.Element;  import org.w3c.dom.Element;
26    
27    import dk.thoerup.circuitbreaker.CircuitBreakerException;
28  import dk.thoerup.traininfoservice.DBConnection;  import dk.thoerup.traininfoservice.DBConnection;
29    
30  /**  /**
# Line 29  import dk.thoerup.traininfoservice.DBCon Line 32  import dk.thoerup.traininfoservice.DBCon
32   */   */
33  public class DepartureServlet extends HttpServlet {  public class DepartureServlet extends HttpServlet {
34          private static final long serialVersionUID = 1L;          private static final long serialVersionUID = 1L;
35            
36            Logger logger = Logger.getLogger( DepartureServlet.class.getName() );
37    
38          DepartureFetcher fetcher = new DepartureFetcher();          DepartureFetcher fetcher;
39      TransformerFactory transformerFactory = TransformerFactory.newInstance();      TransformerFactory transformerFactory = TransformerFactory.newInstance();
40          DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();          DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
41                    
42    
43            @Override
44            public void init() throws ServletException {
45                    super.init();
46    
47                    boolean useTempSite =  Boolean.parseBoolean( getServletContext().getInitParameter("usetempsite") );
48                    int cacheTimeout =  Integer.parseInt( getServletContext().getInitParameter("cache_timeout") );
49                    logger.info( "DepartureServlet, use temp site=" + useTempSite + ", cache=" + cacheTimeout);
50                    fetcher = new DepartureFetcher(useTempSite, cacheTimeout);
51            }
52    
53            @Override
54          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
55                    if (req.getParameter("station") == null) {
56                            resp.sendError(400, "not enough parameters");
57                            return;
58                    }
59                    
60                  int station = Integer.parseInt( req.getParameter("station") );                  int station = Integer.parseInt( req.getParameter("station") );
61                  String format = req.getParameter("format");                  String format = req.getParameter("format");
62    
# Line 44  public class DepartureServlet extends Ht Line 65  public class DepartureServlet extends Ht
65                  String stationName = getStationName(station);                  String stationName = getStationName(station);
66    
67                  try {                  try {
68                          beans = fetcher.lookupDepartures(station);                          beans = fetcher.cachedLookupDepartures(station);
69                  } catch (Exception e) {                  } catch (java.io.IOException ioe) {
70                          throw new ServletException(e);                          logger.warning("Read failed, station="+station + ". " + ioe.getMessage() );
71                            resp.sendError(500);
72                            return;
73                    } catch (CircuitBreakerException cbe) {
74                            logger.warning("Circuitbreaker - failing fast");
75                            resp.sendError(500);
76                            return;
77                    } catch (Exception e) {                
78                            logger.log(Level.WARNING, "Unknown exception, station=" +station, e);
79                            resp.sendError(500);
80                            return;
81                  }                  }
82                                    
83                  resp.setDateHeader("Expires", 0);                  resp.setDateHeader("Expires", 0);
# Line 56  public class DepartureServlet extends Ht Line 87  public class DepartureServlet extends Ht
87                          resp.setContentType("text/xml");                          resp.setContentType("text/xml");
88                          resp.getWriter().print( formatXml(beans, stationName) );                          resp.getWriter().print( formatXml(beans, stationName) );
89                  } else if (format.equalsIgnoreCase("html")) {                  } else if (format.equalsIgnoreCase("html")) {
90                            
91                            String advStr = req.getParameter("advanced");
92                            boolean advanced = advStr != null ? Boolean.parseBoolean(advStr) : false;
93                            
94                            req.setAttribute("advanced", advanced);
95                          req.setAttribute("stationname", stationName );                          req.setAttribute("stationname", stationName );
96                          req.setAttribute("departurebeans", beans);                          req.setAttribute("departurebeans", beans);
97                          req.setAttribute("stationID", station );                          req.setAttribute("stationID", station );

Legend:
Removed from v.307  
changed lines
  Added in v.585

  ViewVC Help
Powered by ViewVC 1.1.20