You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Simon Kissane (JIRA)" <ji...@apache.org> on 2018/04/06 06:37:00 UTC

[jira] [Created] (CXF-7703) Public constructor of SwaggerUiService takes package-private argument of SwaggerUiResourceLocator

Simon Kissane created CXF-7703:
----------------------------------

             Summary: Public constructor of SwaggerUiService takes package-private argument of SwaggerUiResourceLocator
                 Key: CXF-7703
                 URL: https://issues.apache.org/jira/browse/CXF-7703
             Project: CXF
          Issue Type: Bug
    Affects Versions: 3.2.4
            Reporter: Simon Kissane


In CXF 3.2.4 (and also in master), the class org.apache.cxf.jaxrs.swagger.SwaggerUiService has a single public constructor,
public SwaggerUiService(SwaggerUiResourceLocator locator, Map<String, String> mediaTypes)

However, the first argument SwaggerUiResourceLocator is a package-private class.
So, effectively no one outside the package can use that constructor.
This doesn't make any logical sense. Either the constructor should be package-private, or the SwaggerUiResourceLocator class should be public.

In CXF 3.1.11, I subclass Swagger2Feature.SwaggerUIService to modify its behaviour.
I am trying to upgrade from CXF 3.1.11 to CXF 3.2.4.
In CXF 3.2.4, Swagger2Feature.SwaggerUIService has been replaced by SwaggerUiService class.
But I cannot subclass it because SwaggerUiResourceLocator is package-private.

I think the simplest solution would be to make SwaggerUiResourceLocator a public class.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)