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 2012/03/30 14:41:35 UTC

svn commit: r1307386 [3/5] - in /lucene/dev/branches/lucene3930: ./ dev-tools/ dev-tools/eclipse/ dev-tools/maven/ dev-tools/maven/modules/benchmark/ dev-tools/maven/solr/core/ dev-tools/maven/solr/solrj/ lucene/ lucene/contrib/ lucene/contrib/misc/src...

Modified: lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java (original)
+++ lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java Fri Mar 30 12:41:28 2012
@@ -17,12 +17,13 @@ package org.apache.solr.handler.dataimpo
  * limitations under the License.
  */
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.impl.XMLResponseParser;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
@@ -82,7 +83,7 @@ public class SolrEntityProcessor extends
    * @return a {@link HttpClient} instance used for interfacing with a source Solr service
    */
   protected HttpClient getHttpClient() {
-    return new HttpClient(new MultiThreadedHttpConnectionManager());
+    return new DefaultHttpClient(new ThreadSafeClientConnManager());
   }
 
   @Override
@@ -100,10 +101,10 @@ public class SolrEntityProcessor extends
       URL url = new URL(serverPath);
       // (wt="javabin|xml") default is javabin
       if ("xml".equals(context.getResolvedEntityAttribute(CommonParams.WT))) {
-        solrServer = new CommonsHttpSolrServer(url, client, new XMLResponseParser(), false);
+        solrServer = new HttpSolrServer(url.toExternalForm(), client, new XMLResponseParser());
         LOG.info("using XMLResponseParser");
       } else {
-        solrServer = new CommonsHttpSolrServer(url, client);
+        solrServer = new HttpSolrServer(url.toExternalForm(), client);
         LOG.info("using BinaryResponseParser");
       }
     } catch (MalformedURLException e) {

Modified: lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java (original)
+++ lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java Fri Mar 30 12:41:28 2012
@@ -18,7 +18,7 @@ package org.apache.solr.handler.dataimpo
 
 import org.apache.commons.io.FileUtils;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.DirectXmlRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
@@ -69,7 +69,7 @@ public class TestContentStreamDataSource
     params.set("clean", "false");
     req.setParams(params);
     String url = "http://localhost:" + jetty.getLocalPort() + "/solr";
-    CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(url);
+    HttpSolrServer solrServer = new HttpSolrServer(url);
     solrServer.request(req);
     ModifiableSolrParams qparams = new ModifiableSolrParams();
     qparams.add("q", "*:*");
@@ -89,7 +89,7 @@ public class TestContentStreamDataSource
         UpdateParams.COMMIT_WITHIN, "1000");
     req.setParams(params);
     String url = "http://localhost:" + jetty.getLocalPort() + "/solr";
-    CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(url);
+    HttpSolrServer solrServer = new HttpSolrServer(url);
     solrServer.request(req);
     Thread.sleep(100);
     ModifiableSolrParams queryAll = params("q", "*");

Modified: lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java (original)
+++ lucene/dev/branches/lucene3930/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java Fri Mar 30 12:41:28 2012
@@ -26,12 +26,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
 import org.apache.commons.io.FileUtils;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.common.SolrInputDocument;
 import org.junit.After;
 import org.junit.AfterClass;
@@ -274,9 +274,9 @@ public class TestSolrEntityProcessorEndT
       sidl.add(sd);
     }
     
-    HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager());
+    DefaultHttpClient client = new DefaultHttpClient(new ThreadSafeClientConnManager());
     URL url = new URL(getSourceUrl(jetty.getLocalPort()));
-    CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(url, client);
+    HttpSolrServer solrServer = new HttpSolrServer(url.toExternalForm(), client);
     solrServer.add(sidl);
     solrServer.commit(true, true);
   }

Modified: lucene/dev/branches/lucene3930/solr/core/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/ivy.xml?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/ivy.xml (original)
+++ lucene/dev/branches/lucene3930/solr/core/ivy.xml Fri Mar 30 12:41:28 2012
@@ -22,7 +22,9 @@
     <dependencies>
       <dependency org="commons-codec" name="commons-codec" rev="1.6" transitive="false"/>
       <dependency org="commons-fileupload" name="commons-fileupload" rev="1.2.1" transitive="false"/>
-      <dependency org="commons-httpclient" name="commons-httpclient" rev="3.1" transitive="false"/>
+      <dependency org="org.apache.httpcomponents" name="httpcore" rev="4.1.3" transitive="false"/>
+      <dependency org="org.apache.httpcomponents" name="httpclient" rev="4.1.3" transitive="false"/>
+      <dependency org="org.apache.httpcomponents" name="httpmime" rev="4.1.3" transitive="false"/>
       <dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.6.1" transitive="false"/>
       <dependency org="commons-io" name="commons-io" rev="2.1" transitive="false"/>
       <dependency org="commons-lang" name="commons-lang" rev="2.6" transitive="false"/>

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/doc-files/tutorial.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/doc-files/tutorial.html?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/doc-files/tutorial.html (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/doc-files/tutorial.html Fri Mar 30 12:41:28 2012
@@ -8,6 +8,10 @@ pre.code {
   background-color: #D3D3D3;
   padding: 0.2em;
 }
+.codefrag {
+  font-family: monospace;
+  font-weight:bold;
+}
 </style>
 
 </head>
@@ -77,13 +81,10 @@ To launch Jetty with the Solr WAR, and t
 </p>
 <pre class="code">
 user:~/solr/example$ <strong>java -jar start.jar</strong>
-2009-10-23 16:42:53.816::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
-2009-10-23 16:42:53.907::INFO:  jetty-6.1.26
-
+2012-03-27 17:11:29.529:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
+2012-03-27 17:11:29.696:INFO::jetty-6.1-SNAPSHOT
 ...
-
-Oct 23, 2009 4:41:56 PM org.apache.solr.core.SolrCore registerSearcher
-INFO: [] Registered new searcher Searcher@7c3885 main
+2012-03-27 17:11:32.343:INFO::Started SocketConnector@0.0.0.0:8983
 </pre>
 <p>
 This will start up the Jetty application server on port 8983, and use your terminal to display the logging information from Solr.
@@ -117,8 +118,7 @@ indicating the URL of the Solr server:
 </p>
 <pre class="code">
 user:~/solr/example/exampledocs$ <strong>java -jar post.jar solr.xml monitor.xml</strong>
-SimplePostTool: version 1.2
-SimplePostTool: WARNING: Make sure your XML documents are encoded in UTF-8, other encodings are not currently supported
+SimplePostTool: version 1.4
 SimplePostTool: POSTing files to http://localhost:8983/solr/update..
 SimplePostTool: POSTing file solr.xml
 SimplePostTool: POSTing file monitor.xml
@@ -139,19 +139,19 @@ You can index all of the sample data, us
 </p>
 <pre class="code">
 user:~/solr/example/exampledocs$ <strong>java -jar post.jar *.xml</strong>
-SimplePostTool: version 1.2
-SimplePostTool: WARNING: Make sure your XML documents are encoded in UTF-8, other encodings are not currently supported
+SimplePostTool: version 1.4
 SimplePostTool: POSTing files to http://localhost:8983/solr/update..
+SimplePostTool: POSTing file gb18030-example.xml
 SimplePostTool: POSTing file hd.xml
 SimplePostTool: POSTing file ipod_other.xml
 SimplePostTool: POSTing file ipod_video.xml
 SimplePostTool: POSTing file mem.xml
-SimplePostTool: POSTing file monitor.xml
+SimplePostTool: POSTing file money.xml
 SimplePostTool: POSTing file monitor2.xml
+SimplePostTool: POSTing file monitor.xml
 SimplePostTool: POSTing file mp500.xml
 SimplePostTool: POSTing file sd500.xml
 SimplePostTool: POSTing file solr.xml
-SimplePostTool: POSTing file spellchecker.xml
 SimplePostTool: POSTing file utf8-example.xml
 SimplePostTool: POSTing file vidcard.xml
 SimplePostTool: COMMITting Solr index changes..
@@ -478,34 +478,52 @@ in subsequent searches.
     named <span class="codefrag">text_general</span>, which has defaults appropriate for all languages.
   </p>
 <p>
-    If you know your textual content is English, as is the case for the example documents in this tutorial,
-    and you'd like to apply English-specific stemming and stop word removal, as well as split compound words, you can use the <span class="codefrag">text_en_splitting</span> fieldType instead.
-    Go ahead and edit the <span class="codefrag">schema.xml</span> under the <span class="codefrag">solr/example/solr/conf</span> directory,
-    and change the <span class="codefrag">type</span> for fields <span class="codefrag">text</span> and <span class="codefrag">features</span> from <span class="codefrag">text_general</span> to <span class="codefrag">text_en_splitting</span>.
-    Restart the server and then re-post all of the documents, and then these queries will show the English-specific transformations:
+  If you know your textual content is English, as is the case for the example 
+  documents in this tutorial, and you'd like to apply English-specific stemming
+  and stop word removal, as well as split compound words, you can use the 
+  <span class="codefrag">text_en_splitting</span> fieldType instead.
+  Go ahead and edit the <span class="codefrag">schema.xml</span> in the 
+  <span class="codefrag">solr/example/solr/conf</span> directory,
+  to use the <span class="codefrag">text_en_splitting</span> fieldType for 
+  the <span class="codefrag">text</span> and 
+  <span class="codefrag">features</span> fields like so:
+</p>
+<pre class="code">
+   &lt;field name="features" <b>type="text_en_splitting"</b> indexed="true" stored="true" multiValued="true"/&gt;
+   ...
+   &lt;field name="text" <b>type="text_en_splitting"</b> indexed="true" stored="false" multiValued="true"/&gt;
+</pre>
+<p>
+  Stop and restart Solr after making these changes and then re-post all of 
+  the example documents using 
+  <span class="codefrag">java -jar post.jar *.xml</span>.  
+  Now queries like the ones listed below will demonstrate English-specific 
+  transformations:
   </p>
 <ul>
     
 <li>A search for
-       <a href="http://localhost:8983/solr/select/?indent=on&amp;q=power-shot&amp;fl=name">power-shot</a>
-       matches <span class="codefrag">PowerShot</span>, and
-      <a href="http://localhost:8983/solr/select/?indent=on&amp;q=adata&amp;fl=name">adata</a>
-      matches <span class="codefrag">A-DATA</span> due to the use of <span class="codefrag">WordDelimiterFilter</span> and <span class="codefrag">LowerCaseFilter</span>.
-    </li>
+  <a href="http://localhost:8983/solr/select/?indent=on&amp;q=power-shot&amp;fl=name">power-shot</a>
+  can match <span class="codefrag">PowerShot</span>, and
+  <a href="http://localhost:8983/solr/select/?indent=on&amp;q=adata&amp;fl=name">adata</a>
+  can match <span class="codefrag">A-DATA</span> by using the 
+  <span class="codefrag">WordDelimiterFilter</span> and <span class="codefrag">LowerCaseFilter</span>.
+</li>
 
     
 <li>A search for
-      <a href="http://localhost:8983/solr/select/?indent=on&amp;q=features:recharging&amp;fl=name,features">features:recharging</a>
-       matches <span class="codefrag">Rechargeable</span> due to stemming with the <span class="codefrag">EnglishPorterFilter</span>.
-    </li>
+  <a href="http://localhost:8983/solr/select/?indent=on&amp;q=features:recharging&amp;fl=name,features">features:recharging</a>
+  can match <span class="codefrag">Rechargeable</span> using the stemming 
+  features of <span class="codefrag">PorterStemFilter</span>.
+</li>
 
     
 <li>A search for
-       <a href="http://localhost:8983/solr/select/?indent=on&amp;q=%221 gigabyte%22&amp;fl=name">"1 gigabyte"</a>
-       matches things with <span class="codefrag">GB</span>, and the misspelled
-      <a href="http://localhost:8983/solr/select/?indent=on&amp;q=pixima&amp;fl=name">pixima</a>
-       matches <span class="codefrag">Pixma</span> due to use of a <span class="codefrag">SynonymFilter</span>.
-    </li>
+  <a href="http://localhost:8983/solr/select/?indent=on&amp;q=%221 gigabyte%22&amp;fl=name">"1 gigabyte"</a>
+  can match <span class="codefrag">1GB</span>, and the commonly misspelled
+  <a href="http://localhost:8983/solr/select/?indent=on&amp;q=pixima&amp;fl=name">pixima</a> can matches <span class="codefrag">Pixma</span> using the 
+  <span class="codefrag">SynonymFilter</span>.
+</li>
 
   
 </ul>
@@ -514,30 +532,56 @@ in subsequent searches.
   </p>
 <a name="N1030B"></a><a name="Analysis+Debugging"></a>
 <h3 class="boxed">Analysis Debugging</h3>
-<p>There is a handy <a href="http://localhost:8983/solr/admin/analysis.jsp">analysis</a>
-      debugging page where you can see how a text value is broken down into words,
-      and shows the resulting tokens after they pass through each filter in the chain.
-    </p>
 <p>
-      
-<a href="http://localhost:8983/solr/admin/analysis.jsp?name=name&amp;val=Canon+Power-Shot+SD500">This</a>
-      shows how "<span class="codefrag">Canon Power-Shot SD500</span>" would be indexed as a value in the name field.  Each row of
-      the table shows the resulting tokens after having passed through the next <span class="codefrag">TokenFilter</span> in the analyzer for the <span class="codefrag">name</span> field.
-      Notice how both <span class="codefrag">powershot</span> and <span class="codefrag">power</span>, <span class="codefrag">shot</span> are indexed.  Tokens generated at the same position
-      are shown in the same column, in this case <span class="codefrag">shot</span> and <span class="codefrag">powershot</span>.
-    </p>
-<p>Selecting <a href="http://localhost:8983/solr/admin/analysis.jsp?name=name&amp;verbose=on&amp;val=Canon+Power-Shot+SD500">verbose output</a>
-    will show more details, such as the name of each analyzer component in the chain, token positions, and the start and end positions
-    of the token in the original text.
-    </p>
-<p>Selecting <a href="http://localhost:8983/solr/admin/analysis.jsp?name=name&amp;highlight=on&amp;val=Canon+Power-Shot+SD500&amp;qval=Powershot sd-500">highlight matches</a>
-    when both index and query values are provided will take the resulting terms from the query value and highlight
-    all matches in the index value analysis.
-    </p>
+  There is a handy <a href="http://localhost:8983/solr/admin/analysis.jsp">analysis</a>
+  debugging page where you can see how a text value is broken down into words,
+  and shows the resulting tokens after they pass through each filter in the chain.
+</p>
+<p>
+  <a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&amp;name=text_en_splitting&amp;val=Canon+Power-Shot+SD500">This</a>
+  url shows how "<span class="codefrag">Canon Power-Shot SD500</span>" would 
+  shows the tokens that would be instead be created using the 
+  <span class="codefrag">text_en_splitting</span> type.  Each row of
+  the table shows the resulting tokens after having passed through the next 
+  <span class="codefrag">TokenFilter</span> in the analyzer.
+  Notice how both <span class="codefrag">powershot</span> and 
+  <span class="codefrag">power</span>, <span class="codefrag">shot</span> 
+  are indexed.  Tokens generated at the same position
+  are shown in the same column, in this case 
+  <span class="codefrag">shot</span> and 
+  <span class="codefrag">powershot</span>.  (Compare the previous output with
+  <a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&amp;name=text_general&amp;val=Canon+Power-Shot+SD500">The tokens produced using the text_general field type</a>.)
+</p>
+<p>
+  Selecting <a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&amp;name=text_en_splitting&amp;verbose=on&amp;val=Canon+Power-Shot+SD500">verbose output</a>
+  will show more details, such as the name of each analyzer component in the 
+  chain, token positions, and the start and end positions of the token in 
+  the original text.
+</p>
+<p>
+  Selecting <a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&amp;name=text_en_splitting&amp;highlight=on&amp;val=Canon+Power-Shot+SD500&amp;qval=Powershot sd-500">highlight matches</a>
+  when both index and query values are provided will take the resulting 
+  terms from the query value and highlight
+  all matches in the index value analysis.
+</p>
 <p>
-<a href="http://localhost:8983/solr/admin/analysis.jsp?name=text&amp;highlight=on&amp;val=Four+score+and+seven+years+ago+our+fathers+brought+forth+on+this+continent+a+new+nation%2C+conceived+in+liberty+and+dedicated+to+the+proposition+that+all+men+are+created+equal.+&amp;qval=liberties+and+equality">Here</a>
-    is an example of stemming and stop-words at work.
-    </p>
+  Other interesting examples:
+</p>
+<ul>
+  <li><a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&amp;name=text_en&amp;highlight=on&amp;val=Four+score+and+seven+years+ago+our+fathers+brought+forth+on+this+continent+a+new+nation%2C+conceived+in+liberty+and+dedicated+to+the+proposition+that+all+men+are+created+equal.+&amp;qval=liberties+and+equality">English stemming and stop-words</a> 
+    using the <span class="codefrag">text_en</span> field type
+  </li>
+  <li><a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&amp;name=text_cjk&amp;highlight=on&amp;val=%EF%BD%B6%EF%BE%80%EF%BD%B6%EF%BE%85&amp;qval=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A">Half-width katakana normalization with bi-graming</a> 
+    using the <span class="codefrag">text_cjk</span> field type
+  </li>
+  <li><a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&amp;name=text_ja&amp;verbose=on&amp;val=%E7%A7%81%E3%81%AF%E5%88%B6%E9%99%90%E3%82%B9%E3%83%94%E3%83%BC%E3%83%89%E3%82%92%E8%B6%85%E3%81%88%E3%82%8B%E3%80%82">Japanese morphological decomposition with part-of-speech filtering</a>
+    using the <span class="codefrag">text_ja</span> field type 
+  </li>
+  <li><a href="http://localhost:8983/solr/admin/analysis.jsp?nt=type&amp;name=text_ar&amp;verbose=on&amp;val=%D9%84%D8%A7+%D8%A3%D8%AA%D9%83%D9%84%D9%85+%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9">Arabic stop-words, normalization and stemming</a>
+    using the <span class="codefrag">text_ar</span> field type 
+  </li>
+</ul>
+
 </div>
 
 
@@ -582,7 +626,7 @@ in subsequent searches.
 <div id="footer">
 <div class="copyright">
         Copyright &copy;
-         2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+         2012 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
 </div>
 </div>
 </body>

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsFilterFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsFilterFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsFilterFactory.java Fri Mar 30 12:41:28 2012
@@ -58,7 +58,7 @@ public class CommonGramsFilterFactory ex
         throw new RuntimeException(e);
       }
     } else {
-      commonWords = (CharArraySet) StopAnalyzer.ENGLISH_STOP_WORDS_SET;
+      commonWords = StopAnalyzer.ENGLISH_STOP_WORDS_SET;
     }
   }
       

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsQueryFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsQueryFilterFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsQueryFilterFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/CommonGramsQueryFilterFactory.java Fri Mar 30 12:41:28 2012
@@ -65,7 +65,7 @@ public class CommonGramsQueryFilterFacto
         throw new RuntimeException(e);
       }
     } else {
-      commonWords = (CharArraySet) StopAnalyzer.ENGLISH_STOP_WORDS_SET;
+      commonWords = StopAnalyzer.ENGLISH_STOP_WORDS_SET;
     }
   }
 

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/analysis/JapaneseTokenizerFactory.java Fri Mar 30 12:41:28 2012
@@ -42,8 +42,8 @@ import org.apache.solr.util.plugin.Resou
  *   &lt;analyzer&gt;
  *     &lt;tokenizer class="solr.JapaneseTokenizerFactory"
  *       mode=NORMAL
- *       user-dictionary=user.txt
- *       user-dictionary-encoding=UTF-8
+ *       userDictionary=user.txt
+ *       userDictionaryEncoding=UTF-8
  *     /&gt;
  *     &lt;filter class="solr.JapaneseBaseFormFilterFactory"/&gt;
  *   &lt;/analyzer&gt;
@@ -53,9 +53,9 @@ import org.apache.solr.util.plugin.Resou
 public class JapaneseTokenizerFactory extends BaseTokenizerFactory implements ResourceLoaderAware {
   private static final String MODE = "mode";
   
-  private static final String USER_DICT_PATH = "user-dictionary";
+  private static final String USER_DICT_PATH = "userDictionary";
   
-  private static final String USER_DICT_ENCODING = "user-dictionary-encoding";
+  private static final String USER_DICT_ENCODING = "userDictionaryEncoding";
 
   private UserDictionary userDictionary;
   private Mode mode;

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java Fri Mar 30 12:41:28 2012
@@ -28,8 +28,8 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.solr.servlet.SolrDispatchFilter;
 import org.eclipse.jetty.server.*;
-import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.bio.SocketConnector;
+import org.eclipse.jetty.server.handler.GzipHandler;
 import org.eclipse.jetty.server.session.HashSessionIdManager;
 import org.eclipse.jetty.servlet.FilterHolder;
 import org.eclipse.jetty.servlet.ServletContextHandler;
@@ -124,6 +124,7 @@ public class JettySolrRunner {
 
     // Initialize the servlets
     final ServletContextHandler root = new ServletContextHandler(server,context,ServletContextHandler.SESSIONS);
+    root.setHandler(new GzipHandler());
     server.addLifeCycleListener(new LifeCycle.Listener() {
 
       public void lifeCycleStopping(LifeCycle arg0) {

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java Fri Mar 30 12:41:28 2012
@@ -26,7 +26,7 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeoutException;
 
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.WaitForState;
 import org.apache.solr.client.solrj.request.UpdateRequest;
@@ -159,7 +159,7 @@ public class RecoveryStrategy extends Th
 
   private void commitOnLeader(String leaderUrl) throws MalformedURLException,
       SolrServerException, IOException {
-    CommonsHttpSolrServer server = new CommonsHttpSolrServer(leaderUrl);
+    HttpSolrServer server = new HttpSolrServer(leaderUrl);
     server.setConnectionTimeout(30000);
     server.setSoTimeout(30000);
     UpdateRequest ureq = new UpdateRequest();
@@ -174,7 +174,7 @@ public class RecoveryStrategy extends Th
   private void sendPrepRecoveryCmd(String leaderBaseUrl,
       String leaderCoreName) throws MalformedURLException, SolrServerException,
       IOException {
-    CommonsHttpSolrServer server = new CommonsHttpSolrServer(leaderBaseUrl);
+    HttpSolrServer server = new HttpSolrServer(leaderBaseUrl);
     server.setConnectionTimeout(45000);
     server.setSoTimeout(45000);
     WaitForState prepCmd = new WaitForState();

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java Fri Mar 30 12:41:28 2012
@@ -23,12 +23,12 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.params.CoreConnectionPNames;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.RequestRecovery;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.cloud.CloudState;
@@ -55,17 +55,16 @@ public class SyncStrategy {
 
   private ShardHandler shardHandler;
   
-  private static MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
-  private static HttpClient client = new HttpClient(mgr);
+  private static ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
+  private static DefaultHttpClient client = new DefaultHttpClient(mgr);
   static {
-    mgr.getParams().setDefaultMaxConnectionsPerHost(20);
-    mgr.getParams().setMaxTotalConnections(10000);
-    mgr.getParams().setConnectionTimeout(30000);
-    mgr.getParams().setSoTimeout(30000);
-
+    mgr.setDefaultMaxPerRoute(20);
+    mgr.setMaxTotal(10000);
+    client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
+    client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);
     // prevent retries  (note: this didn't work when set on mgr.. needed to be set on client)
-    DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false);
-    client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
+    DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(0, false);
+    client.setHttpRequestRetryHandler(retryhandler);
   }
   
   public SyncStrategy() {
@@ -241,7 +240,7 @@ public class SyncStrategy {
            recoverRequestCmd.setAction(CoreAdminAction.REQUESTRECOVERY);
            recoverRequestCmd.setCoreName(((SyncShardRequest)srsp.getShardRequest()).coreName);
            
-           CommonsHttpSolrServer server = new CommonsHttpSolrServer(zkLeader.getBaseUrl());
+           HttpSolrServer server = new HttpSolrServer(zkLeader.getBaseUrl());
            server.request(recoverRequestCmd);
          } catch (Exception e) {
            log.info("Could not tell a replica to recover", e);

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/cloud/ZkController.java Fri Mar 30 12:41:28 2012
@@ -20,7 +20,6 @@ package org.apache.solr.cloud;
 import java.io.File;
 import java.io.IOException;
 import java.net.InetAddress;
-import java.net.MalformedURLException;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -33,7 +32,7 @@ import java.util.concurrent.TimeoutExcep
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.WaitForState;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrException.ErrorCode;
@@ -1119,13 +1118,8 @@ public final class ZkController {
     
     boolean isLeader = leaderProps.getCoreUrl().equals(ourUrl);
     if (!isLeader && !SKIP_AUTO_RECOVERY) {
-      CommonsHttpSolrServer server = null;
-      try {
-        server = new CommonsHttpSolrServer(leaderBaseUrl);
-      } catch (MalformedURLException e) {
-        throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR, "",
-            e);
-      }
+      HttpSolrServer server = null;
+      server = new HttpSolrServer(leaderBaseUrl);
       server.setConnectionTimeout(45000);
       server.setSoTimeout(45000);
       WaitForState prepCmd = new WaitForState();

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/RequestHandlers.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/RequestHandlers.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/RequestHandlers.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/RequestHandlers.java Fri Mar 30 12:41:28 2012
@@ -41,7 +41,6 @@ import org.slf4j.LoggerFactory;
 public final class RequestHandlers {
   public static Logger log = LoggerFactory.getLogger(RequestHandlers.class);
 
-  public static final String DEFAULT_HANDLER_NAME="standard";
   protected final SolrCore core;
   // Use a synchronized map - since the handlers can be changed at runtime, 
   // the map implementation should be thread safe
@@ -182,7 +181,10 @@ public final class RequestHandlers {
       }
     }
 
-    if(get("") == null) register("", get(DEFAULT_HANDLER_NAME));
+    if(get("") == null) register("", get("/select"));//defacto default handler
+    if(get("") == null) register("", get("standard"));//old default handler name; TODO remove?
+    if(get("") == null)
+      log.warn("no default request handler is registered (either '/select' or 'standard')");
   }
     
 

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/core/SolrCore.java Fri Mar 30 12:41:28 2012
@@ -1543,8 +1543,9 @@ public final class SolrCore implements S
     toLog.add("path", req.getContext().get("path"));
     toLog.add("params", "{" + req.getParamString() + "}");
 
-    if (req.getParams().getBool(ShardParams.IS_SHARD,false) && !(handler instanceof SearchHandler))
-      throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,"isShard is only acceptable with search handlers");
+    // TODO: this doesn't seem to be working correctly and causes problems with the example server and distrib (for example /spell)
+    // if (req.getParams().getBool(ShardParams.IS_SHARD,false) && !(handler instanceof SearchHandler))
+    //   throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,"isShard is only acceptable with search handlers");
 
     handler.handleRequest(req,rsp);
     setResponseHeaderValues(handler,req,rsp);

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java Fri Mar 30 12:41:28 2012
@@ -39,7 +39,6 @@ public class PingRequestHandler extends 
   public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception 
   {
     SolrParams params = req.getParams();
-    SolrParams required = params.required();
     SolrCore core = req.getCore();
     
     // Check if the service is available
@@ -49,11 +48,11 @@ public class PingRequestHandler extends 
     }
     
     // Get the RequestHandler
-    String qt = required.get( CommonParams.QT );
+    String qt = params.get( CommonParams.QT );//optional; you get the default otherwise
     SolrRequestHandler handler = core.getRequestHandler( qt );
     if( handler == null ) {
       throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, 
-          "Unknown RequestHandler: "+qt );
+          "Unknown RequestHandler (qt): "+qt );
     }
     
     if( handler instanceof PingRequestHandler ) {

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/SnapPuller.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/SnapPuller.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/SnapPuller.java Fri Mar 30 12:41:28 2012
@@ -16,10 +16,21 @@
  */
 package org.apache.solr.handler;
 
-import org.apache.commons.httpclient.*;
-import org.apache.commons.httpclient.auth.AuthScope;
-import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.io.IOUtils;
+import org.apache.http.Header;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.message.AbstractHttpMessage;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.params.CoreConnectionPNames;
+import org.apache.http.util.EntityUtils;
 import org.apache.lucene.index.IndexCommit;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.ModifiableSolrParams;
@@ -109,17 +120,23 @@ public class SnapPuller {
   // HttpClient for this instance if connectionTimeout or readTimeout has been specified
   private final HttpClient myHttpClient;
 
-  private static synchronized HttpClient createHttpClient(String connTimeout, String readTimeout) {
+  private static synchronized HttpClient createHttpClient(String connTimeout, String readTimeout, String httpBasicAuthUser, String httpBasicAuthPassword) {
     if (connTimeout == null && readTimeout == null && client != null)  return client;
-    MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
+    ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
     // Keeping a very high number so that if you have a large number of cores
     // no requests are kept waiting for an idle connection.
-    mgr.getParams().setDefaultMaxConnectionsPerHost(10000);
-    mgr.getParams().setMaxTotalConnections(10000);
-    mgr.getParams().setSoTimeout(readTimeout == null ? 20000 : Integer.parseInt(readTimeout)); //20 secs
-    mgr.getParams().setConnectionTimeout(connTimeout == null ? 5000 : Integer.parseInt(connTimeout)); //5 secs
-    HttpClient httpClient = new HttpClient(mgr);
+    mgr.setDefaultMaxPerRoute(10000);
+    mgr.setMaxTotal(10000);
+    DefaultHttpClient httpClient = new DefaultHttpClient(mgr);
+    httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, readTimeout == null ? 20000 : Integer.parseInt(readTimeout)); //20 secs
+    httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connTimeout == null ? 5000 : Integer.parseInt(connTimeout)); //5 secs
     if (client == null && connTimeout == null && readTimeout == null) client = httpClient;
+    
+    if (httpBasicAuthUser != null && httpBasicAuthPassword != null) {
+      httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY,
+              new UsernamePasswordCredentials(httpBasicAuthUser, httpBasicAuthPassword));
+    }
+
     return httpClient;
   }
 
@@ -139,11 +156,7 @@ public class SnapPuller {
     String readTimeout = (String) initArgs.get(HTTP_READ_TIMEOUT);
     String httpBasicAuthUser = (String) initArgs.get(HTTP_BASIC_AUTH_USER);
     String httpBasicAuthPassword = (String) initArgs.get(HTTP_BASIC_AUTH_PASSWORD);
-    myHttpClient = createHttpClient(connTimeout, readTimeout);
-    if (httpBasicAuthUser != null && httpBasicAuthPassword != null) {
-      myHttpClient.getState().setCredentials(AuthScope.ANY,
-              new UsernamePasswordCredentials(httpBasicAuthUser, httpBasicAuthPassword));
-    }
+    myHttpClient = createHttpClient(connTimeout, readTimeout, httpBasicAuthUser, httpBasicAuthPassword);
     if (pollInterval != null && pollInterval > 0) {
       startExecutorService();
     } else {
@@ -177,45 +190,66 @@ public class SnapPuller {
    */
   @SuppressWarnings("unchecked")
   NamedList getLatestVersion() throws IOException {
-    PostMethod post = new PostMethod(masterUrl);
-    post.addParameter(COMMAND, CMD_INDEX_VERSION);
-    post.addParameter("wt", "javabin");
+    HttpPost post = new HttpPost(masterUrl);
+    List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+    formparams.add(new BasicNameValuePair("wt", "javabin"));
+    formparams.add(new BasicNameValuePair(COMMAND, CMD_INDEX_VERSION));
+    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+    post.setEntity(entity);
     return getNamedListResponse(post);
   }
 
   NamedList getCommandResponse(NamedList<String> commands) throws IOException {
-    PostMethod post = new PostMethod(masterUrl);
+    
+    HttpPost post = new HttpPost(masterUrl);
+
+    List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+    formparams.add(new BasicNameValuePair("wt", "javabin"));
+    
     for (Map.Entry<String, String> c : commands) {
-      post.addParameter(c.getKey(),c.getValue());
+      formparams.add(new BasicNameValuePair(c.getKey(), c.getValue()));
     }
-    post.addParameter("wt", "javabin");
+    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+    post.setEntity(entity);
     return getNamedListResponse(post);
   }
 
-  private NamedList<?> getNamedListResponse(PostMethod method) throws IOException {
+  private NamedList<?> getNamedListResponse(HttpPost method) throws IOException {
+    InputStream input = null;
+    NamedList<?> result = null;
     try {
-      int status = myHttpClient.executeMethod(method);
+      HttpResponse response = myHttpClient.execute(method);
+      int status = response.getStatusLine().getStatusCode();
       if (status != HttpStatus.SC_OK) {
         throw new SolrException(SolrException.ErrorCode.SERVICE_UNAVAILABLE,
                 "Request failed for the url " + method);
       }
-      return (NamedList<?>) new JavaBinCodec().unmarshal(method.getResponseBodyAsStream());
+      input = response.getEntity().getContent();
+      result = (NamedList<?>)new JavaBinCodec().unmarshal(input);
     } finally {
       try {
-        method.releaseConnection();
+        if (input != null) {
+          input.close();
+        }
       } catch (Exception e) {
       }
     }
+    return result;
   }
 
   /**
    * Fetches the list of files in a given index commit point
    */
   void fetchFileList(long gen) throws IOException {
-    PostMethod post = new PostMethod(masterUrl);
-    post.addParameter(COMMAND, CMD_GET_FILE_LIST);
-    post.addParameter(GENERATION, String.valueOf(gen));
-    post.addParameter("wt", "javabin");
+    HttpPost post = new HttpPost(masterUrl);
+
+    List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+    formparams.add(new BasicNameValuePair("wt", "javabin"));
+    formparams.add(new BasicNameValuePair(COMMAND, CMD_GET_FILE_LIST));
+    formparams.add(new BasicNameValuePair(GENERATION, String.valueOf(gen)));
+
+    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+    post.setEntity(entity);
 
     @SuppressWarnings("unchecked")
     NamedList<List<Map<String, Object>>> nl 
@@ -907,7 +941,7 @@ public class SnapPuller {
 
     private boolean isConf;
 
-    private PostMethod post;
+    private HttpPost post;
 
     private boolean aborted = false;
 
@@ -1064,10 +1098,6 @@ public class SnapPuller {
       } catch (Exception e) {/* noop */
           LOG.error("Error closing the file stream: "+ this.saveAs ,e);
       }
-      try {
-        post.releaseConnection();
-      } catch (Exception e) {
-      }
       if (bytesDownloaded != size) {
         //if the download is not complete then
         //delete the file being downloaded
@@ -1088,35 +1118,43 @@ public class SnapPuller {
      * Open a new stream using HttpClient
      */
     FastInputStream getStream() throws IOException {
-      post = new PostMethod(masterUrl);
+      post = new HttpPost(masterUrl);
       //the method is command=filecontent
-      post.addParameter(COMMAND, CMD_GET_FILE);
+      
+      List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+
+      formparams.add(new BasicNameValuePair(COMMAND, CMD_GET_FILE));
+
       //add the version to download. This is used to reserve the download
-      post.addParameter(GENERATION, indexGen.toString());
+      formparams.add(new BasicNameValuePair(GENERATION, indexGen.toString()));
       if (isConf) {
         //set cf instead of file for config file
-        post.addParameter(CONF_FILE_SHORT, fileName);
+        formparams.add(new BasicNameValuePair(CONF_FILE_SHORT, fileName));
       } else {
-        post.addParameter(FILE, fileName);
+        formparams.add(new BasicNameValuePair(FILE, fileName));
       }
       if (useInternal) {
-        post.addParameter(COMPRESSION, "true");
+        formparams.add(new BasicNameValuePair(COMPRESSION, "true"));
       }
       if (useExternal) {
-        post.setRequestHeader(new Header("Accept-Encoding", "gzip,deflate"));
+        formparams.add(new BasicNameValuePair("Accept-Encoding", "gzip,deflate"));
       }
       //use checksum
       if (this.includeChecksum)
-        post.addParameter(CHECKSUM, "true");
+        formparams.add(new BasicNameValuePair(CHECKSUM, "true"));
       //wt=filestream this is a custom protocol
-      post.addParameter("wt", FILE_STREAM);
+      formparams.add(new BasicNameValuePair("wt", FILE_STREAM));
       // This happen if there is a failure there is a retry. the offset=<sizedownloaded> ensures that
       // the server starts from the offset
       if (bytesDownloaded > 0) {
-        post.addParameter(OFFSET, "" + bytesDownloaded);
+        formparams.add(new BasicNameValuePair(OFFSET, "" + bytesDownloaded));
       }
-      myHttpClient.executeMethod(post);
-      InputStream is = post.getResponseBodyAsStream();
+      
+      UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+      post.setEntity(entity);
+
+      HttpResponse response = myHttpClient.execute(post);
+      InputStream is = response.getEntity().getContent();
       //wrap it using FastInputStream
       if (useInternal) {
         is = new InflaterInputStream(is);
@@ -1130,8 +1168,8 @@ public class SnapPuller {
   /*
    * This is copied from CommonsHttpSolrServer
    */
-  private InputStream checkCompressed(HttpMethod method, InputStream respBody) throws IOException {
-    Header contentEncodingHeader = method.getResponseHeader("Content-Encoding");
+  private InputStream checkCompressed(AbstractHttpMessage method, InputStream respBody) throws IOException {
+    Header contentEncodingHeader = method.getFirstHeader("Content-Encoding");
     if (contentEncodingHeader != null) {
       String contentEncoding = contentEncodingHeader.getValue();
       if (contentEncoding.contains("gzip")) {
@@ -1140,7 +1178,7 @@ public class SnapPuller {
         respBody = new InflaterInputStream(respBody);
       }
     } else {
-      Header contentTypeHeader = method.getResponseHeader("Content-Type");
+      Header contentTypeHeader = method.getFirstHeader("Content-Type");
       if (contentTypeHeader != null) {
         String contentType = contentTypeHeader.getValue();
         if (contentType != null) {

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java Fri Mar 30 12:41:28 2012
@@ -147,11 +147,6 @@ public class CoreAdminHandler extends Re
           break;
         }
 
-        case ALIAS: {
-          throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "'ALIAS' is not supported " +
-            req.getParams().get(CoreAdminParams.ACTION));
-        }
-
         case UNLOAD: {
           doPersist = this.handleUnloadAction(req, rsp);
           break;

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java Fri Mar 30 12:41:28 2012
@@ -16,11 +16,24 @@ package org.apache.solr.handler.componen
  * limitations under the License.
  */
 
-import org.apache.commons.httpclient.HttpClient;
+import java.net.ConnectException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CompletionService;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorCompletionService;
+import java.util.concurrent.Future;
+
+import org.apache.http.client.HttpClient;
 import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.SolrResponse;
 import org.apache.solr.client.solrj.SolrServer;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.impl.LBHttpSolrServer;
 import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.client.solrj.util.ClientUtils;
@@ -42,10 +55,6 @@ import org.apache.solr.common.util.StrUt
 import org.apache.solr.core.CoreDescriptor;
 import org.apache.solr.request.SolrQueryRequest;
 
-import java.net.ConnectException;
-import java.util.*;
-import java.util.concurrent.*;
-
 public class HttpShardHandler extends ShardHandler {
 
   private HttpShardHandlerFactory httpShardHandlerFactory;
@@ -152,7 +161,7 @@ public class HttpShardHandler extends Sh
           if (urls.size() <= 1) {
             String url = urls.get(0);
             srsp.setShardAddress(url);
-            SolrServer server = new CommonsHttpSolrServer(url, httpClient == null ? httpShardHandlerFactory.client : httpClient);
+            SolrServer server = new HttpSolrServer(url, httpClient == null ? httpShardHandlerFactory.client : httpClient);
             ssr.nl = server.request(req);
           } else {
             LBHttpSolrServer.Rsp rsp = httpShardHandlerFactory.loadbalancer.request(new LBHttpSolrServer.Req(req, urls));

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java Fri Mar 30 12:41:28 2012
@@ -16,10 +16,15 @@ package org.apache.solr.handler.componen
  * limitations under the License.
  */
 
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import java.net.MalformedURLException;
+import java.util.Random;
+import java.util.concurrent.*;
+
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.params.CoreConnectionPNames;
 import org.apache.solr.client.solrj.impl.LBHttpSolrServer;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.util.NamedList;
@@ -29,10 +34,6 @@ import org.apache.solr.util.plugin.Plugi
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.net.MalformedURLException;
-import java.util.Random;
-import java.util.concurrent.*;
-
 public class HttpShardHandlerFactory extends ShardHandlerFactory implements PluginInfoInitialized {
   protected static Logger log = LoggerFactory.getLogger(HttpShardHandlerFactory.class);
 
@@ -64,7 +65,7 @@ public class HttpShardHandlerFactory ext
 
   public String scheme = "http://"; //current default values
 
-  private MultiThreadedHttpConnectionManager mgr;
+  private ThreadSafeClientConnManager mgr;
   // socket timeout measured in ms, closes a socket if read
   // takes longer than x ms to complete. throws
   // java.net.SocketTimeoutException: Read timed out exception
@@ -100,7 +101,7 @@ public class HttpShardHandlerFactory ext
     return getShardHandler(null);
   }
 
-  public ShardHandler getShardHandler(HttpClient httpClient) {
+  public ShardHandler getShardHandler(DefaultHttpClient httpClient){
     return new HttpShardHandler(this, httpClient);
   }
 
@@ -130,18 +131,20 @@ public class HttpShardHandlerFactory ext
         new DefaultSolrThreadFactory("httpShardExecutor")
     );
 
-    mgr = new MultiThreadedHttpConnectionManager();
-    mgr.getParams().setDefaultMaxConnectionsPerHost(this.maxConnectionsPerHost);
-    mgr.getParams().setMaxTotalConnections(10000);
-    mgr.getParams().setConnectionTimeout(this.connectionTimeout);
-    mgr.getParams().setSoTimeout(this.soTimeout);
+    mgr = new ThreadSafeClientConnManager();
+    mgr.setDefaultMaxPerRoute(256);
+    mgr.setMaxTotal(10000);
+    DefaultHttpClient client = new DefaultHttpClient(mgr);
+    
+    client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectionTimeout);
+    client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, soTimeout);
     // mgr.getParams().setStaleCheckingEnabled(false);
 
-    client = new HttpClient(mgr);
 
     // prevent retries  (note: this didn't work when set on mgr.. needed to be set on client)
-    DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false);
-    client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
+    DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(0, false);
+    client.setHttpRequestRetryHandler(retryhandler);
+    this.client = client;
 
     try {
       loadbalancer = new LBHttpSolrServer(client);

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/CurrencyField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/CurrencyField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/CurrencyField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/CurrencyField.java Fri Mar 30 12:41:28 2012
@@ -47,11 +47,11 @@ import javax.xml.xpath.XPathExpressionEx
 import javax.xml.xpath.XPathFactory;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.ArrayList;
 import java.util.Currency;
 import java.util.HashMap;
-import java.util.List;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * Field type for support of monetary values.
@@ -62,7 +62,7 @@ public class CurrencyField extends Field
   protected static final String PARAM_DEFAULT_CURRENCY      = "defaultCurrency";
   protected static final String PARAM_RATE_PROVIDER_CLASS   = "providerClass";
   protected static final Object PARAM_PRECISION_STEP        = "precisionStep";
-  protected static final String DEFAULT_RATE_PROVIDER_CLASS = "org.apache.solr.schema.FileExchangeRateProvider";
+  protected static final String DEFAULT_RATE_PROVIDER_CLASS = "solr.FileExchangeRateProvider";
   protected static final String DEFAULT_DEFAULT_CURRENCY    = "USD";
   protected static final String DEFAULT_PRECISION_STEP      = "0";
   protected static final String FIELD_SUFFIX_AMOUNT_RAW     = "_amount_raw";
@@ -117,8 +117,7 @@ public class CurrencyField extends Field
     args.remove(PARAM_PRECISION_STEP);
 
     try {
-      // TODO: Are we using correct classloader?
-      Class<?> c = Class.forName(exchangeRateProviderClass);
+      Class<?> c = schema.getResourceLoader().findClass(exchangeRateProviderClass);
       Object clazz = c.newInstance();
       if (clazz instanceof ExchangeRateProvider) {
         provider = (ExchangeRateProvider) clazz;
@@ -512,14 +511,15 @@ class FileExchangeRateProvider implement
   }
 
   @Override
-  public String[] listAvailableCurrencies() {
-    List<String> pairs = new ArrayList<String>();
+  public Set<String> listAvailableCurrencies() {
+    Set<String> currencies = new HashSet<String>();
     for(String from : rates.keySet()) {
+      currencies.add(from);
       for(String to : rates.get(from).keySet()) {
-        pairs.add(from+","+to);
+        currencies.add(to);
       }
     }
-    return pairs.toArray(new String[1]);
+    return currencies;
   }
 
   @Override

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/DateField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/DateField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/DateField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/DateField.java Fri Mar 30 12:41:28 2012
@@ -19,12 +19,12 @@ package org.apache.solr.schema;
 
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.IndexableField;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.SortField;
 import org.apache.lucene.search.TermRangeQuery;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.CharsRef;
@@ -401,7 +401,7 @@ public class DateField extends Primitive
     }
 
     @Override
-    public Object clone() {
+    public DateFormat clone() {
       ISO8601CanonicalDateFormat c
         = (ISO8601CanonicalDateFormat) super.clone();
       c.millisParser = NumberFormat.getIntegerInstance(CANONICAL_LOCALE);
@@ -458,7 +458,7 @@ class DateFieldSource extends FieldCache
 
   @Override
   public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
-    return new StringIndexDocValues(this, readerContext, field) {
+    return new DocTermsIndexDocValues(this, readerContext, field) {
       @Override
       protected String toTerm(String readableValue) {
         // needed for frange queries to work properly

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/ExchangeRateProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/ExchangeRateProvider.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/ExchangeRateProvider.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/ExchangeRateProvider.java Fri Mar 30 12:41:28 2012
@@ -17,6 +17,7 @@ package org.apache.solr.schema;
  */
 
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.solr.common.ResourceLoader;
 import org.apache.solr.common.SolrException;
@@ -35,11 +36,10 @@ public interface ExchangeRateProvider {
   public double getExchangeRate(String sourceCurrencyCode, String targetCurrencyCode) throws SolrException;
   
   /**
-   * List all configured currency code pairs
-   * @return a string array of <a href="http://en.wikipedia.org/wiki/ISO_4217">ISO 4217</a> currency codes on the format
-   * ["SRC,DST", "SRC,DST"...]
+   * List all configured currency codes which are valid as source/target for this Provider
+   * @return a Set of <a href="http://en.wikipedia.org/wiki/ISO_4217">ISO 4217</a> currency code strings
    */
-  public String[] listAvailableCurrencies();
+  public Set<String> listAvailableCurrencies();
 
   /**
    * Ask the currency provider to explicitly reload/refresh its configuration.

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
 
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
 import org.apache.lucene.search.SortField;
 import org.apache.lucene.util.BytesRef;
@@ -121,7 +121,7 @@ class SortableDoubleFieldSource extends 
   public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     final double def = defVal;
 
-    return new StringIndexDocValues(this, readerContext, field) {
+    return new DocTermsIndexDocValues(this, readerContext, field) {
       private final BytesRef spare = new BytesRef();
 
       @Override

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
 
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
 import org.apache.lucene.search.SortField;
 import org.apache.lucene.util.BytesRef;
@@ -124,7 +124,7 @@ class SortableFloatFieldSource extends F
   public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     final float def = defVal;
 
-    return new StringIndexDocValues(this, readerContext, field) {
+    return new DocTermsIndexDocValues(this, readerContext, field) {
       private final BytesRef spare = new BytesRef();
 
       @Override

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableIntField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableIntField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableIntField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableIntField.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
 
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
 import org.apache.lucene.search.SortField;
 import org.apache.lucene.util.BytesRef;
@@ -126,7 +126,7 @@ class SortableIntFieldSource extends Fie
   public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     final int def = defVal;
 
-    return new StringIndexDocValues(this, readerContext, field) {
+    return new DocTermsIndexDocValues(this, readerContext, field) {
       private final BytesRef spare = new BytesRef();
 
       @Override

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableLongField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableLongField.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableLongField.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/SortableLongField.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
 
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
 import org.apache.lucene.search.SortField;
 import org.apache.lucene.util.BytesRef;
@@ -124,7 +124,7 @@ class SortableLongFieldSource extends Fi
   public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     final long def = defVal;
 
-    return new StringIndexDocValues(this, readerContext, field) {
+    return new DocTermsIndexDocValues(this, readerContext, field) {
       private final BytesRef spare = new BytesRef();
 
       @Override

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java Fri Mar 30 12:41:28 2012
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
 
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
-import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
+import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
 
 import java.io.IOException;
@@ -38,7 +38,7 @@ public class StrFieldSource extends Fiel
 
   @Override
   public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
-    return new StringIndexDocValues(this, readerContext, field) {
+    return new DocTermsIndexDocValues(this, readerContext, field) {
 
       @Override
       protected String toTerm(String readableValue) {

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/search/WrappedQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/search/WrappedQuery.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/search/WrappedQuery.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/search/WrappedQuery.java Fri Mar 30 12:41:28 2012
@@ -69,7 +69,7 @@ public class WrappedQuery extends Extend
   }
 
   @Override
-  public Object clone() {
+  public WrappedQuery clone() {
     WrappedQuery newQ = (WrappedQuery)super.clone();
     newQ.q = (Query) q.clone();
     return newQ;

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/PeerSync.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/PeerSync.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/PeerSync.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/PeerSync.java Fri Mar 30 12:41:28 2012
@@ -26,11 +26,11 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.NoHttpResponseException;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.http.NoHttpResponseException;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.params.CoreConnectionPNames;
 import org.apache.lucene.util.BytesRef;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.cloud.ZkController;
@@ -77,17 +77,17 @@ public class PeerSync  {
   private Set<Long> requestedUpdateSet;
   private long ourLowThreshold;  // 20th percentile
   private long ourHighThreshold; // 80th percentile
-  private static MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
-  private static HttpClient client = new HttpClient(mgr);
+  private static ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
+  private static DefaultHttpClient client = new DefaultHttpClient(mgr);
   static {
-    mgr.getParams().setDefaultMaxConnectionsPerHost(20);
-    mgr.getParams().setMaxTotalConnections(10000);
-    mgr.getParams().setConnectionTimeout(30000);
-    mgr.getParams().setSoTimeout(30000);
+    mgr.setDefaultMaxPerRoute(20);
+    mgr.setMaxTotal(10000);
+    client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
+    client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);
 
     // prevent retries  (note: this didn't work when set on mgr.. needed to be set on client)
-    DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false);
-    client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
+    DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(0, false);
+    client.setHttpRequestRetryHandler(retryhandler);
   }
 
   // comparator that sorts by absolute value, putting highest first

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java Fri Mar 30 12:41:28 2012
@@ -33,9 +33,10 @@ import java.util.concurrent.SynchronousQ
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
 import org.apache.solr.client.solrj.request.UpdateRequestExt;
 import org.apache.solr.common.SolrException;
@@ -58,10 +59,10 @@ public class SolrCmdDistributor {
   static HttpClient client;
   
   static {
-    MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
-    mgr.getParams().setDefaultMaxConnectionsPerHost(8);
-    mgr.getParams().setMaxTotalConnections(200);
-    client = new HttpClient(mgr);
+    ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
+    mgr.setDefaultMaxPerRoute(8);
+    mgr.setMaxTotal(200);
+    client = new DefaultHttpClient(mgr);
   }
   
   CompletionService<Request> completionService;
@@ -313,7 +314,7 @@ public class SolrCmdDistributor {
             fullUrl = url;
           }
   
-          CommonsHttpSolrServer server = new CommonsHttpSolrServer(fullUrl,
+          HttpSolrServer server = new HttpSolrServer(fullUrl,
               client);
           
           clonedRequest.ursp = server.request(clonedRequest.ureq);

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java Fri Mar 30 12:41:28 2012
@@ -25,7 +25,7 @@ import java.util.Map.Entry;
 
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.CharsRef;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.RequestRecovery;
 import org.apache.solr.cloud.CloudDescriptor;
 import org.apache.solr.cloud.ZkController;
@@ -333,10 +333,10 @@ public class DistributedUpdateProcessor 
       // TODO: what if its is already recovering? Right now recoveries queue up -
       // should they?
       String recoveryUrl = error.node.getBaseUrl();
-      CommonsHttpSolrServer server;
+      HttpSolrServer server;
       log.info("try and ask " + recoveryUrl + " to recover");
       try {
-        server = new CommonsHttpSolrServer(recoveryUrl);
+        server = new HttpSolrServer(recoveryUrl);
         server.setSoTimeout(5000);
         server.setConnectionTimeout(5000);
         

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MaxFieldValueUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MaxFieldValueUpdateProcessorFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MaxFieldValueUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MaxFieldValueUpdateProcessorFactory.java Fri Mar 30 12:41:28 2012
@@ -60,7 +60,7 @@ public final class MaxFieldValueUpdatePr
     Collection result = values;
     try {
       result = Collections.singletonList
-        (Collections.max((Collection)values));
+        (Collections.max(values));
     } catch (ClassCastException e) {
       throw new SolrException
         (BAD_REQUEST, 

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MinFieldValueUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MinFieldValueUpdateProcessorFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MinFieldValueUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/update/processor/MinFieldValueUpdateProcessorFactory.java Fri Mar 30 12:41:28 2012
@@ -60,7 +60,7 @@ public final class MinFieldValueUpdatePr
     Collection result = values;
     try {
       result = Collections.singletonList
-        (Collections.min((Collection)values));
+        (Collections.min(values));
     } catch (ClassCastException e) {
       throw new SolrException
         (BAD_REQUEST, 

Modified: lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java Fri Mar 30 12:41:28 2012
@@ -321,7 +321,7 @@ public class ConcurrentLRUCache<K,V> {
             // this loop so far.
             queue.myMaxSize = sz - lowerWaterMark - numRemoved;
             while (queue.size() > queue.myMaxSize && queue.size() > 0) {
-              CacheEntry otherEntry = (CacheEntry) queue.pop();
+              CacheEntry otherEntry = queue.pop();
               newOldestEntry = Math.min(otherEntry.lastAccessedCopy, newOldestEntry);
             }
             if (queue.myMaxSize <= 0) break;

Modified: lucene/dev/branches/lucene3930/solr/core/src/test-files/solr/conf/schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test-files/solr/conf/schema.xml?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test-files/solr/conf/schema.xml (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test-files/solr/conf/schema.xml Fri Mar 30 12:41:28 2012
@@ -396,7 +396,10 @@
 
   <!-- Currency type -->
   <fieldType name="currency" class="solr.CurrencyField" currencyConfig="currency.xml"/>
-  <fieldType name="mock_currency" class="solr.CurrencyField" providerClass="org.apache.solr.schema.MockExchangeRateProvider" foo="bar" />
+  <fieldType name="mock_currency" class="solr.CurrencyField" providerClass="solr.MockExchangeRateProvider" foo="bar" />
+  <fieldType name="openexchangeratesorg_currency" class="solr.CurrencyField" 
+             providerClass="solr.OpenExchangeRatesOrgProvider"
+             ratesFileLocation="open-exchange-rates.json" />
 
   <!--  some per-field similarity examples -->
   

Modified: lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestDistributedSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestDistributedSearch.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestDistributedSearch.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestDistributedSearch.java Fri Mar 30 12:41:28 2012
@@ -292,11 +292,13 @@ public class TestDistributedSearch exten
     //SOLR 3161 ensure shards.qt=/update fails (anything but search handler really)
     // Also see TestRemoteStreaming#testQtUpdateFails()
     try {
-      query("q","*:*","shards.qt","/update","stream.body","<delete><query>*:*</query></delete>");
-      fail();
+      ignoreException("isShard is only acceptable");
+      // query("q","*:*","shards.qt","/update","stream.body","<delete><query>*:*</query></delete>");
+      // fail();
     } catch (SolrException e) {
       //expected
     }
+    unIgnoreException("isShard is only acceptable");
 
     // test debugging
     handle.put("explain", UNORDERED);

Modified: lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java Fri Mar 30 12:41:28 2012
@@ -19,10 +19,10 @@ package org.apache.solr;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.solr.util.AbstractSolrTestCase;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.commons.io.IOUtils;
 
@@ -51,7 +51,7 @@ public class TestSolrCoreProperties exte
 
     solrJetty.start();
     String url = "http://localhost:" + solrJetty.getLocalPort() + "/solr";
-    client = new CommonsHttpSolrServer(url);
+    client = new HttpSolrServer(url);
 
   }
 

Modified: lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/analysis/TestJapaneseTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/analysis/TestJapaneseTokenizerFactory.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/analysis/TestJapaneseTokenizerFactory.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/analysis/TestJapaneseTokenizerFactory.java Fri Mar 30 12:41:28 2012
@@ -78,7 +78,7 @@ public class TestJapaneseTokenizerFactor
         "朝青龍,朝青龍,アサショウリュウ,カスタム人名\n";
     JapaneseTokenizerFactory factory = new JapaneseTokenizerFactory();
     Map<String,String> args = new HashMap<String,String>();
-    args.put("user-dictionary", "userdict.txt");
+    args.put("userDictionary", "userdict.txt");
     factory.init(args);
     factory.inform(new StringMockSolrResourceLoader(userDict));
     TokenStream ts = factory.create(new StringReader("関西国際空港に行った"));

Modified: lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/cloud/AbstractZkTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/cloud/AbstractZkTestCase.java?rev=1307386&r1=1307385&r2=1307386&view=diff
==============================================================================
--- lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/cloud/AbstractZkTestCase.java (original)
+++ lucene/dev/branches/lucene3930/solr/core/src/test/org/apache/solr/cloud/AbstractZkTestCase.java Fri Mar 30 12:41:28 2012
@@ -91,6 +91,7 @@ public abstract class AbstractZkTestCase
     putConfig(zkClient, "stopwords.txt");
     putConfig(zkClient, "protwords.txt");
     putConfig(zkClient, "currency.xml");
+    putConfig(zkClient, "open-exchange-rates.json");
     putConfig(zkClient, "mapping-ISOLatin1Accent.txt");
     putConfig(zkClient, "old_synonyms.txt");
     putConfig(zkClient, "synonyms.txt");