summaryrefslogtreecommitdiffstats
path: root/application/src
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 /application/src
parentb69c1cad6dae7506c22e13ceb2432d8f1839ab4d (diff)
Nonfunctional changes only
Diffstat (limited to 'application/src')
-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
10 files changed, 119 insertions, 14 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);
}
+
}