Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4B504200B87 for ; Mon, 5 Sep 2016 03:10:11 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 4A082160AD9; Mon, 5 Sep 2016 01:10:11 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6DD3F160AD2 for ; Mon, 5 Sep 2016 03:10:10 +0200 (CEST) Received: (qmail 40938 invoked by uid 500); 5 Sep 2016 01:10:09 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 40455 invoked by uid 99); 5 Sep 2016 01:10:09 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Sep 2016 01:10:09 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id ECE1FE3813; Mon, 5 Sep 2016 01:10:08 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: reta@apache.org To: commits@cxf.apache.org Date: Mon, 05 Sep 2016 01:10:15 -0000 Message-Id: <3bc623aa54cc41f5847a6eb2a3afed72@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [08/23] cxf git commit: [CXF-7035] Propagating BeanConfig if dynamicBasePath code detects a basePath mismatch, with thanks to Andriy Redko archived-at: Mon, 05 Sep 2016 01:10:11 -0000 [CXF-7035] Propagating BeanConfig if dynamicBasePath code detects a basePath mismatch, with thanks to Andriy Redko Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/be34ef21 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/be34ef21 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/be34ef21 Branch: refs/heads/master-jaxrs-2.1 Commit: be34ef21638170fc86db896a642e0c9d58c95318 Parents: 1f826fe Author: Sergey Beryozkin Authored: Thu Sep 1 13:16:57 2016 +0100 Committer: Sergey Beryozkin Committed: Thu Sep 1 13:18:04 2016 +0100 ---------------------------------------------------------------------- .../src/main/webapp/WEB-INF/context.xml | 2 -- .../cxf/jaxrs/swagger/AbstractSwaggerFeature.java | 2 +- .../jaxrs/swagger/DefaultSwagger2Serializers.java | 15 ++++++++++++++- .../apache/cxf/jaxrs/swagger/Swagger2Feature.java | 18 +++++++++++++++++- .../cxf/jaxrs/swagger/Swagger2Serializers.java | 3 +++ 5 files changed, 35 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/be34ef21/distribution/src/main/release/samples/jax_rs/description_swagger2_web/src/main/webapp/WEB-INF/context.xml ---------------------------------------------------------------------- diff --git a/distribution/src/main/release/samples/jax_rs/description_swagger2_web/src/main/webapp/WEB-INF/context.xml b/distribution/src/main/release/samples/jax_rs/description_swagger2_web/src/main/webapp/WEB-INF/context.xml index 4c54b90..6cf02a6 100644 --- a/distribution/src/main/release/samples/jax_rs/description_swagger2_web/src/main/webapp/WEB-INF/context.xml +++ b/distribution/src/main/release/samples/jax_rs/description_swagger2_web/src/main/webapp/WEB-INF/context.xml @@ -42,7 +42,6 @@ - @@ -66,7 +65,6 @@ - http://git-wip-us.apache.org/repos/asf/cxf/blob/be34ef21/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java ---------------------------------------------------------------------- diff --git a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java index 0a95b32..427ab49 100644 --- a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java +++ b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java @@ -99,7 +99,7 @@ public abstract class AbstractSwaggerFeature extends AbstractFeature { } } - private void calculateDefaultBasePath(Server server) { + protected void calculateDefaultBasePath(Server server) { if (getBasePath() == null || getBasePath().length() == 0) { String address = server.getEndpoint().getEndpointInfo().getAddress(); setBasePathByAddress(address); http://git-wip-us.apache.org/repos/asf/cxf/blob/be34ef21/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 d6f0bb7..2a32e7c 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 @@ -42,6 +42,7 @@ import org.apache.cxf.jaxrs.model.doc.DocumentationProvider; import org.apache.cxf.jaxrs.model.doc.JavaDocProvider; import org.apache.cxf.jaxrs.utils.JAXRSUtils; +import io.swagger.jaxrs.config.BeanConfig; import io.swagger.jaxrs.listing.SwaggerSerializers; import io.swagger.models.HttpMethod; import io.swagger.models.Operation; @@ -59,6 +60,7 @@ public class DefaultSwagger2Serializers extends SwaggerSerializers implements Sw protected List cris; + protected BeanConfig beanConfig; @Override public void writeTo( final Swagger data, @@ -72,7 +74,12 @@ public class DefaultSwagger2Serializers extends SwaggerSerializers implements Sw if (dynamicBasePath) { MessageContext ctx = JAXRSUtils.createContextValue( JAXRSUtils.getCurrentMessage(), null, MessageContext.class); - data.setBasePath(StringUtils.substringBeforeLast(ctx.getHttpServletRequest().getRequestURI(), "/")); + String currentBasePath = StringUtils.substringBeforeLast(ctx.getHttpServletRequest().getRequestURI(), "/"); + if (!currentBasePath.equals(beanConfig.getBasePath())) { + data.setBasePath(currentBasePath); + data.setHost(beanConfig.getHost()); + data.setInfo(beanConfig.getInfo()); + } } if (replaceTags || javadocProvider != null) { @@ -194,4 +201,10 @@ public class DefaultSwagger2Serializers extends SwaggerSerializers implements Sw public void setJavaDocURLs(final URL[] javaDocURLs) { this.javadocProvider = new JavaDocProvider(javaDocURLs); } + + @Override + public void setBeanConfig(BeanConfig beanConfig) { + this.beanConfig = beanConfig; + + } } http://git-wip-us.apache.org/repos/asf/cxf/blob/be34ef21/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java ---------------------------------------------------------------------- diff --git a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java index 5b813c3..83e65a8 100644 --- a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java +++ b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java @@ -93,7 +93,15 @@ public class Swagger2Feature extends AbstractSwaggerFeature { private Map swaggerUiMediaTypes; private boolean usePathBasedConfig; - + + private boolean dynamicBasePath; + + @Override + protected void calculateDefaultBasePath(Server server) { + dynamicBasePath = true; + super.calculateDefaultBasePath(server); + } + @Override protected void addSwaggerResource(Server server, Bus bus) { JAXRSServiceFactoryBean sfb = @@ -150,6 +158,8 @@ public class Swagger2Feature extends AbstractSwaggerFeature { swagger2Serializers = new DefaultSwagger2Serializers(); } swagger2Serializers.setClassResourceInfos(cris); + swagger2Serializers.setDynamicBasePath(dynamicBasePath); + providers.add(swagger2Serializers); providers.add(new ReaderConfigFilter()); @@ -179,6 +189,8 @@ public class Swagger2Feature extends AbstractSwaggerFeature { beanConfig.setScan(isScan()); beanConfig.setPrettyPrint(isPrettyPrint()); beanConfig.setFilterClass(getFilterClass()); + + swagger2Serializers.setBeanConfig(beanConfig); } public boolean isUsePathBasedConfig() { @@ -257,6 +269,10 @@ public class Swagger2Feature extends AbstractSwaggerFeature { this.swaggerUiMediaTypes = swaggerUiMediaTypes; } + public void setDynamicBasePath(boolean dynamicBasePath) { + this.dynamicBasePath = dynamicBasePath; + } + @javax.ws.rs.ext.Provider private class ServletConfigProvider implements ContextProvider { http://git-wip-us.apache.org/repos/asf/cxf/blob/be34ef21/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Serializers.java ---------------------------------------------------------------------- diff --git a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Serializers.java b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Serializers.java index 6b26552..ba1dec9 100644 --- a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Serializers.java +++ b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Serializers.java @@ -26,10 +26,13 @@ import javax.ws.rs.ext.MessageBodyWriter; import org.apache.cxf.jaxrs.model.ClassResourceInfo; import org.apache.cxf.jaxrs.model.doc.DocumentationProvider; +import io.swagger.jaxrs.config.BeanConfig; import io.swagger.models.Swagger; public interface Swagger2Serializers extends MessageBodyWriter { + void setBeanConfig(BeanConfig beanConfig); + void setDynamicBasePath(boolean dynamicBasePath); void setReplaceTags(boolean replaceTags);