Repository: syncope Updated Branches: refs/heads/2_0_X 71480a108 -> aa493009f refs/heads/master e975c6c7e -> a8dd6b794
[SYNCOPE-1262] Taking the SwaggerToOpenApiConversionFilter approach Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/aa493009 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/aa493009 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/aa493009 Branch: refs/heads/2_0_X Commit: aa493009f344b0abee2acd5cf5c044fdb4d98ddc Parents: 71480a1 Author: Francesco Chicchiriccò <[email protected]> Authored: Fri Jan 5 11:48:07 2018 +0100 Committer: Francesco Chicchiriccò <[email protected]> Committed: Fri Jan 5 11:48:07 2018 +0100 ---------------------------------------------------------------------- .../src/main/resources/restCXFContext.xml | 2 + ext/swagger-ui/pom.xml | 21 -- .../META-INF/resources/swagger/index.html | 250 +++++++++---------- pom.xml | 4 +- 4 files changed, 123 insertions(+), 154 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/aa493009/core/rest-cxf/src/main/resources/restCXFContext.xml ---------------------------------------------------------------------- diff --git a/core/rest-cxf/src/main/resources/restCXFContext.xml b/core/rest-cxf/src/main/resources/restCXFContext.xml index d7251a7..d29bc3b 100644 --- a/core/rest-cxf/src/main/resources/restCXFContext.xml +++ b/core/rest-cxf/src/main/resources/restCXFContext.xml @@ -113,6 +113,7 @@ under the License. <property name="customizer" ref="swagger2customizer"/> </bean> + <bean id="sw2OpenAPI" class="org.apache.cxf.jaxrs.swagger.openapi.SwaggerToOpenApiConversionFilter"/> <jaxrs:server id="restContainer" address="/" basePackages="org.apache.syncope.common.rest.api.service, org.apache.syncope.core.rest.cxf.service" @@ -139,6 +140,7 @@ under the License. <ref bean="addDomainFilter"/> <ref bean="addETagFilter"/> <ref bean="wadlGenerator"/> + <ref bean="sw2OpenAPI"/> </jaxrs:providers> <jaxrs:features> <ref bean="swagger2Feature"/> http://git-wip-us.apache.org/repos/asf/syncope/blob/aa493009/ext/swagger-ui/pom.xml ---------------------------------------------------------------------- diff --git a/ext/swagger-ui/pom.xml b/ext/swagger-ui/pom.xml index 8da3f1d..c61edd7 100644 --- a/ext/swagger-ui/pom.xml +++ b/ext/swagger-ui/pom.xml @@ -112,7 +112,6 @@ under the License. <directory>${project.build.directory}/swagger-ui/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}</directory> <excludes> <exclude>index.html</exclude> - <exclude>swagger-ui.min.js</exclude> </excludes> </resource> </resources> @@ -123,26 +122,6 @@ under the License. <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <inherited>true</inherited> - <executions> - <execution> - <id>addMatrixParamSupport</id> - <phase>process-resources</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <target> - <replace file="${project.build.directory}/swagger-ui/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/swagger-ui.js" token="return url + requestUrl + querystring;" value="
var matrixstring = '';
 for (var i = 0; i < this.parameters.length; i++) {
 var param = this.parameters[i];
 
 if (param.in === 'matrix') {
 matrixstring += ';' + this.encodeQueryParam(param.name) + '=' + this.encodeQueryParam(args[param.name]);
 }
 }
 
 var url = this.scheme + '://' + this.host;
 
 if (this.basePath !== '/') {
 url += this.basePath;
 }
 return url + requestUrl + matrixstring + querystring;" /> - </target> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> </plugins> http://git-wip-us.apache.org/repos/asf/syncope/blob/aa493009/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html ---------------------------------------------------------------------- diff --git a/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html b/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html index 6df05db..b97c108 100644 --- a/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html +++ b/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html @@ -17,142 +17,130 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -<html> +<html lang="en"> <head> <meta charset="UTF-8"> - <meta http-equiv="x-ua-compatible" content="IE=edge"> - <!-- <ApacheSyncope --> + <!-- <ApacheSyncope> --> <!--<title>Swagger UI</title>--> <title>Swagger UI - Apache Syncope ${syncope.version}</title> - <!-- </ApacheSyncope --> - <link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" /> - <link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" /> - <link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/> - <link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/> - <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/> - <link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/> - <link href='css/print.css' media='print' rel='stylesheet' type='text/css'/> - - <script src='lib/object-assign-pollyfill.js' type='text/javascript'></script> - <script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script> - <script src='lib/jquery.slideto.min.js' type='text/javascript'></script> - <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script> - <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script> - <script src='lib/handlebars-4.0.5.js' type='text/javascript'></script> - <script src='lib/lodash.min.js' type='text/javascript'></script> - <script src='lib/backbone-min.js' type='text/javascript'></script> - <script src='swagger-ui.js' type='text/javascript'></script> - <script src='lib/highlight.9.1.0.pack.js' type='text/javascript'></script> - <script src='lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script> - <script src='lib/jsoneditor.min.js' type='text/javascript'></script> - <script src='lib/marked.js' type='text/javascript'></script> - <script src='lib/swagger-oauth.js' type='text/javascript'></script> - - <!-- Some basic translations --> - <!-- <script src='lang/translator.js' type='text/javascript'></script> --> - <!-- <script src='lang/ru.js' type='text/javascript'></script> --> - <!-- <script src='lang/en.js' type='text/javascript'></script> --> - - <script type="text/javascript"> - $(function () { - // <ApacheSyncope> - /*var url = window.location.search.match(/url=([^&]+)/); - if (url && url.length > 1) { - url = decodeURIComponent(url[1]); - } else { - url = "http://petstore.swagger.io/v2/swagger.json"; - }*/ - var url = window.location.href.substring(0, window.location.href.lastIndexOf('/')) + "/../rest/swagger.json"; - // </ApacheSyncope> - - hljs.configure({ - highlightSizeThreshold: 5000 - }); - - // Pre load translate... - if(window.SwaggerTranslator) { - window.SwaggerTranslator.translate(); - } - window.swaggerUi = new SwaggerUi({ - url: url, - dom_id: "swagger-ui-container", - supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'], - onComplete: function(swaggerApi, swaggerUi){ - if(typeof initOAuth == "function") { - initOAuth({ - clientId: "your-client-id", - clientSecret: "your-client-secret-if-required", - realm: "your-realms", - appName: "your-app-name", - scopeSeparator: " ", - additionalQueryStringParams: {} - }); - } - - if(window.SwaggerTranslator) { - window.SwaggerTranslator.translate(); - } - - // <ApacheSyncope> - addApiKeyAuthorization(); - // </ApacheSyncope> - }, - onFailure: function(data) { - log("Unable to Load SwaggerUI"); - }, - docExpansion: "none", - jsonEditor: false, - defaultModelRendering: 'schema', - showRequestHeaders: false, - showOperationIds: false - }); - - // <ApacheSyncope> - function addApiKeyAuthorization() { - var username = $('#input_username').val().trim(); - var password = $('#input_password').val().trim(); - if (username !== "" && password !== "") { - window.swaggerUi.api.clientAuthorizations.add( - "basicAuth", new SwaggerClient.PasswordAuthorization(username, password)); - } - } - - $("#input_username").blur(function () { - addApiKeyAuthorization(); - }); - $("#input_password").blur(function () { - addApiKeyAuthorization(); - }); - // </ApacheSyncope> - - window.swaggerUi.load(); - - function log() { - if ('console' in window) { - console.log.apply(console, arguments); - } - } - }); - </script> + <!-- </ApacheSyncope> --> + <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+Web:400,600,700" rel="stylesheet"> + <link rel="stylesheet" type="text/css" href="./swagger-ui.css" > + <link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" /> + <link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" /> + <style> + html + { + box-sizing: border-box; + overflow: -moz-scrollbars-vertical; + overflow-y: scroll; + } + *, + *:before, + *:after + { + box-sizing: inherit; + } + + body { + margin:0; + background: #fafafa; + } + + // <ApacheSyncope> + .download-url-input { + pointer-events:none !important; + } + .download-url-button { + pointer-events:none !important; + } + .download-url-wrapper { + display: none !important; + } + // </ApacheSyncope> + </style> </head> -<body class="swagger-section"> -<div id='header'> - <div class="swagger-ui-wrap"> - <a id="logo" href="http://swagger.io"><img class="logo__img" alt="swagger" height="30" width="30" src="images/logo_small.png" /><span class="logo__title">swagger</span></a> - <form id='api_selector'> - <!-- <ApacheSyncope --> - <!--<div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>--> - <div class='input'><input placeholder="username" id="input_username" name="username" type="text"/></div> - <div id='auth_container'></div> - <!--<div class='input'><a id="explore" class="header__btn" href="#" data-sw-translate>Explore</a></div>--> - <div class='input'><input placeholder="password" id="input_password" name="password" type="password"/></div> - <!-- </ApacheSyncope --> - </form> - </div> -</div> - -<div id="message-bar" class="swagger-ui-wrap" data-sw-translate> </div> -<div id="swagger-ui-container" class="swagger-ui-wrap"></div> +<body> + +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position:absolute;width:0;height:0"> + <defs> + <symbol viewBox="0 0 20 20" id="unlocked"> + <path d="M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z"></path> + </symbol> + + <symbol viewBox="0 0 20 20" id="locked"> + <path d="M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z"/> + </symbol> + + <symbol viewBox="0 0 20 20" id="close"> + <path d="M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z"/> + </symbol> + + <symbol viewBox="0 0 20 20" id="large-arrow"> + <path d="M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z"/> + </symbol> + + <symbol viewBox="0 0 20 20" id="large-arrow-down"> + <path d="M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z"/> + </symbol> + + + <symbol viewBox="0 0 24 24" id="jump-to"> + <path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"/> + </symbol> + + <symbol viewBox="0 0 24 24" id="expand"> + <path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/> + </symbol> + + </defs> +</svg> + +<div id="swagger-ui"></div> + +<script src="./swagger-ui-bundle.js"> </script> +<script src="./swagger-ui-standalone-preset.js"> </script> +<script> +window.onload = function() { + + // Build a system + // <ApacheSyncope> + /*const ui = SwaggerUIBundle({ + url: window.location.href.substring(0, window.location.href.lastIndexOf('/')) + "/../rest/openapi.json", + dom_id: '#swagger-ui', + deepLinking: true, + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + })*/ + const ui = SwaggerUIBundle({ + url: window.location.href.substring(0, window.location.href.lastIndexOf('/')) + "/../rest/openapi.json", + dom_id: '#swagger-ui', + deepLinking: true, + docExpansion: 'none', + displayOperationId: true, + operationsSorter: 'alpha', + tagSorter: 'alpha', + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + }) + // </ApacheSyncope> + + window.ui = ui +} +</script> </body> + </html> http://git-wip-us.apache.org/repos/asf/syncope/blob/aa493009/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 3d252ec..f27e84c 100644 --- a/pom.xml +++ b/pom.xml @@ -365,7 +365,7 @@ under the License. <connid.ad.version>1.3.4</connid.ad.version> <connid.googleapps.version>1.4.1</connid.googleapps.version> - <cxf.version>3.1.14</cxf.version> + <cxf.version>3.1.15-SNAPSHOT</cxf.version> <jackson.version>2.9.3</jackson.version> @@ -420,7 +420,7 @@ under the License. <flowable-modeler.directory>${project.build.directory}/flowable-modeler</flowable-modeler.directory> <swagger-core.version>1.5.17</swagger-core.version> - <swagger-ui.version>2.2.10</swagger-ui.version> + <swagger-ui.version>3.8.0</swagger-ui.version> <guava.version>20.0</guava.version> <jquery.version>2.2.4</jquery.version>
