1 16 package org.mortbay.j2ee.session; 17 18 import java.util.HashMap ; 19 import java.util.Map ; 20 21 import javax.servlet.http.HttpServletRequest ; 22 23 import org.jfox.ioc.logger.Logger; 24 25 27 public class LocalStore 28 implements Store 29 { 30 protected static final Logger _log=Logger.getLogger(LocalStore.class); 31 Map _sessions=new HashMap (); 32 33 protected Manager _manager; 34 public Manager getManager(){return _manager;} 35 public void setManager(Manager manager){_manager=manager;} 36 37 public void start() {} 39 public void stop() {} 40 public void destroy() {} 41 42 public State 44 newState(String id, int maxInactiveInterval) 45 { 46 return new LocalState(id, maxInactiveInterval, _actualMaxInactiveInterval); 47 } 48 49 public State 50 loadState(String id) 51 { 52 synchronized (_sessions) {return (State)_sessions.get(id);} 53 } 54 55 public void 56 storeState(State state) 57 { 58 try 59 { 60 synchronized (_sessions) {_sessions.put(state.getId(), state);} 61 } 62 catch (Exception e) 63 { 64 _log.warn("could not store session"); 65 } 66 } 67 68 public void 69 removeState(State state) 70 { 71 try 72 { 73 synchronized (_sessions) {_sessions.remove(state.getId());} 74 } 75 catch (Exception e) 76 { 77 _log.error("could not remove session", e); 78 } 79 } 80 81 public String 82 allocateId(HttpServletRequest request) 83 { 84 return getManager().getIdGenerator().nextId(request); 85 } 86 87 public void 88 deallocateId(String id) 89 { 90 } 91 92 public boolean 93 isDistributed() 94 { 95 return false; 96 } 97 98 99 public void 100 passivateSession(StateAdaptor sa) 101 { 102 sa.invalidate(); 104 } 105 106 public void setScavengerPeriod(int period) {} 108 public void setScavengerExtraTime(int time) {} 109 public void scavenge() {} 110 111 protected int _actualMaxInactiveInterval=0; 112 public void setActualMaxInactiveInterval(int interval) {_actualMaxInactiveInterval=interval;} 113 public int getActualMaxInactiveInterval() {return _actualMaxInactiveInterval;} 114 115 public Object 116 clone() 117 { 118 LocalStore ls=new LocalStore(); 119 ls.setActualMaxInactiveInterval(_actualMaxInactiveInterval); 120 return ls; 121 } 122 } 123 | Popular Tags |