summaryrefslogtreecommitdiffstats
path: root/base/common/src/com/netscape/cms/jobs/AJobBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/common/src/com/netscape/cms/jobs/AJobBase.java')
-rw-r--r--base/common/src/com/netscape/cms/jobs/AJobBase.java301
1 files changed, 0 insertions, 301 deletions
diff --git a/base/common/src/com/netscape/cms/jobs/AJobBase.java b/base/common/src/com/netscape/cms/jobs/AJobBase.java
deleted file mode 100644
index bd319b94e..000000000
--- a/base/common/src/com/netscape/cms/jobs/AJobBase.java
+++ /dev/null
@@ -1,301 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-//
-// (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package com.netscape.cms.jobs;
-
-import java.io.IOException;
-import java.util.Hashtable;
-
-import netscape.security.x509.X509CertImpl;
-
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.base.EBaseException;
-import com.netscape.certsrv.base.IConfigStore;
-import com.netscape.certsrv.base.ISubsystem;
-import com.netscape.certsrv.jobs.IJob;
-import com.netscape.certsrv.jobs.IJobCron;
-import com.netscape.certsrv.logging.ILogger;
-import com.netscape.certsrv.notification.ENotificationException;
-import com.netscape.certsrv.notification.IEmailFormProcessor;
-import com.netscape.certsrv.notification.IEmailTemplate;
-import com.netscape.certsrv.notification.IMailNotification;
-import com.netscape.certsrv.request.IRequest;
-
-/**
- * This abstract class is a base job for real job extentions for the
- * Jobs Scheduler.
- *
- * @version $Revision$, $Date$
- * @see com.netscape.certsrv.jobs.IJob
- */
-public abstract class AJobBase implements IJob, Runnable {
- // config parameters...
- protected static final String PROP_SUMMARY = "summary";
- protected static final String PROP_ENABLED = "enabled";
- protected static final String PROP_EMAIL_SUBJECT = "emailSubject";
- protected static final String PROP_EMAIL_TEMPLATE = "emailTemplate";
- protected static final String PROP_ITEM_TEMPLATE = "itemTemplate";
- protected static final String PROP_SENDER_EMAIL = "senderEmail";
- protected static final String PROP_RECEIVER_EMAIL = "recipientEmail";
-
- protected static final String STATUS_FAILURE = "failed";
- protected static final String STATUS_SUCCESS = "succeeded";
-
- // variables used by the Job Scheduler Daemon
- protected String mImplName = null;
- protected IConfigStore mConfig;
- protected String mId = null;
- protected String mCron = null;
- protected IJobCron mJobCron = null;
-
- protected ILogger mLogger = CMS.getLogger();
- protected static String[] mConfigParams = null;
-
- protected String mSummaryMailSubject = null;
- protected boolean mMailHTML = false;
- protected String mMailForm = null;
- protected String mItemForm = null;
- protected String mSummarySenderEmail = null;
- protected String mSummaryReceiverEmail = null;
- protected Hashtable<String, Object> mContentParams = new Hashtable<String, Object>();
- protected Hashtable<String, Object> mItemParams = new Hashtable<String, Object>();
-
- boolean stopped;
-
- public AJobBase() {
- }
-
- /**
- * tells if the job is enabled
- *
- * @return a boolean value indicating whether the job is enabled
- * or not
- */
- public boolean isEnabled() {
- boolean enabled = false;
-
- try {
- enabled = mConfig.getBoolean(PROP_ENABLED, false);
- } catch (EBaseException e) {
- }
- return enabled;
- }
-
- /***********************
- * abstract methods
- ***********************/
- public abstract void init(ISubsystem owner, String id, String implName, IConfigStore
- config) throws EBaseException;
-
- public abstract void run();
-
- /***********************
- * public methods
- ***********************/
-
- /**
- * get instance id.
- *
- * @return a String identifier
- */
- public String getId() {
- return mId;
- }
-
- /**
- * set instance id.
- *
- * @param id String id of the instance
- */
- public void setId(String id) {
- mId = id;
- }
-
- /**
- * get cron string associated with this job
- *
- * @return a JobCron object that represents the schedule of this job
- */
- public IJobCron getJobCron() {
- return mJobCron;
- }
-
- /**
- * gets the plugin name of this job.
- *
- * @return a String that is the name of this implementation
- */
- public String getImplName() {
- return mImplName;
- }
-
- /**
- * Gets the configuration substore used by this job
- *
- * @return configuration store
- */
- public IConfigStore getConfigStore() {
- return mConfig;
- }
-
- /*
- * get form file content from disk
- */
- protected String getTemplateContent(String templatePath) {
- String templateString = null;
-
- /*
- * get template file from disk
- */
- IEmailTemplate template = CMS.getEmailTemplate(templatePath);
-
- if (template != null) {
- if (!template.init()) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("JOBS_TEMPLATE_INIT_ERROR"));
- return null;
- }
-
- // this should take care of inner tempaltes not being html
- // we go with the outter template
- if (template.isHTML()) {
- mMailHTML = true;
- }
- templateString = template.toString();
- } else {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("JOBS_TEMPLATE_INIT_ERROR"));
- }
-
- return templateString;
- }
-
- protected void mailSummary(String content) {
- // no need for email resolver here...
- IMailNotification mn = CMS.getMailNotification();
-
- mn.setFrom(mSummarySenderEmail);
- mn.setTo(mSummaryReceiverEmail);
- mn.setSubject(mSummaryMailSubject);
- if (mMailHTML == true) {
- mn.setContentType("text/html");
- }
-
- mn.setContent(content);
- try {
- mn.sendNotification();
- } catch (ENotificationException e) {
- // already logged, lets audit
- mLogger.log(ILogger.EV_AUDIT, null,
- ILogger.S_OTHER,
- ILogger.LL_FAILURE, CMS.getLogMessage("JOBS_SEND_NOTIFICATION", e.toString()));
- } catch (IOException e) {
- // already logged, lets audit
- mLogger.log(ILogger.EV_AUDIT, null,
- ILogger.S_OTHER,
- ILogger.LL_FAILURE, CMS.getLogMessage("JOBS_SEND_NOTIFICATION", e.toString()));
- }
- }
-
- protected void buildItemParams(X509CertImpl cert) {
- mItemParams.put(IEmailFormProcessor.TOKEN_SERIAL_NUM,
- cert.getSerialNumber().toString());
- mItemParams.put(IEmailFormProcessor.TOKEN_HEX_SERIAL_NUM,
- cert.getSerialNumber().toString(16));
- mItemParams.put(IEmailFormProcessor.TOKEN_ISSUER_DN,
- cert.getIssuerDN().toString());
- mItemParams.put(IEmailFormProcessor.TOKEN_SUBJECT_DN,
- cert.getSubjectDN().toString());
- mItemParams.put(IEmailFormProcessor.TOKEN_NOT_AFTER,
- cert.getNotAfter().toString());
- mItemParams.put(IEmailFormProcessor.TOKEN_NOT_BEFORE,
- cert.getNotBefore().toString());
- // ... and more
- }
-
- protected void buildItemParams(IRequest r) {
- String re = r.getExtDataInString(IRequest.HTTP_PARAMS, "csrRequestorEmail");
-
- if (re != null) {
- mItemParams.put(IEmailFormProcessor.TOKEN_REQUESTOR_EMAIL, re);
- }
-
- String ct = r.getExtDataInString(IRequest.HTTP_PARAMS, IRequest.CERT_TYPE);
-
- if (ct != null) {
- mItemParams.put(IEmailFormProcessor.TOKEN_CERT_TYPE, ct);
- }
-
- String rt = r.getExtDataInString(IRequest.REQ_TYPE);
-
- if (rt != null) {
- mItemParams.put(IEmailFormProcessor.TOKEN_REQUEST_TYPE, rt);
- }
- }
-
- protected void buildItemParams(String name, String val) {
- if (val != null)
- mItemParams.put(name, val);
- else {
- CMS.debug("AJobBase: buildItemParams: null value for name= " + name);
- mItemParams.put(name, "");
- }
- }
-
- protected void buildContentParams(String name, String val) {
- if (val != null)
- mContentParams.put(name, val);
- else {
- CMS.debug("AJobBase: buildContentParams: null value for name= " + name);
- mContentParams.put(name, "");
- }
- }
-
- /**
- * logs an entry in the log file. Used by classes extending this class.
- *
- * @param level log level
- * @param msg log message in String
- */
- public void log(int level, String msg) {
- if (mLogger == null)
- return;
- mLogger.log(ILogger.EV_SYSTEM, null, ILogger.S_OTHER,
- level, mId + ": " + msg);
- }
-
- /**
- * capable of logging multiline entry in the log file. Used by classes extending this class.
- *
- * @param level log level
- * @param msg log message in String
- * @param multiline boolean indicating whether the message is a
- * multi-lined message.
- */
- public void log(int level, String msg, boolean multiline) {
- if (mLogger == null)
- return;
- mLogger.log(ILogger.EV_SYSTEM, null, ILogger.S_OTHER,
- level, mId + ": " + msg, multiline);
- }
-
- public void stop() {
- stopped = true;
- }
-
- public boolean isStopped() {
- return stopped;
- }
-}