1 28 29 package com.caucho.doc; 30 31 import com.caucho.server.webapp.WebApp; 32 import com.caucho.server.webapp.WebAppController; 33 import com.caucho.util.L10N; 34 import com.caucho.util.URLUtil; 35 36 import javax.servlet.ServletException ; 37 import javax.servlet.http.HttpServlet ; 38 import javax.servlet.http.HttpServletRequest ; 39 import javax.servlet.http.HttpServletResponse ; 40 import java.io.IOException ; 41 import java.io.PrintWriter ; 42 import java.util.ArrayList ; 43 import java.util.logging.Level ; 44 import java.util.logging.Logger ; 45 46 51 public class JavadocRedirectServlet extends HttpServlet { 52 static protected final Logger log = 53 Logger.getLogger(JavadocRedirectServlet.class.getName()); 54 static final L10N L = new L10N(JavadocRedirectServlet.class); 55 56 public void service(HttpServletRequest request, HttpServletResponse response) 57 throws ServletException , IOException 58 { 59 String query = request.getParameter("query"); 60 if (query == null || query.length() == 0) 61 query = request.getPathInfo(); 62 if (query == null) 63 query = ""; 64 65 query = URLUtil.encodeURL(query); 66 67 WebApp app = (WebApp) getServletContext(); 69 70 WebApp japp = null; 71 72 ArrayList appControllers = app.getParent().getWebAppList(); 73 74 for (int i = 0; i < appControllers.size(); i++) 75 { 76 WebAppController appController = (WebAppController) appControllers.get(i); 77 78 String contextPath = appController.getContextPath(); 79 80 if (contextPath.startsWith("/resin-javadoc")) { 81 japp = appController.getWebApp(); 82 break; 83 } 84 } 85 86 if (japp != null) { 87 String href = japp.getContextPath() + "?query=" + query; 88 if (log.isLoggable(Level.FINER)) 89 log.finer(L.l("javadoc redirect to {0}",href)); 90 response.sendRedirect(response.encodeRedirectURL(href)); 91 } 92 else { 93 if (log.isLoggable(Level.FINER)) 94 log.finer(L.l("javadoc no local javadoc")); 95 String href = "http://www.caucho.com/resin-javadoc/?query=" + query; 96 97 PrintWriter out = response.getWriter(); 98 out.println("<html>"); 99 out.println("<head><title>Resin® Javadoc Not Found</title></head>"); 100 out.println("<body>"); 101 out.println("<h1 style='background: #ccddff'>Resin® Javadoc Not Found</h1>"); 102 out.println("A local copy of the Resin javadoc could not be found."); 103 out.println("<ul>"); 104 out.println("<li><a HREF='" + href + "'>use Caucho website</a>"); 105 out.println("</ul>"); 106 107 out.println("</body>"); 108 out.println("</html>"); 109 out.close(); 110 } 111 } 112 113 } 114 115 | Popular Tags |