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

Reply via email to