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