cedric      2002/10/10 09:32:27

  Modified:    src/share/org/apache/struts/tiles/xmlDefinition
                        XmlDefinition.java XmlAttribute.java
                        I18nFactorySet.java
               src/share/org/apache/struts/tiles TilesServlet.java
                        TilesRequestProcessor.java TilesPlugin.java
                        DefinitionsUtil.java ComponentDefinition.java
               src/share/org/apache/struts/taglib/tiles InsertTag.java
                        DefinitionTag.java
               doc/userGuide dev_tiles.xml
               src/share/org/apache/struts/tiles/actions
                        DefinitionDispatcherAction.java
  Log:
  Switch to use commons-logging package.
  This solve "Bugzilla Bug 11757 Tiles code needs to be converted to use Commons 
Logging"
  
  Revision  Changes    Path
  1.2       +12 -11    
jakarta-struts/src/share/org/apache/struts/tiles/xmlDefinition/XmlDefinition.java
  
  Index: XmlDefinition.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/xmlDefinition/XmlDefinition.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XmlDefinition.java        25 Jun 2002 03:15:43 -0000      1.1
  +++ XmlDefinition.java        10 Oct 2002 16:32:26 -0000      1.2
  @@ -64,6 +64,8 @@
   
   import org.apache.struts.tiles.ComponentDefinition;
   import org.apache.struts.tiles.NoSuchDefinitionException;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   import java.util.Iterator;
   
  @@ -77,8 +79,8 @@
      */
     private String inherit;
   
  -    /** Debug flag */
  -  static public final boolean debug = false;
  +    /** Commons Logging instance. */
  +   protected static Log log = LogFactory.getLog(XmlDefinition.class);
   
     /**
      * Use for resolving inheritance.
  @@ -149,7 +151,7 @@
        * First, resolve parent's inheritance, then set path to the parent's path.
        * Also copy attributes setted in parent, and not set in child
        * If instance doesn't extends something, do nothing.
  -     * @throws NoSuchInstanceException If a inheritance can be solved.
  +     * @throws NoSuchDefinitionException If a inheritance can be solved.
        */
     public void resolveInheritance( XmlDefinitionsSet definitionsSet )
       throws NoSuchDefinitionException
  @@ -158,10 +160,9 @@
       if( isVisited || !isExtending() )
         return;
   
  -    if( debug)
  -      System.out.println( "Resolve definition for child name='"
  -                           + getName()    + "' extends='"
  -                           + getExtends() + "'." );
  +    if(log.isDebugEnabled())
  +      log.debug( "Resolve definition for child name='" + getName()
  +              + "' extends='" + getExtends() + "'.");
   
         // Set as visited to avoid endless recurisvity.
       setIsVisited( true );
  @@ -173,7 +174,7 @@
         String msg = "Error while resolving definition inheritance: child '"
                              + getName() +    "' can't find its ancestor '"
                              + getExtends() + "'. Please check your description 
file.";
  -      System.out.println( msg );
  +      log.error( msg );
           // to do : find better exception
         throw new NoSuchDefinitionException( msg );
         }
  
  
  
  1.2       +3 -6      
jakarta-struts/src/share/org/apache/struts/tiles/xmlDefinition/XmlAttribute.java
  
  Index: XmlAttribute.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/xmlDefinition/XmlAttribute.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XmlAttribute.java 25 Jun 2002 03:15:43 -0000      1.1
  +++ XmlAttribute.java 10 Oct 2002 16:32:26 -0000      1.2
  @@ -62,10 +62,8 @@
   
   package org.apache.struts.tiles.xmlDefinition;
   
  -import org.apache.struts.tiles.AttributeDefinition;
   import org.apache.struts.tiles.DirectStringAttribute;
   import org.apache.struts.tiles.PathAttribute;
  -import org.apache.struts.tiles.DefinitionAttribute;
   import org.apache.struts.tiles.DefinitionNameAttribute;
   import org.apache.struts.tiles.UntyppedAttribute;
   
  @@ -229,7 +227,6 @@
       {
       if( body.length() == 0 )
         return;
  -    //System.out.println("body set to'" + body + "'");
       setValue(body);
       }
     /**
  
  
  
  1.4       +31 -33    
jakarta-struts/src/share/org/apache/struts/tiles/xmlDefinition/I18nFactorySet.java
  
  Index: I18nFactorySet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/xmlDefinition/I18nFactorySet.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- I18nFactorySet.java       11 Jul 2002 16:48:25 -0000      1.3
  +++ I18nFactorySet.java       10 Oct 2002 16:32:26 -0000      1.4
  @@ -65,6 +65,8 @@
   import org.apache.struts.tiles.DefinitionsFactoryException;
   import org.apache.struts.tiles.FactoryNotFoundException;
   import org.apache.struts.tiles.DefinitionsUtil;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   import javax.servlet.ServletRequest;
   import javax.servlet.ServletContext;
  @@ -98,8 +100,9 @@
   */
   public class I18nFactorySet extends FactorySet
   {
  -    /** Debug flag */
  -  static public final boolean debug = false;
  +    /** Commons Logging instance. */
  +  protected static Log log = LogFactory.getLog(I18nFactorySet.class);
  +
       /** Config file parameter name
        * @deprecated use DEFINITIONS_CONFIG_PARAMETER_NAME
        */
  @@ -195,10 +198,7 @@
         }
        catch( NumberFormatException ex )
         {
  -      System.out.println( "Bad format for parameter '"
  -                        + PARSER_DETAILS_PARAMETER_NAME
  -                        + "'. Integer expected.");
  -      servletContext.log( "Tiles factory init : Bad format for parameter '"
  +      log.error( "Bad format for parameter '"
                           + PARSER_DETAILS_PARAMETER_NAME
                           + "'. Integer expected.");
         }
  @@ -213,12 +213,12 @@
       try
         {
         initFactory( servletContext, filename );
  -          if( DefinitionsUtil.userDebugLevel > 0)
  -            System.out.println( "Factory initialized from file '" + filename + "'." 
);
  +          if(log.isDebugEnabled())
  +            log.debug( "Factory initialized from file '" + filename + "'." );
         }
        catch( FileNotFoundException ex )
           { // A filename is specified, throw appropriate error.
  -          System.out.println( ex.getMessage() + " : Can't find file '" +filename + 
"'" );
  +          log.error( ex.getMessage() + " : Can't find file '" +filename + "'" );
             throw new FactoryNotFoundException( ex.getMessage() + " : Can't find file 
'" +filename + "'" ) ;
           } // end catch
         }
  @@ -230,9 +230,9 @@
           try
             {
             initFactory( servletContext, filename );
  -          if( DefinitionsUtil.userDebugLevel > 0)
  +          if(log.isInfoEnabled())
               {
  -            System.out.println( "Factory initialized from file '" + filename + "'." 
);
  +            log.info( "Factory initialized from file '" + filename + "'." );
               }
             }
            catch( FileNotFoundException ex )
  @@ -265,8 +265,8 @@
   
       loaded = new HashMap();
       defaultFactory = createDefaultFactory( servletContext );
  -    if(debug)
  -      System.out.println( "default factory:" + defaultFactory );
  +    if(log.isDebugEnabled())
  +      log.debug( "default factory:" + defaultFactory );
     }
   
     /**
  @@ -297,12 +297,12 @@
   
       rootXmlConfig.resolveInheritances();
   
  -    if(debug)
  -      System.out.println( rootXmlConfig );
  +    if(log.isDebugEnabled())
  +      log.debug( rootXmlConfig );
   
       DefinitionsFactory factory = new DefinitionsFactory( rootXmlConfig );
  -    if( DefinitionsUtil.userDebugLevel > DefinitionsUtil.NO_DEBUG )
  -      System.out.println( "factory loaded : " + factory );
  +    if(log.isInfoEnabled())
  +      log.info( "factory loaded : " + factory );
   
       return factory;
       }
  @@ -325,7 +325,7 @@
       }
      catch( ClassCastException ex )
       { //
  -    System.out.println( "Error - I18nFactorySet.getDefinitionsFactoryKey" );
  +    log.error( "I18nFactorySet.getDefinitionsFactoryKey" );
       ex.printStackTrace();
       }
   
  @@ -396,8 +396,8 @@
       factory = new DefinitionsFactory(rootXmlConfig);
       loaded.put( lastPostfix, factory );
         // User help
  -    if( DefinitionsUtil.userDebugLevel > DefinitionsUtil.NO_DEBUG )
  -      System.out.println( "factory loaded : " + factory );
  +    if(log.isDebugEnabled())
  +      log.debug( "factory loaded : " + factory );
         // return last available found !
       return factory;
       }
  @@ -408,8 +408,6 @@
        * Method copied from java.util.ResourceBundle
        * @param baseName the base bundle name
        * @param locale the locale
  -     * @param names the vector used to return the names of the bundles along
  -     * the search path.
        */
       private static List calculatePostixes(String baseName, Locale locale) {
           final List result = new ArrayList(MAX_BUNDLES_SEARCHED);
  @@ -502,8 +500,8 @@
           // If still nothing found, this mean no config file is associated
            if(input == null )
           {
  -        //if(debug)
  -          //System.out.println( "Can't open file '" + filename + "'" );
  +        if(log.isDebugEnabled())
  +          log.debug( "Can't open file '" + filename + "'" );
           return xmlDefinitions;
           }
   
  @@ -512,8 +510,8 @@
         //if( xmlParser == null )
         if( true )
           {  // create it
  -        if(debug)
  -          System.out.println( "Create xmlParser");
  +        //if(log.isDebugEnabled())
  +          //log.debug( "Create xmlParser");
           xmlParser = new XmlParser();
           xmlParser.setValidating(isValidatingParser);
           xmlParser.setDetailLevel(parserDetailLevel);
  @@ -521,8 +519,8 @@
           // Check if definition set already exist.
         if( xmlDefinitions == null )
           {  // create it
  -        if(debug)
  -          System.out.println( "Create xmlDefinitions");
  +        //if(log.isDebugEnabled())
  +          //log.debug( "Create xmlDefinitions");
           xmlDefinitions = new XmlDefinitionsSet();
           }
   
  @@ -530,9 +528,9 @@
            }
           catch( SAXException ex )
            {
  -      if( debug)
  +      if(log.isDebugEnabled())
           {
  -        System.out.println( "Error while parsing file '"  + filename + "'.");
  +        log.debug( "Error while parsing file '"  + filename + "'.");
           ex.printStackTrace();
           }
            throw new DefinitionsFactoryException( "Error while parsing file '" + 
filename + "'. " + ex.getMessage(), ex );
  
  
  
  1.3       +19 -10    
jakarta-struts/src/share/org/apache/struts/tiles/TilesServlet.java
  
  Index: TilesServlet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/TilesServlet.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TilesServlet.java 19 Jul 2002 09:40:22 -0000      1.2
  +++ TilesServlet.java 10 Oct 2002 16:32:27 -0000      1.3
  @@ -64,9 +64,10 @@
   
   import org.apache.struts.tiles.DefinitionsUtil;
   import org.apache.struts.tiles.DefinitionsFactoryException;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   import javax.servlet.ServletException;
  -import javax.servlet.ServletContext;
   import javax.servlet.http.HttpServlet;
   
   
  @@ -80,6 +81,8 @@
   
   public class TilesServlet extends HttpServlet
   {
  +    /** Commons Logging instance. */
  +  protected static Log log = LogFactory.getLog(TilesServlet.class);
   
       /**
        * Initialize this servlet
  @@ -88,8 +91,8 @@
        */
     public void init() throws ServletException
     {
  -  log(  "Start Tiles initialization");
  -  System.out.println( "Start Tiles initialization" );
  +  if(log.isInfoEnabled())
  +    log.info("Start Tiles initialization");
     super.init();
   
       // Create tiles definitions config object
  @@ -101,18 +104,24 @@
       }
      catch(Exception ex)
       {
  -    throw new ServletException( "Can't populate DefinitionsFactoryConfig class from 
'web.xml': " + ex.getMessage() );
  +    String msg="Can't populate DefinitionsFactoryConfig class from 'web.xml'";
  +    if (log.isErrorEnabled())
  +      log.error(msg, ex);
  +    throw new ServletException( msg + ex.getMessage() );
       }
   
     try
       {
  -    System.out.println( "Try to load Tiles factory" );
  +    if(log.isInfoEnabled())
  +        log.info("Try to load Tiles factory");
       DefinitionsUtil.createDefinitionsFactory(getServletContext(), factoryConfig );
  -    log(  "Tiles Factory loaded");
  +    if(log.isInfoEnabled())
  +        log.info("Tiles Factory successfully loaded");
       }
      catch( DefinitionsFactoryException ex )
       {
  -      log(  "Tiles Factory load fail !", ex);
  +      if(log.isErrorEnabled())
  +          log.error("Tiles Factory load fail !", ex);
       throw new ServletException( ex );
       }
   
  
  
  
  1.7       +31 -28    
jakarta-struts/src/share/org/apache/struts/tiles/TilesRequestProcessor.java
  
  Index: TilesRequestProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/TilesRequestProcessor.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TilesRequestProcessor.java        29 Aug 2002 13:24:03 -0000      1.6
  +++ TilesRequestProcessor.java        10 Oct 2002 16:32:27 -0000      1.7
  @@ -62,27 +62,16 @@
   
   package org.apache.struts.tiles;
   
  -import org.apache.struts.taglib.tiles.ComponentConstants;
  -
  -import java.util.Locale;
  -
   import org.apache.struts.action.RequestProcessor;
   import org.apache.struts.action.ActionServlet;
  -import org.apache.struts.action.ActionForward;
   import org.apache.struts.config.ForwardConfig;
  -import org.apache.struts.action.ActionMapping;
  -import org.apache.struts.action.ActionErrors;
  -import org.apache.struts.action.ActionForm;
  -import org.apache.struts.action.Action;
   import org.apache.struts.config.ApplicationConfig;
   
   import javax.servlet.*;
   import javax.servlet.http.*;
  -import java.io.InputStream;
   import java.io.IOException;
  -import java.io.FileNotFoundException;
  -import org.apache.struts.taglib.html.Constants;
  -import org.apache.struts.upload.MultipartRequestWrapper;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   /**
    * <p><strong>RequestProcessor</strong> contains the processing logic that
  @@ -98,10 +87,12 @@
    */
   public class TilesRequestProcessor extends RequestProcessor
   {
  -    /** Debug flag */
  -  public static final boolean debug = false;
       /** Definitions factory */
     private DefinitionsFactory definitionsFactory;
  +     /**
  +      * Commons Logging instance.
  +      */
  +     protected static Log log = LogFactory.getLog(RequestProcessor.class);
   
       /**
        * Initialize this request processor instance.
  @@ -127,12 +118,18 @@
       definitionsFactory = DefinitionsUtil.getDefinitionsFactory(getServletContext());
       if( definitionsFactory == null )
         {  // problem !
  -      log( "Error - TilesRequestProcessor : Definition Factory not found for subapp 
'"
  -          + appConfig.getPrefix() + "'. "
  -          + "Do you have declared appropriate plugin in struts-config.xml ?" );
  +        if(log.isErrorEnabled())
  +          {
  +            log.error( "Definition Factory not found for subapp '"
  +                + appConfig.getPrefix() + "'. "
  +                + "Have you declared the appropriate plugin in struts-config.xml ?" 
);
  +          }
         return;
         }
  -    log( "Tiles definition factory found for request processor '" + 
appConfig.getPrefix() + "'.");
  +    if(log.isInfoEnabled())
  +      {
  +            log.info("Tiles definition factory found for request processor '" + 
appConfig.getPrefix() + "'.");
  +      }
       }
   
   
  @@ -211,6 +208,10 @@
           }
          catch( java.lang.InstantiationException ex )
           {
  +        if (log.isErrorEnabled())
  +          {
  +          log.error("Can't create associated controller", ex);
  +          }
           throw new ServletException( "Can't create associated controller", ex );
           }
          catch( DefinitionsFactoryException ex )
  @@ -231,6 +232,8 @@
   
         // If request comes from a previous Tile, do an include.
         // This allows to insert an action in a Tile.
  +    if(log.isDebugEnabled())
  +      log.debug( "uri=" + uri + " doInclude=" + doInclude);
       if( doInclude )
         doInclude(uri, request, response);
        else
  @@ -282,20 +285,20 @@
         return;
         }
   
  -    if(debug)
  -      System.out.println( "processActionForward("
  +    if(log.isDebugEnabled())
  +      log.debug( "processForwardConfig("
                           + forward.getPath() + ", "
                           + forward.getContextRelative() + ")" );
   
         // Try to process the definition.
       if (processTilesDefinition( forward.getPath(), forward.getContextRelative(), 
request, response))
         {
  -      if(debug)
  -        System.out.println( "  '" +forward.getPath() + "' - processed as 
definition" );
  +      if(log.isDebugEnabled())
  +        log.debug( "  '" +forward.getPath() + "' - processed as definition" );
         return;
         }
  -    if(debug)
  -      System.out.println( "  '" +forward.getPath() + "' - processed as uri" );
  +    if(log.isDebugEnabled())
  +      log.debug( "  '" +forward.getPath() + "' - processed as uri" );
         // forward doesn't contains a definition, let parent do processing
       super.processForwardConfig(request, response, forward );
       }
  
  
  
  1.4       +26 -17    
jakarta-struts/src/share/org/apache/struts/tiles/TilesPlugin.java
  
  Index: TilesPlugin.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/TilesPlugin.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TilesPlugin.java  19 Jul 2002 10:03:03 -0000      1.3
  +++ TilesPlugin.java  10 Oct 2002 16:32:27 -0000      1.4
  @@ -70,7 +70,8 @@
   import org.apache.struts.action.ActionServlet;
   import org.apache.struts.action.RequestProcessor;
   
  -import org.apache.commons.beanutils.BeanUtils;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   import java.util.Map;
   
  @@ -104,8 +105,8 @@
    */
   public class TilesPlugin implements PlugIn {
   
  -    /** Debug flag */
  -  public static final boolean debug = true;
  +    /** Commons Logging instance. */
  +  protected static Log log = LogFactory.getLog(TilesPlugin.class);
       /** Associated definition factory */
     protected DefinitionsFactory definitionFactory;
   
  @@ -133,10 +134,9 @@
     definitionFactory = DefinitionsUtil.getDefinitionsFactory( 
servlet.getServletContext() );
     if( definitionFactory != null )
       {
  -    if(debug)
  +    if(log.isInfoEnabled())
         {
  -      System.out.println( "Info - TilesPlugin : factory already exists. No new 
creation." );
  -      servlet.log( "Info - TilesPlugin : factory already exists. No new creation." 
);
  +      log.info("Factory already exists. No new creation." );
         }
       return;
       } // end if
  @@ -150,8 +150,12 @@
       {
       throw new ServletException( ex );
       }
  +    if(log.isInfoEnabled())
  +      {
  +      log.info( "Tiles definition factory loaded for processor '" + 
config.getPrefix() + "'." );
  +    }
   
  -  servlet.log( "Tiles definition factory loaded for processor '" + 
config.getPrefix() + "'." );
  +  //servlet.log( "Tiles definition factory loaded for processor '" + 
config.getPrefix() + "'." );
     }
   
       /**
  @@ -185,8 +189,8 @@
       }
      catch(Exception ex)
       {
  -    if( debug )
  -      ex.printStackTrace();
  +    if(log.isDebugEnabled())
  +      log.debug( "", ex);
       throw new UnavailableException( "Can't populate DefinitionsFactoryConfig class 
from 'web.xml': " + ex.getMessage() );
       }
       // Get init parameters from struts-config.xml
  @@ -197,8 +201,8 @@
       }
      catch(Exception ex)
       {
  -    if( debug )
  -      ex.printStackTrace();
  +    if(log.isDebugEnabled())
  +      log.debug( "", ex);
       throw new UnavailableException( "Can't populate DefinitionsFactoryConfig class 
from '"
                                       + config.getPrefix() + "/struts-config.xml':"
                                       + ex.getMessage() );
  @@ -231,8 +235,10 @@
     if( plugIns[index] != this )
       {
       String msg = "Can't initialize tiles definition factory : plugin configuration 
object not found.";
  -    System.out.println( msg );
  -    servlet.log( msg );
  +    if(log.isFatalEnabled())
  +    {
  +        log.fatal(msg);
  +    }
       throw new ServletException( msg );
       } // end if
       // Get plugin
  @@ -272,7 +278,10 @@
       if( !tilesProcessorClass.isAssignableFrom( configProcessorClass))
         {  // Not compatible
         String msg = "TilesPlugin : Specified RequestProcessor not compatible with 
TilesRequestProcessor";
  -      System.out.println( msg );
  +        if(log.isFatalEnabled())
  +        {
  +            log.fatal(msg);
  +        }
         throw new ServletException( msg );
         } // end if
       }
  
  
  
  1.4       +21 -31    
jakarta-struts/src/share/org/apache/struts/tiles/DefinitionsUtil.java
  
  Index: DefinitionsUtil.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/DefinitionsUtil.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DefinitionsUtil.java      11 Jul 2002 17:37:01 -0000      1.3
  +++ DefinitionsUtil.java      10 Oct 2002 16:32:27 -0000      1.4
  @@ -65,22 +65,18 @@
   import javax.servlet.jsp.PageContext;
   import javax.servlet.ServletConfig;
   import javax.servlet.ServletContext;
  -import javax.servlet.ServletException;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.ServletRequest;
   
   import java.util.Map;
   import java.util.HashMap;
   import java.util.Enumeration;
  -import java.io.FileNotFoundException;
  -import java.io.IOException;
   
  -import org.apache.struts.tiles.definition.ReloadableDefinitionsFactory;
   import org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper;
  -import org.apache.struts.tiles.xmlDefinition.I18nFactorySet;
   import org.apache.struts.taglib.tiles.ComponentConstants;
   
  -import org.apache.commons.beanutils.BeanUtils;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   /**
    * Utilities class for definitions factory.
  @@ -89,6 +85,8 @@
    */
   public class DefinitionsUtil implements ComponentConstants
   {
  +    /** Commons Logging instance. */
  +  protected static Log log = LogFactory.getLog(DefinitionsUtil.class);
   
       /** Global user defined debug level */
     public static int userDebugLevel = 0;
  @@ -120,15 +118,10 @@
       }
   
      /**
  -   * Create Definition factory.
  -   * If
  -   * Create MapperCollection, and put it in appropriate servlet context.
  -   * This method is used to initialize Component Instances. It is usually
  -   * called by the initialization servlet.
  -   * @param servletContext
  -   * @return newly created MapperCollection.
  -   * @throws DefinitionsFactoryException If an error occur while initializing 
factory
  -   * @deprecated Use createDefinitionsFactory instead.
  +   * Init user debug level.
  +   *
  +   * @param servletConfig
  +   * @deprecated Use commons-logging package instead.
      */
     public static void initUserDebugLevel(ServletConfig servletConfig)
     {
  @@ -144,12 +137,12 @@
         int level = Integer.parseInt( str );
         setUserDebugLevel( level );
         if( userDebugLevel > 1 )
  -        System.out.println( "Component Definitions debug level = " +  
userDebugLevel );
  +        log.debug( "Component Definitions debug level = " +  userDebugLevel );
         }
       }
      catch(Exception ex)
       {  // silently fail
  -    System.out.println( "Set user level fail" );
  +    log.debug( "Set user level fail" );
       ex.printStackTrace();
       }
     }
  @@ -338,7 +331,7 @@
      * Get a definition by its name.
      * First, retrieve definition factory, and then get requested definition.
      * Throw appropriate exception if definition or definition factory is not found.
  -   * @param name Name of requested definition.
  +   * @param definitionName Name of requested definition.
      * @param request Current servelet request
      * @param servletContext current servlet context
      * @throws FactoryNotFoundException Can't find definition factory.
  @@ -364,9 +357,8 @@
      * Get a component / template definition by its name.
      * First, retrieve instance factory, and then get requested instance.
      * Throw appropriate exception if definition is not found.
  -   * @param name Name of requested definition.
  -   * @param request Current servelet request
  -   * @param servletContext current servlet context
  +   * @param definitionName Name of requested definition.
  +   * @param pageContext Current pageContext
      * @throws FactoryNotFoundException Can't find definition factory.
      * @throws DefinitionsFactoryException General error in factory while getting 
definition.
      * @throws NoSuchDefinitionException No definition found for specified name
  @@ -430,11 +422,11 @@
   
     /**
      * Populate Definition Factory Config from web.xml properties.
  -   * @param config Definition Factory Config to populate.
  -   * @param servletContext Current servlet context containing web.xml properties.
  +   * @param factoryConfig Definition Factory Config to populate.
  +   * @param servletConfig Current servlet config containing web.xml properties.
      * @exception IllegalAccessException if the caller does not have
      *  access to the property accessor method
  -   * @exception InvocationTargetException if the property accessor method
  +   * @exception java.lang.reflect.InvocationTargetException if the property 
accessor method
      *  throws an exception
      * @see org.apache.commons.beanutils.BeanUtil
      * @since tiles 20020708
  @@ -449,11 +441,9 @@
     /**
      * Create FactoryConfig and initialize it from web.xml.
      *
  -   * @param servlet ActionServlet that is managing all the sub-applications
  -   *  in this web application
  -   * @param config ApplicationConfig for the sub-application with which
  +   * @param servletConfig ServletConfig for the sub-application with which
      *  this plug in is associated
  -   * @exception ServletException if this <code>PlugIn</code> cannot
  +   * @exception DefinitionsFactoryException if this <code>PlugIn</code> cannot
      *  be successfully initialized
      */
     static protected DefinitionsFactoryConfig readFactoryConfig(ServletConfig 
servletConfig)
  
  
  
  1.2       +16 -23    
jakarta-struts/src/share/org/apache/struts/tiles/ComponentDefinition.java
  
  Index: ComponentDefinition.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/ComponentDefinition.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ComponentDefinition.java  25 Jun 2002 03:14:49 -0000      1.1
  +++ ComponentDefinition.java  10 Oct 2002 16:32:27 -0000      1.2
  @@ -63,13 +63,13 @@
   package org.apache.struts.tiles;
   
   import org.apache.struts.tiles.Controller;
  -import org.apache.struts.action.Action;
   
   import java.util.Map;
   import java.util.HashMap;
  -import java.util.Iterator;
   import java.io.Serializable;
  -import org.apache.struts.taglib.tiles.DefinitionTagSupport;
  +
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   /**
    * Definition of a template / component attributes.
  @@ -78,8 +78,8 @@
    */
   public class ComponentDefinition implements Serializable
   {
  -  /** Debug flag */
  -  public static final boolean debug = false;
  +    /** Commons Logging instance. */
  +  protected static Log log = LogFactory.getLog(ComponentDefinition.class);
   
     /**
      * Definition name
  @@ -118,7 +118,6 @@
     private Controller controllerInstance;
   
     /**
  -   * @return void
      * Sets the value of the attributes property.
      *
      * @param aAttributes the new value of the attributes property
  @@ -193,7 +192,6 @@
       return name;}
   
     /**
  -   * @return void
   * Sets the value of the name property.
   *
   * @param aName the new value of the name property
  @@ -215,7 +213,6 @@
      * Sets the value of the path property.
      *
      * @param aPath the new value of the path property
  -   * @return void
      */
     public void setPage(String page)
       {
  @@ -233,7 +230,6 @@
       }
   
     /**
  -   * @return void
      * Sets the value of the path property.
      *
      * @param aPath the new value of the path property
  @@ -254,7 +250,6 @@
       }
   
     /**
  -   * @return void
      * Sets the value of the template property.
      * Same as setPath()
      *
  @@ -267,7 +262,7 @@
   
     /**
      * Access method for the role property.
  -   * @return   the current value of the template property
  +   * @return   the current value of the role property
      */
     public String getRole()
       {
  @@ -275,10 +270,9 @@
       }
   
     /**
  -   * @return void
      * Sets the value of the role property.
      *
  -   * @param template the new value of the path property
  +   * @param role the new value of the path property
      */
     public void setRole(String role)
       {
  @@ -478,9 +472,9 @@
      * URL is specified as a string.
      * @param url Url called locally
      */
  -  public void setController(String name)
  +  public void setController(String url)
     {
  -  this.controller = name;
  +  this.controller = url;
     }
   
       /**
  @@ -544,8 +538,8 @@
      static public Controller createController(String name, String controllerType)
          throws InstantiationException
      {
  -   if(debug)
  -     System.out.println( "Create controller name="+ name+", type=" + controllerType 
);
  +   if(log.isDebugEnabled())
  +     log.debug( "Create controller name="+ name+", type=" + controllerType );
      Controller controller = null;
   
      if( controllerType == null )
  @@ -570,7 +564,6 @@
        /**
         * Create a controller from specified classname
         * @param classname Controller classname.
  -      * @param controllerType Expected Controller type
         * @return org.apache.struts.tiles.Controller
         * @throws InstantiationException if an error occur while instanciating 
Controller :
         * (classname can't be instanciated, Illegal access with instanciated class,
  @@ -589,8 +582,8 @@
          instance = new ActionController( (Action)instance );
          } // end if
        */
  -     if(debug)
  -       System.out.println( "Controller created : " + instance );
  +     if(log.isDebugEnabled())
  +       log.debug( "Controller created : " + instance );
        return (Controller)instance;
        }
       catch( java.lang.ClassNotFoundException ex)
  
  
  
  1.4       +15 -15    
jakarta-struts/src/share/org/apache/struts/taglib/tiles/InsertTag.java
  
  Index: InsertTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/tiles/InsertTag.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- InsertTag.java    15 Aug 2002 09:35:56 -0000      1.3
  +++ InsertTag.java    10 Oct 2002 16:32:27 -0000      1.4
  @@ -72,19 +72,19 @@
   
   import org.apache.struts.tiles.AttributeDefinition;
   import org.apache.struts.tiles.DirectStringAttribute;
  -import org.apache.struts.tiles.PathAttribute;
   import org.apache.struts.tiles.DefinitionAttribute;
   import org.apache.struts.tiles.DefinitionNameAttribute;
   
   import org.apache.struts.taglib.tiles.util.TagUtils;
   
   import org.apache.struts.action.Action;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   import java.util.Map;
   import java.io.IOException;
   import java.io.PrintWriter;
   import javax.servlet.jsp.JspException;
  -import javax.servlet.jsp.tagext.TagSupport;
   import javax.servlet.jsp.PageContext;
   import javax.servlet.ServletException;
   import javax.servlet.http.HttpServletRequest;
  @@ -101,8 +101,8 @@
    */
   public class InsertTag extends DefinitionTagSupport implements PutTagParent, 
ComponentConstants, PutListTagParent
   {
  -    /** debug flag */
  -  public final static boolean debug = false;
  +    /** Commons Logging instance. */
  +  protected static Log log = LogFactory.getLog(InsertTag.class);
   
       /* JSP Tag attributes */
       /** Flush attribute value */
  @@ -617,7 +617,7 @@
           } // end catch
        catch( DefinitionsFactoryException ex )
           {
  -        if(debug)
  +        if(log.isDebugEnabled())
             ex.printStackTrace( );
             // Save exception to be able to show it later
           pageContext.setAttribute(Action.EXCEPTION_KEY, ex, 
PageContext.REQUEST_SCOPE);
  @@ -861,8 +861,8 @@
           } // end if
   
         try {
  -        if( DefinitionsUtil.userDebugLevel > DefinitionsUtil.NO_DEBUG )
  -          System.out.println( "insert page='" + page + "'." );
  +        if(log.isDebugEnabled())
  +          log.debug( "insert page='" + page + "'." );
   
            // set new context for included component.
           pageContext.setAttribute( ComponentConstants.COMPONENT_CONTEXT, 
subCompContext, pageContext.REQUEST_SCOPE);
  @@ -919,9 +919,9 @@
           if( msg == null )
             msg = ex.getMessage();
   
  -        if(debug)
  +        if(log.isDebugEnabled())
             {  // show full trace
  -          System.out.println( msg );
  +          log.debug( msg );
             ex.printStackTrace();
             pageContext.getOut().println(msg);
             ex.printStackTrace(new PrintWriter(pageContext.getOut(), true) );
  @@ -987,8 +987,8 @@
           }
          catch (IOException ex)
           {
  -        if(debug)
  -          System.out.println( "Can't write string '"+ value + "' : " + 
ex.getMessage() );
  +        if(log.isDebugEnabled())
  +          log.debug( "Can't write string '"+ value + "' : " + ex.getMessage() );
           pageContext.setAttribute(ComponentConstants.EXCEPTION_KEY, ex, 
PageContext.REQUEST_SCOPE);
           throw new JspException( "Can't write string '"+ value + "' : " + 
ex.getMessage() );
           }
  
  
  
  1.3       +13 -8     
jakarta-struts/src/share/org/apache/struts/taglib/tiles/DefinitionTag.java
  
  Index: DefinitionTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/tiles/DefinitionTag.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DefinitionTag.java        17 Jul 2002 09:24:29 -0000      1.2
  +++ DefinitionTag.java        10 Oct 2002 16:32:27 -0000      1.3
  @@ -66,8 +66,9 @@
   import org.apache.struts.tiles.ComponentDefinition;
   import org.apache.struts.tiles.AttributeDefinition;
   import org.apache.struts.tiles.UntyppedAttribute;
  -import org.apache.struts.tiles.DefinitionsUtil;
  -import javax.servlet.jsp.tagext.TagSupport;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
  +
   import javax.servlet.jsp.JspException;
   
   /**
  @@ -80,6 +81,8 @@
    */
   public class DefinitionTag extends DefinitionTagSupport implements PutTagParent, 
PutListTagParent
   {
  +    /** Commons Logging instance. */
  +  //protected static Log log = LogFactory.getLog(DefinitionTag.class);
   
       /* JSP Tag attributes */
                /**
  @@ -263,7 +266,8 @@
      if( extendsDefinition != null && !extendsDefinition.equals("") )
        {
        ComponentDefinition parentDef = TagUtils.getComponentDefinition( 
extendsDefinition, pageContext );
  -     //System.out.println( "parent definition=" + parentDef );
  +     //if(log.isDebugEnabled())
  +         //log.debug( "parent definition=" + parentDef );
        definition = new ComponentDefinition( parentDef );
        }  // end if
       else
  @@ -275,7 +279,8 @@
      if( role != null )
        definition.setRole(role);
   
  -   //System.out.println( "definition=" + definition );
  +   //if(log.isDebugEnabled())
  +       //log.debug( "definition=" + definition );
      return EVAL_BODY_INCLUDE;
      }
   
  
  
  
  1.9       +38 -24    jakarta-struts/doc/userGuide/dev_tiles.xml
  
  Index: dev_tiles.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/doc/userGuide/dev_tiles.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- dev_tiles.xml     31 Aug 2002 13:15:02 -0000      1.8
  +++ dev_tiles.xml     10 Oct 2002 16:32:27 -0000      1.9
  @@ -7,17 +7,17 @@
        <body>
                <chapter name="Tiles Guide">
                        <section href="tiles" name="The Tiles Document Assembly 
Framework">
  -                             <p>Tiles builds on the "include" feature provided by 
the JavaServer Page 
  -specification to provided a full-featured, robust framework for assembling 
  -presentation pages from component parts. Each part, or tile, can be 
  -reused as often as needed throughout your application. This reduces the 
  -amount of markup that needs to be maintained and makes it easier to 
  +                             <p>Tiles builds on the "include" feature provided by 
the JavaServer Page
  +specification to provided a full-featured, robust framework for assembling
  +presentation pages from component parts. Each part, or tile, can be
  +reused as often as needed throughout your application. This reduces the
  +amount of markup that needs to be maintained and makes it easier to
   change the look and feel of a website. </p>
                        </section>
                        <section href="features" name="Overview of Tiles Features">
                                <ul>
                                        <li>
  -                     Screen definitions 
  +                     Screen definitions
                        <ul>
                                                        <li>
                              Create a screen by assembling
  @@ -27,7 +27,7 @@
                              menu, body
                           </li>
                                                        <li>
  -                           Definitions can take place : 
  +                           Definitions can take place :
                              <ul>
                                                                        <li>
                                    in a centralized xml
  @@ -49,7 +49,7 @@
                                                </ul>
                                        </li>
                                        <li>
  -                     Templating 
  +                     Templating
                        <ul>
                                                        <li>
                                                                <strong>
  @@ -69,7 +69,7 @@
                                                </ul>
                                        </li>
                                        <li>
  -                     Layouts 
  +                     Layouts
                        <ul>
                                                        <li>
                              Define common page layouts and reuse
  @@ -93,7 +93,7 @@
                                                </ul>
                                        </li>
                                        <li>
  -                     Dynamic page building 
  +                     Dynamic page building
                        <ul>
                                                        <li>
                              Tiles are gather dynamically during
  @@ -107,7 +107,7 @@
                        Reuse of <strong>
                                                        <em>Tiles</em>
                                                </strong> /
  -                     Components 
  +                     Components
                        <ul>
                                                        <li>
                              If well defined, a
  @@ -172,11 +172,11 @@
                                </ul>
                        </section>
                        <section href="setup" name="Enabling your application for 
Tiles">
  -                             <p>The Tiles framework is bundled with Struts. It is 
not enabled by default. 
  +                             <p>The Tiles framework is bundled with Struts. It is 
not enabled by default.
   To enable Tiles you need to:
   </p>
                                <ul>
  -                                     <li>Setup the struts-tiles taglib in your 
<code>WEB-INF/web.xml</code> 
  +                                     <li>Setup the struts-tiles taglib in your 
<code>WEB-INF/web.xml</code>
         file to include the following tag library declarations:</li>
                                </ul>
                                <pre>&lt;taglib&gt;
  @@ -198,38 +198,52 @@
                 files.</li>
                                        <ul>
                                                <li>Create a file containing your 
definitions and give it a name (ex :
  -        <code>WEB-INF/tiles-defs.xml</code>). You can use the 
<code>tiles-defs.xml</code> 
  +        <code>WEB-INF/tiles-defs.xml</code>). You can use the 
<code>tiles-defs.xml</code>
           file from the Tiles application for a detailed example of the required 
syntax.</li>
                                                <li>Setup Tiles plugin in each 
<code>struts-config.xml</code> file corresponding to
         a module:</li>
                                        </ul>
                                        <pre>
    &lt;plug-in className="org.apache.struts.tiles.TilesPlugin" &gt;
  -   &lt;set-property property="definitions-config" 
  +   &lt;set-property property="definitions-config"
                       value="/WEB-INF/tiles-defs.xml,
                              /WEB-INF/tiles-tests-defs.xml" /&gt;
  -   &lt;set-property property="definitions-debug" value="0" /&gt;
  -   &lt;set-property property="definitions-parser-details" value="0" /&gt;
      &lt;set-property property="definitions-parser-validate" value="true" /&gt;
    &lt;/plug-in&gt;
   </pre>
                                        <ul>
                                                <li>
  -                                                     <strong>note:</strong> This 
plugin creates one single shared factory even if you have 
  -     several modules. The plugin first read factory parameters from 
<code>web.xml</code> and 
  -     then overload them with parameters from the first 
<code>struts-config.xml</code> file read. 
  +                                                     <strong>note:</strong> This 
plugin creates one single shared factory even if you have
  +     several modules. The plugin first read factory parameters from 
<code>web.xml</code> and
  +     then overload them with parameters from the first 
<code>struts-config.xml</code> file read.
        Read order is determined by the order of module declarations in 
<code>web.xml</code>.</li>
                                        </ul>
                                </ul>
  +        <ul>
  +          <li>
  +            <strong>note:</strong> Tiles framework now use the commons-logging 
package to output different
  +            information or debug data. Please refer to this package documentation 
to enable it. The
  +            simplest way to enable logging is to create two files under 
<code>WEB-INF/classes</code>:
  +                                     <pre>
  +          <strong>commons-logging.properties</strong>
  +          org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
  +          <strong>simplelog.properties</strong>
  +          # Logging detail level,
  +          # Must be one of ("trace", "debug", "info", "warn", "error", or "fatal").
  +          org.apache.commons.logging.simplelog.defaultlog=trace
  +</pre>
  +
  +          </li>
  +        </ul>
                        </section>
                        <section href="tiles" name="Tiles API Guide">
   <ul>
  -<li>A concise 
  +<li>A concise
   <a 
href="../api/org/apache/struts/tiles/package-summary.html#package_description">Tiles 
API Guide</a> is available to help you get started with the Tiles framework.</li>
   <li><a href="struts-tiles.html">Tiles Taglib Syntax Reference</a></li>
   </ul>
                        </section>
  -                     
  +
                        <section href="resources" name="Tiles Resources">
                                <p>
                                        <a 
href="http://www-106.ibm.com/developerworks/java/library/j-strutstiles.html?loc=j";>
  @@ -245,8 +259,8 @@
   <p>
                                        <b>
                                                <u>Developing applications with 
Tiles</u>
  -                                     </b> by Cedric Dumoulin and Ted Husted. 
  -Sample chapter from <u>Java Web Development with Struts</u>; available as a 
  +                                     </b> by Cedric Dumoulin and Ted Husted.
  +Sample chapter from <u>Java Web Development with Struts</u>; available as a
   <u>free download</u> (PDF).
   </p>
   -->
  
  
  
  1.3       +10 -7     
jakarta-struts/src/share/org/apache/struts/tiles/actions/DefinitionDispatcherAction.java
  
  Index: DefinitionDispatcherAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/tiles/actions/DefinitionDispatcherAction.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DefinitionDispatcherAction.java   11 Jul 2002 16:46:40 -0000      1.2
  +++ DefinitionDispatcherAction.java   10 Oct 2002 16:32:27 -0000      1.3
  @@ -66,14 +66,14 @@
   
   import java.io.IOException;
   import java.io.PrintWriter;
  -import javax.servlet.ServletException;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
  -import javax.servlet.http.HttpSession;
   import org.apache.struts.action.Action;
   import org.apache.struts.action.ActionForm;
   import org.apache.struts.action.ActionForward;
   import org.apache.struts.action.ActionMapping;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   
   /**
  @@ -110,6 +110,8 @@
    */
   
   public final class DefinitionDispatcherAction extends Action {
  +    /** Commons Logging instance. */
  +   protected static Log log = LogFactory.getLog(DefinitionDispatcherAction.class);
   
       /**
        * Process the specified HTTP request, and create the corresponding HTTP
  @@ -153,7 +155,8 @@
           {
             // Read definition from factory, but we can create it here.
           ComponentDefinition definition = DefinitionsUtil.getDefinition( name, 
request, getServlet().getServletContext() );
  -        System.out.println("get Definition " + definition );
  +        if(log.isDebugEnabled())
  +            log.debug("get Definition " + definition );
           DefinitionsUtil.setActionDefinition( request, definition);
           }
          catch( FactoryNotFoundException ex )
  
  
  

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

Reply via email to