You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by yo...@apache.org on 2006/04/07 17:20:20 UTC

svn commit: r392311 - in /incubator/solr/trunk/src/webapp: WEB-INF/web.xml src/org/apache/solr/servlet/SolrServlet.java src/org/apache/solr/servlet/SolrServletRequest.java src/org/apache/solr/servlet/SolrUpdateServlet.java

Author: yonik
Date: Fri Apr  7 08:20:12 2006
New Revision: 392311

URL: http://svn.apache.org/viewcvs?rev=392311&view=rev
Log:
refactor /update to separate servlet, allow post of query to /select

Added:
    incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java
    incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java
Modified:
    incubator/solr/trunk/src/webapp/WEB-INF/web.xml
    incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java

Modified: incubator/solr/trunk/src/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewcvs/incubator/solr/trunk/src/webapp/WEB-INF/web.xml?rev=392311&r1=392310&r2=392311&view=diff
==============================================================================
--- incubator/solr/trunk/src/webapp/WEB-INF/web.xml (original)
+++ incubator/solr/trunk/src/webapp/WEB-INF/web.xml Fri Apr  7 08:20:12 2006
@@ -25,12 +25,22 @@
     <servlet-class>org.apache.solr.servlet.SolrServlet</servlet-class>
     <load-on-startup>0</load-on-startup>
   </servlet>
+
+  <servlet>
+    <servlet-name>SolrUpdate</servlet-name>
+    <display-name>SolrUpdate</display-name>
+    <description>Solr Update Handler</description>
+    <servlet-class>org.apache.solr.servlet.SolrUpdateServlet</servlet-class>
+    <load-on-startup>1</load-on-startup>
+  </servlet>
+
   <servlet-mapping>
     <servlet-name>SolrServer</servlet-name>
     <url-pattern>/select/*</url-pattern>
   </servlet-mapping>
+
   <servlet-mapping>
-    <servlet-name>SolrServer</servlet-name>
+    <servlet-name>SolrUpdate</servlet-name>
     <url-pattern>/update/*</url-pattern>
   </servlet-mapping>
 

Modified: incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java
URL: http://svn.apache.org/viewcvs/incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java?rev=392311&r1=392310&r2=392311&view=diff
==============================================================================
--- incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java (original)
+++ incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java Fri Apr  7 08:20:12 2006
@@ -37,55 +37,30 @@
  */
 
 public class SolrServlet extends HttpServlet {
-  public static Logger log = Logger.getLogger(SolrServlet.class.getName());
-  public SolrCore core;
+  final Logger log = Logger.getLogger(SolrServlet.class.getName());
+  SolrCore core;
   private static String CONTENT_TYPE="text/xml;charset=UTF-8";
 
-
   XMLResponseWriter xmlResponseWriter;
 
   public void init() throws ServletException
   {
-    String configDir=getServletContext().getInitParameter("solr.configDir");
-    String dataDir=getServletContext().getInitParameter("solr.dataDir");
-
     log.info("user.dir=" + System.getProperty("user.dir"));
-
-    // TODO: find a way to allow configuration of the config and data
-    // directories other than using CWD.  If it is done via servlet
-    // params, then we must insure that this init() run before any
-    // of the JSPs.
     core = SolrCore.getSolrCore();
-
     xmlResponseWriter=new XMLResponseWriter();
-
-    getServletContext().setAttribute("SolrServlet",this);
-
     log.info("SolrServlet.init() done");
   }
 
   public void destroy() {
     core.close();
-    getServletContext().removeAttribute("SolrServlet");
     super.destroy();
   }
 
   public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-    // log.finer("Solr doPost()");
-    // InputStream is = request.getInputStream();
-    BufferedReader requestReader = request.getReader();
-
-    response.setContentType(CONTENT_TYPE);
-    PrintWriter responseWriter = response.getWriter();
-
-    core.update(requestReader, responseWriter);
+    doGet(request,response);
   }
 
-
-
-  public  void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-    // log.finer("Solr doGet: getQueryString:" + request.getQueryString());
-
+  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     SolrServletRequest solrReq =null;
     SolrQueryResponse solrRsp =null;
     try {
@@ -141,52 +116,6 @@
 
   final boolean paramExists(HttpServletRequest request, String param) {
     return request.getParameter(param)!=null ? true : false;
-  }
-
-}
-
-
-
-class SolrServletRequest extends SolrQueryRequestBase {
-
-  final HttpServletRequest req;
-
-  public SolrServletRequest(SolrCore core, HttpServletRequest req) {
-    super(core);
-    this.req = req;
-  }
-
-  public String getParam(String name) {
-    return req.getParameter(name);
-  }
-
-
-  public String getParamString() {
-    StringBuilder sb = new StringBuilder(128);
-    try {
-      boolean first=true;
-
-      for (Map.Entry<String,String[]> entry : (Set<Map.Entry<String,String[]>>)req.getParameterMap().entrySet()) {
-        String key = entry.getKey();
-        String[] valarr = entry.getValue();
-
-        for (String val : valarr) {
-          if (!first) sb.append('&');
-          first=false;
-          sb.append(key);
-          sb.append('=');
-          StrUtils.partialURLEncodeVal(sb, val);
-        }
-      }
-    }
-    catch (Exception e) {
-      // should never happen... we only needed this because
-      // partialURLEncodeVal can throw an IOException, but it
-      // never will when adding to a StringBuilder.
-      throw new RuntimeException(e);
-    }
-
-    return sb.toString();
   }
 
 }

Added: incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java
URL: http://svn.apache.org/viewcvs/incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java?rev=392311&view=auto
==============================================================================
--- incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java (added)
+++ incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServletRequest.java Fri Apr  7 08:20:12 2006
@@ -0,0 +1,57 @@
+package org.apache.solr.servlet;
+
+import org.apache.solr.request.SolrQueryRequestBase;
+import org.apache.solr.core.SolrCore;
+import org.apache.solr.util.StrUtils;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author yonik
+ * @version $Id$
+ */
+class SolrServletRequest extends SolrQueryRequestBase {
+
+  final HttpServletRequest req;
+
+  public SolrServletRequest(SolrCore core, HttpServletRequest req) {
+    super(core);
+    this.req = req;
+  }
+
+  public String getParam(String name) {
+    return req.getParameter(name);
+  }
+
+
+  public String getParamString() {
+    StringBuilder sb = new StringBuilder(128);
+    try {
+      boolean first=true;
+
+      for (Map.Entry<String,String[]> entry : (Set<Map.Entry<String,String[]>>)req.getParameterMap().entrySet()) {
+        String key = entry.getKey();
+        String[] valarr = entry.getValue();
+
+        for (String val : valarr) {
+          if (!first) sb.append('&');
+          first=false;
+          sb.append(key);
+          sb.append('=');
+          StrUtils.partialURLEncodeVal(sb, val);
+        }
+      }
+    }
+    catch (Exception e) {
+      // should never happen... we only needed this because
+      // partialURLEncodeVal can throw an IOException, but it
+      // never will when adding to a StringBuilder.
+      throw new RuntimeException(e);
+    }
+
+    return sb.toString();
+  }
+
+}

Added: incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java
URL: http://svn.apache.org/viewcvs/incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java?rev=392311&view=auto
==============================================================================
--- incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java (added)
+++ incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java Fri Apr  7 08:20:12 2006
@@ -0,0 +1,53 @@
+package org.apache.solr.servlet;/**
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.solr.core.SolrCore;
+import org.apache.solr.core.SolrException;
+import org.apache.solr.request.XMLResponseWriter;
+import org.apache.solr.request.SolrQueryResponse;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletException;
+import java.util.logging.Logger;
+import java.io.IOException;
+import java.io.BufferedReader;
+import java.io.PrintWriter;
+
+/**
+ * @author yonik
+ * @version $Id$
+ */
+public class SolrUpdateServlet extends HttpServlet {
+  final Logger log = Logger.getLogger(SolrUpdateServlet.class.getName());
+  private SolrCore core;
+  private static String CONTENT_TYPE="text/xml;charset=UTF-8";
+
+  XMLResponseWriter xmlResponseWriter;
+
+  public void init() throws ServletException
+  {
+    core = SolrCore.getSolrCore();
+  }
+
+  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+    BufferedReader requestReader = request.getReader();
+    response.setContentType(CONTENT_TYPE);
+    PrintWriter responseWriter = response.getWriter();
+    core.update(requestReader, responseWriter);
+  }
+}