On 1/16/07, Andrzej Bialecki <[EMAIL PROTECTED]> wrote:
Scott Green wrote:
> Hi Sami
>
> On 1/16/07, Sami Siren <[EMAIL PROTECTED]> wrote:
>> Scott Green wrote:
>> > Thanks Dennis! Your methond should work.
>> >
>> > And I really hope there is one directly method say getPluginRootDir()
>> > in the plugin implementation.
>>
>> I'd recommend taking path shown by Andrzej because IMO it's bad design
>> to depend on plugin system from a plugin.
>
> I am not much clear about your reason.
>
> The getPluginRootDir() method mentioned above should expose the
> (absolutely) path of xxx-plugin in the below example.
>
> plugins
>  `-xxx-plugin
>          `------ lib
>          `------ conf
>          `------ src
>          `------ web (only for web plugin)
>          `------ plugin.xml
>          `------ build.xml

Ok. Now imagine that all plugins are packed together in a Jar file (as
is the case with Nutch). Is your method still going to work? Nope.
getPluginRootDir() may still return some non-null value (not sure about
that), but the resources are not available as files because they are
packed into a Jar.

Well, why should all resources needed to be packed?
The built result may looks like:

xxx-plugin
 `--- conf
 `--- web
 `--- xxx-plugin.jar
 `--- deps.jar
 `-- plugin.xml

Now, you may have tested your method and found that it does indeed work
- but the reason is a bit obscure: the bin/nutch and bin/hadoop scripts
add your build/ directory to the classpath, so that you can locally test
the latest versions of the code without creating the *.job file.
However, when you run your code on a Hadoop cluster your local build/
directory is no longer accessible, and your method will mysteriously
fail - or even worse, you may get a different version of a resource from
an older version of the build/ directory found on Hadoop tasktracker
nodes ...

If you packed everything into jar(s), it is possible that the jar on
hadoop tasktracker node is old version, right?

>
> Andrzej's idea is limited(?) since i cannot get resources from conf dir.

Absolutely not - that's how the whole Configuration system works.


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



Reply via email to