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]