Author: dpillot
Date: Tue Sep 25 17:57:28 2007
New Revision: 18651

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18651&repname=
=3Djahia
Log:
pdisplay send to polling request a correct flag to reload the page in any c=
ase if a  quick job have completed between the lapse

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitors/Abst=
ractPDisplayAction.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitors/PDis=
playAction.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitors/Site=
IndexingJobDisplayAction.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/scheduler=
/SchedulerService.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/scheduler=
/SchedulerServiceImpl.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitor=
s/AbstractPDisplayAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/ajax/monitors/AbstractPDisplayAction.java&r=
ev=3D18651&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitors/Abst=
ractPDisplayAction.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitors/Abst=
ractPDisplayAction.java Tue Sep 25 17:57:28 2007
@@ -1,22 +1,22 @@
 package org.jahia.ajax.monitors;
 =

-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.jahia.ajax.AjaxAction;
-import org.jahia.services.scheduler.SchedulerService;
-import org.jahia.services.scheduler.BackgroundJob;
-import org.jahia.services.usermanager.JahiaUser;
-import org.jahia.services.sites.JahiaSite;
-import org.jahia.params.ParamBean;
-import org.jahia.exceptions.JahiaException;
 import org.apache.log4j.Logger;
+import org.apache.struts.action.ActionForm;
 import org.apache.struts.action.ActionForward;
 import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.ActionForm;
-import org.quartz.JobDetail;
+import org.jahia.ajax.AjaxAction;
+import org.jahia.data.JahiaData;
+import org.jahia.exceptions.JahiaException;
+import org.jahia.params.ParamBean;
+import org.jahia.services.scheduler.BackgroundJob;
+import org.jahia.services.sites.JahiaSite;
+import org.jahia.services.usermanager.JahiaUser;
 import org.quartz.JobDataMap;
+import org.quartz.JobDetail;
 =

+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
 =

@@ -30,10 +30,12 @@
  * @author joepi
  * @version $Id: PDisplayAction.java 15861 2006-12-01 13:40:46Z dpillot $
  */
-abstract class AbstractPDisplayAction extends AjaxAction /*implements Sche=
dulerListener, JobListener */{
+abstract class AbstractPDisplayAction extends AjaxAction {
 =

     private static final Logger logger =3D Logger.getLogger(AbstractPDispl=
ayAction.class);
     private long cronscheduledrange=3D3600000;//default 1 hour
+    private long lastJobtime=3D0;
+    private static String lastRequestTIme=3D"lastrequestedTime";
     // storage of users variables
     // todo: manage multiples sessions for the same user
     //private static Map userresponses =3D Collections.synchronizedMap(new=
 HashMap(256));
@@ -95,7 +97,18 @@
             }*/
             String uKey =3D currentUser.getUserKey();
 =

-            if (uKey !=3D null) {
+            if (uKey !=3D null ) {
+                //check the last request's time
+                String lastrequestedString=3D(String)request.getSession().=
getAttribute(AbstractPDisplayAction.lastRequestTIme);
+                String reloading =3D "false";
+                if(lastrequestedString!=3Dnull){
+                    //check to know if wflow jobs have been launched since=
 this
+                    long lastrequest=3DLong.parseLong(lastrequestedString);
+                    logger.debug(" @"+lastrequest);
+                    if(needToReload(lastrequest)) reloading=3D"true";
+                }
+                lastrequestedString=3D""+System.currentTimeMillis();
+                request.getSession().setAttribute(AbstractPDisplayAction.l=
astRequestTIme,lastrequestedString);
 =

                 /*if (!userreload.isEmpty()
                         && userreload.containsKey(uKey)
@@ -110,7 +123,7 @@
                 } else {*/
 =

                     int[] resp =3D computeResponses(currentUser);
-                    String reloading =3D getActualReloadFlag(uKey);
+                    //String reloading =3D getActualReloadFlag(uKey);
                     StringBuffer buf =3D new StringBuffer();
                     buf.append(XML_HEADER);
                     buf.append("<response>\n");
@@ -214,6 +227,8 @@
 =

     protected abstract List getJobTypesToIgnore();
 =

+    protected abstract boolean needToReload(long time);
+
     private static String[] INFO_KEYS =3D {"started", "running", "otherrun=
ning", "waiting", "otherwaiting", "pooled"};
 =

 }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitor=
s/PDisplayAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/ajax/monitors/PDisplayAction.java&rev=3D186=
51&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitors/PDis=
playAction.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitors/PDis=
playAction.java Tue Sep 25 17:57:28 2007
@@ -20,9 +20,6 @@
 import org.jahia.exceptions.JahiaException;
 import org.jahia.services.scheduler.SchedulerService;
 =

-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
 =

@@ -36,7 +33,7 @@
  * @author joepi
  * @version $Id$
  */
-public class PDisplayAction extends AbstractPDisplayAction /*implements Sc=
hedulerListener, JobListener */{
+public class PDisplayAction extends AbstractPDisplayAction {
 =

     private static final Logger logger =3D Logger.getLogger(PDisplayAction=
.class);
     private static final SchedulerService service =3D servicesRegistry.get=
SchedulerService();
@@ -81,4 +78,9 @@
         return jobTypesToIgnore;
     }
 =

+    protected boolean needToReload(long time) {
+        if(service.getLastJobCompletedTime()>=3Dtime) return true;
+        return false;
+    }
+
 }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitor=
s/SiteIndexingJobDisplayAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/ajax/monitors/SiteIndexingJobDisplayAction.=
java&rev=3D18651&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitors/Site=
IndexingJobDisplayAction.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/ajax/monitors/Site=
IndexingJobDisplayAction.java Tue Sep 25 17:57:28 2007
@@ -17,16 +17,12 @@
 import java.util.*;
 =

 /**
- * Process Display Action.
- * this ajax action class return a count of processes waiting in the proce=
ss pool<br>
- * and an indication of concurrent threads currently running to execute th=
e jobs scheduled in the pool.<br>
- * (the better approximation we have for now of the "working charge" of pr=
ocess server).<br>
- * for standard users (non admin or superuser), a count of process in the =
pool scheduled by other users is provided.<br>
+ * SiteIndexingJobDisplayAction
  *
  * @author joepi
- * @version $Id: PDisplayAction.java 15861 2006-12-01 13:40:46Z dpillot $
+ * @version $Id: $
  */
-public class SiteIndexingJobDisplayAction extends AbstractPDisplayAction /=
*implements SchedulerListener, JobListener */{
+public class SiteIndexingJobDisplayAction extends AbstractPDisplayAction {
 =

     private static final Logger logger =3D Logger.getLogger(SiteIndexingJo=
bDisplayAction.class);
     private static List jobTypesToIgnore =3D new ArrayList();
@@ -63,6 +59,10 @@
         return jobTypesToIgnore;
     }
 =

+    protected boolean needToReload(long time) {
+        return false;
+    }
+
     public static List getJobsDetails(boolean activeOnly) throws JahiaExce=
ption {
         JahiaSitesService siteServ =3D ServicesRegistry.getInstance().getJ=
ahiaSitesService();
         Enumeration sites =3D siteServ.getSites();

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/sch=
eduler/SchedulerService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/scheduler/SchedulerService.java&re=
v=3D18651&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/scheduler=
/SchedulerService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/scheduler=
/SchedulerService.java Tue Sep 25 17:57:28 2007
@@ -153,4 +153,9 @@
 =

     public abstract Scheduler getScheduler();
 =

+    /**
+     * to get the last time where a job was executed
+     * @return time as long
+     */
+    public abstract long getLastJobCompletedTime();
 }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/sch=
eduler/SchedulerServiceImpl.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/scheduler/SchedulerServiceImpl.jav=
a&rev=3D18651&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/scheduler=
/SchedulerServiceImpl.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/scheduler=
/SchedulerServiceImpl.java Tue Sep 25 17:57:28 2007
@@ -32,7 +32,6 @@
 import org.quartz.spi.TriggerFiredBundle;
 =

 import java.io.File;
-import java.io.InvalidClassException;
 import java.util.*;
 =

 /**
@@ -52,13 +51,14 @@
     private ThreadLocal waitingJobs =3D new ThreadLocal();
 =

     private boolean schedulerRunning =3D false;
-//    private List executingProcesses;
+    //private List executingProcesses;
 =

     private ClusterService clusterService;
     private LockService lockService;
 =

     private static final String[] JOBTYPES =3D {"import", "copypaste", "pi=
ckercopy", "workflow", "picked", "propagate1", "propagate2", "production"};
-
+    //last job's time
+    public long lastJobCompletedTime =3D0;
     protected SchedulerServiceImpl() {
     }
 =

@@ -138,6 +138,8 @@
                 }
 =

                 public void triggerComplete(Trigger trigger, JobExecutionC=
ontext jobExecutionContext, int i) {
+                    lastJobCompletedTime =3DSystem.currentTimeMillis();
+                    logger.debug("trigger completed");
                 }
             };
 =

@@ -288,6 +290,7 @@
         }
         try {
             JobDataMap data =3D jobDetail.getJobDataMap();
+            //lastJobCompletedTime=3DSystem.currentTimeMillis();
             data.putAsString(BackgroundJob.JOB_SCHEDULED, System.currentTi=
meMillis()); //scheduled
             SimpleTrigger trigger =3D new SimpleTrigger(jobDetail.getName(=
) + "_Trigger", INSTANT_TRIGGER_GROUP);
             trigger.setVolatility(jobDetail.isVolatile());//volatility of =
trigger depending of the jobdetail's volatility
@@ -509,6 +512,9 @@
      */
     public void deleteJob(String jobName, String groupName)
             throws JahiaException {
+        if(!groupName.equals("RetentionRuleJob")){
+            logger.debug("try to delete job:"+jobName+" gn:"+groupName);
+        }
         if (!schedulerRunning) {
             return;
         }
@@ -519,6 +525,7 @@
             }
             scheduler.deleteJob(jobName, groupName);
         } catch (SchedulerException se) {
+            logger.debug(se);
             throw getJahiaException(se);
         }
     }
@@ -862,4 +869,7 @@
     public Scheduler getScheduler() {
         return scheduler;
     }
+    public long getLastJobCompletedTime(){
+        return lastJobCompletedTime;
+    }
 }

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to