Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/InvalidateSessionTest.java5
-rw-r--r--tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/MongoTestServer.java7
-rw-r--r--tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/SessionSavingValueTest.java215
-rw-r--r--tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionExpiryTest.java2
-rw-r--r--tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionRenewTest.java2
-rw-r--r--tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionValueSavingTest.java8
-rw-r--r--tests/test-webapps/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java6
7 files changed, 21 insertions, 224 deletions
diff --git a/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/InvalidateSessionTest.java b/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/InvalidateSessionTest.java
index c1e1c0fdc4..510c8eccd9 100644
--- a/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/InvalidateSessionTest.java
+++ b/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/InvalidateSessionTest.java
@@ -37,11 +37,10 @@ public class InvalidateSessionTest extends AbstractInvalidationSessionTest
{
try
{
- Thread.currentThread().sleep(2000);
+ Thread.sleep(2 * MongoTestServer.STALE_INTERVAL * 1000);
}
- catch (Exception e)
+ catch (InterruptedException e)
{
- e.printStackTrace();
}
}
diff --git a/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/MongoTestServer.java b/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/MongoTestServer.java
index f8c8cd369b..f85451ceb6 100644
--- a/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/MongoTestServer.java
+++ b/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/MongoTestServer.java
@@ -23,8 +23,10 @@ import java.net.UnknownHostException;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.SessionIdManager;
import org.eclipse.jetty.server.SessionManager;
+import org.eclipse.jetty.server.session.AbstractSessionStore;
import org.eclipse.jetty.server.session.AbstractTestServer;
import org.eclipse.jetty.server.session.SessionHandler;
+import org.eclipse.jetty.server.session.StalePeriodStrategy;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCursor;
@@ -37,6 +39,7 @@ import com.mongodb.MongoException;
*/
public class MongoTestServer extends AbstractTestServer
{
+ public static final int STALE_INTERVAL = 1;
static int __workers=0;
@@ -100,6 +103,10 @@ public class MongoTestServer extends AbstractTestServer
try
{
manager = new MongoSessionManager();
+ manager.getSessionDataStore().setGracePeriodSec(_scavengePeriod);
+ StalePeriodStrategy staleStrategy = new StalePeriodStrategy();
+ staleStrategy.setStaleSec(STALE_INTERVAL);
+ ((AbstractSessionStore)manager.getSessionStore()).setStaleStrategy(staleStrategy);
}
catch (Exception e)
{
diff --git a/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/SessionSavingValueTest.java b/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/SessionSavingValueTest.java
index 61b4db120d..52fe20cb52 100644
--- a/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/SessionSavingValueTest.java
+++ b/tests/test-sessions/test-mongodb-sessions/src/test/java/org/eclipse/jetty/nosql/mongodb/SessionSavingValueTest.java
@@ -18,229 +18,26 @@
package org.eclipse.jetty.nosql.mongodb;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.lang.management.ManagementFactory;
-import java.net.MalformedURLException;
-
-import javax.management.remote.JMXServiceURL;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.eclipse.jetty.client.HttpClient;
-import org.eclipse.jetty.client.api.ContentResponse;
-import org.eclipse.jetty.client.api.Request;
-import org.eclipse.jetty.jmx.ConnectorServer;
-import org.eclipse.jetty.jmx.MBeanContainer;
-import org.eclipse.jetty.nosql.NoSqlSessionDataStore.NoSqlSessionData;
-import org.eclipse.jetty.server.session.Session;
import org.eclipse.jetty.server.session.AbstractSessionValueSavingTest;
import org.eclipse.jetty.server.session.AbstractTestServer;
-import org.junit.Ignore;
import org.junit.Test;
public class SessionSavingValueTest extends AbstractSessionValueSavingTest
{
-
-
+ @Override
public AbstractTestServer createServer(int port, int max, int scavenge)
{
- ConnectorServer srv = null;
- try
- {
- srv = new ConnectorServer(
- new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:0/jettytest"),
- "org.eclipse.jetty:name=rmiconnectorserver");
- srv.start();
-
- MongoTestServer server = new MongoTestServer(port,max,scavenge,true);
-
- MBeanContainer mbean = new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
-
- //server.getServer().getContainer().addEventListener(mbean);
- server.getServer().addBean(mbean);
-
- //mbean.start();
-
- return server;
-
- }
- catch (MalformedURLException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- catch (Exception e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- return null;
+ return new MongoTestServer(port, max, scavenge);
}
-
- @Ignore ("requires mongodb server")
+ @Test
public void testSessionValueSaving() throws Exception
{
- String contextPath = "";
- String servletMapping = "/server";
- int maxInactivePeriod = 10000;
- int scavengePeriod = 20000;
- AbstractTestServer server1 = createServer(0,maxInactivePeriod,scavengePeriod);
- server1.addContext(contextPath).addServlet(TestServlet.class,servletMapping);
- server1.start();
- int port1 = server1.getPort();
- try
- {
-
- HttpClient client = new HttpClient();
- client.start();
- try
- {
- String[] sessionTestValue = new String[]
- { "0", "null" };
-
- // Perform one request to server1 to create a session
- ContentResponse response = client.GET("http://localhost:" + port1 + contextPath + servletMapping + "?action=init");
-
- assertEquals(HttpServletResponse.SC_OK,response.getStatus());
-
- String[] sessionTestResponse = response.getContentAsString().split("/");
- assertTrue(Long.parseLong(sessionTestValue[0]) < Long.parseLong(sessionTestResponse[0]));
-
- sessionTestValue = sessionTestResponse;
-
- String sessionCookie = response.getHeaders().get("Set-Cookie");
- assertTrue(sessionCookie != null);
- // Mangle the cookie, replacing Path with $Path, etc.
- sessionCookie = sessionCookie.replaceFirst("(\\W)(P|p)ath=","$1\\$Path=");
-
- // Perform some request to server2 using the session cookie from the previous request
- // This should migrate the session from server1 to server2, and leave server1's
- // session in a very stale state, while server2 has a very fresh session.
- // We want to test that optimizations done to the saving of the shared lastAccessTime
- // do not break the correct working
- int requestInterval = 500;
-
- for (int i = 0; i < 10; ++i)
- {
- Request request2 = client.newRequest("http://localhost:" + port1 + contextPath + servletMapping);
- request2.header("Cookie",sessionCookie);
- ContentResponse response2 = request2.send();
-
- assertEquals(HttpServletResponse.SC_OK,response2.getStatus());
-
- sessionTestResponse = response2.getContentAsString().split("/");
-
- assertTrue(Long.parseLong(sessionTestValue[0]) < Long.parseLong(sessionTestResponse[0]));
- assertTrue(Long.parseLong(sessionTestValue[1]) < Long.parseLong(sessionTestResponse[1]));
-
- sessionTestValue = sessionTestResponse;
-
- String setCookie = response2.getHeaders().get("Set-Cookie");
- if (setCookie != null)
- sessionCookie = setCookie.replaceFirst("(\\W)(P|p)ath=","$1\\$Path=");
-
- Thread.sleep(requestInterval);
- }
-
- // Thread.sleep(320000);
- }
- finally
- {
- client.stop();
- }
- }
- finally
- {
- server1.stop();
- }
- }
-
- public static class TestServlet extends HttpServlet
- {
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse httpServletResponse) throws ServletException, IOException
- {
- String action = request.getParameter("action");
- if ("init".equals(action))
- {
- Session session = (Session)request.getSession(true);
- session.setAttribute("test",System.currentTimeMillis());
- session.setAttribute("objectTest", new Pojo("foo","bar"));
-
- sendResult(session,httpServletResponse.getWriter());
-
- }
- else
- {
- Session session = (Session)request.getSession(false);
- if (session != null)
- {
- long value = System.currentTimeMillis();
- session.setAttribute("test",value);
-
- }
-
- sendResult(session,httpServletResponse.getWriter());
-
- Pojo p = (Pojo)session.getAttribute("objectTest");
-
- //System.out.println(p.getName() + " / " + p.getValue() );
- }
-
- }
-
- private void sendResult(Session session, PrintWriter writer)
- {
- /* if (session != null)
- {
- if ((NoSqlSessionData)(session.getSessionData()).getVersion() == null)
- {
- writer.print(session.getAttribute("test") + "/-1");
- }
- else
- {
- writer.print(session.getAttribute("test") + "/" + session.getVersion());
- }
- }
- else
- {
- writer.print("0/-1");
- }*/
- }
-
- public class Pojo implements Serializable
- {
- private String _name;
- private String _value;
-
- public Pojo( String name, String value )
- {
- _name = name;
- _value = value;
- }
-
- public String getName()
- {
- return _name;
- }
-
- public String getValue()
- {
- return _value;
- }
- }
-
+ super.testSessionValueSaving();
}
+
+
}
diff --git a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionExpiryTest.java b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionExpiryTest.java
index 5c11f8b35c..0deae61b04 100644
--- a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionExpiryTest.java
+++ b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionExpiryTest.java
@@ -175,7 +175,7 @@ public abstract class AbstractSessionExpiryTest
port1 = server1.getPort();
url = "http://localhost:" + port1 + contextPath + servletMapping;
-
+
//make another request, the session should have expired
Request request = client.newRequest(url + "?action=test");
request.getHeaders().add("Cookie", sessionCookie);
diff --git a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionRenewTest.java b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionRenewTest.java
index 0899fac669..c5dc7121e4 100644
--- a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionRenewTest.java
+++ b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionRenewTest.java
@@ -78,6 +78,7 @@ public abstract class AbstractSessionRenewTest
Request request = client.newRequest("http://localhost:" + port + contextPath + servletMapping + "?action=renew");
request.header("Cookie", sessionCookie);
ContentResponse renewResponse = request.send();
+
assertEquals(HttpServletResponse.SC_OK,renewResponse.getStatus());
String renewSessionCookie = renewResponse.getHeaders().get("Set-Cookie");
assertNotNull(renewSessionCookie);
@@ -130,7 +131,6 @@ public abstract class AbstractSessionRenewTest
assertTrue(beforeSession != null);
String beforeSessionId = beforeSession.getId();
-
((Session)beforeSession).renewId(request);
HttpSession afterSession = request.getSession(false);
diff --git a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionValueSavingTest.java b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionValueSavingTest.java
index 8b0851b00c..f2c8ebb18e 100644
--- a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionValueSavingTest.java
+++ b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractSessionValueSavingTest.java
@@ -77,9 +77,6 @@ public abstract class AbstractSessionValueSavingTest
// Mangle the cookie, replacing Path with $Path, etc.
sessionCookie = sessionCookie.replaceFirst("(\\W)(P|p)ath=", "$1\\$Path=");
- // Perform some request to server2 using the session cookie from the previous request
- // This should migrate the session from server1 to server2, and leave server1's
- // session in a very stale state, while server2 has a very fresh session.
// We want to test that optimizations done to the saving of the shared lastAccessTime
// do not break the correct working
int requestInterval = 500;
@@ -130,13 +127,10 @@ public abstract class AbstractSessionValueSavingTest
else
{
HttpSession session = request.getSession(false);
- System.out.println("not init call " + session);
if (session!=null)
{
- long value = System.currentTimeMillis();
- System.out.println("Setting test to : " + value);
+ long value = System.currentTimeMillis();
session.setAttribute("test", value);
-
}
sendResult(session, httpServletResponse.getWriter());
diff --git a/tests/test-webapps/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java b/tests/test-webapps/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java
index a1d0f6bf74..3818694b1a 100644
--- a/tests/test-webapps/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java
+++ b/tests/test-webapps/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java
@@ -44,7 +44,7 @@ import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.handler.HandlerWrapper;
import org.eclipse.jetty.server.handler.RequestLogHandler;
import org.eclipse.jetty.server.handler.ResourceHandler;
-import org.eclipse.jetty.server.session.HashSessionManager;
+import org.eclipse.jetty.server.session.FileSessionManager;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger;
import org.eclipse.jetty.util.log.StdErrLog;
@@ -131,8 +131,8 @@ public class TestServer
sessiondir.delete();
sessiondir.mkdir();
sessiondir.deleteOnExit();
- ((HashSessionManager)webapp.getSessionHandler().getSessionManager()).setStoreDirectory(sessiondir);
- ((HashSessionManager)webapp.getSessionHandler().getSessionManager()).setSavePeriod(10);
+ ((FileSessionManager)webapp.getSessionHandler().getSessionManager()).getSessionDataStore().setStoreDir(sessiondir);
+ //((HashSessionManager)webapp.getSessionHandler().getSessionManager()).setSavePeriod(10);
contexts.addHandler(webapp);

Back to the top