You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2017/04/24 21:17:49 UTC
cxf git commit: [CXF-7347] Dynamically setting a Swagger host
property if needed
Repository: cxf
Updated Branches:
refs/heads/master 59cab46f4 -> 4494a00d6
[CXF-7347] Dynamically setting a Swagger host property if needed
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/4494a00d
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/4494a00d
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/4494a00d
Branch: refs/heads/master
Commit: 4494a00d6bed17e71171a583abf31a2ced6d934e
Parents: 59cab46
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Mon Apr 24 22:16:33 2017 +0100
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Mon Apr 24 22:16:33 2017 +0100
----------------------------------------------------------------------
.../jaxrs/swagger/DefaultSwagger2Serializers.java | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/4494a00d/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/DefaultSwagger2Serializers.java
----------------------------------------------------------------------
diff --git a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/DefaultSwagger2Serializers.java b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/DefaultSwagger2Serializers.java
index 6a51acc..8048fa1 100644
--- a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/DefaultSwagger2Serializers.java
+++ b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/DefaultSwagger2Serializers.java
@@ -22,6 +22,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
+import java.net.URI;
import java.net.URL;
import java.util.Collections;
import java.util.Comparator;
@@ -73,9 +74,10 @@ public class DefaultSwagger2Serializers extends SwaggerSerializers implements Sw
final MultivaluedMap<String, Object> headers,
final OutputStream out) throws IOException {
+ MessageContext ctx = null;
+
if (dynamicBasePath) {
- MessageContext ctx = JAXRSUtils.createContextValue(
- JAXRSUtils.getCurrentMessage(), null, MessageContext.class);
+ ctx = createMessageContext();
String currentBasePath = StringUtils.substringBeforeLast(ctx.getHttpServletRequest().getRequestURI(), "/");
if (!currentBasePath.equals(beanConfig.getBasePath())) {
data.setBasePath(currentBasePath);
@@ -88,6 +90,12 @@ public class DefaultSwagger2Serializers extends SwaggerSerializers implements Sw
data.setSecurityDefinitions(beanConfig.getSwagger().getSecurityDefinitions());
}
}
+ if (data.getHost() == null) {
+ ctx = ctx == null ? createMessageContext() : ctx;
+ URI uri = ctx.getUriInfo().getAbsolutePath();
+ String authority = uri.getAuthority();
+ data.setHost(authority);
+ }
if (replaceTags || javadocProvider != null) {
Map<String, ClassResourceInfo> operations = new HashMap<>();
@@ -158,6 +166,11 @@ public class DefaultSwagger2Serializers extends SwaggerSerializers implements Sw
super.writeTo(data, type, genericType, annotations, mediaType, headers, out);
}
+ private MessageContext createMessageContext() {
+ return JAXRSUtils.createContextValue(
+ JAXRSUtils.getCurrentMessage(), null, MessageContext.class);
+ }
+
protected String getNormalizedPath(String classResourcePath, String operationResourcePath) {
StringBuilder normalizedPath = new StringBuilder();