syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ilgro...@apache.org
Subject [2/2] syncope git commit: [SYNCOPE-1262] Taking the SwaggerToOpenApiConversionFilter approach
Date Fri, 05 Jan 2018 10:55:16 GMT
[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/a8dd6b79
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/a8dd6b79
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/a8dd6b79

Branch: refs/heads/master
Commit: a8dd6b794e85488e2281de4a2027d727fcdbd061
Parents: e975c6c
Author: Francesco Chicchiriccò <ilgrosso@apache.org>
Authored: Fri Jan 5 11:48:07 2018 +0100
Committer: Francesco Chicchiriccò <ilgrosso@apache.org>
Committed: Fri Jan 5 11:55:02 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/a8dd6b79/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 1b2e17f..2b79b31 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/a8dd6b79/ext/swagger-ui/pom.xml
----------------------------------------------------------------------
diff --git a/ext/swagger-ui/pom.xml b/ext/swagger-ui/pom.xml
index 65fd446..47344a1 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="&#xA;var matrixstring = '';&#xA;
for (var i = 0; i &lt; this.parameters.length; i++) {&#xA; var param = this.parameters[i];&#xA;
&#xA; if (param.in === 'matrix') {&#xA; matrixstring += ';' + this.encodeQueryParam(param.name)
+ '=' + this.encodeQueryParam(args[param.name]);&#xA; }&#xA; }&#xA; &#xA;
var url = this.scheme + '://' + this.host;&#xA; &#xA; if (this.basePath !== '/') {&#xA;
url += this.basePath;&#xA; }&#xA; 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/a8dd6b79/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>&nbsp;</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/a8dd6b79/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 10f3f05..3220bc4 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.2.1</cxf.version>
+    <cxf.version>3.2.2-SNAPSHOT</cxf.version>
 
     <jackson.version>2.9.3</jackson.version>
 
@@ -416,7 +416,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>


Mime
View raw message