Repository: cxf Updated Branches: refs/heads/3.1.x-fixes d0370a3d0 -> 0b5f511f0
[CXF-7474] Checking all the resources if UI is required (always by default) and making it possible to disable it from the properties file too Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/0b5f511f Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/0b5f511f Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/0b5f511f Branch: refs/heads/3.1.x-fixes Commit: 0b5f511f01631cc28f12e383b949c72e8afe432e Parents: d0370a3 Author: Sergey Beryozkin <sberyoz...@gmail.com> Authored: Wed Aug 30 16:10:48 2017 +0100 Committer: Sergey Beryozkin <sberyoz...@gmail.com> Committed: Wed Aug 30 16:16:18 2017 +0100 ---------------------------------------------------------------------- .../cxf/jaxrs/swagger/Swagger2Feature.java | 33 +++++++++++++++----- .../cxf/jaxrs/swagger/SwaggerUiResolver.java | 15 +++++---- 2 files changed, 32 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/0b5f511f/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 dfbbf11..5340e23 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,6 +93,7 @@ public class Swagger2Feature extends AbstractSwaggerFeature { private static final String FILTER_CLASS_PROPERTY = "filter.class"; private static final String HOST_PROPERTY = "host"; private static final String USE_PATH_CFG_PROPERTY = "use.path.based.config"; + private static final String SUPPORT_UI_PROPERTY = "support.swagger.ui"; private boolean runAsFilter; @@ -102,7 +103,7 @@ public class Swagger2Feature extends AbstractSwaggerFeature { private Swagger2Serializers swagger2Serializers; - private boolean supportSwaggerUi = true; + private Boolean supportSwaggerUi; private String swaggerUiVersion; @@ -158,8 +159,9 @@ public class Swagger2Feature extends AbstractSwaggerFeature { if (runAsFilter) { providers.add(new SwaggerContainerRequestFilter(appInfo == null ? null : appInfo.getProvider())); } - - if (supportSwaggerUi) { + + Properties swaggerProps = getSwaggerProperties(bus); + if (checkSupportSwaggerUiProp(swaggerProps)) { String swaggerUiRoot = SwaggerUiResolver.findSwaggerUiRoot(swaggerUiMavenGroupAndArtifact, swaggerUiVersion); if (swaggerUiRoot != null) { @@ -200,8 +202,8 @@ public class Swagger2Feature extends AbstractSwaggerFeature { BeanConfig beanConfig = appInfo == null ? new BeanConfig() : new ApplicationBeanConfig(appInfo.getProvider()); - initBeanConfig(bus, beanConfig); - + initBeanConfig(beanConfig, swaggerProps); + Swagger swagger = beanConfig.getSwagger(); if (swagger != null && securityDefinitions != null) { swagger.setSecurityDefinitions(securityDefinitions); @@ -223,8 +225,18 @@ public class Swagger2Feature extends AbstractSwaggerFeature { ServerProviderFactory.class.getName())).setUserProviders(providers); } - @SuppressWarnings("deprecation") - protected void initBeanConfig(Bus bus, BeanConfig beanConfig) { + protected boolean checkSupportSwaggerUiProp(Properties props) { + Boolean theSupportSwaggerUI = this.supportSwaggerUi; + if (theSupportSwaggerUI == null && props != null && props.containsKey(SUPPORT_UI_PROPERTY)) { + theSupportSwaggerUI = PropertyUtils.isTrue(props.get(SUPPORT_UI_PROPERTY)); + } + if (theSupportSwaggerUI == null) { + theSupportSwaggerUI = true; + } + return theSupportSwaggerUI; + } + + protected Properties getSwaggerProperties(Bus bus) { InputStream is = ResourceUtils.getClasspathResourceStream(propertiesLocation, AbstractSwaggerFeature.class, bus); @@ -237,6 +249,12 @@ public class Swagger2Feature extends AbstractSwaggerFeature { props = null; } } + return props; + } + + @SuppressWarnings("deprecation") + protected void initBeanConfig(BeanConfig beanConfig, Properties props) { + // resource package String theResourcePackage = getResourcePackage(); if (theResourcePackage == null && props != null) { @@ -357,7 +375,6 @@ public class Swagger2Feature extends AbstractSwaggerFeature { beanConfig.setFilterClass(theFilterClass); // scan - //TODO: has no effect on Swagger which always scans and needs to be removed beanConfig.setScan(isScan()); // base path is calculated dynamically http://git-wip-us.apache.org/repos/asf/cxf/blob/0b5f511f/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java ---------------------------------------------------------------------- diff --git a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java index 53b908d..42e3d9a 100644 --- a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java +++ b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java @@ -52,14 +52,13 @@ public class SwaggerUiResolver { return root; } } - } else { - Enumeration<URL> urls = cl.getResources(UI_RESOURCES_ROOT_START); - while (urls.hasMoreElements()) { - String urlStr = urls.nextElement().toString().replace(UI_RESOURCES_ROOT_START, ""); - String root = checkUiRoot(urlStr, swaggerUiMavenGroupAndArtifact, swaggerUiVersion); - if (root != null) { - return root; - } + } + Enumeration<URL> urls = cl.getResources(UI_RESOURCES_ROOT_START); + while (urls.hasMoreElements()) { + String urlStr = urls.nextElement().toString().replace(UI_RESOURCES_ROOT_START, ""); + String root = checkUiRoot(urlStr, swaggerUiMavenGroupAndArtifact, swaggerUiVersion); + if (root != null) { + return root; } } } catch (Throwable ex) {