KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > server > appserver > unit > ShareSessionObjectTest


1 /*
2  * All content copyright (c) 2003-2007 Terracotta, Inc., except as may otherwise be noted in a separate copyright
3  * notice. All rights reserved.
4  */

5 package com.tctest.server.appserver.unit;
6
7 import org.apache.commons.httpclient.HttpClient;
8
9 import com.tc.test.server.appserver.unit.AbstractAppServerTestCase;
10 import com.tc.test.server.util.HttpUtil;
11
12 import java.io.IOException JavaDoc;
13 import java.io.PrintWriter JavaDoc;
14 import java.io.StringWriter JavaDoc;
15 import java.net.URL JavaDoc;
16
17 import javax.servlet.http.HttpServlet JavaDoc;
18 import javax.servlet.http.HttpServletRequest JavaDoc;
19 import javax.servlet.http.HttpServletResponse JavaDoc;
20 import javax.servlet.http.HttpSession JavaDoc;
21
22 public class ShareSessionObjectTest extends AbstractAppServerTestCase {
23   public final void testSessions() throws Exception JavaDoc {
24
25     startDsoServer();
26
27     HttpClient client = HttpUtil.createHttpClient();
28
29     int port0 = startAppServer(true).serverPort();
30     int port1 = startAppServer(true).serverPort();
31
32     URL JavaDoc url0 = new URL JavaDoc(createUrl(port0, TestServlet.class) + "?cmd=set");
33     URL JavaDoc url1 = new URL JavaDoc(createUrl(port1, TestServlet.class) + "?cmd=read");
34
35     assertEquals("OK", HttpUtil.getResponseBody(url0, client));
36     assertEquals("OK", HttpUtil.getResponseBody(url1, client));
37   }
38
39   public static final class TestServlet extends HttpServlet JavaDoc {
40
41     private static final String JavaDoc ATTR_NAME = "session reference";
42
43     public void doGet(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws IOException JavaDoc {
44       PrintWriter JavaDoc out = response.getWriter();
45
46       try {
47         doGet0(request, response);
48         out.write("OK");
49       } catch (Throwable JavaDoc t) {
50         StringWriter JavaDoc sw = new StringWriter JavaDoc();
51         t.printStackTrace(new PrintWriter JavaDoc(sw));
52         out.write(sw.toString());
53       }
54     }
55
56     private void doGet0(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
57       HttpSession JavaDoc session = request.getSession(true);
58       response.setContentType("text/html");
59
60       String JavaDoc cmd = request.getParameter("cmd");
61
62       Object JavaDoc o = session.getAttribute(ATTR_NAME);
63       if ("set".equals(cmd)) {
64         if (o != null) { throw new AssertionError JavaDoc("attribute is not null: " + o); }
65         session.setAttribute(ATTR_NAME, session);
66       } else if ("read".equals(cmd)) {
67         if (o != session) { throw new AssertionError JavaDoc("different session objects, " + session + " != " + o); }
68       } else {
69         throw new AssertionError JavaDoc("unknown cmd: " + cmd);
70       }
71
72     }
73   }
74
75 }
76
Popular Tags