cedric 2002/07/11 10:37:01 Modified: src/share/org/apache/struts/tiles DefinitionsUtil.java TilesPlugin.java Log: Remove references to the not yet (maybe never) released ConfigurableDefinitionsFactory class. Revision Changes Path 1.3 +48 -5 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.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- DefinitionsUtil.java 11 Jul 2002 16:40:34 -0000 1.2 +++ DefinitionsUtil.java 11 Jul 2002 17:37:01 -0000 1.3 @@ -76,7 +76,6 @@ import java.io.IOException; import org.apache.struts.tiles.definition.ReloadableDefinitionsFactory; -import org.apache.struts.tiles.definition.ConfigurableDefinitionsFactory; import org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper; import org.apache.struts.tiles.xmlDefinition.I18nFactorySet; import org.apache.struts.taglib.tiles.ComponentConstants; @@ -273,11 +272,55 @@ // Set user debug level setUserDebugLevel( factoryConfig.getDebugLevel() ); // Create configurable factory - DefinitionsFactory factory = new ConfigurableDefinitionsFactory( ); + DefinitionsFactory factory = createDefinitionFactoryInstance(factoryConfig.getFactoryClassname()); factory.init( factoryConfig, servletContext ); // Make factory accessible from jsp tags DefinitionsUtil.makeDefinitionsFactoryAccessible(factory, servletContext ); return factory; + } + + + /** + * Create Definition factory from provided classname. + * Factory class must extends TilesDefinitionsFactory. + * @param classname Class name of the factory to create. + * @return newly created factory. + * @throws DefinitionsFactoryException If an error occur while initializing factory + */ + static public DefinitionsFactory createDefinitionFactoryInstance(String classname) + throws DefinitionsFactoryException + { + try + { + Class factoryClass = Class.forName(classname); + Object factory = factoryClass.newInstance(); + // Backward compatibility : if factory classes implements old interface, + // provide appropriate wrapper + if( factory instanceof ComponentDefinitionsFactory ) + { + factory = new ComponentDefinitionsFactoryWrapper( (ComponentDefinitionsFactory)factory ); + } // end if + return (DefinitionsFactory)factory; + } + catch( ClassCastException ex ) + { // Bad classname + throw new DefinitionsFactoryException( "Error - createDefinitionsFactory : Factory class '" + + classname +" must implements 'TilesDefinitionsFactory'.", ex ); + } + catch( ClassNotFoundException ex ) + { // Bad classname + throw new DefinitionsFactoryException( "Error - createDefinitionsFactory : Bad class name '" + + classname +"'.", ex ); + } + catch( InstantiationException ex ) + { // Bad constructor or error + throw new DefinitionsFactoryException( ex ); + } + catch( IllegalAccessException ex ) + { // + throw new DefinitionsFactoryException( ex ); + } + } /** 1.2 +2 -3 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.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TilesPlugin.java 11 Jul 2002 16:22:27 -0000 1.1 +++ TilesPlugin.java 11 Jul 2002 17:37:01 -0000 1.2 @@ -61,7 +61,6 @@ package org.apache.struts.tiles; -import org.apache.struts.tiles.definition.ConfigurableDefinitionsFactory; import org.apache.struts.action.Action; import org.apache.struts.action.PlugIn;
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>