Skip to content

Commit 4468e52

Browse files
committed
Merge remote-tracking branch 'origin/wsdl-validator-new-wsdl-parser' into wsdl-validator-new-wsdl-parser
2 parents 2ad6883 + ba9d83f commit 4468e52

File tree

2 files changed

+26
-20
lines changed

2 files changed

+26
-20
lines changed

core/src/main/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptor.java

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public Outcome handleRequest(Exchange exc) {
128128

129129
try {
130130
exc.setTimeReqSent(currentTimeMillis());
131-
exc.setResponse(createResponse(router.getResolverMap(), combine(router.getConfiguration().getBaseLocation(), docBase, uri)));
131+
exc.setResponse(createResponseInternal(router.getResolverMap(), combine(router.getConfiguration().getBaseLocation(), docBase, uri)));
132132
exc.setReceived();
133133
exc.setTimeResReceived(currentTimeMillis());
134134
return RETURN;
@@ -191,18 +191,15 @@ public Outcome handleRequest(Exchange exc) {
191191

192192
private boolean tryToReceiveResource(Exchange exc, String uri) {
193193
for (String i : index) {
194-
Response response = createResponse(
195-
router.getResolverMap(),
196-
combine(router.getConfiguration().getBaseLocation(), docBase, uri + i)
197-
);
198-
199-
if (!response.isOk())
200-
continue;
201-
202-
exc.setResponse(response);
203-
exc.setReceived();
204-
exc.setTimeResReceived(currentTimeMillis());
205-
return true;
194+
try {
195+
Response response = createResponseInternal(router.getResolverMap(), ResolverMap.combine(router.getConfiguration().getBaseLocation(), docBase, uri + i));
196+
if (!response.isOk())
197+
continue;
198+
exc.setResponse(response);
199+
exc.setReceived();
200+
exc.setTimeResReceived(currentTimeMillis());
201+
return true;
202+
} catch (ResourceRetrievalException ignored) {}
206203
}
207204
return false;
208205
}
@@ -248,10 +245,7 @@ private boolean escapesPath(String uri) {
248245

249246
public Response createResponse(ResolverMap rr, String resPath) {
250247
try {
251-
return ok()
252-
.header(createHeaders(getContentType(resPath)))
253-
.body(rr.resolve(resPath), true)
254-
.build();
248+
return createResponseInternal(rr, resPath);
255249
} catch (Exception e) {
256250
return internal(router.getConfiguration().isProduction(), getDisplayName())
257251
.title("Could not resolve file")
@@ -261,6 +255,13 @@ public Response createResponse(ResolverMap rr, String resPath) {
261255
}
262256
}
263257

258+
private Response createResponseInternal(ResolverMap rr, String resPath) throws ResourceRetrievalException {
259+
return ok()
260+
.header(createHeaders(getContentType(resPath)))
261+
.body(rr.resolve(resPath), true)
262+
.build();
263+
}
264+
264265
public String getDocBase() {
265266
return docBase;
266267
}

core/src/test/java/com/predic8/membrane/core/interceptor/server/WebServerInterceptorTest.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,20 @@ void noIndex() {
5151
ws.setGenerateIndex(false);
5252
ws.handleRequest(exc);
5353
// No index file is set, and no index page is generated, so throw not found.
54-
// System.out.println("exc.getResponse().getBodyAsStringDecoded() = " + exc.getResponse().getBodyAsStringDecoded());
55-
assertEquals(500, exc.getResponse().getStatusCode());
54+
// System.out.println("exc.getResponse().getBodyAsStringDecoded() = " + exc.getResponse().getBodyAsStringDecoded());
55+
assertEquals(404, exc.getResponse().getStatusCode());
5656
}
5757

5858
@Test
5959
void generateIndex() {
6060
ws.setGenerateIndex(true);
6161
ws.handleRequest(exc);
6262
// No index file is set, but index page is being generated. Body lists the page.html resource.
63-
assertTrue(exc.getResponse().getBodyAsStringDecoded().contains("page.html"));
63+
assertEquals(200, exc.getResponse().getStatusCode());
64+
assertTrue(exc.getResponse().getHeader().getFirstValue("Content-Type").contains("text/html"));
65+
66+
String body = exc.getResponse().getBodyAsStringDecoded();
67+
assertTrue(body.contains("<a href=\"./index.html\">index.html</a>"));
68+
assertTrue(body.contains("<a href=\"./page.html\">page.html</a>"));
6469
}
6570
}

0 commit comments

Comments
 (0)