git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 8 Feb 2018 10:37:58 +0000 (10:37 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 8 Feb 2018 10:37:58 +0000 (10:37 +0000)
server/user.jobengine.osgi.server/WEB-INF/web.xml
server/user.jobengine.osgi.server/WEB-INF/zk.xml
server/user.jobengine.osgi.server/src/user/jobengine/zk/util/DesktopCleanupListener.java [new file with mode: 0644]
server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionCleanupListener.java [new file with mode: 0644]
server/user.jobengine.osgi.server/src/user/jobengine/zk/util/SessionUtil.java
server/user.jobengine.osgi.server/src/user/jobengine/zk/util/WebAppCleanupListener.java [new file with mode: 0644]

index 92710e54bf31090a7625509d08decdd40ff92f14..fd917dc6243a1c7fc17ee59de03cf0c889daa290 100644 (file)
@@ -3,14 +3,6 @@
 <web-app id="WebApp">\r
        <display-name>Media Archivum</display-name>\r
 \r
-       <listener>\r
-               <listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class>\r
-       </listener>\r
-\r
-       <listener>\r
-               <listener-class>user.jobengine.zk.util.SessionListener</listener-class>\r
-       </listener>\r
-\r
        <!-- ZK -->\r
        <servlet>\r
                <description>ZK loader for ZUML pages</description>\r
index 1e4646e60dec8f9173495f5b2da72ed04f9f9443..4279acc526e4df99a696e57f56e571cf0dc259f9 100644 (file)
        <listener-class>org.zkoss.performance.monitor.PerformanceMeter</listener-class>\r
     </listener>\r
        <listener>\r
-               <listener-class>user.jobengine.zk.util.LifeCycleListener</listener-class>\r
+               <listener-class>user.jobengine.zk.util.SessionCleanupListener</listener-class>\r
        </listener>\r
+       <listener>\r
+               <listener-class>user.jobengine.zk.util.WebAppCleanupListener</listener-class>\r
+       </listener>\r
+       <listener>\r
+               <listener-class>user.jobengine.zk.util.DesktopCleanupListener</listener-class>\r
+       </listener>\r
+<!--   <listener> -->\r
+<!--           <listener-class>user.jobengine.zk.util.LifeCycleListener</listener-class> -->\r
+<!--   </listener> -->\r
+<!--   <listener> -->\r
+<!--           <listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class> -->\r
+<!--   </listener> -->\r
+<!--   <listener> -->\r
+<!--           <listener-class>user.jobengine.zk.util.SessionListener</listener-class> -->\r
+<!--   </listener> -->\r
        \r
 </zk>
\ 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 (file)
index 0000000..7a1fd19
--- /dev/null
@@ -0,0 +1,17 @@
+package user.jobengine.zk.util;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.zkoss.zk.ui.Desktop;\r
+import org.zkoss.zk.ui.util.DesktopCleanup;\r
+\r
+public class DesktopCleanupListener implements DesktopCleanup {\r
+       private static final Logger logger = LogManager.getLogger();\r
+\r
+       @Override\r
+       public void cleanup(Desktop desktop) throws Exception {\r
+               logger.info("Invoked");\r
+               SessionUtil.cleanup();\r
+       }\r
+\r
+}
\ 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 (file)
index 0000000..f59dc45
--- /dev/null
@@ -0,0 +1,12 @@
+package user.jobengine.zk.util;\r
+\r
+import org.zkoss.zk.ui.Session;\r
+import org.zkoss.zk.ui.util.SessionCleanup;\r
+\r
+public class SessionCleanupListener implements SessionCleanup {\r
+\r
+       @Override\r
+       public void cleanup(Session session) throws Exception {\r
+       }\r
+\r
+}
\ No newline at end of file
index 2b89f5869a612423e1cfe19944451548d3fbbb03..3e7a3aba19af0861c0204849580b4db84cbd500f 100644 (file)
@@ -14,6 +14,7 @@ import org.zkoss.zk.ui.Session;
 import org.zkoss.zk.ui.Sessions;\r
 \r
 import user.jobengine.server.IJobChangedListener;\r
+import user.jobengine.server.JobEngine;\r
 \r
 public class SessionUtil {\r
        private static Logger logger = LogManager.getLogger();\r
@@ -23,7 +24,18 @@ public class SessionUtil {
        private static final String LOCAL_JOBSUBMITTERS = "local_jobsubmitters";\r
        private static final String USERPRINCIPAL = "userPrincipal";\r
        private static final String AUTH_LOCATION = "mediacube.auth.location";\r
-       public static  final String JOBLISTENERLIST = "joblistenerlist";\r
+       public static final String JOBLISTENERLIST = "joblistenerlist";\r
+\r
+       static public void addJobChangedListener(IJobChangedListener listener) {\r
+               ArrayList<IJobChangedListener> list = (ArrayList<IJobChangedListener>) getAttribute(JOBLISTENERLIST);\r
+               if (list == null) {\r
+                       list = new ArrayList<IJobChangedListener>();\r
+                       setAttribute(JOBLISTENERLIST, list);\r
+               }\r
+               if (!list.contains(listener)) {\r
+                       list.add(listener);\r
+               }\r
+       }\r
 \r
        public static boolean authenticate(String account, String password) {\r
                Properties cfg = getConfiguration();\r
@@ -63,6 +75,16 @@ public class SessionUtil {
                return users.contains(String.format("%s:%s", account, password));\r
        }\r
 \r
+       static public void cleanup() {\r
+               ArrayList<IJobChangedListener> list = (ArrayList<IJobChangedListener>) getAttribute(SessionUtil.JOBLISTENERLIST);\r
+               if (list != null) {\r
+                       for (IJobChangedListener listener : list) {\r
+                               JobEngine.getInstance().removeJobChangedEventListener(listener);\r
+                       }\r
+                       setAttribute(SessionUtil.JOBLISTENERLIST, null);\r
+               }\r
+       }\r
+\r
        static public Object getAttribute(String name) {\r
                //HttpSession session = (HttpSession) (Executions.getCurrent()).getDesktop().getSession().getNativeSession();\r
                Session zkSession = Sessions.getCurrent();\r
@@ -125,18 +147,4 @@ public class SessionUtil {
                        session.setAttribute(name, obj);\r
        }\r
 \r
-\r
-       static public void addJobChangedListener(IJobChangedListener listener){\r
-               ArrayList<IJobChangedListener> list = (ArrayList<IJobChangedListener>)getAttribute(JOBLISTENERLIST);\r
-               if(list == null){\r
-                       list = new ArrayList<IJobChangedListener>();\r
-                       setAttribute(JOBLISTENERLIST, list);\r
-               }\r
-               if(!list.contains(listener)){\r
-                       list.add(listener);\r
-               }\r
-       }\r
-       \r
-       \r
-               \r
 }
\ 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 (file)
index 0000000..e410d79
--- /dev/null
@@ -0,0 +1,12 @@
+package user.jobengine.zk.util;\r
+\r
+import org.zkoss.zk.ui.WebApp;\r
+import org.zkoss.zk.ui.util.WebAppCleanup;\r
+\r
+public class WebAppCleanupListener implements WebAppCleanup {\r
+\r
+       @Override\r
+       public void cleanup(WebApp webApp) throws Exception {\r
+       }\r
+\r
+}
\ No newline at end of file