Initial import.
2 * StarOffice News Server
3 * see AUTHORS for the list of contributors
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 package com.so.news.storage;
21 import java.util.Date;
23 import com.so.news.Config;
24 import com.so.news.Debug;
27 * The purger is started in configurable intervals to search
28 * for old messages that can be purged.
29 * @author Christian Lins
31 public class Purger extends Thread
37 setDaemon(true); // Daemons run only along with the main thread
38 setPriority(Thread.MIN_PRIORITY);
40 this.interval = Config.getInstance().get("n3tpd.article.lifetime", 30) * 24 * 60 * 60 * 1000; // Milliseconds
42 this.interval = Integer.MAX_VALUE;
46 * Runloop of this Purger class.
59 catch(InterruptedException e)
61 e.printStackTrace(Debug.getInstance().getStream());
67 * Loops through all messages and deletes them if their time
72 Debug.getInstance().log("Purging old messages...");
78 Article art = null; //Database.getInstance().getOldestArticle();
79 if(art == null) // No articles in the database
82 if(art.getDate().getTime() < (new Date().getTime() + this.interval))
84 Database.getInstance().delete(art);
85 Debug.getInstance().log("Deleted: " + art);