package org.safehaus.penrose.management.session; import org.safehaus.penrose.management.BaseService; import org.safehaus.penrose.management.PenroseJMXService; import org.safehaus.penrose.session.SessionManager; import org.safehaus.penrose.session.SessionServiceMBean; import org.safehaus.penrose.session.SessionClient; import org.safehaus.penrose.session.Session; import java.util.Collection; import java.util.ArrayList; /** * @author Endi Sukma Dewata */ public class SessionService extends BaseService implements SessionServiceMBean { public final Collection<String> EMPTY = new ArrayList<String>(); private SessionManager sessionManager; private String sessionName; public SessionService(PenroseJMXService jmxService, SessionManager serviceManager, String sessionName) throws Exception { this.jmxService = jmxService; this.sessionManager = serviceManager; this.sessionName = sessionName; } public Object getObject() { return sessionManager.getSession(sessionName); } public String getObjectName() { return SessionClient.getStringObjectName(sessionName); } public SessionManager getSessionManager() { return sessionManager; } public void setSessionManager(SessionManager serviceManager) { this.sessionManager = serviceManager; } public Object getSessionName() { return sessionName; } public void setSessionName(String sessionName) { this.sessionName = sessionName; } public Collection<String> getOperationNames() throws Exception { Session session = sessionManager.getSession(sessionName); if (session == null) return EMPTY; Collection<String> list = new ArrayList<String>(); list.addAll(session.getOperationNames()); return list; } public void abandon(String operationName) throws Exception { Session session = sessionManager.getSession(sessionName); if (session == null) return; session.abandon(operationName); } }