You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/08/23 16:07:19 UTC

svn commit: r1160700 [3/22] - in /lucene/dev/branches/flexscoring: ./ dev-tools/eclipse/ dev-tools/idea/.idea/ dev-tools/idea/lucene/contrib/ dev-tools/idea/lucene/contrib/demo/ dev-tools/idea/lucene/contrib/highlighter/ dev-tools/idea/lucene/contrib/q...

Modified: lucene/dev/branches/flexscoring/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/misc/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java Tue Aug 23 14:06:58 2011
@@ -18,7 +18,9 @@ package org.apache.lucene.store;
  */
 
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.apache.lucene.analysis.Analyzer;
@@ -117,4 +119,68 @@ public class TestNRTCachingDirectory ext
     assertEquals(0, dir.listAll().length);
     dir.close();
   }
+  
+  // LUCENE-3382 -- make sure we get exception if the directory really does not exist.
+  public void testNoDir() throws Throwable {
+    Directory dir = new NRTCachingDirectory(newFSDirectory(_TestUtil.getTempDir("doesnotexist")), 2.0, 25.0);
+    try {
+      IndexReader.open(dir, true);
+      fail("did not hit expected exception");
+    } catch (NoSuchDirectoryException nsde) {
+      // expected
+    }
+    dir.close();
+  }
+  
+  // LUCENE-3382 test that we can add a file, and then when we call list() we get it back
+  public void testDirectoryFilter() throws IOException {
+    Directory dir = new NRTCachingDirectory(newFSDirectory(_TestUtil.getTempDir("foo")), 2.0, 25.0);
+    String name = "file";
+    try {
+      dir.createOutput(name, newIOContext(random)).close();
+      assertTrue(dir.fileExists(name));
+      assertTrue(Arrays.asList(dir.listAll()).contains(name));
+    } finally {
+      dir.close();
+    }
+  }
+  
+  // LUCENE-3382 test that delegate compound files correctly.
+  public void testCompoundFileAppendTwice() throws IOException {
+    Directory newDir = new NRTCachingDirectory(newDirectory(), 2.0, 25.0);
+    CompoundFileDirectory csw = newDir.createCompoundOutput("d.cfs", newIOContext(random));
+    createSequenceFile(newDir, "d1", (byte) 0, 15);
+    IndexOutput out = csw.createOutput("d.xyz", newIOContext(random));
+    out.writeInt(0);
+    try {
+      newDir.copy(csw, "d1", "d1", newIOContext(random));
+      fail("file does already exist");
+    } catch (IOException e) {
+      //
+    }
+    out.close();
+    assertEquals(1, csw.listAll().length);
+    assertEquals("d.xyz", csw.listAll()[0]);
+   
+    csw.close();
+
+    CompoundFileDirectory cfr = newDir.openCompoundInput("d.cfs", newIOContext(random));
+    assertEquals(1, cfr.listAll().length);
+    assertEquals("d.xyz", cfr.listAll()[0]);
+    cfr.close();
+    newDir.close();
+  }
+  
+  /** Creates a file of the specified size with sequential data. The first
+   *  byte is written as the start byte provided. All subsequent bytes are
+   *  computed as start + offset where offset is the number of the byte.
+   */
+  private void createSequenceFile(Directory dir, String name, byte start, int size) throws IOException {
+      IndexOutput os = dir.createOutput(name, newIOContext(random));
+      for (int i=0; i < size; i++) {
+          os.writeByte(start);
+          start ++;
+      }
+      os.close();
+  }
 }

Copied: lucene/dev/branches/flexscoring/lucene/contrib/sandbox/src/java/org/apache/lucene/sandbox/queries/FuzzyLikeThisQuery.java (from r1160237, lucene/dev/trunk/lucene/contrib/sandbox/src/java/org/apache/lucene/sandbox/queries/FuzzyLikeThisQuery.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/sandbox/src/java/org/apache/lucene/sandbox/queries/FuzzyLikeThisQuery.java?p2=lucene/dev/branches/flexscoring/lucene/contrib/sandbox/src/java/org/apache/lucene/sandbox/queries/FuzzyLikeThisQuery.java&p1=lucene/dev/trunk/lucene/contrib/sandbox/src/java/org/apache/lucene/sandbox/queries/FuzzyLikeThisQuery.java&r1=1160237&r2=1160700&rev=1160700&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/sandbox/src/java/org/apache/lucene/sandbox/queries/FuzzyLikeThisQuery.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/sandbox/src/java/org/apache/lucene/sandbox/queries/FuzzyLikeThisQuery.java Tue Aug 23 14:06:58 2011
@@ -31,6 +31,8 @@ import org.apache.lucene.index.IndexRead
 import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.*;
+import org.apache.lucene.search.similarities.TFIDFSimilarity;
+import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.util.AttributeSource;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.PriorityQueue;

Modified: lucene/dev/branches/flexscoring/lucene/contrib/spatial/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/spatial/build.xml?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/spatial/build.xml (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/spatial/build.xml Tue Aug 23 14:06:58 2011
@@ -25,21 +25,10 @@
 
   <import file="../contrib-build.xml"/>
 
-  <contrib-uptodate name="queries-contrib" contrib-src-name="queries" property="queries.uptodate" classpath.property="queries.jar" />
-
   <path id="classpath">
     <pathelement path="${queries.jar}"/>
     <path refid="base.classpath"/>
   </path>
 
-  <target name="compile-core" depends="build-queries, common.compile-core" />
-
-  <target name="build-queries" unless="queries.uptodate">
-    <echo>Misc building dependency ${queries.jar}</echo>
-    <ant antfile="../queries/build.xml" target="default" inheritall="false" dir="../queries">
-      <propertyset refid="uptodate.and.compiled.properties"/>
-    </ant>
-    <property name="queries.uptodate" value="true"/>
-  </target>
-  
+  <target name="compile-core" depends="jar-queries, common.compile-core" />
 </project>

Modified: lucene/dev/branches/flexscoring/lucene/contrib/spatial/src/java/org/apache/lucene/spatial/tier/DistanceQueryBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/spatial/src/java/org/apache/lucene/spatial/tier/DistanceQueryBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/spatial/src/java/org/apache/lucene/spatial/tier/DistanceQueryBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/spatial/src/java/org/apache/lucene/spatial/tier/DistanceQueryBuilder.java Tue Aug 23 14:06:58 2011
@@ -18,7 +18,7 @@
 package org.apache.lucene.spatial.tier;
 
 import org.apache.lucene.search.ConstantScoreQuery;
-import org.apache.lucene.search.ChainedFilter;
+import org.apache.lucene.queries.ChainedFilter;
 import org.apache.lucene.search.Filter;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.QueryWrapperFilter;

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/build.xml?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/build.xml (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/build.xml Tue Aug 23 14:06:58 2011
@@ -25,81 +25,12 @@
 
   <import file="../contrib-build.xml"/>
 
-  <contrib-uptodate name="queries-contrib" contrib-src-name="queries" property="queries-contrib.uptodate" classpath.property="queries-contrib.jar"/>
-  <property name="lucene.jar" location="${common.dir}/build/lucene-core-${version}.jar"/>
-  <property name="servlet.jar" location="${common.dir}/lib/servlet-api-2.4.jar"/>
-  <available property="servlet.jar.present" type="file" file="${servlet.jar}"/>
-  <module-uptodate name="queryparser" property="queryparser.uptodate" classpath.property="queryparser.jar"/>
-  <module-uptodate name="queries" property="queries.uptodate" classpath.property="queries.jar"/>
-
-
   <path id="classpath">
-    <pathelement path="${queries-contrib.jar}"/>
-    <pathelement path="${queryparser.jar}"/>
-    <pathelement path="${queries.jar}"/>
-    <path refid="base.classpath"/>
-  </path>
-
-  <path id="web-classpath">
-    <pathelement path="${queries-contrib.jar}"/>
     <pathelement path="${queryparser.jar}"/>
     <pathelement path="${queries.jar}"/>
-    <pathelement path="${servlet.jar}"/>
-    <pathelement path="${build.dir}/${final.name}.jar"/>
+    <pathelement path="${sandbox.jar}"/>
     <path refid="base.classpath"/>
   </path>
 
-  <target name="compile-core" depends="build-queries-contrib,build-queryparser,build-queries,common.compile-core" />
-
-  <target name="build-queries-contrib" unless="queries-contrib.uptodate">
-    <echo>XML Parser building dependency ${queries.jar}</echo>
-    <ant antfile="../queries/build.xml" target="default" inheritall="false" dir="../queries">
-      <propertyset refid="uptodate.and.compiled.properties"/>
-    </ant>
-    <property name="queries-contrib.uptodate" value="true"/>
-  </target>
-
-  <!-- override contrib-build.xml target to also build web demo -->
-  <target name="build-artifacts-and-tests" depends="jar, compile-test,build-web-demo" />
-
-  <target name="default" depends="jar-core,build-web-demo"/>
-
-  <target name="build-web-demo"  description="Compiles demo" if="servlet.jar.present">
-
-    <echo>XML Parser compiling web demo</echo>
-
-    <ant dir="${common.dir}" target="jar-core" inheritAll="false"/>
-
-    <compile
-      srcdir="src/demo/java"
-      destdir="${build.dir}/classes/webdemo">
-      <classpath refid="web-classpath"/>
-    </compile>
-
-    <war destfile="${build.dir}/xml-query-demo.war" webxml="src/demo/WebContent/WEB-INF/web.xml">
-      <fileset dir="src/demo/WebContent"/>
-      <lib dir="${build.dir}">
-        <include name="${final.name}.jar"/>
-      </lib>
-      <lib file="${queries.jar}"/>
-      <lib file="${lucene.jar}"/>
-      <classes dir="${build.dir}/classes/webdemo"/>
-    </war>
-
-  </target>
-
-  <target name="build-queryparser" unless="queryparser.uptodate">
-    <echo>XML QueryParser building dependency modules/queryparser</echo>
-    <subant target="default">
-      <fileset dir="${common.dir}/../modules/queryparser" includes="build.xml"/>
-    </subant>
-  </target>
-
-  <target name="build-queries" unless="queries.uptodate">
-    <echo>XML QueryParser building dependency modules/queries</echo>
-    <subant target="default">
-      <fileset dir="${common.dir}/../modules/queries" includes="build.xml"/>
-    </subant>
-  </target>
-
+  <target name="compile-core" depends="jar-sandbox,jar-queryparser,jar-queries,common.compile-core" />
 </project>

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/CoreParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/CoreParser.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/CoreParser.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/CoreParser.java Tue Aug 23 14:06:58 2011
@@ -1,10 +1,5 @@
 package org.apache.lucene.xmlparser;
 
-import java.io.InputStream;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.queryparser.classic.QueryParser;
 import org.apache.lucene.search.Query;
@@ -12,6 +7,10 @@ import org.apache.lucene.xmlparser.build
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import java.io.InputStream;
+
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -28,143 +27,130 @@ import org.w3c.dom.Element;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 /**
  * Assembles a QueryBuilder which uses only core Lucene Query objects
- *
  */
-public class CoreParser implements QueryBuilder
-{
-	
-	protected Analyzer analyzer;
-	protected QueryParser parser;
-	protected QueryBuilderFactory queryFactory;
-	protected FilterBuilderFactory filterFactory;
-	//Controls the max size of the LRU cache used for QueryFilter objects parsed.
-	public static int maxNumCachedFilters=20;
-
-
-	/**
-	 * Construct an XML parser that uses a single instance QueryParser for handling 
-	 * UserQuery tags - all parse operations are synchronised on this parser
-	 * @param analyzer
-	 * @param parser A QueryParser which will be synchronized on during parse calls.
-	 */
-	public CoreParser(Analyzer analyzer, QueryParser parser)
-	{
-		this(null,analyzer,parser);
-	}
-	
-	/**
-	 * Constructs an XML parser that creates a QueryParser for each UserQuery request.
-	 * @param defaultField The default field name used by QueryParsers constructed for UserQuery tags 
-	 * @param analyzer 
-	 */
-	public CoreParser(String defaultField, Analyzer analyzer)
-	{
-		this(defaultField,analyzer,null);
-	}	
-	
-	protected CoreParser(String defaultField,Analyzer analyzer, QueryParser parser)
-	{
-		this.analyzer=analyzer;
-		this.parser=parser;
-		filterFactory = new FilterBuilderFactory();
-		filterFactory.addBuilder("RangeFilter",new RangeFilterBuilder());
-		filterFactory.addBuilder("NumericRangeFilter",new NumericRangeFilterBuilder());
-		
-		queryFactory = new QueryBuilderFactory();
-		queryFactory.addBuilder("TermQuery",new TermQueryBuilder());
-		queryFactory.addBuilder("TermsQuery",new TermsQueryBuilder(analyzer));
-		queryFactory.addBuilder("MatchAllDocsQuery",new MatchAllDocsQueryBuilder());
-		queryFactory.addBuilder("BooleanQuery",new BooleanQueryBuilder(queryFactory));
-		queryFactory.addBuilder("NumericRangeQuery",new NumericRangeQueryBuilder());
-		if(parser!=null)
-		{
-			queryFactory.addBuilder("UserQuery",new UserInputQueryBuilder(parser));
-		}
-		else
-		{
-			queryFactory.addBuilder("UserQuery",new UserInputQueryBuilder(defaultField,analyzer));			
-		}
-		queryFactory.addBuilder("FilteredQuery",new FilteredQueryBuilder(filterFactory,queryFactory));
-		queryFactory.addBuilder("ConstantScoreQuery",new ConstantScoreQueryBuilder(filterFactory));
-		
-		filterFactory.addBuilder("CachedFilter",new CachedFilterBuilder(queryFactory,
-							filterFactory, maxNumCachedFilters));
-		
-		
-		SpanQueryBuilderFactory sqof=new SpanQueryBuilderFactory();
-
-		SpanNearBuilder snb=new SpanNearBuilder(sqof);
-		sqof.addBuilder("SpanNear",snb);
-		queryFactory.addBuilder("SpanNear",snb);
-
-    BoostingTermBuilder btb=new BoostingTermBuilder();
-    sqof.addBuilder("BoostingTermQuery",btb);
-    queryFactory.addBuilder("BoostingTermQuery",btb);        
-
-    SpanTermBuilder snt=new SpanTermBuilder();
-		sqof.addBuilder("SpanTerm",snt);
-		queryFactory.addBuilder("SpanTerm",snt);
-		
-		SpanOrBuilder sot=new SpanOrBuilder(sqof);
-		sqof.addBuilder("SpanOr",sot);
-		queryFactory.addBuilder("SpanOr",sot);
-
-		SpanOrTermsBuilder sots=new SpanOrTermsBuilder(analyzer);
-		sqof.addBuilder("SpanOrTerms",sots);
-		queryFactory.addBuilder("SpanOrTerms",sots);		
-		
-		SpanFirstBuilder sft=new SpanFirstBuilder(sqof);
-		sqof.addBuilder("SpanFirst",sft);
-		queryFactory.addBuilder("SpanFirst",sft);
-		
-		SpanNotBuilder snot=new SpanNotBuilder(sqof);
-		sqof.addBuilder("SpanNot",snot);
-		queryFactory.addBuilder("SpanNot",snot);	
-	}
-	
-	public Query parse(InputStream xmlStream) throws ParserException
-	{
-		return getQuery(parseXML(xmlStream).getDocumentElement());
-	}
-	
-	public void addQueryBuilder(String nodeName,QueryBuilder builder)
-	{
-		queryFactory.addBuilder(nodeName,builder);
-	}
-	public void addFilterBuilder(String nodeName,FilterBuilder builder)
-	{
-		filterFactory.addBuilder(nodeName,builder);
-	}
-	
-	private static Document parseXML(InputStream pXmlFile) throws ParserException
-	{
-		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-		DocumentBuilder db = null;
-		try
-		{
-			db = dbf.newDocumentBuilder();
-		}
-		catch (Exception se)
-		{
-			throw new ParserException("XML Parser configuration error", se);
-		}
-		org.w3c.dom.Document doc = null;
-		try
-		{
-			doc = db.parse(pXmlFile);
-		}
-		catch (Exception se)
-		{
-			throw new ParserException("Error parsing XML stream:" + se, se);
-		}
-		return doc;
-	}
-	
+public class CoreParser implements QueryBuilder {
+
+  protected Analyzer analyzer;
+  protected QueryParser parser;
+  protected QueryBuilderFactory queryFactory;
+  protected FilterBuilderFactory filterFactory;
+  //Controls the max size of the LRU cache used for QueryFilter objects parsed.
+  public static int maxNumCachedFilters = 20;
+
+
+  /**
+   * Construct an XML parser that uses a single instance QueryParser for handling
+   * UserQuery tags - all parse operations are synchronised on this parser
+   *
+   * @param analyzer
+   * @param parser A QueryParser which will be synchronized on during parse calls.
+   */
+  public CoreParser(Analyzer analyzer, QueryParser parser) {
+    this(null, analyzer, parser);
+  }
+
+  /**
+   * Constructs an XML parser that creates a QueryParser for each UserQuery request.
+   *
+   * @param defaultField The default field name used by QueryParsers constructed for UserQuery tags
+   * @param analyzer
+   */
+  public CoreParser(String defaultField, Analyzer analyzer) {
+    this(defaultField, analyzer, null);
+  }
+
+  protected CoreParser(String defaultField, Analyzer analyzer, QueryParser parser) {
+    this.analyzer = analyzer;
+    this.parser = parser;
+    filterFactory = new FilterBuilderFactory();
+    filterFactory.addBuilder("RangeFilter", new RangeFilterBuilder());
+    filterFactory.addBuilder("NumericRangeFilter", new NumericRangeFilterBuilder());
+
+    queryFactory = new QueryBuilderFactory();
+    queryFactory.addBuilder("TermQuery", new TermQueryBuilder());
+    queryFactory.addBuilder("TermsQuery", new TermsQueryBuilder(analyzer));
+    queryFactory.addBuilder("MatchAllDocsQuery", new MatchAllDocsQueryBuilder());
+    queryFactory.addBuilder("BooleanQuery", new BooleanQueryBuilder(queryFactory));
+    queryFactory.addBuilder("NumericRangeQuery", new NumericRangeQueryBuilder());
+    if (parser != null) {
+      queryFactory.addBuilder("UserQuery", new UserInputQueryBuilder(parser));
+    } else {
+      queryFactory.addBuilder("UserQuery", new UserInputQueryBuilder(defaultField, analyzer));
+    }
+    queryFactory.addBuilder("FilteredQuery", new FilteredQueryBuilder(filterFactory, queryFactory));
+    queryFactory.addBuilder("ConstantScoreQuery", new ConstantScoreQueryBuilder(filterFactory));
+
+    filterFactory.addBuilder("CachedFilter", new CachedFilterBuilder(queryFactory,
+        filterFactory, maxNumCachedFilters));
+
+
+    SpanQueryBuilderFactory sqof = new SpanQueryBuilderFactory();
+
+    SpanNearBuilder snb = new SpanNearBuilder(sqof);
+    sqof.addBuilder("SpanNear", snb);
+    queryFactory.addBuilder("SpanNear", snb);
+
+    BoostingTermBuilder btb = new BoostingTermBuilder();
+    sqof.addBuilder("BoostingTermQuery", btb);
+    queryFactory.addBuilder("BoostingTermQuery", btb);
+
+    SpanTermBuilder snt = new SpanTermBuilder();
+    sqof.addBuilder("SpanTerm", snt);
+    queryFactory.addBuilder("SpanTerm", snt);
+
+    SpanOrBuilder sot = new SpanOrBuilder(sqof);
+    sqof.addBuilder("SpanOr", sot);
+    queryFactory.addBuilder("SpanOr", sot);
+
+    SpanOrTermsBuilder sots = new SpanOrTermsBuilder(analyzer);
+    sqof.addBuilder("SpanOrTerms", sots);
+    queryFactory.addBuilder("SpanOrTerms", sots);
+
+    SpanFirstBuilder sft = new SpanFirstBuilder(sqof);
+    sqof.addBuilder("SpanFirst", sft);
+    queryFactory.addBuilder("SpanFirst", sft);
+
+    SpanNotBuilder snot = new SpanNotBuilder(sqof);
+    sqof.addBuilder("SpanNot", snot);
+    queryFactory.addBuilder("SpanNot", snot);
+  }
+
+  public Query parse(InputStream xmlStream) throws ParserException {
+    return getQuery(parseXML(xmlStream).getDocumentElement());
+  }
+
+  public void addQueryBuilder(String nodeName, QueryBuilder builder) {
+    queryFactory.addBuilder(nodeName, builder);
+  }
+
+  public void addFilterBuilder(String nodeName, FilterBuilder builder) {
+    filterFactory.addBuilder(nodeName, builder);
+  }
+
+  private static Document parseXML(InputStream pXmlFile) throws ParserException {
+    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+    DocumentBuilder db = null;
+    try {
+      db = dbf.newDocumentBuilder();
+    }
+    catch (Exception se) {
+      throw new ParserException("XML Parser configuration error", se);
+    }
+    org.w3c.dom.Document doc = null;
+    try {
+      doc = db.parse(pXmlFile);
+    }
+    catch (Exception se) {
+      throw new ParserException("Error parsing XML stream:" + se, se);
+    }
+    return doc;
+  }
+
 
-	public Query getQuery(Element e) throws ParserException
-	{
-		return queryFactory.getQuery(e);
+  public Query getQuery(Element e) throws ParserException {
+    return queryFactory.getQuery(e);
 	}
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/CorePlusExtensionsParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/CorePlusExtensionsParser.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/CorePlusExtensionsParser.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/CorePlusExtensionsParser.java Tue Aug 23 14:06:58 2011
@@ -2,12 +2,7 @@ package org.apache.lucene.xmlparser;
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.queryparser.classic.QueryParser;
-import org.apache.lucene.xmlparser.builders.BooleanFilterBuilder;
-import org.apache.lucene.xmlparser.builders.BoostingQueryBuilder;
-import org.apache.lucene.xmlparser.builders.DuplicateFilterBuilder;
-import org.apache.lucene.xmlparser.builders.FuzzyLikeThisQueryBuilder;
-import org.apache.lucene.xmlparser.builders.LikeThisQueryBuilder;
-import org.apache.lucene.xmlparser.builders.TermsFilterBuilder;
+import org.apache.lucene.xmlparser.builders.*;
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -26,41 +21,40 @@ import org.apache.lucene.xmlparser.build
  */
 
 /**
- * 
+ *
  */
-public class CorePlusExtensionsParser extends CoreParser
-{
+public class CorePlusExtensionsParser extends CoreParser {
 
-	/**
-	 * Construct an XML parser that uses a single instance QueryParser for handling 
-	 * UserQuery tags - all parse operations are synchronized on this parser
-	 * @param analyzer
-	 * @param parser A QueryParser which will be synchronized on during parse calls.
-	 */
-	public CorePlusExtensionsParser(Analyzer analyzer, QueryParser parser)
-	{
-		this(null,analyzer, parser);
-	}
-	/**
-	 * Constructs an XML parser that creates a QueryParser for each UserQuery request.
-	 * @param defaultField The default field name used by QueryParsers constructed for UserQuery tags 
-	 * @param analyzer 
-	 */
-	public CorePlusExtensionsParser(String defaultField,Analyzer analyzer)
-	{
-		this(defaultField,analyzer, null);
-	}
+  /**
+   * Construct an XML parser that uses a single instance QueryParser for handling
+   * UserQuery tags - all parse operations are synchronized on this parser
+   *
+   * @param analyzer
+   * @param parser A QueryParser which will be synchronized on during parse calls.
+   */
+  public CorePlusExtensionsParser(Analyzer analyzer, QueryParser parser) {
+    this(null, analyzer, parser);
+  }
+
+  /**
+   * Constructs an XML parser that creates a QueryParser for each UserQuery request.
+   *
+   * @param defaultField The default field name used by QueryParsers constructed for UserQuery tags
+   * @param analyzer
+   */
+  public CorePlusExtensionsParser(String defaultField, Analyzer analyzer) {
+    this(defaultField, analyzer, null);
+  }
 
-	private CorePlusExtensionsParser(String defaultField,Analyzer analyzer, QueryParser parser)
-	{
-		super(defaultField,analyzer, parser);
-		filterFactory.addBuilder("TermsFilter",new TermsFilterBuilder(analyzer));
-		filterFactory.addBuilder("BooleanFilter",new BooleanFilterBuilder(filterFactory));
-		filterFactory.addBuilder("DuplicateFilter",new DuplicateFilterBuilder());
-		String fields[]={"contents"};
-		queryFactory.addBuilder("LikeThisQuery",new LikeThisQueryBuilder(analyzer,fields));
-		queryFactory.addBuilder("BoostingQuery", new BoostingQueryBuilder(queryFactory));
-		queryFactory.addBuilder("FuzzyLikeThisQuery", new FuzzyLikeThisQueryBuilder(analyzer));
+  private CorePlusExtensionsParser(String defaultField, Analyzer analyzer, QueryParser parser) {
+    super(defaultField, analyzer, parser);
+    filterFactory.addBuilder("TermsFilter", new TermsFilterBuilder(analyzer));
+    filterFactory.addBuilder("BooleanFilter", new BooleanFilterBuilder(filterFactory));
+    filterFactory.addBuilder("DuplicateFilter", new DuplicateFilterBuilder());
+    String fields[] = {"contents"};
+    queryFactory.addBuilder("LikeThisQuery", new LikeThisQueryBuilder(analyzer, fields));
+    queryFactory.addBuilder("BoostingQuery", new BoostingQueryBuilder(queryFactory));
+    queryFactory.addBuilder("FuzzyLikeThisQuery", new FuzzyLikeThisQueryBuilder(analyzer));
 		
 	}
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/DOMUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/DOMUtils.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/DOMUtils.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/DOMUtils.java Tue Aug 23 14:06:58 2011
@@ -1,13 +1,13 @@
 package org.apache.lucene.xmlparser;
-import java.io.Reader;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.xml.sax.InputSource;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import java.io.Reader;
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -26,253 +26,192 @@ import org.xml.sax.InputSource;
  */
 
 /**
- * 
+ *
  */
-public class DOMUtils
-{
-    public static Element getChildByTagOrFail(Element e, String name)	throws ParserException
-	{
-		Element kid = getChildByTagName(e, name);
-		if (null == kid)
-		{
-			throw new ParserException(e.getTagName() + " missing \"" + name
-					+ "\" child element");
-		}
-		return kid;
-	}
-     
-     public static Element getFirstChildOrFail(Element e) throws ParserException
-	{
-		Element kid = getFirstChildElement(e);
-		if (null == kid)
-		{
-			throw new ParserException(e.getTagName()
-					+ " does not contain a child element");
-		}
-		return kid;
-	}
-     
-	public static String getAttributeOrFail(Element e, String name)	throws ParserException
-	{
-		String v = e.getAttribute(name);
-		if (null == v)
-		{
-			throw new ParserException(e.getTagName() + " missing \"" + name
-					+ "\" attribute");
-		}
-		return v;
-	}
-    public static String getAttributeWithInheritanceOrFail(Element e,	String name) throws ParserException
-	{
-		String v = getAttributeWithInheritance(e, name);
-		if (null == v)
-		{
-			throw new ParserException(e.getTagName() + " missing \"" + name
-					+ "\" attribute");
-		}
-		return v;
-	}
-    public static String getNonBlankTextOrFail(Element e) throws ParserException
-	{
-		String v = getText(e);
-		if (null != v)
-			v = v.trim();
-		if (null == v || 0 == v.length())
-		{
-			throw new ParserException(e.getTagName() + " has no text");
-		}
-		return v;
-	}
- 
-     
-     
-     
-	
-	
-	/* Convenience method where there is only one child Element of a given name */
-	public static Element getChildByTagName(Element e, String name)
-	{
-	       for (Node kid = e.getFirstChild(); kid != null; kid = kid.getNextSibling())
-		{
-			if( (kid.getNodeType()==Node.ELEMENT_NODE) && (name.equals(kid.getNodeName())) )
-			{
-				return (Element)kid;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns an attribute value from this node, or first parent node with this attribute defined
-	 * @param element 
-	 * @param attributeName
-	 * @return A non-zero-length value if defined, otherwise null
-	 */
-	public static String getAttributeWithInheritance(Element element, String attributeName)
-	{
-		String result=element.getAttribute(attributeName);
-		if( (result==null)|| ("".equals(result) ) )
-		{
-			Node n=element.getParentNode();
-			if((n==element)||(n==null))
-			{
-				return null;
-			}
-			if(n instanceof Element)
-			{
-				Element parent=(Element) n;
-				return getAttributeWithInheritance(parent,attributeName);
-			}
-			return null; //we reached the top level of the document without finding attribute
-		}
-		return result;		
-	}
-
-
-
-	/* Convenience method where there is only one child Element of a given name */
-	public static String getChildTextByTagName(Element e, String tagName)
-	{
-		Element child=getChildByTagName(e,tagName);
-		if(child!=null)
-		{
-			return getText(child);
-		}
-		return null;
-	}
-
-	/* Convenience method to append a new child with text*/
-	public static Element insertChild(Element parent, String tagName, String text)
-	{
-	  	Element child = parent.getOwnerDocument().createElement(tagName);
-		parent.appendChild(child);
-		if(text!=null)
-		{
-		  	child.appendChild(child.getOwnerDocument().createTextNode(text));
-		}
-		return child;
-	}
-
-	public static String getAttribute(Element element, String attributeName, String deflt)
-	{
-		String result=element.getAttribute(attributeName);
-		if( (result==null)|| ("".equals(result) ) )
-		{
-			return deflt;
-		}
-		return result;
-	}
-	public static float getAttribute(Element element, String attributeName, float deflt)
-	{
-		String result=element.getAttribute(attributeName);
-		if( (result==null)|| ("".equals(result) ) )
-		{
-			return deflt;
-		}
-		return Float.parseFloat(result);
-	}	
-
-	public static int getAttribute(Element element, String attributeName, int deflt)
-	{
-		String result=element.getAttribute(attributeName);
-		if( (result==null)|| ("".equals(result) ) )
-		{
-			return deflt;
-		}
-		return Integer.parseInt(result);
-	}
-	
-	public static boolean getAttribute(Element element, String attributeName,
-			boolean deflt)
-	{
-		String result = element.getAttribute(attributeName);
-		if ((result == null) || ("".equals(result)))
-		{
-			return deflt;
-		}
-		return Boolean.valueOf(result).booleanValue();
-	}	
-
-	/* Returns text of node and all child nodes - without markup */
-	//MH changed to Node from Element 25/11/2005
-	public static String getText(Node e)
-	{
-		StringBuilder sb=new StringBuilder();
-		getTextBuffer(e, sb);
-		return sb.toString();
-	}
-	
-	public static Element getFirstChildElement(Element element)
-	{
-		for (Node kid = element.getFirstChild(); kid != null; kid = kid
-				.getNextSibling())
-		{
-			if (kid.getNodeType() == Node.ELEMENT_NODE) 
-			{
-				return (Element) kid;
-			}
-		}
-		return null;
-	}	
+public class DOMUtils {
 
-	private static void getTextBuffer(Node e, StringBuilder sb)
-	{
-	    for (Node kid = e.getFirstChild(); kid != null; kid = kid.getNextSibling())
-		{
-			switch(kid.getNodeType())
-			{
-				case Node.TEXT_NODE:
-				{
-					sb.append(kid.getNodeValue());
-					break;
-				}
-				case Node.ELEMENT_NODE:
-				{
-					getTextBuffer(kid, sb);
-					break;
-				}
-				case Node.ENTITY_REFERENCE_NODE:
-				{
-					getTextBuffer(kid, sb);
-					break;
-				}
-			}
-		}
-	}
-
-	/**
-	* Helper method to parse an XML file into a DOM tree, given a reader.
-	* @param is reader of the XML file to be parsed
-	* @return an org.w3c.dom.Document object
-	*/
-	public static Document loadXML(Reader is)
-	{
-
-		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-		DocumentBuilder db = null;
-		
-		try
-		{
-			db = dbf.newDocumentBuilder();
-		}
-		catch (Exception se)
-		{
-			throw new RuntimeException("Parser configuration error", se);
-		}
-
-		// Step 3: parse the input file
-		org.w3c.dom.Document doc = null;
-		try
-		{
-			doc = db.parse(new InputSource(is));
-			//doc = db.parse(is);
-		}
-		catch (Exception se)
-		{
-			throw new RuntimeException("Error parsing file:" + se, se);
-		}
+  public static Element getChildByTagOrFail(Element e, String name) throws ParserException {
+    Element kid = getChildByTagName(e, name);
+    if (null == kid) {
+      throw new ParserException(e.getTagName() + " missing \"" + name
+          + "\" child element");
+    }
+    return kid;
+  }
+
+  public static Element getFirstChildOrFail(Element e) throws ParserException {
+    Element kid = getFirstChildElement(e);
+    if (null == kid) {
+      throw new ParserException(e.getTagName()
+          + " does not contain a child element");
+    }
+    return kid;
+  }
+
+  public static String getAttributeOrFail(Element e, String name) throws ParserException {
+    String v = e.getAttribute(name);
+    if (null == v) {
+      throw new ParserException(e.getTagName() + " missing \"" + name
+          + "\" attribute");
+    }
+    return v;
+  }
+
+  public static String getAttributeWithInheritanceOrFail(Element e, String name) throws ParserException {
+    String v = getAttributeWithInheritance(e, name);
+    if (null == v) {
+      throw new ParserException(e.getTagName() + " missing \"" + name
+          + "\" attribute");
+    }
+    return v;
+  }
+
+  public static String getNonBlankTextOrFail(Element e) throws ParserException {
+    String v = getText(e);
+    if (null != v)
+      v = v.trim();
+    if (null == v || 0 == v.length()) {
+      throw new ParserException(e.getTagName() + " has no text");
+    }
+    return v;
+  }
+
+  /* Convenience method where there is only one child Element of a given name */
+  public static Element getChildByTagName(Element e, String name) {
+    for (Node kid = e.getFirstChild(); kid != null; kid = kid.getNextSibling()) {
+      if ((kid.getNodeType() == Node.ELEMENT_NODE) && (name.equals(kid.getNodeName()))) {
+        return (Element) kid;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns an attribute value from this node, or first parent node with this attribute defined
+   *
+   * @param element
+   * @param attributeName
+   * @return A non-zero-length value if defined, otherwise null
+   */
+  public static String getAttributeWithInheritance(Element element, String attributeName) {
+    String result = element.getAttribute(attributeName);
+    if ((result == null) || ("".equals(result))) {
+      Node n = element.getParentNode();
+      if ((n == element) || (n == null)) {
+        return null;
+      }
+      if (n instanceof Element) {
+        Element parent = (Element) n;
+        return getAttributeWithInheritance(parent, attributeName);
+      }
+      return null; //we reached the top level of the document without finding attribute
+    }
+    return result;
+  }
+
+
+  /* Convenience method where there is only one child Element of a given name */
+  public static String getChildTextByTagName(Element e, String tagName) {
+    Element child = getChildByTagName(e, tagName);
+    return child != null ? getText(child) : null;
+  }
+
+  /* Convenience method to append a new child with text*/
+  public static Element insertChild(Element parent, String tagName, String text) {
+    Element child = parent.getOwnerDocument().createElement(tagName);
+    parent.appendChild(child);
+    if (text != null) {
+      child.appendChild(child.getOwnerDocument().createTextNode(text));
+    }
+    return child;
+  }
+
+  public static String getAttribute(Element element, String attributeName, String deflt) {
+    String result = element.getAttribute(attributeName);
+    return (result == null) || ("".equals(result)) ? deflt : result;
+  }
+
+  public static float getAttribute(Element element, String attributeName, float deflt) {
+    String result = element.getAttribute(attributeName);
+    return (result == null) || ("".equals(result)) ? deflt : Float.parseFloat(result);
+  }
+
+  public static int getAttribute(Element element, String attributeName, int deflt) {
+    String result = element.getAttribute(attributeName);
+    return (result == null) || ("".equals(result)) ? deflt : Integer.parseInt(result);
+  }
+
+  public static boolean getAttribute(Element element, String attributeName,
+                                     boolean deflt) {
+    String result = element.getAttribute(attributeName);
+    return (result == null) || ("".equals(result)) ? deflt : Boolean.valueOf(result);
+  }
+
+  /* Returns text of node and all child nodes - without markup */
+  //MH changed to Node from Element 25/11/2005
+
+  public static String getText(Node e) {
+    StringBuilder sb = new StringBuilder();
+    getTextBuffer(e, sb);
+    return sb.toString();
+  }
+
+  public static Element getFirstChildElement(Element element) {
+    for (Node kid = element.getFirstChild(); kid != null; kid = kid.getNextSibling()) {
+      if (kid.getNodeType() == Node.ELEMENT_NODE) {
+        return (Element) kid;
+      }
+    }
+    return null;
+  }
+
+  private static void getTextBuffer(Node e, StringBuilder sb) {
+    for (Node kid = e.getFirstChild(); kid != null; kid = kid.getNextSibling()) {
+      switch (kid.getNodeType()) {
+        case Node.TEXT_NODE: {
+          sb.append(kid.getNodeValue());
+          break;
+        }
+        case Node.ELEMENT_NODE: {
+          getTextBuffer(kid, sb);
+          break;
+        }
+        case Node.ENTITY_REFERENCE_NODE: {
+          getTextBuffer(kid, sb);
+          break;
+        }
+      }
+    }
+  }
+
+  /**
+   * Helper method to parse an XML file into a DOM tree, given a reader.
+   *
+   * @param is reader of the XML file to be parsed
+   * @return an org.w3c.dom.Document object
+   */
+  public static Document loadXML(Reader is) {
+    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+    DocumentBuilder db = null;
+
+    try {
+      db = dbf.newDocumentBuilder();
+    }
+    catch (Exception se) {
+      throw new RuntimeException("Parser configuration error", se);
+    }
+
+    // Step 3: parse the input file
+    org.w3c.dom.Document doc = null;
+    try {
+      doc = db.parse(new InputSource(is));
+      //doc = db.parse(is);
+    }
+    catch (Exception se) {
+      throw new RuntimeException("Error parsing file:" + se, se);
+    }
 
-		return doc;
+    return doc;
 	}	
 }
 

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/FilterBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/FilterBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/FilterBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/FilterBuilder.java Tue Aug 23 14:06:58 2011
@@ -26,5 +26,6 @@ import org.w3c.dom.Element;
  * 
  */
 public interface FilterBuilder {
+
 	 public Filter getFilter(Element e) throws ParserException;
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/FilterBuilderFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/FilterBuilderFactory.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/FilterBuilderFactory.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/FilterBuilderFactory.java Tue Aug 23 14:06:58 2011
@@ -3,10 +3,10 @@
  */
 package org.apache.lucene.xmlparser;
 
-import java.util.HashMap;
-
 import org.apache.lucene.search.Filter;
 import org.w3c.dom.Element;
+
+import java.util.HashMap;
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -25,26 +25,25 @@ import org.w3c.dom.Element;
  */
 
 /**
- * 
+ *
  */
 public class FilterBuilderFactory implements FilterBuilder {
 
-	HashMap<String,FilterBuilder> builders=new HashMap<String,FilterBuilder>();
-	
-	public Filter getFilter(Element n) throws ParserException {
-		FilterBuilder builder= builders.get(n.getNodeName());
-		if(builder==null)
-		{
-			throw new ParserException("No FilterBuilder defined for node "+n.getNodeName()); 
-		}
-		return builder.getFilter(n); 
-	}
-	public void addBuilder(String nodeName,FilterBuilder builder)
-	{
-		builders.put(nodeName,builder);
-	}
-	public FilterBuilder getFilterBuilder(String nodeName)
-	{
-		return builders.get(nodeName);		
-	}	
+  HashMap<String, FilterBuilder> builders = new HashMap<String, FilterBuilder>();
+
+  public Filter getFilter(Element n) throws ParserException {
+    FilterBuilder builder = builders.get(n.getNodeName());
+    if (builder == null) {
+      throw new ParserException("No FilterBuilder defined for node " + n.getNodeName());
+    }
+    return builder.getFilter(n);
+  }
+
+  public void addBuilder(String nodeName, FilterBuilder builder) {
+    builders.put(nodeName, builder);
+  }
+
+  public FilterBuilder getFilterBuilder(String nodeName) {
+    return builders.get(nodeName);
+  }
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/ParserException.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/ParserException.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/ParserException.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/ParserException.java Tue Aug 23 14:06:58 2011
@@ -30,12 +30,14 @@ public class ParserException extends Exc
 	public ParserException() {
 		super();
 	}
+
 	/**
 	 * @param message
 	 */
 	public ParserException(String message) {
 		super(message);
 	}
+
 	/**
 	 * @param message
 	 * @param cause
@@ -43,6 +45,7 @@ public class ParserException extends Exc
 	public ParserException(String message, Throwable cause) {
 		super(message, cause);
 	}
+
 	/**
 	 * @param cause
 	 */

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryBuilder.java Tue Aug 23 14:06:58 2011
@@ -25,5 +25,4 @@ import org.w3c.dom.Element;
 public interface QueryBuilder {
 	
 	public Query getQuery(Element e) throws ParserException;
-
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryBuilderFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryBuilderFactory.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryBuilderFactory.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryBuilderFactory.java Tue Aug 23 14:06:58 2011
@@ -3,10 +3,10 @@
  */
 package org.apache.lucene.xmlparser;
 
-import java.util.HashMap;
-
 import org.apache.lucene.search.Query;
 import org.w3c.dom.Element;
+
+import java.util.HashMap;
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -25,27 +25,26 @@ import org.w3c.dom.Element;
  */
 
 /**
- * 
+ *
  */
 public class QueryBuilderFactory implements QueryBuilder {
 
-	HashMap<String,QueryBuilder> builders=new HashMap<String,QueryBuilder>();
-	
-	public Query getQuery(Element n) throws ParserException {
-		QueryBuilder builder= builders.get(n.getNodeName());
-		if(builder==null)
-		{
-			throw new ParserException("No QueryObjectBuilder defined for node "+n.getNodeName()); 
-		}
-		return builder.getQuery(n); 
-	}
-	public void addBuilder(String nodeName,QueryBuilder builder)
-	{
-		builders.put(nodeName,builder);
-	}
-	public QueryBuilder getQueryBuilder(String nodeName)
-	{
-		return builders.get(nodeName);		
-	}
-	
+  HashMap<String, QueryBuilder> builders = new HashMap<String, QueryBuilder>();
+
+  public Query getQuery(Element n) throws ParserException {
+    QueryBuilder builder = builders.get(n.getNodeName());
+    if (builder == null) {
+      throw new ParserException("No QueryObjectBuilder defined for node " + n.getNodeName());
+    }
+    return builder.getQuery(n);
+  }
+
+  public void addBuilder(String nodeName, QueryBuilder builder) {
+    builders.put(nodeName, builder);
+  }
+
+  public QueryBuilder getQueryBuilder(String nodeName) {
+    return builders.get(nodeName);
+  }
+
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryTemplateManager.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryTemplateManager.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryTemplateManager.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/QueryTemplateManager.java Tue Aug 23 14:06:58 2011
@@ -1,28 +1,22 @@
 package org.apache.lucene.xmlparser;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Properties;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Result;
-import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.*;
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Properties;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -40,171 +34,168 @@ import org.xml.sax.SAXException;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 /**
- * Provides utilities for turning query form input (such as from a web page or Swing gui) into 
- * Lucene XML queries by using XSL templates.  This approach offers a convenient way of externalizing 
- * and changing how user input is turned into Lucene queries. 
+ * Provides utilities for turning query form input (such as from a web page or Swing gui) into
+ * Lucene XML queries by using XSL templates.  This approach offers a convenient way of externalizing
+ * and changing how user input is turned into Lucene queries.
  * Database applications often adopt similar practices by externalizing SQL in template files that can
- * be easily changed/optimized by a DBA.  
- * The static methods can be used on their own or by creating an instance of this class you can store and 
+ * be easily changed/optimized by a DBA.
+ * The static methods can be used on their own or by creating an instance of this class you can store and
  * re-use compiled stylesheets for fast use (e.g. in a server environment)
  */
-public class QueryTemplateManager
-{
-	static DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance ();
-	static TransformerFactory tFactory = TransformerFactory.newInstance();
-
-	HashMap<String,Templates> compiledTemplatesCache=new HashMap<String,Templates>();
-	Templates defaultCompiledTemplates=null;
-
-	
-	public QueryTemplateManager()
-	{
-		
-	}
-	public QueryTemplateManager(InputStream xslIs) throws TransformerConfigurationException, ParserConfigurationException, SAXException, IOException
-	{
-		addDefaultQueryTemplate(xslIs);
-	}
-	public void addDefaultQueryTemplate(InputStream xslIs) throws TransformerConfigurationException, ParserConfigurationException, SAXException, IOException
-	{
-		defaultCompiledTemplates=getTemplates(xslIs);
-	}
-	public void addQueryTemplate(String name, InputStream xslIs) throws TransformerConfigurationException, ParserConfigurationException, SAXException, IOException
-	{
-		compiledTemplatesCache.put(name,getTemplates(xslIs));
-	}
-	public String getQueryAsXmlString(Properties formProperties,String queryTemplateName) throws SAXException, IOException, ParserConfigurationException, TransformerException
-	{
-		Templates ts= compiledTemplatesCache.get(queryTemplateName);
-		return getQueryAsXmlString(formProperties, ts);
-	}
-	
-	public Document getQueryAsDOM(Properties formProperties,String queryTemplateName) throws SAXException, IOException, ParserConfigurationException, TransformerException
-	{
-		Templates ts= compiledTemplatesCache.get(queryTemplateName);
-		return getQueryAsDOM(formProperties, ts);
-	}
-	public String getQueryAsXmlString(Properties formProperties) throws SAXException, IOException, ParserConfigurationException, TransformerException
-	{
-		return getQueryAsXmlString(formProperties, defaultCompiledTemplates);
-	}
-	
-	public Document getQueryAsDOM(Properties formProperties) throws SAXException, IOException, ParserConfigurationException, TransformerException
-	{
-		return getQueryAsDOM(formProperties, defaultCompiledTemplates);
-	}
-	
-	
-	/**
-	 * Fast means of constructing query using a precompiled stylesheet  
-	 */		
-	public static String getQueryAsXmlString(Properties formProperties, Templates template) throws SAXException, IOException, ParserConfigurationException, TransformerException 
-	{
-  		ByteArrayOutputStream baos=new ByteArrayOutputStream();
-  		StreamResult result=new StreamResult(baos);
-  		transformCriteria(formProperties,template,result);
-  		return baos.toString();  		
-	}
-	
-	/**
-	 * Slow means of constructing query parsing a stylesheet from an input stream  
-	 */		
-	public static String getQueryAsXmlString(Properties formProperties, InputStream xslIs) throws SAXException, IOException, ParserConfigurationException, TransformerException 
-	{
-  		ByteArrayOutputStream baos=new ByteArrayOutputStream();
-  		StreamResult result=new StreamResult(baos);
-  		transformCriteria(formProperties,xslIs,result);
-  		return baos.toString();  		
-	}
-			
-
-	/**
-	 * Fast means of constructing query using a cached,precompiled stylesheet  
-	 */	
-	public static Document getQueryAsDOM(Properties formProperties, Templates template) throws SAXException, IOException, ParserConfigurationException, TransformerException
-	{
-  		DOMResult result=new DOMResult();
-  		transformCriteria(formProperties,template,result);
-  		return (Document)result.getNode();
-	}
-
-	
-	/**
-	 * Slow means of constructing query - parses stylesheet from input stream 
-	 */
-	public static Document getQueryAsDOM(Properties formProperties, InputStream xslIs) throws SAXException, IOException, ParserConfigurationException, TransformerException
-	{
-  		DOMResult result=new DOMResult();
-  		transformCriteria(formProperties,xslIs,result);
-  		return (Document)result.getNode();
-	}
-	
-	
-	
-	
-	/**
-	 * Slower transformation using an uncompiled stylesheet (suitable for development environment)
-	 */
-	public static void transformCriteria(Properties formProperties, InputStream xslIs, Result result) throws SAXException, IOException, ParserConfigurationException, TransformerException
-	{
-        dbf.setNamespaceAware(true);	    
-		DocumentBuilder builder = dbf.newDocumentBuilder();
-		org.w3c.dom.Document xslDoc = builder.parse(xslIs);
-		DOMSource ds = new DOMSource(xslDoc);
-		
-		Transformer transformer =null;
-		synchronized (tFactory)
-		{
-			transformer = tFactory.newTransformer(ds);			
-		}
-		transformCriteria(formProperties,transformer,result);
-	}
-	
-	/**
-	 * Fast transformation using a pre-compiled stylesheet (suitable for production environments)
-	 */
-	public static void transformCriteria(Properties formProperties, Templates template, Result result) throws SAXException, IOException, ParserConfigurationException, TransformerException
-	{
-		transformCriteria(formProperties,template.newTransformer(),result);
-	}
-	
-	
-	
-	public static void transformCriteria(Properties formProperties, Transformer transformer, Result result) throws SAXException, IOException, ParserConfigurationException, TransformerException
-	{
-        dbf.setNamespaceAware(true);
-        
-	    //Create an XML document representing the search index document.
-		DocumentBuilder db = dbf.newDocumentBuilder ();
-		org.w3c.dom.Document doc = db.newDocument ();
-		Element root = doc.createElement ("Document");
-		doc.appendChild (root);
-		
-		Enumeration keysEnum = formProperties.keys();
-		while(keysEnum.hasMoreElements())
-		{
-		    String propName=(String) keysEnum.nextElement();
-		    String value=formProperties.getProperty(propName);
-    		if((value!=null)&&(value.length()>0))
-    		{
-    		    DOMUtils.insertChild(root,propName,value);    			
-    		}
-		}		
-		//Use XSLT to to transform into an XML query string using the  queryTemplate
-		DOMSource xml=new DOMSource(doc);
-		transformer.transform(xml,result);		
-	}
-	
-	/**
-	 * Parses a query stylesheet for repeated use
-	 */
-	public static Templates getTemplates(InputStream xslIs) throws ParserConfigurationException, SAXException, IOException, TransformerConfigurationException  
-	{
-        dbf.setNamespaceAware(true);	    
-		DocumentBuilder builder = dbf.newDocumentBuilder();
-		org.w3c.dom.Document xslDoc = builder.parse(xslIs);
-		DOMSource ds = new DOMSource(xslDoc);
-		return tFactory.newTemplates(ds);
+public class QueryTemplateManager {
+  static final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+  static final TransformerFactory tFactory = TransformerFactory.newInstance();
+
+  HashMap<String, Templates> compiledTemplatesCache = new HashMap<String, Templates>();
+  Templates defaultCompiledTemplates = null;
+
+
+  public QueryTemplateManager() {
+
+  }
+
+  public QueryTemplateManager(InputStream xslIs)
+      throws TransformerConfigurationException, ParserConfigurationException, SAXException, IOException {
+    addDefaultQueryTemplate(xslIs);
+  }
+
+  public void addDefaultQueryTemplate(InputStream xslIs)
+      throws TransformerConfigurationException, ParserConfigurationException, SAXException, IOException {
+    defaultCompiledTemplates = getTemplates(xslIs);
+  }
+
+  public void addQueryTemplate(String name, InputStream xslIs)
+      throws TransformerConfigurationException, ParserConfigurationException, SAXException, IOException {
+    compiledTemplatesCache.put(name, getTemplates(xslIs));
+  }
+
+  public String getQueryAsXmlString(Properties formProperties, String queryTemplateName)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    Templates ts = compiledTemplatesCache.get(queryTemplateName);
+    return getQueryAsXmlString(formProperties, ts);
+  }
+
+  public Document getQueryAsDOM(Properties formProperties, String queryTemplateName)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    Templates ts = compiledTemplatesCache.get(queryTemplateName);
+    return getQueryAsDOM(formProperties, ts);
+  }
+
+  public String getQueryAsXmlString(Properties formProperties)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    return getQueryAsXmlString(formProperties, defaultCompiledTemplates);
+  }
+
+  public Document getQueryAsDOM(Properties formProperties)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    return getQueryAsDOM(formProperties, defaultCompiledTemplates);
+  }
+
+  /**
+   * Fast means of constructing query using a precompiled stylesheet
+   */
+  public static String getQueryAsXmlString(Properties formProperties, Templates template)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    StreamResult result = new StreamResult(baos);
+    transformCriteria(formProperties, template, result);
+    return baos.toString();
+  }
+
+  /**
+   * Slow means of constructing query parsing a stylesheet from an input stream
+   */
+  public static String getQueryAsXmlString(Properties formProperties, InputStream xslIs)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    StreamResult result = new StreamResult(baos);
+    transformCriteria(formProperties, xslIs, result);
+    return baos.toString();
+  }
+
+
+  /**
+   * Fast means of constructing query using a cached,precompiled stylesheet
+   */
+  public static Document getQueryAsDOM(Properties formProperties, Templates template)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    DOMResult result = new DOMResult();
+    transformCriteria(formProperties, template, result);
+    return (Document) result.getNode();
+  }
+
+
+  /**
+   * Slow means of constructing query - parses stylesheet from input stream
+   */
+  public static Document getQueryAsDOM(Properties formProperties, InputStream xslIs)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    DOMResult result = new DOMResult();
+    transformCriteria(formProperties, xslIs, result);
+    return (Document) result.getNode();
+  }
+
+
+  /**
+   * Slower transformation using an uncompiled stylesheet (suitable for development environment)
+   */
+  public static void transformCriteria(Properties formProperties, InputStream xslIs, Result result)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    dbf.setNamespaceAware(true);
+    DocumentBuilder builder = dbf.newDocumentBuilder();
+    org.w3c.dom.Document xslDoc = builder.parse(xslIs);
+    DOMSource ds = new DOMSource(xslDoc);
+
+    Transformer transformer = null;
+    synchronized (tFactory) {
+      transformer = tFactory.newTransformer(ds);
+    }
+    transformCriteria(formProperties, transformer, result);
+  }
+
+  /**
+   * Fast transformation using a pre-compiled stylesheet (suitable for production environments)
+   */
+  public static void transformCriteria(Properties formProperties, Templates template, Result result)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    transformCriteria(formProperties, template.newTransformer(), result);
+  }
+
+
+  public static void transformCriteria(Properties formProperties, Transformer transformer, Result result)
+      throws SAXException, IOException, ParserConfigurationException, TransformerException {
+    dbf.setNamespaceAware(true);
+
+    //Create an XML document representing the search index document.
+    DocumentBuilder db = dbf.newDocumentBuilder();
+    org.w3c.dom.Document doc = db.newDocument();
+    Element root = doc.createElement("Document");
+    doc.appendChild(root);
+
+    Enumeration keysEnum = formProperties.keys();
+    while (keysEnum.hasMoreElements()) {
+      String propName = (String) keysEnum.nextElement();
+      String value = formProperties.getProperty(propName);
+      if ((value != null) && (value.length() > 0)) {
+        DOMUtils.insertChild(root, propName, value);
+      }
+    }
+    //Use XSLT to to transform into an XML query string using the  queryTemplate
+    DOMSource xml = new DOMSource(doc);
+    transformer.transform(xml, result);
+  }
+
+  /**
+   * Parses a query stylesheet for repeated use
+   */
+  public static Templates getTemplates(InputStream xslIs)
+      throws ParserConfigurationException, SAXException, IOException, TransformerConfigurationException {
+    dbf.setNamespaceAware(true);
+    DocumentBuilder builder = dbf.newDocumentBuilder();
+    org.w3c.dom.Document xslDoc = builder.parse(xslIs);
+    DOMSource ds = new DOMSource(xslDoc);
+    return tFactory.newTemplates(ds);
 	}
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanFilterBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanFilterBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanFilterBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanFilterBuilder.java Tue Aug 23 14:06:58 2011
@@ -4,9 +4,9 @@
 package org.apache.lucene.xmlparser.builders;
 
 import org.apache.lucene.search.BooleanClause;
-import org.apache.lucene.search.BooleanFilter;
+import org.apache.lucene.queries.BooleanFilter;
 import org.apache.lucene.search.Filter;
-import org.apache.lucene.search.FilterClause;
+import org.apache.lucene.queries.FilterClause;
 import org.apache.lucene.xmlparser.DOMUtils;
 import org.apache.lucene.xmlparser.FilterBuilder;
 import org.apache.lucene.xmlparser.ParserException;
@@ -32,36 +32,33 @@ import org.w3c.dom.NodeList;
  */
 
 /**
- * 
+ *
  */
 public class BooleanFilterBuilder implements FilterBuilder {
-	
-	private FilterBuilder factory;
 
-	public BooleanFilterBuilder(FilterBuilder factory)
-	{
-		this.factory=factory;
-	}
-
-	public Filter getFilter(Element e) throws ParserException {
-		BooleanFilter bf=new BooleanFilter();
-		NodeList nl = e.getChildNodes();
-		
-		for(int i=0;i<nl.getLength();i++)
-		{
-			Node node = nl.item(i);
-			if(node.getNodeName().equals("Clause"))
-			{
-				Element clauseElem=(Element) node;
-				BooleanClause.Occur occurs=BooleanQueryBuilder.getOccursValue(clauseElem);
-			
-	 			Element clauseFilter=DOMUtils.getFirstChildOrFail(clauseElem);
-	 			Filter f=factory.getFilter(clauseFilter);
-	 			bf.add(new FilterClause(f,occurs));
-			}
-		}
-		
-		return bf;
-	}
+  private final FilterBuilder factory;
+
+  public BooleanFilterBuilder(FilterBuilder factory) {
+    this.factory = factory;
+  }
+
+  public Filter getFilter(Element e) throws ParserException {
+    BooleanFilter bf = new BooleanFilter();
+    NodeList nl = e.getChildNodes();
+
+    for (int i = 0; i < nl.getLength(); i++) {
+      Node node = nl.item(i);
+      if (node.getNodeName().equals("Clause")) {
+        Element clauseElem = (Element) node;
+        BooleanClause.Occur occurs = BooleanQueryBuilder.getOccursValue(clauseElem);
+
+        Element clauseFilter = DOMUtils.getFirstChildOrFail(clauseElem);
+        Filter f = factory.getFilter(clauseFilter);
+        bf.add(new FilterClause(f, occurs));
+      }
+    }
+
+    return bf;
+  }
 
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanQueryBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanQueryBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanQueryBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BooleanQueryBuilder.java Tue Aug 23 14:06:58 2011
@@ -30,73 +30,61 @@ import org.w3c.dom.NodeList;
  */
 
 /**
- * 
+ *
  */
 public class BooleanQueryBuilder implements QueryBuilder {
-	
-	private QueryBuilder factory;
 
-	public BooleanQueryBuilder(QueryBuilder factory)
-	{
-		this.factory=factory;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.apache.lucene.xmlparser.QueryObjectBuilder#process(org.w3c.dom.Element)
-	 */
-	public Query getQuery(Element e) throws ParserException {
-		BooleanQuery bq=new BooleanQuery(DOMUtils.getAttribute(e,"disableCoord",false));
-		bq.setMinimumNumberShouldMatch(DOMUtils.getAttribute(e,"minimumNumberShouldMatch",0));
-		bq.setBoost(DOMUtils.getAttribute(e,"boost",1.0f));
-		
-		NodeList nl = e.getChildNodes();
-		for(int i=0;i<nl.getLength();i++)
-		{
-			Node node = nl.item(i);
-			if(node.getNodeName().equals("Clause"))
-			{
-				Element clauseElem=(Element) node;
-				BooleanClause.Occur occurs=getOccursValue(clauseElem);
-				
-	 			Element clauseQuery=DOMUtils.getFirstChildOrFail(clauseElem);
-	 			Query q=factory.getQuery(clauseQuery);
-	 			bq.add(new BooleanClause(q,occurs));
-			}
-		}
-		
-		return bq;
-	}
-	static BooleanClause.Occur getOccursValue(Element clauseElem) throws ParserException
-	{
-		String occs=clauseElem.getAttribute("occurs");
-		BooleanClause.Occur occurs=BooleanClause.Occur.SHOULD;
-		if("must".equalsIgnoreCase(occs))
-		{
-			occurs=BooleanClause.Occur.MUST;
-		}
-		else
-		{
-			if("mustNot".equalsIgnoreCase(occs))
-			{
-				occurs=BooleanClause.Occur.MUST_NOT;
-			}			
-			else
-			{
-				if(("should".equalsIgnoreCase(occs))||("".equals(occs)))
-				{
-					occurs=BooleanClause.Occur.SHOULD;
-				}			
-				else				
-				{
-					if(occs!=null)
-					{
-						throw new ParserException("Invalid value for \"occurs\" attribute of clause:"+occs);
-					}
-				}
-			}
-		}
-		return occurs;
-		
-	}
+  private final QueryBuilder factory;
+
+  public BooleanQueryBuilder(QueryBuilder factory) {
+    this.factory = factory;
+  }
+
+  /* (non-Javadoc)
+    * @see org.apache.lucene.xmlparser.QueryObjectBuilder#process(org.w3c.dom.Element)
+    */
+
+  public Query getQuery(Element e) throws ParserException {
+    BooleanQuery bq = new BooleanQuery(DOMUtils.getAttribute(e, "disableCoord", false));
+    bq.setMinimumNumberShouldMatch(DOMUtils.getAttribute(e, "minimumNumberShouldMatch", 0));
+    bq.setBoost(DOMUtils.getAttribute(e, "boost", 1.0f));
+
+    NodeList nl = e.getChildNodes();
+    for (int i = 0; i < nl.getLength(); i++) {
+      Node node = nl.item(i);
+      if (node.getNodeName().equals("Clause")) {
+        Element clauseElem = (Element) node;
+        BooleanClause.Occur occurs = getOccursValue(clauseElem);
+
+        Element clauseQuery = DOMUtils.getFirstChildOrFail(clauseElem);
+        Query q = factory.getQuery(clauseQuery);
+        bq.add(new BooleanClause(q, occurs));
+      }
+    }
+
+    return bq;
+  }
+
+  static BooleanClause.Occur getOccursValue(Element clauseElem) throws ParserException {
+    String occs = clauseElem.getAttribute("occurs");
+    BooleanClause.Occur occurs = BooleanClause.Occur.SHOULD;
+    if ("must".equalsIgnoreCase(occs)) {
+      occurs = BooleanClause.Occur.MUST;
+    } else {
+      if ("mustNot".equalsIgnoreCase(occs)) {
+        occurs = BooleanClause.Occur.MUST_NOT;
+      } else {
+        if (("should".equalsIgnoreCase(occs)) || ("".equals(occs))) {
+          occurs = BooleanClause.Occur.SHOULD;
+        } else {
+          if (occs != null) {
+            throw new ParserException("Invalid value for \"occurs\" attribute of clause:" + occs);
+          }
+        }
+      }
+    }
+    return occurs;
+
+  }
 
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BoostingQueryBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BoostingQueryBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BoostingQueryBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BoostingQueryBuilder.java Tue Aug 23 14:06:58 2011
@@ -1,6 +1,6 @@
 package org.apache.lucene.xmlparser.builders;
 
-import org.apache.lucene.search.BoostingQuery;
+import org.apache.lucene.queries.BoostingQuery;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.xmlparser.DOMUtils;
 import org.apache.lucene.xmlparser.ParserException;
@@ -24,37 +24,32 @@ import org.w3c.dom.Element;
  */
 
 /**
- * 
+ *
  */
-public class BoostingQueryBuilder implements QueryBuilder
-{
-	
-	private QueryBuilder factory;
-	float defaultBoost=0.01f;
-
-	public BoostingQueryBuilder (QueryBuilder factory)
-	{
-		this.factory=factory;
-	}
-
-	public Query getQuery(Element e) throws ParserException
-	{
-		
-        Element mainQueryElem=DOMUtils.getChildByTagOrFail(e,"Query");
- 		mainQueryElem=DOMUtils.getFirstChildOrFail(mainQueryElem);
-  		Query mainQuery=factory.getQuery(mainQueryElem);
-
- 		Element boostQueryElem=DOMUtils.getChildByTagOrFail(e,"BoostQuery");
-  		float boost=DOMUtils.getAttribute(boostQueryElem,"boost",defaultBoost);
- 		boostQueryElem=DOMUtils.getFirstChildOrFail(boostQueryElem);
-  		Query boostQuery=factory.getQuery(boostQueryElem);
-  		
-  		BoostingQuery bq = new BoostingQuery(mainQuery,boostQuery,boost);
+public class BoostingQueryBuilder implements QueryBuilder {
+
+  private static float DEFAULT_BOOST = 0.01f;
+  
+  private final QueryBuilder factory;
+
+  public BoostingQueryBuilder(QueryBuilder factory) {
+    this.factory = factory;
+  }
+
+  public Query getQuery(Element e) throws ParserException {
+    Element mainQueryElem = DOMUtils.getChildByTagOrFail(e, "Query");
+    mainQueryElem = DOMUtils.getFirstChildOrFail(mainQueryElem);
+    Query mainQuery = factory.getQuery(mainQueryElem);
 
-  		bq.setBoost(DOMUtils.getAttribute(e,"boost",1.0f));
-		return bq;
+    Element boostQueryElem = DOMUtils.getChildByTagOrFail(e, "BoostQuery");
+    float boost = DOMUtils.getAttribute(boostQueryElem, "boost", DEFAULT_BOOST);
+    boostQueryElem = DOMUtils.getFirstChildOrFail(boostQueryElem);
+    Query boostQuery = factory.getQuery(boostQueryElem);
 
-	}
+    BoostingQuery bq = new BoostingQuery(mainQuery, boostQuery, boost);
 
+    bq.setBoost(DOMUtils.getAttribute(e, "boost", 1.0f));
+    return bq;
 
+  }
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BoostingTermBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BoostingTermBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BoostingTermBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/BoostingTermBuilder.java Tue Aug 23 14:06:58 2011
@@ -1,9 +1,9 @@
 package org.apache.lucene.xmlparser.builders;
 
 import org.apache.lucene.index.Term;
-import org.apache.lucene.search.spans.SpanQuery;
-import org.apache.lucene.search.payloads.PayloadTermQuery;
 import org.apache.lucene.search.payloads.AveragePayloadFunction;
+import org.apache.lucene.search.payloads.PayloadTermQuery;
+import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.xmlparser.DOMUtils;
 import org.apache.lucene.xmlparser.ParserException;
 import org.w3c.dom.Element;
@@ -26,20 +26,17 @@ import org.w3c.dom.Element;
  */
 
 /**
- * 
+ *
  */
-public class BoostingTermBuilder extends SpanBuilderBase
-{
-
-	public SpanQuery getSpanQuery(Element e) throws ParserException
-	{
- 		String fieldName=DOMUtils.getAttributeWithInheritanceOrFail(e,"fieldName");
- 		String value=DOMUtils.getNonBlankTextOrFail(e);
-  		PayloadTermQuery btq = new PayloadTermQuery(new Term(fieldName,value), new AveragePayloadFunction());
-
-  		btq.setBoost(DOMUtils.getAttribute(e,"boost",1.0f));
-		return btq;
+public class BoostingTermBuilder extends SpanBuilderBase {
 
-	}
+  public SpanQuery getSpanQuery(Element e) throws ParserException {
+    String fieldName = DOMUtils.getAttributeWithInheritanceOrFail(e, "fieldName");
+    String value = DOMUtils.getNonBlankTextOrFail(e);
+
+    PayloadTermQuery btq = new PayloadTermQuery(new Term(fieldName, value), new AveragePayloadFunction());
+    btq.setBoost(DOMUtils.getAttribute(e, "boost", 1.0f));
+    return btq;
+  }
 
 }
\ No newline at end of file

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/CachedFilterBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/CachedFilterBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/CachedFilterBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/CachedFilterBuilder.java Tue Aug 23 14:06:58 2011
@@ -3,19 +3,14 @@
  */
 package org.apache.lucene.xmlparser.builders;
 
-import java.util.Map.Entry;
-
 import org.apache.lucene.search.CachingWrapperFilter;
 import org.apache.lucene.search.Filter;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.QueryWrapperFilter;
-import org.apache.lucene.xmlparser.DOMUtils;
-import org.apache.lucene.xmlparser.FilterBuilder;
-import org.apache.lucene.xmlparser.FilterBuilderFactory;
-import org.apache.lucene.xmlparser.ParserException;
-import org.apache.lucene.xmlparser.QueryBuilder;
-import org.apache.lucene.xmlparser.QueryBuilderFactory;
+import org.apache.lucene.xmlparser.*;
 import org.w3c.dom.Element;
+
+import java.util.Map;
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -32,99 +27,89 @@ import org.w3c.dom.Element;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 /**
- * Filters are cached in an LRU Cache keyed on the contained query or filter object. Using this will 
- * speed up overall performance for repeated uses of the same expensive query/filter. The sorts of 
- * queries/filters likely to benefit from caching need not necessarily be complex - e.g. simple 
- * TermQuerys with a large DF (document frequency) can be expensive	on large indexes. 
- * A good example of this might be a term query on a field with only 2 possible	values - 
- * "true" or "false". In a large index, querying or filtering on this field requires reading 
+ * Filters are cached in an LRU Cache keyed on the contained query or filter object. Using this will
+ * speed up overall performance for repeated uses of the same expensive query/filter. The sorts of
+ * queries/filters likely to benefit from caching need not necessarily be complex - e.g. simple
+ * TermQuerys with a large DF (document frequency) can be expensive	on large indexes.
+ * A good example of this might be a term query on a field with only 2 possible	values -
+ * "true" or "false". In a large index, querying or filtering on this field requires reading
  * millions	of document ids from disk which can more usefully be cached as a filter bitset.
- * 
+ * <p/>
  * For Queries/Filters to be cached and reused the object must implement hashcode and
  * equals methods correctly so that duplicate queries/filters can be detected in the cache.
- * 
- * The CoreParser.maxNumCachedFilters property can be used to control the size of the LRU 
+ * <p/>
+ * The CoreParser.maxNumCachedFilters property can be used to control the size of the LRU
  * Cache established during the construction of CoreParser instances.
- *
  */
 public class CachedFilterBuilder implements FilterBuilder {
 
-	private QueryBuilderFactory queryFactory;
-	private FilterBuilderFactory filterFactory;
-	
-    private  LRUCache<Object,Filter> filterCache = null;
-
-	private int cacheSize;
-
-	public CachedFilterBuilder(QueryBuilderFactory queryFactory, 
-			FilterBuilderFactory filterFactory,int cacheSize)
-	{
-		this.queryFactory=queryFactory;
-		this.filterFactory=filterFactory;
-		this.cacheSize=cacheSize;
-	}
-
-	public synchronized Filter getFilter(Element e) throws ParserException
-	{
-
-		Element childElement = DOMUtils.getFirstChildOrFail(e);
-
-		if (filterCache == null)
-		{
-			filterCache = new LRUCache<Object,Filter>(cacheSize);
-		}
-
-		// Test to see if child Element is a query or filter that needs to be
-		// cached
-		QueryBuilder qb = queryFactory.getQueryBuilder(childElement.getNodeName());
-		Object cacheKey = null;
-		Query q = null;
-		Filter f = null;
-		if (qb != null)
-		{
-			q = qb.getQuery(childElement);
-			cacheKey = q;
-		} else
-		{
-			f = filterFactory.getFilter(childElement);
-			cacheKey = f;
-		}
-		Filter cachedFilter = filterCache.get(cacheKey);
-		if (cachedFilter != null)
-		{
-			return cachedFilter; // cache hit
-		}
-		
-		//cache miss
-		if (qb != null)
-		{
-			cachedFilter = new QueryWrapperFilter(q);
-		} else
-		{
-			cachedFilter = new CachingWrapperFilter(f);
-		}
-
-		filterCache.put(cacheKey, cachedFilter);
-		return cachedFilter;
-	}
-	
-	static class LRUCache<K,V> extends java.util.LinkedHashMap<K,V>
-	{
-	    public LRUCache(int maxsize)
-	    {
-	        super(maxsize * 4 / 3 + 1, 0.75f, true);
-	        this.maxsize = maxsize;
-	    }
-
-	    protected int maxsize;
-
-	    @Override
-	    protected boolean removeEldestEntry(Entry<K,V> eldest)
-	    {
-	        return size() > maxsize;
-	    }
+  private final QueryBuilderFactory queryFactory;
+  private final FilterBuilderFactory filterFactory;
+
+  private LRUCache<Object, Filter> filterCache;
+
+  private final int cacheSize;
+
+  public CachedFilterBuilder(QueryBuilderFactory queryFactory,
+                             FilterBuilderFactory filterFactory,
+                             int cacheSize) {
+    this.queryFactory = queryFactory;
+    this.filterFactory = filterFactory;
+    this.cacheSize = cacheSize;
+  }
+
+  public synchronized Filter getFilter(Element e) throws ParserException {
+    Element childElement = DOMUtils.getFirstChildOrFail(e);
+
+    if (filterCache == null) {
+      filterCache = new LRUCache<Object, Filter>(cacheSize);
+    }
+
+    // Test to see if child Element is a query or filter that needs to be
+    // cached
+    QueryBuilder qb = queryFactory.getQueryBuilder(childElement.getNodeName());
+    Object cacheKey = null;
+    Query q = null;
+    Filter f = null;
+    if (qb != null) {
+      q = qb.getQuery(childElement);
+      cacheKey = q;
+    } else {
+      f = filterFactory.getFilter(childElement);
+      cacheKey = f;
+    }
+    Filter cachedFilter = filterCache.get(cacheKey);
+    if (cachedFilter != null) {
+      return cachedFilter; // cache hit
+    }
+
+    //cache miss
+    if (qb != null) {
+      cachedFilter = new QueryWrapperFilter(q);
+    } else {
+      cachedFilter = new CachingWrapperFilter(f);
+    }
+
+    filterCache.put(cacheKey, cachedFilter);
+    return cachedFilter;
+  }
+
+  static class LRUCache<K, V> extends java.util.LinkedHashMap<K, V> {
+
+    public LRUCache(int maxsize) {
+      super(maxsize * 4 / 3 + 1, 0.75f, true);
+      this.maxsize = maxsize;
+    }
+
+    protected int maxsize;
+
+    @Override
+    protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
+      return size() > maxsize;
+    }
 
-	}
+  }
 
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/ConstantScoreQueryBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/ConstantScoreQueryBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/ConstantScoreQueryBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/ConstantScoreQueryBuilder.java Tue Aug 23 14:06:58 2011
@@ -25,26 +25,22 @@ import org.w3c.dom.Element;
  */
 
 /**
- * 
+ *
  */
-public class ConstantScoreQueryBuilder implements QueryBuilder
-{
-	private FilterBuilderFactory filterFactory;
-
-	public ConstantScoreQueryBuilder(FilterBuilderFactory filterFactory)
-	{
-		this.filterFactory=filterFactory;
-	}
-
-	public Query getQuery(Element e) throws ParserException
-	{
- 		Element filterElem=DOMUtils.getFirstChildOrFail(e);
-  		Query q=new ConstantScoreQuery(filterFactory.getFilter(filterElem));
-
-  		q.setBoost(DOMUtils.getAttribute(e,"boost",1.0f));
-
-  		return q;
-		
-	}
+public class ConstantScoreQueryBuilder implements QueryBuilder {
+
+  private final FilterBuilderFactory filterFactory;
+
+  public ConstantScoreQueryBuilder(FilterBuilderFactory filterFactory) {
+    this.filterFactory = filterFactory;
+  }
+
+  public Query getQuery(Element e) throws ParserException {
+    Element filterElem = DOMUtils.getFirstChildOrFail(e);
+
+    Query q = new ConstantScoreQuery(filterFactory.getFilter(filterElem));
+    q.setBoost(DOMUtils.getAttribute(e, "boost", 1.0f));
+    return q;
+  }
 
 }

Modified: lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/DuplicateFilterBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/DuplicateFilterBuilder.java?rev=1160700&r1=1160699&r2=1160700&view=diff
==============================================================================
--- lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/DuplicateFilterBuilder.java (original)
+++ lucene/dev/branches/flexscoring/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/DuplicateFilterBuilder.java Tue Aug 23 14:06:58 2011
@@ -3,7 +3,7 @@
  */
 package org.apache.lucene.xmlparser.builders;
 
-import org.apache.lucene.search.DuplicateFilter;
+import org.apache.lucene.sandbox.queries.DuplicateFilter;
 import org.apache.lucene.search.Filter;
 import org.apache.lucene.xmlparser.DOMUtils;
 import org.apache.lucene.xmlparser.FilterBuilder;
@@ -28,44 +28,33 @@ import org.w3c.dom.Element;
  */
 
 /**
- * 
+ *
  */
 public class DuplicateFilterBuilder implements FilterBuilder {
-	
 
-	public Filter getFilter(Element e) throws ParserException {
-        String fieldName=DOMUtils.getAttributeWithInheritanceOrFail(e,"fieldName");
-		DuplicateFilter df=new DuplicateFilter(fieldName);
-		String keepMode=DOMUtils.getAttribute(e,"keepMode","first");
-		if(keepMode.equalsIgnoreCase("first"))
-		{
-			df.setKeepMode(DuplicateFilter.KeepMode.KM_USE_FIRST_OCCURRENCE);
-		}
-		else
-			if(keepMode.equalsIgnoreCase("last"))
-			{
-				df.setKeepMode(DuplicateFilter.KeepMode.KM_USE_LAST_OCCURRENCE);
-			}
-			else
-			{
-				throw new ParserException("Illegal keepMode attribute in DuplicateFilter:"+keepMode);
-			}
-		String processingMode=DOMUtils.getAttribute(e,"processingMode","full");
-		if(processingMode.equalsIgnoreCase("full"))
-		{
-			df.setProcessingMode(DuplicateFilter.ProcessingMode.PM_FULL_VALIDATION);
-		}
-		else
-			if(processingMode.equalsIgnoreCase("fast"))
-			{
-				df.setProcessingMode(DuplicateFilter.ProcessingMode.PM_FAST_INVALIDATION);
-			}
-			else
-			{
-				throw new ParserException("Illegal processingMode attribute in DuplicateFilter:"+processingMode);
-			}
-					
-		return df;
-	}
+  public Filter getFilter(Element e) throws ParserException {
+    String fieldName = DOMUtils.getAttributeWithInheritanceOrFail(e, "fieldName");
+    DuplicateFilter df = new DuplicateFilter(fieldName);
+
+    String keepMode = DOMUtils.getAttribute(e, "keepMode", "first");
+    if (keepMode.equalsIgnoreCase("first")) {
+      df.setKeepMode(DuplicateFilter.KeepMode.KM_USE_FIRST_OCCURRENCE);
+    } else if (keepMode.equalsIgnoreCase("last")) {
+      df.setKeepMode(DuplicateFilter.KeepMode.KM_USE_LAST_OCCURRENCE);
+    } else {
+      throw new ParserException("Illegal keepMode attribute in DuplicateFilter:" + keepMode);
+    }
+
+    String processingMode = DOMUtils.getAttribute(e, "processingMode", "full");
+    if (processingMode.equalsIgnoreCase("full")) {
+      df.setProcessingMode(DuplicateFilter.ProcessingMode.PM_FULL_VALIDATION);
+    } else if (processingMode.equalsIgnoreCase("fast")) {
+      df.setProcessingMode(DuplicateFilter.ProcessingMode.PM_FAST_INVALIDATION);
+    } else {
+      throw new ParserException("Illegal processingMode attribute in DuplicateFilter:" + processingMode);
+    }
+
+    return df;
+  }
 
 }