You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2018/03/30 13:56:54 UTC
[cxf] branch master updated: CXF-7692: Swagger UI is not shown in
OSGi deployment
This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new be88562 CXF-7692: Swagger UI is not shown in OSGi deployment
be88562 is described below
commit be88562abb79110e6d6d4092aea4a2deb731b6a9
Author: reta <dr...@gmail.com>
AuthorDate: Fri Mar 30 09:54:37 2018 -0400
CXF-7692: Swagger UI is not shown in OSGi deployment
---
.../apache/cxf/jaxrs/swagger/SwaggerUiService.java | 7 +++---
.../AbstractSwagger2ServiceDescriptionTest.java | 25 +++++++++++++++++++---
.../AbstractOpenApiServiceDescriptionTest.java | 24 +++++++++++++++++++--
3 files changed, 48 insertions(+), 8 deletions(-)
diff --git a/rt/rs/description-swagger-ui/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiService.java b/rt/rs/description-swagger-ui/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiService.java
index 49a939d..e889915 100644
--- a/rt/rs/description-swagger-ui/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiService.java
+++ b/rt/rs/description-swagger-ui/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiService.java
@@ -70,11 +70,12 @@ public class SwaggerUiService {
try {
final URL resourceURL = locator.locate(resourcePath);
+ final String path = resourceURL.getPath();
String mediaType = null;
- int ind = resourcePath.lastIndexOf('.');
- if (ind != -1 && ind < resourcePath.length()) {
- String resourceExt = resourcePath.substring(ind + 1);
+ int ind = path.lastIndexOf('.');
+ if (ind != -1 && ind < path.length()) {
+ String resourceExt = path.substring(ind + 1);
if (mediaTypes != null && mediaTypes.containsKey(resourceExt)) {
mediaType = mediaTypes.get(resourceExt);
} else {
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/AbstractSwagger2ServiceDescriptionTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/AbstractSwagger2ServiceDescriptionTest.java
index 8bdc1ea..979a8ba 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/AbstractSwagger2ServiceDescriptionTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/AbstractSwagger2ServiceDescriptionTest.java
@@ -209,10 +209,29 @@ public abstract class AbstractSwagger2ServiceDescriptionTest extends AbstractBus
WebClient uiClient = WebClient
.create("http://localhost:" + getPort() + "/swagger-ui.css")
.accept("text/css");
- String css = uiClient.get(String.class);
- assertThat(css, containsString(".swagger-ui{"));
+
+ try (Response response = uiClient.get()) {
+ String css = response.readEntity(String.class);
+ assertThat(css, containsString(".swagger-ui{"));
+ assertThat(response.getMediaType(), equalTo(MediaType.valueOf("text/css")));
+ }
}
-
+
+ @Test
+ public void testUiRootResource() {
+ // Test that Swagger UI resources do not interfere with
+ // application-specific ones and are accessible.
+ WebClient uiClient = WebClient
+ .create("http://localhost:" + getPort() + "/api-docs")
+ .accept("*/*");
+
+ try (Response response = uiClient.get()) {
+ String html = response.readEntity(String.class);
+ assertThat(html, containsString("<!-- HTML"));
+ assertThat(response.getMediaType(), equalTo(MediaType.TEXT_HTML_TYPE));
+ }
+ }
+
@Test
@Ignore
public void testApiListingIsProperlyReturnedYAML() throws Exception {
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/openapi/AbstractOpenApiServiceDescriptionTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/openapi/AbstractOpenApiServiceDescriptionTest.java
index 2aa3216..0e8654f 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/openapi/AbstractOpenApiServiceDescriptionTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/description/openapi/AbstractOpenApiServiceDescriptionTest.java
@@ -25,6 +25,7 @@ import java.util.Map;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
@@ -209,8 +210,27 @@ public abstract class AbstractOpenApiServiceDescriptionTest extends AbstractBusC
WebClient uiClient = WebClient
.create(getBaseUrl() + "/swagger-ui.css")
.accept("text/css");
- String css = uiClient.get(String.class);
- assertThat(css, containsString(".swagger-ui{"));
+
+ try (Response response = uiClient.get()) {
+ String css = response.readEntity(String.class);
+ assertThat(css, containsString(".swagger-ui{"));
+ assertThat(response.getMediaType(), equalTo(MediaType.valueOf("text/css")));
+ }
+ }
+
+ @Test
+ public void testUiRootResource() {
+ // Test that Swagger UI resources do not interfere with
+ // application-specific ones and are accessible.
+ WebClient uiClient = WebClient
+ .create(getBaseUrl() + "/api-docs")
+ .accept("*/*");
+
+ try (Response response = uiClient.get()) {
+ String html = response.readEntity(String.class);
+ assertThat(html, containsString("<!-- HTML"));
+ assertThat(response.getMediaType(), equalTo(MediaType.TEXT_HTML_TYPE));
+ }
}
protected String getApplicationPath() {
--
To stop receiving notification emails like this one, please contact
reta@apache.org.