This is an automated email from the git hooks/post-receive script. New commit to annotated tag v2.0.0-beta-1 in repository jaxx. See https://gitlab.nuiton.org/nuiton/jaxx.git commit a81de5ba45fb8d709e5fe7f937e1843dc6d92d47 Author: Tony Chemit <chemit@codelutin.com> Date: Thu Oct 8 21:10:15 2009 +0000 generate help search index (still does not works everywhere, a shame the code is from com.sun we do not have the source...) --- .../org/nuiton/jaxx/plugin/GenerateHelpMojo.java | 76 +++++++++++++++++++--- .../java/org/nuiton/jaxx/plugin/GenerateMojo.java | 2 +- .../src/main/resources/defaultHelpSet.hs.vm | 4 +- 3 files changed, 69 insertions(+), 13 deletions(-) diff --git a/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateHelpMojo.java b/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateHelpMojo.java index 9506dbb..1bfed9a 100644 --- a/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateHelpMojo.java +++ b/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateHelpMojo.java @@ -18,18 +18,26 @@ *##%*/ package org.nuiton.jaxx.plugin; +import com.sun.java.help.search.Indexer; import java.io.BufferedReader; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import org.apache.maven.plugin.MojoFailureException; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; +import java.io.PrintStream; +import java.lang.reflect.Method; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.Locale; import java.util.Properties; +import org.codehaus.plexus.util.DirectoryScanner; +import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.StringUtils; import org.nuiton.i18n.I18n; import org.nuiton.util.FileUtil; import org.nuiton.util.SortedProperties; @@ -82,7 +90,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { /** * The template used to generate helpset file. * - * Must be an existing file or a ressource in classp-ath + * Must be an existing file or a ressource in class-path * * @parameter expression="${jaxx.helpsetTemplate}" default-value="/defaultHelpSet.hs.vm" * @required @@ -93,7 +101,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { /** * The template used to generate helpset map file. * - * Must be an existing file or a ressource in classp-ath + * Must be an existing file or a ressource in class-path * * @parameter expression="${jaxx.mapTemplate}" default-value="/defaultMap.jhm.vm" * @required @@ -104,7 +112,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { /** * The template used to generate helpset index file. * - * Must be an existing file or a ressource in classp-ath + * Must be an existing file or a ressource in class-path * * @parameter expression="${jaxx.indexTemplate}" default-value="/defaultIndex.xml.vm" * @required @@ -115,7 +123,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { /** * The template used to generate helpset toc file. * - * Must be an existing file or a ressource in classp-ath + * Must be an existing file or a ressource in class-path * * @parameter expression="${jaxx.tocTemplate}" default-value="/defaultToc.xml.vm" * @required @@ -126,7 +134,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { /** * The template used to generate helpset content file. * - * Must be an existing file or a ressource in classp-ath + * Must be an existing file or a ressource in class-path * * @parameter expression="${jaxx.contentTemplate}" default-value="/defaultContent.html.vm" * @required @@ -135,6 +143,15 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { */ protected File contentTemplate; /** + * Flag to generate the search index. + * + * @parameter expression="${jaxx.generateSearch}" default-value="true" + * @required + * + * @since 1.3 + */ + protected boolean generateSearch; + /** * The help ids discovered in {@link #helpIdsStore} files. */ private Properties helpIds; @@ -192,7 +209,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { } // load ids from idsStore file - + helpIds = new SortedProperties(); BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(idsStore), getEncoding())); @@ -255,7 +272,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { env.put("mapFileName", mapFileName); env.put("indexFileName", indexFileName); env.put("tocFileName", tocFileName); -// env.put("searchData", localePath + "/index"); + env.put("generateSearch", generateSearch); // --------------------------------------------------------------- // --- main helpset file ----------------------------------------- @@ -275,7 +292,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { file = new File(localizedTarget, mapFileName); - Properties mergedHelpIds = generateMapFile(file, env); + generateMapFile(file, env); touchedFiles++; // --------------------------------------------------------------- @@ -284,7 +301,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { file = new File(localizedTarget, indexFileName); - NodeItem indexRootItem = generateIndexFile(file, env); + generateIndexFile(file, env); touchedFiles++; // --------------------------------------------------------------- @@ -293,7 +310,7 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { file = new File(localizedTarget, tocFileName); - NodeItem tocRootItem = generateTocFile(file, env); + generateTocFile(file, env); touchedFiles++; // --------------------------------------------------------------- @@ -302,6 +319,16 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { touchedFiles += generateContentFiles(localizedTarget, env, localePath); + // --------------------------------------------------------------- + // --- generate search index ------------------------------------- + // --------------------------------------------------------------- + + if (generateSearch) { + + generateSearchIndex(localizedTarget, locale); + } + + } getLog().info(touchedFiles + " file(s) treated."); @@ -475,6 +502,35 @@ public class GenerateHelpMojo extends AbstractJaxxMojo { return rootItem; } + protected void generateSearchIndex(File localizedTarget, Locale locale) throws IllegalArgumentException, IOException, InvocationTargetException, SecurityException, IllegalAccessException, NoSuchMethodException { + + Method m = Indexer.class.getDeclaredMethod("main", String[].class); + File indexDir = new File(localizedTarget, "JavaHelpSearch"); + // remove old index + FileUtils.deleteDirectory(indexDir); + //copy resources to a tmp dir (without any VCS infos) + File tmpDir = new File(project.getBasedir(), "target" + File.separator + "jaxx-tmp" + File.separator + "indexer-" + locale + "-" + System.nanoTime()); + getLog().info("copy files to " + tmpDir + " for indexing them"); + FileUtils.copyDirectory(localizedTarget, tmpDir, "**/*", StringUtils.join(DirectoryScanner.DEFAULTEXCLUDES, ",")); + List<String> params = new ArrayList<String>(); + params.add("-verbose"); + params.add("-db"); + params.add(indexDir.getAbsolutePath()); + params.add("-logfile"); + File logFile = new File(project.getBasedir(), "target" + File.separator + "generated-sources" + File.separator + "jaxx" + File.separator + "indexer-" + locale + ".log"); + params.add(logFile.getAbsolutePath()); + params.add(tmpDir.getAbsolutePath()); + PrintStream out = System.out; + PrintStream err = System.err; + try { + m.invoke(null, (Object) params.toArray(new String[params.size()])); + } finally { + System.setOut(out); + System.setErr(err); + } + getLog().info("Search Index generated"); + } + protected NodeItem generateTocFile(File file, Properties env) throws Exception { NodeItem rootItem = null; diff --git a/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java b/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java index 1a54e17..cc6a133 100644 --- a/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java +++ b/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java @@ -386,7 +386,7 @@ public class GenerateMojo extends AbstractJaxxMojo implements CompilerConfigurat return; } - getLog().info("Detects " + files.length + " modify jaxx file(s). "); + getLog().info("Detects " + files.length + " modified jaxx file(s). "); try { diff --git a/maven-jaxx-plugin/src/main/resources/defaultHelpSet.hs.vm b/maven-jaxx-plugin/src/main/resources/defaultHelpSet.hs.vm index baf3e7c..5b941b4 100644 --- a/maven-jaxx-plugin/src/main/resources/defaultHelpSet.hs.vm +++ b/maven-jaxx-plugin/src/main/resources/defaultHelpSet.hs.vm @@ -31,13 +31,13 @@ <data>$localePath/$indexFileName</data> </view> -#if ( $searchData ) +#if ( $generateSearch ) <view> <name>Search</name> <label>Search</label> <type>javax.help.SearchView</type> <data engine="com.sun.java.help.search.DefaultSearchEngine"> - $searchData + $localePath/JavaHelpSearch </data> </view> #end -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.