/* * Created on Feb 23, 2004 * * To change the template for this generated file go to * Window - Preferences - Java - Code Generation - Code and Comments */ package org.vfny.geoserver.servlets; import org.vfny.geoserver.global.UserContainer; import org.vfny.geoserver.util.Requests; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.ResourceBundle; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * JSPCompiler purpose. * <p> * Description of JSPCompiler ... * </p> * * @author dzwiers, Refractions Research, Inc. * @author $Author: dgricci $ (last modification) * @version $Id$ */ public class JSPCompiler extends HttpServlet { String[] pages; int spot = 0; public void init(ServletConfig config) throws ServletException { ResourceBundle rb = ResourceBundle.getBundle(getClass().getName()); int n = Integer.parseInt(rb.getString("numURLs")); pages = new String[n]; for (int i = 0; i < n; i++) { pages[i] = rb.getString("url." + (i + 1)); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (spot < pages.length) { try { String base = Requests.getBaseUrl(request, null); ServletContext session = request.getSession().getServletContext(); synchronized (session) { UserContainer u2 = new UserContainer(); u2.setUsername("compiler"); session.setAttribute(UserContainer.SESSION_KEY, u2); } doLoad(base + pages[spot], response); synchronized (session) { session.setAttribute(UserContainer.SESSION_KEY, null); } } catch (Exception e) { e.printStackTrace(); } spot = spot + 1; } else { doForward(response); } } private void doForward(HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); ServletOutputStream os = response.getOutputStream(); os.print("<html>\n"); os.print("<head><title>GeoServer - Loading</title>\n"); os.print(" <meta content=\"text/css\" http-equiv=\"content-style-type\">\n"); os.print(" <style type=\"text/css\">\n"); os.print(" <!-- @import url(\"/geoserver/style.css\"); -->\n"); os.print(" </style>\n"); os.print(" <link type=\"image/gif\" href=\"gs.gif\" rel=\"icon\"><!-- mozilla --> \n"); os.print(" <link href=\"gs.ico\" rel=\"SHORTCUT ICON\"><!-- ie -->\n"); os.print("</head>\n"); os.print("<body onload=\"javascript:window.location.replace('welcome.do')\"><br><center>\n"); os.print("<table width=\"60%\" height=\"60%\"><tr><td>\n"); os.print("<center>\n"); os.print(" <span class=\"project\">\n"); os.print(" <a href=\"http://geoserver.org/\">GeoServer</a>\n"); os.print(" </span>\n"); os.print(" <span class=\"license\">\n"); os.print(" <a href=\"http://geoserver.org/display/GEOSDOC/License\">©</a>\n"); os.print(" </span>\n"); os.print(" <h1>LOADING ...</h1>\n"); os.print("<center><br>\n"); os.print("<center><h2>Please Wait</h2><center>\n"); os.print("</table></td></tr>\n"); os.print("</center></body>\n"); os.print("</html>"); } private void doLoad(String url, HttpServletResponse response) throws ServletException, IOException { URL u = new URL(url); try { HttpURLConnection con = (HttpURLConnection) u.openConnection(); con.connect(); String s = con.getResponseMessage(); BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream())); while (br.ready()) br.readLine(); con.disconnect(); } catch (Exception e) { // should not stop compilation ... System.err.println("ERROR compiling " + url); } response.setContentType("text/html"); ServletOutputStream os = response.getOutputStream(); os.print("<html>\n"); os.print("<head><title>GeoServer - Loading</title>\n"); os.print(" <meta content=\"text/css\" http-equiv=\"content-style-type\">\n"); os.print(" <style type=\"text/css\">\n"); os.print(" <!-- @import url(\"/geoserver/style.css\"); -->\n"); os.print(" </style>\n"); os.print(" <link type=\"image/gif\" href=\"gs.gif\" rel=\"icon\"><!-- mozilla --> \n"); os.print(" <link href=\"gs.ico\" rel=\"SHORTCUT ICON\"><!-- ie -->\n"); os.print("</head>\n"); os.print( "<body onload=\"javascript:window.location.replace('JSPCompiler')\"><br><center>\n"); os.print("<table width=\"60%\" height=\"60%\"><tr><td>\n"); os.print("<center>\n"); os.print(" <span class=\"project\">\n"); os.print(" <a href=\"http://geoserver.org/\">GeoServer</a>\n"); os.print(" </span>\n"); os.print(" <span class=\"license\">\n"); os.print(" <a href=\"http://geoserver.org/display/GEOSDOC/License\">©</a>\n"); os.print(" </span>\n"); os.print(" <h1>LOADING ...</h1>\n"); os.print("<center><br>\n"); os.print("<center><h2>Please Wait</h2><center>\n"); os.print("<center><h2>" + (int) ((100 * (spot * 1.0)) / (pages.length * 1.0)) + "% Completed</h2><center>\n"); os.print("</table></td></tr>\n"); os.print("</center></body>\n"); os.print("</html>"); } }