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" );
}