org/sonews/daemon/AbstractDaemon.java
changeset 35 ed84c8bdd87b
parent 34 9f0b95aafaa3
child 36 c404a87db5b7
     1.1 --- a/org/sonews/daemon/AbstractDaemon.java	Sun Aug 29 17:04:25 2010 +0200
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,101 +0,0 @@
     1.4 -/*
     1.5 - *   SONEWS News Server
     1.6 - *   see AUTHORS for the list of contributors
     1.7 - *
     1.8 - *   This program is free software: you can redistribute it and/or modify
     1.9 - *   it under the terms of the GNU General Public License as published by
    1.10 - *   the Free Software Foundation, either version 3 of the License, or
    1.11 - *   (at your option) any later version.
    1.12 - *
    1.13 - *   This program is distributed in the hope that it will be useful,
    1.14 - *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.15 - *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.16 - *   GNU General Public License for more details.
    1.17 - *
    1.18 - *   You should have received a copy of the GNU General Public License
    1.19 - *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
    1.20 - */
    1.21 -
    1.22 -package org.sonews.daemon;
    1.23 -
    1.24 -import java.sql.SQLException;
    1.25 -import org.sonews.storage.StorageManager;
    1.26 -import org.sonews.util.Log;
    1.27 -
    1.28 -/**
    1.29 - * Base class of all sonews threads.
    1.30 - * Instances of this class will be automatically registered at the ShutdownHook
    1.31 - * to be cleanly exited when the server is forced to exit.
    1.32 - * @author Christian Lins
    1.33 - * @since sonews/0.5.0
    1.34 - */
    1.35 -public abstract class AbstractDaemon extends Thread
    1.36 -{
    1.37 -
    1.38 -  /** This variable is write synchronized through setRunning */
    1.39 -  private boolean isRunning = false;
    1.40 -
    1.41 -  /**
    1.42 -   * Protected constructor. Will be called by derived classes.
    1.43 -   */
    1.44 -  protected AbstractDaemon()
    1.45 -  {
    1.46 -    setDaemon(true); // VM will exit when all threads are daemons
    1.47 -    setName(getClass().getSimpleName());
    1.48 -  }
    1.49 -  
    1.50 -  /**
    1.51 -   * @return true if shutdown() was not yet called.
    1.52 -   */
    1.53 -  public boolean isRunning()
    1.54 -  {
    1.55 -    synchronized(this)
    1.56 -    {
    1.57 -      return this.isRunning;
    1.58 -    }
    1.59 -  }
    1.60 -  
    1.61 -  /**
    1.62 -   * Marks this thread to exit soon. Closes the associated JDBCDatabase connection
    1.63 -   * if available.
    1.64 -   * @throws java.sql.SQLException
    1.65 -   */
    1.66 -  public void shutdownNow()
    1.67 -    throws SQLException
    1.68 -  {
    1.69 -    synchronized(this)
    1.70 -    {
    1.71 -      this.isRunning = false;
    1.72 -      StorageManager.disableProvider();
    1.73 -    }
    1.74 -  }
    1.75 -  
    1.76 -  /**
    1.77 -   * Calls shutdownNow() but catches SQLExceptions if occurring.
    1.78 -   */
    1.79 -  public void shutdown()
    1.80 -  {
    1.81 -    try
    1.82 -    {
    1.83 -      shutdownNow();
    1.84 -    }
    1.85 -    catch(SQLException ex)
    1.86 -    {
    1.87 -      Log.get().warning(ex.toString());
    1.88 -    }
    1.89 -  }
    1.90 -  
    1.91 -  /**
    1.92 -   * Starts this daemon.
    1.93 -   */
    1.94 -  @Override
    1.95 -  public void start()
    1.96 -  {
    1.97 -    synchronized(this)
    1.98 -    {
    1.99 -      this.isRunning = true;
   1.100 -    }
   1.101 -    super.start();
   1.102 -  }
   1.103 -  
   1.104 -}