diff options
author | Henrik <henrik.hoiness@online.no> | 2018-06-25 13:21:06 +0200 |
---|---|---|
committer | Henrik <henrik.hoiness@online.no> | 2018-06-25 13:21:06 +0200 |
commit | 4209215e2dc4887559083dcafe3aca62e925829b (patch) | |
tree | 54c2d62c4cf88a9860a414c9964c1851ffcdd862 /container-search | |
parent | 85c0a98e9306969231a2babbd358a0b607699361 (diff) |
Removed wildcard imports, unnused dependency and a few other changes
Diffstat (limited to 'container-search')
5 files changed, 31 insertions, 58 deletions
diff --git a/container-search/pom.xml b/container-search/pom.xml index f04520398af..cdfcdb2434a 100644 --- a/container-search/pom.xml +++ b/container-search/pom.xml @@ -61,11 +61,6 @@ <scope>provided</scope> </dependency> <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <scope>provided</scope> - </dependency> - <dependency> <groupId>com.yahoo.vespa</groupId> <artifactId>container-accesslogging</artifactId> <version>${project.version}</version> diff --git a/container-search/src/main/java/com/yahoo/search/Query.java b/container-search/src/main/java/com/yahoo/search/Query.java index 16f2eea66e4..7a473e56d11 100644 --- a/container-search/src/main/java/com/yahoo/search/Query.java +++ b/container-search/src/main/java/com/yahoo/search/Query.java @@ -46,7 +46,6 @@ import com.yahoo.search.yql.VespaSerializer; import com.yahoo.search.yql.YqlParser; import com.yahoo.yolean.Exceptions; import edu.umd.cs.findbugs.annotations.Nullable; - import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Collections; @@ -56,7 +55,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.logging.Logger; -import java.util.stream.Collectors; /** * A search query containing all the information required to produce a Result. @@ -305,9 +303,7 @@ public class Query extends com.yahoo.processing.Request implements Cloneable { * @param queryProfile the query profile to use for this query, or null if none. */ public Query(HttpRequest request, CompiledQueryProfile queryProfile) { - super(new QueryPropertyAliases(propertyAliases)); - this.httpRequest = request; - init(request.propertyMap(), queryProfile); + this(request, request.propertyMap(), queryProfile); } /** @@ -318,7 +314,6 @@ public class Query extends com.yahoo.processing.Request implements Cloneable { * @param queryProfile the query profile to use for this query, or null if none. */ public Query(HttpRequest request, Map<String, String> requestMap, CompiledQueryProfile queryProfile) { - super(new QueryPropertyAliases(propertyAliases)); this.httpRequest = request; init(requestMap, queryProfile); diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java index 921f38997ee..7fa16c9da6b 100644 --- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java +++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java @@ -20,8 +20,8 @@ import com.yahoo.container.jdisc.LoggingRequestHandler; import com.yahoo.container.jdisc.VespaHeaders; import com.yahoo.container.logging.AccessLog; import com.yahoo.container.protect.FreezeDetector; +import com.yahoo.io.IOUtils; import com.yahoo.jdisc.Metric; -import com.yahoo.jdisc.Response; import com.yahoo.language.Linguistics; import com.yahoo.log.LogLevel; import com.yahoo.net.HostName; @@ -58,20 +58,15 @@ import com.yahoo.statistics.Statistics; import com.yahoo.statistics.Value; import com.yahoo.vespa.configdefinition.SpecialtokensConfig; import edu.umd.cs.findbugs.annotations.NonNull; -import org.apache.commons.io.IOUtils; -import org.json.*; - -import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; import java.util.concurrent.Executor; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; /** * Handles search request. @@ -243,9 +238,6 @@ public class SearchHandler extends LoggingRequestHandler { } catch (RuntimeException e) { // Make sure we generate a valid response even on unexpected errors log.log(Level.WARNING, "Failed handling " + request, e); return internalServerErrorResponse(request, e); - } catch (JSONException e) { - e.printStackTrace(); - return invalidJsonResponse(request, e); } } finally { requestsInFlight.decrementAndGet(); @@ -288,11 +280,8 @@ public class SearchHandler extends LoggingRequestHandler { return errorResponse(request, ErrorMessage.createInternalServerError(Exceptions.toMessageString(e))); } - private HttpResponse invalidJsonResponse(HttpRequest request, JSONException e) { - return errorResponse(request, ErrorMessage.createBadRequest(Exceptions.toMessageString(e))); - } - private HttpSearchResponse handleBody(HttpRequest request) throws JSONException { + private HttpSearchResponse handleBody(HttpRequest request){ // Find query profile String queryProfileName = request.getProperty("queryProfile"); CompiledQueryProfile queryProfile = queryProfileRegistry.findQueryProfile(queryProfileName); @@ -303,15 +292,12 @@ public class SearchHandler extends LoggingRequestHandler { if (request.getMethod() == com.yahoo.jdisc.http.HttpRequest.Method.POST && request.getHeader(com.yahoo.jdisc.http.HttpHeaders.Names.CONTENT_TYPE).equals(JSON_CONTENT_TYPE)) { Inspector inspector = null; try { - InputStream inputStream = request.getData(); - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - byte[] buffer = new byte[0xFFFF]; - for (int len = inputStream.read(buffer); len != -1; len = inputStream.read(buffer)) { - outputStream.write(buffer, 0, len); - } - inspector = SlimeUtils.jsonToSlime(outputStream.toByteArray()).get(); - - } catch (IOException e) { e.printStackTrace(); + byte[] byteArray = IOUtils.readBytes(request.getData(), 1 << 20); + inspector = SlimeUtils.jsonToSlime(byteArray).get(); + + } catch (IOException e) { + e.printStackTrace(); + throw new RuntimeException("Could not resolve JSON-query"); } // Create request-mapping @@ -597,25 +583,25 @@ public class SearchHandler extends LoggingRequestHandler { private void createRequestMapping(Inspector inspector, Map<String, String> map, String parent){ inspector.traverse((ObjectTraverser) (key, value) -> { - String delimiter = parent.equals("") ? "" : "."; + String qualifiedKey = parent + key; switch (value.type()) { case BOOL: - map.put(parent + delimiter + key, Boolean.toString(value.asBool())); + map.put(qualifiedKey, Boolean.toString(value.asBool())); break; case DOUBLE: - map.put(parent + delimiter + key, Double.toString(value.asDouble())); + map.put(qualifiedKey, Double.toString(value.asDouble())); break; case LONG: - map.put(parent + delimiter + key, Long.toString(value.asLong())); + map.put(qualifiedKey, Long.toString(value.asLong())); break; case STRING: - map.put(parent + delimiter + key, value.asString()); + map.put(qualifiedKey , value.asString()); break; case OBJECT: if (key.equals("grouping")) { createRequestMapping(value, map, ""); } else { - createRequestMapping(value, map, String.join(delimiter, parent, key)); + createRequestMapping(value, map, qualifiedKey+"."); break; } } diff --git a/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java index 8cef25c21f8..e8d252f8ca8 100644 --- a/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/handler/test/JSONSearchHandlerTestCase.java @@ -12,7 +12,6 @@ import com.yahoo.search.handler.SearchHandler; import com.yahoo.search.searchchain.config.test.SearchChainConfigurerTestCase; import com.yahoo.slime.Inspector; import com.yahoo.slime.ObjectTraverser; -import com.yahoo.slime.Slime; import com.yahoo.vespa.config.SlimeUtils; import org.json.JSONObject; import org.junit.After; @@ -20,9 +19,10 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - -import java.io.*; -import java.util.*; +import java.io.File; +import java.io.IOException; +import java.util.Map; +import java.util.HashMap; import static com.yahoo.jdisc.http.HttpRequest.Method.GET; import static org.hamcrest.CoreMatchers.containsString; @@ -332,25 +332,25 @@ public class JSONSearchHandlerTestCase { private void createRequestMapping(Inspector inspector, Map<String, String> map, String parent){ inspector.traverse((ObjectTraverser) (key, value) -> { - String delimiter = parent.equals("") ? "" : "."; + String qualifiedKey = parent + key; switch (value.type()) { case BOOL: - map.put(parent + delimiter + key, Boolean.toString(value.asBool())); + map.put(qualifiedKey, Boolean.toString(value.asBool())); break; case DOUBLE: - map.put(parent + delimiter + key, Double.toString(value.asDouble())); + map.put(qualifiedKey, Double.toString(value.asDouble())); break; case LONG: - map.put(parent + delimiter + key, Long.toString(value.asLong())); + map.put(qualifiedKey, Long.toString(value.asLong())); break; case STRING: - map.put(parent + delimiter + key, value.asString()); + map.put(qualifiedKey , value.asString()); break; case OBJECT: if (key.equals("grouping")) { createRequestMapping(value, map, ""); } else { - createRequestMapping(value, map, String.join(delimiter, parent, key)); + createRequestMapping(value, map, qualifiedKey+"."); break; } } @@ -449,6 +449,7 @@ public class JSONSearchHandlerTestCase { json.put("metrics.ignore", false); + // Create mapping Inspector inspector = SlimeUtils.jsonToSlime(json.toString().getBytes("utf-8")).get(); Map<String, String> map = new HashMap<>(); diff --git a/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java index 30a5d637767..6dcb34ec3e9 100644 --- a/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java @@ -3,16 +3,13 @@ package com.yahoo.search.handler.test; import com.yahoo.container.Container; import com.yahoo.container.core.config.testutil.HandlersConfigurerTestWrapper; -import com.yahoo.container.jdisc.AsyncHttpResponse; import com.yahoo.container.jdisc.HttpRequest; - import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.RequestHandlerTestDriver; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; import com.yahoo.io.IOUtils; import com.yahoo.jdisc.handler.RequestHandler; import com.yahoo.net.HostName; -import com.yahoo.processing.handler.ResponseStatus; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.Searcher; @@ -23,7 +20,6 @@ import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.result.Hit; import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.config.test.SearchChainConfigurerTestCase; -import org.json.JSONObject; import org.junit.After; import org.junit.Before; import org.junit.Ignore; @@ -31,9 +27,9 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import java.io.*; +import java.io.File; +import java.io.IOException; import java.net.URI; -import java.util.*; import java.util.concurrent.Executors; import static org.hamcrest.CoreMatchers.containsString; |