Skip to content
This repository was archived by the owner on Dec 15, 2018. It is now read-only.

Commit 3bb393c

Browse files
Daniel-Doschkal
authored andcommitted
fix extension to Viewable.
refactor the code.
1 parent 059b038 commit 3bb393c

File tree

4 files changed

+53
-6
lines changed

4 files changed

+53
-6
lines changed

core/src/main/java/org/mvcspec/ozark/core/ViewResponseFilter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import javax.ws.rs.Priorities;
3333
import javax.ws.rs.Produces;
3434
import javax.ws.rs.ServerErrorException;
35+
import javax.ws.rs.client.ResponseProcessingException;
3536
import javax.ws.rs.container.ContainerRequestContext;
3637
import javax.ws.rs.container.ContainerResponseContext;
3738
import javax.ws.rs.container.ContainerResponseFilter;
@@ -141,8 +142,8 @@ public void filter(ContainerRequestContext requestContext,
141142
} else if (returnType == Void.TYPE) {
142143
throw new ServerErrorException(messages.get("VoidControllerNoView", resourceInfo.getResourceMethod()), INTERNAL_SERVER_ERROR);
143144
}
144-
} else if (entityType != Viewable.class) {
145-
final String view = appendExtensionIfRequired(entity.toString());
145+
} else {
146+
final String view = appendExtensionIfRequired(entityType == Viewable.class ? ((Viewable) entity).getView() : entity.toString());
146147
if (view == null) {
147148
throw new ServerErrorException(messages.get("EntityToStringNull", resourceInfo.getResourceMethod()), INTERNAL_SERVER_ERROR);
148149
}

examples/def-ext/src/main/java/org/mvcspec/ozark/test/mvc/DefaultExtensionController.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@
1616
package org.mvcspec.ozark.test.mvc;
1717

1818
import javax.mvc.Controller;
19+
import javax.mvc.View;
1920
import javax.ws.rs.GET;
2021
import javax.ws.rs.Path;
22+
import javax.ws.rs.core.Response;
23+
24+
import org.mvcspec.ozark.engine.Viewable;
2125

2226
/**
2327
* DefaultExtensionController test.
@@ -29,7 +33,25 @@
2933
public class DefaultExtensionController {
3034

3135
@GET
32-
public String get() {
36+
@Path("string")
37+
public String getString() {
3338
return "extension";
3439
}
40+
41+
@GET
42+
@Path("void")
43+
@View("extension")
44+
public void getView() { }
45+
46+
@GET
47+
@Path("viewable")
48+
public Viewable getViewAble() {
49+
return new Viewable("extension");
50+
}
51+
52+
@GET
53+
@Path("response")
54+
public Response getResponse() {
55+
return Response.ok().entity("extension").build();
56+
}
3557
}

examples/def-ext/src/main/webapp/index.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
<body>
99
<h1>Default extension</h1>
1010
<ul>
11-
<li><a href="resources/def-ext">resources/def-ext</a>
11+
<li><a href="resources/def-ext/string">resources/def-ext/String</a>
12+
<li><a href="resources/def-ext/void">resources/def-ext/void</a>
13+
<li><a href="resources/def-ext/viewable">resources/def-ext/viewable</a>
14+
<li><a href="resources/def-ext/response">resources/def-ext/response</a>
1215
</ul>
1316
<br/>
1417
<!--<a class="source" href="https://github.com/mvc-spec/ozark/blob/master/test/*.java">Source Code</a>-->

examples/def-ext/src/test/java/org/mvcspec/ozark/test/mvc/DefaultExtensionIT.java

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,29 @@ public void tearDown() {
4545
}
4646

4747
@Test
48-
public void test() throws Exception {
49-
HtmlPage page = webClient.getPage(webUrl + "resources/def-ext");
48+
public void testString() throws Exception {
49+
HtmlPage page = webClient.getPage(webUrl + "resources/def-ext/string");
50+
assertEquals("/test-def-ext/resources", page.getElementById("basePath").asText());
51+
assertEquals("jsp", page.getElementById("defaultExtension").asText());
52+
}
53+
54+
@Test
55+
public void testViewable() throws Exception {
56+
HtmlPage page = webClient.getPage(webUrl + "resources/def-ext/viewable");
57+
assertEquals("/test-def-ext/resources", page.getElementById("basePath").asText());
58+
assertEquals("jsp", page.getElementById("defaultExtension").asText());
59+
}
60+
61+
@Test
62+
public void testResponse() throws Exception {
63+
HtmlPage page = webClient.getPage(webUrl + "resources/def-ext/response");
64+
assertEquals("/test-def-ext/resources", page.getElementById("basePath").asText());
65+
assertEquals("jsp", page.getElementById("defaultExtension").asText());
66+
}
67+
68+
@Test
69+
public void testVoid() throws Exception {
70+
HtmlPage page = webClient.getPage(webUrl + "resources/def-ext/void");
5071
assertEquals("/test-def-ext/resources", page.getElementById("basePath").asText());
5172
assertEquals("jsp", page.getElementById("defaultExtension").asText());
5273
}

0 commit comments

Comments
 (0)