|
Author: adrianc
Date: Sun Aug 5 09:43:59 2012 New Revision: 1369543 URL: http://svn.apache.org/viewvc?rev=1369543&view=rev Log: Moved method used exclusively by PersistedServiceJob from JobManager to PersistedServiceJob. Also added some JavaDocs. Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobPoller.java ofbiz/trunk/framework/service/src/org/ofbiz/service/job/PersistedServiceJob.java Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java?rev=1369543&r1=1369542&r2=1369543&view=diff ============================================================================== --- ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java (original) +++ ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java Sun Aug 5 09:43:59 2012 @@ -53,7 +53,11 @@ import org.ofbiz.service.calendar.Recurr import org.ofbiz.service.config.ServiceConfigUtil; /** - * JobManager + * Job manager. The job manager queues jobs. It contains a <code>JobPoller</code> and a + * <code>Delegator</code>. Client code can queue a job to be run immediately by calling the + * {@link #runJob(Job)} method, or schedule a job to be run later by calling the + * {@link #schedule(String, String, String, Map, long, int, int, int, long, int)} method. + * Scheduled jobs are persisted in the JobSandbox entity. */ public final class JobManager { @@ -69,6 +73,12 @@ public final class JobManager { } } + /** + * Returns a <code>JobManager</code> instance. + * @param delegator + * @param enablePoller Enables polling of the JobSandbox entity. + * @throws IllegalStateException if the Job Manager is shut down. + */ public static JobManager getInstance(Delegator delegator, boolean enablePoller) { assertIsRunning(); Assert.notNull("delegator", delegator); @@ -84,31 +94,9 @@ public final class JobManager { return jm; } - /** gets the recurrence info object for a job. */ - public static RecurrenceInfo getRecurrenceInfo(GenericValue job) { - try { - if (job != null && !UtilValidate.isEmpty(job.getString("recurrenceInfoId"))) { - if (job.get("cancelDateTime") != null) { - // cancel has been flagged, no more recurrence - return null; - } - GenericValue ri = job.getRelatedOne("RecurrenceInfo", false); - if (ri != null) { - return new RecurrenceInfo(ri); - } else { - return null; - } - } else { - return null; - } - } catch (GenericEntityException e) { - Debug.logError(e, "Problem getting RecurrenceInfo entity from JobSandbox", module); - } catch (RecurrenceInfoException re) { - Debug.logError(re, "Problem creating RecurrenceInfo instance: " + re.getMessage(), module); - } - return null; - } - + /** + * Shuts down all job managers. This method is called when OFBiz shuts down. + */ public static void shutDown() { isShutDown = true; for (JobManager jm : registeredManagers.values()) { @@ -153,7 +141,12 @@ public final class JobManager { return jp.getPoolState(); } - public synchronized List<Job> poll() { + /** + * Scans the JobSandbox entity and returns a list of jobs that are due to run. + * Returns an empty list if there are no jobs due to run. + * This method is called by the {@link JobPoller} polling thread. + */ + protected synchronized List<Job> poll() { assertIsRunning(); DispatchContext dctx = getDispatcher().getDispatchContext(); if (dctx == null) { Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobPoller.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobPoller.java?rev=1369543&r1=1369542&r2=1369543&view=diff ============================================================================== --- ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobPoller.java (original) +++ ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobPoller.java Sun Aug 5 09:43:59 2012 @@ -34,7 +34,7 @@ import org.ofbiz.service.config.ServiceC import org.apache.commons.lang.math.NumberUtils; /** - * JobPoller - Polls for persisted jobs to run. + * Job poller. Queues and runs jobs. */ public final class JobPoller implements Runnable { Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/job/PersistedServiceJob.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/job/PersistedServiceJob.java?rev=1369543&r1=1369542&r2=1369543&view=diff ============================================================================== --- ofbiz/trunk/framework/service/src/org/ofbiz/service/job/PersistedServiceJob.java (original) +++ ofbiz/trunk/framework/service/src/org/ofbiz/service/job/PersistedServiceJob.java Sun Aug 5 09:43:59 2012 @@ -33,6 +33,7 @@ import org.ofbiz.base.util.UtilDateTime; import org.ofbiz.base.util.UtilGenerics; import org.ofbiz.base.util.UtilProperties; import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.service.calendar.RecurrenceInfoException; import org.ofbiz.service.calendar.TemporalExpression; import org.ofbiz.service.calendar.TemporalExpressionWorker; import org.ofbiz.entity.Delegator; @@ -132,7 +133,7 @@ public class PersistedServiceJob extends long maxRecurrenceCount = -1; long currentRecurrenceCount = 0; TemporalExpression expr = null; - RecurrenceInfo recurrence = JobManager.getRecurrenceInfo(jobValue); + RecurrenceInfo recurrence = getRecurrenceInfo(); if (recurrence != null) { Debug.logWarning("Persisted Job [" + getJobId() + "] references a RecurrenceInfo, recommend using TemporalExpression instead", module); currentRecurrenceCount = recurrence.getCurrentCount(); @@ -314,4 +315,20 @@ public class PersistedServiceJob extends } return currentRetryCount < maxRetry; } + + private RecurrenceInfo getRecurrenceInfo() { + try { + if (UtilValidate.isNotEmpty(jobValue.getString("recurrenceInfoId"))) { + GenericValue ri = jobValue.getRelatedOne("RecurrenceInfo", false); + if (ri != null) { + return new RecurrenceInfo(ri); + } + } + } catch (GenericEntityException e) { + Debug.logError(e, "Problem getting RecurrenceInfo entity from JobSandbox", module); + } catch (RecurrenceInfoException re) { + Debug.logError(re, "Problem creating RecurrenceInfo instance: " + re.getMessage(), module); + } + return null; + } } |
| Free forum by Nabble | Edit this page |
