You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ch...@apache.org on 2011/11/21 03:50:39 UTC

svn commit: r1204327 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/java/org/apache/solr/response/JSONResponseWriter.java example/solr/conf/solrconfig.xml

Author: chrism
Date: Mon Nov 21 02:50:39 2011
New Revision: 1204327

URL: http://svn.apache.org/viewvc?rev=1204327&view=rev
Log:
SOLR-1123: Changed JSONResponseWriter content-type to be application/json by default

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java
    lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1204327&r1=1204326&r2=1204327&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Mon Nov 21 02:50:39 2011
@@ -360,6 +360,10 @@ Other Changes
 * SOLR-2862: More explicit lexical resources location logged if Carrot2 clustering 
   extension is used. Fixed solr. impl. of IResource and IResourceLookup. (Dawid Weiss)
 
+* SOLR-1123: Changed JSONResponseWriter to now use application/json as its Content-Type
+  by default.  However the Content-Type can be overwritten and is set to text/plain in
+  the example configuration. (Chris Male)
+
 Documentation
 ----------------------
 

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java?rev=1204327&r1=1204326&r2=1204327&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java Mon Nov 21 02:50:39 2011
@@ -40,9 +40,13 @@ import org.apache.solr.search.ReturnFiel
  */
 
 public class JSONResponseWriter implements QueryResponseWriter {
-  static String CONTENT_TYPE_JSON_UTF8="text/x-json; charset=UTF-8";
+  static String CONTENT_TYPE_JSON_UTF8="application/json; charset=UTF-8";
 
-  public void init(NamedList n) {
+  private String contentType;
+
+  public void init(NamedList namedList) {
+    String contentType = (String) namedList.get("content-type");
+    this.contentType = (contentType != null) ? contentType : CONTENT_TYPE_JSON_UTF8;
   }
 
   public void write(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) throws IOException {
@@ -55,12 +59,10 @@ public class JSONResponseWriter implemen
   }
 
   public String getContentType(SolrQueryRequest request, SolrQueryResponse response) {
-    // using the text/plain allows this to be viewed in the browser easily
-    return CONTENT_TYPE_TEXT_UTF8;
+    return contentType;
   }
 }
 
-
 class JSONWriter extends TextResponseWriter {
   private String namedListStyle;
   private String wrapperFunction;

Modified: lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml?rev=1204327&r1=1204326&r2=1204327&view=diff
==============================================================================
--- lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml (original)
+++ lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml Mon Nov 21 02:50:39 2011
@@ -1572,6 +1572,15 @@
      <queryResponseWriter name="phps" class="solr.PHPSerializedResponseWriter"/>
      <queryResponseWriter name="csv" class="solr.CSVResponseWriter"/>
     -->
+
+  <queryResponseWriter name="json" class="solr.JSONResponseWriter">
+     <!-- For the purposes of the tutorial, JSON responses are written as
+      plain text so that they are easy to read in *any* browser.
+      If you expect a MIME type of "application/json" just remove this override.
+     -->
+    <str name="content-type">text/plain; charset=UTF-8</str>
+  </queryResponseWriter>
+  
   <!--
      Custom response writers can be declared as needed...
     -->