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]>