[Amavisadmin-svn] SF.net SVN: amavisadmin: [31] amavisadmin/trunk
Status: Beta
Brought to you by:
streindl
From: <str...@us...> - 2007-01-18 21:50:33
|
Revision: 31 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=31&view=rev Author: streindl Date: 2007-01-18 13:50:33 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Partial fix for #1638972 Modified Paths: -------------- amavisadmin/trunk/db/postgres/update_v0_v1.sql amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/ConfigurationBO.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationDAO.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MailSendJob.java Modified: amavisadmin/trunk/db/postgres/update_v0_v1.sql =================================================================== --- amavisadmin/trunk/db/postgres/update_v0_v1.sql 2007-01-18 21:48:44 UTC (rev 30) +++ amavisadmin/trunk/db/postgres/update_v0_v1.sql 2007-01-18 21:50:33 UTC (rev 31) @@ -8,7 +8,7 @@ key varchar(64) not null, version int4 default 0 not null, value varchar(255) not null, - job_ref varchar(64), + job_ref varchar(64) not null, primary key (key)); create table jobs ( @@ -133,6 +133,12 @@ job_class, job_enabled, job_special) values ('$$Migrate V0 to V1', 'Migration', 'dummy', 'de.sreindl.amavisadmin.migration.MigrateV0toV1', true, true); + +-- 4.2 Dummy job for global variable reference +insert into jobs (job_name, job_description, job_cron_settings, + job_class, job_enabled, job_special) + values ('$$Global', 'Global Variables', 'dummy', + 'de.sreindl.amavisadmin.jobs.BaseJob', false, true); -- 4. Configuration version update Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/ConfigurationBO.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/ConfigurationBO.java 2007-01-18 21:48:44 UTC (rev 30) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/ConfigurationBO.java 2007-01-18 21:50:33 UTC (rev 31) @@ -15,15 +15,18 @@ */ package de.sreindl.amavisadmin.bo; +import de.sreindl.amavisadmin.db.ConfigurationDAO; import de.sreindl.amavisadmin.db.ConfigurationSetting; +import de.sreindl.amavisadmin.db.Job; +import de.sreindl.amavisadmin.db.JobDAO; import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; -import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; @@ -94,11 +97,15 @@ if (log.isDebugEnabled()) { log.debug("setValue (" + key + ", " + value + ")"); } + JobDAO dao = new JobDAO(); + Job globalJob = dao.findById(GLOBAL_JOB); if (confMap != null) { ConfigurationSetting c = (ConfigurationSetting)confMap.get(key); if (c == null) { c = new ConfigurationSetting(); + // 1638972 c.setKey(key); + c.setJob(globalJob); } c.setValue(value); confMap.put(key, c); @@ -178,8 +185,13 @@ Session sess = null; try { sess = HibernateSessionFactory.getSession(); - Query qry = sess.createQuery("from ConfigurationSetting where job is null"); - Iterator i = qry.iterate(); + // 1638972+ + ConfigurationDAO dao = new ConfigurationDAO(); + JobDAO jobDAO = new JobDAO(); + Job globalJob = jobDAO.findById(GLOBAL_JOB); + List confList = dao.findJob(globalJob); + Iterator i = confList.iterator(); + // -1638972 while (i.hasNext()) { ConfigurationSetting c = (ConfigurationSetting)i.next(); confMap.put(c.getKey(), c); @@ -204,4 +216,6 @@ public final static String DOM_REL_HOST = "amavisadmin.domain.release_host"; public final static String DOM_REL_PORT = "amavisadmin.domain.release_port"; public final static String MAIL_SENDER = "amavisadmin.mail.sender"; + + public final static String GLOBAL_JOB = "$$Global"; } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationDAO.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationDAO.java 2007-01-18 21:48:44 UTC (rev 30) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationDAO.java 2007-01-18 21:50:33 UTC (rev 31) @@ -34,6 +34,7 @@ //property constants public static final String VALUE = "value"; + public static final String JOB = "job"; public void save(ConfigurationSetting transientInstance) { @@ -105,6 +106,15 @@ return findByProperty(VALUE, email); } + /** + * Find configuration entries for a particular job + * + * #1638972 + */ + public List findJob(Object job) { + return findByProperty(JOB, job); + } + public ConfigurationSetting merge(ConfigurationSetting detachedInstance) { log.debug("merging ConfigurationSetting instance"); try { @@ -139,4 +149,5 @@ throw re; } } + } \ No newline at end of file Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.hbm.xml =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.hbm.xml 2007-01-18 21:48:44 UTC (rev 30) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.hbm.xml 2007-01-18 21:50:33 UTC (rev 31) @@ -28,6 +28,7 @@ <property name="value" type="java.lang.String"> <column name="value" not-null="true" /> </property> - <many-to-one name="job" column="job_ref" /> + <!-- #1638972 --> + <many-to-one name="job" column="job_ref" not-null="true" /> </class> </hibernate-mapping> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MailSendJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MailSendJob.java 2007-01-18 21:48:44 UTC (rev 30) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MailSendJob.java 2007-01-18 21:50:33 UTC (rev 31) @@ -39,6 +39,9 @@ * <p>This job is responsible for delivering mails stored in table * <code>MAIL_QUEUE</code> to their receipients. * </p> + * + * #1638972 Rename config keys to make them unique. + * * @author sreindl */ public class MailSendJob extends BaseJob { @@ -90,18 +93,18 @@ */ public ArrayList<ConfigurationDataEntry> getConfigurationDataTable() { ArrayList<ConfigurationDataEntry> entries = new ArrayList<ConfigurationDataEntry>(); - entries.add(new ConfigurationDataEntry("amavisadmin.mail.server", "Mail Server", "The mail server to be used", true, DEFAULT_MAIL_SERVER)); - entries.add(new ConfigurationDataEntry("amavisadmin.mail.port", "Mail port", "The port to be used", true, DEFAULT_MAIL_PORT)); - entries.add(new ConfigurationDataEntry("amavisadmin.mail.user", "User Name", "The user to login to the mail server")); - entries.add(new ConfigurationDataEntry("amavisadmin.mail.password", "Password", "The password for authentification")); + entries.add(new ConfigurationDataEntry("amavisadmin.mailJob.server", "Mail Server", "The mail server to be used", true, DEFAULT_MAIL_SERVER)); + entries.add(new ConfigurationDataEntry("amavisadmin.mailJob.port", "Mail port", "The port to be used", true, DEFAULT_MAIL_PORT)); + entries.add(new ConfigurationDataEntry("amavisadmin.mailJob.user", "User Name", "The user to login to the mail server")); + entries.add(new ConfigurationDataEntry("amavisadmin.mailJob.password", "Password", "The password for authentification")); //TODO: DEVELOPMENT entry - ConfigurationDataEntry entry = new ConfigurationDataEntry(MailHandler.KEY_DROP_MAIL, "Drop Mail", "To not actually send the mails! For development purposes!"); + ConfigurationDataEntry entry = new ConfigurationDataEntry("amavisadmin.mailJob.debug", "Drop Mail", "To not actually send the mails! For development purposes!"); entry.setType(ConfigurationDataEntry.TYPE_CHECKBOX); entry.setDefaultValue("false"); entry.setRequired(true); entries.add(entry); // - entry = new ConfigurationDataEntry("amavisadmin.mail.debug", "Debug SMTP", "Print Debug statements for mail delivery. This is mainly used for debugging purposes"); + entry = new ConfigurationDataEntry("amavisadmin.mailJob.debug", "Debug SMTP", "Print Debug statements for mail delivery. This is mainly used for debugging purposes"); entry.setType(ConfigurationDataEntry.TYPE_CHECKBOX); entry.setDefaultValue("false"); entry.setRequired(true); @@ -121,26 +124,26 @@ return false; } mailProperties.setProperty("mail.transport.protocol", "smtp"); - ConfigurationSetting conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mail.server"); + ConfigurationSetting conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mailJob.server"); if (conf == null) { mailProperties.setProperty("mail.host", DEFAULT_MAIL_SERVER); } else { mailProperties.setProperty("mail.host", conf.getValue()); } - conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mail.port"); + conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mailJob.port"); if (conf == null) { mailProperties.setProperty("mail.port", DEFAULT_MAIL_PORT); } else { mailProperties.setProperty("mail.port", conf.getValue()); } - conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mail.user"); + conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mailJob.user"); if (conf == null) { return true; // no user or password given } String user = conf.getValue(); if (user != null && user.length() > 0) { mailProperties.setProperty("mail.user", user); - conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mail.password"); + conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mailJob.password"); if (conf != null) { // optional String password = conf.getValue(); @@ -148,11 +151,11 @@ mailProperties.setProperty("mail.password", password); } } - conf = (ConfigurationSetting)getConfItems().get(MailHandler.KEY_DROP_MAIL); + conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mailJob.debug"); if (conf != null && Boolean.getBoolean(conf.getValue())) { - mailProperties.setProperty(MailHandler.KEY_DROP_MAIL, "true"); + mailProperties.setProperty("amavisadmin.mailJob.debug", "true"); } - conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mail.debug"); + conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mailJob.debug"); if (conf != null && Boolean.getBoolean(conf.getValue())) { mailProperties.setProperty("mail.smtp.debug", "true"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |