You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@any23.apache.org by si...@apache.org on 2012/04/05 13:58:18 UTC

svn commit: r1309801 - /incubator/any23/trunk/src/site/apt/any23-plugins.apt

Author: simonetripodi
Date: Thu Apr  5 11:58:18 2012
New Revision: 1309801

URL: http://svn.apache.org/viewvc?rev=1309801&view=rev
Log:
updated Tool plugin description

Modified:
    incubator/any23/trunk/src/site/apt/any23-plugins.apt

Modified: incubator/any23/trunk/src/site/apt/any23-plugins.apt
URL: http://svn.apache.org/viewvc/incubator/any23/trunk/src/site/apt/any23-plugins.apt?rev=1309801&r1=1309800&r2=1309801&view=diff
==============================================================================
--- incubator/any23/trunk/src/site/apt/any23-plugins.apt (original)
+++ incubator/any23/trunk/src/site/apt/any23-plugins.apt Thu Apr  5 11:58:18 2012
@@ -44,7 +44,7 @@ Apache Any23 Plugins
    * adding its <JAR> to the CLASSPATH_PREFIX environment variable as:
 
 +-----------------------------------------------------------------------------------------------------------
-export CLASSPATH_PREFIX=../../../plugins/basic-crawler/target/any23-basic-crawler-VERSION.jar bin/any23tools
+export CLASSPATH_PREFIX=../../../plugins/basic-crawler/target/any23-basic-crawler-VERSION.jar
 +-----------------------------------------------------------------------------------------------------------
 
    * adding its <JAR> to the <$HOME/.any23/plugins> directory.
@@ -59,7 +59,7 @@ export CLASSPATH_PREFIX=../../../plugins
     {{{./xref/org/apache/any23/extractor/ExtractorRegistry.html}ExtractorRegistry}}.
 
     Any detected implementation of <Tool> will be listed by the <ToolRunner>
-    command-line tool in <any23-root/><<bin/any23tools>> .
+    command-line tool in <any23-root/><<bin/any23>> .
 
 * How to Build a Plugin
 
@@ -105,36 +105,34 @@ public class HTMLScraperPlugin implement
 
 * How to Write a Tool Plugin
 
-   An <Tool Plugin> is a class:
+   A <Tool Plugin> is a Java class that:
 
    * implementing the {{{./xref/org/apache/any23/cli/Tool.html}Tool}} interface;
 
-   * packaged under <<org.apache.any23.cli>> .
+   * CLI parameters are extracted by annotating the class members with {{{http://jcommander.org/}JCommander}} annotations.
+
+   * have to be found using the {{{http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html}ServiceLoader}}
+     (we usually plug the Kohsuke's {{{http://weblogs.java.net/blog/kohsuke/archive/2009/03/my_project_of_t.html}generator}})
 
    An example of plugin is defined below.
 
 +--------------------------------------
-@ToolRunner.Description("Prints out the current library version and configuration information.")
-public class Version implements Tool {
+@MetaInfServices
+@Parameters(commandNames = { "myexec" }, commandDescription = "Prints out XXX used by Any23.")
+public class MyExecutableTool implements Tool {
 
-    public static void main(String[] args) {
-        System.exit( new Version().run(args) );
-    }
+    @Parameter(names = { "-u", "--urls" }, description = "URLs to process")
+    private List<URL> pairs;
 
-    public int run(String[] args) {
-        final String version = Apache Any23.VERSION;
-        if(version == null) {
-            System.err.println("Error while retrieving configuration info.");
-            return 1;
-        }
-        System.out.println(String.format("Apache Any23 Core v. %s", version));
-        System.out.println();
-        return 0;
+    public void run() throws Exception;
+        
     }
 
 }
 +--------------------------------------
 
+  So when executing <<<any23>>, the <<<myexec>>> will be available in the commands list.
+
 * Available Extractor Plugins
 
   * HTML Scraper Plugin