You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by pr...@apache.org on 2007/09/12 20:43:47 UTC
svn commit: r575038 - in
/geronimo/samples/trunk/samples/async-http/http-local-app/src/main:
java/org/apache/geronimo/BlockingServlet.java webapp/WEB-INF/web.xml
Author: prasad
Date: Wed Sep 12 11:43:47 2007
New Revision: 575038
URL: http://svn.apache.org/viewvc?rev=575038&view=rev
Log:
* added a BlockingServlet for comparison
Added:
geronimo/samples/trunk/samples/async-http/http-local-app/src/main/java/org/apache/geronimo/BlockingServlet.java (with props)
Modified:
geronimo/samples/trunk/samples/async-http/http-local-app/src/main/webapp/WEB-INF/web.xml
Added: geronimo/samples/trunk/samples/async-http/http-local-app/src/main/java/org/apache/geronimo/BlockingServlet.java
URL: http://svn.apache.org/viewvc/geronimo/samples/trunk/samples/async-http/http-local-app/src/main/java/org/apache/geronimo/BlockingServlet.java?rev=575038&view=auto
==============================================================================
--- geronimo/samples/trunk/samples/async-http/http-local-app/src/main/java/org/apache/geronimo/BlockingServlet.java (added)
+++ geronimo/samples/trunk/samples/async-http/http-local-app/src/main/java/org/apache/geronimo/BlockingServlet.java Wed Sep 12 11:43:47 2007
@@ -0,0 +1,111 @@
+package org.apache.geronimo;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.URL;
+import java.util.Random;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Servlet implementation class for Servlet: AsyncServlet
+ *
+ * @web.servlet name="AsyncServlet" display-name="AsyncServlet"
+ *
+ * @web.servlet-mapping url-pattern="/async"
+ *
+ */
+public class BlockingServlet extends HttpServlet {
+ static final long serialVersionUID = 1L;
+
+ private String remoteUrl;
+
+ public void init() throws ServletException {
+ getServletContext().log("getinit init");
+ // Get the value of an initialization parameter
+ remoteUrl = getServletConfig().getInitParameter("remoteUrl");
+ }
+
+ /**
+ * Process the given Comet event.
+ *
+ * @param event
+ * The Comet event that will be processed
+ * @throws IOException
+ * @throws ServletException
+ */
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws IOException, ServletException {
+
+ System.out.println("");
+ System.out.println("Inside BlockingServlet.doGet()");
+
+ String sessionId = request.getSession(true).getId();
+
+ if (request.getParameter("remoteUrl") != null) {
+ remoteUrl = request.getParameter("remoteUrl");
+ }
+
+ String remoteUri = request.getParameter("remoteUri");
+ if (remoteUri == null) {
+ remoteUri = "/remoteApp/page";
+ }
+
+ Integer[] params = generateRandomParams();
+ System.out.println("sessionId:" + sessionId + "; delay:" + params[0]
+ + "; code:" + params[1]);
+
+ String url_string = remoteUrl + remoteUri + "?sessionId=" + sessionId + "&delay=" + params[0] + "&code=" + params[1];
+ URL url_connect = new URL(url_string);
+
+ response.setContentType("text/html");
+ PrintWriter out = response.getWriter();
+ try {
+ BufferedReader input = new BufferedReader(new InputStreamReader(url_connect.openStream()));
+ String line = "";
+ while ((line = input.readLine()) != null) {
+ out.println(line);
+ }
+ out.flush();
+ input.close();
+ }
+ catch(IOException ex) {
+ out.println ("<html>");
+ out.println("<title>Error" + params[1] + "</title>");
+ out.println("<body bgcolor=FFFFFF>");
+
+ out.println("<h2>Error " + params[1] + "</h2>");
+
+ out.println("</body>");
+ out.println("</html>");
+ }
+ finally {
+ out.close();
+ }
+
+ System.out.println("doGet processed");
+ }
+
+ protected Integer[] generateRandomParams() {
+ Integer[] params = new Integer[2];
+ final int[] codes = new int[] { 200, 302, 403, 404, 500 };
+
+ Random generator = new Random();
+
+ // generate a random delay between 10ms and 250 ms
+ int delay = generator.nextInt(2500) + 10;
+ params[0] = new Integer(delay);
+
+ // generate randomly one of http status codes.
+ int index = generator.nextInt(codes.length);
+ params[1] = new Integer(codes[index]);
+
+ return params;
+ }
+
+}
\ No newline at end of file
Propchange: geronimo/samples/trunk/samples/async-http/http-local-app/src/main/java/org/apache/geronimo/BlockingServlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/samples/trunk/samples/async-http/http-local-app/src/main/java/org/apache/geronimo/BlockingServlet.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/samples/trunk/samples/async-http/http-local-app/src/main/java/org/apache/geronimo/BlockingServlet.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/samples/trunk/samples/async-http/http-local-app/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/geronimo/samples/trunk/samples/async-http/http-local-app/src/main/webapp/WEB-INF/web.xml?rev=575038&r1=575037&r2=575038&view=diff
==============================================================================
--- geronimo/samples/trunk/samples/async-http/http-local-app/src/main/webapp/WEB-INF/web.xml (original)
+++ geronimo/samples/trunk/samples/async-http/http-local-app/src/main/webapp/WEB-INF/web.xml Wed Sep 12 11:43:47 2007
@@ -23,5 +23,20 @@
<url-pattern>/async</url-pattern>
</servlet-mapping>
+ <servlet>
+ <display-name>BlockingServlet</display-name>
+ <servlet-name>BlockingServlet</servlet-name>
+ <servlet-class>org.apache.geronimo.BlockingServlet</servlet-class>
+ <init-param>
+ <param-name>remoteUrl</param-name>
+ <param-value>http://puffyshirt:8080</param-value>
+ </init-param>
+ </servlet>
+
+
+ <servlet-mapping>
+ <servlet-name>BlockingServlet</servlet-name>
+ <url-pattern>/sync</url-pattern>
+ </servlet-mapping>
</web-app>