ovidiu      02/01/18 16:50:45

  Modified:    src/java/org/apache/cocoon/sitemap Manager.java
  Log:
  Allow the Handler class to be customizable.
  
  Revision  Changes    Path
  1.2       +18 -2     xml-cocoon2/src/java/org/apache/cocoon/sitemap/Manager.java
  
  Index: Manager.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/sitemap/Manager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Manager.java      3 Jan 2002 12:31:20 -0000       1.1
  +++ Manager.java      19 Jan 2002 00:50:44 -0000      1.2
  @@ -35,7 +35,7 @@
    * checking regeneration of the sub <code>Sitemap</code>
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Giacomo Pati</a>
  - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:20 $
  + * @version CVS $Revision: 1.2 $ $Date: 2002/01/19 00:50:44 $
    */
   public class Manager
           extends AbstractLoggable
  @@ -57,6 +57,7 @@
       /** The sitemap logkit manager */
       protected LogKitManager sitemapLogKitManager;
   
  +    protected Class handlerClass = Handler.class;
   
       /**
        * Set the role manager
  @@ -77,6 +78,17 @@
        */
       public void configure(Configuration conf) throws ConfigurationException {
           this.conf = conf;
  +
  +        String value = conf.getAttribute("handler-class", null);
  +        if (value != null) {
  +          try {
  +            handlerClass = Class.forName(value);
  +          }
  +          catch (ClassNotFoundException ex) {
  +            throw new ConfigurationException("Cannot find Handler class "
  +                                             + value);
  +          }
  +        }
       }
   
       /** get a context
  @@ -224,10 +236,14 @@
                   synchronized (this) {
                       sitemapHandler = (Handler)sitemaps.get(source);
                       if (sitemapHandler == null) {
  -                        sitemapHandler = new Handler(source, check_reload);
  +                        sitemapHandler = (Handler)handlerClass.newInstance();
  +                        sitemapHandler.setSourceFileName(source);
  +                        sitemapHandler.setCheckReload(check_reload);
                           sitemapHandler.setLogger(getLogger());
                           sitemapHandler.compose(newManager);
                           sitemapHandler.contextualize(this.context);
  +                        if (sitemapHandler instanceof Configurable)
  +                          ((Configurable)sitemapHandler).configure(conf);
                           sitemapHandler.regenerate(environment);
                           sitemaps.put(source, sitemapHandler);
                       }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to