diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2012-02-27 14:58:24 -0600 |
---|---|---|
committer | Endi Sukma Dewata <edewata@redhat.com> | 2012-03-12 09:39:31 -0500 |
commit | 34f141c1144dac37248cf404835248413218627e (patch) | |
tree | 19b5b599f1eed47d020ec542c19bafdd84b1d57f /pki/base/common/src/com/netscape/cms/jobs | |
parent | 87585b101172461d2ad175515154a3f4dbdcd089 (diff) | |
download | pki-34f141c1144dac37248cf404835248413218627e.tar.gz pki-34f141c1144dac37248cf404835248413218627e.tar.xz pki-34f141c1144dac37248cf404835248413218627e.zip |
Refactored JobsScheduler.
The JobsScheduler has been modified to stop all jobs on shutdown.
This is done by setting a flag in each job instead of stopping the
job thread abruptly. Long running jobs should check this flag
periodically and then exit gracefully. None of the existing jobs
need to do this since they do not run very long.
Other threads that run background services have been converted into
daemons such that they will terminate automatically when the JVM
exits.
Ticket #73
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/jobs')
5 files changed, 23 insertions, 14 deletions
diff --git a/pki/base/common/src/com/netscape/cms/jobs/AJobBase.java b/pki/base/common/src/com/netscape/cms/jobs/AJobBase.java index 4a70147de..0da5d2028 100644 --- a/pki/base/common/src/com/netscape/cms/jobs/AJobBase.java +++ b/pki/base/common/src/com/netscape/cms/jobs/AJobBase.java @@ -74,6 +74,8 @@ public abstract class AJobBase implements IJob, Runnable { protected Hashtable<String, Object> mContentParams = new Hashtable<String, Object>(); protected Hashtable<String, Object> mItemParams = new Hashtable<String, Object>(); + boolean stopped; + public AJobBase() { } @@ -209,17 +211,17 @@ public abstract class AJobBase implements IJob, Runnable { protected void buildItemParams(X509CertImpl cert) { mItemParams.put(IEmailFormProcessor.TOKEN_SERIAL_NUM, - (Object) cert.getSerialNumber().toString()); + cert.getSerialNumber().toString()); mItemParams.put(IEmailFormProcessor.TOKEN_HEX_SERIAL_NUM, - (Object) cert.getSerialNumber().toString(16)); + cert.getSerialNumber().toString(16)); mItemParams.put(IEmailFormProcessor.TOKEN_ISSUER_DN, - (Object) cert.getIssuerDN().toString()); + cert.getIssuerDN().toString()); mItemParams.put(IEmailFormProcessor.TOKEN_SUBJECT_DN, - (Object) cert.getSubjectDN().toString()); + cert.getSubjectDN().toString()); mItemParams.put(IEmailFormProcessor.TOKEN_NOT_AFTER, - (Object) cert.getNotAfter().toString()); + cert.getNotAfter().toString()); mItemParams.put(IEmailFormProcessor.TOKEN_NOT_BEFORE, - (Object) cert.getNotBefore().toString()); + cert.getNotBefore().toString()); // ... and more } @@ -288,4 +290,12 @@ public abstract class AJobBase implements IJob, Runnable { mLogger.log(ILogger.EV_SYSTEM, null, ILogger.S_OTHER, level, mId + ": " + msg, multiline); } + + public void stop() { + stopped = true; + } + + public boolean isStopped() { + return stopped; + } } diff --git a/pki/base/common/src/com/netscape/cms/jobs/PublishCertsJob.java b/pki/base/common/src/com/netscape/cms/jobs/PublishCertsJob.java index 903f83691..2289d7255 100644 --- a/pki/base/common/src/com/netscape/cms/jobs/PublishCertsJob.java +++ b/pki/base/common/src/com/netscape/cms/jobs/PublishCertsJob.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cms.jobs; -import java.security.cert.X509Certificate; import java.text.DateFormat; import java.util.Date; import java.util.Enumeration; @@ -135,7 +134,7 @@ public class PublishCertsJob extends AJobBase } mReqQ = mCa.getRequestQueue(); - mRepository = (ICertificateRepository) mCa.getCertificateRepository(); + mRepository = mCa.getCertificateRepository(); mPublisherProcessor = mCa.getPublisherProcessor(); // read from the configuration file @@ -299,7 +298,7 @@ public class PublishCertsJob extends AJobBase try { if ((mPublisherProcessor != null) && mPublisherProcessor.enabled()) { - mPublisherProcessor.publishCert((X509Certificate) cert, req); + mPublisherProcessor.publishCert(cert, req); if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, STATUS_SUCCESS); @@ -322,7 +321,7 @@ public class PublishCertsJob extends AJobBase try { if ((mPublisherProcessor != null) && mPublisherProcessor.enabled()) { - mPublisherProcessor.publishCert((X509Certificate) cert, null); + mPublisherProcessor.publishCert(cert, null); if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, @@ -396,6 +395,6 @@ public class PublishCertsJob extends AJobBase * @return String array of configuration parameter names. */ public String[] getConfigParams() { - return (mConfigParams); + return mConfigParams; } } diff --git a/pki/base/common/src/com/netscape/cms/jobs/RenewalNotificationJob.java b/pki/base/common/src/com/netscape/cms/jobs/RenewalNotificationJob.java index 621d987fe..5a14c6278 100644 --- a/pki/base/common/src/com/netscape/cms/jobs/RenewalNotificationJob.java +++ b/pki/base/common/src/com/netscape/cms/jobs/RenewalNotificationJob.java @@ -275,7 +275,7 @@ public class RenewalNotificationJob return; } - mCertDB = (ICertificateRepository) mCA.getCertificateRepository(); + mCertDB = mCA.getCertificateRepository(); mCron = mConfig.getString(IJobCron.PROP_CRON); if (mCron == null) { diff --git a/pki/base/common/src/com/netscape/cms/jobs/RequestInQueueJob.java b/pki/base/common/src/com/netscape/cms/jobs/RequestInQueueJob.java index adddc9755..775845ca7 100644 --- a/pki/base/common/src/com/netscape/cms/jobs/RequestInQueueJob.java +++ b/pki/base/common/src/com/netscape/cms/jobs/RequestInQueueJob.java @@ -213,6 +213,6 @@ public class RequestInQueueJob extends AJobBase * @return String array of configuration parameter names. */ public String[] getConfigParams() { - return (mConfigParams); + return mConfigParams; } } diff --git a/pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java b/pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java index c61d953eb..63cae7f30 100644 --- a/pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java +++ b/pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java @@ -135,7 +135,7 @@ public class UnpublishExpiredJob extends AJobBase } mReqQ = mCa.getRequestQueue(); - mRepository = (ICertificateRepository) mCa.getCertificateRepository(); + mRepository = mCa.getCertificateRepository(); mPublisherProcessor = mCa.getPublisherProcessor(); // read from the configuration file |