From b75e92aac383db104393839b50b96025474cbe43 Mon Sep 17 00:00:00 2001 From: reger Date: Sat, 30 Nov 2013 06:29:57 +0100 Subject: [PATCH] add read queryparameter in gsaservlet --- source/net/yacy/http/GSAsearchServlet.java | 25 +++++++++++++------ .../yacy/http/Jetty8YaCyDefaultServlet.java | 4 --- source/net/yacy/http/YaCyDefaultServlet.java | 3 --- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/source/net/yacy/http/GSAsearchServlet.java b/source/net/yacy/http/GSAsearchServlet.java index c108ef043..c0730680a 100644 --- a/source/net/yacy/http/GSAsearchServlet.java +++ b/source/net/yacy/http/GSAsearchServlet.java @@ -24,6 +24,8 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Date; +import java.util.Iterator; +import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -75,7 +77,7 @@ public class GSAsearchServlet extends HttpServlet { throws ServletException, IOException { response.setContentType(QueryResponseWriter.CONTENT_TYPE_XML_UTF8); response.setStatus(HttpServletResponse.SC_OK); - respond(request, new serverObjects(), Switchboard.getSwitchboard(), response.getOutputStream()); + respond(request, Switchboard.getSwitchboard(), response.getOutputStream()); } // ------------------------------------------ @@ -85,7 +87,7 @@ public class GSAsearchServlet extends HttpServlet { */ - public static serverObjects respond(final HttpServletRequest header, serverObjects post, final Switchboard sb, final OutputStream out) { + public static void respond(final HttpServletRequest header, final Switchboard sb, final OutputStream out) { // remember the peer contact for peer statistics String clientip = header.getHeader(HeaderFramework.CONNECTION_PROP_CLIENTIP); @@ -100,8 +102,17 @@ public class GSAsearchServlet extends HttpServlet { // final boolean searchAllowed = authenticated || sb.getConfigBool("publicSearchpage", true); // if (!searchAllowed) return null; - // check post - if (post == null) {post = new serverObjects(); post.put("q", ""); post.put("num", "0");} + // create post + serverObjects post = new serverObjects(); + post.put("q", ""); post.put("num", "0"); + // convert servletrequest parameter to old style serverObjects map + Map map = header.getParameterMap(); + Iterator> it = map.entrySet().iterator(); + while (it.hasNext()) { + Map.Entry param = it.next(); + post.put(param.getKey(), param.getValue()); // hint: post.put uses String[] for String value anyways + } + ConcurrentLog.info("GSA Query", post.toString()); sb.intermissionAllThreads(3000); // tell all threads to do nothing for a specific time @@ -186,7 +197,7 @@ public class GSAsearchServlet extends HttpServlet { // get the embedded connector EmbeddedSolrConnector connector = sb.index.fulltext().getDefaultEmbeddedConnector(); - if (connector == null) return null; + if (connector == null) return; // do the solr request SolrQueryRequest req = connector.request(post.toSolrParams(null)); @@ -198,7 +209,7 @@ public class GSAsearchServlet extends HttpServlet { ConcurrentLog.logException(e); if (req != null) req.close(); SolrRequestInfo.clearRequestInfo(); - return null; + return; } // set some context for the writer @@ -234,7 +245,5 @@ public class GSAsearchServlet extends HttpServlet { } AccessTracker.addToDump(originalQuery, Integer.toString(matches)); ConcurrentLog.info("GSA Query", "results: " + matches + ", for query:" + post.toString()); - - return null; } } diff --git a/source/net/yacy/http/Jetty8YaCyDefaultServlet.java b/source/net/yacy/http/Jetty8YaCyDefaultServlet.java index 1ceb8a561..721570af4 100644 --- a/source/net/yacy/http/Jetty8YaCyDefaultServlet.java +++ b/source/net/yacy/http/Jetty8YaCyDefaultServlet.java @@ -48,7 +48,6 @@ import org.eclipse.jetty.server.HttpOutput; import org.eclipse.jetty.server.InclusiveByteRange; import org.eclipse.jetty.server.Response; import org.eclipse.jetty.util.MultiPartOutputStream; -import org.eclipse.jetty.util.QuotedStringTokenizer; import org.eclipse.jetty.util.URIUtil; import org.eclipse.jetty.util.resource.Resource; @@ -82,9 +81,6 @@ import org.eclipse.jetty.util.resource.Resource; * * pathInfoOnly If true, only the path info will be applied to the resourceBase * - * - * etags If True, weak etags will be generated and handled. - * * * */ diff --git a/source/net/yacy/http/YaCyDefaultServlet.java b/source/net/yacy/http/YaCyDefaultServlet.java index 4a861f0ed..2307214ae 100644 --- a/source/net/yacy/http/YaCyDefaultServlet.java +++ b/source/net/yacy/http/YaCyDefaultServlet.java @@ -106,9 +106,6 @@ import org.eclipse.jetty.util.resource.Resource; * * pathInfoOnly If true, only the path info will be applied to the resourceBase * - * - * etags If True, weak etags will be generated and handled. - * * */ public abstract class YaCyDefaultServlet extends HttpServlet {