summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-02-08 11:19:19 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2017-02-08 11:19:19 +0100
commit3abb7bc8bc8d6845284c86cd4b6869536e0daee9 (patch)
treeaf7071d95eabf149b6aae2f5ce2eba0289936417
parentb69c1cad6dae7506c22e13ceb2432d8f1839ab4d (diff)
Nonfunctional changes only
-rw-r--r--application/src/main/java/com/yahoo/application/container/handler/Request.java27
-rw-r--r--application/src/test/java/com/yahoo/application/container/HttpFilterTest.java48
-rw-r--r--application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java2
-rw-r--r--application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java9
-rw-r--r--application/src/test/java/com/yahoo/application/container/filters/ThrowingFilter.java29
-rw-r--r--application/src/test/java/com/yahoo/application/container/handler/HeadersTestCase.java4
-rw-r--r--application/src/test/java/com/yahoo/application/container/handler/ResponseTestCase.java2
-rw-r--r--application/src/test/java/com/yahoo/application/container/handlers/EchoRequestHandler.java4
-rw-r--r--application/src/test/java/com/yahoo/application/container/processors/Rot13Processor.java4
-rw-r--r--application/src/test/java/com/yahoo/application/container/searchers/MockSearcher.java4
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/HttpResponse.java3
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/VespaHeaders.java1
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java13
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/FilterUtil.java48
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/FederationResult.java2
-rw-r--r--document/src/main/java/com/yahoo/document/DocumentUpdate.java2
-rw-r--r--document/src/main/java/com/yahoo/document/fieldpathupdate/AssignFieldPathUpdate.java4
-rw-r--r--document/src/main/java/com/yahoo/document/fieldpathupdate/FieldPathUpdate.java4
-rw-r--r--document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java2
-rw-r--r--document/src/main/java/com/yahoo/document/update/MapValueUpdate.java2
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/Response.java2
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java2
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpResponse.java3
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/RequestFilter.java5
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityFilterInvoker.java1
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilter.java2
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilterChain.java3
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/FilteringRequestHandler.java49
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java38
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/ErrorResponse.java16
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java15
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java22
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java2
33 files changed, 239 insertions, 135 deletions
diff --git a/application/src/main/java/com/yahoo/application/container/handler/Request.java b/application/src/main/java/com/yahoo/application/container/handler/Request.java
index cd1ac64cb9e..56163622961 100644
--- a/application/src/main/java/com/yahoo/application/container/handler/Request.java
+++ b/application/src/main/java/com/yahoo/application/container/handler/Request.java
@@ -4,16 +4,18 @@ package com.yahoo.application.container.handler;
import com.google.common.annotations.Beta;
import net.jcip.annotations.Immutable;
+import java.nio.charset.StandardCharsets;
+
/**
* A request for use with {@link com.yahoo.application.container.JDisc#handleRequest(Request)}.
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
- * @since 5.1.15
+ * @author Einar M R Rosenvinge
* @see Response
*/
@Immutable
@Beta
public class Request {
+
private final Headers headers = new Headers();
private final String uri;
private final byte[] body;
@@ -29,7 +31,7 @@ public class Request {
}
/**
- * Creates a Request with a message body.
+ * Creates a GET Request with a message body.
*
* @param uri the URI of the request
* @param body the body of the request
@@ -38,6 +40,15 @@ public class Request {
this(uri, body, Method.GET);
}
+ /**
+ * Creates a GET Request with a message body.
+ *
+ * @param uri the URI of the request
+ * @param body the body of the request as a UTF-8 string
+ */
+ public Request(String uri, String body) {
+ this(uri, body.getBytes(StandardCharsets.UTF_8), Method.GET);
+ }
/**
* Creates a Request with a message body.
@@ -52,6 +63,15 @@ public class Request {
}
/**
+ * Creates a Request with a message body.
+ *
+ * @param uri the URI of the request
+ * @param body the body of the request as a UTF-8 string
+ */
+ public Request(String uri, String body, Method method) {
+ this(uri, body.getBytes(StandardCharsets.UTF_8), method);
+ }
+ /**
* Returns a mutable multi-map of headers for this Request.
*
* @return a mutable multi-map of headers for this Request
@@ -99,4 +119,5 @@ public class Request {
TRACE,
CONNECT
}
+
}
diff --git a/application/src/test/java/com/yahoo/application/container/HttpFilterTest.java b/application/src/test/java/com/yahoo/application/container/HttpFilterTest.java
new file mode 100644
index 00000000000..c48421a8f86
--- /dev/null
+++ b/application/src/test/java/com/yahoo/application/container/HttpFilterTest.java
@@ -0,0 +1,48 @@
+package com.yahoo.application.container;
+
+import com.yahoo.application.Networking;
+import com.yahoo.application.container.handler.Request;
+import com.yahoo.application.container.handler.Response;
+import com.yahoo.text.Utf8;
+import org.junit.Test;
+
+import java.nio.charset.CharacterCodingException;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author bratseth
+ */
+public class HttpFilterTest {
+
+ private static String getXML() {
+ return "<container version='1.0'>" +
+ " <handler id='test-handler' class='com.yahoo.application.container.handlers.EchoRequestHandler'>" +
+ " <binding>http://*/*</binding>" +
+ " </handler>" +
+ " <http>" +
+ " <server port='4080' id='controller4080'/>"+
+ " <filtering>" +
+ " <request-chain id='request-filters'>" +
+ " <filter id='com.yahoo.application.container.filters.ThrowingFilter'/>" +
+ " <binding>http://*/*</binding>" +
+ " </request-chain>" +
+ " </filtering>"+
+ " </http>" +
+ "</container>";
+ }
+
+ @Test
+ public void testFilterInvocation() throws InterruptedException, CharacterCodingException {
+ String requestData = "data";
+ Request req = new Request("http://localhost/echo", requestData.getBytes(Utf8.getCharset()));
+
+ try (JDisc container = JDisc.fromServicesXml(getXML(), Networking.disable)) {
+ Response response = container.handleRequest(req);
+ assertEquals(response.getBodyAsString(), requestData);
+ req.toString();
+ response.toString();
+ }
+ }
+
+}
diff --git a/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java b/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java
index d6c0e08a570..ea7b37db520 100644
--- a/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java
+++ b/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class JDiscContainerDocprocTest {
diff --git a/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java b/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java
index 1ab91547f04..0916b57394d 100644
--- a/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java
+++ b/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java
@@ -20,7 +20,7 @@ import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class JDiscContainerRequestTest {
@@ -38,7 +38,7 @@ public class JDiscContainerRequestTest {
@Test
public void requireThatRequestBodyWorks() throws InterruptedException, CharacterCodingException {
- final String DATA = "we have no bananas today";
+ String DATA = "we have no bananas today";
Request req = new Request("http://banana/echo", DATA.getBytes(Utf8.getCharset()));
try (JDisc container = JDisc.fromServicesXml(getXML(EchoRequestHandler.class.getCanonicalName(), "http://*/echo"), Networking.disable)) {
@@ -64,7 +64,7 @@ public class JDiscContainerRequestTest {
@Test(expected = WriteException.class)
public void requireThatRequestHandlerThatThrowsInWriteWorks() throws InterruptedException {
- final String DATA = "we have no bananas today";
+ String DATA = "we have no bananas today";
Request req = new Request("http://banana/throwwrite", DATA.getBytes(Utf8.getCharset()));
try (JDisc container = JDisc.fromServicesXml(getXML(ThrowingInWriteRequestHandler.class.getCanonicalName(), "http://*/throwwrite"), Networking.disable)) {
@@ -76,7 +76,7 @@ public class JDiscContainerRequestTest {
@Test(expected = DelayedWriteException.class)
public void requireThatRequestHandlerThatThrowsDelayedInWriteWorks() throws InterruptedException {
- final String DATA = "we have no bananas today";
+ String DATA = "we have no bananas today";
Request req = new Request("http://banana/delayedthrowwrite", DATA.getBytes(Utf8.getCharset()));
try (JDisc container = JDisc.fromServicesXml(getXML(DelayedThrowingInWriteRequestHandler.class.getCanonicalName(), "http://*/delayedthrowwrite"), Networking.disable)) {
@@ -84,4 +84,5 @@ public class JDiscContainerRequestTest {
req.toString();
}
}
+
}
diff --git a/application/src/test/java/com/yahoo/application/container/filters/ThrowingFilter.java b/application/src/test/java/com/yahoo/application/container/filters/ThrowingFilter.java
new file mode 100644
index 00000000000..9148d9a8715
--- /dev/null
+++ b/application/src/test/java/com/yahoo/application/container/filters/ThrowingFilter.java
@@ -0,0 +1,29 @@
+package com.yahoo.application.container.filters;
+
+import com.yahoo.jdisc.handler.ResponseHandler;
+import com.yahoo.jdisc.http.filter.DiscFilterRequest;
+import com.yahoo.jdisc.http.filter.SecurityRequestFilter;
+
+import java.security.Principal;
+
+/**
+ * @author bratseth
+ */
+public class ThrowingFilter implements SecurityRequestFilter {
+
+ @Override
+ public void filter(DiscFilterRequest discFilterRequest, ResponseHandler responseHandler) {
+ if (1==1) throw new RuntimeException("Filter ran");
+ discFilterRequest.setUserPrincipal(new MockPrincipal());
+ }
+
+ private static class MockPrincipal implements Principal {
+
+ @Override
+ public String getName() {
+ return "testuser";
+ }
+
+ }
+
+}
diff --git a/application/src/test/java/com/yahoo/application/container/handler/HeadersTestCase.java b/application/src/test/java/com/yahoo/application/container/handler/HeadersTestCase.java
index 7f4a32c7df6..629513689cd 100644
--- a/application/src/test/java/com/yahoo/application/container/handler/HeadersTestCase.java
+++ b/application/src/test/java/com/yahoo/application/container/handler/HeadersTestCase.java
@@ -13,8 +13,8 @@ import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Simon Thoresen
+ * @author Einar M R Rosenvinge
*/
public class HeadersTestCase {
diff --git a/application/src/test/java/com/yahoo/application/container/handler/ResponseTestCase.java b/application/src/test/java/com/yahoo/application/container/handler/ResponseTestCase.java
index 53b62753523..0e27f68ef13 100644
--- a/application/src/test/java/com/yahoo/application/container/handler/ResponseTestCase.java
+++ b/application/src/test/java/com/yahoo/application/container/handler/ResponseTestCase.java
@@ -9,7 +9,7 @@ import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class ResponseTestCase {
diff --git a/application/src/test/java/com/yahoo/application/container/handlers/EchoRequestHandler.java b/application/src/test/java/com/yahoo/application/container/handlers/EchoRequestHandler.java
index 30fe379d864..1763c87e8ca 100644
--- a/application/src/test/java/com/yahoo/application/container/handlers/EchoRequestHandler.java
+++ b/application/src/test/java/com/yahoo/application/container/handlers/EchoRequestHandler.java
@@ -7,11 +7,13 @@ import com.yahoo.jdisc.handler.ContentChannel;
import com.yahoo.jdisc.handler.ResponseHandler;
/**
-* @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+* @author Einar M R Rosenvinge
*/
public class EchoRequestHandler extends AbstractRequestHandler {
+
@Override
public ContentChannel handleRequest(com.yahoo.jdisc.Request request, ResponseHandler handler) {
return handler.handleResponse(new com.yahoo.jdisc.Response(Response.Status.OK));
}
+
}
diff --git a/application/src/test/java/com/yahoo/application/container/processors/Rot13Processor.java b/application/src/test/java/com/yahoo/application/container/processors/Rot13Processor.java
index f0ec8c25a88..95765e69d33 100644
--- a/application/src/test/java/com/yahoo/application/container/processors/Rot13Processor.java
+++ b/application/src/test/java/com/yahoo/application/container/processors/Rot13Processor.java
@@ -10,9 +10,10 @@ import com.yahoo.processing.test.ProcessorLibrary;
import static com.yahoo.application.container.docprocs.Rot13DocumentProcessor.rot13;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class Rot13Processor extends Processor {
+
@Override
public Response process(Request request, Execution execution) {
Object fooObj = request.properties().get("title");
@@ -23,4 +24,5 @@ public class Rot13Processor extends Processor {
}
return response;
}
+
}
diff --git a/application/src/test/java/com/yahoo/application/container/searchers/MockSearcher.java b/application/src/test/java/com/yahoo/application/container/searchers/MockSearcher.java
index ad65e597519..106d68f6644 100644
--- a/application/src/test/java/com/yahoo/application/container/searchers/MockSearcher.java
+++ b/application/src/test/java/com/yahoo/application/container/searchers/MockSearcher.java
@@ -1,4 +1,4 @@
-// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.application.container.searchers;
import com.yahoo.search.Query;
@@ -13,10 +13,12 @@ import com.yahoo.search.searchchain.Execution;
* @author Christian Andersen
*/
public class MockSearcher extends Searcher {
+
@Override
public Result search(Query query, Execution execution) {
HitGroup hits = new HitGroup();
hits.add(new Hit("foo", query));
return new Result(query, hits);
}
+
}
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/HttpResponse.java b/container-core/src/main/java/com/yahoo/container/jdisc/HttpResponse.java
index cd91d2d914c..1b089930482 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/HttpResponse.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/HttpResponse.java
@@ -14,8 +14,7 @@ import java.util.Collections;
* An HTTP response as an opaque payload with headers and content type.
*
* @author hmusum
- * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
- * @since 5.1
+ * @author Steinar Knutsen
*/
public abstract class HttpResponse {
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/VespaHeaders.java b/container-core/src/main/java/com/yahoo/container/jdisc/VespaHeaders.java
index 8959114adea..d50abfde0a2 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/VespaHeaders.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/VespaHeaders.java
@@ -13,6 +13,7 @@ import static com.yahoo.container.protect.Error.NO_BACKENDS_IN_SERVICE;
import static com.yahoo.container.protect.Error.TIMEOUT;
import static com.yahoo.container.protect.Error.UNAUTHORIZED;
+import java.net.URLDecoder;
import java.util.Iterator;
import com.yahoo.collections.Tuple2;
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java b/container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java
index 722d61def55..20485a73a35 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/FilterBindingsProvider.java
@@ -21,15 +21,15 @@ import java.util.List;
* @author bakksjo
*/
public class FilterBindingsProvider implements Provider<FilterBindings> {
+
final BindingRepository<RequestFilter> requestFilters = new BindingRepository<>();
final BindingRepository<ResponseFilter> responseFilters = new BindingRepository<>();
- public FilterBindingsProvider(
- final ComponentId componentId,
- final ServerConfig config,
- final FilterChainRepository filterChainRepository,
- final ComponentRegistry<SecurityRequestFilter> legacyRequestFilters) {
- final ComponentId serverId = componentId.getNamespace();
+ public FilterBindingsProvider(ComponentId componentId,
+ ServerConfig config,
+ FilterChainRepository filterChainRepository,
+ ComponentRegistry<SecurityRequestFilter> legacyRequestFilters) {
+ ComponentId serverId = componentId.getNamespace();
try {
FilterUtil.setupFilters(
componentId,
@@ -58,4 +58,5 @@ public class FilterBindingsProvider implements Provider<FilterBindings> {
@Override
public void deconstruct() {}
+
}
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/FilterUtil.java b/container-disc/src/main/java/com/yahoo/container/jdisc/FilterUtil.java
index fabe4a48da0..9896e30756d 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/FilterUtil.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/FilterUtil.java
@@ -17,26 +17,23 @@ import java.util.List;
/**
* Helper class to set up filter binding repositories based on config.
*
- * @author bakksjo
+ * @author Øyvind Bakksjø
*/
class FilterUtil {
+
private static final ComponentId SEARCH_SERVER_COMPONENT_ID = ComponentId.fromString("SearchServer");
private final BindingRepository<RequestFilter> requestFilters;
private final BindingRepository<ResponseFilter> responseFilters;
- private FilterUtil(
- final BindingRepository<RequestFilter> requestFilters,
- final BindingRepository<ResponseFilter> responseFilters) {
+ private FilterUtil(BindingRepository<RequestFilter> requestFilters, BindingRepository<ResponseFilter> responseFilters) {
this.requestFilters = requestFilters;
this.responseFilters = responseFilters;
}
- private void configureFilters(
- final List<FilterSpec> filtersConfig,
- final FilterChainRepository filterChainRepository) {
- for (final FilterSpec filterConfig : filtersConfig) {
- final Object filter = filterChainRepository.getFilter(ComponentSpecification.fromString(filterConfig.getId()));
+ private void configureFilters(List<FilterSpec> filtersConfig, FilterChainRepository filterChainRepository) {
+ for (FilterSpec filterConfig : filtersConfig) {
+ Object filter = filterChainRepository.getFilter(ComponentSpecification.fromString(filterConfig.getId()));
if (filter == null) {
throw new RuntimeException("No http filter with id " + filterConfig.getId());
}
@@ -44,9 +41,10 @@ class FilterUtil {
}
}
- private void addFilter(final Object filter, final String binding) {
+ private void addFilter(Object filter, String binding) {
if (filter instanceof RequestFilter && filter instanceof ResponseFilter) {
- throw new RuntimeException("The filter " + filter.getClass().getName() + " is unsupported since it's both a RequestFilter and a ResponseFilter.");
+ throw new RuntimeException("The filter " + filter.getClass().getName() +
+ " is unsupported since it's both a RequestFilter and a ResponseFilter.");
} else if (filter instanceof RequestFilter) {
requestFilters.put(new UriPattern(binding), (RequestFilter) filter);
} else if (filter instanceof ResponseFilter) {
@@ -57,14 +55,11 @@ class FilterUtil {
}
//TVT: remove
- private void configureLegacyFilters(
- final ComponentId id,
- final ComponentRegistry<SecurityRequestFilter> legacyRequestFilters) {
- final ComponentId serverName = id.getNamespace();
+ private void configureLegacyFilters(ComponentId id, ComponentRegistry<SecurityRequestFilter> legacyRequestFilters) {
+ ComponentId serverName = id.getNamespace();
if (SEARCH_SERVER_COMPONENT_ID.equals(serverName) && !legacyRequestFilters.allComponents().isEmpty()) {
- requestFilters.bind(
- "http://*/*",
- SecurityRequestFilterChain.newInstance(legacyRequestFilters.allComponents()));
+ requestFilters.bind("http://*/*",
+ SecurityRequestFilterChain.newInstance(legacyRequestFilters.allComponents()));
}
}
@@ -74,14 +69,13 @@ class FilterUtil {
* @param requestFilters output argument that will be mutated
* @param responseFilters output argument that will be mutated
*/
- public static void setupFilters(
- final ComponentId componentId,
- final ComponentRegistry<SecurityRequestFilter> legacyRequestFilters,
- final List<FilterSpec> filtersConfig,
- final FilterChainRepository filterChainRepository,
- final BindingRepository<RequestFilter> requestFilters,
- final BindingRepository<ResponseFilter> responseFilters) {
- final FilterUtil filterUtil = new FilterUtil(requestFilters, responseFilters);
+ public static void setupFilters(ComponentId componentId,
+ ComponentRegistry<SecurityRequestFilter> legacyRequestFilters,
+ List<FilterSpec> filtersConfig,
+ FilterChainRepository filterChainRepository,
+ BindingRepository<RequestFilter> requestFilters,
+ BindingRepository<ResponseFilter> responseFilters) {
+ FilterUtil filterUtil = new FilterUtil(requestFilters, responseFilters);
// TODO: remove
filterUtil.configureLegacyFilters(componentId, legacyRequestFilters);
@@ -90,6 +84,7 @@ class FilterUtil {
}
public static class FilterSpec {
+
private final String id;
private final String binding;
@@ -106,4 +101,5 @@ class FilterUtil {
return binding;
}
}
+
}
diff --git a/container-search/src/main/java/com/yahoo/search/federation/FederationResult.java b/container-search/src/main/java/com/yahoo/search/federation/FederationResult.java
index a7983447a81..62f0f172313 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/FederationResult.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/FederationResult.java
@@ -88,7 +88,7 @@ class FederationResult {
/**
* Returns the result of this by blocking until timeout if necessary.
*
- * @return the result if available, or null otherwise
+ * @return the result if available, or empty otherwise
*/
public Optional<Result> getIfAvailable(long timeout) {
if (availableResult.isPresent()) return availableResult;
diff --git a/document/src/main/java/com/yahoo/document/DocumentUpdate.java b/document/src/main/java/com/yahoo/document/DocumentUpdate.java
index 359873e1cf4..f486ab6d33d 100644
--- a/document/src/main/java/com/yahoo/document/DocumentUpdate.java
+++ b/document/src/main/java/com/yahoo/document/DocumentUpdate.java
@@ -29,7 +29,7 @@ import java.util.Optional;
* docUpdate.addFieldUpdate(update);
* </pre>
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
* @see com.yahoo.document.update.FieldUpdate
* @see com.yahoo.document.update.ValueUpdate
*/
diff --git a/document/src/main/java/com/yahoo/document/fieldpathupdate/AssignFieldPathUpdate.java b/document/src/main/java/com/yahoo/document/fieldpathupdate/AssignFieldPathUpdate.java
index b799a56197f..ef048fd020b 100644
--- a/document/src/main/java/com/yahoo/document/fieldpathupdate/AssignFieldPathUpdate.java
+++ b/document/src/main/java/com/yahoo/document/fieldpathupdate/AssignFieldPathUpdate.java
@@ -15,9 +15,10 @@ import java.util.HashMap;
import java.util.Map;
/**
- * @author <a href="mailto:thomasg@yahoo-inc.com">Thomas Gundersen</a>
+ * @author Thomas Gundersen
*/
public class AssignFieldPathUpdate extends FieldPathUpdate {
+
class SimpleAssignIteratorHandler extends FieldPathIteratorHandler {
FieldValue newValue;
boolean removeIfZero;
@@ -278,4 +279,5 @@ public class AssignFieldPathUpdate extends FieldPathUpdate {
public FieldValue getFieldValue() {
return fieldValue;
}
+
}
diff --git a/document/src/main/java/com/yahoo/document/fieldpathupdate/FieldPathUpdate.java b/document/src/main/java/com/yahoo/document/fieldpathupdate/FieldPathUpdate.java
index 318b696ce7a..01c36ed5753 100644
--- a/document/src/main/java/com/yahoo/document/fieldpathupdate/FieldPathUpdate.java
+++ b/document/src/main/java/com/yahoo/document/fieldpathupdate/FieldPathUpdate.java
@@ -14,11 +14,11 @@ import com.yahoo.document.serialization.DocumentUpdateReader;
import com.yahoo.document.serialization.VespaDocumentSerializerHead;
/**
- * @author <a href="mailto:thomasg@yahoo-inc.com">Thomas Gundersen</a>
+ * @author Thomas Gundersen
*/
public abstract class FieldPathUpdate {
- public static enum Type {
+ public enum Type {
ASSIGN(0),
REMOVE(1),
ADD(2);
diff --git a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
index 83dc9df2826..89d98571394 100644
--- a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
+++ b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
@@ -40,7 +40,7 @@ public class VespaDocumentDeserializerHead extends VespaDocumentDeserializer42 {
for (int i = 0; i < size; i++) {
int type = getByte(null);
update.addFieldPathUpdate(FieldPathUpdate.create(FieldPathUpdate.Type.valueOf(type),
- update.getDocumentType(), this));
+ update.getDocumentType(), this));
}
} catch (ParseException e) {
throw new DeserializationException(e);
diff --git a/document/src/main/java/com/yahoo/document/update/MapValueUpdate.java b/document/src/main/java/com/yahoo/document/update/MapValueUpdate.java
index 37b4329c934..edb40c6959b 100644
--- a/document/src/main/java/com/yahoo/document/update/MapValueUpdate.java
+++ b/document/src/main/java/com/yahoo/document/update/MapValueUpdate.java
@@ -25,7 +25,7 @@ import com.yahoo.document.serialization.DocumentUpdateWriter;
* must represent a legal operation on an integer value.</li>
* </ul>
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class MapValueUpdate extends ValueUpdate {
protected FieldValue value;
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java b/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java
index d624e070a2e..6132a5c40ad 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java
@@ -19,7 +19,7 @@ import java.util.Map;
* <p>The usage pattern of the Response is similar to that of the Request in that the {@link ResponseHandler} returns a
* {@link ContentChannel} into which to write the Response content.</p>
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen
* @see Request
* @see ResponseHandler
*/
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java
index 661f96d7dc3..e1f8005eeed 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java
@@ -25,7 +25,7 @@ import java.util.concurrent.TimeUnit;
/**
* A HTTP request.
*
- * @author <a href="mailto:anirudha@yahoo-inc.com">Anirudha Khanna</a>
+ * @author Anirudha Khanna
* @author Einar M R Rosenvinge
*/
public class HttpRequest extends Request implements ServletOrJdiscHttpRequest {
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpResponse.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpResponse.java
index cf54c546eb7..a4c19becb49 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpResponse.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpResponse.java
@@ -18,7 +18,7 @@ import java.util.List;
/**
* A HTTP response.
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class HttpResponse extends Response implements ServletOrJdiscHttpResponse {
@@ -27,7 +27,6 @@ public class HttpResponse extends Response implements ServletOrJdiscHttpResponse
private String message;
public interface Status extends Response.Status {
-
int REQUEST_ENTITY_TOO_LARGE = REQUEST_TOO_LONG;
int REQUEST_RANGE_NOT_SATISFIABLE = REQUESTED_RANGE_NOT_SATISFIABLE;
}
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/RequestFilter.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/RequestFilter.java
index 8202ef0e693..c4e5f5878ee 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/RequestFilter.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/RequestFilter.java
@@ -5,9 +5,10 @@ import com.yahoo.jdisc.handler.ResponseHandler;
import com.yahoo.jdisc.http.HttpRequest;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public interface RequestFilter extends com.yahoo.jdisc.SharedResource, RequestFilterBase {
- public void filter(HttpRequest request, ResponseHandler handler);
+ void filter(HttpRequest request, ResponseHandler handler);
+
}
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityFilterInvoker.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityFilterInvoker.java
index 52e05484afc..2bcb1635dfb 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityFilterInvoker.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityFilterInvoker.java
@@ -92,4 +92,5 @@ public class SecurityFilterInvoker implements FilterInvoker {
return uri;
}
}
+
}
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilter.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilter.java
index 77ee10111be..63dd1037aed 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilter.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilter.java
@@ -4,7 +4,7 @@ package com.yahoo.jdisc.http.filter;
import com.yahoo.jdisc.handler.ResponseHandler;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen
*/
public interface SecurityRequestFilter extends RequestFilterBase {
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilterChain.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilterChain.java
index d6c5629d6c1..daed3792ee8 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilterChain.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/filter/SecurityRequestFilterChain.java
@@ -17,11 +17,10 @@ import java.util.List;
* Implementation of TypedFilterChain for DiscFilterRequest
*
* @author tejalk
- *
*/
public final class SecurityRequestFilterChain extends AbstractResource implements RequestFilter {
- private final List<SecurityRequestFilter> filters = new ArrayList<SecurityRequestFilter>();
+ private final List<SecurityRequestFilter> filters = new ArrayList<>();
private SecurityRequestFilterChain(Iterable<? extends SecurityRequestFilter> filters) {
for (SecurityRequestFilter filter : filters) {
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/FilteringRequestHandler.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/FilteringRequestHandler.java
index 190408c88b8..b554f98ebd7 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/FilteringRequestHandler.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/FilteringRequestHandler.java
@@ -24,49 +24,50 @@ import java.util.concurrent.atomic.AtomicBoolean;
/**
* Request handler that invokes request and response filters in addition to the bound request handler.
*
- * @author bakksjo
- * $Id$
+ * @author Øyvind Bakksjø
*/
class FilteringRequestHandler extends AbstractRequestHandler {
+
private static final ContentChannel COMPLETING_CONTENT_CHANNEL = new ContentChannel() {
+
@Override
- public void write(final ByteBuffer buf, final CompletionHandler handler) {
+ public void write(ByteBuffer buf, CompletionHandler handler) {
CompletionHandlers.tryComplete(handler);
}
@Override
- public void close(final CompletionHandler handler) {
+ public void close(CompletionHandler handler) {
CompletionHandlers.tryComplete(handler);
}
+
};
private final BindingSet<RequestFilter> requestFilters;
private final BindingSet<ResponseFilter> responseFilters;
- public FilteringRequestHandler(
- final BindingSet<RequestFilter> requestFilters,
- final BindingSet<ResponseFilter> responseFilters) {
+ public FilteringRequestHandler(BindingSet<RequestFilter> requestFilters,
+ BindingSet<ResponseFilter> responseFilters) {
this.requestFilters = requestFilters;
this.responseFilters = responseFilters;
}
@Override
- public ContentChannel handleRequest(final Request request, final ResponseHandler originalResponseHandler) {
+ public ContentChannel handleRequest(Request request, ResponseHandler originalResponseHandler) {
Preconditions.checkArgument(request instanceof HttpRequest, "Expected HttpRequest, got " + request);
Objects.requireNonNull(originalResponseHandler, "responseHandler");
- final RequestFilter requestFilter = requestFilters.resolve(request.getUri());
- final ResponseFilter responseFilter = responseFilters.resolve(request.getUri());
+ RequestFilter requestFilter = requestFilters.resolve(request.getUri());
+ ResponseFilter responseFilter = responseFilters.resolve(request.getUri());
// Not using request.connect() here - it adds logic for error handling that we'd rather leave to the framework.
- final RequestHandler resolvedRequestHandler = request.container().resolveHandler(request);
+ RequestHandler resolvedRequestHandler = request.container().resolveHandler(request);
if (resolvedRequestHandler == null) {
throw new BindingNotFoundException(request.getUri());
}
- final RequestHandler requestHandler = new ReferenceCountingRequestHandler(resolvedRequestHandler);
+ RequestHandler requestHandler = new ReferenceCountingRequestHandler(resolvedRequestHandler);
- final ResponseHandler responseHandler;
+ ResponseHandler responseHandler;
if (responseFilter != null) {
responseHandler = new FilteringResponseHandler(originalResponseHandler, responseFilter, request);
} else {
@@ -74,15 +75,14 @@ class FilteringRequestHandler extends AbstractRequestHandler {
}
if (requestFilter != null) {
- final InterceptingResponseHandler interceptingResponseHandler
- = new InterceptingResponseHandler(responseHandler);
+ InterceptingResponseHandler interceptingResponseHandler = new InterceptingResponseHandler(responseHandler);
requestFilter.filter(HttpRequest.class.cast(request), interceptingResponseHandler);
if (interceptingResponseHandler.hasProducedResponse()) {
return COMPLETING_CONTENT_CHANNEL;
}
}
- final ContentChannel contentChannel = requestHandler.handleRequest(request, responseHandler);
+ ContentChannel contentChannel = requestHandler.handleRequest(request, responseHandler);
if (contentChannel == null) {
throw new RequestDeniedException(request);
}
@@ -90,37 +90,37 @@ class FilteringRequestHandler extends AbstractRequestHandler {
}
private static class FilteringResponseHandler implements ResponseHandler {
+
private final ResponseHandler delegate;
private final ResponseFilter responseFilter;
private final Request request;
- public FilteringResponseHandler(
- final ResponseHandler delegate,
- final ResponseFilter responseFilter,
- final Request request) {
+ public FilteringResponseHandler(ResponseHandler delegate, ResponseFilter responseFilter, Request request) {
this.delegate = Objects.requireNonNull(delegate);
this.responseFilter = Objects.requireNonNull(responseFilter);
this.request = request;
}
@Override
- public ContentChannel handleResponse(final Response response) {
+ public ContentChannel handleResponse(Response response) {
responseFilter.filter(response, request);
return delegate.handleResponse(response);
}
+
}
private static class InterceptingResponseHandler implements ResponseHandler {
+
private final ResponseHandler delegate;
private AtomicBoolean hasResponded = new AtomicBoolean(false);
- public InterceptingResponseHandler(final ResponseHandler delegate) {
+ public InterceptingResponseHandler(ResponseHandler delegate) {
this.delegate = Objects.requireNonNull(delegate);
}
@Override
- public ContentChannel handleResponse(final Response response) {
- final ContentChannel content = delegate.handleResponse(response);
+ public ContentChannel handleResponse(Response response) {
+ ContentChannel content = delegate.handleResponse(response);
hasResponded.set(true);
return content;
}
@@ -129,4 +129,5 @@ class FilteringRequestHandler extends AbstractRequestHandler {
return hasResponded.get();
}
}
+
}
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java
index f41e44b0a73..57e5ba0cf03 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java
@@ -32,9 +32,10 @@ import static com.yahoo.jdisc.http.HttpHeaders.Values.APPLICATION_X_WWW_FORM_URL
import static com.yahoo.jdisc.http.server.jetty.Exceptions.throwUnchecked;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen Hult</a>
+ * @author Simon Thoresen Hult
*/
class HttpRequestDispatch {
+
private static final Logger log = Logger.getLogger(HttpRequestDispatch.class.getName());
private final static String CHARSET_ANNOTATION = ";charset=";
@@ -47,12 +48,11 @@ class HttpRequestDispatch {
private final RequestHandler requestHandler;
private final MetricReporter metricReporter;
- public HttpRequestDispatch(
- final JDiscContext jDiscContext,
- final AccessLogEntry accessLogEntry,
- final Context metricContext,
- final HttpServletRequest servletRequest,
- final HttpServletResponse servletResponse) throws IOException {
+ public HttpRequestDispatch(JDiscContext jDiscContext,
+ AccessLogEntry accessLogEntry,
+ Context metricContext,
+ HttpServletRequest servletRequest,
+ HttpServletResponse servletResponse) throws IOException {
this.jDiscContext = jDiscContext;
requestHandler = newRequestHandler(jDiscContext, accessLogEntry, servletRequest);
@@ -73,7 +73,7 @@ class HttpRequestDispatch {
}
public void dispatch() throws IOException {
- final ServletRequestReader servletRequestReader;
+ ServletRequestReader servletRequestReader;
try {
servletRequestReader = handleRequest();
} catch (Throwable throwable) {
@@ -145,7 +145,7 @@ class HttpRequestDispatch {
private ServletRequestReader handleRequest() throws IOException {
servletResponseController.registerWriteListener();
HttpRequest jdiscRequest = HttpRequestFactory.newJDiscRequest(jDiscContext.container, servletRequest);
- final ContentChannel requestContentChannel;
+ ContentChannel requestContentChannel;
try (ResourceReference ref = References.fromResource(jdiscRequest)) {
HttpRequestFactory.copyHeaders(servletRequest, jdiscRequest);
@@ -186,25 +186,23 @@ class HttpRequestDispatch {
}
- private static RequestHandler newRequestHandler(
- final JDiscContext context,
- final AccessLogEntry accessLogEntry,
- final HttpServletRequest servletRequest) {
- final RequestHandler requestHandler = wrapHandlerIfFormPost(
+ private static RequestHandler newRequestHandler(JDiscContext context,
+ AccessLogEntry accessLogEntry,
+ HttpServletRequest servletRequest) {
+ RequestHandler requestHandler = wrapHandlerIfFormPost(
new FilteringRequestHandler(context.requestFilters, context.responseFilters),
servletRequest, context.serverConfig.removeRawPostBodyForWwwUrlEncodedPost());
return new AccessLoggingRequestHandler(requestHandler, accessLogEntry);
}
- private static RequestHandler wrapHandlerIfFormPost(
- final RequestHandler requestHandler,
- final HttpServletRequest servletRequest,
- final boolean removeBodyForFormPost) {
+ private static RequestHandler wrapHandlerIfFormPost(RequestHandler requestHandler,
+ HttpServletRequest servletRequest,
+ boolean removeBodyForFormPost) {
if (!servletRequest.getMethod().equals("POST")) {
return requestHandler;
}
- final String contentType = servletRequest.getHeader(HttpHeaders.Names.CONTENT_TYPE);
+ String contentType = servletRequest.getHeader(HttpHeaders.Names.CONTENT_TYPE);
if (contentType == null) {
return requestHandler;
}
@@ -214,7 +212,7 @@ class HttpRequestDispatch {
return new FormPostRequestHandler(requestHandler, getCharsetName(contentType), removeBodyForFormPost);
}
- private static String getCharsetName(final String contentType) {
+ private static String getCharsetName(String contentType) {
if (!contentType.startsWith(CHARSET_ANNOTATION, APPLICATION_X_WWW_FORM_URLENCODED.length())) {
return StandardCharsets.UTF_8.name();
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/ErrorResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/ErrorResponse.java
index 7c5a1fffbc0..701ae665757 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/ErrorResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/ErrorResponse.java
@@ -15,6 +15,13 @@ public class ErrorResponse extends HttpResponse {
private final Slime slime = new Slime();
+ public enum errorCodes {
+ NOT_FOUND,
+ BAD_REQUEST,
+ METHOD_NOT_ALLOWED,
+ INTERNAL_SERVER_ERROR
+ }
+
public ErrorResponse(int code, String errorType, String message) {
super(code);
Cursor root = slime.setObject();
@@ -22,15 +29,6 @@ public class ErrorResponse extends HttpResponse {
root.setString("message", message);
}
- public enum errorCodes {
- NOT_FOUND,
- BAD_REQUEST,
- METHOD_NOT_ALLOWED,
- INTERNAL_SERVER_ERROR,
- INVALID_APPLICATION_PACKAGE,
- UNKNOWN_VESPA_VERSION
- }
-
public static ErrorResponse notFoundError(String message) {
return new ErrorResponse(NOT_FOUND, errorCodes.NOT_FOUND.name(), message);
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java
index 7e329e1599b..f9d878dabec 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java
@@ -67,13 +67,14 @@ public class NodesApiHandler extends LoggingRequestHandler {
case PATCH: return handlePATCH(request);
default: return ErrorResponse.methodNotAllowed("Method '" + request.getMethod() + "' is not supported");
}
- } catch (NotFoundException | com.yahoo.vespa.hosted.provision.NotFoundException e) {
+ }
+ catch (NotFoundException | com.yahoo.vespa.hosted.provision.NotFoundException e) {
return ErrorResponse.notFoundError(Exceptions.toMessageString(e));
- } catch (IllegalArgumentException e) {
+ }
+ catch (IllegalArgumentException e) {
return ErrorResponse.badRequest(Exceptions.toMessageString(e));
}
catch (RuntimeException e) {
- e.printStackTrace();
log.log(Level.WARNING, "Unexpected error handling '" + request.getUri() + "'", e);
return ErrorResponse.internalServerError(Exceptions.toMessageString(e));
}
@@ -88,7 +89,7 @@ public class NodesApiHandler extends LoggingRequestHandler {
if (path.startsWith("/nodes/v2/state/")) return new NodesResponse(ResponseType.nodesInStateList, request, nodeRepository);
if (path.startsWith("/nodes/v2/acl/")) return new NodeAclResponse(request, nodeRepository);
if (path.equals( "/nodes/v2/command/")) return ResourcesResponse.fromStrings(request.getUri(), "restart", "reboot");
- return ErrorResponse.notFoundError("Nothing at path '" + request.getUri().getPath() + "'");
+ return ErrorResponse.notFoundError("Nothing at path '" + path + "'");
}
private HttpResponse handlePUT(HttpRequest request) {
@@ -114,7 +115,7 @@ public class NodesApiHandler extends LoggingRequestHandler {
return new MessageResponse("Moved " + lastElement(path) + " to active");
}
else {
- return ErrorResponse.notFoundError("Cannot put to path '" + request.getUri().getPath() + "'");
+ return ErrorResponse.notFoundError("Cannot put to path '" + path + "'");
}
}
@@ -171,11 +172,11 @@ public class NodesApiHandler extends LoggingRequestHandler {
}
public int addNodes(InputStream jsonStream) {
- List<Node> nodes = createNodesFromSlime(getSlimeFromInputStream(jsonStream).get());
+ List<Node> nodes = createNodesFromSlime(toSlime(jsonStream).get());
return nodeRepository.addNodes(nodes).size();
}
- private static Slime getSlimeFromInputStream(InputStream jsonStream) {
+ private Slime toSlime(InputStream jsonStream) {
try {
byte[] jsonBytes = IOUtils.readBytes(jsonStream, 1000 * 1000);
return SlimeUtils.jsonToSlime(jsonBytes);
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java
index 3ca0c4ff365..1239069c1a0 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java
@@ -8,17 +8,19 @@ package com.yahoo.vespa.hosted.provision.testutils;
* @author dybis
*/
public class ContainerConfig {
+
public static final String servicesXmlV2(int port) {
return
- "<jdisc version=\"1.0\">" +
- " <component id=\"com.yahoo.vespa.hosted.provision.testutils.MockNodeFlavors\"/>" +
- " <component id=\"com.yahoo.vespa.hosted.provision.testutils.MockNodeRepository\"/>" +
- " <handler id=\"com.yahoo.vespa.hosted.provision.restapi.v2.NodesApiHandler\">" +
- " <binding>http://*/nodes/v2/*</binding>" +
- " </handler>" +
- " <http>\n" +
- " <server id='myServer' port='" + port + "' />\n" +
- " </http>" +
- "</jdisc>";
+ "<jdisc version='1.0'>" +
+ " <component id='com.yahoo.vespa.hosted.provision.testutils.MockNodeFlavors'/>" +
+ " <component id='com.yahoo.vespa.hosted.provision.testutils.MockNodeRepository'/>" +
+ " <handler id='com.yahoo.vespa.hosted.provision.restapi.v2.NodesApiHandler'>" +
+ " <binding>http://*/nodes/v2/*</binding>" +
+ " </handler>" +
+ " <http>" +
+ " <server id='myServer' port='" + port + "' />" +
+ " </http>" +
+ "</jdisc>";
}
+
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
index d2af29765fd..20440c2bc9e 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
@@ -469,7 +469,7 @@ public class RestApiTest {
assertResponse(request, 200, "{\"message\":\"Scheduled reboot of " + rebootCount + " matching nodes\"}");
}
- /** Replace @include(localFile) with the content of the file */
+ /** Replaces @include(localFile) with the content of the file */
private String include(String response) throws IOException {
// Please don't look at this code
int includeIndex = response.indexOf("@include(");