amavisadmin-svn Mailing List for Amavisd-new Maintenance (Page 2)
Status: Beta
Brought to you by:
streindl
You can subscribe to this list here.
2007 |
Jan
(42) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|
From: <str...@us...> - 2007-01-20 16:51:49
|
Revision: 35 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=35&view=rev Author: streindl Date: 2007-01-20 08:51:50 -0800 (Sat, 20 Jan 2007) Log Message: ----------- Fix for bug #1640315 Modified Paths: -------------- amavisadmin/trunk/db/postgres/update_v0_v1.sql Modified: amavisadmin/trunk/db/postgres/update_v0_v1.sql =================================================================== --- amavisadmin/trunk/db/postgres/update_v0_v1.sql 2007-01-20 15:53:15 UTC (rev 34) +++ amavisadmin/trunk/db/postgres/update_v0_v1.sql 2007-01-20 16:51:50 UTC (rev 35) @@ -164,4 +164,6 @@ -- 4. Configuration version update -insert into configuration ("key", "value") values ('amavisadmin.db_version', '1'); +-- #1640315 +insert into configuration ("key", job_ref, "value") + values ('amavisadmin.db_version', '$$Global', '1'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-20 15:53:15
|
Revision: 34 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=34&view=rev Author: streindl Date: 2007-01-20 07:53:15 -0800 (Sat, 20 Jan 2007) Log Message: ----------- Ignore SESSION.ser that is created by netbeans sometimes Property Changed: ---------------- amavisadmin/trunk/ Property changes on: amavisadmin/trunk ___________________________________________________________________ Name: svn:ignore - dist build + dist build SESSIONS.ser This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-20 15:47:40
|
Revision: 33 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=33&view=rev Author: streindl Date: 2007-01-20 07:47:38 -0800 (Sat, 20 Jan 2007) Log Message: ----------- Fixes for: * 1640285 Dp not use plural terms for table names * 1639757 Admin reminder contains wrong HQL * 1639749 Regression: No mails are send via batch * 1639740 Bugs in deletion reminder mail * 1638972 Not possible to create parameters for jobs Modified Paths: -------------- amavisadmin/trunk/db/postgres/update_v0_v1.sql amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditSingleJob.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/ConfigurationBO.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractConfigurationSetting.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Job.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MailQueueReceipient.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Request.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MailSendJob.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/ReminderJob.java amavisadmin/trunk/web/EditSingleJob.jsp Added Paths: ----------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractConfigurationSettingId.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSettingId.java Modified: amavisadmin/trunk/db/postgres/update_v0_v1.sql =================================================================== --- amavisadmin/trunk/db/postgres/update_v0_v1.sql 2007-01-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/db/postgres/update_v0_v1.sql 2007-01-20 15:47:38 UTC (rev 33) @@ -4,14 +4,17 @@ -- new tables +-- #1638972 create table configuration ( - key varchar(64) not null, + "key" varchar(64) not null, + job_ref varchar(64) not null, version int4 default 0 not null, - value varchar(255) not null, - job_ref varchar(64) not null, - primary key (key)); + "value" varchar(255) not null, + primary key ("key", job_ref) +); -create table jobs ( +-- #1640285 +create table job ( job_name varchar(64) not null, version int4 default 0 not null, job_description varchar(255) not null, @@ -20,8 +23,22 @@ job_special bool not null default false, job_enabled bool not null default false, job_last_run_date timestamp, - primary key (job_name)); + primary key (job_name) +); +-- postponed to 0.2 +--create table job_status ( +-- job_name varchar(64) not null, +-- job_run_date timestamp with time zone +-- not null, +-- version int4 default 0 not null, +-- job_status character(1) default ' ' +-- not null +-- check (job_status in (' ', 'S', 'E')), +-- job_status_message text not null, +-- primary key (job_name, job_run_date) +--); + create table mail_queue ( id int4 not null, version int4 default 0 not null, @@ -33,30 +50,34 @@ encoding varchar(128) not null, mail_text text not null, error varchar(255), - primary key (id)); + primary key (id) +); create sequence mail_queue_id_seq; -create table mail_queue_rcpts ( +create table mail_queue_rcpt ( id int4 not null, version int4 default 0 not null, rcpt_type char(1) check (rcpt_type IN ('T', 'C', 'B')), receipient varchar(255) not null, mail_queue_id int4 not null, - primary key (id)); + primary key (id) +); -create sequence mail_queue_rcpts_id_seq; +create sequence mail_queue_rcpt_id_seq; -create table requests ( - key varchar(255) not null, +-- #1640285 +create table request ( + "key" varchar(255) not null, version int4 default 0 not null, handler_Type varchar(255) not null, status char(1) not null, expiration_date timestamp not null, param1 varchar(255), param2 varchar(255), - primary key (key)); + primary key ("key") +); -- 2. changes to existing tables @@ -108,10 +129,11 @@ -- 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; + foreign key (job_ref) references job; -alter table mail_queue_rcpts add constraint mail_queue_recpts_fk_1 +alter table mail_queue_rcpt add constraint mail_queue_rcpt_fk_1 foreign key (mail_queue_id) references mail_queue; alter table msgrcpt drop constraint "$1"; @@ -129,13 +151,13 @@ -- 4. Load data -- 4.1 Migration Job -insert into jobs (job_name, job_description, job_cron_settings, +insert into job (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.2 Dummy job for global variable reference -insert into jobs (job_name, job_description, job_cron_settings, +-- 4.2 Dummy job for global variable references +insert into job (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); Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditSingleJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditSingleJob.java 2007-01-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditSingleJob.java 2007-01-20 15:47:38 UTC (rev 33) @@ -38,12 +38,10 @@ import com.sun.rave.web.ui.component.TextField; import com.sun.rave.web.ui.model.Option; import com.sun.rave.web.ui.model.SingleSelectOptionsList; -import de.sreindl.amavisadmin.ApplicationBean1; -import de.sreindl.amavisadmin.RequestBean1; -import de.sreindl.amavisadmin.SessionBean1; import de.sreindl.amavisadmin.bo.configuration.ConfigurationDataEntry; import de.sreindl.amavisadmin.bo.configuration.ConfigurationDataTable; import de.sreindl.amavisadmin.db.ConfigurationSetting; +import de.sreindl.amavisadmin.db.ConfigurationSettingId; import de.sreindl.amavisadmin.db.Job; import de.sreindl.amavisadmin.db.JobDAO; import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; @@ -55,6 +53,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.Iterator; import javax.faces.FacesException; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; @@ -377,23 +376,23 @@ public void setMessage1(Message m) { this.message1 = m; } - + private PanelGroup groupPanel1 = new PanelGroup(); - + public PanelGroup getGroupPanel1() { return groupPanel1; } - + public void setGroupPanel1(PanelGroup pg) { this.groupPanel1 = pg; } - + private PanelGroup groupPanel2 = new PanelGroup(); - + public PanelGroup getGroupPanel2() { return groupPanel2; } - + public void setGroupPanel2(PanelGroup pg) { this.groupPanel2 = pg; } @@ -485,33 +484,41 @@ * this page.</p> */ public void prerender() { - if (!FacesContext.getCurrentInstance().getMessages().hasNext()) { - // regular startup - String jobName = (String)getSessionBean1().getParameter("JOB_NAME"); - this.erase(); - if (jobName != null) { - JobDAO dao = new JobDAO(); - Job currentJob = dao.findById(jobName); - fldJobName.setText(currentJob.getJobName()); - fldDescription.setText(currentJob.getDescription()); - fldCRONSchedule.setText(currentJob.getCronSettings()); - dropDown1.setValue(currentJob.getJobClass().getName()); - chkEnabled.setSelected(currentJob.getEnabled()); - try { - BaseJob job = (BaseJob)currentJob.getJobClass().newInstance(); - ArrayList<ConfigurationDataEntry> entries = - job.getConfigurationDataTable(); - ConfigurationDataEntry[] deArray = - entries.toArray(new ConfigurationDataEntry[entries.size()]); - getSessionBean1().getConfigurationTableEntries().setArray(deArray); - } catch (InstantiationException ie) { - log("Error ", ie); - } catch (IllegalAccessException iae) { - log("Error ", iae); + // regular startup + String jobName = (String)getSessionBean1().getParameter("JOB_NAME"); + this.erase(); + if (jobName != null) { + JobDAO dao = new JobDAO(); + Job currentJob = dao.findById(jobName); + fldJobName.setText(currentJob.getJobName()); + fldDescription.setText(currentJob.getDescription()); + fldCRONSchedule.setText(currentJob.getCronSettings()); + dropDown1.setValue(currentJob.getJobClass().getName()); + chkEnabled.setSelected(currentJob.getEnabled()); + try { + BaseJob job = (BaseJob)currentJob.getJobClass().newInstance(); + ArrayList<ConfigurationDataEntry> entries = + job.getConfigurationDataTable(); + // add job's configuration entries to array + Iterator<ConfigurationDataEntry> iKeys = entries.iterator(); + while (iKeys.hasNext()) { + ConfigurationDataEntry entry = iKeys.next(); + if (currentJob.getConfItems().containsKey(entry.getKey())) { + ConfigurationSetting confEntry = + (ConfigurationSetting)currentJob.getConfItems().get(entry.getKey()); + entry.setValue(confEntry.getValue()); + } } - } else { - getSessionBean1().getConfigurationTableEntries().setArray(null); + ConfigurationDataEntry[] deArray = + entries.toArray(new ConfigurationDataEntry[entries.size()]); + configurationTableEntries.setArray(deArray); + } catch (InstantiationException ie) { + log("Error ", ie); + } catch (IllegalAccessException iae) { + log("Error ", iae); } + } else { + configurationTableEntries.setArray(null); } } @@ -679,7 +686,7 @@ } currentJob.setConfItems(new HashMap()); saveConfEntries(currentJob, - (ConfigurationDataEntry[])getSessionBean1().getConfigurationTableEntries().getArray()); + (ConfigurationDataEntry[])configurationTableEntries.getArray()); trx.commit(); // refresh data set getSessionBean1().getJobsDataProvider().refresh(); @@ -759,14 +766,19 @@ private void saveConfEntries(Job currentJob, ConfigurationDataEntry[] confEntries) { Session session = HibernateSessionFactory.getSession(); for (int i = 0; i < confEntries.length; i++) { + // #1638972 ConfigurationDataEntry ent = confEntries[i]; - if (ent.getValue() != null) { - if (!ent.getValue().equals(ent.getDefaultValue())) { - ConfigurationSetting conf = new ConfigurationSetting(ent.getKey(), ent.getValue(), currentJob); - session.save(conf); - currentJob.getConfItems().put(ent.getKey(), conf); - } + ConfigurationSettingId key = + new ConfigurationSettingId(ent.getKey(), currentJob); + ConfigurationSetting conf = + (ConfigurationSetting)session.get(ConfigurationSetting.class, + key); + if (conf == null) { + conf = new ConfigurationSetting(key, ent.getValue()); } + conf.setValue(ent.getValue()); + session.save(conf); + currentJob.getConfItems().put(ent.getKey(), conf); } } @@ -779,8 +791,7 @@ job.getConfigurationDataTable(); ConfigurationDataEntry[] deArray = entries.toArray(new ConfigurationDataEntry[entries.size()]); - getSessionBean1(). - getConfigurationTableEntries().setArray(deArray); + configurationTableEntries.setArray(deArray); } catch (ClassNotFoundException cnfe) { log("Error ", cnfe); } catch (InstantiationException ie) { 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:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/ConfigurationBO.java 2007-01-20 15:47:38 UTC (rev 33) @@ -17,6 +17,7 @@ import de.sreindl.amavisadmin.db.ConfigurationDAO; import de.sreindl.amavisadmin.db.ConfigurationSetting; +import de.sreindl.amavisadmin.db.ConfigurationSettingId; import de.sreindl.amavisadmin.db.Job; import de.sreindl.amavisadmin.db.JobDAO; import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; @@ -102,10 +103,8 @@ if (confMap != null) { ConfigurationSetting c = (ConfigurationSetting)confMap.get(key); if (c == null) { - c = new ConfigurationSetting(); - // 1638972 - c.setKey(key); - c.setJob(globalJob); + //# 1638972 + c = new ConfigurationSetting(new ConfigurationSettingId(key, globalJob)); } c.setValue(value); confMap.put(key, c); @@ -127,23 +126,21 @@ try { sess = HibernateSessionFactory.getSession(); trx = sess.beginTransaction(); + JobDAO jobDAO = new JobDAO(); + Job globalJob = jobDAO.findById(GLOBAL_JOB); Iterator i = confMap.keySet().iterator(); while (i.hasNext()) { String key = (String)i.next(); - ConfigurationSetting c = (ConfigurationSetting)confMap.get(key); - log.debug("Saving key " + c.getKey()); - if (c.getValue() == null) { - if (c.getVersion() != null && c.getVersion().intValue() >= 0) { - // value has been stored already --> delete - sess.delete(c); - } - } else if (c.getVersion() == null || c.getVersion().intValue() == 0) { - // new value - sess.saveOrUpdate(c); - } else { - // update - sess.update(c); + //#1638972 + log.debug("Saving key " + key); + ConfigurationSetting c = (ConfigurationSetting)sess.get( + ConfigurationSetting.class, + new ConfigurationSettingId(key, globalJob)); + if (c == null) { + c = new ConfigurationSetting(new ConfigurationSettingId(key, globalJob)); } + c.setValue(((ConfigurationSetting)confMap.get(key)).getValue()); + sess.saveOrUpdate(c); } trx.commit(); HibernateSessionFactory.closeSession(); @@ -194,7 +191,7 @@ // -1638972 while (i.hasNext()) { ConfigurationSetting c = (ConfigurationSetting)i.next(); - confMap.put(c.getKey(), c); + confMap.put(c.getId().getKey(), c); } if (sess.isDirty()) { log.fatal("Session is dirty???"); Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractConfigurationSetting.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractConfigurationSetting.java 2007-01-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractConfigurationSetting.java 2007-01-20 15:47:38 UTC (rev 33) @@ -24,8 +24,8 @@ */ public abstract class AbstractConfigurationSetting implements Serializable { - - private String key; + // #1638972 + private AbstractConfigurationSettingId id; private Integer version; private String value; @@ -33,25 +33,15 @@ public AbstractConfigurationSetting() { } - public AbstractConfigurationSetting(String key, String value) { - this.key = key; - this.value = value; + public AbstractConfigurationSetting(AbstractConfigurationSettingId id) { + this.id = id; } - public AbstractConfigurationSetting(String key, String value, Job job) { - this.key = key; + public AbstractConfigurationSetting(AbstractConfigurationSettingId id, String value) { + this.id = id; this.value = value; - this.job = job; } - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - public Integer getVersion() { return version; } @@ -88,5 +78,13 @@ public void setJob(Job job) { this.job = job; } + + public AbstractConfigurationSettingId getId() { + return id; + } + + public void setId(AbstractConfigurationSettingId id) { + this.id = id; + } } \ No newline at end of file Added: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractConfigurationSettingId.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractConfigurationSettingId.java (rev 0) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractConfigurationSettingId.java 2007-01-20 15:47:38 UTC (rev 33) @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2007 Stephen Reindl + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/* + * AbstractConfigurationSettingId.java + * + * Created on 20. Januar 2007, 12:12 + * + */ + +package de.sreindl.amavisadmin.db; + +import java.io.Serializable; + +/** + * + * @author sreindl + */ +public class AbstractConfigurationSettingId implements Serializable { + private String key; + private Job job; + + + /** Creates a new instance of AbstractConfigurationSettingId */ + public AbstractConfigurationSettingId() { + } + + + + /** full constructor */ + public AbstractConfigurationSettingId(String key, Job job){ + setKey(key); + setJob(job); + } + + public boolean equals(Object other) { + if ( (this == other ) ) return true; + if ( (other == null ) ) return false; + if ( !(other instanceof AbstractConfigurationSettingId) ) return false; + AbstractConfigurationSettingId castOther = (AbstractConfigurationSettingId) other; + + return ( (this.getKey()==castOther.getKey()) || ( this.getKey()!=null && castOther.getKey()!=null && this.getKey().equals(castOther.getKey()) ) ) + && ( (this.getJob()==castOther.getJob()) || ( this.getJob()!=null && castOther.getJob()!=null && this.getJob().equals(castOther.getKey()) ) ); + } + + public int hashCode() { + int result = 17; + + result = 37 * result + ( getKey() == null ? 0 : this.getKey().hashCode() ); + result = 37 * result + ( getJob() == null ? 0 : this.getJob().hashCode() ); + return result; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public Job getJob() { + return job; + } + + public void setJob(Job job) { + this.job = job; + } + + + + +} 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:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.hbm.xml 2007-01-20 15:47:38 UTC (rev 33) @@ -17,18 +17,22 @@ * limitations under the License. --> <hibernate-mapping> + <!-- #1638972 --> <class name="de.sreindl.amavisadmin.db.ConfigurationSetting" lazy="false" table="configuration" schema="public"> - <id name="key" > - <column name="key" length="64" /> - <generator class="assigned" /> - </id> + <composite-id name="id" class="de.sreindl.amavisadmin.db.ConfigurationSettingId" > + <key-property name="key" type="java.lang.String"> + <column name="key" length="64" not-null="true" /> + </key-property> + <key-many-to-one name="job" class="de.sreindl.amavisadmin.db.Job" foreign-key="configuration_fk1"> + <column name="job_ref" not-null="true" /> + </key-many-to-one> + </composite-id> <version name="version" type="java.lang.Integer" insert="false" > <column name="version" default="0" /> </version> <property name="value" type="java.lang.String"> <column name="value" not-null="true" /> </property> - <!-- #1638972 --> - <many-to-one name="job" column="job_ref" not-null="true" /> + <many-to-one name="job" column="job_ref" not-null="true" update="false" insert="false"/> </class> </hibernate-mapping> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.java 2007-01-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSetting.java 2007-01-20 15:47:38 UTC (rev 33) @@ -20,6 +20,8 @@ /** * Configuration Setting + * + * @bug 1638972 */ public class ConfigurationSetting extends AbstractConfigurationSetting implements Serializable { @@ -29,11 +31,11 @@ public ConfigurationSetting() { } - public ConfigurationSetting(String key, String value) { - super (key, value); + public ConfigurationSetting(ConfigurationSettingId id) { + super (id); } - - public ConfigurationSetting(String key, String value, Job job) { - super(key, value, job); + + public ConfigurationSetting(ConfigurationSettingId id, String value) { + super (id, value); } } Added: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSettingId.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSettingId.java (rev 0) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/ConfigurationSettingId.java 2007-01-20 15:47:38 UTC (rev 33) @@ -0,0 +1,47 @@ +/* + * Copyright (C) {YEAR!!} Stephen Reindl + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/* + * ConfigurationSettingId.java + * + * Created on 20. Januar 2007, 12:20 + * + */ + +package de.sreindl.amavisadmin.db; + +import java.io.Serializable; + +/** + * Class representing the primary key for table configuration + * + * @author sreindl + * + * @bug 1638972 + */ +public class ConfigurationSettingId extends AbstractConfigurationSettingId implements Serializable { + + /** Creates a new instance of ConfigurationSettingId */ + public ConfigurationSettingId() { + } + + /** Creates a new instance of ConfigurationSettingId */ + public ConfigurationSettingId(String key, Job job) { + super (key, job); + } + +} 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-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Job.hbm.xml 2007-01-20 15:47:38 UTC (rev 33) @@ -17,7 +17,8 @@ * limitations under the License. --> <hibernate-mapping> - <class name="de.sreindl.amavisadmin.db.Job" table="jobs" schema="public"> + <!-- #1640285 --> + <class name="de.sreindl.amavisadmin.db.Job" table="job" schema="public"> <id name="jobName"> <column name="job_name" length="64" /> <generator class="assigned" /> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MailQueueReceipient.hbm.xml =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MailQueueReceipient.hbm.xml 2007-01-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/MailQueueReceipient.hbm.xml 2007-01-20 15:47:38 UTC (rev 33) @@ -17,11 +17,11 @@ * limitations under the License. --> <hibernate-mapping> - <class name="de.sreindl.amavisadmin.db.MailQueueReceipient" table="mail_queue_rcpts" schema="public"> + <class name="de.sreindl.amavisadmin.db.MailQueueReceipient" table="mail_queue_rcpt" schema="public"> <id name="id" type="java.lang.Integer" > <column name="id" /> <generator class="sequence"> - <param name="sequence">mail_queue_rcpts_id_seq</param> + <param name="sequence">mail_queue_rcpt_id_seq</param> </generator> </id> <version name="version" type="java.lang.Integer" unsaved-value="null" insert="false" > @@ -31,7 +31,7 @@ <column name="rcpt_type" check="rcpt_type IN ('T', 'C', 'B')" /> </property> <property name="receipient" type="java.lang.String" length="255" not-null="true" /> - <many-to-one name="mailQueueEntry" class="de.sreindl.amavisadmin.db.MailQueueEntry" > + <many-to-one name="mailQueueEntry" class="de.sreindl.amavisadmin.db.MailQueueEntry" foreign-key="mail_queue_rcpt_fk_1"> <column name="mail_queue_id" not-null="true" /> </many-to-one> </class> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Request.hbm.xml =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Request.hbm.xml 2007-01-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Request.hbm.xml 2007-01-20 15:47:38 UTC (rev 33) @@ -17,10 +17,11 @@ * limitations under the License. --> <hibernate-mapping> - <class name="de.sreindl.amavisadmin.db.Request" table="requests" schema="public"> + <!-- #1640285 --> + <class name="de.sreindl.amavisadmin.db.Request" table="request" schema="public"> <id name="key" type="java.lang.String" unsaved-value="null"> <column name="key" /> - <generator class="assigned"></generator> + <generator class="assigned" /> </id> <version name="version" type="java.lang.Integer" insert="false" > <column name="version" default="0" /> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java 2007-01-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java 2007-01-20 15:47:38 UTC (rev 33) @@ -61,7 +61,8 @@ log.info("Starting new admin notifier job"); Session session = HibernateSessionFactory.getSession(); User user; - Query qry = session.createQuery("select count(*) from MsgRecipient where rs = :wait_ind"); + // #1639757 + Query qry = session.createQuery("select count(*) from MsgReceipient where rs = :wait_ind"); qry.setCharacter("wait_ind", MsgReceipientDAO.RS_REL_PENDING); BigInteger count = (BigInteger)qry.uniqueResult(); 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:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MailSendJob.java 2007-01-20 15:47:38 UTC (rev 33) @@ -74,6 +74,8 @@ Iterator i = entries.iterator(); while (i.hasNext()) { MailQueueEntry entry = (MailQueueEntry)i.next(); + // #1639749 + MailHandler.sendSingleMail(entry, mailProperties); session.update(entry); } trx.commit(); @@ -104,7 +106,7 @@ entry.setRequired(true); entries.add(entry); // - entry = new ConfigurationDataEntry("amavisadmin.mailJob.debug", "Debug SMTP", "Print Debug statements for mail delivery. This is mainly used for debugging purposes"); + entry = new ConfigurationDataEntry("amavisadmin.mailJob.debugSMTP", "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); @@ -155,7 +157,7 @@ if (conf != null && Boolean.getBoolean(conf.getValue())) { mailProperties.setProperty("amavisadmin.mailJob.debug", "true"); } - conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mailJob.debug"); + conf = (ConfigurationSetting)getConfItems().get("amavisadmin.mailJob.debugSMTP"); if (conf != null && Boolean.getBoolean(conf.getValue())) { mailProperties.setProperty("mail.smtp.debug", "true"); } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/ReminderJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/ReminderJob.java 2007-01-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/ReminderJob.java 2007-01-20 15:47:38 UTC (rev 33) @@ -92,7 +92,9 @@ //qry.setString("email", user.getEmail()); qry.setDate("time_set", reminderDate.getTime()); int mailCount = ((BigInteger)qry.uniqueResult()).intValue(); - prepareMail(user, mailCount); + if (mailCount > 0) { // #1639740 + prepareMail(user, mailCount); + } } /** @@ -166,8 +168,10 @@ context.put("user", user); context.put("appTitle", ConfigurationBO.getConfValue(ConfigurationBO.APP_TITLE)); context.put("signature", ConfigurationBO.getConfValue(ConfigurationBO.APP_TITLE)); - context.put("baselink", ConfigurationBO.getConfValue(ConfigurationBO.CONF_BASE_URL) + "/"); + context.put("baselink", ConfigurationBO.getConfValue(ConfigurationBO.CONF_BASE_URL)); context.put("mailCount", Integer.valueOf(mailCount)); + // #1639740 + context.put("timeframe", Integer.valueOf(numDays)); Template lostPwd = Velocity.getTemplate("/de/sreindl/amavisadmin/templates/Reminder.vm"); StringWriter w = new StringWriter(); lostPwd.merge(context, w); Modified: amavisadmin/trunk/web/EditSingleJob.jsp =================================================================== --- amavisadmin/trunk/web/EditSingleJob.jsp 2007-01-18 21:53:25 UTC (rev 32) +++ amavisadmin/trunk/web/EditSingleJob.jsp 2007-01-20 15:47:38 UTC (rev 33) @@ -9,7 +9,8 @@ </ui:head> <ui:body binding="#{EditSingleJob.body1}" focus="form1:fldJobName" id="body1"> <jsp:directive.include file="Header.jspf"/> - <ui:form binding="#{EditSingleJob.form1}" id="form1"> + <!-- #1638972 --> + <ui:form binding="#{EditSingleJob.form1}" id="form1" virtualFormsConfig="baseDataForm | | , parameterForm | groupPanel1:gridPanel1:dropDown1 | groupPanel1:gridPanel1:dropDown1"> <ui:panelGroup binding="#{EditSingleJob.groupPanel1}" block="true" id="groupPanel1" style="margin: 5px; padding: 5px; "> <ui:panelGroup binding="#{EditSingleJob.groupPanel2}" id="groupPanel2"> <ui:button action="#{EditSingleJob.btnSave_action}" binding="#{EditSingleJob.btnSave}" id="btnSave" text="Save"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-18 21:53:30
|
Revision: 32 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=32&view=rev Author: streindl Date: 2007-01-18 13:53:25 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for #1636519 Added Paths: ----------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm Added: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java (rev 0) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java 2007-01-18 21:53:25 UTC (rev 32) @@ -0,0 +1,125 @@ +/* + * Copyright (C) 2007 Stephen Reindl. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.sreindl.amavisadmin.jobs; + +import de.sreindl.amavisadmin.bo.ConfigurationBO; +import de.sreindl.amavisadmin.bo.UserBO; +import de.sreindl.amavisadmin.bo.configuration.ConfigurationDataEntry; +import de.sreindl.amavisadmin.db.MailQueueEntry; +import de.sreindl.amavisadmin.db.MailQueueEntryDAO; +import de.sreindl.amavisadmin.db.MailQueueReceipient; +import de.sreindl.amavisadmin.db.MailQueueReceipientDAO; +import de.sreindl.amavisadmin.db.MsgReceipientDAO; +import de.sreindl.amavisadmin.db.User; +import de.sreindl.amavisadmin.db.UserDAO; +import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; +import java.io.StringWriter; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.hibernate.Query; +import org.hibernate.Session; +import org.quartz.JobExecutionContext; + +/** + * This job is responsible for informing administrators + * + * @author sreindl + */ +public class AdminNotifierJob extends BaseJob { + + private static Log log = LogFactory.getLog(AdminNotifierJob.class); + + /** Creates a new instance of ReminderJob */ + public AdminNotifierJob() { + } + + /** + * ececutor that the job itself has to execute. + */ + public void excuteJob(JobExecutionContext context) throws Exception { + log.info("Starting new admin notifier job"); + Session session = HibernateSessionFactory.getSession(); + User user; + Query qry = session.createQuery("select count(*) from MsgRecipient where rs = :wait_ind"); + qry.setCharacter("wait_ind", MsgReceipientDAO.RS_REL_PENDING); + + BigInteger count = (BigInteger)qry.uniqueResult(); + if (count != null && count.intValue() > 0) { + sendAdminNotifier(count.intValue()); + } + log.info("Finishing new mail notifier job"); + } + + /** + * Return true if a surrounding transaction layer has to be created. + */ + public boolean isTransactionalJob() { + return true; + } + + public ArrayList<ConfigurationDataEntry> getConfigurationDataTable() { + ArrayList<ConfigurationDataEntry> entries = + new ArrayList<ConfigurationDataEntry>(); + return entries; + } + + /** + * Send the mail to the admins + */ + private void sendAdminNotifier(int requestCount) throws Exception { + VelocityContext context = new VelocityContext(); + UserDAO dao = new UserDAO(); + List adminUsers = dao.findByAdmin(Boolean.TRUE); + + if (adminUsers.size() == 0) { + log.warn ("Warning: No admin users defined"); + return; + } + context.put("appTitle", ConfigurationBO.getConfValue(ConfigurationBO.APP_TITLE)); + context.put("signature", ConfigurationBO.getConfValue(ConfigurationBO.APP_TITLE)); + context.put("baselink", ConfigurationBO.getConfValue(ConfigurationBO.CONF_BASE_URL) + "/"); + context.put("requestCount", Integer.valueOf(requestCount)); + Template lostPwd = Velocity.getTemplate("/de/sreindl/amavisadmin/templates/AdminNotifier.vm"); + StringWriter w = new StringWriter(); + lostPwd.merge(context, w); + MailQueueEntry mqe = new MailQueueEntry(); + mqe.setEncoding("text/plain"); + mqe.setStatus(MailQueueEntryDAO.STATUS_NEW); + mqe.setFrom(ConfigurationBO.getConfValue(ConfigurationBO.MAIL_SENDER)); + mqe.setMailText(w.toString()); + mqe.setSubject((String)context.get("subject")); + Iterator i = adminUsers.iterator(); + mqe.setReceipients(new HashSet()); + HibernateSessionFactory.getSession().save(mqe); + while (i.hasNext()) { + User user = (User)i.next(); + MailQueueReceipient mqr = new MailQueueReceipient(); + mqr.setReceipient(UserBO.formatMailAddress(user)); + mqr.setType(MailQueueReceipientDAO.TYPE_TO); + mqe.getReceipients().add(mqr); + mqr.setMailQueueEntry(mqe); + HibernateSessionFactory.getSession().save(mqr); + } + } +} Property changes on: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Added: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm (rev 0) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm 2007-01-18 21:53:25 UTC (rev 32) @@ -0,0 +1,26 @@ +#* + * Copyright (C) 2007 Stephen Reindl. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +## Template used to inform administrators about pending release mails +#parse("/de/sreindl/amavisadmin/templates/HeaderTemplate.vm") +#set( $subject = "$appTitle: There mails waiting for your approval" ) +Hello Administrator(s), + +You have $requestCount mails that need to be approved/rejected for being +released. + +Please login at $baselink . + +#parse("/de/sreindl/amavisadmin/templates/FooterTemplate.vm") Property changes on: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
From: <str...@us...> - 2007-01-18 21:48:47
|
Revision: 30 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=30&view=rev Author: streindl Date: 2007-01-18 13:48:44 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for #1638946: add more default entries. Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditJobs.java Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditJobs.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditJobs.java 2007-01-18 21:47:06 UTC (rev 29) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditJobs.java 2007-01-18 21:48:44 UTC (rev 30) @@ -32,8 +32,11 @@ import com.sun.rave.web.ui.component.TableRowGroup; import de.sreindl.amavisadmin.db.Job; import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; +import de.sreindl.amavisadmin.jobs.AdminNotifierJob; import de.sreindl.amavisadmin.jobs.BaseJob; +import de.sreindl.amavisadmin.jobs.MailSendJob; import de.sreindl.amavisadmin.jobs.MessagesCleanupJob; +import de.sreindl.amavisadmin.jobs.ReminderJob; import de.sreindl.amavisadmin.jobs.RetentionCleanupJob; import java.io.IOException; import javax.faces.FacesException; @@ -494,18 +497,53 @@ trx = session.beginTransaction(); job = new Job(); job.setJobName("Message Cleanup"); - job.setDescription("Removes messages marked for deletion"); - job.setCronSettings("0 3/15 * * * ?"); + job.setDescription("Removes messages marked for deletion or orphans"); + job.setCronSettings("0 3 0/2 * * ?"); job.setJobClass(MessagesCleanupJob.class); job.setEnabled(Boolean.FALSE); session.save(job); job = new Job(); job.setJobName("Message Retention"); - job.setDescription("Removes old mails according to configuration"); - job.setCronSettings("0 0/5 * * * ?"); + job.setDescription("Marks mails as to be deleted according to user settings"); + job.setCronSettings("0 3 1/2 * * ?"); job.setJobClass(RetentionCleanupJob.class); job.setEnabled(Boolean.FALSE); session.save(job); + job = new Job(); + job.setJobName("Mail Delivery"); + job.setDescription("Mail Delivery Job: Please review parameters before actually starting the job"); + job.setCronSettings("0 0/15 * * * ?"); + job.setJobClass(MailSendJob.class); + job.setEnabled(Boolean.FALSE); + session.save(job); + job = new Job(); + job.setJobName("Mail Warnings"); + job.setDescription("Send Warning mails to users about mails going to be deleted soon. Please Review parameters before starting this job"); + job.setCronSettings("0 0 0 * * ?"); + job.setJobClass(ReminderJob.class); + job.setEnabled(Boolean.FALSE); + session.save(job); + job = new Job(); + job.setJobName("Admin Warnings Mo-Fr"); + job.setDescription("Send Mails to admins during the week"); + job.setCronSettings("0 0 8-16/2 ? * MON-FRI"); + job.setJobClass(AdminNotifierJob.class); + job.setEnabled(Boolean.FALSE); + session.save(job); + job = new Job(); + job.setJobName("Admin Warnings Weekend"); + job.setDescription("Send Mails to admins during for the weekends"); + job.setCronSettings("0 0 8,16 ? * SUN,SAT"); + job.setJobClass(AdminNotifierJob.class); + job.setEnabled(Boolean.FALSE); + session.save(job); + job = new Job(); + job.setJobName("New SPAM Mail Notifier"); + job.setDescription("Send mails to users about new mails arrived. Please review parameters before enabling this job!"); + job.setCronSettings("0 0 7 * * ?"); + job.setJobClass(AdminNotifierJob.class); + job.setEnabled(Boolean.FALSE); + session.save(job); trx.commit(); getSessionBean1().getJobsDataProvider().refresh(); StdSchedulerFactory factory = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-18 21:47:08
|
Revision: 29 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=29&view=rev Author: streindl Date: 2007-01-18 13:47:06 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for bug #1638995: use #parse instead of #include Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/RejectRelease.vm Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/RejectRelease.vm =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/RejectRelease.vm 2007-01-18 20:04:46 UTC (rev 28) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/RejectRelease.vm 2007-01-18 21:47:06 UTC (rev 29) @@ -14,7 +14,8 @@ * limitations under the License. *# ## Template used if user has lost his mail. -#include("/de/sreindl/amavisadmin/templates/HeaderTemplate.vm") +##1638995 +#parse("/de/sreindl/amavisadmin/templates/HeaderTemplate.vm") #set( $subject = "Rejection of mail release" ) Hello $user.fullname, @@ -24,4 +25,4 @@ In case you have complaints please contact the admin at $admin.email. -#include("/de/sreindl/amavisadmin/templates/FooterTemplate.vm") +#parse("/de/sreindl/amavisadmin/templates/FooterTemplate.vm") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-18 20:04:53
|
Revision: 28 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=28&view=rev Author: streindl Date: 2007-01-18 12:04:46 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for bugs #1638825 and #1638917: * Performance improvements on cleanup * Do not delete mail addresses where users are connected to. Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MessagesCleanupJob.java Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MessagesCleanupJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MessagesCleanupJob.java 2007-01-18 19:53:33 UTC (rev 27) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/MessagesCleanupJob.java 2007-01-18 20:04:46 UTC (rev 28) @@ -43,6 +43,9 @@ /** * remove all messages which contain the status 'D' in field 'msgrcpt.rs'. + * and further deletions + * + * fix for #1638917 */ private void removeDeletedMessages(Session session) { log.trace("start removeDeletedMessages"); @@ -51,25 +54,28 @@ msgsMarked += numRows; log.info("Removed " + Integer.toString(numRows) + " message receipients marked as deleted from the database"); - qry = session.createSQLQuery("DELETE FROM msgrcpt WHERE rid IN (SELECT id FROM maddr WHERE user_id IS NULL)"); + qry = session.createSQLQuery("DELETE FROM msgrcpt " + + "WHERE rid IN (SELECT DISTINCT id FROM maddr WHERE user_id IS NULL)"); numRows = qry.executeUpdate(); msgsMarked += numRows; log.info("Removed " + Integer.toString(numRows) + " message receipients with nonlocal recipients from the database"); - qry = session.createSQLQuery("delete from quarantine " + - "where mail_id not in (select mail_id from msgrcpt)"); + qry = session.createSQLQuery("DELETE FROM quarantine " + + "WHERE NOT EXISTS (SELECT 1 FROM msgrcpt WHERE mail_id = quarantine.mail_id)"); numRows = qry.executeUpdate(); msgsMarked += numRows; log.info("Removed " + Integer.toString(numRows) + " quarantine entries from the database"); - qry = session.createSQLQuery("delete from msgs " + - "where mail_id not in (select mail_id from msgrcpt)"); + qry = session.createSQLQuery("delete FROM msgs " + + "WHERE NOT EXISTS (SELECT 1 FROM msgrcpt WHERE mail_id = msgs.mail_id)"); numRows = qry.executeUpdate(); msgsMarked += numRows; log.info("Removed " + Integer.toString(numRows) + " messages from the database"); + // #1638825 qry = session.createSQLQuery("DELETE FROM maddr " + - "WHERE NOT EXISTS (SELECT 1 FROM msgs WHERE sid=id) "+ + "WHERE user_id IS NULL " + + " AND NOT EXISTS (SELECT 1 FROM msgs WHERE sid=id) "+ " AND NOT EXISTS (SELECT 1 FROM msgrcpt WHERE rid=id)"); numRows = qry.executeUpdate(); msgsMarked += numRows; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-18 19:53:36
|
Revision: 27 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=27&view=rev Author: streindl Date: 2007-01-18 11:53:33 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for #1638910: * Msgs already marked as deleted are not remarked again (performance) Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/RetentionCleanupJob.java Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/RetentionCleanupJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/RetentionCleanupJob.java 2007-01-18 19:52:45 UTC (rev 26) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/RetentionCleanupJob.java 2007-01-18 19:53:33 UTC (rev 27) @@ -66,8 +66,11 @@ retentionDay.add(Calendar.DAY_OF_MONTH, -user.getRetention().intValue()); log.debug("Retention will be run for everything before " + retentionDay.getTime()); Session session = HibernateSessionFactory.getSession(); - Query qry = session.createQuery("from MsgReceipient mr where mr.maddr.email = :email and (mr.rs IN ('v', ' ', 'R') or mr.msgs.content IN ('C', 's', 'T')) and mr.msgs.timeIso < :time_set"); - //qry.setInteger("user_id", user.getId()); + Query qry = session.createQuery("from MsgReceipient mr " + + "WHERE mr.maddr.email = :email " + + " AND (mr.rs <> 'D') " + // #1638910 + " AND (mr.rs IN ('v', ' ', 'R') OR mr.msgs.content IN ('C', 's', 'T')) " + + " AND mr.msgs.timeIso < :time_set"); qry.setString("email", user.getEmail()); qry.setDate("time_set", retentionDay.getTime()); Iterator i = qry.iterate(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-18 19:52:47
|
Revision: 26 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=26&view=rev Author: streindl Date: 2007-01-18 11:52:45 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for #1638821: Database is updated In addition the next schedule for the job is displayed. Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java 2007-01-18 19:41:14 UTC (rev 25) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java 2007-01-18 19:52:45 UTC (rev 26) @@ -26,6 +26,7 @@ import java.util.Date; import java.util.Iterator; import java.util.List; +import org.apache.taglibs.standard.lang.jstl.test.beans.Factory; import org.hibernate.HibernateException; import org.hibernate.Transaction; import org.quartz.CronTrigger; @@ -131,10 +132,10 @@ currentTrans = session.beginTransaction(); } // load data - de.sreindl.amavisadmin.db.Job job = + de.sreindl.amavisadmin.db.Job job = (de.sreindl.amavisadmin.db.Job) - session.get(de.sreindl.amavisadmin.db.Job.class, - context.getJobDetail().getName()); + session.get(de.sreindl.amavisadmin.db.Job.class, + context.getJobDetail().getName()); setData(job); excuteJob(context); } catch (Exception e) { @@ -161,7 +162,10 @@ } } setRunning(false); - log.info("Finishing job for class " + this.getClass().getName()); + updateJobRecord(); + log.debug("Finishing job for class " + this.getClass().getName()); + Date nextDate = context.getNextFireTime(); + log.info("Next invocaton for job " + getJobName() + " is on " + nextDate); if (resultException != null) { throw new JobExecutionException("Exception during processing of job " + getJobName(), resultException); } @@ -231,7 +235,7 @@ } /** - * Return an array list of configuration entries to be used for configuring + * Return an array list of configuration entries to be used for configuring * this job. * *@return an array list containing the configuration entries. @@ -254,4 +258,31 @@ } log.info("Stopping of old schedulers done"); } + + /** + * Update the job record of the current job. + * + * <p>As the session has been closed before, open a new one + */ + private void updateJobRecord() { + Session session = null; + Transaction trx = null; + try { + session = HibernateSessionFactory.getSession(); + trx = session.beginTransaction(); + de.sreindl.amavisadmin.db.Job dbJob = + (de.sreindl.amavisadmin.db.Job)session.load(de.sreindl.amavisadmin.db.Job.class, getJobName()); + + dbJob.setLastRun(new Date()); + session.update(dbJob); + trx.commit(); + } catch (HibernateException ex) { + log.error("Cannot update last run date for job " + getJobName()); + } finally { + if (trx != null && trx.isActive()) { + trx.rollback(); + } + HibernateSessionFactory.closeSession(); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-18 19:41:21
|
Revision: 25 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=25&view=rev Author: streindl Date: 2007-01-18 11:41:14 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix bug #1638849: Mark field job_special as read only Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Job.hbm.xml 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-18 17:53:20 UTC (rev 24) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Job.hbm.xml 2007-01-18 19:41:14 UTC (rev 25) @@ -28,7 +28,8 @@ <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" > + <!-- #1638849: make field read only as this field is populating by using migration scripts --> + <property name="specialPurpose" type="java.lang.Boolean" insert="false" update="false" > <column name="job_special" default="false" /> </property> <property name="enabled" type="java.lang.Boolean" not-null="true"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-18 17:53:27
|
Revision: 24 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=24&view=rev Author: streindl Date: 2007-01-18 09:53:20 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for bug #1638069 Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java 2007-01-17 21:21:14 UTC (rev 23) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java 2007-01-18 17:53:20 UTC (rev 24) @@ -27,7 +27,6 @@ import com.sun.rave.web.ui.component.Label; import com.sun.rave.web.ui.component.Link; import com.sun.rave.web.ui.component.Listbox; -import com.sun.rave.web.ui.component.MessageGroup; import com.sun.rave.web.ui.component.Page; import com.sun.rave.web.ui.component.PanelGroup; import com.sun.rave.web.ui.component.StaticText; @@ -532,14 +531,12 @@ */ public void prerender() { log("Prerender Called"); - ArrayList<Option> lst = null; + // #1638069 + ArrayList<Option> lst = (ArrayList<Option>)getSessionBean1().getParameter(EMAIL_LIST); 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()); @@ -669,7 +666,8 @@ // mark as new by setting the domain to NULL newOptions[options.length] = new Option(new MailAddress(mailAddress, null), mailAddress); lstEmailDefaultOptions.setOptions(newOptions); - ((ArrayList<Option>)getSessionBean1().getParameter(EMAIL_LIST)).add(newOptions[options.length]); + ArrayList<Option> lst = (ArrayList<Option>)getSessionBean1().getParameter(EMAIL_LIST); + lst.add(newOptions[options.length]); return null; } @@ -677,10 +675,10 @@ private Map deleteMap; /** Session key for @see deleteMap */ - private static final String DELETE_MAIL_MAP = "editUser.DELETE_MAIL_MAP"; + public static final String DELETE_MAIL_MAP = "editUser.DELETE_MAIL_MAP"; /** Session key for email list */ - private static final String EMAIL_LIST = "editUser.EMAIL_LIST"; + public static final String EMAIL_LIST = "editUser.EMAIL_LIST"; /** * Remove email address from user's email addresses Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java 2007-01-17 21:21:14 UTC (rev 23) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java 2007-01-18 17:53:20 UTC (rev 24) @@ -454,6 +454,8 @@ public String btnAdd_action() { getSessionBean1().setParameter(SessionBean1.PARAM_USER_ID, null); + // #1638069 + getSessionBean1().setParameter(EditUser.EMAIL_LIST, null); return "editSingleUser"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-17 21:21:13
|
Revision: 23 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=23&view=rev Author: streindl Date: 2007-01-17 13:21:14 -0800 (Wed, 17 Jan 2007) Log Message: ----------- * Bug 1638044: - Version number handling improved - All web pages contain a footer now (except the maintenance HTML page) * Fix for bug #1638043. Modified Paths: -------------- amavisadmin/trunk/build.xml amavisadmin/trunk/nbproject/private/private.properties amavisadmin/trunk/src/java/amavisadmin.properties.in amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ApplicationBean1.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ApproveRequests.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Configuration.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditJobs.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditSingleJob.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/HandlePendingReleases.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Header.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/MyRequests.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/VersionInfo.java amavisadmin/trunk/tools/reposInfo.pl amavisadmin/trunk/web/ApproveRequests.jsp amavisadmin/trunk/web/ChangePassword.jsp amavisadmin/trunk/web/Configuration.jsp amavisadmin/trunk/web/EditJobs.jsp amavisadmin/trunk/web/EditSingleJob.jsp amavisadmin/trunk/web/EditUser.jsp amavisadmin/trunk/web/HandlePendingReleases.jsp amavisadmin/trunk/web/Header.jspf amavisadmin/trunk/web/Login.jsp amavisadmin/trunk/web/MyRequests.jsp amavisadmin/trunk/web/ShowSingleMail.jsp amavisadmin/trunk/web/UserManagement.jsp amavisadmin/trunk/web/WEB-INF/managed-beans.xml Added Paths: ----------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Footer.java amavisadmin/trunk/web/Footer.jspf Modified: amavisadmin/trunk/build.xml =================================================================== --- amavisadmin/trunk/build.xml 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/build.xml 2007-01-17 21:21:14 UTC (rev 23) @@ -78,19 +78,25 @@ </schemaexport> </target>--> - <target name="-post-init"> - <tstamp > + <!-- Build amavisadmin.properties for build and version information --> + <target name="-post-compile"> + <tstamp> <format property="build.timestamp" - pattern="EEE, d MMM yyyy HH:mm:ss Z" locale="en"/> + pattern="yyyyMMdd'T'HHmmssZ" locale="en"/> </tstamp> + <exec executable="/usr/bin/perl"> + <arg value="tools/reposInfo.pl" /> + <redirector output="reposinfo.properties" /> + </exec> <copy file="${src.dir}/amavisadmin.properties.in" - tofile="${src.dir}/amavisadmin.properties" + tofile="${build.classes.dir}/amavisadmin.properties" filtering="true" overwrite="true"> <filterset> - <filter token="VERSION" value="VERSION"/> + <filtersfile file="reposinfo.properties" /> <filter token="TSTAMP" value="${build.timestamp}" /> </filterset> </copy> + <delete file="reposinfo.properties" /> </target> <target name="-pre-dist"> Modified: amavisadmin/trunk/nbproject/private/private.properties =================================================================== --- amavisadmin/trunk/nbproject/private/private.properties 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/nbproject/private/private.properties 2007-01-17 21:21:14 UTC (rev 23) @@ -1,5 +1,5 @@ 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/commons-logging.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/log4j-1.2.11.jar:/opt/apache-tomcat-5.5.17/common/lib/naming-resources.jar:/opt/apache-tomcat-5.5.17/common/lib/servlet-api.jar +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/commons-logging.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 Modified: amavisadmin/trunk/src/java/amavisadmin.properties.in =================================================================== --- amavisadmin/trunk/src/java/amavisadmin.properties.in 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/amavisadmin.properties.in 2007-01-17 21:21:14 UTC (rev 23) @@ -18,5 +18,18 @@ # AmavisAdmin properties file # This file contains basic settings -amavisadmin.version = @VERSION@ +amavisadmin.major = 0 +amavisadmin.minor = 1 + +# those fields are translated automatically +amavisadmin.branch = @branch@ +amavisadmin.build = @revision@ +amavisadmin.build_type = @build_type@ +amavisadmin.clean_build = @clean_build@ + +# If you ever change the datamodel, please increase this value +# and provide an upgrade script in the db topic +amavisadmin.db_version = 1 + +# Build time amavisadmin.buildtime = @TSTAMP@ Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ApplicationBean1.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ApplicationBean1.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ApplicationBean1.java 2007-01-17 21:21:14 UTC (rev 23) @@ -16,6 +16,7 @@ package de.sreindl.amavisadmin; import com.sun.rave.web.ui.appbase.AbstractApplicationBean; +import de.sreindl.amavisadmin.bo.ConfigurationBO; import de.sreindl.amavisadmin.db.User; import java.util.HashSet; import java.util.Set; @@ -156,4 +157,14 @@ public synchronized static boolean isLoggedOn (User user) { return (userMap != null) && userMap.contains(user.getId()); } + + + public String getApplicationTitle() { + String appTitle = ConfigurationBO.getConfValue(ConfigurationBO.APP_TITLE); + if (appTitle == null || appTitle.length() == 0) { + appTitle = "AmavisAdmin"; + } + return appTitle; + } + } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ApproveRequests.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ApproveRequests.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ApproveRequests.java 2007-01-17 21:21:14 UTC (rev 23) @@ -25,6 +25,7 @@ import com.sun.rave.web.ui.component.Hyperlink; import com.sun.rave.web.ui.component.Link; import com.sun.rave.web.ui.component.Page; +import com.sun.rave.web.ui.component.PanelGroup; import com.sun.rave.web.ui.component.StaticText; import com.sun.rave.web.ui.component.Table; import com.sun.rave.web.ui.component.TableColumn; @@ -287,6 +288,16 @@ public void setBtnBack(Button b) { this.btnBack = b; } + + private PanelGroup groupPanel1 = new PanelGroup(); + + public PanelGroup getGroupPanel1() { + return groupPanel1; + } + + public void setGroupPanel1(PanelGroup pg) { + this.groupPanel1 = pg; + } // </editor-fold> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Configuration.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Configuration.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Configuration.java 2007-01-17 21:21:14 UTC (rev 23) @@ -28,6 +28,7 @@ import de.sreindl.amavisadmin.bo.UserBO; import de.sreindl.amavisadmin.db.User; import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; +import de.sreindl.amavisadmin.jobs.ReminderJob; import java.text.ParseException; import java.util.Date; import javax.faces.FacesException; @@ -506,26 +507,6 @@ this.longRangeValidator3 = lrv; } - private Property property20 = new Property(); - - public Property getProperty20() { - return property20; - } - - public void setProperty20(Property p) { - this.property20 = p; - } - - private TextField fldRetentionWarning = new TextField(); - - public TextField getFldRetentionWarning() { - return fldRetentionWarning; - } - - public void setFldRetentionWarning(TextField tf) { - this.fldRetentionWarning = tf; - } - private LongRangeValidator longRangeValidator4 = new LongRangeValidator(); public LongRangeValidator getLongRangeValidator4() { @@ -762,11 +743,10 @@ chkDropMail.setValue(Boolean.valueOf(ConfigurationBO.getConfValue(MailHandler.KEY_DROP_MAIL, ""))); /* general settings */ - fldApplicationTitle.setText(ConfigurationBO.getConfValue(ConfigurationBO.APP_TITLE)); - fldRetentionDays.setText(ConfigurationBO.getConfValue(UserBO.CONF_DEFAULT_RETENTION)); - fldMaxRetention.setText(ConfigurationBO.getConfValue(UserManagement.CONF_MAX_RETENTION)); + fldApplicationTitle.setText(ConfigurationBO.getConfValue(ConfigurationBO.APP_TITLE, "AmavisAdmin")); + fldRetentionDays.setText(ConfigurationBO.getConfValue(UserBO.CONF_DEFAULT_RETENTION, "14")); + fldMaxRetention.setText(ConfigurationBO.getConfValue(UserManagement.CONF_MAX_RETENTION, "365")); fldBaseURL.setText(ConfigurationBO.getConfValue(ConfigurationBO.CONF_BASE_URL)); - //fldRetentionWarning.setText(ConfigurationBO.getConfValue()); } /** Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditJobs.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditJobs.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditJobs.java 2007-01-17 21:21:14 UTC (rev 23) @@ -25,6 +25,7 @@ import com.sun.rave.web.ui.component.Hyperlink; import com.sun.rave.web.ui.component.Link; import com.sun.rave.web.ui.component.Page; +import com.sun.rave.web.ui.component.PanelGroup; import com.sun.rave.web.ui.component.StaticText; import com.sun.rave.web.ui.component.Table; import com.sun.rave.web.ui.component.TableColumn; @@ -283,6 +284,26 @@ public void setBtnDeleteJob(Button b) { this.btnDeleteJob = b; } + + private PanelGroup groupPanel1 = new PanelGroup(); + + public PanelGroup getGroupPanel1() { + return groupPanel1; + } + + public void setGroupPanel1(PanelGroup pg) { + this.groupPanel1 = pg; + } + + private PanelGroup groupPanel2 = new PanelGroup(); + + public PanelGroup getGroupPanel2() { + return groupPanel2; + } + + public void setGroupPanel2(PanelGroup pg) { + this.groupPanel2 = pg; + } // </editor-fold> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditSingleJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditSingleJob.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditSingleJob.java 2007-01-17 21:21:14 UTC (rev 23) @@ -29,6 +29,7 @@ import com.sun.rave.web.ui.component.Link; import com.sun.rave.web.ui.component.Message; import com.sun.rave.web.ui.component.Page; +import com.sun.rave.web.ui.component.PanelGroup; import com.sun.rave.web.ui.component.StaticText; import com.sun.rave.web.ui.component.Table; import com.sun.rave.web.ui.component.TableColumn; @@ -376,6 +377,26 @@ public void setMessage1(Message m) { this.message1 = m; } + + private PanelGroup groupPanel1 = new PanelGroup(); + + public PanelGroup getGroupPanel1() { + return groupPanel1; + } + + public void setGroupPanel1(PanelGroup pg) { + this.groupPanel1 = pg; + } + + private PanelGroup groupPanel2 = new PanelGroup(); + + public PanelGroup getGroupPanel2() { + return groupPanel2; + } + + public void setGroupPanel2(PanelGroup pg) { + this.groupPanel2 = pg; + } // </editor-fold> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java 2007-01-17 21:21:14 UTC (rev 23) @@ -22,6 +22,7 @@ import com.sun.rave.web.ui.component.DropDown; import com.sun.rave.web.ui.component.Form; import com.sun.rave.web.ui.component.Head; +import com.sun.rave.web.ui.component.HiddenField; import com.sun.rave.web.ui.component.Html; import com.sun.rave.web.ui.component.Label; import com.sun.rave.web.ui.component.Link; @@ -382,6 +383,56 @@ public void setGroupPanel1(PanelGroup pg) { this.groupPanel1 = pg; } + + private HtmlPanelGrid gridPanel2 = new HtmlPanelGrid(); + + public HtmlPanelGrid getGridPanel2() { + return gridPanel2; + } + + public void setGridPanel2(HtmlPanelGrid hpg) { + this.gridPanel2 = hpg; + } + + private HtmlPanelGrid gridPanel3 = new HtmlPanelGrid(); + + public HtmlPanelGrid getGridPanel3() { + return gridPanel3; + } + + public void setGridPanel3(HtmlPanelGrid hpg) { + this.gridPanel3 = hpg; + } + + private HtmlPanelGrid gridPanel4 = new HtmlPanelGrid(); + + public HtmlPanelGrid getGridPanel4() { + return gridPanel4; + } + + public void setGridPanel4(HtmlPanelGrid hpg) { + this.gridPanel4 = hpg; + } + + private HiddenField hiddenField1 = new HiddenField(); + + public HiddenField getHiddenField1() { + return hiddenField1; + } + + public void setHiddenField1(HiddenField hf) { + this.hiddenField1 = hf; + } + + private PanelGroup groupPanel2 = new PanelGroup(); + + public PanelGroup getGroupPanel2() { + return groupPanel2; + } + + public void setGroupPanel2(PanelGroup pg) { + this.groupPanel2 = pg; + } // </editor-fold> @@ -404,6 +455,7 @@ * property values that were saved for this view when it was rendered.</p> */ public void init() { + log("init called"); // Perform initializations inherited from our superclass super.init(); // Perform application initialization that must complete @@ -467,6 +519,7 @@ * resources that will be required in your event handlers.</p> */ public void preprocess() { + log("Preprocess called"); } /** @@ -478,6 +531,7 @@ * this page.</p> */ public void prerender() { + log("Prerender Called"); ArrayList<Option> lst = null; if (user == null) { erase(); Added: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Footer.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Footer.java (rev 0) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Footer.java 2007-01-17 21:21:14 UTC (rev 23) @@ -0,0 +1,140 @@ +/* + * Footer.java + * + * Created on 17. Januar 2007, 19:43 + * Copyright sreindl + */ +package de.sreindl.amavisadmin; + +import com.sun.rave.web.ui.appbase.AbstractFragmentBean; +import com.sun.rave.web.ui.component.Hyperlink; +import com.sun.rave.web.ui.component.Markup; +import com.sun.rave.web.ui.component.PageSeparator; +import com.sun.rave.web.ui.component.StaticText; +import de.sreindl.amavisadmin.bo.VersionInfo; +import javax.faces.FacesException; + +/** + * <p>Fragment bean that corresponds to a similarly named JSP page + * fragment. This class contains component definitions (and initialization + * code) for all components that you have defined on this fragment, as well as + * lifecycle methods and event handlers where you may add behavior + * to respond to incoming events.</p> + */ +public class Footer extends AbstractFragmentBean { + // <editor-fold defaultstate="collapsed" desc="Managed Component Definition"> + private int __placeholder; + + /** + * <p>Automatically managed component initialization. <strong>WARNING:</strong> + * This method is automatically generated, so any user-specified code inserted + * here is subject to being replaced.</p> + */ + private void _init() throws Exception { + } + + private PageSeparator pageSeparator1 = new PageSeparator(); + + public PageSeparator getPageSeparator1() { + return pageSeparator1; + } + + public void setPageSeparator1(PageSeparator ps) { + this.pageSeparator1 = ps; + } + + private StaticText staticText1 = new StaticText(); + + public StaticText getStaticText1() { + return staticText1; + } + + public void setStaticText1(StaticText st) { + this.staticText1 = st; + } + + private Hyperlink hyperlink1 = new Hyperlink(); + + public Hyperlink getHyperlink1() { + return hyperlink1; + } + + public void setHyperlink1(Hyperlink h) { + this.hyperlink1 = h; + } + // </editor-fold> + + public Footer() { + } + + /** + * <p>Callback method that is called whenever a page containing + * this page fragment is navigated to, either directly via a URL, + * or indirectly via page navigation. Override this method to acquire + * resources that will be needed for event handlers and lifecycle methods.</p> + * + * <p>The default implementation does nothing.</p> + */ + public void init() { + // Perform initializations inherited from our superclass + super.init(); + // Perform application initialization that must complete + // *before* managed components are initialized + // TODO - add your own initialiation code here + + + // <editor-fold defaultstate="collapsed" desc="Visual-Web-managed Component Initialization"> + // Initialize automatically managed components + // *Note* - this logic should NOT be modified + try { + _init(); + } catch (Exception e) { + log("Page1 Initialization Failure", e); + throw e instanceof FacesException ? (FacesException) e: new FacesException(e); + } + + // </editor-fold> + // Perform application initialization that must complete + // *after* managed components are initialized + // TODO - add your own initialization code here + } + + /** + * <p>Callback method that is called after rendering is completed for + * this request, if <code>init()</code> was called. Override this + * method to release resources acquired in the <code>init()</code> + * resources that will be needed for event handlers and lifecycle methods.</p> + * + * <p>The default implementation does nothing.</p> + */ + public void destroy() { + } + + /** + * <p>Return a reference to the scoped data bean.</p> + */ + protected ApplicationBean1 getApplicationBean1() { + return (ApplicationBean1)getBean("ApplicationBean1"); + } + + /** + * <p>Return a reference to the scoped data bean.</p> + */ + protected SessionBean1 getSessionBean1() { + return (SessionBean1)getBean("SessionBean1"); + } + + /** + * <p>Return a reference to the scoped data bean.</p> + */ + protected RequestBean1 getRequestBean1() { + return (RequestBean1)getBean("RequestBean1"); + } + + /** + * Return a versioned string + */ + public String getVersionString () { + return VersionInfo.getApplicationVersion(); + } +} Property changes on: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Footer.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/HandlePendingReleases.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/HandlePendingReleases.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/HandlePendingReleases.java 2007-01-17 21:21:14 UTC (rev 23) @@ -25,6 +25,7 @@ import com.sun.rave.web.ui.component.Html; import com.sun.rave.web.ui.component.Link; import com.sun.rave.web.ui.component.Page; +import com.sun.rave.web.ui.component.PanelGroup; import com.sun.rave.web.ui.component.StaticText; import com.sun.rave.web.ui.component.Table; import com.sun.rave.web.ui.component.TableColumn; @@ -241,6 +242,16 @@ public void setBtnRevert(Button b) { this.btnRevert = b; } + + private PanelGroup groupPanel1 = new PanelGroup(); + + public PanelGroup getGroupPanel1() { + return groupPanel1; + } + + public void setGroupPanel1(PanelGroup pg) { + this.groupPanel1 = pg; + } // </editor-fold> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Header.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Header.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/Header.java 2007-01-17 21:21:14 UTC (rev 23) @@ -21,6 +21,7 @@ import com.sun.rave.web.ui.component.MessageGroup; import com.sun.rave.web.ui.component.PanelGroup; import com.sun.rave.web.ui.component.StaticText; +import de.sreindl.amavisadmin.bo.ConfigurationBO; import de.sreindl.amavisadmin.bo.UserBO; import javax.faces.FacesException; import javax.faces.component.html.HtmlPanelGrid; @@ -256,4 +257,5 @@ UserBO.logoutUser (getSessionBean1()); return "logout"; } + } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/MyRequests.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/MyRequests.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/MyRequests.java 2007-01-17 21:21:14 UTC (rev 23) @@ -28,6 +28,7 @@ import com.sun.rave.web.ui.component.Hyperlink; import com.sun.rave.web.ui.component.Link; import com.sun.rave.web.ui.component.Page; +import com.sun.rave.web.ui.component.PanelGroup; import com.sun.rave.web.ui.component.StaticText; import com.sun.rave.web.ui.component.Table; import com.sun.rave.web.ui.component.TableColumn; @@ -295,6 +296,26 @@ public void setTextPending(StaticText st) { this.textPending = st; } + + private PanelGroup groupPanel1 = new PanelGroup(); + + public PanelGroup getGroupPanel1() { + return groupPanel1; + } + + public void setGroupPanel1(PanelGroup pg) { + this.groupPanel1 = pg; + } + + private PanelGroup groupPanel2 = new PanelGroup(); + + public PanelGroup getGroupPanel2() { + return groupPanel2; + } + + public void setGroupPanel2(PanelGroup pg) { + this.groupPanel2 = pg; + } // </editor-fold> @@ -691,6 +712,8 @@ return "There is one request pending for approval by an admin"; } else if (pending > 1) { return "There are " + pending + " requests pending for approval by an admin"; + } else if (pending == 0) { // #1638043 + return ""; } else { return "Error: The number of pending requests for approval cannot be calculated."; } Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java 2007-01-17 21:21:14 UTC (rev 23) @@ -265,16 +265,6 @@ this.hyperlink1 = h; } - private PanelGroup groupPanel1 = new PanelGroup(); - - public PanelGroup getGroupPanel1() { - return groupPanel1; - } - - public void setGroupPanel1(PanelGroup pg) { - this.groupPanel1 = pg; - } - private Button btnAdd = new Button(); public Button getBtnAdd() { Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/VersionInfo.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/VersionInfo.java 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/bo/VersionInfo.java 2007-01-17 21:21:14 UTC (rev 23) @@ -30,7 +30,9 @@ private static Log log = LogFactory.getLog(VersionInfo.class); - private static final Integer databaseVersion = 1; + private static Integer _databaseVersion = null; + + private static String _localVersion = null; /** Creates a new instance of VersionInfo */ public VersionInfo() { @@ -42,7 +44,11 @@ * @return the database version */ public static Integer getDatabaseVersion() { - return databaseVersion; + if (_databaseVersion == null) { + initProps(); + _databaseVersion = Integer.decode(props.getProperty("amavisadmin.db_version")); + } + return _databaseVersion; } /** @@ -59,12 +65,12 @@ } try { Integer numVersion = Integer.decode(db_version); - if (numVersion.equals(databaseVersion)) { + if (numVersion.equals(getDatabaseVersion())) { log.info("Database configuration is ok"); return true; } else { log.fatal("Database version mismatch: Version given " + - db_version + ", Version required " + databaseVersion); + db_version + ", Version required " + getDatabaseVersion()); return false; } } catch (NumberFormatException nfe) { @@ -76,8 +82,32 @@ } public static String getApplicationVersion() { - initProps(); - return props.getProperty("amavisadmin.version"); + if (_localVersion == null) { + initProps(); + StringBuffer str = new StringBuffer(20); + str.append(props.getProperty("amavisadmin.major", "Unknown")); + str.append('.'); + str.append(props.getProperty("amavisadmin.minor", "unknown")); + + String buildType = props.getProperty("amavisadmin.build_type"); + if (buildType.equals("local")) { + str.append (" local"); + } + str.append (" build "); + str.append (props.getProperty("amavisadmin.build")); + str.append (" ("); + String branch = props.getProperty("amavisadmin.branch"); + if (!(branch.startsWith("branch") || branch.startsWith("trunk"))) { + str.append ("release "); + } + str.append(branch); + if (props.getProperty("amavisadmin.clean_build").equals("false")) { + str.append (" -- <b>MODIFIED!</b>"); + } + str.append (')'); + _localVersion = str.toString(); + } + return _localVersion; } synchronized private static void initProps() { Modified: amavisadmin/trunk/tools/reposInfo.pl =================================================================== --- amavisadmin/trunk/tools/reposInfo.pl 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/tools/reposInfo.pl 2007-01-17 21:21:14 UTC (rev 23) @@ -36,31 +36,23 @@ }; my $ctx = SVN::Client->new(); -if ($op eq "REV") { - $ctx->info( 'build.xml', undef, undef, \&funcRev, 0 ); - print $_info->rev; -} elsif ($op eq "STATUS") { - $ctx->status(getcwd(), undef, $funcStatus, 1, 0, 0, 0); - if ($statusChanged) { - print "CHANGED"; - } else { - print "UNCHANGED"; - } -} elsif ($op eq "BUILD") { - my $cwd = getcwd(); - if ($cwd =~ /\/home\//) { - print "LOCAL"; - } else { - print "BUILD"; - } -} elsif ($op eq "TAG") { - $ctx->info( 'build.xml', undef, undef, \&funcRev, 0 ); - my $url = $_info->URL; - if ($url =~ /trunk/) { - print "trunk"; - } elsif ($url =~ /branches\/([^\/]+)\//) { - print "branch $1"; - } elsif ($url =~ /tags\/([^\/]+)\//) { - print "tag $1"; - } + +my $cwd = getcwd(); +$ctx->info( $cwd, undef, undef, \&funcRev, 0 ); +$ctx->status( $cwd, undef, $funcStatus, 1, 0, 0, 0); +print "revision=", $_info->rev, "\n"; +print "clean_build=", $statusChanged ? "false" : "true", "\n"; +if ($cwd =~ /\/home\//) { + print "build_type=private\n"; +} else { + print "build_type=batch\n"; } + +my $url = $_info->URL; +if ($url =~ /trunk/) { + print "branch=trunk\n"; +} elsif ($url =~ /branches\/([^\/]+)\//) { + print "branch=branch $1\n"; +} elsif ($url =~ /tags\/([^\/]+)\//) { + print "branch=$1\n"; +} Modified: amavisadmin/trunk/web/ApproveRequests.jsp =================================================================== --- amavisadmin/trunk/web/ApproveRequests.jsp 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/web/ApproveRequests.jsp 2007-01-17 21:21:14 UTC (rev 23) @@ -7,37 +7,37 @@ <ui:head binding="#{ApproveRequests.head1}" id="head1" title="Approve Requests"> <ui:link binding="#{ApproveRequests.link1}" id="link1" url="/resources/stylesheet.css"/> </ui:head> - <ui:body binding="#{ApproveRequests.body1}" id="body1" style="-rave-layout: grid"> + <ui:body binding="#{ApproveRequests.body1}" id="body1"> <ui:form binding="#{ApproveRequests.form1}" id="form1"> - <div style="left: 0px; top: 0px; position: absolute"> - <jsp:directive.include file="Header.jspf"/> - </div> - <ui:table augmentTitle="false" binding="#{ApproveRequests.table1}" id="table1" - style="left: 24px; top: 216px; position: absolute; width: 720px" title="Table" width="720"> - <ui:tableRowGroup binding="#{ApproveRequests.tableRowGroup1}" id="tableRowGroup1" rows="10" - sourceData="#{SessionBean1.approvePendingDataProvider}" sourceVar="currentRow"> - <ui:tableColumn binding="#{ApproveRequests.tableColumn1}" headerText="Received On" id="tableColumn1" sort="time_iso"> - <ui:staticText binding="#{ApproveRequests.staticText1}" id="staticText1" text="#{currentRow.value['time_iso']}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{ApproveRequests.tableColumn2}" headerText="Requestor" id="tableColumn2" noWrap="true" sort="approve_username"> - <ui:staticText binding="#{ApproveRequests.staticText2}" id="staticText2" text="#{currentRow.value['approve_username']}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{ApproveRequests.tableColumn3}" headerText="From" id="tableColumn3" sort="from_addr"> - <ui:hyperlink action="#{ApproveRequests.hlFrom_action}" binding="#{ApproveRequests.hlFrom}" id="hlFrom" text="#{currentRow.value['from_addr']}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{ApproveRequests.tableColumn4}" headerText="Subject" id="tableColumn4" sort="subject"> - <ui:hyperlink action="#{ApproveRequests.hlSubject_action}" binding="#{ApproveRequests.hlSubject}" id="hlSubject" text="#{currentRow.value['subject']}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{ApproveRequests.tableColumn5}" headerText="Content" id="tableColumn5" noWrap="true" sort="content"> - <ui:staticText binding="#{ApproveRequests.staticText3}" id="staticText3" text="#{ApproveRequests.contentType}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{ApproveRequests.tableColumn6}" embeddedActions="true" headerText="Action" id="tableColumn6"> - <ui:hyperlink action="#{ApproveRequests.hlApprove_action}" binding="#{ApproveRequests.hlApprove}" id="hlApprove" text="Approve"/> - <ui:hyperlink action="#{ApproveRequests.hlReject_action}" binding="#{ApproveRequests.hlReject}" id="hlReject" text="Reject"/> - </ui:tableColumn> - </ui:tableRowGroup> - </ui:table> - <ui:button action="goHome" binding="#{ApproveRequests.btnBack}" id="btnBack" style="left: 23px; top: 192px; position: absolute" text="Go Back"/> + <jsp:directive.include file="Header.jspf"/> + <ui:panelGroup binding="#{ApproveRequests.groupPanel1}" id="groupPanel1"> + <ui:button action="goHome" binding="#{ApproveRequests.btnBack}" id="btnBack" text="Go Back"/> + <ui:table augmentTitle="false" binding="#{ApproveRequests.table1}" id="table1" title="Table"> + <ui:tableRowGroup binding="#{ApproveRequests.tableRowGroup1}" id="tableRowGroup1" rows="10" + sourceData="#{SessionBean1.approvePendingDataProvider}" sourceVar="currentRow"> + <ui:tableColumn binding="#{ApproveRequests.tableColumn1}" headerText="Received On" id="tableColumn1" sort="time_iso"> + <ui:staticText binding="#{ApproveRequests.staticText1}" id="staticText1" text="#{currentRow.value['time_iso']}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{ApproveRequests.tableColumn2}" headerText="Requestor" id="tableColumn2" noWrap="true" sort="approve_username"> + <ui:staticText binding="#{ApproveRequests.staticText2}" id="staticText2" text="#{currentRow.value['approve_username']}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{ApproveRequests.tableColumn3}" headerText="From" id="tableColumn3" sort="from_addr"> + <ui:hyperlink action="#{ApproveRequests.hlFrom_action}" binding="#{ApproveRequests.hlFrom}" id="hlFrom" text="#{currentRow.value['from_addr']}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{ApproveRequests.tableColumn4}" headerText="Subject" id="tableColumn4" sort="subject"> + <ui:hyperlink action="#{ApproveRequests.hlSubject_action}" binding="#{ApproveRequests.hlSubject}" id="hlSubject" text="#{currentRow.value['subject']}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{ApproveRequests.tableColumn5}" headerText="Content" id="tableColumn5" noWrap="true" sort="content"> + <ui:staticText binding="#{ApproveRequests.staticText3}" id="staticText3" text="#{ApproveRequests.contentType}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{ApproveRequests.tableColumn6}" embeddedActions="true" headerText="Action" id="tableColumn6"> + <ui:hyperlink action="#{ApproveRequests.hlApprove_action}" binding="#{ApproveRequests.hlApprove}" id="hlApprove" text="Approve"/> + <ui:hyperlink action="#{ApproveRequests.hlReject_action}" binding="#{ApproveRequests.hlReject}" id="hlReject" text="Reject"/> + </ui:tableColumn> + </ui:tableRowGroup> + </ui:table> + </ui:panelGroup> + <jsp:directive.include file="Footer.jspf"/> </ui:form> </ui:body> </ui:html> Modified: amavisadmin/trunk/web/ChangePassword.jsp =================================================================== --- amavisadmin/trunk/web/ChangePassword.jsp 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/web/ChangePassword.jsp 2007-01-17 21:21:14 UTC (rev 23) @@ -8,11 +8,9 @@ <ui:link binding="#{ChangePassword.link1}" id="link1" url="/resources/stylesheet.css"/> </ui:head> <ui:body binding="#{ChangePassword.body1}" id="body1" style="-rave-layout: grid"> - <div style="left: 0px; top: 0px; position: absolute; width: 100%"> - <jsp:directive.include file="Header.jspf"/> - </div> + <jsp:directive.include file="Header.jspf"/> <ui:form binding="#{ChangePassword.form1}" id="form1"> - <h:panelGrid binding="#{ChangePassword.gridPanel1}" columns="2" id="gridPanel1" style="left: 48px; top: 168px; position: absolute"> + <h:panelGrid binding="#{ChangePassword.gridPanel1}" columns="2" id="gridPanel1" style="left: 24px; top: 168px; position: absolute"> <ui:label binding="#{ChangePassword.labOldPassword}" for="oldPassword" id="labOldPassword" text="Old Password"/> <ui:passwordField binding="#{ChangePassword.oldPassword}" id="oldPassword" required="true"/> <ui:label binding="#{ChangePassword.label2}" for="fldNewPassword" id="label2" text="New Password"/> @@ -22,8 +20,11 @@ <ui:button action="#{ChangePassword.btnSave_action}" binding="#{ChangePassword.btnSave}" id="btnSave" primary="true" text="Save"/> <ui:button action="#{ChangePassword.btnCancel_action}" binding="#{ChangePassword.btnCancel}" id="btnCancel" text="Cancel"/> </h:panelGrid> + <div style="left: 0px; top: 288px; position: absolute"> + <jsp:directive.include file="Footer.jspf"/> + </div> <ui:staticText binding="#{ChangePassword.staticText1}" escape="false" id="staticText1" - style="height: 48px; left: 48px; top: 120px; position: absolute; width: 360px" text="Please enter your new password twice to ensure that you didn't 
made a mistake."/> + style="height: 48px; left: 24px; top: 120px; position: absolute; width: 360px" text="Please enter your new password twice to ensure that you didn't 
made a mistake."/> </ui:form> </ui:body> </ui:html> Modified: amavisadmin/trunk/web/Configuration.jsp =================================================================== --- amavisadmin/trunk/web/Configuration.jsp 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/web/Configuration.jsp 2007-01-17 21:21:14 UTC (rev 23) @@ -19,7 +19,7 @@ <ui:propertySheetSection binding="#{Configuration.generalSection}" id="generalSection" label="General Settings"> <ui:property binding="#{Configuration.property16}" helpText="The application name which is displayed at the top of the window" id="property16" label="Application Title"> - <ui:textField binding="#{Configuration.fldApplicationTitle}" id="fldApplicationTitle" required="true"/> + <ui:textField binding="#{Configuration.fldApplicationTitle}" id="fldApplicationTitle" required="true" text="AmavisAdmin"/> </ui:property> <ui:property binding="#{Configuration.property12}" helpText="URL used in mails and other output where the URL is needed. This might be different from the URL used by the application." @@ -36,11 +36,6 @@ id="property19" label="Max Retention"> <ui:textField binding="#{Configuration.fldMaxRetention}" columns="5" id="fldMaxRetention" required="true" validator="#{Configuration.longRangeValidator3.validate}"/> </ui:property> - <ui:property binding="#{Configuration.property20}" - helpText="Number of days where the receipient of the email will retrieve a warning message that 
his pending SPAM/VIRUS messages will be removed automatically. To disable this feature, set the value to 0." - id="property20" label="Retention Warning Days"> - <ui:textField binding="#{Configuration.fldRetentionWarning}" columns="3" id="fldRetentionWarning" required="true" validator="#{Configuration.longRangeValidator4.validate}"/> - </ui:property> <ui:property binding="#{Configuration.property17}" helpText="Mail Address used for sending system mails a typical mail address might be <code>ama...@ex...</code>" id="property17" label="Mail Sender Address"> @@ -90,7 +85,7 @@ <ui:passwordField binding="#{Configuration.fldMailPassword}" id="fldMailPassword"/> </ui:property> <ui:property binding="#{Configuration.property3}" - helpText="If this checkbox is selected, mails are acutally not send. They are dropped instead. <em>Please not that this should be used for developement purposes only." + helpText="If this checkbox is selected, mails are acutally not send. They are dropped instead. <em>Please not that this should be used for developement purposes only.</em>" id="property3" label="Drop Mail"> <ui:checkbox binding="#{Configuration.chkDropMail}" id="chkDropMail"/> </ui:property> @@ -108,6 +103,7 @@ </ui:propertySheet> </ui:panelGroup> </ui:form> + <jsp:directive.include file="Footer.jspf"/> </ui:body> </ui:html> </ui:page> Modified: amavisadmin/trunk/web/EditJobs.jsp =================================================================== --- amavisadmin/trunk/web/EditJobs.jsp 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/web/EditJobs.jsp 2007-01-17 21:21:14 UTC (rev 23) @@ -7,38 +7,39 @@ <ui:head binding="#{EditJobs.head1}" id="head1" title="Edit jobs"> <ui:link binding="#{EditJobs.link1}" id="link1" url="/resources/stylesheet.css"/> </ui:head> - <ui:body binding="#{EditJobs.body1}" id="body1" style="-rave-layout: grid"> + <ui:body binding="#{EditJobs.body1}" id="body1"> + <jsp:directive.include file="Header.jspf"/> <ui:form binding="#{EditJobs.form1}" id="form1"> - <div style="left: 0px; top: 0px; position: absolute"> - <jsp:directive.include file="Header.jspf"/> - </div> - <ui:table augmentTitle="false" binding="#{EditJobs.table1}" id="table1" style="left: 24px; top: 168px; position: absolute; width: 480px" - title="Jobs" width="480"> - <ui:tableRowGroup binding="#{EditJobs.tableRowGroup1}" id="tableRowGroup1" rows="10" sourceData="#{SessionBean1.jobsDataProvider}" sourceVar="currentRow"> - <ui:tableColumn binding="#{EditJobs.tableColumn1}" headerText="Name" id="tableColumn1" noWrap="true" sort="job_name"> - <ui:hyperlink action="#{EditJobs.hlEditEntry_action}" binding="#{EditJobs.hlEditEntry}" id="hlEditEntry" text="#{currentRow.value['job_name']}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{EditJobs.tableColumn2}" headerText="Description" id="tableColumn2"> - <ui:staticText binding="#{EditJobs.staticText2}" id="staticText2" text="#{currentRow.value['job_description']}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{EditJobs.tableColumn3}" headerText="CRON Settings" id="tableColumn3" noWrap="true"> - <ui:staticText binding="#{EditJobs.staticText3}" id="staticText3" text="#{currentRow.value['job_cron_settings']}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{EditJobs.tableColumn6}" headerText="Last Run" id="tableColumn6" noWrap="true"> - <ui:staticText binding="#{EditJobs.staticText5}" id="staticText5" text="#{currentRow.value['job_last_run_date']}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{EditJobs.tableColumn4}" headerText="(En/Dis)abled" id="tableColumn4" noWrap="true"> - <ui:hyperlink action="#{EditJobs.hlToogle_action}" binding="#{EditJobs.hlToogle}" id="hlToogle" text="#{EditJobs.enabledDisabledText}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{EditJobs.tableColumn5}" id="tableColumn5"> - <ui:button binding="#{EditJobs.btnDeleteJob}" id="btnDeleteJob" text="Delete"/> - </ui:tableColumn> - </ui:tableRowGroup> - </ui:table> - <ui:button action="#{EditJobs.createDefault_action}" binding="#{EditJobs.createDefault}" id="createDefault" - style="left: 23px; top: 120px; position: absolute" text="Create Default Job-Definitions"/> - <ui:button action="#{EditJobs.btnAddNewEntry_action}" binding="#{EditJobs.btnAddNewEntry}" id="btnAddNewEntry" - style="left: 263px; top: 120px; position: absolute" text="Add New"/> + <ui:panelGroup binding="#{EditJobs.groupPanel1}" block="true" id="groupPanel1" style="margin: 5px; padding: 5px; "> + <ui:panelGroup binding="#{EditJobs.groupPanel2}" id="groupPanel2"> + <ui:button action="#{EditJobs.createDefault_action}" binding="#{EditJobs.createDefault}" id="createDefault" text="Create Default Job-Definitions"/> + <ui:button action="#{EditJobs.btnAddNewEntry_action}" binding="#{EditJobs.btnAddNewEntry}" id="btnAddNewEntry" text="Add New"/> + </ui:panelGroup> + <ui:table augmentTitle="false" binding="#{EditJobs.table1}" id="table1" title="Jobs"> + <ui:tableRowGroup binding="#{EditJobs.tableRowGroup1}" id="tableRowGroup1" rows="10" + sourceData="#{SessionBean1.jobsDataProvider}" sourceVar="currentRow"> + <ui:tableColumn binding="#{EditJobs.tableColumn1}" headerText="Name" id="tableColumn1" noWrap="true" sort="job_name"> + <ui:hyperlink action="#{EditJobs.hlEditEntry_action}" binding="#{EditJobs.hlEditEntry}" id="hlEditEntry" text="#{currentRow.value['job_name']}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{EditJobs.tableColumn2}" headerText="Description" id="tableColumn2"> + <ui:staticText binding="#{EditJobs.staticText2}" id="staticText2" text="#{currentRow.value['job_description']}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{EditJobs.tableColumn3}" headerText="CRON Settings" id="tableColumn3" noWrap="true"> + <ui:staticText binding="#{EditJobs.staticText3}" id="staticText3" text="#{currentRow.value['job_cron_settings']}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{EditJobs.tableColumn6}" headerText="Last Run" id="tableColumn6" noWrap="true"> + <ui:staticText binding="#{EditJobs.staticText5}" id="staticText5" text="#{currentRow.value['job_last_run_date']}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{EditJobs.tableColumn4}" headerText="(En/Dis)abled" id="tableColumn4" noWrap="true"> + <ui:hyperlink action="#{EditJobs.hlToogle_action}" binding="#{EditJobs.hlToogle}" id="hlToogle" text="#{EditJobs.enabledDisabledText}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{EditJobs.tableColumn5}" id="tableColumn5"> + <ui:button binding="#{EditJobs.btnDeleteJob}" id="btnDeleteJob" text="Delete"/> + </ui:tableColumn> + </ui:tableRowGroup> + </ui:table> + </ui:panelGroup> + <jsp:directive.include file="Footer.jspf"/> </ui:form> </ui:body> </ui:html> Modified: amavisadmin/trunk/web/EditSingleJob.jsp =================================================================== --- amavisadmin/trunk/web/EditSingleJob.jsp 2007-01-17 18:37:34 UTC (rev 22) +++ amavisadmin/trunk/web/EditSingleJob.jsp 2007-01-17 21:21:14 UTC (rev 23) @@ -7,47 +7,46 @@ <ui:head binding="#{EditSingleJob.head1}" id="head1" title="Edit Job"> <ui:link binding="#{EditSingleJob.link1}" id="link1" url="/resources/stylesheet.css"/> </ui:head> - <ui:body binding="#{EditSingleJob.body1}" focus="form1:fldJobName" id="body1" style="-rave-layout: grid"> - <div style="left: 0px; top: 0px; position: absolute"> - <jsp:directive.include file="Header.jspf"/> - </div> + <ui:body binding="#{EditSingleJob.body1}" focus="form1:fldJobName" id="body1"> + <jsp:directive.include file="Header.jspf"/> <ui:form binding="#{EditSingleJob.form1}" id="form1"> - <ui:button action="#{EditSingleJob.btnSave_action}" binding="#{EditSingleJob.btnSave}" id="btnSave" - style="left: 23px; top: 144px; position: absolute" text="Save"/> - <ui:button action="#{EditSingleJob.btnCancel_action}" binding="#{EditSingleJob.btnCancel}" id="btnCancel" - style="position: absolute; left: 120px; top: 144px" text="Cancel"/> - <h:panelGrid binding="#{EditSingleJob.gridPanel1}" cellpadding="5" columns="2" id="gridPanel1" - style="height: 96px; left: 24px; top: 192px; position: absolute" width="648"> - <ui:label binding="#{EditSingleJob.label1}" for="fldJobName" id="label1" text="Job-Name"/> - <ui:textField binding="#{EditSingleJob.fldJobName}" id="fldJobName" required="true"/> - <ui:label binding="#{EditSingleJob.label3}" for="fldDescription" id="label3" text="Description"/> - <ui:textArea binding="#{EditSingleJob.fldDescription}" columns="40" id="fldDescription" required="true" rows="4"/> - <ui:label binding="#{EditSingleJob.labCRON}" for="fldCRONSchedule" id="labCRON" text="Scheduling"/> - <ui:textField binding="#{EditSingleJob.fldCRONSchedule}" id="fldCRONSchedule" required="true" validator="#{EditSingleJob.fldCRONSchedule_validate}"/> - <ui:label binding="#{EditSingleJob.label2}" for="dropDown1" id="label2" text="Job Class"/> - <ui:dropDown binding="#{EditSingleJob.dropDown1}" id="dropDown1" items="#{EditSingleJob.dropDown1DefaultOptions.options}" - onChange="common_timeoutSubmitForm(this.form, 'gridPanel1:dropDown1');" required="true" valueChangeListener="#{EditSingleJob.dropDown1_processValueChange}"/> - <ui:hiddenField binding="#{EditSingleJob.hiddenField1}" id="hiddenField1"/> - <ui:checkbox binding="#{EditSingleJob.chkEnabled}" id="chkEnabled" label="Enabled" labelLevel="2"/> - </h:panelGrid> - <ui:table augmentTitle="false" binding="#{EditSingleJob.table1}" id="table1" - style="left: 24px; top: 432px; position: absolute; width: 440px" title="Configuration Settings"> - <ui:tableRowGroup binding="#{EditSingleJob.tableRowGroup1}" emptyDataMsg="No configuration entries defined for this job" - id="tableRowGroup1" rows="10" sourceData="#{EditSingleJob.configurationTableEntries}" sourceVar="currentRow"> - <ui:tableColumn binding="#{EditSingleJob.tableColumn1}" headerText="Field" id="tableColumn1" sort="name"> - <ui:staticText binding="#{EditSingleJob.staticText1}" id="staticText1" text="#{currentRow.value['name']}"/> - </ui:tableColumn> - <ui:tableColumn binding="#{EditSingleJob.tableColumn2}" headerText="Value" id="tableColumn2" sort="value"> - <ui:textField binding="#{EditSingleJob.textField1}" id="textField1" required="#{EditSingleJob.inputRequired}" text="#{currentRow.value['value']}"/> - <ui:message binding="#{EditSingleJob.message1}" for="textField1" id="message1" showDetail="false" showSummary="true"/> - </ui:tableColumn> - <ui:tableColumn binding="#{EditSingleJob.tableColumn3}" id="tableColumn3" width="200"> - <ui:button action="#{EditSingleJob.btnReset_action}" binding="#{EditSingleJob.btnReset}" - disabled="#{EditSingleJob.resetPossible}" id="btnReset" text="Reset"/> - </ui:tableColumn> - </ui:tableRowGroup> - </ui:table> + <ui:panelGroup binding="#{EditSingleJob.groupPanel1}" block="true" id="groupPanel1" style="margin: 5px; padding: 5px; "> + <ui:panelGroup binding="#{EditSingleJob.groupPanel2}" id="groupPanel2"> + <ui:button action="#{EditSingleJob.btnSave_action}" binding="#{EditSingleJob.btnSave}" id="btnSave" text="Save"/> + <ui:button action="#{EditSingleJob.btnCancel_action}" binding="#{EditSingleJob.btnCancel}" id="btnCancel" text="Cancel"/> + </ui:panelGroup> + <h:panelGrid binding="#{EditSingleJob.gridPanel1}" cellpadding="5" columns="2" id="gridPanel1" style="height: 96px" width="648"> + <ui:label binding="#{EditSingleJob.label1}" for="fldJobName" id="label1" text="Job-Name"/> + <ui:textField binding="#{EditSingleJob.fldJobName}" id="fldJobName" required="true"/> + <ui:label binding="#{EditSingleJob.label3}" for="fldDescription" id="label3" text="Description"/> + <ui:textArea binding="#{EditSingleJob.fldDescription}" columns="40" id="fldDescription" required="true" rows="4"/> + <ui:label binding="#{EditSingleJob.labCRON}" for="fldCRONSchedule" id="labCRON" text="Scheduling"/> + <ui:textField binding="#{EditSingleJob.fldCRONSchedule}" id="fldCRONSchedule" required="true" validator="#{EditSingleJob.fldCRONSchedule_validate}"/> + <ui:label binding="#{EditSingleJob.label2}" for="dropDown1" id="label2" text="Job Class"/> + <ui:dropDown binding="#{EditSingleJob.dropDown1}" id="dropDown1" items="#{EditSingleJob.dropDown1DefaultOptions.options}" + onChange="common_timeoutSubmitForm(this.form, 'gridPanel1:dropDown1');" required="true" valueChangeListener="#{EditSingleJob.dropDown1_processValueChange}"/> + <ui:hiddenField binding="#{EditSingleJob.hiddenField1}" id="hiddenField1"/> + <ui:checkbox binding="#{EditSingleJob.chkEnabled}" id="chkEnabled" label="Enabled" labelLevel="2"/> + </h:panelGrid> + <ui:table augmentTitle="false" binding="#{EditSingleJob.table1}" id="table1" style="width: 440px" title="Configuration Settings"> + <ui:tableRowGroup binding="#{EditSingleJob.tableRowGroup1}" emptyDataMsg="No configuration entries defined for this job" + id="tableRowGroup1" rows="10" sourceData="#{EditSingleJob.configurationTableEntries}" sourceVar="currentRow"> + <ui:tableColumn binding="#{EditSingleJob.tableColumn1}" headerText="Field" id="tableColumn1" sort="name"> + <ui:staticText binding="#{EditSingleJob.staticText1}" id="staticText1" text="#{currentRow.value['name']}"/> + </ui:tableColumn> + <ui:tableColumn binding="#{EditSingleJob.tableColumn2}" headerText="Value" id="tableColumn2" sort="value"> + <ui:textField binding="#{EditSingleJob.textField1}" id="textField1" required="#{EditSingleJob.inputRequired}" text="#{currentRow.value['value']}"/> + <ui:message binding="#{EditSingleJob.message1}" for="textField1" id="message1" showDetail="false" showSummary="true"/> + </ui:tableColumn> + <ui:tableColumn binding="#{EditSingleJob.tableColumn3}" id="tableColumn3" ... [truncated message content] |
From: <str...@us...> - 2007-01-17 18:37:42
|
Revision: 22 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=22&view=rev Author: streindl Date: 2007-01-17 10:37:34 -0800 (Wed, 17 Jan 2007) Log Message: ----------- Merged from trunk Added Paths: ----------- amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/ amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java Removed Paths: ------------- amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java Copied: amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration (from rev 21, amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration) Deleted: amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java 2007-01-17 18:27:34 UTC (rev 21) +++ amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java 2007-01-17 18:37:34 UTC (rev 22) @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2007 Stephen Reindl - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -/* - * MigrateV0toV1.java - * - * Created on 16. Januar 2007, 19:24 - * - */ - -package de.sreindl.amavisadmin.migration; - -import de.sreindl.amavisadmin.db.MailAddress; -import de.sreindl.amavisadmin.db.MailAddressDAO; -import de.sreindl.amavisadmin.db.User; -import de.sreindl.amavisadmin.db.UserDAO; -import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; -import java.util.Iterator; -import java.util.List; -import javax.swing.text.rtf.RTFEditorKit; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.Transaction; - -/** - * The following activities are performed here: - *<ul> - *<li> Create default user if not already there </li> - *<li> Update table maddr table to include the user email addresses of - * the already registered users (if any).</li> - *</ul> - * @author sreindl - */ -public class MigrateV0toV1 implements MigrationJob { - - private static Log log = LogFactory.getLog(MigrateV0toV1.class); - - /** Creates a new instance of MigrateV0toV1 */ - public MigrateV0toV1() { - } - - /** - * Perform Migration - */ - public void migrate() throws Exception { - log.info("Migrate from DB Version 0 to DB Version 1"); - migrateUsers(); - addDefaultUser(); - log.info("Job migration successfully performed"); - } - - private void migrateUsers() { - MailAddressDAO dao = new MailAddressDAO(); - MailAddress entry = null; - Session session = HibernateSessionFactory.getSession(); - Query qry = session.createQuery("from User"); - Iterator i = qry.iterate(); - while (i.hasNext()) { - User user = (User)i.next(); - if (user.getEmail() == null || user.getEmail().equals(defaultUserEmail)) { - continue; // skip - } - entry = dao.findByEmail(user.getEmail()); - if (entry == null) { - log.info("New entry for user " + user.getUsername()); - // add new entry - entry = new MailAddress(user.getEmail(), - MailAddressDAO.generateDomain(user.getEmail())); - entry.setUser(user); - session.save(entry); - } else if (entry.getUser() != null && entry.getUser().equals(user)) { - log.info("Mail Entry for user " + user.getUsername() + " already exists"); - } else { - log.info("Mail Entry for user " + user.getUsername() + " updated."); - // update existing - entry.setUser(user); - session.update(entry); - } - } - } - - private void addDefaultUser() { - UserDAO dao = new UserDAO(); - MailAddress entry = null; - List ent = dao.findByEmail(defaultUserEmail); - if (ent.size() > 0) { - // already there -> ok - return; - } - log.info ("Adding default user"); - // add new default entry - Session session = HibernateSessionFactory.getSession(); - User user = new User(1, 1, defaultUserEmail, "Global Match", null, "", 0, "", false); - session.save(user); - } - - /** - * Default match - */ - private static final String defaultUserEmail = "@."; -} Copied: amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java (from rev 21, amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java) =================================================================== --- amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java (rev 0) +++ amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java 2007-01-17 18:37:34 UTC (rev 22) @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2007 Stephen Reindl + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/* + * MigrateV0toV1.java + * + * Created on 16. Januar 2007, 19:24 + * + */ + +package de.sreindl.amavisadmin.migration; + +import de.sreindl.amavisadmin.db.MailAddress; +import de.sreindl.amavisadmin.db.MailAddressDAO; +import de.sreindl.amavisadmin.db.User; +import de.sreindl.amavisadmin.db.UserDAO; +import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; +import java.util.Iterator; +import java.util.List; +import javax.swing.text.rtf.RTFEditorKit; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.Transaction; + +/** + * The following activities are performed here: + *<ul> + *<li> Create default user if not already there </li> + *<li> Update table maddr table to include the user email addresses of + * the already registered users (if any).</li> + *</ul> + * @author sreindl + */ +public class MigrateV0toV1 implements MigrationJob { + + private static Log log = LogFactory.getLog(MigrateV0toV1.class); + + /** Creates a new instance of MigrateV0toV1 */ + public MigrateV0toV1() { + } + + /** + * Perform Migration + */ + public void migrate() throws Exception { + log.info("Migrate from DB Version 0 to DB Version 1"); + migrateUsers(); + addDefaultUser(); + log.info("Job migration successfully performed"); + } + + private void migrateUsers() { + MailAddressDAO dao = new MailAddressDAO(); + MailAddress entry = null; + Session session = HibernateSessionFactory.getSession(); + Query qry = session.createQuery("from User"); + Iterator i = qry.iterate(); + while (i.hasNext()) { + User user = (User)i.next(); + if (user.getEmail() == null || user.getEmail().equals(defaultUserEmail)) { + continue; // skip + } + entry = dao.findByEmail(user.getEmail()); + if (entry == null) { + log.info("New entry for user " + user.getUsername()); + // add new entry + entry = new MailAddress(user.getEmail(), + MailAddressDAO.generateDomain(user.getEmail())); + entry.setUser(user); + session.save(entry); + } else if (entry.getUser() != null && entry.getUser().equals(user)) { + log.info("Mail Entry for user " + user.getUsername() + " already exists"); + } else { + log.info("Mail Entry for user " + user.getUsername() + " updated."); + // update existing + entry.setUser(user); + session.update(entry); + } + } + } + + private void addDefaultUser() { + UserDAO dao = new UserDAO(); + MailAddress entry = null; + List ent = dao.findByEmail(defaultUserEmail); + if (ent.size() > 0) { + // already there -> ok + return; + } + log.info ("Adding default user"); + // add new default entry + Session session = HibernateSessionFactory.getSession(); + User user = new User(1, 1, defaultUserEmail, "Global Match", null, "", 0, "", false); + session.save(user); + } + + /** + * Default match + */ + private static final String defaultUserEmail = "@."; +} Deleted: amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java 2007-01-17 18:27:34 UTC (rev 21) +++ amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java 2007-01-17 18:37:34 UTC (rev 22) @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2007 Stephen Reindl - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -/* - * MigrationJob.java - * - * Created on 16. Januar 2007, 19:29 - */ - -package de.sreindl.amavisadmin.migration; - -/** - * Interface that is used to describe jobs that need to be started during - * database migration. - * - * @author sreindl - */ -public interface MigrationJob { - /** - * Migration job. - */ - public void migrate() throws Exception; -} Copied: amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java (from rev 21, amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java) =================================================================== --- amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java (rev 0) +++ amavisadmin/branches/UNI/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java 2007-01-17 18:37:34 UTC (rev 22) @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2007 Stephen Reindl + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/* + * MigrationJob.java + * + * Created on 16. Januar 2007, 19:29 + */ + +package de.sreindl.amavisadmin.migration; + +/** + * Interface that is used to describe jobs that need to be started during + * database migration. + * + * @author sreindl + */ +public interface MigrationJob { + /** + * Migration job. + */ + public void migrate() throws Exception; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-17 18:37:40
|
Revision: 20 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=20&view=rev Author: streindl Date: 2007-01-17 10:23:00 -0800 (Wed, 17 Jan 2007) Log Message: ----------- First branch for uni stuff Modified Paths: -------------- amavisadmin/branches/UNI/tools/reposInfo.pl Added Paths: ----------- amavisadmin/branches/UNI/ Copied: amavisadmin/branches/UNI (from rev 19, amavisadmin/trunk) Modified: amavisadmin/branches/UNI/tools/reposInfo.pl =================================================================== --- amavisadmin/trunk/tools/reposInfo.pl 2007-01-17 17:45:57 UTC (rev 19) +++ amavisadmin/branches/UNI/tools/reposInfo.pl 2007-01-17 18:23:00 UTC (rev 20) @@ -19,12 +19,14 @@ use SVK::XD; use Cwd; + my $op = shift; +my $_info = undef; # use svn info -my $funcRev = sub { +sub funcRev { my( $path, $info, $pool ) = @_; - print $info->rev; + $_info = $info; }; my $statusChanged = 0; @@ -35,7 +37,8 @@ my $ctx = SVN::Client->new(); if ($op eq "REV") { - $ctx->info( 'build.xml', undef, undef, $funcRev, 0 ); + $ctx->info( 'build.xml', undef, undef, \&funcRev, 0 ); + print $_info->rev; } elsif ($op eq "STATUS") { $ctx->status(getcwd(), undef, $funcStatus, 1, 0, 0, 0); if ($statusChanged) { @@ -51,4 +54,13 @@ print "BUILD"; } } elsif ($op eq "TAG") { + $ctx->info( 'build.xml', undef, undef, \&funcRev, 0 ); + my $url = $_info->URL; + if ($url =~ /trunk/) { + print "trunk"; + } elsif ($url =~ /branches\/([^\/]+)\//) { + print "branch $1"; + } elsif ($url =~ /tags\/([^\/]+)\//) { + print "tag $1"; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-17 18:37:40
|
Revision: 21 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=21&view=rev Author: streindl Date: 2007-01-17 10:27:34 -0800 (Wed, 17 Jan 2007) Log Message: ----------- Migration job handling and first job for initial migration Modified Paths: -------------- amavisadmin/trunk/tools/reposInfo.pl Added Paths: ----------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java Added: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java (rev 0) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java 2007-01-17 18:27:34 UTC (rev 21) @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2007 Stephen Reindl + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/* + * MigrateV0toV1.java + * + * Created on 16. Januar 2007, 19:24 + * + */ + +package de.sreindl.amavisadmin.migration; + +import de.sreindl.amavisadmin.db.MailAddress; +import de.sreindl.amavisadmin.db.MailAddressDAO; +import de.sreindl.amavisadmin.db.User; +import de.sreindl.amavisadmin.db.UserDAO; +import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; +import java.util.Iterator; +import java.util.List; +import javax.swing.text.rtf.RTFEditorKit; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.Transaction; + +/** + * The following activities are performed here: + *<ul> + *<li> Create default user if not already there </li> + *<li> Update table maddr table to include the user email addresses of + * the already registered users (if any).</li> + *</ul> + * @author sreindl + */ +public class MigrateV0toV1 implements MigrationJob { + + private static Log log = LogFactory.getLog(MigrateV0toV1.class); + + /** Creates a new instance of MigrateV0toV1 */ + public MigrateV0toV1() { + } + + /** + * Perform Migration + */ + public void migrate() throws Exception { + log.info("Migrate from DB Version 0 to DB Version 1"); + migrateUsers(); + addDefaultUser(); + log.info("Job migration successfully performed"); + } + + private void migrateUsers() { + MailAddressDAO dao = new MailAddressDAO(); + MailAddress entry = null; + Session session = HibernateSessionFactory.getSession(); + Query qry = session.createQuery("from User"); + Iterator i = qry.iterate(); + while (i.hasNext()) { + User user = (User)i.next(); + if (user.getEmail() == null || user.getEmail().equals(defaultUserEmail)) { + continue; // skip + } + entry = dao.findByEmail(user.getEmail()); + if (entry == null) { + log.info("New entry for user " + user.getUsername()); + // add new entry + entry = new MailAddress(user.getEmail(), + MailAddressDAO.generateDomain(user.getEmail())); + entry.setUser(user); + session.save(entry); + } else if (entry.getUser() != null && entry.getUser().equals(user)) { + log.info("Mail Entry for user " + user.getUsername() + " already exists"); + } else { + log.info("Mail Entry for user " + user.getUsername() + " updated."); + // update existing + entry.setUser(user); + session.update(entry); + } + } + } + + private void addDefaultUser() { + UserDAO dao = new UserDAO(); + MailAddress entry = null; + List ent = dao.findByEmail(defaultUserEmail); + if (ent.size() > 0) { + // already there -> ok + return; + } + log.info ("Adding default user"); + // add new default entry + Session session = HibernateSessionFactory.getSession(); + User user = new User(1, 1, defaultUserEmail, "Global Match", null, "", 0, "", false); + session.save(user); + } + + /** + * Default match + */ + private static final String defaultUserEmail = "@."; +} Property changes on: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrateV0toV1.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Added: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java (rev 0) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java 2007-01-17 18:27:34 UTC (rev 21) @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2007 Stephen Reindl + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/* + * MigrationJob.java + * + * Created on 16. Januar 2007, 19:29 + */ + +package de.sreindl.amavisadmin.migration; + +/** + * Interface that is used to describe jobs that need to be started during + * database migration. + * + * @author sreindl + */ +public interface MigrationJob { + /** + * Migration job. + */ + public void migrate() throws Exception; +} Property changes on: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/migration/MigrationJob.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Modified: amavisadmin/trunk/tools/reposInfo.pl =================================================================== --- amavisadmin/trunk/tools/reposInfo.pl 2007-01-17 18:23:00 UTC (rev 20) +++ amavisadmin/trunk/tools/reposInfo.pl 2007-01-17 18:27:34 UTC (rev 21) @@ -19,12 +19,14 @@ use SVK::XD; use Cwd; + my $op = shift; +my $_info = undef; # use svn info -my $funcRev = sub { +sub funcRev { my( $path, $info, $pool ) = @_; - print $info->rev; + $_info = $info; }; my $statusChanged = 0; @@ -35,7 +37,8 @@ my $ctx = SVN::Client->new(); if ($op eq "REV") { - $ctx->info( 'build.xml', undef, undef, $funcRev, 0 ); + $ctx->info( 'build.xml', undef, undef, \&funcRev, 0 ); + print $_info->rev; } elsif ($op eq "STATUS") { $ctx->status(getcwd(), undef, $funcStatus, 1, 0, 0, 0); if ($statusChanged) { @@ -51,4 +54,13 @@ print "BUILD"; } } elsif ($op eq "TAG") { + $ctx->info( 'build.xml', undef, undef, \&funcRev, 0 ); + my $url = $_info->URL; + if ($url =~ /trunk/) { + print "trunk"; + } elsif ($url =~ /branches\/([^\/]+)\//) { + print "branch $1"; + } elsif ($url =~ /tags\/([^\/]+)\//) { + print "tag $1"; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-17 17:46:03
|
Revision: 19 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=19&view=rev Author: streindl Date: 2007-01-17 09:45:57 -0800 (Wed, 17 Jan 2007) Log Message: ----------- Fix for #1637138: * Handle logging Modified Paths: -------------- amavisadmin/trunk/nbproject/private/private.properties amavisadmin/trunk/src/java/log4j.properties Modified: amavisadmin/trunk/nbproject/private/private.properties =================================================================== --- amavisadmin/trunk/nbproject/private/private.properties 2007-01-16 21:35:29 UTC (rev 18) +++ amavisadmin/trunk/nbproject/private/private.properties 2007-01-17 17:45:57 UTC (rev 19) @@ -1,5 +1,5 @@ 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.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/commons-logging.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/log4j-1.2.11.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 Modified: amavisadmin/trunk/src/java/log4j.properties =================================================================== --- amavisadmin/trunk/src/java/log4j.properties 2007-01-16 21:35:29 UTC (rev 18) +++ amavisadmin/trunk/src/java/log4j.properties 2007-01-17 17:45:57 UTC (rev 19) @@ -21,9 +21,13 @@ log4j.logger.org.apache.jsp=DEBUG -log4j.logger.org.hibernate=WARN -log4j.logger.org.quartz=DEBUG +log4j.logger.org.hibernate=INFO +log4j.logger.org.quartz=INFO +# #1637138: Enable output of debug messages +log4j.logger.org.apache.catalina.core.ContainerBase=DEBUG +#log4j.logger.org.apache.catalina.core.ContainerBase=INFO + #log4j.logger.org.apache.myfaces=DEBUG log4j.logger.de.sreindl.amavisadmin=DEBUG This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |