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/05/09 15:19:39 UTC

svn commit: r1101016 [7/10] - in /lucene/dev/branches/bulkpostings: ./ dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/libraries/ dev-tools/idea/solr/ dev-tools/maven/lucene/contrib/ant/ dev-tools/maven/lucene/contrib/db/bdb-je/ dev-tools/maven/luce...

Modified: lucene/dev/branches/bulkpostings/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/CHANGES.txt?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/CHANGES.txt (original)
+++ lucene/dev/branches/bulkpostings/solr/CHANGES.txt Mon May  9 13:19:28 2011
@@ -25,7 +25,7 @@ $Id$
 Versions of Major Components
 ---------------------
 Apache Lucene trunk
-Apache Tika 0.8-SNAPSHOT
+Apache Tika 0.8
 Carrot2 3.4.2
 Velocity 1.6.4 and Velocity Tools 2.0
 Apache UIMA 2.3.1-SNAPSHOT
@@ -108,6 +108,20 @@ New Features
   Adding a parameter NOW=<time_in_ms> to the request will override the
   current time.  (Peter Sturge, yonik)
 
+* SOLR-1566: Transforming documents in the ResponseWriters.  This will allow
+  for more complex results in responses and open the door for function queries
+  as results. (ryan with patches from grant, noble, cmale, yonik)
+
+* SOLR-2417: Add explain info directly to return documents using ?fl=_explain_ (ryan)
+
+* SOLR-2396: Add CollationField, which is much more efficient than 
+  the Solr 3.x CollationKeyFilterFactory, and also supports 
+  Locale-sensitive range queries. (rmuir)
+
+* SOLR-2338: Add support for using <similarity/> in a schema's fieldType,
+  for customizing scoring on a per-field basis. (hossman, yonik, rmuir)
+  
+
 Optimizations
 ----------------------
 
@@ -189,6 +203,14 @@ Other Changes
   in the XMLResponseWriter was removed.  XMLResponseWriter only 
   no longer work with values less then 2.2 (ryan)
 
+* SOLR-2423: FieldType argument changed from String to Object
+  Conversion from SolrInputDocument > Object > Fieldable is now managed
+  by FieldType rather then DocumentBuilder.  (ryan)
+  
+* SOLR-2061: Pull base tests out into a new Solr Test Framework module,
+  and publish binary, javadoc, and source test-framework jars. 
+  (Drew Farris, Robert Muir, Steve Rowe)
+
 
 Documentation
 ----------------------
@@ -196,33 +218,64 @@ Documentation
 * SOLR-2232: Improved README info on solr.solr.home in examples
   (Eric Pugh and hossman)
 
+* LUCENE-3006: Building javadocs will fail on warnings by default.  Override with -Dfailonjavadocwarning=false (sarowe, gsingers)
+
 ==================  3.2.0-dev ==================
 Versions of Major Components
 ---------------------
 Apache Lucene trunk
-Apache Tika 0.8-SNAPSHOT
+Apache Tika 0.8
 Carrot2 3.4.2
 
-(No Changes)
 
-==================  3.1.0-dev ==================
+Upgrading from Solr 3.1
+----------------------
+
+Detailed Change List
+----------------------
+
+New Features
+----------------------
+
+Optimizations
+----------------------
+
+Bug Fixes
+----------------------
+
+* SOLR-2445: Change the default qt to blank in form.jsp, because there is no "standard"
+  request handler unless you have it in your solrconfig.xml explicitly. (koji)
+
+Other Changes
+----------------------
+
+Build
+----------------------
+
+Documentation
+----------------------
+
+
+==================  3.1.0 ==================
 Versions of Major Components
 ---------------------
-Apache Lucene trunk
-Apache Tika 0.8-SNAPSHOT
+Apache Lucene 3.1.0
+Apache Tika 0.8
 Carrot2 3.4.2
+Velocity 1.6.1 and Velocity Tools 2.0-beta3
+Apache UIMA 2.3.1-SNAPSHOT
 
 
 Upgrading from Solr 1.4
 ----------------------
 
-* The Lucene index format has changed and as a result, once you upgrade, 
+* The Lucene index format has changed and as a result, once you upgrade,
   previous versions of Solr will no longer be able to read your indices.
   In a master/slave configuration, all searchers/slaves should be upgraded
   before the master.  If the master were to be updated first, the older
   searchers would not be able to read the new index format.
 
-* The Solr JavaBin format has changed as of Solr 3.1. If you are using the 
+* The Solr JavaBin format has changed as of Solr 3.1. If you are using the
   JavaBin format, you will need to upgrade your SolrJ client. (SOLR-2034)
 
 * The experimental ALIAS command has been removed (SOLR-1637)
@@ -233,10 +286,10 @@ Upgrading from Solr 1.4
   is deprecated (SOLR-1696)
 
 * The deprecated HTMLStripReader, HTMLStripWhitespaceTokenizerFactory and
-  HTMLStripStandardTokenizerFactory were removed. To strip HTML tags, 
-  HTMLStripCharFilter should be used instead, and it works with any 
+  HTMLStripStandardTokenizerFactory were removed. To strip HTML tags,
+  HTMLStripCharFilter should be used instead, and it works with any
   Tokenizer of your choice.  (SOLR-1657)
-  
+
 * Field compression is no longer supported. Fields that were formerly
   compressed will be uncompressed as index segments are merged. For
   shorter fields, this may actually be an improvement, as the compression
@@ -245,24 +298,24 @@ Upgrading from Solr 1.4
 * SOLR-1845: The TermsComponent response format was changed so that the
   "terms" container is a map instead of a named list.  This affects
    response formats like JSON, but not XML. (yonik)
-  
+
 * SOLR-1876: All Analyzers and TokenStreams are now final to enforce
   the decorator pattern.  (rmuir, uschindler)
 
-* LUCENE-2608: Added the ability to specify the accuracy on a per request basis. 
+* LUCENE-2608: Added the ability to specify the accuracy on a per request basis.
   It is recommended that implementations of SolrSpellChecker should change over to the new SolrSpellChecker
   methods using the new SpellingOptions class, but are not required to.  While this change is
   backward compatible, the trunk version of Solr has already dropped support for all but the SpellingOptions method. (gsingers)
 
 * readercycle script was removed. (SOLR-2046)
 
-* In previous releases, sorting or evaluating function queries on 
+* In previous releases, sorting or evaluating function queries on
   fields that were "multiValued" (either by explicit declaration in
   schema.xml or by implict behavior because the "version" attribute on
   the schema was less then 1.2) did not generally work, but it would
   sometimes silently act as if it succeeded and order the docs
   arbitrarily.  Solr will now fail on any attempt to sort, or apply a
-  function to, multi-valued fields 
+  function to, multi-valued fields
 
 * The DataImportHandler jars are no longer included in the solr
   WAR and should be added in Solr's lib directory, or referenced
@@ -332,15 +385,13 @@ New Features
 * SOLR-1379: Add RAMDirectoryFactory for non-persistent in memory index storage.
   (Alex Baranov via yonik)
 
-* SOLR-1769: Solr 1.4 Replication - Repeater throwing NullPointerException (Jörgen Rydenius via noble)  
-
-* SOLR-1857: Synced Solr analysis with Lucene 3.1. Added KeywordMarkerFilterFactory 
-  and StemmerOverrideFilterFactory, which can be used to tune stemming algorithms. 
+* SOLR-1857: Synced Solr analysis with Lucene 3.1. Added KeywordMarkerFilterFactory
+  and StemmerOverrideFilterFactory, which can be used to tune stemming algorithms.
   Added factories for Bulgarian, Czech, Hindi, Turkish, and Wikipedia analysis. Improved the
   performance of SnowballPorterFilterFactory.  (rmuir)
 
-* SOLR-1657: Converted remaining TokenStreams to the Attributes-based API. All Solr 
-  TokenFilters now support custom Attributes, and some have improved performance: 
+* SOLR-1657: Converted remaining TokenStreams to the Attributes-based API. All Solr
+  TokenFilters now support custom Attributes, and some have improved performance:
   especially WordDelimiterFilter and CommonGramsFilter.  (rmuir, cmale, uschindler)
 
 * SOLR-1740: ShingleFilterFactory supports the "minShingleSize" and "tokenSeparator"
@@ -349,10 +400,10 @@ New Features
 
 * SOLR-744: ShingleFilterFactory supports the "outputUnigramsIfNoShingles"
   parameter, to output unigrams if the number of input tokens is fewer than
-  minShingleSize, and no shingles can be generated.  
+  minShingleSize, and no shingles can be generated.
   (Chris Harris via Steven Rowe)
 
-* SOLR-1923: PhoneticFilterFactory now has support for the 
+* SOLR-1923: PhoneticFilterFactory now has support for the
   Caverphone algorithm. (rmuir)
 
 * SOLR-1957: The VelocityResponseWriter contrib moved to core.
@@ -420,14 +471,14 @@ New Features
    (Ankul Garg, Jason Rutherglen, Shalin Shekhar Mangar, Grant Ingersoll, Robert Muir, ab)
 
 * SOLR-1568: Added "native" filtering support for PointType, GeohashField.  Added LatLonType with filtering support too.  See
-  	     http://wiki.apache.org/solr/SpatialSearch and the example.  Refactored some items in Lucene spatial. 
+  	     http://wiki.apache.org/solr/SpatialSearch and the example.  Refactored some items in Lucene spatial.
 	     Removed SpatialTileField as the underlying CartesianTier is broken beyond repair and is going to be moved. (gsingers)
 
 * SOLR-2128: Full parameter substitution for function queries.
   Example: q=add($v1,$v2)&v1=mul(popularity,5)&v2=20.0
   (yonik)
 
-* SOLR-2133: Function query parser can now parse multiple coma separated
+* SOLR-2133: Function query parser can now parse multiple comma separated
   value sources.  It also now fails if there is extra unexpected text
   after parsing the functions, instead of silently ignoring it.
   This allows expressions like q=dist(2,vector(1,2),$pt)&pt=3,4   (yonik)
@@ -475,6 +526,8 @@ Optimizations
 
 Bug Fixes
 ----------------------
+* SOLR-1769: Solr 1.4 Replication - Repeater throwing NullPointerException (Jörgen Rydenius via noble)
+
 * SOLR-1432: Make the new ValueSource.getValues(context,reader) delegate
   to the original ValueSource.getValues(reader) so custom sources
   will work. (yonik)
@@ -496,8 +549,8 @@ Bug Fixes
 * SOLR-1584: SolrJ - SolrQuery.setIncludeScore() incorrectly added
   fl=score to the parameter list instead of appending score to the
   existing field list. (yonik)
-  
-* SOLR-1580: Solr Configuration ignores 'mergeFactor' parameter, always 
+
+* SOLR-1580: Solr Configuration ignores 'mergeFactor' parameter, always
   uses Lucene default. (Lance Norskog via Mark Miller)
 
 * SOLR-1593: ReverseWildcardFilter didn't work for surrogate pairs
@@ -514,7 +567,7 @@ Bug Fixes
   set when streaming updates, rather than using UTF-8 as the HTTP headers
   indicated, leading to an encoding mismatch. (hossman, yonik)
 
-* SOLR-1587: A distributed search request with fl=score, didn't match 
+* SOLR-1587: A distributed search request with fl=score, didn't match
   the behavior of a non-distributed request since it only returned
   the id,score fields instead of all fields in addition to score. (yonik)
 
@@ -523,7 +576,7 @@ Bug Fixes
 * SOLR-1615: Backslash escaping did not work in quoted strings
   for local param arguments. (Wojtek Piaseczny, yonik)
 
-* SOLR-1628: log contains incorrect number of adds and deletes. 
+* SOLR-1628: log contains incorrect number of adds and deletes.
   (Thijs Vonk via yonik)
 
 * SOLR-343: Date faceting now respects facet.mincount limiting
@@ -551,7 +604,7 @@ Bug Fixes
   (never officially released) introduced another hanging bug due to
   connections not being released.
   (Attila Babo, Erik Hetzner, Johannes Tuchscherer via yonik)
-  
+
 * SOLR-1748, SOLR-1747, SOLR-1746, SOLR-1745, SOLR-1744: Streams and Readers
   retrieved from ContentStreams are not closed in various places, resulting
   in file descriptor leaks.
@@ -560,7 +613,7 @@ Bug Fixes
 * SOLR-1753: StatsComponent throws NPE when getting statistics for facets in distributed search
   (Janne Majaranta via koji)
 
-* SOLR-1736:In the slave , If 'mov'ing file does not succeed , copy the file (noble)  
+* SOLR-1736:In the slave , If 'mov'ing file does not succeed , copy the file (noble)
 
 * SOLR-1579: Fixes to XML escaping in stats.jsp
   (David Bowen and hossman)
@@ -614,7 +667,7 @@ Bug Fixes
 
 * SOLR-2047: ReplicationHandler should accept bool type for enable flag. (koji)
 
-* SOLR-1630: Fix spell checking collation issue related to token positions (rmuir, gsingers) 
+* SOLR-1630: Fix spell checking collation issue related to token positions (rmuir, gsingers)
 
 * SOLR-2100: The replication handler backup command didn't save the commit
   point and hence could fail when a newer commit caused the older commit point
@@ -623,7 +676,7 @@ Bug Fixes
 
 * SOLR-2114: Fixed parsing error in hsin function.  The function signature has changed slightly. (gsingers)
 
-* SOLR-2083: SpellCheckComponent misreports suggestions when distributed (James Dyer via gsingers)  
+* SOLR-2083: SpellCheckComponent misreports suggestions when distributed (James Dyer via gsingers)
 
 * SOLR-2111: Change exception handling in distributed faceting to work more
   like non-distributed faceting, change facet_counts/exception from a String
@@ -641,27 +694,15 @@ Bug Fixes
 
 * SOLR-2148: Highlighter doesn't support q.alt. (koji)
 
-* SOLR-1794: Dataimport of CLOB fields fails when getCharacterStream() is 
-  defined in a superclass. (Gunnar Gauslaa Bergem via rmuir)
-
 * SOLR-2180: It was possible for EmbeddedSolrServer to leave searchers
   open if a request threw an exception. (yonik)
 
 * SOLR-2173: Suggester should always rebuild Lookup data if Lookup.load fails. (ab)
 
-* SOLR-2057: DataImportHandler never calls UpdateRequestProcessor.finish()
-  (Drew Farris via koji)
-
-* SOLR-1973: Empty fields in XML update messages confuse DataImportHandler. (koji)
-
-* SOLR-2221: Use StrUtils.parseBool() to get values of boolean options in DIH.
-  true/on/yes (for TRUE) and false/off/no (for FALSE) can be used for sub-options
-  (debug, verbose, synchronous, commit, clean, optimize) for full/delta-import commands. (koji)
-
 * SOLR-2081: BaseResponseWriter.isStreamingDocs causes
-  SingleResponseWriter.end to be called 2x 
-  (Chris A. Mattmann via hossman) 
-  
+  SingleResponseWriter.end to be called 2x
+  (Chris A. Mattmann via hossman)
+
 * SOLR-2219: The init() method of every SolrRequestHandler was being
   called twice. (ambikeshwar singh and hossman)
 
@@ -686,7 +727,7 @@ Bug Fixes
 
 * SOLR-482: Provide more exception handling in CSVLoader (gsingers)
 
-* SOLR-1283: HTMLStripCharFilter sometimes threw a "Mark Invalid" exception. 
+* SOLR-1283: HTMLStripCharFilter sometimes threw a "Mark Invalid" exception.
   (Julien Coloos, hossman, yonik)
 
 * SOLR-2085: Improve SolrJ behavior when FacetComponent comes before
@@ -711,28 +752,31 @@ Bug Fixes
 * SOLR-2348: Fix field types to explicitly generate an error if you
   attempt to get a ValueSource for a multiValued field. (hossman)
 
-* SOLR-1191: resolve DataImportHandler deltaQuery column against pk when pk
-  has a prefix (e.g. pk="book.id" deltaQuery="select id from ..."). More
-  useful error reporting when no match found (previously failed with a
-  NullPointerException in log and no clear user feedback). (gthb via yonik)
-
 * SOLR-2380: Distributed faceting could miss values when facet.sort=index
   and when facet.offset was greater than 0. (yonik)
-  
+
 * SOLR-1656: XIncludes and other HREFs in XML files loaded by ResourceLoader
-  are fixed to be resolved using the URI standard (RFC 2396). The system 
-  identifier is no longer a plain filename with path, it gets initialized 
-  using a custom URI scheme "solrres:". This scheme is resolved using a 
-  EntityResolver that utilizes ResourceLoader 
-  (org.apache.solr.common.util.SystemIdResolver). This makes all relative 
-  pathes in Solr's config files behave like expected. This change 
-  introduces some backwards breaks in the API: Some config classes 
-  (Config, SolrConfig, IndexSchema) were changed to take 
-  org.xml.sax.InputSource instead of InputStream. There may also be some 
-  backwards breaks in existing config files, it is recommended to check 
-  your config files / XSLTs and replace all XIncludes/HREFs that were 
+  are fixed to be resolved using the URI standard (RFC 2396). The system
+  identifier is no longer a plain filename with path, it gets initialized
+  using a custom URI scheme "solrres:". This scheme is resolved using a
+  EntityResolver that utilizes ResourceLoader
+  (org.apache.solr.common.util.SystemIdResolver). This makes all relative
+  pathes in Solr's config files behave like expected. This change
+  introduces some backwards breaks in the API: Some config classes
+  (Config, SolrConfig, IndexSchema) were changed to take
+  org.xml.sax.InputSource instead of InputStream. There may also be some
+  backwards breaks in existing config files, it is recommended to check
+  your config files / XSLTs and replace all XIncludes/HREFs that were
   hacked to use absolute paths to use relative ones. (uschindler)
 
+* SOLR-309: Fix FieldType so setting an analyzer on a FieldType that
+  doesn't expect it will generate an error.  Practically speaking this
+  means that Solr will now correctly generate an error on
+  initialization if the schema.xml contains an analyzer configuration
+  for a fieldType that does not use TextField.  (hossman)
+
+* SOLR-2192: StreamingUpdateSolrServer.blockUntilFinished was not
+  thread safe and could throw an exception. (yonik)
 
 Other Changes
 ----------------------

Modified: lucene/dev/branches/bulkpostings/solr/NOTICE.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/NOTICE.txt?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/NOTICE.txt (original)
+++ lucene/dev/branches/bulkpostings/solr/NOTICE.txt Mon May  9 13:19:28 2011
@@ -38,6 +38,8 @@ License: Common Development and Distribu
 This product includes the HSQL Database (HSQLDB) 1.8.0.10 jar: http://hsqldb.org/
 License: http://hsqldb.org/web/hsqlLicense.html
 
+This product includes code (JaspellTernarySearchTrie) from Java Spelling Checking Package (jaspell): http://jaspell.sourceforge.net/
+License: The BSD License (http://www.opensource.org/licenses/bsd-license.php)
 
 =========================================================================
 ==  Apache Lucene Notice                                               ==
@@ -240,6 +242,12 @@ Copyright (c) 2003-2005, www.fontbox.org
 Copyright (c) 1995-2005 International Business Machines Corporation and others
 
 Copyright (c) 2000-2005 INRIA, France Telecom
+
+Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.
+
+Copyright 2004 Sun Microsystems, Inc. (Rome JAR)
+
+Copyright 2002-2008 by John Cowan (TagSoup -- http://ccil.org/~cowan/XML/tagsoup/)
  
 
 =========================================================================

Modified: lucene/dev/branches/bulkpostings/solr/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/build.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/build.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/build.xml Mon May  9 13:19:28 2011
@@ -83,35 +83,6 @@
     </delete>
   </target>
 
-  <!-- Prepares an entity file for use in Forrest documentation -->
-  <target name="init-forrest-entities">
-    <!-- no description, don't advertise -->
-
-    <!-- Building off Lucene trunk, we don't need this
-    <available file="lib/lucene-core-${version}.jar"
-               property="lucene-version-ok-m2deploy-wont-fail" />
-    <fail unless="lucene-version-ok-m2deploy-wont-fail">
-      lib/lucene-core-${version}.jar Missing
-
-      lib/lucene-core-${version}.jar does not exist.
-      This will cause problems with m2-deploy later, so fail fast now.
-      
-      Probably cause: lucene jars were upgraded w/o modifying the
-      'version' property in common-build.xml
-    </fail>
-    -->
-    
-    <mkdir dir="${dest}" />
-  	
-  	<!-- A folder containing the expanded war file -->
-  	<mkdir dir="${dest}/web" />
-  	
-    <echo  file="${dest}/solr-specific-forrest-variables.ent" append="false">
-      &lt;!ENTITY solr.specversion "${specversion}"&gt;
-    </echo>
-  </target>
-
-
   <!-- ========================================================================= -->
   <!-- ===================== COMPILATION-RELATED TASKS ========================= -->
   <!-- ========================================================================= -->
@@ -126,7 +97,7 @@
 
   <target name="compile-solrj"
           description="Compile the java client."
-          depends="init-forrest-entities, compile-lucene">
+          depends="compile-lucene">
 
     <solr-javac destdir="${dest}/solrj"
                 classpathref="compile.classpath">
@@ -149,7 +120,7 @@
   <!-- Compile the project. -->
   <target name="compile"
           description="Compile the source code."
-          depends="compile-solrj,init-forrest-entities">
+          depends="validate-solr, compile-solrj">
 
     <solr-javac destdir="${dest}/solr"
                 classpathref="compile.classpath.solrj">
@@ -205,6 +176,24 @@
     </sequential>
   </target>
 
+  <target name="javadoc-test-framework" depends="compileTestFramework,javadoc-dep"
+          description="Generates javadoc documentation for the Solr test-framework.">
+    <sequential>
+      <mkdir dir="${build.javadoc}/test-framework"/>
+
+      <path id="javadoc.classpath">
+        <path refid="testframework.compile.classpath"/>
+      </path>
+
+      <invoke-javadoc
+        destdir="${build.javadoc}/test-framework"
+      	title="${Name} ${version} Test Framework API (${specversion})">
+        <sources>
+          <packageset dir="${src}/test-framework" />
+        </sources>
+      </invoke-javadoc>
+    </sequential>
+  </target>
 
   <target name="javadoc-all" depends="compile,javadoc-dep" description="Generate javadoc for core, client and contrib">
     <sequential>
@@ -215,6 +204,8 @@
          <path refid="compile.classpath.solrj"/>
           <fileset dir="contrib">
             <include name="**/lib/**/*.jar"/>
+            <include name="**/lucene-libs/**/*.jar"/>
+            <exclude name="**/analysis-extras/lib/**/*icu4j*.jar"/> <!-- extraction/lib/ has this one -->
           </fileset>
          <pathelement location="${dest}/client/solrj"/>
       </path>
@@ -226,6 +217,7 @@
           <packageset dir="${src}/java" />
           <packageset dir="${src}/webapp/src" />
           <packageset dir="contrib/dataimporthandler/src/main/java" />
+          <packageset dir="contrib/dataimporthandler/src/extras/main/java" />
           <packageset dir="contrib/clustering/src/main/java" />
           <packageset dir="contrib/extraction/src/main/java" />
           <packageset dir="contrib/uima/src/main/java" />
@@ -247,8 +239,9 @@
                    failonerror="true"/>
   </target>
 
-  <target name="javadoc" depends="javadoc-core, javadoc-contrib, javadoc-solrj, javadoc-all">
+  <target name="javadoc" depends="javadoc-core, javadoc-test-framework, javadoc-contrib, javadoc-solrj, javadoc-all">
   </target>
+  <target name="javadocs" depends="javadoc"/>
 
   <target name="stub-factories" depends="dist-jar"
           description="Generates stub factories as needed">
@@ -345,13 +338,18 @@
 
   <!-- Classpath for unit test compilation. -->
   <!-- For now, it's the same as main classpath.  Later it will have JUnit, Clover, etc. -->
-  <path id="test.compile.classpath">
+  <path id="testframework.compile.classpath">
     <path refid="compile.classpath" />
     <path refid="compile.classpath.solrj" />
     <pathelement location="${dest}/solr"/>
     <pathelement location="${dest}/solrj"/> <!-- include solrj -->
     <pathelement location="${common-solr.dir}/../lucene/build/classes/test-framework" />  <!-- include some lucene test code -->
   </path>
+	
+  <path id="test.compile.classpath">
+    <path refid="testframework.compile.classpath"/>
+    <pathelement location="${dest}/test-framework"/> <!-- include some solr test code -->
+  </path>
 
   <path id="test.run.classpath">
     <path refid="test.compile.classpath" />
@@ -362,10 +360,19 @@
     <pathelement path="${java.class.path}"/>
   </path>
 
+  <target name="compileTestFramework" depends="compile,compile-solrj">
+    <mkdir dir="${dest}/test-framework"/>
+  	<solr-javac
+      destdir="${dest}/test-framework"
+  	  classpathref="testframework.compile.classpath">
+        <src path="${src}/test-framework"/>
+  	</solr-javac>
+  </target>
+
   <!-- Compile unit tests. -->
   <target name="compileTests"
           description="Compile unit tests."
-          depends="compile,compile-solrj">
+          depends="compileTestFramework">
 
     <mkdir dir="${dest}/tests" />
     <solr-javac 
@@ -382,7 +389,7 @@
   <!-- Run core unit tests. -->
   <target name="test-core"
           description="Runs the core unit tests."
-          depends="init-forrest-entities, compileTests, junit" />
+          depends="compileTests, junit" />
 	
   <!-- Run contrib unit tests. -->
   <target name="test"
@@ -602,7 +609,7 @@
   <!-- Creates the Solr distribution files. -->
   <target name="dist"
           description="Creates the Solr distribution files."
-          depends="init-forrest-entities, dist-solrj, dist-jar, dist-contrib, dist-war" />
+          depends="dist-solrj, dist-jar, dist-test-framework, dist-contrib, dist-war" />
 
   <!-- Creates the Solr WAR file. -->
   <target name="dist-war"
@@ -650,6 +657,9 @@
       <fileset dir="${src}/webapp/src"/>
     </solr-jar>
   	
+    <solr-jar destfile="${dist}/${fullname}-test-framework-src-${version}.jar"
+              basedir="${src}/test-framework" />
+
     <solr-jar destfile="${dist}/apache-solr-dataimporthandler-src-${version}.jar"
               basedir="contrib/dataimporthandler/src/main/java" />
     <solr-jar destfile="${dist}/apache-solr-dataimporthandler-extras-src-${version}.jar"
@@ -675,6 +685,8 @@
               basedir="${build.javadoc}/solr" />
     <solr-jar destfile="${dist}/${fullname}-solrj-docs-${version}.jar"
               basedir="${build.javadoc}/solrj" />
+    <solr-jar destfile="${dist}/${fullname}-test-framework-docs-${version}.jar"
+              basedir="${build.javadoc}/test-framework" />
     <solr-jar destfile="${dist}/apache-solr-dataimporthandler-docs-${version}.jar"
               basedir="${build.javadoc}/contrib-solr-dataimporthandler" />
     <solr-jar destfile="${dist}/apache-solr-clustering-docs-${version}.jar"
@@ -698,6 +710,16 @@
 
   </target>
 
+  <!-- Creates the test-framework jar -->
+  <target name="dist-test-framework"
+          description="Creates the Solr test-framework JAR."
+          depends="compileTestFramework">
+    <mkdir dir="${dist}" />
+    <solr-jar destfile="${dist}/${fullname}-test-framework-${version}.jar">
+      <fileset dir="${dest}/test-framework" />
+    </solr-jar>
+  </target>
+
   <!-- Creates the solr jar. -->
   <target name="dist-solrj"
           description="Creates the Solr JAR Distribution file."
@@ -724,7 +746,7 @@
 
   <target name="example" 
           description="Creates a runnable example configuration."
-          depends="init-forrest-entities,compile-lucene,dist-contrib,dist-war,example-contrib">
+          depends="compile-lucene,dist-contrib,dist-war,example-contrib">
     <copy file="${dist}/${fullnamever}.war"
           tofile="${example}/webapps/${ant.project.name}.war"/>
     <jar destfile="${example}/exampledocs/post.jar"
@@ -766,91 +788,56 @@
   <!-- make a distribution -->
   <target name="package" depends="package-src,create-package"/>
 
-  <!-- copied from lucene build.xml -->
-  <patternset id="src.dist.patterns"
-              includes="src/,build.xml,*build*.xml,docs/,*.txt,contrib/,*pom.xml*,lib/,backwards/"
-              excludes="contrib/db/*/lib/,contrib/*/ext-libs/,src/site/build/"
-  />
-
-  <target name="package-src"
-          description="Packages the Solr Source Distribution"
-          depends="dist">
-    <mkdir dir="${package.dir}"/>
-
-    <delete includeemptydirs="true">
-      <fileset dir="${example}/work" includes="**/*"/>
-    </delete>
+  <property name="svn.export.dir" location="${dest}/svn-export"/>
 
-    <delete includeemptydirs="true" failonerror="false">
-      <fileset dir="${dest}/${fullnamever}" includes="**/*"/>
-    </delete>
- 
-    <delete file="${package.dir}/${fullnamever}-src.tgz" failonerror="false" />
-    <delete file="${package.dir}/${fullnamever}-src.zip" failonerror="false" />
-
-    <tar destfile="${package.dir}/${fullnamever}-src.tgz" compression="gzip" longfile="gnu">
-      <tarfileset dir=".."
-        prefix="${fullnamever}"
-        includes="*.txt *.xml dev-tools/*" />
-      <tarfileset dir="." 
-        prefix="${fullnamever}"
-        includes="LICENSE.txt NOTICE.txt"/>
-      <tarfileset dir="."
-        prefix="${fullnamever}/solr"
-        includes="LICENSE.txt NOTICE.txt *.txt *.xml lib/** src/** example/** client/** contrib/"
-        excludes="${package.dir}/** ${dist}/** example/webapps/*.war lib/README.committers.txt **/data/ **/logs/* **/classes/ **/*.sh **/bin/ src/scripts/ src/site/build/ **/target/ client/python client/javascript contrib/**/build/ **/*.iml **/*.ipr **/*.iws" />
-      <tarfileset dir="."
-        prefix="${fullnamever}/solr"
-        includes="src/test-files/solr/lib/classes/empty-file-main-lib.txt" />
-      <tarfileset dir="."
-        mode="755"
-        prefix="${fullnamever}/solr"
-        includes="**/*.sh **/bin/ src/scripts/" />
-      <tarfileset dir="../lucene" prefix="${fullnamever}/lucene">
-        <patternset refid="src.dist.patterns"/>
-      </tarfileset>
-      <tarfileset dir="../modules"
-        prefix="${fullnamever}/modules"
-        excludes="**/build/" />
+  <!-- Makes a tarball from running "svn export" at the root level.    -->
+  <!-- Copies NOTICE.txt and LICENSE.txt from solr/ to the root level. -->
+  <target name="package-src" depends="svn-export-source"
+          description="Packages the Solr Source Distribution">
+    <mkdir dir="${package.dir}"/>
+    <property name="source.package.file"
+              value="${package.dir}/${fullnamever}-src.tgz"/>
+    <delete file="${source.package.file}" failonerror="false" />
+    <tar destfile="${source.package.file}" compression="gzip" longfile="gnu">
+      <tarfileset dir="${svn.export.dir}" prefix="${fullnamever}"/>
+      <tarfileset dir="${svn.export.dir}/solr" prefix="${fullnamever}"
+                  includes="NOTICE.txt,LICENSE.txt"/>
     </tar>
-    <solr-checksum file="${package.dir}/${fullnamever}-src.tgz"/>
-
-    <gunzip src="${package.dir}/${fullnamever}-src.tgz" dest="${dest}/${fullnamever}-src.tar"/>
-    <untar src="${dest}/${fullnamever}-src.tar" dest="${dest}"/>
-
-    <!--
-      This is a list of text file patterns to convert to CRLF line-ending style.
-      Shell scripts and files included in shell scripts should not be converted.
-      NB: The line-ending conversion process will mangle non-UTF8-encoded files.
-     -->
-    <fixcrlf srcdir="${dest}/${fullnamever}"
-       encoding="UTF-8"
-       eol="crlf"
-       includes="**/*.alg **/*.cgi **/*.cpp **/*.css **/*.csv **/*.dtd **/*.erb
-                 **/*.fcgi **/.htaccess **/*.htm **/*.html **/*.incl **/*.java
-                 **/*.javacc **/*.jflex **/*.jflex-macro **/*.jj **/*.js
-                 **/*.json **/*.jsp **/*LICENSE **/*.pl **/*.pom
-                 **/*pom.xml.template **/*.properties **/*.py **/*.rake
-                 **/Rakefile **/*.rb **/*.rbbi **/README **/README.* **/*.rhtml
-                 **/*.rslp **/*.rxml **/*.script **/*.svg **/*.tsv **/*.txt
-                 **/UPGRADING **/USAGE **/*.uxf **/*.vm **/*.xcat **/*.xml
-                 **/*.xsl **/*.xslt **/*.yml"
-       excludes="**/stopwordsWrongEncoding.txt **/gb18030-example.xml"
-     />
-
-    <zip destfile="${package.dir}/${fullnamever}-src.zip">
-      <zipfileset dir="${dest}/${fullnamever}"
-        prefix="${fullnamever}" 
-        excludes="**/*.sh **/bin/ src/scripts/" />
-      <zipfileset dir="${dest}/${fullnamever}"
-        prefix="${fullnamever}"
-        includes="**/*.sh **/bin/ src/scripts/"
-        filemode="755" />
-    </zip>
-    <solr-checksum file="${package.dir}/${fullnamever}-src.zip"/>
+    <solr-checksum file="${source.package.file}"/>
+  </target>
 
+  <!-- Runs "svn export" in build/svn-export/ with the same root-level URL -->
+  <!-- and revision as the current working copy.                           -->
+  <target name="svn-export-source" depends="get-svn-info">
+    <delete dir="${svn.export.dir}" includeemptydirs="true" failonerror="false"/>
+    <mkdir dir="${dest}"/>
+    <exec dir="." executable="${svn.exe}" failonerror="true">
+      <arg value="export"/>
+      <arg value="--native-eol"/>
+      <arg value="LF"/>
+      <arg value="-r"/>
+      <arg value="${svn.Revision}"/>
+      <arg value="${svn.URL}"/>
+      <arg value="${svn.export.dir}"/>
+    </exec>
   </target>
 
+  <!-- Populates properties svn.URL and svn.Revision using "svn info" -->
+  <target name="get-svn-info">
+    <exec dir=".." executable="${svn.exe}" outputproperty="svn.info" failonerror="true">
+      <arg value="info"/>
+    </exec>
+    <loadproperties>
+      <propertyresource name="svn.info"/>
+      <filterchain>
+        <linecontainsregexp>
+          <regexp pattern="(URL|Revision):"/>
+        </linecontainsregexp>
+        <replacestring from=": " to="="/>
+        <prefixlines prefix="svn."/>
+      </filterchain>
+    </loadproperties>
+  </target>
 
   <target name="create-package"
           description="Packages the Solr Binary Distribution"
@@ -872,7 +859,7 @@
       <tarfileset dir="."
         prefix="${fullnamever}"
         includes="LICENSE.txt NOTICE.txt *.txt example/** client/** contrib/**/lib/ contrib/**/lucene-libs/ contrib/**/README.txt contrib/**/CHANGES.txt"
-        excludes="${dist}/** ${dest}/** lib/README.committers.txt **/data/ **/logs/* **/classes/ **/*.sh **/bin/ src/scripts/** src/site/build/** **/target/** client/ruby/flare/** client/python/** client/javascript/** contrib/**/build/** **/*.iml **/*.ipr **/*.iws" />
+        excludes="${dist}/** ${dest}/** lib/README.committers.txt **/data/ **/logs/* **/classes/ **/*.sh **/bin/ src/scripts/** src/site/build/** **/target/** client/ruby/flare/** client/python/** client/javascript/** contrib/**/build/** **/*.iml **/*.ipr **/*.iws **/*pom.xml.template" />
       <tarfileset dir="."
         mode="755"
         prefix="${fullnamever}"
@@ -892,10 +879,23 @@
     <gunzip src="${package.dir}/${fullnamever}.tgz" dest="${dest}/${fullnamever}.tar"/>
     <untar src="${dest}/${fullnamever}.tar" dest="${dest}"/>
 
+    <!--
+      This is a list of text file patterns to convert to CRLF line-ending style.
+      Shell scripts and files included in shell scripts should not be converted.
+      NB: The line-ending conversion process will mangle non-UTF8-encoded files.
+     -->
     <fixcrlf srcdir="${dest}/${fullnamever}"
        encoding="UTF-8"
        eol="crlf"
-       includes="**/*.txt **/*.xml **/*.java **/*.html **/*.csv **/*.css **/*.properties **/*.jsp **/*.xsl **/*.py **/*.rb **/*.js **/*.json **/*.pl"
+       includes="**/*.alg **/*.cfg **/*.cgi **/*.cpp **/*.css **/*.csv **/*.dtd
+                 **/*.erb **/*.fcgi **/.htaccess **/*.htm **/*.html **/*.incl
+                 **/*.java **/*.javacc **/*.jflex **/*.jflex-macro **/*.jj
+                 **/*.js **/*.json **/*.jsp **/*LICENSE **/package-list **/*.pl
+                 **/*.pom **/*pom.xml.template **/*.properties **/*.py
+                 **/*.rake **/Rakefile **/*.rb **/*.rbbi **/README* **/*.rhtml
+                 **/*.rslp **/*.rxml **/*.script **/*.svg **/*.tsv **/*.txt
+                 **/UPGRADING **/USAGE **/*.uxf **/*.vm **/*.xcat **/*.xml
+                 **/*.xsl **/*.xslt **/*.yml"       
        excludes="**/stopwordsWrongEncoding.txt **/gb18030-example.xml"
      />
 
@@ -913,30 +913,21 @@
   </target>
 
 
-  	<target name="build-site" depends="svn-up, init-forrest-entities" description="Prototype Helper for Committers.  Assumes SVN is in the path">
-		<delete dir="src/site/build"/>
-		<exec executable="forrest" dir="src/site"/>
-		<copy todir="site">
-			<fileset dir="src/site/build/site"/>
-		</copy>
-		<exec executable="svn" dir="site">
-			<arg value="ci"/>
-			<arg value="-m"/>
-			<arg value="&quot;Forrest Entity updates&quot;"/>
-		</exec>
-    <exec executable="svn" dir="src/site">
-                    <arg value="ci"/>
-                    <arg value="-m"/>
-                    <arg value="&quot;Forrest Entity updates&quot;"/>
-            </exec>
+  <target name="build-site" depends="svn-up" 
+          description="Prototype Helper for Committers.  Assumes SVN is in the path">
+    <delete dir="src/site/build"/>
+    <exec executable="forrest" dir="src/site"/>
+    <copy todir="site">
+      <fileset dir="src/site/build/site"/>
+    </copy>
     <antcall target="svn-up"/>
-
+  
+  </target>
+  <target name="svn-up">
+    <exec executable="${svn.exe}">
+      <arg value="update"/>
+    </exec>
   </target>
-	<target name="svn-up">
-		<exec executable="svn">
-			<arg value="update"/>
-		</exec>
-	</target>
 
   <target name="clean-package-signatures">
     <delete failonerror="false">
@@ -953,7 +944,6 @@
     <sign-artifact input.file="${package.dir}/${fullnamever}.tgz" output.file="${package.dir}/${fullnamever}.tgz.asc" gpg.passphrase="${gpg.passphrase}"/>
     <sign-artifact input.file="${package.dir}/${fullnamever}.zip" output.file="${package.dir}/${fullnamever}.zip.asc" gpg.passphrase="${gpg.passphrase}"/>
     <sign-artifact input.file="${package.dir}/${fullnamever}-src.tgz" output.file="${package.dir}/${fullnamever}-src.tgz.asc" gpg.passphrase="${gpg.passphrase}"/>
-    <sign-artifact input.file="${package.dir}/${fullnamever}-src.zip" output.file="${package.dir}/${fullnamever}-src.zip.asc" gpg.passphrase="${gpg.passphrase}"/>
 
     <!-- Maven artifacts -->
     <sign-maven-dependency-artifacts artifact.id="solr-commons-csv" gpg.passphrase="${gpg.passphrase}"/>
@@ -971,14 +961,41 @@
     <sign-maven-artifacts artifact.id="solr-dataimporthandler-extras" gpg.passphrase="${gpg.passphrase}"/>
     <sign-maven-artifacts artifact.id="solr-solrj" gpg.passphrase="${gpg.passphrase}"/>
     <sign-maven-artifacts artifact.id="solr-uima" gpg.passphrase="${gpg.passphrase}"/>
+    <sign-maven-artifacts artifact.id="solr-test-framework" gpg.passphrase="${gpg.passphrase}"/>
 
     <!-- These are special since there are no jars, just poms -->
     <sign-artifact input.file="${maven.dist.prefix}/solr-parent/${version}/solr-parent-${version}.pom" gpg.passphrase="${gpg.passphrase}"/>
   </target>
 
-  <target name="prepare-release" depends="clean, svn-up, build-site, package, sign-artifacts" 
+  <property name="rc" value="rc0"/>
+  <property name="remote.staging.dir" value="public_html/staging_area/${rc}/${version}"/>
+  <property name="keyfile" value="${user.home}/.ssh/id_rsa"/>
+  <property name="scp.user" value="${user.name}"/>
+  <!--keys.dir is the location of the https://svn.apache.org/repos/asf/lucene/java/dist/ directory-->
+  <property name="keys.dir" value="${common-solr.dir}/../../dist"/>
+  <target name="copy-to-stage">
+    <sshexec host="people.apache.org"
+	    username="${scp.user}"
+	    keyfile="${keyfile}"
+	    command="mkdir -p ${remote.staging.dir}"/>
+    <echo>Uploading artifacts to ${scp.user}@people.apache.org:${remote.staging.dir}</echo>
+    <scp todir="${scp.user}@people.apache.org:${remote.staging.dir}"
+         username="${scp.user}"
+	    keyfile="${keyfile}"
+      verbose="true"
+        >
+      <fileset dir="package"/>
+      <fileset dir="${keys.dir}">
+        <include name="KEYS"/>
+      </fileset>
+    </scp>
+  </target>
+
+  <target name="prepare-release" depends="clean, svn-up, package, generate-maven-artifacts, sign-artifacts"
           description="Prototype helper for Committers.  Assumes gpg is in the path"/>
 
+  <target name="stage" depends="prepare-release, copy-to-stage"/>
+
   <target name="generate-maven-artifacts" depends="maven.ant.tasks-check,dist,dist-src,dist-javadoc">
     <sequential>
 	  <ant target="get-maven-poms" dir=".."/>
@@ -1085,6 +1102,14 @@
 
       <m2-deploy pom.xml="src/webapp/pom.xml"
                  jar.file="${dist}/apache-solr-${version}.war"/>
+
+      <m2-deploy pom.xml="${src}/test-framework/pom.xml"
+                 jar.file="${dist}/${fullname}-test-framework-${version}.jar">
+        <artifact-attachments>
+          <attach file="${dist}/${fullname}-test-framework-src-${version}.jar" classifier="sources"/>
+          <attach file="${dist}/${fullname}-test-framework-docs-${version}.jar" classifier="javadoc"/>
+        </artifact-attachments>
+      </m2-deploy>
     </sequential>
   </target>
 

Modified: lucene/dev/branches/bulkpostings/solr/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/common-build.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/common-build.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/common-build.xml Mon May  9 13:19:28 2011
@@ -22,6 +22,7 @@
   </description>
 
   <dirname file="${ant.file.common-solr}" property="common-solr.dir"/>
+  <import file="${common-solr.dir}/../common-build.xml"/>
   
   <!-- change this together with the default and test's solrconfig.xml after starting a new development branch: -->
   <property name="tests.luceneMatchVersion" value="4.0"/>
@@ -34,7 +35,7 @@
   <property name="name" value="${ant.project.name}"/>
 
   <property name="dev-tools.dir" value="${solr-path}/../dev-tools"/>
-  <property name="prettify.dir" value="${dev-tools.dir}/prettify"/>
+  <property name="prettify.dir" value="${solr-path}/../lucene/src/tools/prettify"/>
   <property name="package.dir" location="package"/>
 
   <tstamp>
@@ -81,6 +82,7 @@
     default PATH. (this is useful for Hudson)
   -->
   <property name="svnversion.exe" value="svnversion" />
+  <property name="svn.exe" value="svn" />
 
   <!-- Java Version we are compatible with -->
   <property name="java.compat.version" value="1.6" />
@@ -328,6 +330,7 @@
     </sequential>
   </macrodef>
 
+  <property name="failonjavadocwarning" value="true"/>
   <macrodef name="invoke-javadoc">
     <element name="sources" optional="yes"/>
     <attribute name="destdir"/>
@@ -337,6 +340,7 @@
       <copy todir="@{destdir}/prettify" overwrite="false">
         <fileset dir="${prettify.dir}"/>
       </copy>
+      <record name="@{destdir}/log_javadoc.txt" action="start" append="no"/>
       <javadoc
           packagenames="org.apache.solr.*"
           failonerror="true"
@@ -371,6 +375,24 @@
 
         <classpath refid="javadoc.classpath"/>
       </javadoc>
+      <record name="@{destdir}/log_javadoc.txt" action="stop"/>
+
+      <delete>
+        <fileset file="@{destdir}/log_javadoc.txt">
+          <not>
+           <containsregexp expression="\[javadoc\]\s*[1-9][0-9]*[\s]*warning"/>
+          </not>
+        </fileset>
+      </delete>
+
+      <fail message="Javadocs warnings were found!" >
+        <condition>
+          <and>
+            <available file="@{destdir}/log_javadoc.txt"/>
+            <istrue value="${failonjavadocwarning}"/>
+          </and>
+        </condition>
+      </fail>
    </sequential>
   </macrodef>
 
@@ -412,6 +434,8 @@
     </sequential>
   </macrodef>
 
+  <property name="gpg.exe" value="gpg" />
+  <property name="gpg.key" value="CODE SIGNING KEY" />
   <macrodef name="sign-artifact" description="Signs the artifact">
     <attribute name="input.file"/>
     <attribute name="output.file" default="@{input.file}.asc"/>
@@ -419,10 +443,13 @@
     <sequential>
       <echo >Signing @{input.file} Sig File: @{output.file}</echo>
 
-      <exec executable="gpg" >
+      <exec executable="${gpg.exe}" >
+        <arg value="--batch"/>
         <arg value="--armor"/>
         <arg value="--output"/>
         <arg value="@{output.file}"/>
+        <arg value="--default-key"/>
+        <arg value="${gpg.key}"/>
         <arg value="--passphrase"/>
         <arg value="@{gpg.passphrase}"/>
         <arg value="--detach-sig"/>
@@ -560,13 +587,52 @@
   </target>
 
   <target name="maven.ant.tasks-check">
-    <fail unless="maven.ant.tasks.present">
-      ##################################################################
+    <fail unless="maven.ant.tasks.present">#
+    ##########################################################################
       Maven ant tasks not found.
-      Please make sure the maven-ant-tasks jar is in ANT_HOME/lib, or made
-      available to Ant using other mechanisms like -lib or CLASSPATH.
-      ##################################################################
+
+      Please download the Maven ant tasks JAR (maven-ant-tasks-2.1.1.jar)
+      from http://maven.apache.org/ant-tasks/download.html and add it to your
+      $$HOME/.ant/lib/ directory, or to your $$ANT_HOME/lib/ directory, or
+      to your $$CLASSPATH, or add "-lib /path/to/maven-ant-tasks-2.1.1.jar"
+      to the ant command.
+    ##########################################################################
     </fail>
   </target>
+  <!-- Validation -->
+  <target name="validate" depends="validate-solr"/>
+  <target name="validate-solr" depends="check-legal-solr" unless="validated-solr"/>
+
+  <target name="check-legal-solr" depends="compile-tools">
+    <java classname="org.apache.lucene.validation.DependencyChecker" failonerror="true" fork="true">
+      <classpath>
+        <path refid="tools.runtime.classpath" />
+      </classpath>
+      <!-- TODO: it might be better to just automatically find all directories that contain jar files, but that could take a
+       long time.  This should be faster, but we could miss a directory
+       -->
+      <!-- Solr -->
+      <arg value="-c" />
+      <arg value="${basedir}/lib" />
+      <arg value="-c" />
+      <arg value="${basedir}/contrib/analysis-extras/lib" />
+      <arg value="-c" />
+      <arg value="${basedir}/contrib/clustering/lib" />
+      <arg value="-c" />
+      <arg value="${basedir}/contrib/dataimporthandler/lib" />
+      <arg value="-c" />
+      <arg value="${basedir}/contrib/extraction/lib" />
+      <arg value="-c" />
+      <arg value="${basedir}/contrib/uima/lib" />
+      <arg value="-c" />
+      <arg value="${basedir}/example/example-DIH/solr/db/lib" />
+      <arg value="-c" />
+      <arg value="${basedir}/example/example-DIH/solr/mail/lib" />
+      <arg value="-c" />
+      <arg value="${basedir}/example/example/lib" />
+      <arg value="-c" />
+      <arg value="${basedir}/src/test-files/solr/lib" />
+    </java>
+  </target>
 
 </project>

Modified: lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/CHANGES.txt?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/CHANGES.txt (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/CHANGES.txt Mon May  9 13:19:28 2011
@@ -13,7 +13,9 @@ analyzers for Chinese and Polish.
 $Id$
 ================== Release 4.0-dev ==================
 
-(No Changes)
+* SOLR-2396: Add ICUCollationField, which is much more efficient than
+  the Solr 3.x ICUCollationKeyFilterFactory, and also supports
+  Locale-sensitive range queries.  (rmuir)
 
 ================== Release 3.2-dev ==================
 

Modified: lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/build.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/build.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/build.xml Mon May  9 13:19:28 2011
@@ -72,7 +72,7 @@
     <pathelement path="${dest}/classes"/>
     <pathelement path="${dest}/test-classes"/>
     <pathelement path="${java.class.path}"/>
-    <pathelement location="${common-solr.dir}/build/tests"/> <!-- include solr test code -->
+    <pathelement location="${common-solr.dir}/build/test-framework"/> <!-- include solr test code -->
     <pathelement location="${common-solr.dir}/../lucene/build/classes/test-framework" />  <!-- include some lucene test code -->
     <path refid="common.classpath"/>
   </path>
@@ -92,7 +92,7 @@
     <mkdir dir="${dest}/classes"/>
     
     <mkdir dir="${build.javadoc}"/>
-    <subant target="compileTests">
+    <subant target="compileTestFramework">
       <fileset dir="${solr-path}" includes="build.xml"/>
     </subant>
     <subant target="make-manifest">

Modified: lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUCollationKeyFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUCollationKeyFilterFactory.java?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUCollationKeyFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/src/java/org/apache/solr/analysis/ICUCollationKeyFilterFactory.java Mon May  9 13:19:28 2011
@@ -57,7 +57,9 @@ import com.ibm.icu.util.ULocale;
  * @see Collator
  * @see ULocale
  * @see RuleBasedCollator
+ * @deprecated use {@link org.apache.solr.schema.ICUCollationField} instead.
  */
+@Deprecated
 public class ICUCollationKeyFilterFactory extends BaseTokenFilterFactory implements ResourceLoaderAware {
   private Collator collator;
 

Modified: lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/src/test/org/apache/solr/analysis/TestICUCollationKeyFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/src/test/org/apache/solr/analysis/TestICUCollationKeyFilterFactory.java?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/src/test/org/apache/solr/analysis/TestICUCollationKeyFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/analysis-extras/src/test/org/apache/solr/analysis/TestICUCollationKeyFilterFactory.java Mon May  9 13:19:28 2011
@@ -34,6 +34,7 @@ import com.ibm.icu.text.Collator;
 import com.ibm.icu.text.RuleBasedCollator;
 import com.ibm.icu.util.ULocale;
 
+@Deprecated
 public class TestICUCollationKeyFilterFactory extends BaseTokenTestCase {
 
   /*

Modified: lucene/dev/branches/bulkpostings/solr/contrib/clustering/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/clustering/build.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/clustering/build.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/clustering/build.xml Mon May  9 13:19:28 2011
@@ -41,8 +41,8 @@
     <pathelement path="${dest}/classes"/>
     <pathelement path="${dest}/test-classes"/>
     <pathelement path="${java.class.path}"/>
-    <pathelement location="${common-solr.dir}/build/tests"/> <!-- include solr test code -->
-    <pathelement location="${common-solr.dir}/../lucene/build/classes/test-framework" />  <!-- include some lucene test code -->
+    <pathelement location="${solr-path}/build/test-framework"/> <!-- include solr test code -->
+    <pathelement location="${solr-path}/../lucene/build/classes/test-framework" />  <!-- include some lucene test code -->
     <path refid="common.classpath"/>
     <!-- DistributedClusteringComponentTest uses Jetty -->
     <fileset dir="${solr-path}/example/lib">
@@ -64,7 +64,7 @@
     <mkdir dir="${dest}/classes"/>
     
     <mkdir dir="${build.javadoc}"/>
-    <subant target="compileTests">
+    <subant target="compileTestFramework">
       <fileset dir="${solr-path}" includes="build.xml"/>
     </subant>
     <subant target="make-manifest">

Modified: lucene/dev/branches/bulkpostings/solr/contrib/dataimporthandler/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/dataimporthandler/CHANGES.txt?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/dataimporthandler/CHANGES.txt (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/dataimporthandler/CHANGES.txt Mon May  9 13:19:28 2011
@@ -76,6 +76,18 @@ Bug Fixes
 
 * SOLR-1811: formatDate should use the current NOW value always (Sean Timm via noble)
 
+* SOLR-1794: Dataimport of CLOB fields fails when getCharacterStream() is 
+  defined in a superclass. (Gunnar Gauslaa Bergem via rmuir)
+
+* SOLR-2057: DataImportHandler never calls UpdateRequestProcessor.finish()
+  (Drew Farris via koji)
+
+* SOLR-1973: Empty fields in XML update messages confuse DataImportHandler. (koji)
+
+* SOLR-2221: Use StrUtils.parseBool() to get values of boolean options in DIH.
+  true/on/yes (for TRUE) and false/off/no (for FALSE) can be used for sub-options
+  (debug, verbose, synchronous, commit, clean, optimize) for full/delta-import commands. (koji)
+
 * SOLR-2310: getTimeElapsedSince() returns incorrect hour value when the elapse is over 60 hours
   (tom liu via koji)
 
@@ -84,6 +96,11 @@ Bug Fixes
 
 * SOLR-2330: solrconfig.xml files in example-DIH are broken. (Matt Parker, koji)
 
+* SOLR-1191: resolve DataImportHandler deltaQuery column against pk when pk
+  has a prefix (e.g. pk="book.id" deltaQuery="select id from ..."). More
+  useful error reporting when no match found (previously failed with a
+  NullPointerException in log and no clear user feedback). (gthb via yonik)
+
 * SOLR-2116: Fix TikaConfig classloader bug in TikaEntityProcessor
   (Martijn van Groningen via hossman)
   

Modified: lucene/dev/branches/bulkpostings/solr/contrib/dataimporthandler/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/dataimporthandler/build.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/dataimporthandler/build.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/dataimporthandler/build.xml Mon May  9 13:19:28 2011
@@ -55,7 +55,7 @@
   	<path refid="classpath.jetty" />
 	  <pathelement path="target/classes" />
   	<pathelement path="target/test-classes" />
-    <pathelement location="${solr-path}/build/tests"/> <!-- include solr test code -->
+    <pathelement location="${solr-path}/build/test-framework"/> <!-- include solr test code -->
     <pathelement location="${solr-path}/../lucene/build/classes/test-framework" />  <!-- include some lucene test code -->
     <pathelement path="${java.class.path}"/>
   </path>
@@ -67,7 +67,7 @@
 	  <pathelement path="target/extras/classes" />
   	<pathelement path="target/test-classes" />
   	<pathelement path="target/extras/test-classes" />
-    <pathelement location="${solr-path}/build/tests"/> <!-- include solr test code -->
+    <pathelement location="${solr-path}/build/test-framework"/> <!-- include solr test code -->
     <pathelement location="${solr-path}/../lucene/build/classes/test-framework" />  <!-- include some lucene test code -->
     <pathelement path="${java.class.path}"/>
   </path>
@@ -89,7 +89,7 @@
   <target name="init">
   	<mkdir dir="target/classes"/>
     <mkdir dir="${build.javadoc}" />
-    <subant target="compileTests">
+    <subant target="compileTestFramework">
       <fileset dir="${solr-path}" includes="build.xml"/>
     </subant>
     <subant target="make-manifest">

Modified: lucene/dev/branches/bulkpostings/solr/contrib/extraction/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/extraction/build.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/extraction/build.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/extraction/build.xml Mon May  9 13:19:28 2011
@@ -39,7 +39,7 @@
     <path refid="common.classpath" />
     <pathelement path="${dest}/classes" />
     <pathelement path="${dest}/test-classes" />
-    <pathelement location="${solr-path}/build/tests"/> <!-- include solr test code -->
+    <pathelement location="${solr-path}/build/test-framework"/> <!-- include solr test code -->
     <pathelement location="${solr-path}/../lucene/build/classes/test-framework" />  <!-- include some lucene test code -->
     <pathelement path="${java.class.path}"/>
   </path>
@@ -51,7 +51,7 @@
   <target name="init">
     <mkdir dir="${dest}/classes"/>
     <mkdir dir="${build.javadoc}" />
-    <subant target="compileTests">
+    <subant target="compileTestFramework">
       <fileset dir="${solr-path}" includes="build.xml"/>
     </subant>
     <subant target="make-manifest">

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/CHANGES.txt?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/CHANGES.txt (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/CHANGES.txt Mon May  9 13:19:28 2011
@@ -18,3 +18,14 @@ AlchemyAPIAnnotator v2.3.1-SNAPSHOT rev.
 WhitespaceTokenizer v2.3.1-SNAPSHOT rev. 1076132
 
 $Id$
+
+==================  3.2.0-dev ==================
+
+Test Cases:
+
+ * SOLR-2387: add mock annotators for improved testing,
+   (Tommaso Teofili via rmuir)
+
+==================  3.1.0-dev ==================
+
+Initial Release

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/build.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/build.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/build.xml Mon May  9 13:19:28 2011
@@ -40,7 +40,7 @@
     <path refid="common.classpath" />
     <pathelement path="${dest}/classes" />
     <pathelement path="${dest}/test-classes" />
-    <pathelement location="${solr-path}/build/tests"/> <!-- include solr test code -->
+    <pathelement location="${solr-path}/build/test-framework"/> <!-- include solr test code -->
     <pathelement location="${solr-path}/../lucene/build/classes/test-framework" />  <!-- include some lucene test code -->
     <pathelement path="${java.class.path}"/>
   </path>
@@ -52,7 +52,7 @@
   <target name="init">
     <mkdir dir="${dest}/classes"/>
     <mkdir dir="${build.javadoc}" />
-    <subant target="compileTests">
+    <subant target="compileTestFramework">
       <fileset dir="${solr-path}" includes="build.xml"/>
     </subant>
     <subant target="make-manifest">

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfiguration.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfiguration.java?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfiguration.java (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfiguration.java Mon May  9 13:19:28 2011
@@ -34,11 +34,11 @@ public class SolrUIMAConfiguration {
 
   private String aePath;
 
-  private Map<String, String> runtimeParameters;
+  private Map<String, Object> runtimeParameters;
 
   public SolrUIMAConfiguration(String aePath, String[] fieldsToAnalyze, boolean fieldsMerging,
           Map<String, Map<String, String>> typesFeaturesFieldsMapping,
-          Map<String, String> runtimeParameters) {
+          Map<String, Object> runtimeParameters) {
     this.aePath = aePath;
     this.fieldsToAnalyze = fieldsToAnalyze;
     this.fieldsMerging = fieldsMerging;
@@ -62,7 +62,7 @@ public class SolrUIMAConfiguration {
     return aePath;
   }
 
-  public Map<String, String> getRuntimeParameters() {
+  public Map<String, Object> getRuntimeParameters() {
     return runtimeParameters;
   }
 

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java Mon May  9 13:19:28 2011
@@ -105,15 +105,15 @@ public class SolrUIMAConfigurationReader
     return map;
   }
 
-  private Map<String, String> readAEOverridingParameters() {
-    Map<String, String> runtimeParameters = new HashMap<String, String>();
+  private Map<String, Object> readAEOverridingParameters() {
+    Map<String, Object> runtimeParameters = new HashMap<String, Object>();
     Node uimaConfigNode = solrConfig.getNode(AE_RUNTIME_PARAMETERS_NODE_PATH, true);
 
     if (uimaConfigNode.hasChildNodes()) {
       NodeList overridingNodes = uimaConfigNode.getChildNodes();
       for (int i = 0; i < overridingNodes.getLength(); i++) {
         Node overridingNode = overridingNodes.item(i);
-        if (overridingNode.getNodeType() != Node.TEXT_NODE) {
+        if (overridingNode.getNodeType() != Node.TEXT_NODE && overridingNode.getNodeType() != Node.COMMENT_NODE) {
           runtimeParameters.put(overridingNode.getNodeName(), overridingNode.getTextContent());
         }
       }

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/AEProviderFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/AEProviderFactory.java?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/AEProviderFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/AEProviderFactory.java Mon May  9 13:19:28 2011
@@ -43,7 +43,7 @@ public class AEProviderFactory {
   }
 
   public synchronized AEProvider getAEProvider(String core, String aePath,
-          Map<String, String> runtimeParameters) {
+          Map<String, Object> runtimeParameters) {
     String key = new StringBuilder(core).append(aePath).toString();
     if (providerCache.get(key) == null) {
       providerCache.put(key, new OverridingParamsAEProvider(aePath, runtimeParameters));

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/OverridingParamsAEProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/OverridingParamsAEProvider.java?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/OverridingParamsAEProvider.java (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/OverridingParamsAEProvider.java Mon May  9 13:19:28 2011
@@ -43,9 +43,9 @@ public class OverridingParamsAEProvider 
 
   private AnalysisEngine cachedAE;
 
-  private Map<String, String> runtimeParameters;
+  private Map<String, Object> runtimeParameters;
 
-  public OverridingParamsAEProvider(String aeFilePath, Map<String, String> runtimeParameters) {
+  public OverridingParamsAEProvider(String aeFilePath, Map<String, Object> runtimeParameters) {
     this.aeFilePath = aeFilePath;
     this.runtimeParameters = runtimeParameters;
   }
@@ -63,9 +63,11 @@ public class OverridingParamsAEProvider 
 
         /* iterate over each AE (to set runtime parameters) */
         for (String attributeName : runtimeParameters.keySet()) {
+          Object val = getRuntimeValue(desc, attributeName);
           desc.getAnalysisEngineMetaData().getConfigurationParameterSettings().setParameterValue(
-                  attributeName, runtimeParameters.get(attributeName));
-          log.info(new StringBuilder("setting ").append(attributeName).append(" : ").append(
+                  attributeName, val);
+          if (log.isDebugEnabled())
+            log.debug(new StringBuilder("setting ").append(attributeName).append(" : ").append(
                   runtimeParameters.get(attributeName)).toString());
         }
         // create AE here
@@ -86,4 +88,30 @@ public class OverridingParamsAEProvider 
     return cachedAE;
   }
 
+  /* create the value to inject in the runtime parameter depending on its declared type */
+  private Object getRuntimeValue(AnalysisEngineDescription desc, String attributeName)
+          throws ClassNotFoundException {
+    String type = desc.getAnalysisEngineMetaData().getConfigurationParameterDeclarations().
+                    getConfigurationParameter(null, attributeName).getType();
+    // TODO : do it via reflection ? i.e. Class paramType = Class.forName(type)...
+    Object val = null;
+    Object runtimeValue = runtimeParameters.get(attributeName);
+    if (runtimeValue!=null) {
+      if ("String".equals(type)) {
+        val = String.valueOf(runtimeValue);
+      }
+      else if ("Integer".equals(type)) {
+        val = Integer.valueOf(runtimeValue.toString());
+      }
+      else if ("Boolean".equals(type)) {
+        val = Boolean.valueOf(runtimeValue.toString());
+      }
+      else if ("Float".equals(type)) {
+        val = Float.valueOf(runtimeValue.toString());
+      }
+    }
+
+    return val;
+  }
+
 }
\ No newline at end of file

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java Mon May  9 13:19:28 2011
@@ -70,8 +70,6 @@ public class UIMAUpdateRequestProcessorT
 
   @Test
   public void testProcessing() throws Exception {
-    // this test requires an internet connection (e.g. opencalais api)
-    checkInternetConnection();
 
     addDoc(adoc(
             "id",
@@ -83,26 +81,29 @@ public class UIMAUpdateRequestProcessorT
                     + " attached if you need it, but it is also committed to trunk and 3_x branch."
                     + " Last Lucene European Conference has been held in Prague."));
     assertU(commit());
-    assertQ(req("suggested_category:*"), "//*[@numFound='1']");
+    assertQ(req("sentence:*"), "//*[@numFound='1']");
+    assertQ(req("sentiment:*"), "//*[@numFound='0']");
+    assertQ(req("entity:Prague"), "//*[@numFound='1']");
   }
 
   @Test
   public void testTwoUpdates() throws Exception {
-    // this test requires an internet connection (e.g. opencalais api)
-    checkInternetConnection();
 
     addDoc(adoc("id", "1", "text", "The Apache Software Foundation is happy to announce "
             + "BarCampApache Sydney, Australia, the first ASF-backed event in the Southern "
             + "Hemisphere!"));
     assertU(commit());
-    assertQ(req("suggested_category:*"), "//*[@numFound='1']");
+    assertQ(req("sentence:*"), "//*[@numFound='1']");
 
     addDoc(adoc("id", "2", "text", "Taking place 11th December 2010 at the University "
             + "of Sydney's Darlington Centre, the BarCampApache \"unconference\" will be"
             + " attendee-driven, facilitated by members of the Apache community and will "
             + "focus on the Apache..."));
     assertU(commit());
-    assertQ(req("suggested_category:*"), "//*[@numFound='2']");
+    assertQ(req("sentence:*"), "//*[@numFound='2']");
+
+    assertQ(req("sentiment:positive"), "//*[@numFound='1']");
+    assertQ(req("entity:Apache"), "//*[@numFound='2']");
   }
 
   private void addDoc(String doc) throws Exception {
@@ -120,14 +121,4 @@ public class UIMAUpdateRequestProcessorT
     handler.handleRequestBody(req, new SolrQueryResponse());
   }
 
-  private void checkInternetConnection() {
-    try {
-      URLConnection conn = new URL("http://www.apache.org/").openConnection();
-      conn.setConnectTimeout(5000);
-      conn.setReadTimeout(5000);
-      conn.connect();
-    } catch (Exception ex) {
-      assumeNoException("This test requires an internet connection", ex);
-    }
-  }
 }

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/AggregateSentenceAE.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/AggregateSentenceAE.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/AggregateSentenceAE.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/AggregateSentenceAE.xml Mon May  9 13:19:28 2011
@@ -14,25 +14,34 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-  -->
-
+-->
 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
   <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
   <primitive>false</primitive>
   <delegateAnalysisEngineSpecifiers>
-    <delegateAnalysisEngine key="HmmTagger">
-      <import name="HmmTagger"/>
-    </delegateAnalysisEngine>
     <delegateAnalysisEngine key="WhitespaceTokenizer">
       <import name="WhitespaceTokenizer"/>
     </delegateAnalysisEngine>
+    <delegateAnalysisEngine key="HmmTagger">
+      <import name="HmmTagger"/>
+    </delegateAnalysisEngine>
   </delegateAnalysisEngineSpecifiers>
   <analysisEngineMetaData>
     <name>AggregateSentenceAE</name>
     <description/>
     <version>1.0</version>
     <vendor/>
-    <configurationParameters/>
+    <configurationParameters>
+      <configurationParameter>
+        <name>ngramsize</name>
+        <type>Integer</type>
+        <multiValued>false</multiValued>
+        <mandatory>false</mandatory>
+        <overrides>
+          <parameter>HmmTagger/NGRAM_SIZE</parameter>
+        </overrides>
+      </configurationParameter>
+    </configurationParameters>
     <configurationParameterSettings/>
     <flowConstraints>
       <fixedFlow>
@@ -44,7 +53,10 @@
     <capabilities>
       <capability>
         <inputs/>
-        <outputs/>
+        <outputs>
+          <type allAnnotatorFeatures="true">org.apache.uima.SentenceAnnotation</type>
+          <type allAnnotatorFeatures="true">org.apache.uima.TokenAnnotation</type>
+        </outputs>
         <languagesSupported/>
       </capability>
     </capabilities>

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/TestAE.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/TestAE.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/TestAE.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/TestAE.xml Mon May  9 13:19:28 2011
@@ -20,126 +20,38 @@
   <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
   <primitive>false</primitive>
   <delegateAnalysisEngineSpecifiers>
-    <delegateAnalysisEngine key="TextKeywordExtractionAEDescriptor">
-      <import name="TextKeywordExtractionAEDescriptor"/>
-    </delegateAnalysisEngine>
-    <delegateAnalysisEngine key="TextConceptTaggingAEDescriptor">
-      <import name="TextConceptTaggingAEDescriptor"/>
-    </delegateAnalysisEngine>
-    <delegateAnalysisEngine key="OpenCalaisAnnotator">
-      <import name="OpenCalaisAnnotator"/>
-    </delegateAnalysisEngine>
-    <delegateAnalysisEngine key="TextLanguageDetectionAEDescriptor">
-      <import name="TextLanguageDetectionAEDescriptor"/>
-    </delegateAnalysisEngine>
-    <delegateAnalysisEngine key="TextCategorizationAEDescriptor">
-      <import name="TextCategorizationAEDescriptor"/>
-    </delegateAnalysisEngine>
     <delegateAnalysisEngine key="AggregateSentenceAE">
       <import location="AggregateSentenceAE.xml"/>
     </delegateAnalysisEngine>
-    <delegateAnalysisEngine key="TextRankedEntityExtractionAEDescriptor">
-      <import name="TextRankedEntityExtractionAEDescriptor"/>
+    <delegateAnalysisEngine key="DummyEntityAEDescriptor">
+      <import location="DummyEntityAEDescriptor.xml"/>
+    </delegateAnalysisEngine>
+    <delegateAnalysisEngine key="DummySentimentAnalysisAEDescriptor">
+      <import location="DummySentimentAnalysisAEDescriptor.xml"/>
     </delegateAnalysisEngine>
   </delegateAnalysisEngineSpecifiers>
   <analysisEngineMetaData>
-    <name>ExtServicesAE</name>
+    <name>TestAE</name>
     <description/>
     <version>1.0</version>
     <vendor/>
-    <configurationParameters searchStrategy="language_fallback">
-      <configurationParameter>
-        <name>oc_licenseID</name>
-        <type>String</type>
-        <multiValued>false</multiValued>
-        <mandatory>true</mandatory>
-        <overrides>
-          <parameter>OpenCalaisAnnotator/licenseID</parameter>
-        </overrides>
-      </configurationParameter>
-      <configurationParameter>
-        <name>keyword_apikey</name>
-        <type>String</type>
-        <multiValued>false</multiValued>
-        <mandatory>true</mandatory>
-        <overrides>
-          <parameter>TextKeywordExtractionAEDescriptor/apikey</parameter>
-        </overrides>
-      </configurationParameter>
-      <configurationParameter>
-        <name>concept_apikey</name>
-        <type>String</type>
-        <multiValued>false</multiValued>
-        <mandatory>true</mandatory>
-        <overrides>
-          <parameter>TextConceptTaggingAEDescriptor/apikey</parameter>
-        </overrides>
-      </configurationParameter>
-      <configurationParameter>
-        <name>lang_apikey</name>
-        <type>String</type>
-        <multiValued>false</multiValued>
-        <mandatory>true</mandatory>
-        <overrides>
-          <parameter>TextLanguageDetectionAEDescriptor/apikey</parameter>
-        </overrides>
-      </configurationParameter>
-      <configurationParameter>
-        <name>cat_apikey</name>
-        <type>String</type>
-        <multiValued>false</multiValued>
-        <mandatory>true</mandatory>
-        <overrides>
-          <parameter>TextCategorizationAEDescriptor/apikey</parameter>
-        </overrides>
-      </configurationParameter>
+    <configurationParameters>
       <configurationParameter>
-        <name>entities_apikey</name>
-        <type>String</type>
+        <name>ngramsize</name>
+        <type>Integer</type>
         <multiValued>false</multiValued>
-        <mandatory>true</mandatory>
+        <mandatory>false</mandatory>
         <overrides>
-          <parameter>TextRankedEntityExtractionAEDescriptor/apikey</parameter>
+          <parameter>AggregateSentenceAE/ngramsize</parameter>
         </overrides>
       </configurationParameter>
     </configurationParameters>
-    <configurationParameterSettings>
-      <nameValuePair>
-        <name>oc_licenseID</name>
-        <value>
-          <string>licenseid</string>
-        </value>
-      </nameValuePair>
-      <nameValuePair>
-        <name>keyword_apikey</name>
-        <value>
-          <string>apikey</string>
-        </value>
-      </nameValuePair>
-      <nameValuePair>
-        <name>concept_apikey</name>
-        <value>
-          <string>apikey</string>
-        </value>
-      </nameValuePair>
-      <nameValuePair>
-        <name>lang_apikey</name>
-        <value>
-          <string>apikey</string>
-        </value>
-      </nameValuePair>
-      <nameValuePair>
-        <name>cat_apikey</name>
-        <value>
-          <string>apikey</string>
-        </value>
-      </nameValuePair>
-    </configurationParameterSettings>
+    <configurationParameterSettings/>
     <flowConstraints>
       <fixedFlow>
         <node>AggregateSentenceAE</node>
-        <node>OpenCalaisAnnotator</node>
-        <node>TextCategorizationAEDescriptor</node>
+        <node>DummyEntityAEDescriptor</node>
+        <node>DummySentimentAnalysisAEDescriptor</node>
       </fixedFlow>
     </flowConstraints>
     <fsIndexCollection/>

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml Mon May  9 13:19:28 2011
@@ -562,11 +562,9 @@
     -->
 
   <field name="language" type="string" indexed="true" stored="true" required="false"/>
-  <field name="concept" type="string" indexed="true" stored="true" multiValued="true" required="false"/>
-  <field name="keyword" type="string" indexed="true" stored="true" multiValued="true" required="false"/>
-  <field name="suggested_category" type="string" indexed="true" stored="true" multiValued="false" required="false"/>
   <field name="sentence" type="text" indexed="true" stored="true" multiValued="true" required="false" />
-  <dynamicField name="entity*" type="text" indexed="true" stored="true" multiValued="true"/>
+  <field name="sentiment" type="string" indexed="true" stored="true" multiValued="true"/>
+  <field name="entity" type="text" indexed="true" stored="true" multiValued="true"/>
 
     <!--
       Dynamic field definitions. If a field name is not found,

Modified: lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml Mon May  9 13:19:28 2011
@@ -1064,38 +1064,21 @@
 
 <uimaConfig>
    <runtimeParameters>
-      <keyword_apikey>04490000a72fe7ec5cb3497f14e77f338c86f2fe</keyword_apikey>
-      <concept_apikey>04490000a72fe7ec5cb3497f14e77f338c86f2fe</concept_apikey>
-      <lang_apikey>04490000a72fe7ec5cb3497f14e77f338c86f2fe</lang_apikey>
-      <cat_apikey>04490000a72fe7ec5cb3497f14e77f338c86f2fe</cat_apikey>
-      <entities_apikey>04490000a72fe7ec5cb3497f14e77f338c86f2fe</entities_apikey>
-      <oc_licenseID>g6h9zamsdtwhb93nc247ecrs</oc_licenseID>
+     <ngramsize>3</ngramsize>
   </runtimeParameters>
   <analysisEngine>/TestAE.xml</analysisEngine>
   <analyzeFields merge="false">text</analyzeFields>
   <fieldMapping>
-    <type name="org.apache.uima.alchemy.ts.categorization.Category">
-      <map feature="text" field="suggested_category"/>
-    </type>
-    <type name="org.apache.uima.alchemy.ts.concept.ConceptFS">
-      <map feature="text" field="concept"/>
+    <type name="org.apache.uima.SentenceAnnotation">
+      <map feature="coveredText" field="sentence"/>
     </type>
-    <type name="org.apache.uima.alchemy.ts.entity.BaseEntity">
-      <map feature="text" field="entity"/>
+    <type name="org.apache.solr.uima.ts.SentimentAnnotation">
+      <map feature="mood" field="sentiment"/>
     </type>
-    <type name="org.apache.uima.calais.BaseType">
+    <type name="org.apache.solr.uima.ts.EntityAnnotation">
       <map feature="coveredText" field="entity"/>
     </type>
-    <type name="org.apache.uima.alchemy.ts.keywords.KeywordFS">
-      <map feature="text" field="keyword"/>
-    </type>
-    <type name="org.apache.uima.alchemy.ts.language.LanguageFS">
-      <map feature="language" field="language"/>
-    </type>
-    <type name="org.apache.uima.SentenceAnnotation">
-      <map feature="coveredText" field="sentence"/>
-    </type>
   </fieldMapping>
 </uimaConfig>
-  
+
 </config>

Modified: lucene/dev/branches/bulkpostings/solr/example/solr/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/example/solr/conf/solrconfig.xml?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/example/solr/conf/solrconfig.xml (original)
+++ lucene/dev/branches/bulkpostings/solr/example/solr/conf/solrconfig.xml Mon May  9 13:19:28 2011
@@ -1183,12 +1183,10 @@
 
        http://wiki.apache.org/solr/ClusteringComponent
 
-       This relies on third party jars which are notincluded in the
-       release.  To use this component (and the "/clustering" handler)
-       Those jars will need to be downloaded, and you'll need to set
-       the solr.cluster.enabled system property when running solr...
+       You'll need to set the solr.cluster.enabled system property 
+       when running solr to run with clustering enabled:
 
-          java -Dsolr.clustering.enabled=true -jar start.jar
+       java -Dsolr.clustering.enabled=true -jar start.jar
     -->
   <searchComponent name="clustering" 
                    enable="${solr.clustering.enabled:false}"
@@ -1496,6 +1494,28 @@
      <valueSourceParser name="myfunc" 
                         class="com.mycompany.MyValueSourceParser" />
     -->
+    
+  
+  <!-- Document Transformers
+       http://wiki.apache.org/solr/DocTransformers
+    -->
+  <!--
+     Could be something like:
+     <transformer name="db" class="com.mycompany.LoadFromDatabaseTransformer" >
+       <int name="connection">jdbc://....</int>
+     </transformer>
+     
+     To add a constant value to all docs, use:
+     <transformer name="mytrans2" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
+       <int name="value">5</int>
+     </transformer>
+     
+     If you want the user to still be able to change it with _value:something_ use this:
+     <transformer name="mytrans3" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
+       <double name="defaultValue">5</double>
+     </transformer>
+    -->
+    
 
   <!-- Legacy config for the admin interface -->
   <admin>

Modified: lucene/dev/branches/bulkpostings/solr/lib/easymock-LICENSE-MIT.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/lib/easymock-LICENSE-MIT.txt?rev=1101016&r1=1101015&r2=1101016&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/lib/easymock-LICENSE-MIT.txt (original)
+++ lucene/dev/branches/bulkpostings/solr/lib/easymock-LICENSE-MIT.txt Mon May  9 13:19:28 2011
@@ -1,8 +1,17 @@
 EasyMock 2 License (MIT License)
 
 Copyright (c) 2001-2006 OFFIS, Tammo Freese.
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+associated documentation files (the "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject
+  to the following conditions:
 
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all copies or substantial
+portions of the Software.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.