1 16 package org.apache.cocoon.webapps.session.acting; 17 18 import java.util.Map ; 19 20 import org.apache.avalon.framework.parameters.Parameters; 21 import org.apache.avalon.framework.service.ServiceException; 22 import org.apache.avalon.framework.thread.ThreadSafe; 23 import org.apache.cocoon.ProcessingException; 24 import org.apache.cocoon.acting.ServiceableAction; 25 import org.apache.cocoon.environment.Redirector; 26 import org.apache.cocoon.environment.SourceResolver; 27 import org.apache.cocoon.webapps.session.SessionManager; 28 29 44 public final class SessionAction 45 extends ServiceableAction 46 implements ThreadSafe { 47 48 public Map act(Redirector redirector, 49 SourceResolver resolver, 50 Map objectModel, 51 String source, 52 Parameters par) 53 throws ProcessingException { 54 SessionManager sessionManager = null; 55 try { 56 sessionManager = (SessionManager)this.manager.lookup(SessionManager.ROLE); 57 final String action = par.getParameter("action", "create"); 58 59 if ( action.equals("create") ) { 60 61 sessionManager.createSession(); 63 64 } else if ( action.equals("terminate") ) { 65 66 final String mode = par.getParameter("mode", "immediately"); 68 if ( mode.equals("immediately") ) { 69 sessionManager.terminateSession(true); 70 } else if ( mode.equals("if-unused") ) { 71 sessionManager.terminateSession(false); 72 } else { 73 throw new ProcessingException("Unknown mode " + mode + " for action " + action); 74 } 75 76 } else { 77 throw new ProcessingException("Unknown action: " + action); 78 } 79 } catch (ServiceException ce) { 80 throw new ProcessingException("Error during lookup of sessionManager component.", ce); 81 } finally { 82 this.manager.release( sessionManager ); 83 } 84 85 return EMPTY_MAP; 86 } 87 88 } 89 | Popular Tags |