Hi,

OK this stems from discussion on the user@ list a while ago [1] and my
discovery of NUTCH-672 yesterday. I attached a patch, which fails
completely, as I hadn't uncovered things I now know.
The original patch submitted for the issue would have been fine for <=Nutch
1.2 but now as the file structure has changed in >= Nutch 1.3 both pre and
post build with ant it is no longer as trivial as it looks. Basically the
additions to the bin/nutch script would something similar to this

  echo "  plugin            load a plugin and run one of its classes main()"
  echo "  junit             runs the given JUnit test"
  echo " or"
  echo "  CLASSNAME         run the class named CLASSNAME"
--------------------------------------------------------------
elif [ "$COMMAND" = "plugin" ] ; then
  CLASS=org.apache.nutch.plugin.PluginRepository
elif [ "$COMMAND" = "junit" ] ; then
  CLASSPATH=$CLASSPATH:src/test/
  CLASS='junit.textui.TestRunner'
else
  CLASS=$COMMAND

This would enable us to execute for example bin/nutch junit
org.apache.nutch.crawl.CrawlDBTestUtil, However the problem we face is that
we now no longer have /lib existing under /branch-1.4, it is instead located
under /branch-1.4/runtime/local/lib or alternatively in the /lib directory
in snapshop.job in deploy mode.

I'm therefore getting the class not found error if I try to run.

Exception in thread "main" java.lang.NoClassDefFoundError:
junit/textui/TestRunner
Caused by: java.lang.ClassNotFoundException: junit.textui.TestRunner
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: junit.textui.TestRunner.  Program will exit.

One observation I have, regardless of whether we would wish to run junit
tests on test classes in a either a development or production environment
e.g. from source or from post build runtime code the correct command line
options would have to be specified within the source nutch script.

I've been looking at this for a while and haven't really made much progress
apart form the above observations. Can anyone shine some light or even
suggest how we could correctly configure a patch for the Nutch script?

Thank you

[1] http://www.mail-archive.com/user@nutch.apache.org/msg03207.html

-- 
*Lewis*

Reply via email to