[Amavisadmin-svn] SF.net SVN: amavisadmin: [18] amavisadmin/trunk
Status: Beta
Brought to you by:
streindl
From: <str...@us...> - 2007-01-16 21:35:39
|
Revision: 18 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=18&view=rev Author: streindl Date: 2007-01-16 13:35:29 -0800 (Tue, 16 Jan 2007) Log Message: ----------- * Migration is working now * several refactorings due to wrong data types (mixed string and chars) * Edit new user didn't work Modified Paths: -------------- amavisadmin/trunk/db/postgres/update_v0_v1.sql amavisadmin/trunk/nbproject/private/private.properties amavisadmin/trunk/nbproject/project.properties amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/MyRequests.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/SessionBean1.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/AmavisAdminToolInitServlet.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/UserBO.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractJob.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractMessage.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractMsgReceipient.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractPolicy.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Job.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/JobDAO.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MailAddressDAO.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Message.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Message.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipient.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipient.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipientDAO.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Policy.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Policy.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java amavisadmin/trunk/src/java/log4j.properties amavisadmin/trunk/web/MyRequests.jsp amavisadmin/trunk/web/UserManagement.jsp Modified: amavisadmin/trunk/db/postgres/update_v0_v1.sql =================================================================== --- amavisadmin/trunk/db/postgres/update_v0_v1.sql 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/db/postgres/update_v0_v1.sql 2007-01-16 21:35:29 UTC (rev 18) @@ -17,7 +17,8 @@ job_description varchar(255) not null, job_cron_settings varchar(30) not null, job_class varchar(255) not null, - job_enabled bool default false, + job_special bool not null default false, + job_enabled bool not null default false, job_last_run_date timestamp, primary key (job_name)); @@ -25,7 +26,8 @@ id int4 not null, version int4 default 0 not null, sender varchar(255) not null, - mail_status char(1) default ' ' not null check (mail_status in (' ', 'I', 'S', 'E')), + mail_status char(1) default ' ' not null + check (mail_status in (' ', 'I', 'S', 'E')), send_date timestamp, subject varchar(255) not null, encoding varchar(128) not null, @@ -70,28 +72,28 @@ -- 2.2 Business related fields -- 2.2.1 MADDR.USER_ID --- The field user id contains a link to the user which owns this entry. This can be used --- to handle more than one mail address per user. +-- The field user id contains a link to the user which owns this entry. +-- This can be used to handle more than one mail address per user. alter table maddr add column user_id int4; -- 2.2.2 MSGRCPT.REQUEST_USER --- This field contains the user-id of the user which requested the release of the corresponding --- mail recipient entry. +-- This field contains the user-id of the user which requested the release +-- of the corresponding mail recipient entry. alter table msgrcpt add column request_user int4; -- 2.2.3 USER.PASSWORD --- Obviously the password of the user. The password is stored encrypted by using a hasing --- function. +-- Obviously the password of the user. The password is stored encrypted by +-- using a hasing function. alter table users add column password varchar(255); -- 2.2.4 USER.ADMIN --- If this field is true, the user is an admin user. This field is temporary only until --- roles are implemented. +-- If this field is true, the user is an admin user. This field is temporary +-- only until roles are implemented. alter table users add column admin bool default false; -- 2.2.5 USER.LAST_LOGIN -- This field stores the timstamp when the user has logged in the last time. -alter table users add column last_login timestamp with timestamp; +alter table users add column last_login timestamp with time zone; -- 2.2.6 USER.LOCKED -- If this field is true, the user is locked, i.e. he cannot login. @@ -105,22 +107,33 @@ -- basically new references to new fields and renaming of existing -- constraints with internal names ($1...). -alter table maddr add constraint maddr_fk_1 foreign key (user_id) references users -alter table configuration add constraint constraint_fk_1 foreign key (job_ref) references jobs +alter table maddr add constraint maddr_fk_1 foreign key (user_id) references users; +alter table configuration add constraint constraint_fk_1 + foreign key (job_ref) references jobs; -alter table mail_queue_rcpts add constraint mail_queue_recpts_fk_1 foreign key (mail_queue_id) references mail_queue +alter table mail_queue_rcpts add constraint mail_queue_recpts_fk_1 + foreign key (mail_queue_id) references mail_queue; -alter table msgrcpt drop constraint '$1'; -alter table msgrcpt drop constraint '$2'; -alter table msgrcpt add constraint msgrcpt_fk_1 foreign key (request_user) references users; +alter table msgrcpt drop constraint "$1"; +alter table msgrcpt drop constraint "$2"; +alter table msgrcpt add + constraint msgrcpt_fk_1 foreign key (request_user) references users; alter table msgrcpt add constraint msgrcpt_fk_2 foreign key (rid) references maddr; alter table msgrcpt add constraint msgrcpt_fk_3 foreign key (mail_id) references msgs; -alter table msgs drop constraint '$1'; +alter table msgs drop constraint "$1"; alter table msgs add constraint msgs_fk_1 foreign key (sid) references maddr; -alter table quarantine drop constraint '$1'; -alter table quarantine add constraint quarantine_fk_1 foreign key (mail_id) references msgs +alter table quarantine drop constraint "$1"; +alter table quarantine add constraint quarantine_fk_1 foreign key (mail_id) references msgs; +-- 4. Load data +-- 4.1 Migration Job +insert into jobs (job_name, job_description, job_cron_settings, + job_class, job_enabled, job_special) + values ('$$Migrate V0 to V1', 'Migration', 'dummy', + 'de.sreindl.amavisadmin.migration.MigrateV0toV1', true, true); + + -- 4. Configuration version update -insert into configuration (key, value) values ('amavisadmin.dbversion', '1'); +insert into configuration ("key", "value") values ('amavisadmin.db_version', '1'); Modified: amavisadmin/trunk/nbproject/private/private.properties =================================================================== --- amavisadmin/trunk/nbproject/private/private.properties 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/nbproject/private/private.properties 2007-01-16 21:35:29 UTC (rev 18) @@ -1,6 +1,6 @@ -deploy.ant.properties.file=/home/sreindl/.netbeans/5.5/tomcat55.properties -j2ee.platform.classpath=/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/naming-factory.jar:/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/jsp-api.jar:/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/postgresql-8.1-404.jdbc3.jar:/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/jasper-runtime.jar:/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/commons-el.jar:/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/naming-factory-dbcp.jar:/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/ant.jar:/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/jasper-compiler.jar:/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/naming-resources.jar:/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/servlet-api.jar -j2ee.server.instance=tomcat55:home=$bundled_home:base=$bundled_base +deploy.ant.properties.file=/home/sreindl/.netbeans/5.5/tomcat55_1.properties +j2ee.platform.classpath=/opt/apache-tomcat-5.5.17/common/lib/naming-factory.jar:/opt/apache-tomcat-5.5.17/common/lib/jsp-api.jar:/opt/apache-tomcat-5.5.17/common/lib/postgresql-8.1-404.jdbc3.jar:/opt/apache-tomcat-5.5.17/common/lib/jasper-runtime.jar:/opt/apache-tomcat-5.5.17/common/lib/commons-el.jar:/opt/apache-tomcat-5.5.17/common/lib/jasper-compiler-jdt.jar:/opt/apache-tomcat-5.5.17/common/lib/naming-factory-dbcp.jar:/opt/apache-tomcat-5.5.17/common/lib/jasper-compiler.jar:/opt/apache-tomcat-5.5.17/common/lib/naming-resources.jar:/opt/apache-tomcat-5.5.17/common/lib/servlet-api.jar +j2ee.server.instance=tomcat55:home=/opt/apache-tomcat-5.5.17 javac.debug=true javadoc.preview=true libs.FreeJGraph.classpath.libfile.1=/shares/tools/jfreechart-1.0.2/lib/jcommon-1.0.5.jar Modified: amavisadmin/trunk/nbproject/project.properties =================================================================== --- amavisadmin/trunk/nbproject/project.properties 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/nbproject/project.properties 2007-01-16 21:35:29 UTC (rev 18) @@ -15,7 +15,7 @@ debug.classpath=${javac.classpath}:${build.classes.dir}:${build.ear.classes.dir} debug.test.classpath=\ ${run.test.classpath} -display.browser=true +display.browser=false dist.dir=dist dist.ear.war=${dist.dir}/${war.ear.name} dist.javadoc.dir=${dist.dir}/javadoc Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java 2007-01-16 21:35:29 UTC (rev 18) @@ -478,10 +478,14 @@ * this page.</p> */ public void prerender() { - ArrayList<Option> lst = (ArrayList<Option>)getSessionBean1().getParameter(EMAIL_LIST); + ArrayList<Option> lst = null; if (user == null) { + erase(); fldUserId.setText("unset"); + lst = new ArrayList<Option>(); + getSessionBean1().setParameter(EMAIL_LIST, lst); } else { + lst = (ArrayList<Option>)getSessionBean1().getParameter(EMAIL_LIST); fldUserId.setText(user.getId().toString()); fldUserName.setText(user.getUsername()); fldFullName.setText(user.getFullname()); @@ -620,7 +624,7 @@ /** Session key for @see deleteMap */ private static final String DELETE_MAIL_MAP = "editUser.DELETE_MAIL_MAP"; - + /** Session key for email list */ private static final String EMAIL_LIST = "editUser.EMAIL_LIST"; Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/MyRequests.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/MyRequests.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/MyRequests.java 2007-01-16 21:35:29 UTC (rev 18) @@ -609,7 +609,7 @@ * </p> * @param selectedRowKeys The rows to be "removed". */ - private int handleRequests(RowKey[] selectedRowKeys, String requestType) { + private int handleRequests(RowKey[] selectedRowKeys, Character requestType) { Session session = HibernateSessionFactory.getSession(); Transaction trx = null; MsgReceipient msgr = null; Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/SessionBean1.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/SessionBean1.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/SessionBean1.java 2007-01-16 21:35:29 UTC (rev 18) @@ -21,7 +21,8 @@ import com.sun.rave.web.ui.model.DefaultOptionsList; import com.sun.sql.rowset.CachedRowSetXImpl; import de.sreindl.amavisadmin.bo.configuration.ConfigurationDataTable; -import de.sreindl.amavisadmin.db.*; +import de.sreindl.amavisadmin.db.MailAddress; +import de.sreindl.amavisadmin.db.User; import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; import de.sreindl.amavisadmin.visuals.UserListDataProvider; import java.util.HashMap; @@ -72,7 +73,7 @@ approvePendingRowSet.setTableName("msgrcpt"); approvePendingDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet)getValue("#{SessionBean1.approvePendingRowSet}")); jobsRowSet.setDataSourceName("java:comp/env/jdbc/amavisDB"); - jobsRowSet.setCommand("SELECT ALL PUBLIC.jobs.job_name, \n PUBLIC.jobs.job_description, \n PUBLIC.jobs.job_cron_settings, \n PUBLIC.jobs.job_class, \n PUBLIC.jobs.job_enabled, \n PUBLIC.jobs.job_last_run_date \nFROM PUBLIC.jobs\nORDER BY PUBLIC.jobs.job_name ASC "); + jobsRowSet.setCommand("SELECT ALL PUBLIC.jobs.job_name, \n PUBLIC.jobs.job_description, \n PUBLIC.jobs.job_cron_settings, \n PUBLIC.jobs.job_class, \n PUBLIC.jobs.job_enabled, \n PUBLIC.jobs.job_last_run_date \nFROM PUBLIC.jobs\nWHERE PUBLIC.jobs.job_special = 'false'\nORDER BY PUBLIC.jobs.job_name ASC "); jobsRowSet.setTableName("jobs"); jobsDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet)getValue("#{SessionBean1.jobsRowSet}")); } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java 2007-01-16 21:35:29 UTC (rev 18) @@ -431,14 +431,6 @@ } } - - public String btnAddNew_action() { - erase(); // clear all values - getSessionBean1().setParameter(SessionBean1.PARAM_USER_ID, null); - return null; - } - - public String btnSave_action() { User user = (User)getSessionBean1().getParameter(SessionBean1.PARAM_USER_ID); if (user == null) { @@ -470,6 +462,10 @@ return null; } + public String btnAdd_action() { + getSessionBean1().setParameter(SessionBean1.PARAM_USER_ID, null); + return "editSingleUser"; + } public void fldRetention_validate(FacesContext context, UIComponent component, Object value) { // TODO: Check the value parameter here, and if not valid, do something like this: @@ -499,5 +495,6 @@ * Maximum number of days for retention allowed */ public static final String CONF_MAX_RETENTION = "amavisadmin.conf.max_retention"; + } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/AmavisAdminToolInitServlet.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/AmavisAdminToolInitServlet.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/AmavisAdminToolInitServlet.java 2007-01-16 21:35:29 UTC (rev 18) @@ -15,12 +15,15 @@ */ package de.sreindl.amavisadmin.bo; +import de.sreindl.amavisadmin.db.Job; +import de.sreindl.amavisadmin.db.JobDAO; import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; import de.sreindl.amavisadmin.jobs.BaseJob; -import de.sreindl.amavisadmin.jobs.MessagesCleanupJob; -import de.sreindl.amavisadmin.jobs.RetentionCleanupJob; +import de.sreindl.amavisadmin.migration.MigrationJob; import java.text.ParseException; import java.util.Date; +import java.util.Iterator; +import java.util.List; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; @@ -29,24 +32,16 @@ import org.apache.commons.logging.LogFactory; import org.apache.velocity.runtime.RuntimeConstants; import org.apache.velocity.runtime.RuntimeSingleton; -import org.apache.velocity.runtime.log.JdkLogChute; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.cfg.Configuration; -import org.hibernate.tool.hbm2ddl.SchemaUpdate; import org.hibernate.tool.hbm2ddl.SchemaValidator; -import org.quartz.CronTrigger; -import org.quartz.JobDetail; -import org.quartz.Scheduler; import org.quartz.SchedulerException; -import org.quartz.Trigger; import org.quartz.ee.servlet.QuartzInitializerServlet; import org.quartz.impl.StdSchedulerFactory; -import java.util.Calendar; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.servlet.Servlet; import org.apache.velocity.app.Velocity; +import org.hibernate.Transaction; /** * @@ -100,7 +95,7 @@ (StdSchedulerFactory) servletConfig.getServletContext() .getAttribute(QuartzInitializerServlet.QUARTZ_FACTORY_KEY); startJobScheduling(factory); - } + } } catch (Exception e) { log.fatal(e.getMessage(), e); state = LOAD_ERROR; @@ -110,7 +105,6 @@ } public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws javax.servlet.ServletException, java.io.IOException { - log.error("Service called for Hibernate"); } public String getServletInfo() { @@ -130,7 +124,7 @@ log.info("Saving configuration"); ConfigurationBO.saveConfiguration(); } catch (Exception e) { - log.error ("Exception during destroy : " + e.getMessage(), e); + log.error("Exception during destroy : " + e.getMessage(), e); } } @@ -142,12 +136,12 @@ SchemaValidator sv = new SchemaValidator(cfg); sv.validate(); } catch (HibernateException he) { - log.fatal("Database validation failed. Please update database first"); + log.fatal("Database validation failed. Please update database first", he); state = LOAD_ERROR; return; } // if we pass here, at least the schema validation has passed - // get db configuration. + performDbMigration(); log.info("Finished schema validation"); } @@ -163,11 +157,11 @@ private void doInitializeTemplateEngine() throws Exception { String resourceLoader = "class"; String resourceFilePath = null; - + log.info("Initialize template engine"); - RuntimeSingleton.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.Log4JLogChute" ); + RuntimeSingleton.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.Log4JLogChute" ); RuntimeSingleton.setProperty("runtime.log.logsystem.log4j.logger", "org.velocity"); - + // class loader RuntimeSingleton.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); @@ -181,5 +175,44 @@ log.info("Finished initialisation of template engine"); } + private void performDbMigration() { + log.info("Start database migration"); + Session session = HibernateSessionFactory.getSession(); + Transaction trx = session.beginTransaction(); + JobDAO dao = new JobDAO(); + List migJobs = dao.findBySpecialPurpose(Boolean.TRUE); + Iterator jobIt = migJobs.iterator(); + try { + while (jobIt.hasNext()) { + Job job = (Job)jobIt.next(); + if (!job.getEnabled().booleanValue()) { + continue; // already performed + } else { + log.info("Starting job " + job.getJobName()); + MigrationJob migrate = null; + try { + migrate = (MigrationJob)job.getJobClass().newInstance(); + } catch (ClassCastException cce) { + log.error("class " + job.getJobClass().getName() + " is not a BaseJob class"); + } + // run migration job + if (migrate != null) { + migrate.migrate(); + } + // update job + job.setEnabled(Boolean.FALSE); + job.setLastRun(new Date()); + session.update(job); + } + } + trx.commit(); + } catch (Exception e) { + log.error ("Exception during migration " + e.getMessage(), e); + if (trx.isActive()) { + trx.rollback(); + } + } + } + public final static String CONF_TEMPLATE_FILE_PATH = "amavisadmin.template.path"; } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/UserBO.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/UserBO.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/UserBO.java 2007-01-16 21:35:29 UTC (rev 18) @@ -215,7 +215,8 @@ Calendar cal = Calendar.getInstance(); cal.add(Calendar.HOUR_OF_DAY, validUntil); - if (getNewRequest(user, cal)) { + req = getNewRequest(user, cal); + if (req.getParam2() == null) { context.put("reset", Boolean.FALSE); } else { context.put("reset", Boolean.TRUE); @@ -280,11 +281,11 @@ /** * look for existing requests */ - private static boolean getNewRequest(User user, Calendar cal) { + private static Request getNewRequest(User user, Calendar cal) { RequestDAO rDAO = new RequestDAO(); - Request req = new Request(); Date now = new Date(); Session session = HibernateSessionFactory.getSession(); + Request req = new Request(); req.setHandlerType(HANDLER_TYPE_LOST_PASSWORD); req.setStatus(RequestDAO.STATUS_ACTIVE); req.setParam1(user.getUsername()); @@ -325,13 +326,13 @@ req.setHandlerType(HANDLER_TYPE_LOST_PASSWORD); req.setParam1(user.getUsername()); session.save(req); - return true; + return req; } else { // update existing request req.setParam2("Updated where old expiration date was " + req.getExpirationDate().toString()); req.setExpirationDate(cal.getTime()); session.update(req); - return false; + return req; } } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractJob.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractJob.java 2007-01-16 21:35:29 UTC (rev 18) @@ -34,6 +34,17 @@ private Boolean enabled; private Date lastRun; private String cronSettings; + /** + * Holds value of property confItems. + */ + private Map confItems; + + /** + * Holds value of property specialPurpose. + */ + private Boolean specialPurpose; + + /** default constructor */ public AbstractJob() { @@ -96,11 +107,6 @@ } /** - * Holds value of property confItems. - */ - private Map confItems; - - /** * Getter for property confItems. * @return Value of property confItems. */ @@ -115,5 +121,28 @@ public void setConfItems(Map confItems) { this.confItems = confItems; } + + /** + * Getter for property specialPurpose. If this property is set, + * this job is executed at application startup if the field lastRun is null. + * + * Jobs defined here are not executed during regular job execution. + * + * If specialPurpose is set to true, the contents of field cronSettings + * are ignored. + * + * @return Value of property specialPurpose. + */ + public Boolean getSpecialPurpose() { + return this.specialPurpose; + } + + /** + * Setter for property specialPurpose. + * @param specialPurpose New value of property specialPurpose. + */ + public void setSpecialPurpose(Boolean specialPurpose) { + this.specialPurpose = specialPurpose; + } } \ No newline at end of file Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractMessage.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractMessage.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractMessage.java 2007-01-16 21:35:29 UTC (rev 18) @@ -44,9 +44,9 @@ private String clientAddr; private Integer size; private Character content; - private String quarType; + private Character quarType; private String quarLoc; - private String dsnSent; + private Character dsnSent; private Double spamLevel; private String messageId; private String fromAddr; @@ -76,7 +76,7 @@ } /** full constructor */ - public AbstractMessage(String mailId, MailAddress maddr, String secretId, String amId, Integer timeNum, Date timeIso, String policy, String clientAddr, Integer size, Character content, String quarType, String quarLoc, String dsnSent, Double spamLevel, String messageId, String fromAddr, String subject, String host, Set msgrcpts, List quarantines) { + public AbstractMessage(String mailId, MailAddress maddr, String secretId, String amId, Integer timeNum, Date timeIso, String policy, String clientAddr, Integer size, Character content, Character quarType, String quarLoc, Character dsnSent, Double spamLevel, String messageId, String fromAddr, String subject, String host, Set msgrcpts, List quarantines) { this.mailId = mailId; this.maddr = maddr; this.secretId = secretId; @@ -182,11 +182,11 @@ this.content = content; } - public String getQuarType() { + public Character getQuarType() { return this.quarType; } - public void setQuarType(String quarType) { + public void setQuarType(Character quarType) { this.quarType = quarType; } @@ -198,11 +198,11 @@ this.quarLoc = quarLoc; } - public String getDsnSent() { + public Character getDsnSent() { return this.dsnSent; } - public void setDsnSent(String dsnSent) { + public void setDsnSent(Character dsnSent) { this.dsnSent = dsnSent; } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractMsgReceipient.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractMsgReceipient.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractMsgReceipient.java 2007-01-16 21:35:29 UTC (rev 18) @@ -27,10 +27,10 @@ private MsgReceipientId id; private MailAddress maddr; private Message msgs; - private String ds; - private String rs; - private String bl; - private String wl; + private Character ds; + private Character rs; + private Character bl; + private Character wl; private Double bspamLevel; private String smtpResp; private Integer version; @@ -51,7 +51,7 @@ } /** minimal constructor */ - public AbstractMsgReceipient(MsgReceipientId id, MailAddress maddr, Message msgs, String ds, String rs) { + public AbstractMsgReceipient(MsgReceipientId id, MailAddress maddr, Message msgs, Character ds, Character rs) { this.id = id; this.maddr = maddr; this.msgs = msgs; @@ -60,7 +60,7 @@ } /** full constructor */ - public AbstractMsgReceipient(MsgReceipientId id, MailAddress maddr, Message msgs, String ds, String rs, String bl, String wl, Double bspamLevel, String smtpResp) { + public AbstractMsgReceipient(MsgReceipientId id, MailAddress maddr, Message msgs, Character ds, Character rs, Character bl, Character wl, Double bspamLevel, String smtpResp) { this.id = id; this.maddr = maddr; this.msgs = msgs; @@ -99,35 +99,35 @@ this.msgs = msgs; } - public String getDs() { + public Character getDs() { return this.ds; } - public void setDs(String ds) { + public void setDs(Character ds) { this.ds = ds; } - public String getRs() { + public Character getRs() { return this.rs; } - public void setRs(String rs) { + public void setRs(Character rs) { this.rs = rs; } - public String getBl() { + public Character getBl() { return this.bl; } - public void setBl(String bl) { + public void setBl(Character bl) { this.bl = bl; } - public String getWl() { + public Character getWl() { return this.wl; } - public void setWl(String wl) { + public void setWl(Character wl) { this.wl = wl; } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractPolicy.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractPolicy.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractPolicy.java 2007-01-16 21:35:29 UTC (rev 18) @@ -28,15 +28,15 @@ private Integer id; private String policyName; - private String virusLover; - private String spamLover; - private String bannedFilesLover; - private String badHeaderLover; - private String bypassVirusChecks; - private String bypassSpamChecks; - private String bypassBannedChecks; - private String bypassHeaderChecks; - private String spamModifiesSubj; + private Character virusLover; + private Character spamLover; + private Character bannedFilesLover; + private Character badHeaderLover; + private Character bypassVirusChecks; + private Character bypassSpamChecks; + private Character bypassBannedChecks; + private Character bypassHeaderChecks; + private Character spamModifiesSubj; private String spamQuarantineTo; private Double spamTagLevel; private Double spamTag2Level; @@ -52,7 +52,7 @@ /** full constructor */ - public AbstractPolicy(String policyName, String virusLover, String spamLover, String bannedFilesLover, String badHeaderLover, String bypassVirusChecks, String bypassSpamChecks, String bypassBannedChecks, String bypassHeaderChecks, String spamModifiesSubj, String spamQuarantineTo, Double spamTagLevel, Double spamTag2Level, Double spamKillLevel) { + public AbstractPolicy(String policyName, Character virusLover, Character spamLover, Character bannedFilesLover, Character badHeaderLover, Character bypassVirusChecks, Character bypassSpamChecks, Character bypassBannedChecks, Character bypassHeaderChecks, Character spamModifiesSubj, String spamQuarantineTo, Double spamTagLevel, Double spamTag2Level, Double spamKillLevel) { this.policyName = policyName; this.virusLover = virusLover; this.spamLover = spamLover; @@ -88,75 +88,75 @@ this.policyName = policyName; } - public String getVirusLover() { + public Character getVirusLover() { return this.virusLover; } - public void setVirusLover(String virusLover) { + public void setVirusLover(Character virusLover) { this.virusLover = virusLover; } - public String getSpamLover() { + public Character getSpamLover() { return this.spamLover; } - public void setSpamLover(String spamLover) { + public void setSpamLover(Character spamLover) { this.spamLover = spamLover; } - public String getBannedFilesLover() { + public Character getBannedFilesLover() { return this.bannedFilesLover; } - public void setBannedFilesLover(String bannedFilesLover) { + public void setBannedFilesLover(Character bannedFilesLover) { this.bannedFilesLover = bannedFilesLover; } - public String getBadHeaderLover() { + public Character getBadHeaderLover() { return this.badHeaderLover; } - public void setBadHeaderLover(String badHeaderLover) { + public void setBadHeaderLover(Character badHeaderLover) { this.badHeaderLover = badHeaderLover; } - public String getBypassVirusChecks() { + public Character getBypassVirusChecks() { return this.bypassVirusChecks; } - public void setBypassVirusChecks(String bypassVirusChecks) { + public void setBypassVirusChecks(Character bypassVirusChecks) { this.bypassVirusChecks = bypassVirusChecks; } - public String getBypassSpamChecks() { + public Character getBypassSpamChecks() { return this.bypassSpamChecks; } - public void setBypassSpamChecks(String bypassSpamChecks) { + public void setBypassSpamChecks(Character bypassSpamChecks) { this.bypassSpamChecks = bypassSpamChecks; } - public String getBypassBannedChecks() { + public Character getBypassBannedChecks() { return this.bypassBannedChecks; } - public void setBypassBannedChecks(String bypassBannedChecks) { + public void setBypassBannedChecks(Character bypassBannedChecks) { this.bypassBannedChecks = bypassBannedChecks; } - public String getBypassHeaderChecks() { + public Character getBypassHeaderChecks() { return this.bypassHeaderChecks; } - public void setBypassHeaderChecks(String bypassHeaderChecks) { + public void setBypassHeaderChecks(Character bypassHeaderChecks) { this.bypassHeaderChecks = bypassHeaderChecks; } - public String getSpamModifiesSubj() { + public Character getSpamModifiesSubj() { return this.spamModifiesSubj; } - public void setSpamModifiesSubj(String spamModifiesSubj) { + public void setSpamModifiesSubj(Character spamModifiesSubj) { this.spamModifiesSubj = spamModifiesSubj; } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Job.hbm.xml =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Job.hbm.xml 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Job.hbm.xml 2007-01-16 21:35:29 UTC (rev 18) @@ -28,6 +28,9 @@ <property name="description" column="job_description" type="java.lang.String" not-null="true" /> <property name="cronSettings" column="job_cron_settings" type="java.lang.String" not-null="true" length="30" /> <property name="jobClass" column="job_class" type="java.lang.Class" not-null="true" /> + <property name="specialPurpose" type="java.lang.Boolean" > + <column name="job_special" default="false" /> + </property> <property name="enabled" type="java.lang.Boolean" not-null="true"> <column name="job_enabled" default="false" /> </property> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/JobDAO.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/JobDAO.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/JobDAO.java 2007-01-16 21:35:29 UTC (rev 18) @@ -39,8 +39,8 @@ public static final String CRON_SETTINGS = "cronSettings"; public static final String JOB_CLASS = "jobClass"; public static final String LAST_RUN = "lastRun"; + public static final String SPECIAL_PURPOSE = "specialPurpose"; - public void save(Job transientInstance) { log.debug("saving Job instance"); try { @@ -122,6 +122,10 @@ return findByProperty(CRON_SETTINGS, cronSettings); } + public List findBySpecialPurpose(Object specialPurpose) { + return findByProperty(SPECIAL_PURPOSE, specialPurpose); + } + public Job merge(Job detachedInstance) { log.debug("merging Job instance"); try { Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MailAddressDAO.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MailAddressDAO.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MailAddressDAO.java 2007-01-16 21:35:29 UTC (rev 18) @@ -15,12 +15,10 @@ */ package de.sreindl.amavisadmin.db; -import java.util.ArrayList; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.tools.ant.taskdefs.Java; import org.hibernate.LockMode; import org.hibernate.Query; import org.hibernate.criterion.Example; @@ -163,7 +161,7 @@ * extracted *@return the reversed email address */ - public static String generateDomain (String email) throws IllegalArgumentException { + public static String generateDomain(String email) throws IllegalArgumentException { log.debug("generating reverse domain for " + email); int atSign = email.indexOf('@'); if (atSign < 0) { @@ -174,7 +172,7 @@ StringBuffer result = new StringBuffer(domainName.length()); for (int i = domainParts.length -1; i >= 0; i--) { result.append(domainParts[i]); - if (i > 0) + if (i > 0) result.append('.'); } if (log.isDebugEnabled()) { @@ -183,7 +181,7 @@ return result.toString(); } - public static String generateDomain (MailAddress ma) throws IllegalArgumentException { - return generateDomain (ma.getEmail()); + public static String generateDomain(MailAddress ma) throws IllegalArgumentException { + return generateDomain(ma.getEmail()); } } \ No newline at end of file Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Message.hbm.xml =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Message.hbm.xml 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Message.hbm.xml 2007-01-16 21:35:29 UTC (rev 18) @@ -55,13 +55,13 @@ <property name="content" type="java.lang.Character"> <column name="content" /> </property> - <property name="quarType" type="java.lang.String"> + <property name="quarType" type="java.lang.Character"> <column name="quar_type" length="1" /> </property> <property name="quarLoc" type="java.lang.String"> <column name="quar_loc" /> </property> - <property name="dsnSent" type="java.lang.String"> + <property name="dsnSent" type="java.lang.Character"> <column name="dsn_sent" length="1" /> </property> <property name="spamLevel" type="java.lang.Double"> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Message.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Message.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Message.java 2007-01-16 21:35:29 UTC (rev 18) @@ -42,7 +42,7 @@ } /** full constructor */ - public Message(String mailId, MailAddress maddr, String secretId, String amId, Integer timeNum, Date timeIso, String policy, String clientAddr, Integer size, Character content, String quarType, String quarLoc, String dsnSent, Double spamLevel, String messageId, String fromAddr, String subject, String host, Set msgrcpts, List quarantines) { + public Message(String mailId, MailAddress maddr, String secretId, String amId, Integer timeNum, Date timeIso, String policy, String clientAddr, Integer size, Character content, Character quarType, String quarLoc, Character dsnSent, Double spamLevel, String messageId, String fromAddr, String subject, String host, Set msgrcpts, List quarantines) { super(mailId, maddr, secretId, amId, timeNum, timeIso, policy, clientAddr, size, content, quarType, quarLoc, dsnSent, spamLevel, messageId, fromAddr, subject, host, msgrcpts, quarantines); } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipient.hbm.xml =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipient.hbm.xml 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipient.hbm.xml 2007-01-16 21:35:29 UTC (rev 18) @@ -38,19 +38,19 @@ <many-to-one name="requestUser" class="de.sreindl.amavisadmin.db.User" fetch="select"> <column name="request_user" /> </many-to-one> - <property name="ds" type="java.lang.String"> + <property name="ds" type="java.lang.Character"> <column name="ds" length="1" not-null="true" /> </property> - <property name="rs" type="java.lang.String"> + <property name="rs" type="java.lang.Character"> <column name="rs" length="1" not-null="true" index="msgrcpt_ix_rs" /> </property> <property name="receipId" type="java.lang.Integer" insert="false" update="false"> <column name="rid" /> </property> - <property name="bl" type="java.lang.String"> + <property name="bl" type="java.lang.Character"> <column name="bl" length="1" /> </property> - <property name="wl" type="java.lang.String"> + <property name="wl" type="java.lang.Character"> <column name="wl" length="1" /> </property> <property name="bspamLevel" type="java.lang.Double"> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipient.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipient.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipient.java 2007-01-16 21:35:29 UTC (rev 18) @@ -34,12 +34,12 @@ } /** minimal constructor */ - public MsgReceipient(MsgReceipientId id, MailAddress maddr, Message msgs, String ds, String rs) { + public MsgReceipient(MsgReceipientId id, MailAddress maddr, Message msgs, Character ds, Character rs) { super(id, maddr, msgs, ds, rs); } /** full constructor */ - public MsgReceipient(MsgReceipientId id, MailAddress maddr, Message msgs, String ds, String rs, String bl, String wl, Double bspamLevel, String smtpResp) { + public MsgReceipient(MsgReceipientId id, MailAddress maddr, Message msgs, Character ds, Character rs, Character bl, Character wl, Double bspamLevel, String smtpResp) { super(id, maddr, msgs, ds, rs, bl, wl, bspamLevel, smtpResp); } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipientDAO.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipientDAO.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MsgReceipientDAO.java 2007-01-16 21:35:29 UTC (rev 18) @@ -168,56 +168,56 @@ /** * Mail has not been reviewed. */ - public static final String RS_OPEN = " "; + public static final Character RS_OPEN = ' '; /** * Mail is pending to be released by an admin. * This value is set by the user during the release process. */ - public static final String RS_PENDING = "p"; + public static final Character RS_PENDING = 'p'; /** * Message is waiting to be sent to an admin for release. */ - public static final String RS_REL_PENDING = "P"; + public static final Character RS_REL_PENDING = 'P'; /** * Message has been released. */ - public static final String RS_RELEASED = "R"; + public static final Character RS_RELEASED = 'R'; /** * Message is marked for deletion */ - public static final String RS_DELETED = "D"; + public static final Character RS_DELETED = 'D'; /** * Message is marked as being read (not used) */ - public static final String RS_VIEWING = "V"; + public static final Character RS_VIEWING = 'V'; /** * Message is marked as waiting for release */ - public static final String RS_WAITING_FOR_RELEASE = "W"; + public static final Character RS_WAITING_FOR_RELEASE = 'W'; /* values for DS */ /** * Message has been passed through to the user */ - public static final String DS_PASSED = "P"; + public static final Character DS_PASSED = 'P'; /** * Message has not been delivered to the customer (SPAM) */ - public static final String DS_BLOCKED = "B"; + public static final Character DS_BLOCKED = 'B'; /** * Message has been deferred */ - public static final String DS_DEFERRED = "D"; + public static final Character DS_DEFERRED = 'D'; /** * Message has been temporary failed, need to be resend. */ - public static final String DS_TEMPFAIL = "T"; + public static final Character DS_TEMPFAIL = 'T'; /** * Message has been rejected */ Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Policy.hbm.xml =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Policy.hbm.xml 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Policy.hbm.xml 2007-01-16 21:35:29 UTC (rev 18) @@ -30,31 +30,31 @@ <property name="policyName" type="java.lang.String"> <column name="policy_name" length="32" /> </property> - <property name="virusLover" type="java.lang.String"> + <property name="virusLover" type="java.lang.Character"> <column name="virus_lover" length="1" /> </property> - <property name="spamLover" type="java.lang.String"> + <property name="spamLover" type="java.lang.Character"> <column name="spam_lover" length="1" /> </property> - <property name="bannedFilesLover" type="java.lang.String"> + <property name="bannedFilesLover" type="java.lang.Character"> <column name="banned_files_lover" length="1" /> </property> - <property name="badHeaderLover" type="java.lang.String"> + <property name="badHeaderLover" type="java.lang.Character"> <column name="bad_header_lover" length="1" /> </property> - <property name="bypassVirusChecks" type="java.lang.String"> + <property name="bypassVirusChecks" type="java.lang.Character"> <column name="bypass_virus_checks" length="1" /> </property> - <property name="bypassSpamChecks" type="java.lang.String"> + <property name="bypassSpamChecks" type="java.lang.Character"> <column name="bypass_spam_checks" length="1" /> </property> - <property name="bypassBannedChecks" type="java.lang.String"> + <property name="bypassBannedChecks" type="java.lang.Character"> <column name="bypass_banned_checks" length="1" /> </property> - <property name="bypassHeaderChecks" type="java.lang.String"> + <property name="bypassHeaderChecks" type="java.lang.Character"> <column name="bypass_header_checks" length="1" /> </property> - <property name="spamModifiesSubj" type="java.lang.String"> + <property name="spamModifiesSubj" type="java.lang.Character"> <column name="spam_modifies_subj" length="1" /> </property> <property name="spamQuarantineTo" type="java.lang.String"> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Policy.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Policy.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Policy.java 2007-01-16 21:35:29 UTC (rev 18) @@ -37,7 +37,7 @@ /** full constructor */ - public Policy(String policyName, String virusLover, String spamLover, String bannedFilesLover, String badHeaderLover, String bypassVirusChecks, String bypassSpamChecks, String bypassBannedChecks, String bypassHeaderChecks, String spamModifiesSubj, String spamQuarantineTo, Double spamTagLevel, Double spamTag2Level, Double spamKillLevel) { + public Policy(String policyName, Character virusLover, Character spamLover, Character bannedFilesLover, Character badHeaderLover, Character bypassVirusChecks, Character bypassSpamChecks, Character bypassBannedChecks, Character bypassHeaderChecks, Character spamModifiesSubj, String spamQuarantineTo, Double spamTagLevel, Double spamTag2Level, Double spamKillLevel) { super(policyName, virusLover, spamLover, bannedFilesLover, badHeaderLover, bypassVirusChecks, bypassSpamChecks, bypassBannedChecks, bypassHeaderChecks, spamModifiesSubj, spamQuarantineTo, spamTagLevel, spamTag2Level, spamKillLevel); } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java 2007-01-16 21:35:29 UTC (rev 18) @@ -187,7 +187,9 @@ /** - * disable and enable all jobs currently defined. + * Disable and enable all jobs currently defined. + * + * <p>Jobs which have the special purpose flag set are ignored here.</p> */ public static void scheduleJobs(StdSchedulerFactory factory) { JobDAO jDAO = new JobDAO(); @@ -197,17 +199,19 @@ Iterator i = jobs.iterator(); while (i.hasNext()) { de.sreindl.amavisadmin.db.Job dbJob = (de.sreindl.amavisadmin.db.Job)i.next(); - log.info("Starting job " + dbJob.getJobName()); - BaseJob newJob = null; - try { - newJob = (BaseJob)dbJob.getJobClass().newInstance(); - newJob.setData(dbJob); - } catch (ClassCastException cce) { - log.error("class " + dbJob.getJobClass().getName() + " is not a BaseJob class"); + if (!dbJob.getSpecialPurpose().booleanValue()) { + log.info("Starting job " + dbJob.getJobName()); + BaseJob newJob = null; + try { + newJob = (BaseJob)dbJob.getJobClass().newInstance(); + newJob.setData(dbJob); + } catch (ClassCastException cce) { + log.error("class " + dbJob.getJobClass().getName() + " is not a BaseJob class"); + } + if (newJob != null) { + newJob.scheduleJob(factory); + } } - if (newJob != null) { - newJob.scheduleJob(factory); - } } factory.getDefaultScheduler().start(); } catch (Exception e) { Modified: amavisadmin/trunk/src/java/log4j.properties =================================================================== --- amavisadmin/trunk/src/java/log4j.properties 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/src/java/log4j.properties 2007-01-16 21:35:29 UTC (rev 18) @@ -19,18 +19,18 @@ log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p: %c#%M %x: %m%n -log4j.logger.org.apache=WARN +log4j.logger.org.apache.jsp=DEBUG log4j.logger.org.hibernate=WARN log4j.logger.org.quartz=DEBUG #log4j.logger.org.apache.myfaces=DEBUG -log4j.logger.de.sreindl.spamadmin=DEBUG -#log4j.logger.de.sreindl.spamadmin=INFO -log4j.logger.de.sreindl.spamadmin.bo.ConfigurationBO=WARN +log4j.logger.de.sreindl.amavisadmin=DEBUG +#log4j.logger.de.sreindl.amavisadmin=INFO +log4j.logger.de.sreindl.amavisadmin.bo.ConfigurationBO=WARN #log4j.logger.org.hibernate.tool.hbm2ddl=INFO #log4j.logger.javax.faces=DEBUG #log4j.logger.com.sun.rave=DEBUG -#log4j.logger.org.velocity=TRACE \ No newline at end of file +#log4j.logger.org.velocity=TRACE Modified: amavisadmin/trunk/web/MyRequests.jsp =================================================================== --- amavisadmin/trunk/web/MyRequests.jsp 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/web/MyRequests.jsp 2007-01-16 21:35:29 UTC (rev 18) @@ -20,7 +20,7 @@ style="left: 311px; top: 144px; position: absolute; width: 144px" text="Delete Selected"/> <ui:table binding="#{MyRequests.table1}" deselectMultipleButton="true" id="table1" lite="true" paginateButton="true" paginationControls="true" selectMultipleButton="true" sortPanelToggleButton="true" - style="left: 24px; top: 192px; position: absolute; width: 840px" title="My SPAM/Virus Mails" width="632"> + style="left: 24px; top: 192px; position: absolute; width: 840px" title="My SPAM/Virus Mails"> <script><![CDATA[ /* ----- Functions for Table Preferences Panel ----- */ /* Modified: amavisadmin/trunk/web/UserManagement.jsp =================================================================== --- amavisadmin/trunk/web/UserManagement.jsp 2007-01-15 22:42:46 UTC (rev 17) +++ amavisadmin/trunk/web/UserManagement.jsp 2007-01-16 21:35:29 UTC (rev 18) @@ -13,7 +13,7 @@ </div> <ui:form binding="#{UserManagement.form1}" id="form1"> <ui:panelGroup binding="#{UserManagement.groupPanel1}" id="groupPanel1"> - <ui:button action="editSingleUser" binding="#{UserManagement.btnAdd}" id="btnAdd" text="Add new User"/> + <ui:button action="#{UserManagement.btnAdd_action}" binding="#{UserManagement.btnAdd}" id="btnAdd" text="Add new User"/> </ui:panelGroup> <ui:panelGroup binding="#{UserManagement.groupPanel2}" block="true" id="groupPanel2" style="margin-left: 5px"> <ui:table binding="#{UserManagement.table1}" id="table1" title="User Table"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |