Author: anil.saldhana(a)jboss.com
Date: 2009-10-27 18:20:57 -0400 (Tue, 27 Oct 2009)
New Revision: 881
Added:
identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/integration/IdentityServerUnitTestCase.java
Modified:
identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/core/IdentityServer.java
Log:
JBID-205: active sessions
Modified:
identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/core/IdentityServer.java
===================================================================
---
identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/core/IdentityServer.java 2009-10-27
21:56:43 UTC (rev 880)
+++
identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/core/IdentityServer.java 2009-10-27
22:20:57 UTC (rev 881)
@@ -40,6 +40,8 @@
*/
public class IdentityServer implements HttpSessionListener
{
+ private static int activeSessionCount = 0;
+
private STACK stack = new STACK();
public class STACK
@@ -178,6 +180,14 @@
}
}
+ /**
+ * Return the active session count
+ * @return
+ */
+ public int getActiveSessionCount()
+ {
+ return activeSessionCount;
+ }
/**
* Return a reference to the internal stack
@@ -193,7 +203,9 @@
* @see HttpSessionListener#sessionCreated(HttpSessionEvent)
*/
public void sessionCreated(HttpSessionEvent sessionEvent)
- {
+ {
+ activeSessionCount++;
+
HttpSession session = sessionEvent.getSession();
//Ensure that the IdentityServer instance is set on the servlet context
ServletContext servletContext = session.getServletContext();
@@ -218,6 +230,7 @@
*/
public void sessionDestroyed(HttpSessionEvent sessionEvent)
{
+ --activeSessionCount;
stack.remove(sessionEvent.getSession().getId());
}
}
\ No newline at end of file
Added:
identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/integration/IdentityServerUnitTestCase.java
===================================================================
---
identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/integration/IdentityServerUnitTestCase.java
(rev 0)
+++
identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/integration/IdentityServerUnitTestCase.java 2009-10-27
22:20:57 UTC (rev 881)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.test.identity.federation.web.integration;
+
+import javax.servlet.http.HttpSessionEvent;
+
+import junit.framework.TestCase;
+
+import org.jboss.identity.federation.web.core.IdentityServer;
+import org.jboss.test.identity.federation.web.mock.MockHttpSession;
+import org.jboss.test.identity.federation.web.mock.MockServletContext;
+
+/**
+ * Unit test the Identity Server
+ * @author Anil.Saldhana(a)redhat.com
+ * @since Oct 27, 2009
+ */
+public class IdentityServerUnitTestCase extends TestCase
+{
+ public void testActiveSessionCount()
+ {
+ IdentityServer server = new IdentityServer();
+ assertEquals(0,server.getActiveSessionCount());
+
+ MockHttpSession session = new MockHttpSession();
+ session.setServletContext(new MockServletContext());
+ HttpSessionEvent event = new HttpSessionEvent(session);
+ server.sessionCreated(event);
+ assertEquals(1,server.getActiveSessionCount());
+
+ server.sessionDestroyed(event);
+ assertEquals(0,server.getActiveSessionCount());
+ //6 sessions created and 1 destroyed
+ server.sessionCreated(event);
+ server.sessionCreated(event);
+ server.sessionCreated(event);
+ server.sessionCreated(event);
+ server.sessionCreated(event);
+ server.sessionCreated(event);
+
+ server.sessionDestroyed(event);
+ assertEquals(5,server.getActiveSessionCount());
+ }
+}
\ No newline at end of file