psmith      2003/06/24 01:24:57

  Modified:    src/java/org/apache/log4j/plugins Receiver.java
                        PluginSkeleton.java PluginRegistry.java Plugin.java
  Added:       src/java/org/apache/log4j/plugins Pauseable.java
  Log:
  moving to jakarta-log4j from jakarta-log4j-sandbox.
  
  Revision  Changes    Path
  1.5       +39 -1     jakarta-log4j/src/java/org/apache/log4j/plugins/Receiver.java
  
  Index: Receiver.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/plugins/Receiver.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Receiver.java     18 Mar 2003 13:33:30 -0000      1.4
  +++ Receiver.java     24 Jun 2003 08:24:57 -0000      1.5
  @@ -49,8 +49,10 @@
   
   package org.apache.log4j.plugins;
   
  +import org.apache.log4j.Level;
   import org.apache.log4j.Logger;
   import org.apache.log4j.spi.LoggingEvent;
  +import org.apache.log4j.spi.Thresholdable;
   
   
   /**
  @@ -84,15 +86,51 @@
   
     @author Mark Womack
     @author Ceki Gülcü
  +  @author Paul Smith <[EMAIL PROTECTED]>
     @since 1.3
   */
  -public abstract class Receiver extends PluginSkeleton {
  +public abstract class Receiver extends PluginSkeleton implements Thresholdable {
  +     protected Level thresholdLevel;
  +     
  +  /**
  +    Sets the receiver theshold to the given level.
  +    
  +    @param level The threshold level events must equal or be greater
  +     than before further processing can be done. */
  +  public void setThreshold(Level level) {
  +    thresholdLevel = level;
  +  }
  +  
  +  /**
  +    Gets the current threshold setting of the receiver.
  +    
  +    @return Level The current threshold level of the receiver. */
  +  public Level getThreshold() {
  +    return thresholdLevel;
  +  }
  +
  +  /**
  +    Returns true if the given level is equals or greater than the current
  +    threshold value of the receiver.
  +    
  +    @param level The level to test against the receiver threshold.
  +    @return boolean True if level is equal or greater than the
  +      receiver threshold. */
  +     public boolean isAsSevereAsThreshold(Level level) {
  +    return ((thresholdLevel == null) || level.isGreaterOrEqual(thresholdLevel));
  +  }
  +
     /**
       Posts the logging event to a logger in the configured logger
       repository.
   
       @param event the log event to post to the local log4j environment. */
     public void doPost(LoggingEvent event) {
  +    // if event does not meet threshold, exit now
  +    if (!isAsSevereAsThreshold(event.getLevel())) {
  +      return;
  +    }
  +      
       // get the "local" logger for this event from the
       // configured repository.
       Logger localLogger =
  
  
  
  1.6       +11 -0     
jakarta-log4j/src/java/org/apache/log4j/plugins/PluginSkeleton.java
  
  Index: PluginSkeleton.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/plugins/PluginSkeleton.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- PluginSkeleton.java       18 Mar 2003 13:33:30 -0000      1.5
  +++ PluginSkeleton.java       24 Jun 2003 08:24:57 -0000      1.6
  @@ -66,6 +66,7 @@
     Contributors: Nicko Cadell
   
     @author Mark Womack
  +  @author Paul Smith <[EMAIL PROTECTED]>
     @since 1.3
   */
   public abstract class PluginSkeleton implements Plugin {
  @@ -74,6 +75,7 @@
   
     /** Repository this plugin is attached to. */
     protected LoggerRepository repository;
  +  protected boolean active;
   
     /**
       Gets the name of the plugin.
  @@ -107,4 +109,13 @@
     public void setLoggerRepository(LoggerRepository repository) {
       this.repository = repository;
     }
  +
  +  /**
  +   * Returns whether this plugin is Active or not
  +   * @return true/false 
  +   */
  +  public synchronized boolean isActive() {
  +    return active;
  +  }
  +
   }
  
  
  
  1.6       +53 -0     
jakarta-log4j/src/java/org/apache/log4j/plugins/PluginRegistry.java
  
  Index: PluginRegistry.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/plugins/PluginRegistry.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- PluginRegistry.java       18 Mar 2003 13:33:30 -0000      1.5
  +++ PluginRegistry.java       24 Jun 2003 08:24:57 -0000      1.6
  @@ -53,7 +53,11 @@
   import org.apache.log4j.spi.LoggerRepository;
   import org.apache.log4j.spi.LoggerRepositoryEventListener;
   
  +import java.util.Collections;
  +import java.util.Map;
   import java.util.HashMap;
  +import java.util.List;
  +import java.util.ArrayList;
   import java.util.Iterator;
   
   
  @@ -144,6 +148,55 @@
       }
     }
   
  +  /**
  +    Returns all the plugins for a given repository.
  +    
  +    @param repository the logger repository to get the plugins from.
  +    @return List list of plugins from the repository. */
  +  public static List getPlugins(LoggerRepository repository) {
  +    synchronized (repositoryMap) {
  +      // get plugin map for repository
  +      Map pluginMap = (Map) repositoryMap.get(repository);
  +      if (pluginMap == null) {
  +             return Collections.EMPTY_LIST;
  +      } else {
  +             List pluginList = new ArrayList(pluginMap.size());
  +             Iterator iter = pluginMap.values().iterator();
  +             while (iter.hasNext()) {
  +                     pluginList.add(iter.next());
  +             }
  +             return pluginList;
  +      }
  +    }
  +  }
  +  
  +  /**
  +    Returns all the plugins for a given repository that are instances
  +    of a certain class.
  +    
  +    @param repository the logger repository to get the plugins from.
  +    @param pluginClass the class the plugin must implement to be selected.
  +    @return List list of plugins from the repository. */
  +  public static List getPlugins(LoggerRepository repository, Class pluginClass) {
  +    synchronized (repositoryMap) {
  +      // get plugin map for repository
  +      Map pluginMap = (Map) repositoryMap.get(repository);
  +      if (pluginMap == null) {
  +             return Collections.EMPTY_LIST;
  +      } else {
  +             List pluginList = new ArrayList(pluginMap.size());
  +             Iterator iter = pluginMap.values().iterator();
  +             while (iter.hasNext()) {
  +                     Object plugin = iter.next();
  +                     if (pluginClass.isInstance(plugin)) {
  +                     pluginList.add(plugin);
  +             }
  +             }
  +             return pluginList;
  +      }
  +    }
  +  }
  +  
     /**
       Stops a plugin by plugin object.
   
  
  
  
  1.5       +2 -1      jakarta-log4j/src/java/org/apache/log4j/plugins/Plugin.java
  
  Index: Plugin.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/plugins/Plugin.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Plugin.java       18 Mar 2003 13:33:30 -0000      1.4
  +++ Plugin.java       24 Jun 2003 08:24:57 -0000      1.5
  @@ -69,6 +69,7 @@
   
     @author Mark Womack
     @author Nicko Cadell
  +  @author Paul Smith <[EMAIL PROTECTED]>
     @since 1.3
   */
   public interface Plugin extends OptionHandler {
  @@ -103,7 +104,7 @@
   
       @return boolean true if the plugin is currently active. */
     public boolean isActive();
  -
  +  
     /**
       Call when the plugin should be stopped. */
     public void shutdown();
  
  
  
  1.1                  jakarta-log4j/src/java/org/apache/log4j/plugins/Pauseable.java
  
  Index: Pauseable.java
  ===================================================================
  /*
   * ============================================================================
   *                   The Apache Software License, Version 1.1
   * ============================================================================
   *
   *    Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of  source code must  retain the above copyright  notice,
   *    this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   *
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include  the following  acknowledgment:  "This product includes  software
   *    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
   *    Alternately, this  acknowledgment may  appear in the software itself,  if
   *    and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "log4j" and  "Apache Software Foundation"  must not be used to
   *    endorse  or promote  products derived  from this  software without  prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   *
   * 5. Products  derived from this software may not  be called "Apache", nor may
   *    "Apache" appear  in their name,  without prior written permission  of the
   *    Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   * APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   * ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   * (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   *
   * This software  consists of voluntary contributions made  by many individuals
   * on  behalf of the Apache Software  Foundation.  For more  information on the
   * Apache Software Foundation, please see <http://www.apache.org/>.
   *
   */
  
  package org.apache.log4j.plugins;
  
  
  /**
   * Instances of this interface can be paused, and resumed.
   * 
   * @author Paul Smith <[EMAIL PROTECTED]>
   *
   */
  public interface Pauseable {
    public void setPaused(boolean paused);
  
    public boolean isPaused();
  }
  
  
  

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

Reply via email to