User: jules_gosnell
Date: 02/02/01 11:12:03
Modified: jetty/src/main/org/jboss/jetty/session
DistributedHttpSessionManager.java
Log:
don't use sar in classpath - sun 1.3.0 doesn't like it
genericise AbstractTimeOutManager so we can reuse it for IntervalSnapshotStrategy
Revision Changes Path
1.9 +24 -32
contrib/jetty/src/main/org/jboss/jetty/session/DistributedHttpSessionManager.java
Index: DistributedHttpSessionManager.java
===================================================================
RCS file:
/cvsroot/jboss/contrib/jetty/src/main/org/jboss/jetty/session/DistributedHttpSessionManager.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- DistributedHttpSessionManager.java 2002/02/01 00:32:24 1.8
+++ DistributedHttpSessionManager.java 2002/02/01 19:12:03 1.9
@@ -5,7 +5,7 @@
* See terms of license at gnu.org.
*/
-// $Id: DistributedHttpSessionManager.java,v 1.8 2002/02/01 00:32:24 jules_gosnell
Exp $
+// $Id: DistributedHttpSessionManager.java,v 1.9 2002/02/01 19:12:03 jules_gosnell
Exp $
// TODO
@@ -105,43 +105,38 @@
class IntervalSnapshotStrategy
extends SnapshotStrategy
{
- class TimeOutNotifier
- implements AbstractTimeOutManager.TimeOutNotifier
+ static class
+ TimeOutHelper
+ implements AbstractTimeOutManager.TimeOutHelper
{
public void
timeOut(Object object)
{
- DistributedHttpSession session=(DistributedHttpSession)object;
- System.out.println("snapshotting session ("+session.getId()+")");
- snapshot(session);
- // _manager.reregister(session, System.currentTimeMillis(),
_interval*1000);
+ IntervalSnapshotStrategy iss=(IntervalSnapshotStrategy)object;
+ System.out.println("snapshotting HttpSessions for Context
("+iss._manager.getServletContext()+")");
+ iss._timer.reregister(iss._manager, System.currentTimeMillis(),
iss._interval*1000);
}
- }
- class TimeOutTester
- implements AbstractTimeOutManager.TimeOutTester
- {
public long
- timeRemaining(Object object, long now, long maxInactiveInterval)
+ timeRemaining(Object object, long timeRegistered, long timeNow, long
maxInactiveInterval)
{
- DistributedHttpSession session=(DistributedHttpSession)object;
- return session.getLastAccessedTime()+ maxInactiveInterval- now;
+ return (timeRegistered+maxInactiveInterval)-timeNow;
}
}
- // final AbstractTimeOutManager _manager;
- final int _interval;
+ static AbstractTimeOutManager _timer=new NaiveTimeOutManager(5*1000, new
TimeOutHelper());
+ final int _interval;
+ final DistributedHttpSessionManager _manager;
- IntervalSnapshotStrategy(/* AbstractTimeOutManager manager,*/
+ IntervalSnapshotStrategy(DistributedHttpSessionManager manager,
int interval, boolean notifyActivate, boolean
notifyPassivate)
{
super(notifyActivate, notifyPassivate);
- // _manager=manager;
_interval=interval;
- }
+ _manager=manager;
- public void snapshot(DistributedHttpSession session)
- {}
+ _timer.register(this, System.currentTimeMillis(), _interval*1000);
+ }
}
class IdleSnapshotStrategy
@@ -158,8 +153,8 @@
//------------------------------------------------------------------------------
-class MyTimeOutNotifier
- implements AbstractTimeOutManager.TimeOutNotifier
+class MyTimeOutHelper
+ implements AbstractTimeOutManager.TimeOutHelper
{
public void
timeOut(Object object)
@@ -168,23 +163,19 @@
System.out.println("session ("+session.getId()+") timed out - cleaning up");
session.getManager().destroyHttpSession(session);
}
-}
-class MyTimeOutTester
- implements AbstractTimeOutManager.TimeOutTester
-{
public long
- timeRemaining(Object object, long now, long maxInactiveInterval)
+ timeRemaining(Object object, long timeRegistered, long timeNow, long
maxInactiveInterval)
{
DistributedHttpSession session=(DistributedHttpSession)object;
- return session.getLastAccessedTime()+ maxInactiveInterval- now;
+ return session.getLastAccessedTime()+maxInactiveInterval-timeNow;
}
}
//------------------------------------------------------------------------------
/**
*
- * @version $Id: DistributedHttpSessionManager.java,v 1.8 2002/02/01 00:32:24
jules_gosnell Exp $
+ * @version $Id: DistributedHttpSessionManager.java,v 1.9 2002/02/01 19:12:03
jules_gosnell Exp $
* @author [EMAIL PROTECTED]
*/
//----------------------------------------
@@ -192,7 +183,7 @@
public class DistributedHttpSessionManager
implements org.mortbay.jetty.servlet.SessionManager
{
- static AbstractTimeOutManager _scavenger =new
NaiveTimeOutManager(5*1000, new MyTimeOutNotifier(), new MyTimeOutTester());
+ static AbstractTimeOutManager _scavenger =new
NaiveTimeOutManager(5*1000, new MyTimeOutHelper());
static { _scavenger.start(); }
final AbstractStore _store;
@@ -276,7 +267,8 @@
{
try
{
- tmp=new IntervalSnapshotStrategy(Integer.decode(snapshotFrequency).intValue(),
+ tmp=new IntervalSnapshotStrategy(this,
+ Integer.decode(snapshotFrequency).intValue(),
notifyActivation, notifyPassivation);
}
catch (NumberFormatException e)
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development