cedric 01/09/28 10:05:23 Modified: contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition XmlParser.java XmlDefinition.java I18nFactorySet.java FactorySet.java DefinitionsFactory.java contrib/tiles/src/share/org/apache/struts/tiles ActionComponentServlet.java Log: Correct the bug preventing Tiles running with latest commons-digester.jar. Add a log when factory is started. Revision Changes Path 1.2 +5 -3 jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition/XmlParser.java Index: XmlParser.java =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition/XmlParser.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- XmlParser.java 2001/08/01 14:36:42 1.1 +++ XmlParser.java 2001/09/28 17:05:22 1.2 @@ -50,7 +50,7 @@ "-//Apache Software Foundation//DTD Tiles Configuration//EN", "/org/apache/struts/tiles/resources/tiles-config.dtd", "-//Apache Software Foundation//DTD Components Configuration//EN", - "/org/apache/struts/tiles/resources/components-config.dtd", + "/org/apache/struts/tiles/resources/tiles-config.dtd", }; /** @@ -241,7 +241,7 @@ try { // set first object in stack - digester.clear(); + //digester.clear(); digester.push(definitions); // parse digester.parse(in); @@ -260,7 +260,7 @@ */ public static void main(String[] args) { - String filename = "E:/programs/jakarta-tomcat/webapps/wtiles-tutorial/WEB-INF/componentDefinitions.xml"; + String filename = "E:/programs/jakarta-tomcat/webapps/wtiles-struts/WEB-INF/tilesDefinitions.xml"; //String filename = "E:/programs/jakarta-tomcat/webapps/wtiles-channel/WEB-INF/componentDefinitions.xml"; //String filename2 = "E:/programs/jakarta-tomcat/webapps/wtiles-tutorial/WEB-INF/componentDefinitions.xml"; @@ -290,6 +290,8 @@ try { XmlParser parser = new XmlParser(); + parser.setValidating(true); + parser.setDetailLevel(1); XmlDefinitionsSet definitions = new XmlDefinitionsSet(); System.out.println( " Parse file" ); parser.parse( input, definitions); 1.2 +1 -1 jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition/XmlDefinition.java Index: XmlDefinition.java =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/tiles/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 2001/08/01 14:36:42 1.1 +++ XmlDefinition.java 2001/09/28 17:05:22 1.2 @@ -13,7 +13,7 @@ public class XmlDefinition extends ComponentDefinition { /** Debug flag */ - static public final boolean debug = true; + static public final boolean debug = false; /** * Extends attribute value. */ 1.2 +23 -2 jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition/I18nFactorySet.java Index: I18nFactorySet.java =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition/I18nFactorySet.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- I18nFactorySet.java 2001/08/01 14:36:42 1.1 +++ I18nFactorySet.java 2001/09/28 17:05:22 1.2 @@ -135,6 +135,9 @@ System.out.println( "Bad format for parameter '" + PARSER_DETAILS_PARAMETER_NAME + "'. Integer expected."); + servletContext.log( "Tiles factory init : Bad format for parameter '" + + PARSER_DETAILS_PARAMETER_NAME + + "'. Integer expected."); } } // end if @@ -165,7 +168,9 @@ { initFactory( servletContext, filename ); if( DefinitionsUtil.userDebugLevel > 0) + { System.out.println( "Factory initialized from file '" + filename + "'." ); + } } catch( FileNotFoundException ex ) { // Do nothing @@ -197,6 +202,8 @@ loaded = new HashMap(); defaultFactory = createDefaultFactory( servletContext ); + if(debug) + System.out.println( "default factory:" + defaultFactory ); } /** @@ -224,8 +231,16 @@ XmlDefinitionsSet rootXmlConfig = parseXmlFiles( servletContext, "", null ); if( rootXmlConfig == null ) throw new FileNotFoundException(); + if(debug) + System.out.println( rootXmlConfig ); + rootXmlConfig.resolveInheritances(); - return new DefinitionsFactory( rootXmlConfig ); + + DefinitionsFactory factory = new DefinitionsFactory( rootXmlConfig ); + if( DefinitionsUtil.userDebugLevel > DefinitionsUtil.NO_DEBUG ) + System.out.println( "factory loaded : " + factory ); + + return factory; } /** @@ -319,7 +334,7 @@ loaded.put( lastPostfix, factory ); // User help if( DefinitionsUtil.userDebugLevel > DefinitionsUtil.NO_DEBUG ) - System.out.println( factory ); + System.out.println( "factory loaded : " + factory ); // return last available found ! return factory; } @@ -409,7 +424,11 @@ { InputStream input = servletContext.getResourceAsStream(filename); if(input == null ) + { + //if(debug) + //System.out.println( "Can't open file '" + filename + "'" ); return xmlDefinitions; + } // Check if parser already exist. // Doesn't seem to work yet. @@ -470,5 +489,7 @@ name = name.substring( 0, dotIndex); return name + postfix + ext; } + + } 1.2 +25 -9 jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition/FactorySet.java Index: FactorySet.java =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition/FactorySet.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FactorySet.java 2001/08/01 14:36:42 1.1 +++ FactorySet.java 2001/09/28 17:05:22 1.2 @@ -12,14 +12,15 @@ import javax.servlet.ServletContext; import java.util.Map; import java.util.HashMap; +import java.util.Iterator; /** * Component Definitions factory. - * This factory contains several factories identified by a key. The - * getDefinition() method first look for the factory key, retrieve or create this + * This factory contains several factories identified by a key. The + * getDefinition() method first look for the factory key, retrieve or create this * factory and then call getDefinition() on the found factory. */ -public abstract class FactorySet implements ComponentDefinitionsFactory +public abstract class FactorySet implements ComponentDefinitionsFactory { /** Loaded factories */ @@ -73,10 +74,10 @@ } // end if return (DefinitionsFactory)factory; } - + /** * Get a definition by its name. - * @throws DefinitionsFactoryException An error occur while getting + * @throws DefinitionsFactoryException An error occur while getting * definition. * @param name Name of requested definition * @param request Current servlet request. @@ -94,9 +95,9 @@ DefinitionsFactory factory = getFactory( key, request, servletContext); return factory.getDefinition( name, request, servletContext ); } - + /** - * Create a factory for specified key. + * Create a factory for specified key. * This method is called by getFactory() when the requested factory doesn't already exist. * Must return a factory, even a default one. * Real implementation need to provide this method. @@ -107,7 +108,7 @@ */ abstract protected DefinitionsFactory createFactory(Object key, ServletRequest request, ServletContext servletContext) throws DefinitionsFactoryException; - + /** * Init factory set. * @param servletContext Current servlet context @@ -119,8 +120,23 @@ /** * @roseuid 3AFA4BEF038F */ - public FactorySet() + public FactorySet() { factories = new HashMap(); } + + /** + * + */ + public String toString() + { + Iterator i = factories.values().iterator(); + StringBuffer buff = new StringBuffer( "all FactorySet's factory : \n" ); + while( i.hasNext() ) + { + buff.append( i.next().toString() ).append("\n"); + } + return buff.toString(); + } + } 1.2 +13 -6 jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition/DefinitionsFactory.java Index: DefinitionsFactory.java =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/xmlDefinition/DefinitionsFactory.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DefinitionsFactory.java 2001/08/01 14:36:42 1.1 +++ DefinitionsFactory.java 2001/09/28 17:05:22 1.2 @@ -21,17 +21,17 @@ * A factory for definitions. * This factory allows to retrieve definitions by their keys. */ -public class DefinitionsFactory +public class DefinitionsFactory { /** */ protected Map definitions; /** * Get a definition by its name. - * @throws DefinitionsFactoryException An error occur while getting + * @throws DefinitionsFactoryException An error occur while getting * definition. * @throws NoSuchDefinitionException No definition found for specified name - * Implementation can throw more accurate exception as a subclass of this + * Implementation can throw more accurate exception as a subclass of this * exception */ public ComponentDefinition getDefinition(String name, ServletRequest request, ServletContext servletContext) @@ -39,7 +39,7 @@ { return (ComponentDefinition)definitions.get(name); } - + /** * Put definition in set * @param definition @@ -61,7 +61,7 @@ // First, resolve inheritance xmlDefinitions.resolveInheritances(); - + // Walk thru xml set and copy each definitions. Iterator i = xmlDefinitions.getDefinitions().values().iterator(); while( i.hasNext() ) @@ -70,6 +70,13 @@ putDefinition( new ComponentDefinition( xmlDefinition) ); } // end loop } - + /** + * + */ + public String toString() + { + return definitions.toString(); + } + } 1.3 +12 -4 jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/ActionComponentServlet.java Index: ActionComponentServlet.java =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/ActionComponentServlet.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ActionComponentServlet.java 2001/09/10 12:50:45 1.2 +++ ActionComponentServlet.java 2001/09/28 17:05:23 1.3 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/ActionComponentServlet.java,v 1.2 2001/09/10 12:50:45 cedric Exp $ - * $Revision: 1.2 $ - * $Date: 2001/09/10 12:50:45 $ + * $Header: /home/cvs/jakarta-struts/contrib/tiles/src/share/org/apache/struts/tiles/ActionComponentServlet.java,v 1.3 2001/09/28 17:05:23 cedric Exp $ + * $Revision: 1.3 $ + * $Date: 2001/09/28 17:05:23 $ * $Author: cedric $ * */ @@ -12,7 +12,13 @@ import java.util.Locale; -import org.apache.struts.action.*; +import org.apache.struts.action.ActionServlet; +import org.apache.struts.action.ActionForward; +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 javax.servlet.*; import javax.servlet.http.*; import java.io.InputStream; @@ -60,8 +66,10 @@ } catch( DefinitionsFactoryException ex ) { + log( "Fail to load Tiles definition factory", ex); throw new ServletException( ex.getMessage(), ex ); } + log( "Tiles definition factory loaded" ); }