nutch-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrzej Bialecki ...@getopt.org>
Subject Re: Static initializers
Date Tue, 20 Dec 2005 13:45:48 GMT
Andrzej Bialecki wrote:

> URLFilters:
>
>    private URLFilters(NutchConf) {
>       // initialize plugins based on this instance of NutchConf
>    }
>
>    public static URLFilters get(NutchConf conf) {
>       URLFilters res = (URLFilters)conf.get("urlfilters.key");
>       if (res == null) {
>          res = new URLFilters(conf);
>          conf.put("urlfilters.key", res);
>       }
>       return res;
>    }
>

Looking deeper, this is more messy that I thought... Some changes would 
be required to the plugin instantiation mechanisms, e.g.:

    Extension.getExtensionInstance() -> getExtensionInstance(NutchConf)
    ExtensionPoint.getExtensions() -> getExtensions(NutchConf)
    PluginRepository.getExtensionPoint(String) -> 
getExtensionPoint(String, NutchConf)

etc, etc...

The way this would work would be similar to the mechanism described 
above: if plugin instances are not created yet, they would be created 
once (based on the current NutchConf argument), and then cached in this 
NutchConf instance.

And also the plugin implementations would have to extend 
NutchConfigured, taking NutchConf as the argument to their constructors 
- because now the Extension.getExtensionInstance would pass the current 
NutchConf instance to their contructors.

-- 
Best regards,
Andrzej Bialecki     <><
 ___. ___ ___ ___ _ _   __________________________________
[__ || __|__/|__||\/|  Information Retrieval, Semantic Web
___|||__||  \|  ||  |  Embedded Unix, System Integration
http://www.sigram.com  Contact: info at sigram dot com



Mime
View raw message