mwomack     2002/06/15 23:39:27

  Added:       src/java/org/apache/log4j/config ConfigWatchdog.java
  Log:
  Added interface for ConfigWatchdog.
  
  Revision  Changes    Path
  1.1                  
jakarta-log4j/src/java/org/apache/log4j/config/ConfigWatchdog.java
  
  Index: ConfigWatchdog.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software
   * License version 1.1, a copy of which has been included with this
   * distribution in the LICENSE.txt file.  */
  
  package org.apache.log4j.config;
  
  import org.apache.log4j.spi.LoggerRepository;
  
  /**
    Defines the basic interface that all ConfigWatchdogs must support.
    
    <p>ConfigWatchdogs "watch" a log4j configuration source, and when
    new, changed configuration data is available, the watchdog will
    initiate a reconfiguration of the log4j settings using the new
    configuration data.
      
    <p>All watchdogs can have a name and configurator class.
    The configurator class will be used when reconfiguring using the 
    new data.  All watchdogs can be started and stopped.
    
    <p>Several different ConfigWatchdog classes are available in the
    org.apache.log4j.config package, such as FileWatchdog (watches a
    configuration file), HttpWatchdog (watches a configuration file 
    at a url location), and SocketWatchdog (watches a socket for 
    incoming configuration data).
    
    <p>If these are not sufficient, developers are encouraged
    to implement specific versions of ConfigWatchdogs for their 
    particular needs. This can be done by subclassing the WatchdogBase
    or URLWatchdogBase abstract classes, or to write their own class
    that implements the ConfigWatchdog interface.  Please see the
    above mentioned classes for more information.  
  
    @author Mark Womack
    
    @since 1.3
  */
  public interface ConfigWatchdog {
    
    /**
      Returns true if this watchdog is currently running. */
    public boolean isRunning();
    
    /**
       Set the name of this watchdog. The name is used by other
       components to identify this watchdog. */
    public void setName(String name);
  
    /**
       Get the name of this watchdog. The name uniquely identifies 
       the watchdog.  */
    public String getName();
  
    /**
      Sets the configurator class name used for reconfiguration. */
    public void setConfiguratorClassName(String className);
    
    /**
      Gets the configurator class name used for reconfiguration. */
    public String getConfiguratorClassName();
  
    /**
      Sets the configurator class used for reconfiguration. */
    public void setConfiguratorClass(Class clazz);
    
    /**
      Gets the configurator class used for reconfiguration. */
    public Class getConfiguratorClass();
  
    /**
      Set the logger repository this watchdog will reconfigure
      when new configuration data is detected.  If not set,
      should default to the return value of 
      LogManager.getLoggerRepository(). */
    public void setLoggerRepository(LoggerRepository repository);
    
    /**
      Get the logger repository this watchdog will reconfigure
      when new configuration data is detected.  Default is the
      return value of LogManager.getLoggerRepository(). */
    public LoggerRepository getLoggerRepository();
    
    /**
      Starts this watchdog watching. After calling this method the
      watchdog will be active. */
    public void startWatching();
    
    /**
      Stops this watchdog. After calling this method the
      watchdog will become inactive, but it is not guaranteed
      to be immediately inactive. If threads are involved in the 
      implementation, it may take time for them to be interupted and
      exited. */
    public void stopWatching();
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to