[Mulgara-svn] r1250 - trunk/src/jar/server/java/org/mulgara/server

pag at mulgara.org pag at mulgara.org
Sat Sep 6 11:50:31 UTC 2008


Author: pag
Date: 2008-09-06 04:50:30 -0700 (Sat, 06 Sep 2008)
New Revision: 1250

Added:
   trunk/src/jar/server/java/org/mulgara/server/ServiceListingServlet.java
Log:
Created a servlet for displaying all loaded servlets

Added: trunk/src/jar/server/java/org/mulgara/server/ServiceListingServlet.java
===================================================================
--- trunk/src/jar/server/java/org/mulgara/server/ServiceListingServlet.java	                        (rev 0)
+++ trunk/src/jar/server/java/org/mulgara/server/ServiceListingServlet.java	2008-09-06 11:50:30 UTC (rev 1250)
@@ -0,0 +1,104 @@
+/*
+ * The contents of this file are subject to the Open Software License
+ * Version 3.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.opensource.org/licenses/osl-3.0.txt
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ * the License for the specific language governing rights and limitations
+ * under the License.
+ */
+
+package org.mulgara.server;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Map;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * A servlet for listing web services.
+ *
+ * @created Sep 6, 2008
+ * @author Paul Gearon
+ * @copyright &copy; 2008 <a href="http://www.topazproject.org/">The Topaz Project</a>
+ * @licence <a href="{@docRoot}/../../LICENCE.txt">Open Software License v3.0</a>
+ */
+public class ServiceListingServlet extends HttpServlet {
+
+  /** Autogenerated serialization ID */
+  private static final long serialVersionUID = -5568145649330453029L;
+
+  /** A map of service names to paths. */
+  private final Map<String,String> servicePaths;
+
+  /** The default path to use when not using this class. */
+  private final String defaultPath;
+
+  /**
+   * Creates the servlet for listing the given paths.
+   * @param servicePaths The names of all the services.
+   * @param servername The name of the current server.
+   */
+  public ServiceListingServlet(Map<String,String> servicePaths, String defaultPath) throws IOException {
+    this.servicePaths = servicePaths;
+    this.defaultPath = defaultPath;
+  }
+
+
+  /**
+   * Respond to a request for the servlet.
+   * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
+   */
+  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+    String path = req.getPathInfo();
+    if (path.equals("/")) {
+      // file request
+      resp.setContentType("text/html");
+      resp.setHeader("pragma", "no-cache");
+      PrintWriter out = resp.getWriter();
+      printPage(out);
+      out.close();
+    } else {
+      resp.sendRedirect(defaultPath);
+    }
+  }
+
+
+  /**
+   * Provide a description for the servlet.
+   * @see javax.servlet.GenericServlet#getServletInfo()
+   */
+  public String getServletInfo() {
+    return "Service List";
+  }
+
+
+  /**
+   * Outputs the list of service names and the paths to go to.
+   * @param out Where to send the page.
+   */
+  private void printPage(PrintWriter out) {
+    out.println("<!DOCTYPE html PUBLIC \"-//W3C//Dtd XHTML 1.0 Transitional//EN\" \"http://www.w3.org/tr/xhtml1/Dtd/xhtml1-transitional.dtd\">");
+    out.println("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
+    out.println("<head>");
+    out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />");
+    out.println("<title>Mulgara Web Services</title>");
+    out.println("</head>");
+    out.println("</body>");
+    out.println("<h2>Available Services</h2>");
+    out.println("<ul>");
+    for (Map.Entry<String,String> service: servicePaths.entrySet()) {
+      out.println("<li><a href=\"" + service.getValue() + "\">" + service.getKey() + "</a></li>");
+    }
+    out.println("</ul>");
+    out.println("</body>");
+    out.println("</html>");
+  }
+
+}




More information about the Mulgara-svn mailing list