Merge branch 'mindexer-108'
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
index fa07aff..d8b5500 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexer.java
@@ -40,6 +40,7 @@
import org.apache.maven.index.context.IndexingContext;
import org.apache.maven.index.context.MergedIndexingContext;
import org.apache.maven.index.expr.SearchExpression;
+import org.apache.maven.index.expr.SearchTypedStringSearchExpression;
import org.apache.maven.index.expr.SourcedSearchExpression;
import org.apache.maven.index.util.IndexCreatorSorter;
import org.codehaus.plexus.util.IOUtil;
@@ -108,6 +109,17 @@
// Modifying
// ----------------------------------------------------------------------------
+ public void addArtifactToIndex( ArtifactContext ac, IndexingContext context)
+ throws IOException
+ {
+ if ( ac != null )
+ {
+ indexerEngine.update( context, ac );
+
+ context.commit();
+ }
+ }
+
public void addArtifactsToIndex( Collection<ArtifactContext> ac, IndexingContext context )
throws IOException
{
@@ -244,6 +256,11 @@
}
}
+ public Query constructQuery( Field field, String expression, SearchType searchType )
+ throws IllegalArgumentException
+ {
+ return constructQuery( field, new SearchTypedStringSearchExpression( expression, searchType ));
+ }
// ==
private static final char[] DIGITS = "0123456789abcdef".toCharArray();
diff --git a/indexer-core/src/main/java/org/apache/maven/index/Indexer.java b/indexer-core/src/main/java/org/apache/maven/index/Indexer.java
index 6cd9f67..db56179 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/Indexer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/Indexer.java
@@ -110,6 +110,16 @@
/**
* Adds the passed in artifact contexts to passed in indexing context.
+ *
+ * @param ac
+ * @param context
+ * @throws IOException
+ */
+ void addArtifactToIndex( ArtifactContext ac, IndexingContext context )
+ throws IOException;
+
+ /**
+ * Adds the passed in artifact contexts to passed in indexing context.
*
* @param acs
* @param context
@@ -210,4 +220,16 @@
*/
Query constructQuery( Field field, SearchExpression expression )
throws IllegalArgumentException;
+
+ /**
+ * Helper method to construct Lucene query for given field without need for knowledge (on caller side) HOW is a
+ * field indexed, and WHAT query is needed to achieve that search.
+ *
+ * @param field
+ * @param expression
+ * @param searchType
+ * @return
+ * @throws IllegalArgumentException
+ */
+ Query constructQuery( Field field, String expression, SearchType searchType) throws IllegalArgumentException;
}