diff options
Diffstat (limited to 'pki/base/common/src/com/netscape/cmscore/jobs')
4 files changed, 157 insertions, 178 deletions
diff --git a/pki/base/common/src/com/netscape/cmscore/jobs/CronItem.java b/pki/base/common/src/com/netscape/cmscore/jobs/CronItem.java index 4b248954..7bc14625 100644 --- a/pki/base/common/src/com/netscape/cmscore/jobs/CronItem.java +++ b/pki/base/common/src/com/netscape/cmscore/jobs/CronItem.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.jobs; - import java.util.StringTokenizer; import java.util.Vector; @@ -25,15 +24,15 @@ import com.netscape.certsrv.apps.CMS; import com.netscape.certsrv.base.EBaseException; import com.netscape.certsrv.logging.ILogger; - /** * class representing one Job cron item - * <p>here, an "item" refers to one of the 5 fields in a cron string; - * "element" refers to any comma-deliminated element in an - * "item"...which includes both numbers and '-' separated ranges. + * <p> + * here, an "item" refers to one of the 5 fields in a cron string; "element" + * refers to any comma-deliminated element in an "item"...which includes both + * numbers and '-' separated ranges. * <p> * for each of the 5 cron fields, it's represented as a CronItem - * + * * @author cfu * @version $Revision$, $Date$ */ @@ -49,22 +48,22 @@ public class CronItem { // store all elements in a field. // elements can either be numbers or ranges (CronRange) protected Vector<CronRange> mElements = new Vector<CronRange>(); - + public CronItem(int min, int max) { mMin = min; mMax = max; } - + /** * parses and sets a string cron item - * @param sItem the string representing an item of a cron string. - * item can be potentially comma separated with ranges specified - * with '-'s + * + * @param sItem the string representing an item of a cron string. item can + * be potentially comma separated with ranges specified with '-'s */ public void set(String sItem) throws EBaseException { - + if (sItem.equals(ALL)) { - // System.out.println("CronItem set(): item is ALL"); + // System.out.println("CronItem set(): item is ALL"); CronRange cr = new CronRange(); cr.setBegin(mMin); @@ -90,7 +89,7 @@ public class CronItem { } catch (NumberFormatException e) { // throw ... log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_INVALID_TOKEN", tok, e.toString())); + CMS.getLogMessage("CMSCORE_JOBS_INVALID_TOKEN", tok, e.toString())); throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_JOB_CRON")); } String sEnd = tok.substring(r + 1, tok.length()); @@ -100,7 +99,7 @@ public class CronItem { } catch (NumberFormatException e) { // throw ... log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_INVALID_TOKEN", tok, e.toString())); + CMS.getLogMessage("CMSCORE_JOBS_INVALID_TOKEN", tok, e.toString())); throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_JOB_CRON")); } // got both begin and end for range @@ -112,11 +111,11 @@ public class CronItem { if (!cr.isValidRange(mMin, mMax)) { // throw... log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_INVALID_RANGE", - tok)); + CMS.getLogMessage("CMSCORE_JOBS_INVALID_RANGE", + tok)); throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_JOB_CRON")); } - // System.out.println("CronItem set(): adding a range"); + // System.out.println("CronItem set(): adding a range"); mElements.addElement(cr); } else { // number element, begin and end are the same @@ -130,15 +129,15 @@ public class CronItem { if (!cr.isValidRange(mMin, mMax)) { // throw... log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_INVALID_MIN_MAX_RANGE", Integer.toString(mMin), Integer.toString(mMax))); + CMS.getLogMessage("CMSCORE_JOBS_INVALID_MIN_MAX_RANGE", Integer.toString(mMin), Integer.toString(mMax))); throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_JOB_CRON")); } - // System.out.println("CronItem set(): adding a number"); + // System.out.println("CronItem set(): adding a number"); mElements.addElement(cr); } catch (NumberFormatException e) { // throw... log(ILogger.LL_FAILURE, - "invalid item in cron: " + tok); + "invalid item in cron: " + tok); throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_JOB_CRON")); } } @@ -147,8 +146,9 @@ public class CronItem { } /** - * get the vector stuffed with elements where each element is - * represented as CronRange + * get the vector stuffed with elements where each element is represented as + * CronRange + * * @return a vector of CronRanges */ public Vector<CronRange> getElements() { @@ -162,7 +162,6 @@ public class CronItem { if (mLogger == null) return; mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, - level, "jobs/CronItem: " + msg); + level, "jobs/CronItem: " + msg); } } - diff --git a/pki/base/common/src/com/netscape/cmscore/jobs/CronRange.java b/pki/base/common/src/com/netscape/cmscore/jobs/CronRange.java index 59293ee1..0a90dbb2 100644 --- a/pki/base/common/src/com/netscape/cmscore/jobs/CronRange.java +++ b/pki/base/common/src/com/netscape/cmscore/jobs/CronRange.java @@ -17,27 +17,24 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.jobs; - - - /** * class representing one Job cron element - * <p>here, an "item" refers to one of the 5 fields in a cron string; - * "element" refers to any comma-deliminated element in an - * "item"...which includes both numbers and '-' separated ranges. * <p> - * an Element can contain either an integer number or a range - * specified as CronRange. In case of integer numbers, begin - * and end are of the same value - * + * here, an "item" refers to one of the 5 fields in a cron string; "element" + * refers to any comma-deliminated element in an "item"...which includes both + * numbers and '-' separated ranges. + * <p> + * an Element can contain either an integer number or a range specified as + * CronRange. In case of integer numbers, begin and end are of the same value + * * @author cfu * @version $Revision$, $Date$ */ public class CronRange { int mBegin = 0; int mEnd = 0; - - public CronRange () { + + public CronRange() { } /** @@ -46,7 +43,7 @@ public class CronRange { public void setBegin(int i) { mBegin = i; } - + /** * gets the lower boundary value of the range */ @@ -69,17 +66,18 @@ public class CronRange { } /** - * checks to see if the lower and higher boundary values are - * within the min/max. + * checks to see if the lower and higher boundary values are within the + * min/max. + * * @param min the minimum value one can specify in this field * @param max the maximum value one can specify in this field - * @return a boolean (true/false) on whether the begin/end values - * are within the min/max passed in the params + * @return a boolean (true/false) on whether the begin/end values are within + * the min/max passed in the params */ public boolean isValidRange(int min, int max) { if ((mEnd < mBegin) || - (mBegin < min) || - (mEnd > max)) + (mBegin < min) || + (mEnd > max)) return false; else return true; diff --git a/pki/base/common/src/com/netscape/cmscore/jobs/JobCron.java b/pki/base/common/src/com/netscape/cmscore/jobs/JobCron.java index 8272c448..828834a2 100644 --- a/pki/base/common/src/com/netscape/cmscore/jobs/JobCron.java +++ b/pki/base/common/src/com/netscape/cmscore/jobs/JobCron.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.jobs; - import java.util.Calendar; import java.util.Enumeration; import java.util.StringTokenizer; @@ -28,33 +27,28 @@ import com.netscape.certsrv.base.EBaseException; import com.netscape.certsrv.jobs.IJobCron; import com.netscape.certsrv.logging.ILogger; - /** * class representing one Job cron information - * <p>here, an "item" refers to one of the 5 fields in a cron string; - * "element" refers to any comma-deliminated element in an - * "item"...which includes both numbers and '-' separated ranges. - * A cron string in the configuration takes the following format: - * <i>minute (0-59), - * hour (0-23), - * day of the month (1-31), - * month of the year (1-12), - * day of the week (0-6 with 0=Sunday)</i> * <p> - * e.g. jobsScheduler.job.rnJob1.cron=30 11,23 * * 1-5 - * In this example, the job "rnJob1" will be executed from Monday - * through Friday, at 11:30am and 11:30pm. + * here, an "item" refers to one of the 5 fields in a cron string; "element" + * refers to any comma-deliminated element in an "item"...which includes both + * numbers and '-' separated ranges. A cron string in the configuration takes + * the following format: <i>minute (0-59), hour (0-23), day of the month (1-31), + * month of the year (1-12), day of the week (0-6 with 0=Sunday)</i> * <p> - * + * e.g. jobsScheduler.job.rnJob1.cron=30 11,23 * * 1-5 In this example, the job + * "rnJob1" will be executed from Monday through Friday, at 11:30am and 11:30pm. + * <p> + * * @author cfu * @version $Revision$, $Date$ */ public class JobCron implements IJobCron { /** - * CRON_MINUTE, CRON_HOUR, CRON_DAY_OF_MONTH, CRON_MONTH_OF_YEAR, - * and CRON_DAY_OF_WEEK are to be used in <b>getItem()</b> to - * retrieve the corresponding <b>CronItem</b> + * CRON_MINUTE, CRON_HOUR, CRON_DAY_OF_MONTH, CRON_MONTH_OF_YEAR, and + * CRON_DAY_OF_WEEK are to be used in <b>getItem()</b> to retrieve the + * corresponding <b>CronItem</b> */ public static final String CRON_MINUTE = "minute"; public static final String CRON_HOUR = "hour"; @@ -72,7 +66,7 @@ public class JobCron implements IJobCron { CronItem cDOW = null; public JobCron(String cronString) - throws EBaseException { + throws EBaseException { mCronString = cronString; // create all 5 items in the cron @@ -84,9 +78,9 @@ public class JobCron implements IJobCron { cronToVals(mCronString); } - - private void cronToVals(String cronString) - throws EBaseException { + + private void cronToVals(String cronString) + throws EBaseException { StringTokenizer st = new StringTokenizer(cronString); String sMinute = null; @@ -101,8 +95,8 @@ public class JobCron implements IJobCron { cMinute.set(sMinute); } } catch (EBaseException e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_INVALID_MIN", e.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("CMSCORE_JOBS_INVALID_MIN", e.toString())); throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_JOB_CRON")); } @@ -118,7 +112,7 @@ public class JobCron implements IJobCron { if (st.hasMoreTokens()) { sDayOMonth = st.nextToken(); - // cDOM.set(sDayOMonth); + // cDOM.set(sDayOMonth); } try { @@ -133,24 +127,22 @@ public class JobCron implements IJobCron { if (st.hasMoreTokens()) { sDayOWeek = st.nextToken(); - // cDOW.set(sDayOWeek); + // cDOW.set(sDayOWeek); } /** - * day-of-month or day-of-week, or both? - * if only one of them is '*', the non '*' one prevails, - * the '*' one will remain empty (no elements) + * day-of-month or day-of-week, or both? if only one of them is '*', the + * non '*' one prevails, the '*' one will remain empty (no elements) */ // day-of-week - if ((sDayOMonth!= null) && sDayOMonth.equals(CronItem.ALL) && (sDayOWeek!= null) && !sDayOWeek.equals(CronItem.ALL)) { + if ((sDayOMonth != null) && sDayOMonth.equals(CronItem.ALL) && (sDayOWeek != null) && !sDayOWeek.equals(CronItem.ALL)) { try { cDOW.set(sDayOWeek); } catch (EBaseException e) { log(ILogger.LL_FAILURE, CMS.getLogMessage("CMSCORE_JOBS_INVALID_DAY_OF_WEEK", e.toString())); throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_JOB_CRON")); } - } else - if ((sDayOMonth!= null) && !sDayOMonth.equals(CronItem.ALL) && (sDayOWeek!= null) && sDayOWeek.equals(CronItem.ALL)) { + } else if ((sDayOMonth != null) && !sDayOMonth.equals(CronItem.ALL) && (sDayOWeek != null) && sDayOWeek.equals(CronItem.ALL)) { try { cDOM.set(sDayOMonth); } catch (EBaseException e) { @@ -159,7 +151,7 @@ public class JobCron implements IJobCron { } } else { // if both '*', every day, if neither is '*', do both try { - if (sDayOWeek!= null) { + if (sDayOWeek != null) { cDOW.set(sDayOWeek); } } catch (EBaseException e) { @@ -179,10 +171,11 @@ public class JobCron implements IJobCron { /** * retrieves the cron item - * @param item name of the item. must be one of the <b>CRON_*</b> - * strings defined in this class - * @return an instance of the CronItem class which represents the - * requested cron item + * + * @param item name of the item. must be one of the <b>CRON_*</b> strings + * defined in this class + * @return an instance of the CronItem class which represents the requested + * cron item */ public CronItem getItem(String item) { if (item.equals(CRON_MINUTE)) { @@ -204,10 +197,11 @@ public class JobCron implements IJobCron { /** * Does the element fit any element in the item + * * @param element the element of "now" in cron format * @param item the item consists of a vector of elements - * @return boolean (true/false) on whether the element is one of - * the elements in the item + * @return boolean (true/false) on whether the element is one of the + * elements in the item */ boolean isElement(int element, Vector<CronRange> item) { // loop through all of the elements of an item @@ -221,7 +215,7 @@ public class JobCron implements IJobCron { } } else { // is a range if ((element >= cElement.getBegin()) && - (element <= cElement.getEnd())) { + (element <= cElement.getEnd())) { return true; } } @@ -231,11 +225,10 @@ public class JobCron implements IJobCron { } /** - * convert the day of the week representation from Calendar to - * cron + * convert the day of the week representation from Calendar to cron + * * @param time the Calendar value represents a moment of time - * @return an integer value that represents a cron Day-Of-Week - * element + * @return an integer value that represents a cron Day-Of-Week element */ public int DOW_cal2cron(Calendar time) { int calDow = time.get(Calendar.DAY_OF_WEEK); @@ -280,9 +273,9 @@ public class JobCron implements IJobCron { /** * convert the month of year representation from Calendar to cron + * * @param time the Calendar value represents a moment of time - * @return an integer value that represents a cron Month-Of-Year - * element + * @return an integer value that represents a cron Month-Of-Year element */ public int MOY_cal2cron(Calendar time) { int calMoy = time.get(Calendar.MONTH); @@ -352,6 +345,6 @@ public class JobCron implements IJobCron { if (mLogger == null) return; mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, - level, msg); + level, msg); } } diff --git a/pki/base/common/src/com/netscape/cmscore/jobs/JobsScheduler.java b/pki/base/common/src/com/netscape/cmscore/jobs/JobsScheduler.java index ad6cf898..ed992c90 100644 --- a/pki/base/common/src/com/netscape/cmscore/jobs/JobsScheduler.java +++ b/pki/base/common/src/com/netscape/cmscore/jobs/JobsScheduler.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmscore.jobs; - import java.util.Calendar; import java.util.Enumeration; import java.util.Hashtable; @@ -35,24 +34,21 @@ import com.netscape.certsrv.jobs.JobPlugin; import com.netscape.certsrv.logging.ILogger; import com.netscape.cmscore.util.Debug; - /** - * This is a daemon thread that handles scheduled jobs like cron would - * do with different jobs. This daemon wakes up at a pre-configured - * interval to see - * if there is any job to be done, if so, a thread is created to execute - * the job(s). + * This is a daemon thread that handles scheduled jobs like cron would do with + * different jobs. This daemon wakes up at a pre-configured interval to see if + * there is any job to be done, if so, a thread is created to execute the + * job(s). * <p> - * The interval <b>jobsScheduler.interval</b> in the configuration is - * specified as number of minutes. If not set, the default is 1 minute. - * Note that the cron specification for each job CAN NOT be finer than - * the granularity of the Scheduler daemon interval. For example, if - * the daemon interval is set to 5 minute, a job cron for every minute - * at 7am on each Tuesday (e.g. * 7 * * 2) will result in the - * execution of the job thread only once every 5 minutes during that - * hour. <b>The inteval value is recommended at 1 minute, setting it - * otherwise has the potential of forever missing the beat</b>. Use - * with caution. + * The interval <b>jobsScheduler.interval</b> in the configuration is specified + * as number of minutes. If not set, the default is 1 minute. Note that the cron + * specification for each job CAN NOT be finer than the granularity of the + * Scheduler daemon interval. For example, if the daemon interval is set to 5 + * minute, a job cron for every minute at 7am on each Tuesday (e.g. * 7 * * 2) + * will result in the execution of the job thread only once every 5 minutes + * during that hour. <b>The inteval value is recommended at 1 minute, setting it + * otherwise has the potential of forever missing the beat</b>. Use with + * caution. * * @author cfu * @see JobCron @@ -93,19 +89,19 @@ public class JobsScheduler implements Runnable, IJobsScheduler { } /** - * read from the config file all implementations of Jobs, - * register and initialize them + * read from the config file all implementations of Jobs, register and + * initialize them * <p> * the config params have the following formats: * jobScheduler.impl.[implementation name].class=[package name] * jobScheduler.job.[job name].pluginName=[implementation name] - * jobScheduler.job.[job name].cron=[crontab format] - * jobScheduler.job.[job name].[any job specific params]=[values] + * jobScheduler.job.[job name].cron=[crontab format] jobScheduler.job.[job + * name].[any job specific params]=[values] * * @param config jobsScheduler configStore */ public void init(ISubsystem owner, IConfigStore config) - throws EBaseException, EJobsException { + throws EBaseException, EJobsException { mLogger = CMS.getLogger(); // read in config parameters and set variables @@ -142,14 +138,13 @@ public class JobsScheduler implements Runnable, IJobsScheduler { String jobName = (String) jobs.nextElement(); String implName = c.getString(jobName + "." + PROP_PLUGIN); JobPlugin plugin = - (JobPlugin) mJobPlugins.get(implName); + (JobPlugin) mJobPlugins.get(implName); if (plugin == null) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_CLASS_NOT_FOUND", - implName)); - throw new - EJobsException(CMS.getUserMessage("CMS_JOB_PLUGIN_NOT_FOUND", implName)); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("CMSCORE_JOBS_CLASS_NOT_FOUND", + implName)); + throw new EJobsException(CMS.getUserMessage("CMS_JOB_PLUGIN_NOT_FOUND", implName)); } String classPath = plugin.getClassPath(); @@ -169,20 +164,17 @@ public class JobsScheduler implements Runnable, IJobsScheduler { String errMsg = "JobsScheduler:: init()-" + e.toString(); log(ILogger.LL_FAILURE, CMS.getLogMessage("CMSCORE_JOBS_INIT_ERROR", e.toString())); - throw new - EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", classPath)); + throw new EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", classPath)); } catch (IllegalAccessException e) { String errMsg = "JobsScheduler:: init()-" + e.toString(); log(ILogger.LL_FAILURE, CMS.getLogMessage("CMSCORE_JOBS_INIT_ERROR", e.toString())); - throw new - EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", classPath)); + throw new EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", classPath)); } catch (InstantiationException e) { String errMsg = "JobsScheduler: init()-" + e.toString(); log(ILogger.LL_FAILURE, CMS.getLogMessage("CMSCORE_JOBS_INIT_ERROR", e.toString())); - throw new - EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", classPath)); + throw new EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", classPath)); } catch (EBaseException e) { log(ILogger.LL_FAILURE, CMS.getLogMessage("CMSCORE_JOBS_INIT_ERROR", e.toString())); throw e; @@ -205,12 +197,10 @@ public class JobsScheduler implements Runnable, IJobsScheduler { } /** - * when wake up: - * . execute the scheduled job(s) - * * if job still running from previous interval, skip it - * . figure out when is the next wakeup time (every interval). If - * current wakup time runs over the interval, skip the missed interval(s) - * . sleep till the next wakeup time + * when wake up: . execute the scheduled job(s) * if job still running from + * previous interval, skip it . figure out when is the next wakeup time + * (every interval). If current wakup time runs over the interval, skip the + * missed interval(s) . sleep till the next wakeup time */ public void run() { long wokeupTime = 0; @@ -230,8 +220,8 @@ public class JobsScheduler implements Runnable, IJobsScheduler { // just let it skip to next second, fine. duration = (60 - second) * 1000 + 1000 - milliSec; log(ILogger.LL_INFO, - "adjustment for cron behavior: sleep for " + - duration + " milliseconds"); + "adjustment for cron behavior: sleep for " + + duration + " milliseconds"); } else { // when is the next wakeup time for the JobsScheduler? @@ -268,14 +258,13 @@ public class JobsScheduler implements Runnable, IJobsScheduler { // get time now cal = Calendar.getInstance(); - + /** - * Get the current time outside the jobs while loop - * to make sure that the rightful jobs are run - * -- milliseconds from the epoch + * Get the current time outside the jobs while loop to make sure + * that the rightful jobs are run -- milliseconds from the epoch */ wokeupTime = cal.getTime().getTime(); - + IJob job = null; for (Enumeration<IJob> e = mJobs.elements(); e.hasMoreElements();) { @@ -296,7 +285,7 @@ public class JobsScheduler implements Runnable, IJobsScheduler { // start the job thread if necessary if (isShowTime(job, cal) == true) { - // log(ILogger.LL_INFO, "show time for: "+job.getId()); + // log(ILogger.LL_INFO, "show time for: "+job.getId()); // if previous thread still alive, skip Thread jthread = (Thread) mJobThreads.get(job.getId()); @@ -310,14 +299,14 @@ public class JobsScheduler implements Runnable, IJobsScheduler { } else { // previous thread still alive, log it log(ILogger.LL_INFO, "Job " + job.getId() + - " still running...skipping this round"); + " still running...skipping this round"); } } } // for } } - + public IJobCron createJobCron(String cs) throws EBaseException { return new JobCron(cs); } @@ -338,8 +327,8 @@ public class JobsScheduler implements Runnable, IJobsScheduler { * is it the right month? */ Vector<CronRange> moy = - jcron.getItem(JobCron.CRON_MONTH_OF_YEAR).getElements(); - + jcron.getItem(JobCron.CRON_MONTH_OF_YEAR).getElements(); + int cronMoy = jcron.MOY_cal2cron(now); if (jcron.isElement(cronMoy, moy) == false) { @@ -361,7 +350,7 @@ public class JobsScheduler implements Runnable, IJobsScheduler { int cronDow = jcron.DOW_cal2cron(now); if ((jcron.isElement(cronDow, dow) == false) && - (jcron.isElement(now.get(Calendar.DAY_OF_MONTH), dom) == false)) { + (jcron.isElement(now.get(Calendar.DAY_OF_MONTH), dom) == false)) { return false; } // is the right date! @@ -384,23 +373,25 @@ public class JobsScheduler implements Runnable, IJobsScheduler { if (jcron.isElement(now.get(Calendar.MINUTE), minute) == false) { return false; } - // is the right minute! We're on! + // is the right minute! We're on! return true; } /** * Retrieves id (name) of this subsystem. + * * @return name of the Jobs Scheduler subsystem */ public String getId() { return (mId); } - + /** * Sets id string to this subsystem. * <p> - * Use with caution. Should not do it when sharing with others + * Use with caution. Should not do it when sharing with others + * * @param id name to be applied to an Jobs Scheduler subsystem */ public void setId(String id) throws EBaseException { @@ -421,13 +412,14 @@ public class JobsScheduler implements Runnable, IJobsScheduler { * registers the administration servlet with the administration subsystem. */ public void startup() throws EBaseException { - //remove, already logged from S_ADMIN - //String infoMsg = "Jobs Scheduler subsystem administration Servlet registered"; - //log(ILogger.LL_INFO, infoMsg); + // remove, already logged from S_ADMIN + // String infoMsg = + // "Jobs Scheduler subsystem administration Servlet registered"; + // log(ILogger.LL_INFO, infoMsg); } /** - * shuts down Jobs one by one. + * shuts down Jobs one by one. * <P> */ public void shutdown() { @@ -438,23 +430,23 @@ public class JobsScheduler implements Runnable, IJobsScheduler { Enumeration<String> enums = mJobThreads.keys(); while (enums.hasMoreElements()) { - String id = (String)enums.nextElement(); - Thread currthread = (Thread)mJobThreads.get(id); - //if (currthread != null) - // currthread.destroy(); + String id = (String) enums.nextElement(); + Thread currthread = (Thread) mJobThreads.get(id); + // if (currthread != null) + // currthread.destroy(); } mJobThreads.clear(); mJobThreads = null; - //if (mScheduleThread != null) - // mScheduleThread.destroy(); + // if (mScheduleThread != null) + // mScheduleThread.destroy(); } /** * Returns the root configuration storage of this system. * <P> - * + * * @return configuration store of this subsystem */ public IConfigStore getConfigStore() { @@ -462,29 +454,29 @@ public class JobsScheduler implements Runnable, IJobsScheduler { } /** - * Gets configuration parameters for the given - * job plugin. + * Gets configuration parameters for the given job plugin. + * * @param implName Name of the job plugin. * @return Hashtable of required parameters. */ public String[] getConfigParams(String implName) - throws EJobsException { + throws EJobsException { if (Debug.ON) Debug.trace("in getCofigParams()"); - // is this a registered implname? + // is this a registered implname? JobPlugin plugin = (JobPlugin) mJobPlugins.get(implName); if (plugin == null) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_CLASS_NOT_FOUND", implName)); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("CMSCORE_JOBS_CLASS_NOT_FOUND", implName)); if (Debug.ON) Debug.trace("Job plugin " + implName + " not found."); throw new EJobsException(CMS.getUserMessage("CMS_JOB_PLUGIN_NOT_FOUND", implName)); } - // XXX can find an instance of this plugin in existing + // XXX can find an instance of this plugin in existing // auth manager instantces to avoid instantiation just for this. // a temporary instance @@ -500,26 +492,23 @@ public class JobsScheduler implements Runnable, IJobsScheduler { Debug.trace("class instantiated"); return (jobInst.getConfigParams()); } catch (InstantiationException e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_CREATE_NEW", e.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("CMSCORE_JOBS_CREATE_NEW", e.toString())); if (Debug.ON) Debug.trace("class NOT instantiated: " + e.toString()); - throw new - EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", className)); + throw new EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", className)); } catch (ClassNotFoundException e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_CREATE_NEW", e.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("CMSCORE_JOBS_CREATE_NEW", e.toString())); if (Debug.ON) Debug.trace("class NOT instantiated: " + e.toString()); - throw new - EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", className)); + throw new EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", className)); } catch (IllegalAccessException e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("CMSCORE_JOBS_CREATE_NEW", e.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("CMSCORE_JOBS_CREATE_NEW", e.toString())); if (Debug.ON) Debug.trace("class NOT instantiated: " + e.toString()); - throw new - EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", className)); + throw new EJobsException(CMS.getUserMessage("CMS_JOB_LOAD_CLASS_FAILED", className)); } } @@ -534,7 +523,7 @@ public class JobsScheduler implements Runnable, IJobsScheduler { if (mLogger == null) return; mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER, - level, msg); + level, msg); } public Hashtable<String, JobPlugin> getJobPlugins() { |