Release Jakarta M4 artifacts
[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.3.3</version>
9     </parent>
10
11     <groupId>org.onap.sdnc.northbound</groupId>
12     <artifactId>generic-resource-api-model-swagger</artifactId>
13     <version>2.3.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>
56                         org.opendaylight.mdsal.model,org.opendaylight.mdsal.binding.model.ietf,org.onap.sdnc.northbound
57                     </includeGroupIds>
58                 </configuration>
59                 <executions>
60                     <execution>
61                         <id>unpack-shared-resources</id>
62                         <goals>
63                             <goal>unpack-dependencies</goal>
64                         </goals>
65                         <phase>initialize</phase>
66                     </execution>
67                 </executions>
68             </plugin>
69             <plugin>
70                 <artifactId>maven-antrun-plugin</artifactId>
71                 <version>1.8</version>
72                 <executions>
73                     <execution>
74                         <phase>initialize</phase>
75                         <goals>
76                             <goal>run</goal>
77                         </goals>
78                     </execution>
79                 </executions>
80                 <configuration>
81                     <tasks>
82                         <!-- flatten out structure -->
83                         <move todir="${project.build.directory}/dependency" failonerror="false">
84                             <fileset dir="${project.build.directory}/dependency"/>
85                             <mapper type="flatten"/>
86                         </move>
87                         <!-- move to yang folder -->
88                         <copy todir="${project.build.directory}/yang" failonerror="false">
89                             <fileset dir="${project.build.directory}/dependency" includes="**/*.yang"/>
90                             <mapper type="flatten"/>
91                         </copy>
92                     </tasks>
93                 </configuration>
94             </plugin>
95             <plugin>
96                 <groupId>org.opendaylight.yangtools</groupId>
97                 <artifactId>yang-maven-plugin</artifactId>
98                 <version>1.2.3</version>
99                 <dependencies>
100                     <dependency>
101                         <groupId>com.fasterxml.jackson.core</groupId>
102                         <artifactId>jackson-core</artifactId>
103                         <version>${jackson.version}</version>
104                     </dependency>
105                     <dependency>
106                         <groupId>com.fasterxml.jackson.core</groupId>
107                         <artifactId>jackson-databind</artifactId>
108                         <version>${jackson.version}</version>
109                     </dependency>
110                     <dependency>
111                         <groupId>com.fasterxml.jackson.core</groupId>
112                         <artifactId>jackson-annotations</artifactId>
113                         <version>${jackson.version}</version>
114                     </dependency>
115                     <dependency>
116                         <groupId>com.fasterxml.jackson.module</groupId>
117                         <artifactId>jackson-module-jaxb-annotations</artifactId>
118                         <version>${jackson.version}</version>
119                     </dependency>
120                     <dependency>
121                         <groupId>com.fasterxml.jackson.jaxrs</groupId>
122                         <artifactId>jackson-jaxrs-base</artifactId>
123                         <version>${jackson.version}</version>
124                     </dependency>
125                     <dependency>
126                         <groupId>com.fasterxml.jackson.jaxrs</groupId>
127                         <artifactId>jackson-jaxrs-json-provider</artifactId>
128                         <version>${jackson.version}</version>
129                     </dependency>
130                     <dependency>
131                         <groupId>com.mrv.yangtools</groupId>
132                         <artifactId>swagger-maven-plugin</artifactId>
133                         <version>1.1.12</version>
134                     </dependency>
135                     <dependency>
136                         <groupId>com.github.romix</groupId>
137                         <artifactId>java-concurrent-hash-trie-map</artifactId>
138                         <version>0.2.23</version>
139                     </dependency>
140                 </dependencies>
141                 <executions>
142                     <execution>
143                         <id>yang2swagger-json</id>
144                         <goals>
145                             <goal>generate-sources</goal>
146                         </goals>
147                         <configuration>
148                             <codeGenerators>
149                                 <generator>
150                                     <codeGeneratorClass>com.mrv.yangtools.maven.gen.swagger.MavenSwaggerGenerator
151                                     </codeGeneratorClass>
152                                     <outputBaseDir>${project.basedir}/src/main/json</outputBaseDir>
153                                     <resourceBaseDir>${project.build.directory}/yang</resourceBaseDir>
154                                     <additionalConfiguration>
155                                         <api-version>${project.version}</api-version>
156                                         <base-module>${api.name}</base-module>
157                                         <swagger-format>json</swagger-format>
158                                         <path-format>odl</path-format>
159                                         <use-namespaces>true</use-namespaces>
160                                     </additionalConfiguration>
161                                 </generator>
162                             </codeGenerators>
163                             <inspectDependencies>false</inspectDependencies>
164                             <yangFilesRootDir>${project.build.directory}/yang</yangFilesRootDir>
165                         </configuration>
166                     </execution>
167                     <execution>
168                         <id>yang2swagger-yaml</id>
169                         <goals>
170                             <goal>generate-sources</goal>
171                         </goals>
172                         <configuration>
173                             <codeGenerators>
174                                 <generator>
175                                     <codeGeneratorClass>com.mrv.yangtools.maven.gen.swagger.MavenSwaggerGenerator
176                                     </codeGeneratorClass>
177                                     <outputBaseDir>${project.basedir}/src/main/yaml</outputBaseDir>
178                                     <resourceBaseDir>${project.build.directory}/yang</resourceBaseDir>
179                                     <additionalConfiguration>
180                                         <api-version>${project.version}</api-version>
181                                         <base-module>${api.name}</base-module>
182                                         <swagger-format>yaml</swagger-format>
183                                         <path-format>odl</path-format>
184                                         <use-namespaces>true</use-namespaces>
185                                     </additionalConfiguration>
186                                 </generator>
187                             </codeGenerators>
188                             <inspectDependencies>false</inspectDependencies>
189                             <yangFilesRootDir>${project.build.directory}/yang</yangFilesRootDir>
190                         </configuration>
191                     </execution>
192                 </executions>
193             </plugin>
194             <plugin>
195                 <groupId>org.codehaus.mojo</groupId>
196                 <artifactId>exec-maven-plugin</artifactId>
197                 <version>1.2.1</version>
198                 <executions>
199                     <execution>
200                         <configuration>
201                             <executable>sh</executable>
202                             <arguments>
203                                 <argument>${basedir}/fixModuleUri.sh</argument>
204                                 <argument>GENERIC-RESOURCE-API</argument>
205                                 <argument>src/main/yaml/generic-resource.yaml</argument>
206                             </arguments>
207                         </configuration>
208                         <id>fix-swagger-yaml</id>
209                         <phase>generate-resources</phase>
210                         <goals>
211                             <goal>exec</goal>
212                         </goals>
213                     </execution>
214                 </executions>
215             </plugin>
216             <plugin>
217                 <groupId>org.apache.maven.plugins</groupId>
218                 <artifactId>maven-source-plugin</artifactId>
219             </plugin>
220             <plugin>
221                 <groupId>org.codehaus.mojo</groupId>
222                 <artifactId>build-helper-maven-plugin</artifactId>
223                 <version>1.10</version>
224                 <executions>
225                     <execution>
226                         <id>attach-artifacts</id>
227                         <phase>package</phase>
228                         <goals>
229                             <goal>attach-artifact</goal>
230                         </goals>
231                         <configuration>
232                             <artifacts>
233                                 <artifact>
234                                     <file>src/main/json/${api.name}.json</file>
235                                     <type>json</type>
236                                 </artifact>
237                                 <artifact>
238                                     <file>src/main/yaml/${api.name}.yaml</file>
239                                     <type>yaml</type>
240                                 </artifact>
241                             </artifacts>
242                         </configuration>
243                     </execution>
244                 </executions>
245             </plugin>
246         </plugins>
247     </build>
248 </project>