org/sonews/util/Purger.java
author chris <chris@marvin>
Fri, 26 Jun 2009 16:48:50 +0200
changeset 1 6fceb66e1ad7
child 3 2fdc9cc89502
permissions -rw-r--r--
Hooray... sonews/0.5.0 final

HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Remove all lines to abort the collapse operation.
     1 /*
     2  *   SONEWS News Server
     3  *   see AUTHORS for the list of contributors
     4  *
     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.
     9  *
    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.
    14  *
    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/>.
    17  */
    18 
    19 package org.sonews.util;
    20 
    21 import org.sonews.daemon.Config;
    22 import org.sonews.daemon.storage.Database;
    23 import org.sonews.daemon.storage.Article;
    24 import java.util.Date;
    25 
    26 /**
    27  * The purger is started in configurable intervals to search
    28  * for old messages that can be purged.
    29  * @author Christian Lins
    30  * @since sonews/0.5.0
    31  */
    32 public class Purger
    33 {
    34 
    35   private long lifetime;
    36   
    37   public Purger()
    38   {
    39     this.lifetime = Config.getInstance().get("sonews.article.lifetime", 30) 
    40       * 24L * 60L * 60L * 1000L; // in Milliseconds
    41   }
    42 
    43   /**
    44    * Loops through all messages and deletes them if their time
    45    * has come.
    46    */
    47   void purge()
    48     throws Exception
    49   {
    50     System.out.println("Purging old messages...");
    51 
    52     for (;;)
    53     {
    54       // TODO: Delete articles directly in database
    55       Article art = null; //Database.getInstance().getOldestArticle();
    56       if (art == null) // No articles in the database
    57       {
    58         break;
    59       }
    60 
    61 /*      if (art.getDate().getTime() < (new Date().getTime() + this.lifetime))
    62       {
    63  //       Database.getInstance().delete(art);
    64         System.out.println("Deleted: " + art);
    65       }
    66       else
    67       {
    68         break;
    69       }*/
    70     }
    71   }
    72   
    73   public static void main(String[] args)
    74   {
    75     try
    76     {
    77       Purger purger = new Purger();
    78       purger.purge();
    79       System.exit(0);
    80     }
    81     catch(Exception ex)
    82     {
    83       ex.printStackTrace();
    84       System.exit(1);
    85     }
    86   }
    87 
    88 }