public TdsMonitor(ucar.util.prefs.PreferencesExt prefs, JFrame parentFrame) throws HTTPException { this.mainPrefs = prefs; this.parentFrame = parentFrame; makeCache(); fileChooser = new FileManager(parentFrame, null, null, (PreferencesExt) prefs.node("FileManager")); // the top UI tabbedPane = new JTabbedPane(JTabbedPane.TOP); managePanel = new ManagePanel((PreferencesExt) mainPrefs.node("ManageLogs")); accessLogPanel = new AccessLogPanel((PreferencesExt) mainPrefs.node("LogTable")); servletLogPanel = new ServletLogPanel((PreferencesExt) mainPrefs.node("ServletLogPanel")); urlDump = new URLDumpPane((PreferencesExt) mainPrefs.node("urlDump")); tabbedPane.addTab("ManageLogs", managePanel); tabbedPane.addTab("AccessLogs", accessLogPanel); tabbedPane.addTab("ServletLogs", servletLogPanel); tabbedPane.addTab("UrlDump", urlDump); tabbedPane.setSelectedIndex(0); setLayout(new BorderLayout()); add(tabbedPane, BorderLayout.CENTER); CredentialsProvider provider = new UrlAuthenticatorDialog(null); session = new HTTPSession("TdsMonitor"); session.setCredentialsProvider(provider); session.setUserAgent("TdsMonitor"); }
private static synchronized void kill() { if (sessionList != null) { for (HTTPSession session : sessionList) { session.close(); } sessionList.clear(); // Rebuild the connection manager connmgr.shutdown(); connmgr = new MultiThreadedHttpConnectionManager(); setGlobalThreadCount(DFALTTHREADCOUNT); } }
public void exit() { session.close(); if (dnsCache != null) { System.out.printf(" cache= %s%n", dnsCache.toString()); System.out.printf(" cache.size= %d%n", dnsCache.getSize()); System.out.printf(" cache.memorySize= %d%n", dnsCache.getMemoryStoreSize()); Statistics stats = dnsCache.getStatistics(); System.out.printf(" stats= %s%n", stats.toString()); } cacheManager.shutdown(); fileChooser.save(); managePanel.save(); accessLogPanel.save(); servletLogPanel.save(); urlDump.save(); Rectangle bounds = frame.getBounds(); prefs.putBeanObject(FRAME_SIZE, bounds); try { store.save(); } catch (IOException ioe) { ioe.printStackTrace(); } done = true; // on some systems, still get a window close event System.exit(0); }
protected void construct(String legalurl) throws HTTPException { this.legalurl = legalurl; try { sessionClient = new HttpClient(connmgr); HttpClientParams clientparams = sessionClient.getParams(); // Allow (circular) redirects clientparams.setParameter(ALLOW_CIRCULAR_REDIRECTS, true); clientparams.setParameter(MAX_REDIRECTS, 25); if (globalSoTimeout > 0) setSoTimeout(globalSoTimeout); if (globalConnectionTimeout > 0) setConnectionTimeout(globalConnectionTimeout); if (globalAgent != null) setUserAgent(globalAgent); // May get overridden by setUserAgent setAuthenticationPreemptive(globalauthpreemptive); setProxy(); if (TESTING) HTTPSession.track(this); } catch (Exception e) { throw new HTTPException("url=" + legalurl, e); } }
private void checkHeaders(HTTPMethod method) { if (debugHeaders) { System.out.println("\nOpenConnection Headers for " + method.getPath()); System.out.println("Status Line: " + method.getStatusLine()); } Header[] responseHeaders = method.getResponseHeaders(); for (int i1 = 0; i1 < responseHeaders.length; i1++) { Header responseHeader = responseHeaders[i1]; if (debugHeaders) System.out.print(" " + responseHeader); String key = responseHeader.getName(); String value = responseHeader.getValue(); if (key.equals("Last-Modified")) { lastModified = value; if (debugHeaders) System.out.println(" **found lastModified = " + lastModified); } else if (key.equals("X-Last-Extended")) { lastExtended = value; if (debugHeaders) System.out.println(" **found lastExtended = " + lastExtended); } else if (key.equals("X-Last-Modified-Invalid")) { lastModifiedInvalid = value; if (debugHeaders) System.out.println(" **found lastModifiedInvalid = " + lastModifiedInvalid); } } if (debugHeaders) System.out.println("OpenConnection Headers for " + method.getPath()); Cookie[] cookies = _session.getCookies(); if (cookies.length > 0) { if (debugHeaders) System.out.println("Cookies= "); for (int i = 0; i < cookies.length; i++) { Cookie cooky = cookies[i]; if (debugHeaders) System.out.println(" " + cooky); if (cooky.getName().equalsIgnoreCase("jsessionid")) hasSession = true; } } }
public void closeSession() { try { if (allowSessions && hasSession) { openConnection( urlStringEncoded + ".close", new Command() { public void process(InputStream is) throws IOException { byte[] buffer = new byte[4096]; // read the body fully while (is.read(buffer) > 0) { // empty } } }); } if (_session != null) _session.close(); _session = null; } catch (Throwable t) { // ignore } }
/** * Open a connection to the DODS server. * * @param urlString the URL to open. * @param command execute this command on the input stream * @throws IOException if an IO exception occurred. * @throws DAP2Exception if the DODS server returned an error. * @throws ParseException is cant parse the return */ private void openConnection(String urlString, Command command) throws IOException, DAP2Exception, ParseException { HTTPMethod method = null; InputStream is = null; initSession(); try { method = _session.newMethodGet(urlString); if (acceptCompress) method.setRequestHeader("Accept-Encoding", "deflate,gzip"); // enable sessions if (allowSessions) method.setRequestHeader("X-Accept-Session", "true"); // Execute the method. int statusCode = method.execute(); // debug // if (debugHeaders) ucar.nc2.util.net.HttpClientManager.showHttpRequestInfo(f, method); if (statusCode == HTTPSession.SC_NOT_FOUND) { throw new DAP2Exception(DAP2Exception.NO_SUCH_FILE, method.getStatusText()); } if (statusCode == HTTPSession.SC_UNAUTHORIZED) { throw new InvalidCredentialsException(method.getStatusText()); } if (statusCode != HTTPSession.SC_OK) { throw new DAP2Exception( "Method failed:" + method.getStatusText() + " on URL= " + urlString); } // Get the response body. is = method.getResponseAsStream(); // check if its an error Header header = method.getResponseHeader("Content-Description"); if (header != null && (header.getValue().equals("dods-error") || header.getValue().equals("dods_error"))) { // create server exception object DAP2Exception ds = new DAP2Exception(); is = dumpStream(is); // parse the Error object from stream and throw it ds.parse(is); throw ds; } ver = new ServerVersion(method); checkHeaders(method); // check for deflator Header h = method.getResponseHeader("content-encoding"); String encoding = (h == null) ? null : h.getValue(); // if (encoding != null) System.out.println("encoding= " + encoding); if (encoding != null && encoding.equals("deflate")) { is = new BufferedInputStream(new InflaterInputStream(is), 1000); } else if (encoding != null && encoding.equals("gzip")) { is = new BufferedInputStream(new GZIPInputStream(is), 1000); } command.process(is); } catch (Exception e) { e.printStackTrace(); throw new DAP2Exception(e); } finally { // Release the connection. if (method != null) method.close(); } }