97285b98679f5c5105c3feddadb673af0d623014
[sdnc/northbound.git] / generic-resource-api / model / swagger / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <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">
3     <modelVersion>4.0.0</modelVersion>
4
5     <parent>
6         <groupId>org.onap.ccsdk.parent</groupId>
7         <artifactId>oparent</artifactId>
8         <version>2.1.1-SNAPSHOT</version>
9     </parent>
10
11     <groupId>org.onap.sdnc.northbound</groupId>
12     <artifactId>generic-resource-api-model-swagger</artifactId>
13     <version>2.1.1-SNAPSHOT</version>
14     <packaging>jar</packaging>
15
16     <name>sdnc-northbound :: generic-resource-api:: ${project.artifactId}</name>
17     <description>Generates swagger model from yang model</description>
18     <url>http://wiki.onap.org</url>
19
20     <properties>
21         <api.name>generic-resource</api.name>
22         <jackson.version>2.9.5</jackson.version>
23     </properties>
24
25     <dependencies>
26         <!-- This is where the yang comes from -->
27         <dependency>
28             <groupId>${project.groupId}</groupId>
29             <artifactId>generic-resource-api-model-yang</artifactId>
30             <version>${project.version}</version>
31         </dependency>
32         <!-- End this is where the yang comes from -->        
33     </dependencies>
34
35     <repositories>
36         <repository>
37             <id>&gt;bintray-yang2swagger-yang2swagge</id>
38             <name>bintray</name>
39             <url>https://dl.bintray.com/yang2swagger/yang2swagger</url>
40             <snapshots>
41                 <enabled>false</enabled>
42             </snapshots>
43         </repository>
44     </repositories>
45
46     <build>
47         <plugins>
48             <plugin>
49                 <groupId>org.apache.maven.plugins</groupId>
50                 <artifactId>maven-dependency-plugin</artifactId>
51                 <version>2.10</version>
52                 <configuration>
53                     <outputDirectory>${project.build.directory}/dependency</outputDirectory>
54                     <includes>**\/*.yang</includes>
55                     <includeGroupIds>org.opendaylight.mdsal.model,org.opendaylight.mdsal.binding.model.ietf,org.onap.sdnc.northbound</includeGroupIds>
56                 </configuration>
57                 <executions>
58                     <execution>
59                         <id>unpack-shared-resources</id>
60                         <goals>
61                             <goal>unpack-dependencies</goal>
62                         </goals>
63                         <phase>initialize</phase>
64                     </execution>
65                 </executions>
66             </plugin>
67             <plugin>
68                 <artifactId>maven-antrun-plugin</artifactId>
69                 <version>1.8</version>
70                 <executions>
71                     <execution>
72                         <phase>initialize</phase>
73                         <goals>
74                             <goal>run</goal>
75                         </goals>
76                     </execution>
77                 </executions>
78                 <configuration>
79                     <tasks>
80                         <!-- flatten out structure -->
81                         <move todir="${project.build.directory}/dependency" failonerror="false">
82                             <fileset dir="${project.build.directory}/dependency"/>
83                             <mapper type="flatten"/>
84                         </move>
85                         <!-- move to yang folder -->
86                         <copy todir="${project.build.directory}/yang" failonerror="false">
87                             <fileset dir="${project.build.directory}/dependency" includes="**/*.yang"/>
88                             <mapper type="flatten"/>
89                         </copy>
90                     </tasks>
91                 </configuration>
92             </plugin>
93             <plugin>
94                 <groupId>org.opendaylight.yangtools</groupId>
95                 <artifactId>yang-maven-plugin</artifactId>
96                 <version>1.2.3</version>
97                 <dependencies>
98                     <dependency>
99                         <groupId>com.fasterxml.jackson.core</groupId>
100                         <artifactId>jackson-core</artifactId>
101                         <version>${jackson.version}</version>
102                     </dependency>
103                     <dependency>
104                         <groupId>com.fasterxml.jackson.core</groupId>
105                         <artifactId>jackson-databind</artifactId>
106                         <version>${jackson.version}</version>
107                     </dependency>
108                     <dependency>
109                         <groupId>com.fasterxml.jackson.core</groupId>
110                         <artifactId>jackson-annotations</artifactId>
111                         <version>${jackson.version}</version>
112                     </dependency>
113                     <dependency>
114                         <groupId>com.fasterxml.jackson.module</groupId>
115                         <artifactId>jackson-module-jaxb-annotations</artifactId>
116                         <version>${jackson.version}</version>
117                     </dependency>
118                     <dependency>
119                         <groupId>com.fasterxml.jackson.jaxrs</groupId>
120                         <artifactId>jackson-jaxrs-base</artifactId>
121                         <version>${jackson.version}</version>
122                     </dependency>
123                     <dependency>
124                         <groupId>com.fasterxml.jackson.jaxrs</groupId>
125                         <artifactId>jackson-jaxrs-json-provider</artifactId>
126                         <version>${jackson.version}</version>
127                     </dependency>
128                     <dependency>
129                         <groupId>com.mrv.yangtools</groupId>
130                         <artifactId>swagger-maven-plugin</artifactId>
131                         <version>1.1.12</version>
132                     </dependency>
133                     <dependency>
134                         <groupId>com.github.romix</groupId>
135                         <artifactId>java-concurrent-hash-trie-map</artifactId>
136                         <version>0.2.23</version>
137                     </dependency>
138                 </dependencies>
139                 <executions>
140                     <execution>
141                         <id>yang2swagger-json</id>
142                         <goals>
143                             <goal>generate-sources</goal>
144                         </goals>
145                         <configuration>
146                             <codeGenerators>
147                                 <generator>
148                                     <codeGeneratorClass>com.mrv.yangtools.maven.gen.swagger.MavenSwaggerGenerator</codeGeneratorClass>
149                                     <outputBaseDir>${project.basedir}/src/main/json</outputBaseDir>
150                                     <resourceBaseDir>${project.build.directory}/yang</resourceBaseDir>
151                                     <additionalConfiguration>
152                                         <api-version>${project.version}</api-version>
153                                         <base-module>${api.name}</base-module>
154                                         <swagger-format>json</swagger-format>
155                                         <path-format>odl</path-format>
156                                         <use-namespaces>true</use-namespaces>
157                                     </additionalConfiguration>
158                                 </generator>
159                             </codeGenerators>
160                             <inspectDependencies>false</inspectDependencies>
161                             <yangFilesRootDir>${project.build.directory}/yang</yangFilesRootDir>
162                         </configuration>
163                     </execution>
164                     <execution>
165                         <id>yang2swagger-yaml</id>
166                         <goals>
167                             <goal>generate-sources</goal>
168                         </goals>
169                         <configuration>
170                             <codeGenerators>
171                                 <generator>
172                                     <codeGeneratorClass>com.mrv.yangtools.maven.gen.swagger.MavenSwaggerGenerator</codeGeneratorClass>
173                                     <outputBaseDir>${project.basedir}/src/main/yaml</outputBaseDir>
174                                     <resourceBaseDir>${project.build.directory}/yang</resourceBaseDir>
175                                     <additionalConfiguration>
176                                         <api-version>${project.version}</api-version>
177                                         <base-module>${api.name}</base-module>
178                                         <swagger-format>yaml</swagger-format>
179                                         <path-format>odl</path-format>
180                                         <use-namespaces>true</use-namespaces>
181                                     </additionalConfiguration>
182                                 </generator>
183                             </codeGenerators>
184                             <inspectDependencies>false</inspectDependencies>
185                             <yangFilesRootDir>${project.build.directory}/yang</yangFilesRootDir>
186                         </configuration>
187                     </execution>
188                 </executions>
189             </plugin>
190             <plugin>
191                 <groupId>org.codehaus.mojo</groupId>
192                 <artifactId>exec-maven-plugin</artifactId>
193                 <version>1.2.1</version>
194                 <executions>
195                     <execution>
196                         <configuration>
197                             <executable>sh</executable>
198                             <arguments>
199                                 <argument>${basedir}/fixModuleUri.sh</argument>
200                                 <argument>GENERIC-RESOURCE-API</argument>
201                                 <argument>src/main/yaml/generic-resource.yaml</argument>
202                             </arguments>
203                         </configuration>
204                         <id>fix-swagger-yaml</id>
205                         <phase>generate-resources</phase>
206                         <goals>
207                             <goal>exec</goal>
208                         </goals>
209                     </execution>
210                 </executions>
211             </plugin>
212             <plugin>
213                 <groupId>org.apache.maven.plugins</groupId>
214                 <artifactId>maven-source-plugin</artifactId>
215             </plugin>
216              <plugin>
217                 <groupId>org.codehaus.mojo</groupId>
218                 <artifactId>build-helper-maven-plugin</artifactId>
219                 <version>1.10</version>
220                 <executions>
221                     <execution>
222                         <id>attach-artifacts</id>
223                         <phase>package</phase>
224                         <goals>
225                             <goal>attach-artifact</goal>
226                         </goals>
227                         <configuration>
228                             <artifacts>
229                                 <artifact>
230                                     <file>src/main/json/${api.name}.json</file>
231                                     <type>json</type>
232                                 </artifact>
233                                 <artifact>
234                                     <file>src/main/yaml/${api.name}.yaml</file>
235                                     <type>yaml</type>
236                                 </artifact>
237                             </artifacts>
238                         </configuration>
239                     </execution>
240                 </executions>
241             </plugin>
242         </plugins>
243     </build>
244 </project>