From: Vásáry Dániel Date: Thu, 8 Feb 2018 10:37:58 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=b9dfe88b03c339ec9dcb3c9d62279bd30aca7ccd;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30874 --- diff --git a/server/user.jobengine.osgi.server/WEB-INF/web.xml b/server/user.jobengine.osgi.server/WEB-INF/web.xml index 92710e54..fd917dc6 100644 --- a/server/user.jobengine.osgi.server/WEB-INF/web.xml +++ b/server/user.jobengine.osgi.server/WEB-INF/web.xml @@ -3,14 +3,6 @@ Media Archivum - - org.zkoss.zk.ui.http.HttpSessionListener - - - - user.jobengine.zk.util.SessionListener - - ZK loader for ZUML pages diff --git a/server/user.jobengine.osgi.server/WEB-INF/zk.xml b/server/user.jobengine.osgi.server/WEB-INF/zk.xml index 1e4646e6..4279acc5 100644 --- a/server/user.jobengine.osgi.server/WEB-INF/zk.xml +++ b/server/user.jobengine.osgi.server/WEB-INF/zk.xml @@ -26,7 +26,22 @@ org.zkoss.performance.monitor.PerformanceMeter - user.jobengine.zk.util.LifeCycleListener + user.jobengine.zk.util.SessionCleanupListener + + user.jobengine.zk.util.WebAppCleanupListener + + + user.jobengine.zk.util.DesktopCleanupListener + + + + + + + + + + \ No newline at end of file diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/DesktopCleanupListener.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/DesktopCleanupListener.java new file mode 100644 index 00000000..7a1fd190 --- /dev/null +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/DesktopCleanupListener.java @@ -0,0 +1,17 @@ +package user.jobengine.zk.util; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.zkoss.zk.ui.Desktop; +import org.zkoss.zk.ui.util.DesktopCleanup; + +public class DesktopCleanupListener implements DesktopCleanup { + private static final Logger logger = LogManager.getLogger(); + + @Override + public void cleanup(Desktop desktop) throws Exception { + logger.info("Invoked"); + SessionUtil.cleanup(); + } + +} \ No newline at end of file diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionCleanupListener.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionCleanupListener.java new file mode 100644 index 00000000..f59dc45d --- /dev/null +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionCleanupListener.java @@ -0,0 +1,12 @@ +package user.jobengine.zk.util; + +import org.zkoss.zk.ui.Session; +import org.zkoss.zk.ui.util.SessionCleanup; + +public class SessionCleanupListener implements SessionCleanup { + + @Override + public void cleanup(Session session) throws Exception { + } + +} \ No newline at end of file diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionUtil.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionUtil.java index 2b89f586..3e7a3aba 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionUtil.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionUtil.java @@ -14,6 +14,7 @@ import org.zkoss.zk.ui.Session; import org.zkoss.zk.ui.Sessions; import user.jobengine.server.IJobChangedListener; +import user.jobengine.server.JobEngine; public class SessionUtil { private static Logger logger = LogManager.getLogger(); @@ -23,7 +24,18 @@ public class SessionUtil { private static final String LOCAL_JOBSUBMITTERS = "local_jobsubmitters"; private static final String USERPRINCIPAL = "userPrincipal"; private static final String AUTH_LOCATION = "mediacube.auth.location"; - public static final String JOBLISTENERLIST = "joblistenerlist"; + public static final String JOBLISTENERLIST = "joblistenerlist"; + + static public void addJobChangedListener(IJobChangedListener listener) { + ArrayList list = (ArrayList) getAttribute(JOBLISTENERLIST); + if (list == null) { + list = new ArrayList(); + setAttribute(JOBLISTENERLIST, list); + } + if (!list.contains(listener)) { + list.add(listener); + } + } public static boolean authenticate(String account, String password) { Properties cfg = getConfiguration(); @@ -63,6 +75,16 @@ public class SessionUtil { return users.contains(String.format("%s:%s", account, password)); } + static public void cleanup() { + ArrayList list = (ArrayList) getAttribute(SessionUtil.JOBLISTENERLIST); + if (list != null) { + for (IJobChangedListener listener : list) { + JobEngine.getInstance().removeJobChangedEventListener(listener); + } + setAttribute(SessionUtil.JOBLISTENERLIST, null); + } + } + static public Object getAttribute(String name) { //HttpSession session = (HttpSession) (Executions.getCurrent()).getDesktop().getSession().getNativeSession(); Session zkSession = Sessions.getCurrent(); @@ -125,18 +147,4 @@ public class SessionUtil { session.setAttribute(name, obj); } - - static public void addJobChangedListener(IJobChangedListener listener){ - ArrayList list = (ArrayList)getAttribute(JOBLISTENERLIST); - if(list == null){ - list = new ArrayList(); - setAttribute(JOBLISTENERLIST, list); - } - if(!list.contains(listener)){ - list.add(listener); - } - } - - - } \ No newline at end of file diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/WebAppCleanupListener.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/WebAppCleanupListener.java new file mode 100644 index 00000000..e410d793 --- /dev/null +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/util/WebAppCleanupListener.java @@ -0,0 +1,12 @@ +package user.jobengine.zk.util; + +import org.zkoss.zk.ui.WebApp; +import org.zkoss.zk.ui.util.WebAppCleanup; + +public class WebAppCleanupListener implements WebAppCleanup { + + @Override + public void cleanup(WebApp webApp) throws Exception { + } + +} \ No newline at end of file