3 |
import java.io.IOException; |
import java.io.IOException; |
4 |
import java.io.PrintWriter; |
import java.io.PrintWriter; |
5 |
import java.net.URL; |
import java.net.URL; |
6 |
|
import java.net.URLDecoder; |
7 |
import java.net.URLEncoder; |
import java.net.URLEncoder; |
8 |
import java.util.Map; |
import java.util.Map; |
9 |
import java.util.Set; |
import java.util.Set; |
37 |
|
|
38 |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
39 |
try { |
try { |
40 |
|
String data = ""; |
41 |
String data = getData(request); |
String uri = request.getParameter("uri"); |
42 |
|
|
43 |
|
if (uri != null) { |
44 |
|
boolean require = Boolean.parseBoolean( request.getParameter("requiredata") ); |
45 |
|
data = hasData(uri, require); |
46 |
|
} else { |
47 |
|
data = getData(request); |
48 |
|
} |
49 |
|
|
50 |
PrintWriter out = response.getWriter(); |
PrintWriter out = response.getWriter(); |
51 |
out.print(data); |
out.print(data); |
52 |
|
|
|
System.out.println("CompareStations completed"); |
|
53 |
} catch (Exception e) { |
} catch (Exception e) { |
54 |
throw new ServletException(e); |
throw new ServletException(e); |
55 |
} |
} |
65 |
|
|
66 |
StringBuilder sb = new StringBuilder(); |
StringBuilder sb = new StringBuilder(); |
67 |
sb.append("<html>"); |
sb.append("<html>"); |
68 |
sb.append("<head></head>"); |
sb.append("<head>"); |
69 |
|
sb.append("<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script>\n"); |
70 |
|
sb.append("<script type='text/javascript' src='compareloader.js'></script>\n"); |
71 |
|
|
72 |
|
sb.append("</head>"); |
73 |
sb.append("<body>"); |
sb.append("<body>"); |
74 |
|
|
75 |
StationDAO dao = new StationDAO(); |
StationDAO dao = new StationDAO(); |
92 |
sb.append("<ul>"); |
sb.append("<ul>"); |
93 |
|
|
94 |
StationBean bean = dao.dumpAll(); |
StationBean bean = dao.dumpAll(); |
95 |
for (StationEntry station : bean.entries) { |
for (StationEntry station : bean.entries) { |
96 |
if (station.isRegional() || station.isStrain()) { |
if (station.isRegional() || station.isStrain()) { |
97 |
if (station.isRegional() ) { |
String href = banedkStations.get(station.getName() ); |
98 |
String id = URLEncoder.encode(station.getRegional(), "ISO-8859-1"); |
String hrefCode = "null"; |
99 |
String uri = "/Trafikinformation/AfgangAnkomst/Afgang/" + id + "/Fjerntog"; |
if ( href != null) { |
100 |
|
String hrefParts[] = href.split("/"); |
101 |
|
hrefCode = URLDecoder.decode(hrefParts[4], "UTF-8"); |
102 |
|
} |
103 |
|
|
104 |
String data = hasData(uri, true); |
String id = ""; |
105 |
|
String uri = ""; |
106 |
sb.append( "<li><a target='_blank' href='http://trafikinfo.bane.dk" + uri + "'>" + station.getName() + "</a> " + data + "</li>\n" ); |
if (station.isRegional() ) { |
107 |
|
id = station.getRegional(); |
108 |
|
uri = "/Trafikinformation/AfgangAnkomst/Afgang/" + id + "/Fjerntog"; |
109 |
} |
} |
110 |
if (station.isStrain() ) { |
if (station.isStrain() ) { |
111 |
String id = URLEncoder.encode(station.getStrain(), "ISO-8859-1"); |
id = station.getStrain(); |
112 |
String uri = "/Trafikinformation/AfgangAnkomst/Afgang/" + id + "/S-Tog"; |
uri = "/Trafikinformation/AfgangAnkomst/Afgang/" + id + "/S-Tog"; |
113 |
|
} |
114 |
|
|
115 |
String data = hasData(uri, true); |
String idMismatch = ""; |
116 |
|
if (!hrefCode.equals(id) ) { |
117 |
sb.append( "<li><a target='_blank' href='http://trafikinfo.bane.dk" + uri + "'>" + station.getName() + "</a> " + data + "</li>\n" ); |
idMismatch = " ID Mismatch (DB="+id+ ", BaneDK=" + hrefCode + ")"; |
118 |
} |
} |
119 |
|
|
120 |
|
|
121 |
|
sb.append( "<li><a target='_blank' href='http://trafikinfo.bane.dk" + uri + "'>" + station.getName() + "</a> <span class='uri' requiredata='true' uri='" + uri + "'></span> " + idMismatch + "</li>\n" ); |
122 |
|
|
123 |
dbStations.add(station.getName()); |
dbStations.add(station.getName()); |
124 |
} |
} |
125 |
|
|
126 |
|
|
127 |
} |
} |
128 |
sb.append("</ul>\n"); |
sb.append("</ul>\n"); |
129 |
|
|
144 |
for(String s : tmpBanedkStations) { |
for(String s : tmpBanedkStations) { |
145 |
String uri = banedkStations.get(s); |
String uri = banedkStations.get(s); |
146 |
String disabled = ""; |
String disabled = ""; |
147 |
String data = hasData(uri, false); |
//String data = hasData(uri, false); |
148 |
|
|
149 |
try { |
try { |
150 |
boolean tmpdisabled = dao.hasDisabledStation(s); |
boolean tmpdisabled = dao.hasDisabledStation(s); |
154 |
throw new ServletException(e); |
throw new ServletException(e); |
155 |
} |
} |
156 |
|
|
157 |
sb.append( "<li><a target='_blank' href='http://trafikinfo.bane.dk" + uri + "'>" + s + "</a> " + data + "" + disabled + "</li>\n" ); |
sb.append( "<li><a target='_blank' href='http://trafikinfo.bane.dk" + uri + "'>" + s + "</a> <span class='uri' requiredata='false' uri='" + uri + "'></span>" + disabled + "</li>\n" ); |
158 |
} |
} |
159 |
sb.append("</ul>"); |
sb.append("</ul>"); |
160 |
|
|
168 |
sb.append( "<li>" + s + "</li>\n" ); |
sb.append( "<li>" + s + "</li>\n" ); |
169 |
} |
} |
170 |
sb.append("</ul>"); |
sb.append("</ul>"); |
171 |
|
sb.append("<font size='1' id='antal'></font>"); |
172 |
sb.append("</body></html>\n"); |
sb.append("</body></html>\n"); |
173 |
|
|
174 |
return sb.toString(); |
return sb.toString(); |
195 |
String hasDataWorker(String uri, boolean requiredata) throws Exception { |
String hasDataWorker(String uri, boolean requiredata) throws Exception { |
196 |
String returnVal = ""; |
String returnVal = ""; |
197 |
|
|
198 |
|
String parts[] = uri.split("\\/"); |
199 |
|
String id = URLEncoder.encode(parts[4], "ISO-8859-1"); |
200 |
|
String uri2 = "/TrafikInformation/AfgangAnkomst/Afgang/" + id + "/" + parts[5]; |
201 |
|
|
202 |
CircuitBreaker cb = CircuitBreakerManager.getManager().getCircuitBreaker("banedk"); |
CircuitBreaker cb = CircuitBreakerManager.getManager().getCircuitBreaker("banedk"); |
203 |
|
|
204 |
JsoupInvocation jsoup = new JsoupInvocation(new URL("http://trafikinfo.bane.dk" + uri), 2000); |
JsoupInvocation jsoup = new JsoupInvocation(new URL("http://trafikinfo.bane.dk" + uri2), 2000); |
205 |
|
|
206 |
Document doc = (Document) cb.invoke(jsoup); |
Document doc = (Document) cb.invoke(jsoup); |
207 |
|
|