Add swagger-sdk support for MSB service 97/13897/2
authorKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Wed, 20 Sep 2017 13:36:05 +0000 (19:06 +0530)
committerKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
Wed, 20 Sep 2017 15:49:03 +0000 (21:19 +0530)
It adds required changes to create the swagger.json
at build time for MSB services.

MSB-78

Change-Id: I84f37e01100f9b55ad231e419d6c3d3e42390a12
Signed-off-by: Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
apiroute/apiroute-service/dependency-reduced-pom.xml
apiroute/apiroute-service/pom.xml
apiroute/apiroute-service/src/main/resources/swagger.properties [new file with mode: 0644]

index 697e024..4c53010 100644 (file)
           </filters>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>properties-maven-plugin</artifactId>
+        <version>1.0.0</version>
+        <executions>
+          <execution>
+            <phase>initialize</phase>
+            <goals>
+              <goal>read-project-properties</goal>
+            </goals>
+            <configuration>
+              <files>
+                <file>${basedir}/src/main/resources/swagger.properties</file>
+              </files>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>com.github.kongchen</groupId>
+        <artifactId>swagger-maven-plugin</artifactId>
+        <version>3.1.4</version>
+        <executions>
+          <execution>
+            <phase>compile</phase>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <apiSources>
+            <apiSource>
+              <locations>${api-rest-package}</locations>
+              <schemes>http,https</schemes>
+              <host>${api-host-ip}:${api-host-port}</host>
+              <basePath>${api-base-path}</basePath>
+              <info>
+                <title>${api-title}</title>
+                <version>${api-version}</version>
+                <description>${api-description}</description>
+                <license>
+                  <name>${api-license}</name>
+                </license>
+              </info>
+              <swaggerDirectory>${basedir}/src/main/resources</swaggerDirectory>
+            </apiSource>
+          </apiSources>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-install-plugin</artifactId>
+        <version>2.3.1</version>
+        <executions>
+          <execution>
+            <id>install-file-id</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              <file>${basedir}/src/main/resources/swagger.json</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}-swagger-schema</artifactId>
+              <version>${project.version}</version>
+              <packaging>json</packaging>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
   <dependencies>
index 9f047e9..3502768 100644 (file)
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE) 
-       Licensed under the Apache License, Version 2.0 (the "License"); you may not 
-       use this file except in compliance with the License. You may obtain a copy 
-       of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-       by applicable law or agreed to in writing, software distributed under the 
-       License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-       OF ANY KIND, either express or implied. See the License for the specific 
+<!-- Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)
+       Licensed under the Apache License, Version 2.0 (the "License"); you may not
+       use this file except in compliance with the License. You may obtain a copy
+       of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+       by applicable law or agreed to in writing, software distributed under the
+       License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+       OF ANY KIND, either express or implied. See the License for the specific
        language governing permissions and limitations under the License. -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -65,7 +65,7 @@
                        <groupId>org.powermock</groupId>
                        <artifactId>powermock-api-mockito</artifactId>
                        <scope>test</scope>
-               </dependency>           
+               </dependency>
                <dependency>
                        <groupId>com.orbitz.consul</groupId>
                        <artifactId>consul-client</artifactId>
         <artifactId>commons-io</artifactId>
       </dependency>
 
+         <dependency>
+          <groupId>org.onap.msb.swagger-sdk</groupId>
+          <artifactId>swagger-sdk</artifactId>
+          <version>1.0.0-SNAPSHOT</version>
+        </dependency>
+
        </dependencies>
        <build>
                <plugins>
                                        </execution>
                                </executions>
                        </plugin>
+
+                       <!-- JSON -->
+                        <plugin>
+                                       <groupId>org.codehaus.mojo</groupId>
+                                       <artifactId>properties-maven-plugin</artifactId>
+                                       <version>1.0.0</version>
+                                         <executions>
+                                                 <execution>
+                                                       <phase>initialize</phase>
+                                                       <goals>
+                                                         <goal>read-project-properties</goal>
+                                                       </goals>
+                                                       <configuration>
+                                                         <files>
+                                                               <file>${basedir}/src/main/resources/swagger.properties</file>
+                                                         </files>
+                                                       </configuration>
+                                                 </execution>
+                                       </executions>
+                               </plugin>
+                               <plugin>
+                                       <groupId>com.github.kongchen</groupId>
+                                       <artifactId>swagger-maven-plugin</artifactId>
+                                       <version>3.1.4</version>
+                                       <configuration>
+                                               <apiSources>
+                                                 <apiSource>
+                                                               <locations>${api-rest-package}</locations>
+                                                               <schemes>http,https</schemes>
+                                                               <host>${api-host-ip}:${api-host-port}</host>
+                                                               <basePath>${api-base-path}</basePath>
+                                                               <info>
+                                                                       <title>${api-title}</title>
+                                                                       <version>${api-version}</version>
+                                                                       <description>${api-description}</description>
+                                                                       <license>
+                                                                               <name>${api-license}</name>
+                                                                       </license>
+                                                               </info>
+                                                               <swaggerDirectory>${basedir}/src/main/resources</swaggerDirectory>
+                                                       </apiSource>
+                                               </apiSources>
+                                       </configuration>
+                                       <executions>
+                                               <execution>
+                                                       <phase>compile</phase>
+                                                       <goals>
+                                                               <goal>generate</goal>
+                                                       </goals>
+                                               </execution>
+                                       </executions>
+                               </plugin>
+                               <plugin>
+                                       <groupId>org.apache.maven.plugins</groupId>
+                                       <artifactId>maven-install-plugin</artifactId>
+                                       <version>2.3.1</version>
+                                       <executions>
+                                               <execution>
+                                                       <id>install-file-id</id>
+                                                       <phase>install</phase>
+                                                       <goals>
+                                                               <goal>install-file</goal>
+                                                       </goals>
+                                                       <configuration>
+                                                               <file>${basedir}/src/main/resources/swagger.json</file>
+                                                               <groupId>${project.groupId}</groupId>
+                                                               <artifactId>${project.artifactId}-swagger-schema</artifactId>
+                                                               <version>${project.version}</version>
+                                                               <packaging>json</packaging>
+                                                       </configuration>
+                                               </execution>
+                                       </executions>
+                               </plugin>
                </plugins>
                <resources>
                        <resource>
diff --git a/apiroute/apiroute-service/src/main/resources/swagger.properties b/apiroute/apiroute-service/src/main/resources/swagger.properties
new file mode 100644 (file)
index 0000000..af46762
--- /dev/null
@@ -0,0 +1,50 @@
+#    Copyright 2017 Huawei Technologies Co., Ltd.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License");
+#    you may not use this file except in compliance with the License.
+#    You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+
+# Used to do swagger configuration.
+# Open-O Service REST API version
+api-version=1.0.0
+
+# Open-O Service REST API swagger document title
+api-title=MicroService Bus rest API
+
+# Open-O Service REST API swagger document description
+api-description=MicroService Bus rest API
+
+# Open-O Service REST API supported protocols
+api-schemas=http,https
+
+# Open-O Service REST API ROOT URI
+api-base-path=/api/microservices/v1
+
+# swagger.json URI on top of api-base-path. so final URI would as follows
+#<api-base-path>/<api-swagger-uri>/swagger.json
+api-swagger-uri=
+
+# Set the root level java package path, where REST API implemented.
+api-rest-package=org.onap.msb.apiroute
+
+# Enables swagger to scan the ROA defining the REST API
+api-rest-package-scan=true
+
+# License details emebeded in generated swagger.json
+api-license=https://wiki.onap.org/display/DW/Apache+2.0+License
+
+# if service-config-file-path does not have api-host-ip and api-host-port,
+# then ip and port defined here will be used as default
+api-host-ip=127.0.0.1
+api-host-port=80
+
+# Set the below file path to service specific configuration file path
+service-config-file-path=