cvs commit: jakarta-log4j/src/java/org/apache/log4j Hierarchy.java

2002-12-11 Thread mwomack
mwomack 2002/12/11 21:20:22

  Modified:src/java/org/apache/log4j Hierarchy.java
  Log:
  Switched listener lists from Vector to ArrayList to avoid some unneeded 
synchronization charges.
  Thread safety changes.  Added synchronization for listener lists when 
adding/removing and copying when reporting events.
  
  Revision  ChangesPath
  1.44  +71 -71jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java
  
  Index: Hierarchy.java
  ===
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- Hierarchy.java22 Nov 2002 11:03:28 -  1.43
  +++ Hierarchy.java12 Dec 2002 05:20:22 -  1.44
  @@ -15,6 +15,7 @@
   import java.util.Hashtable;
   import java.util.Enumeration;
   import java.util.Vector;
  +import java.util.ArrayList;
   
   import org.apache.log4j.spi.LoggerFactory;
   import org.apache.log4j.spi.HierarchyEventListener;
  @@ -57,8 +58,8 @@
   public class Hierarchy implements LoggerRepository, RendererSupport {
   
 private LoggerFactory defaultFactory;
  -  private Vector repositoryEventListeners;
  -  private Vector loggerEventListeners;
  +  private ArrayList repositoryEventListeners;
  +  private ArrayList loggerEventListeners;
   
 Hashtable ht;
 Logger root;
  @@ -79,8 +80,8 @@
 public
 Hierarchy(Logger root) {
   ht = new Hashtable();
  -repositoryEventListeners = new Vector(1);
  -loggerEventListeners = new Vector(1);
  +repositoryEventListeners = new ArrayList(1);
  +loggerEventListeners = new ArrayList(1);
   this.root = root;
   // Enable all level levels by default.
   setThreshold(Level.ALL);
  @@ -102,12 +103,14 @@
   @since 1.3*/
 public void addLoggerRepositoryEventListener(
   LoggerRepositoryEventListener listener) {
  -  
  -if(repositoryEventListeners.contains(listener)) {
  -  LogLog.warn(
  -"Ignoring attempt to add a previously registerd 
LoggerRepositoryEventListener.");
  -} else {
  -  repositoryEventListeners.addElement(listener);
  +
  +synchronized(repositoryEventListeners) {
  +  if(repositoryEventListeners.contains(listener)) {
  +LogLog.warn(
  +  "Ignoring attempt to add a previously registerd 
LoggerRepositoryEventListener.");
  +  } else {
  +repositoryEventListeners.add(listener);
  +  }
   }
 }
   
  @@ -117,11 +120,13 @@
 public void removeLoggerRepositoryEventListener(
   LoggerRepositoryEventListener listener) {
   
  -if(!repositoryEventListeners.contains(listener)) {
  -  LogLog.warn(
  -"Ignoring attempt to remove a non-registered 
LoggerRepositoryEventListener.");
  -} else {
  -  repositoryEventListeners.remove(listener);
  +synchronized(repositoryEventListeners) {
  +  if(!repositoryEventListeners.contains(listener)) {
  +LogLog.warn(
  +  "Ignoring attempt to remove a non-registered 
LoggerRepositoryEventListener.");
  +  } else {
  +repositoryEventListeners.remove(listener);
  +  }
   }
 }
   
  @@ -130,11 +135,13 @@
   will be called when repository events occur.
   @since 1.3*/
 public void addLoggerEventListener(LoggerEventListener listener) {
  -if(loggerEventListeners.contains(listener)) {
  -  LogLog.warn(
  -"Ignoring attempt to add a previously registerd LoggerEventListener.");
  -} else {
  -  loggerEventListeners.addElement(listener);
  +synchronized(loggerEventListeners) {
  +  if(loggerEventListeners.contains(listener)) {
  +LogLog.warn(
  +  "Ignoring attempt to add a previously registerd LoggerEventListener.");
  +  } else {
  +loggerEventListeners.add(listener);
  +  }
   }
 }
   
  @@ -142,12 +149,13 @@
   Remove a {@link LoggerEventListener} from the repository.
   @since 1.3*/
 public void removeLoggerEventListener(LoggerEventListener listener) {
  -
  -if(!loggerEventListeners.contains(listener)) {
  -  LogLog.warn(
  -"Ignoring attempt to remove a non-registered LoggerEventListener.");
  -} else {
  -  loggerEventListeners.remove(listener);
  +synchronized(loggerEventListeners) {
  +  if(!loggerEventListeners.contains(listener)) {
  +LogLog.warn(
  +  "Ignoring attempt to remove a non-registered LoggerEventListener.");
  +  } else {
  +loggerEventListeners.remove(listener);
  +  }
   }
 }
   
  @@ -223,13 +231,10 @@
   @param appender The appender added to the logger.
   @since 1.3*/
 public void fireAddAppenderEvent(Logger logger, Appender appender) {
  -if(loggerEventListeners != null) {
  -  int size = loggerEventListeners.size();
  -  LoggerEventListener listener;
  -  for(int i = 0; i < siz

cvs commit: jakarta-log4j/src/java/org/apache/log4j Hierarchy.java

2002-11-21 Thread mwomack
mwomack 2002/11/21 20:51:39

  Modified:src/java/org/apache/log4j Hierarchy.java
  Log:
  Updated to match changes in LoggerRepository interface.
  Implemented callbacks to LoggerRepositoryEventListener and LoggerEventListener 
instances..
  
  Revision  ChangesPath
  1.41  +205 -26   jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java
  
  Index: Hierarchy.java
  ===
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- Hierarchy.java9 May 2002 15:43:43 -   1.40
  +++ Hierarchy.java22 Nov 2002 04:51:39 -  1.41
  @@ -9,12 +9,6 @@
   // WARNING RootCategory classes in its static initiliazation neither
   // WARNING directly nor indirectly.
   
  -// Contributors:
  -//Luke Blanshard <[EMAIL PROTECTED]>
  -//Mario Schomburg - IBM Global Services/Germany
  -//Anders Kristensen
  -//Igor Poteryaev
  -
   package org.apache.log4j;
   
   
  @@ -24,6 +18,8 @@
   
   import org.apache.log4j.spi.LoggerFactory;
   import org.apache.log4j.spi.HierarchyEventListener;
  +import org.apache.log4j.spi.LoggerEventListener;
  +import org.apache.log4j.spi.LoggerRepositoryEventListener;
   import org.apache.log4j.spi.LoggerRepository;
   import org.apache.log4j.spi.RendererSupport;
   import org.apache.log4j.Appender;
  @@ -49,6 +45,12 @@
  to the provision node. Other descendants of the same ancestor add
  themselves to the previously created provision node.
   
  +   Contributors:
  +Luke Blanshard <[EMAIL PROTECTED]>
  +Mario Schomburg - IBM Global Services/Germany
  +Anders Kristensen
  +Igor Poteryaev
  +
  @author Ceki Gülcü
   
   */
  @@ -56,6 +58,8 @@
   
 private LoggerFactory defaultFactory;
 private Vector listeners;
  +  private Vector repositoryEventListeners;
  +  private Vector loggerEventListeners;
   
 Hashtable ht;
 Logger root;
  @@ -77,6 +81,8 @@
 Hierarchy(Logger root) {
   ht = new Hashtable();
   listeners = new Vector(1);
  +repositoryEventListeners = new Vector(1);
  +loggerEventListeners = new Vector(1);
   this.root = root;
   // Enable all level levels by default.
   setThreshold(Level.ALL);
  @@ -93,6 +99,9 @@
   rendererMap.put(classToRender, or);
 }
   
  +  /**
  + @deprecated As of v1.3, use {@link #addLoggerRepositoryEventListener}
  + and {@link addLoggerEventListener} methods instead. */
 public
 void addHierarchyEventListener(HierarchyEventListener listener) {
   if(listeners.contains(listener)) {
  @@ -101,6 +110,61 @@
 listeners.addElement(listener);
   }
 }
  +  
  +  /**
  +Add a {@link LoggerRepositoryEventListener} to the repository. The 
  +listener will be called when repository events occur. 
  +@since 1.3*/
  +  public void addLoggerRepositoryEventListener(
  +LoggerRepositoryEventListener listener) {
  +  
  +if(repositoryEventListeners.contains(listener)) {
  +  LogLog.warn(
  +"Ignoring attempt to add a previously registerd 
LoggerRepositoryEventListener.");
  +} else {
  +  repositoryEventListeners.addElement(listener);
  +}
  +  }
  +
  +  /**
  +Remove a {@link LoggerRepositoryEventListener} from the repository.
  +@since 1.3*/
  +  public void removeLoggerRepositoryEventListener(
  +LoggerRepositoryEventListener listener) {
  +
  +if(!repositoryEventListeners.contains(listener)) {
  +  LogLog.warn(
  +"Ignoring attempt to remove a non-registered 
LoggerRepositoryEventListener.");
  +} else {
  +  repositoryEventListeners.remove(listener);
  +}
  +  }
  +
  +  /**
  +Add a {@link LoggerEventListener} to the repository. The  listener 
  +will be called when repository events occur.
  +@since 1.3*/
  +  public void addLoggerEventListener(LoggerEventListener listener) {
  +if(loggerEventListeners.contains(listener)) {
  +  LogLog.warn(
  +"Ignoring attempt to add a previously registerd LoggerEventListener.");
  +} else {
  +  loggerEventListeners.addElement(listener);
  +}
  +  }
  +
  +  /**
  +Remove a {@link LoggerEventListener} from the repository.
  +@since 1.3*/
  +  public void removeLoggerEventListener(LoggerEventListener listener) {
  +
  +if(!loggerEventListeners.contains(listener)) {
  +  LogLog.warn(
  +"Ignoring attempt to remove a non-registered LoggerEventListener.");
  +} else {
  +  loggerEventListeners.remove(listener);
  +}
  +  }
   
 /**
This call will clear all logger definitions from the internal
  @@ -173,25 +237,113 @@
   }
 }
   
  -  public
  -  void fireAddAppenderEvent(Category logger, Appender appender) {
  +  /**
  +@deprecated As of 1.3 use fireAddApp

cvs commit: jakarta-log4j/src/java/org/apache/log4j Hierarchy.java

2001-08-21 Thread pglezen

pglezen 01/08/21 09:06:06

  Modified:src/java/org/apache/log4j Hierarchy.java
  Log:
  Added some javadoc comments to clarify some recent changes to
  the following methods:
enable(Priority)
getEnable()
isDisabled(int)
  
  Revision  ChangesPath
  1.25  +9 -3  jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java
  
  Index: Hierarchy.java
  ===
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- Hierarchy.java2001/08/09 20:16:31 1.24
  +++ Hierarchy.java2001/08/21 16:06:05 1.25
  @@ -247,6 +247,12 @@
   enable(Priority.ALL);
 }
   
  +  /**
  + Enable logging for events with priority p or higher.
  +
  +   @param p the minimum priority for which events are sent to
  +  their appenders.
  +   @since 1.1.3 */
 public 
 void enable(Priority p) {
   if(p != null) {
  @@ -281,8 +287,8 @@
 }
   
 /**
  - Returns the string representation of the internal
  - disable state.  
  + Returns a {@link Priority} representation of the
  + enable state.  
   
@since 1.2
 */
  @@ -399,7 +405,7 @@
 }
   
 /**
  - @deprecated No replacement offered.
  + @deprecated See {@link #getEnable} for similar functionality.
  */
   
 public
  
  
  

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




cvs commit: jakarta-log4j/src/java/org/apache/log4j Hierarchy.java Makefile

2001-07-20 Thread ceki

ceki01/07/20 09:03:41

  Modified:src/java/org/apache/log4j Hierarchy.java Makefile
  Log:
  - Added new types of event firing methods to match changes in HiearchyEventListener.
  
  - Removed jmx subdir from Makefile
  
  Revision  ChangesPath
  1.20  +33 -5 jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java
  
  Index: Hierarchy.java
  ===
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Hierarchy.java2001/07/13 07:53:01 1.19
  +++ Hierarchy.java2001/07/20 16:03:41 1.20
  @@ -25,6 +25,7 @@
   import org.apache.log4j.spi.RootCategory;
   import org.apache.log4j.spi.CategoryFactory;
   import org.apache.log4j.spi.HierarchyEventListener;
  +import org.apache.log4j.Appender;
   import org.apache.log4j.or.RendererMap;
   import org.apache.log4j.or.ObjectRenderer;
   import org.apache.log4j.helpers.LogLog;
  @@ -234,18 +235,47 @@
 }
   
 private
  -  void fireCategoryCreationEvent(Category category) {
  +  void fireAddAppenderEvent(Category category, Appender appender) {
   if(listeners != null) {
 int size = listeners.size();
 HierarchyEventListener listener;
 for(int i = 0; i < size; i++) {
listener = (HierarchyEventListener) listeners.elementAt(i);
  - listener.categoryCreationEvent(category);
  + listener.addAppenderEvent(category, appender);
 }
   }
 }
   
  +
  +  private
  +  void fireRemoveAppenderEvent(Category category, Appender appender) {
  +if(listeners != null) {
  +  int size = listeners.size();
  +  HierarchyEventListener listener;
  +  for(int i = 0; i < size; i++) {
  + listener = (HierarchyEventListener) listeners.elementAt(i);
  + listener.removeAppenderEvent(category, appender);
  +  }
  +}
  +  }
  +
 /**
  + Returns the string representation of the internal
  + disable state.  
  +
  + @since 1.2
  +  */
  +  public
  +  String getDisableAsString() {
  +switch(disable) {
  +case DISABLE_OFF: return "DISABLE_OFF";
  +case DISABLE_OVERRIDE: return "DISABLE_OVERRIDE";
  +case Priority.DEBUG_INT: return "DISABLE_DEBUG";
  +default: return "UNKNOWN_STATE";
  +}
  +  }
  +
  +  /**
Return a new category instance named as the first parameter using
the default factory. 

  @@ -290,7 +320,6 @@
category.setHierarchy(this);
ht.put(key, category);  
updateParents(category);
  - fireCategoryCreationEvent(category);
return category;
 } else if(o instanceof Category) {
return (Category) o;
  @@ -301,7 +330,6 @@
ht.put(key, category);
updateChildren((ProvisionNode) o, category);
updateParents(category);
  - fireCategoryCreationEvent(category);
return category;
 }
 else {
  @@ -396,7 +424,7 @@
This method should be used sparingly and with care as it will
block all logging until it is completed.
   
  - @since version 0.8.5 */
  + @since 0.8.5 */
 public
 void resetConfiguration() {
   
  
  
  
  1.12  +1 -1  jakarta-log4j/src/java/org/apache/log4j/Makefile
  
  Index: Makefile
  ===
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Makefile,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- Makefile  2001/07/13 07:53:05 1.11
  +++ Makefile  2001/07/20 16:03:41 1.12
  @@ -30,7 +30,7 @@
   endif
   
   
  -SUBDIRS :=helpers spi config or xml net nt varia jmx test performance examples 
  +SUBDIRS :=helpers spi config or xml net nt varia test performance examples 
   
   # include master-rule file
   include $(DEPTH)/make/make.inc
  
  
  

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




cvs commit: jakarta-log4j/src/java/org/apache/log4j Hierarchy.java

2001-05-20 Thread pathos

pathos  01/05/20 04:01:14

  Modified:src/java/org/apache/log4j Hierarchy.java
  Log:
  Documentation changes.
  
  Revision  ChangesPath
  1.15  +12 -12jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java
  
  Index: Hierarchy.java
  ===
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- Hierarchy.java2001/04/14 06:57:22 1.14
  +++ Hierarchy.java2001/05/20 11:01:13 1.15
  @@ -30,23 +30,23 @@
   import org.apache.log4j.helpers.OptionConverter;
   
   /**
  -   This class is specialized in retreiving categories by name and
  +   This class is specialized in retrieving categories by name and
  also maintaining the category hierarchy.
   
  The casual user should not have to deal with this class
  -   firectly. In fact, up until version 0.9.0, this class had
  +   directly. In fact, up until version 0.9.0, this class had
  default package access. However, if you are in an environment where
  multiple applications run in the same VM, then read on.
   
  -   The structure of the category hierachy is maintained by the
  -   {@link #getInstance} method. The hierrachy is such that children
  +   The structure of the category hierarchy is maintained by the
  +   {@link #getInstance} method. The hierarchy is such that children
  link to their parent but parents do not have any pointers to their
  children. Moreover, categories can be instantiated in any order, in
  -   particular decendant before ancestor.
  +   particular descendant before ancestor.
   
  -   In case a decendant is created before a particular ancestor,
  +   In case a descendant is created before a particular ancestor,
  then it creates a provision node for the ancestor and adds itself
  -   to the provision node. Other decendants of the same ancestor add
  +   to the provision node. Other descendants of the same ancestor add
  themselves to the previously created provision node.
   
  See the code below for further details.
  @@ -103,7 +103,7 @@
 /**
This call will clear all category definitions from the internal
hashtable. Invoking this method will irrevocably mess up the
  - category hiearchy.
  + category hierarchy.

You should really know what you are doing before
invoking this method.
  @@ -116,7 +116,7 @@
 }
   
 /**
  - Check if the named category exists in the hirarchy. If so return
  + Check if the named category exists in the hierarchy. If so return
its reference, otherwise returns null.

@param name The name of the category to search for.
  @@ -163,7 +163,7 @@
   
The "disable" family of methods are there for speed. They
allow printing methods such as debug, info, etc. to return
  - immediately after an interger comparison without walking the
  + immediately after an integer comparison without walking the
category hierarchy. In most modern computers an integer
comparison is measured in nanoseconds where as a category walk is
measured in units of microseconds.
  @@ -263,7 +263,7 @@
returned.  Otherwise, a new category will be instantiated and
lthen inked with its existing ancestors as well as children.

  - @param name The name of the category to retreive.
  + @param name The name of the category to retrieve.
   
*/
 public
  @@ -280,7 +280,7 @@
factory parameter and linked with its existing
ancestors as well as children.

  - @param name The name of the category to retreive.
  + @param name The name of the category to retrieve.
@param factory The factory that will make the new category instance.
   
*/
  
  
  

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