You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ce...@apache.org on 2005/01/20 15:45:53 UTC

cvs commit: logging-log4j/src/java/org/apache/log4j/joran/action JndiSubstitutionPropertyAction.java

ceki        2005/01/20 06:45:53

  Modified:    src/java/org/apache/log4j/joran/action
                        JndiSubstitutionPropertyAction.java
  Log:
  Renamed "jndiName" attribute as "name". This is more coherent with the way other property substitution actions work.
  
  Revision  Changes    Path
  1.4       +79 -89    logging-log4j/src/java/org/apache/log4j/joran/action/JndiSubstitutionPropertyAction.java
  
  Index: JndiSubstitutionPropertyAction.java
  ===================================================================
  RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/joran/action/JndiSubstitutionPropertyAction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JndiSubstitutionPropertyAction.java	12 Jan 2005 15:04:18 -0000	1.3
  +++ JndiSubstitutionPropertyAction.java	20 Jan 2005 14:45:53 -0000	1.4
  @@ -1,5 +1,5 @@
   /*
  - * Copyright 2004 The Apache Software Foundation.
  + * Copyright 1999,2004 The Apache Software Foundation.
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
  @@ -16,116 +16,106 @@
   
   package org.apache.log4j.joran.action;
   
  -import javax.naming.Context;
  -import javax.naming.NamingException;
  -import javax.naming.InitialContext;
  -
   import org.apache.log4j.joran.spi.ExecutionContext;
   import org.apache.log4j.spi.ErrorItem;
   
   import org.xml.sax.Attributes;
   
  +import javax.naming.Context;
  +import javax.naming.InitialContext;
  +import javax.naming.NamingException;
  +
  +
   /**
    * This action looks up JNDI properties specified in the configuration
    * file and adds them to the Joran <code>ExecutionContext</code>.  The
    * element in the configuration file should have an attribute called
  - * "jndiName".  This attribute will be the key to the naming context lookup,
  + * "name".  This attribute will be the key to the naming context lookup,
    * as well as the key to the <code>ExecutionContext</code> properties.  If a value
  - * is found whose name matches the given jndiName, it will be placed
  + * is found whose name matches the given name, it will be placed
    * in the ExecutionContext's properties.
    *
    * @author Yoav Shapira
    */
   public class JndiSubstitutionPropertyAction extends Action {
  -    /**
  -     * The attribute name specifying the JNDI variable to lookup.
  -     */
  -    private static final String JNDI_ATTR = "jndiName";
  -
  -    /**
  -     * The naming context.
  -     */
  -    private Context namingContext;
  -
  -    /**
  -     * Returns the naming context for lookups.
  -     *
  -     * @return The context (may be null)
  -     */
  -    protected Context getNamingContext() {
  -        return namingContext;
  +  /**
  +   * The naming context.
  +   */
  +  private Context namingContext;
  +
  +  /**
  +   * Returns the naming context for lookups.
  +   *
  +   * @return The context (may be null)
  +   */
  +  protected Context getNamingContext() {
  +    return namingContext;
  +  }
  +
  +  /**
  +   * Creates the naming context.  This is an expensive
  +   * operation.
  +   *
  +   * @throws NamingException If an error occurs
  +   */
  +  protected void findNamingContext() throws NamingException {
  +    if (getNamingContext() != null) {
  +      getLogger().warn("Overwriting existing naming context.");
       }
   
  -    /**
  -     * Creates the naming context.  This is an expensive
  -     * operation.
  -     *
  -     * @throws NamingException If an error occurs
  -     */
  -    protected void findNamingContext() throws NamingException {
  -        if(getNamingContext() != null) {
  -            getLogger().warn("Overwriting existing naming context.");
  -        }
  -
  -        // POSSIBLE TO-DO: add support for properties
  -        // passed to the initial context, e.g. a factory,
  -        // to enable things like a remote context.
  -        InitialContext ic = new InitialContext();
  -        namingContext = (Context) ic.lookup("java:comp/env");
  +    // POSSIBLE TO-DO: add support for properties
  +    // passed to the initial context, e.g. a factory,
  +    // to enable things like a remote context.
  +    InitialContext ic = new InitialContext();
  +    namingContext = (Context) ic.lookup("java:comp/env");
  +  }
  +
  +  /**
  +   * @see org.apache.joran.Action#begin.
  +   */
  +  public void begin(
  +    final ExecutionContext ec, final String name, final Attributes attributes) {
  +    // If first time, create and locate context: expensive operation.
  +    if (getNamingContext() == null) {
  +      try {
  +        findNamingContext();
  +      } catch (Exception e) {
  +        getLogger().error("Couldn't find JNDI naming context: ", e);
  +        ec.addError(new ErrorItem("Couldn't find JNDI naming context.", e));
  +      }
       }
   
  -    /**
  -     * @see org.apache.joran.Action#begin.
  -     */
  -    public void begin(final ExecutionContext ec, final String name, final Attributes attributes) {
  -        if(getLogger().isDebugEnabled()) {
  -            getLogger().debug(getClass().getName() +
  -                              ": begin({}, " + name + ", {}): here.", ec, attributes);
  -        }
  -
  -        // If first time, create and locate context: expensive operation.
  -        if(getNamingContext() == null) {
  -            try {
  -                findNamingContext();
  -            } catch (Exception e) {
  -                getLogger().error("Couldn't find JNDI naming context: ", e);
  -                ec.addError(new ErrorItem("Couldn't find JNDI naming context.", e));
  -            }
  -        }
  -
  -        String jndiName = attributes.getValue(JNDI_ATTR);
  -        
  -        if((jndiName == null) || (jndiName.trim().length() < 1)) {
  -            getLogger().warn("Missing {} attribute, ignoring.", JNDI_ATTR);
  -        } else if(getNamingContext() != null){ 
  -            Object value = null;
  -
  -            try {
  -                value = getNamingContext().lookup(jndiName);
  -            } catch (Exception e) {
  -                getLogger().error("Error looking up " + jndiName + ": ", e);
  -                ec.addError(new ErrorItem("Error looking up " + jndiName, e));
  -            }
  -
  -            if(value == null) {
  -                getLogger().warn("No JNDI value found for {}.", jndiName);
  -            } else if(! (value instanceof String)) {
  -                getLogger().warn("Value for {} is not a String.", jndiName);
  -            } else {
  -                ec.addProperty(jndiName, (String) value);
  -            }
  -        } else {
  -            getLogger().warn("Naming context is null, cannot lookup {}", jndiName);
  -        }
  -    }
  +    String jndiName = attributes.getValue(NAME_ATTRIBUTE);
   
  -    /**
  -     * @see org.apache.joran.Action#end.
  -     */
  -    public void end(final ExecutionContext ec, final String name) {
  +    if ((jndiName == null) || (jndiName.trim().length() < 1)) {
  +      getLogger().warn("Missing {} attribute, ignoring.", NAME_ATTRIBUTE);
  +    } else if (getNamingContext() != null) {
  +      Object value = null;
  +
  +      try {
  +        value = getNamingContext().lookup(jndiName);
  +      } catch (Exception e) {
  +        getLogger().error("Error looking up " + jndiName + ": ", e);
  +        ec.addError(new ErrorItem("Error looking up " + jndiName, e));
  +      }
  +
  +      if (value == null) {
  +        getLogger().warn("No JNDI value found for {}.", jndiName);
  +      } else if (!(value instanceof String)) {
  +        getLogger().warn("Value for {} is not a String.", jndiName);
  +      } else {
  +        ec.addProperty(jndiName, (String) value);
  +      }
  +    } else {
  +      getLogger().warn("Naming context is null, cannot lookup {}", jndiName);
       }
  +  }
   
  -
  +  /**
  +   * @see org.apache.joran.Action#end.
  +   */
  +  public void end(final ExecutionContext ec, final String name) {
  +  }
   }
   
   // End of class: JndiSubstitutionPropertyAction.java
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org