cedric 2002/07/11 09:44:24
Modified: src/share/org/apache/struts/taglib/tiles
InitDefinitionsTag.java
src/share/org/apache/struts/tiles
ActionComponentServlet.java
Log:
Use the latest definition factory.
Servlet is no more needed with Struts1.1. It shows a warning message if used
with Struts1.1
Revision Changes Path
1.2 +10 -10
jakarta-struts/src/share/org/apache/struts/taglib/tiles/InitDefinitionsTag.java
Index: InitDefinitionsTag.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/tiles/InitDefinitionsTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InitDefinitionsTag.java 25 Jun 2002 03:16:30 -0000 1.1
+++ InitDefinitionsTag.java 11 Jul 2002 16:44:24 -0000 1.2
@@ -63,7 +63,8 @@
package org.apache.struts.taglib.tiles;
import org.apache.struts.tiles.DefinitionsUtil;
-import org.apache.struts.tiles.ComponentDefinitionsFactory;
+import org.apache.struts.tiles.DefinitionsFactory;
+import org.apache.struts.tiles.DefinitionsFactoryConfig;
import org.apache.struts.tiles.DefinitionsFactoryException;
import org.apache.struts.tiles.ComponentDefinition;
import org.apache.struts.tiles.xmlDefinition.I18nFactorySet;
@@ -120,18 +121,17 @@
*/
public int doStartTag() throws JspException
{
- ComponentDefinitionsFactory factory =
DefinitionsUtil.getDefinitionsFactory(pageContext);
+ DefinitionsFactory factory =
DefinitionsUtil.getDefinitionsFactory(pageContext.getServletContext());
if(factory != null )
return SKIP_BODY;
- Map properties = new HashMap();
- // Read properties
- // Not so nice, but works for default factory ;-(
- properties.put( I18nFactorySet.DEFINITIONS_CONFIG_PARAMETER_NAME, filename);
+ DefinitionsFactoryConfig factoryConfig = new DefinitionsFactoryConfig();
+ factoryConfig.setFactoryClassname( classname );
+ factoryConfig.setDefinitionConfigFiles( filename );
try
{
- factory =
DefinitionsUtil.createDefinitionsFactory(pageContext.getServletContext(), properties,
classname);
+ factory =
DefinitionsUtil.createDefinitionsFactory(pageContext.getServletContext(),
factoryConfig);
}
catch( DefinitionsFactoryException ex )
{
1.3 +25 -8
jakarta-struts/src/share/org/apache/struts/tiles/ActionComponentServlet.java
Index: ActionComponentServlet.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/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 7 Jul 2002 23:15:36 -0000 1.2
+++ ActionComponentServlet.java 11 Jul 2002 16:44:24 -0000 1.3
@@ -82,6 +82,8 @@
import org.apache.struts.upload.MultipartRequestWrapper;
/**
+ * Action Servlet to be used with Tiles and Struts 1.0.x.
+ * For Struts 1.1, use TilesPlugin and eventualy TilesRequestProcessor.
* This servlet extends struts one. It adds channels and screens dispatching
* capabilities.
* We overide all methods that do request forward (i.e. 'processActionForward'
@@ -95,7 +97,7 @@
public class ActionComponentServlet extends ActionServlet
{
/** Definitions factory */
- private ComponentDefinitionsFactory definitionsFactory;
+ private DefinitionsFactory definitionsFactory;
/**
* Init method.
@@ -113,17 +115,32 @@
*/
public void initComponentDefinitionsMapping() throws ServletException //
IOException,
{
+ // Check struts version by checkin PlugIn classes existance.
+ try
+ {
+ Class plugInClass = Class.forName( "org.apache.struts.action.PlugIn" );
+ // Class exist ==> struts 1.1 or greater
+ log( "Warning - ActionComponentServlet class: This class is to be used with
Struts1.0.x only. "
+ + "Please modify web.xml to use regular ActionServlet class instead in
conjugaison "
+ + "with appropriate plugin declared in struts-config.xml." );
+ //return;
+ // Let create factory for backward compatibility
+ }
+ catch( ClassNotFoundException ex )
+ { // Not found ==> struts 1.0.x
+ }
+
try
{
- // init component instances
- definitionsFactory =
DefinitionsUtil.createDefinitionsFactory(getServletContext(), getServletConfig());
+ // create definition factory
+ definitionsFactory =
DefinitionsUtil.createDefinitionsFactory(getServletContext(), getServletConfig(),
true);
}
catch( DefinitionsFactoryException ex )
{
- log( "Fail to load Tiles definition factory", ex);
+ log( "Fail to load Tiles definition factory from ActionComponentServlet", ex);
throw new ServletException( ex.getMessage(), ex );
}
- log( "Tiles definition factory loaded" );
+ log( "Tiles definition factory loaded from ActionComponentServlet" );
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>