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) {

Reply via email to