4a9c0be574d5733cfe9d19d53e7c81d955c54743
[ccsdk/parent.git] / odlparent / binding-parent / 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     <!-- PLEASE READ !!!!! This file is generated from ccsdk/parent/setup/src/main/template/pom-template.xml
6         Any updates needed should be made to that template and not to the generated
7         pom.xml file -->
8     <parent>
9         <groupId>org.opendaylight.mdsal</groupId>
10         <artifactId>binding-parent</artifactId>
11         <version>4.0.17</version>
12         <relativePath/>
13     </parent>
14
15     <groupId>org.onap.ccsdk.parent</groupId>
16     <artifactId>binding-parent</artifactId>
17     <version>2.0.5-SNAPSHOT</version>
18     <packaging>pom</packaging>
19
20     <name>ONAP :: ${project.groupId} :: ${project.artifactId}</name>
21     <description>Root POM to be used in place of odlparent for CCSDK based projects</description>
22     <url>http://wiki.onap.org</url>
23     <organization>
24         <name>ONAP</name>
25     </organization>
26
27     <issueManagement>
28         <system>JIRA</system>
29         <url>https://jira.onap.org/</url>
30     </issueManagement>
31     <distributionManagement>
32         <repository>
33             <id>ecomp-releases</id>
34             <url>${onap.nexus.release-url}</url>
35         </repository>
36         <snapshotRepository>
37             <id>ecomp-snapshots</id>
38             <url>${onap.nexus.snapshot-url}</url>
39         </snapshotRepository>
40     </distributionManagement>
41
42     <properties>
43         <!-- Sonar properties -->
44         <sonar.scanner.version>3.7.0.1746</sonar.scanner.version>
45         <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
46         <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
47         <!-- Default Sonar configuration -->
48         <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml,${project.reporting.outputDirectory}/jacoco-it/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
49         <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
50         <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>
51
52         <!-- Jacoco properties -->
53         <jacoco.version>0.8.5</jacoco.version>
54
55         <!-- properties from oparent -->
56         <maven.compiler.source>8</maven.compiler.source>
57         <maven.compiler.target>8</maven.compiler.target>
58         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
59         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
60         <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
61         <!-- sitePath may be overridden in the inheriting POM if desired -->
62         <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>
63
64         <!-- If following file exist, auto-generation of swagger.json will be done -->
65         <swagger-properties>${basedir}/src/main/resources/swagger.properties</swagger-properties>
66         <!-- If following file exist, auto-generation of sdk will be done -->
67         <swagger-json>${basedir}/src/main/resources/swagger.json</swagger-json>
68         <!-- end of properties from oparent -->
69
70         <!-- ONAP repositories -->
71         <onap.nexus.host>nexus.onap.org</onap.nexus.host>
72         <onap.nexus.port>443</onap.nexus.port>
73         <onap.nexus.protocol>https</onap.nexus.protocol>
74         <onap.nexus.public-url>https://nexus.onap.org/content/groups/public</onap.nexus.public-url>
75         <onap.nexus.staging-url>https://nexus.onap.org/content/groups/staging</onap.nexus.staging-url>
76         <onap.nexus.release-url>https://nexus.onap.org/content/repositories/releases</onap.nexus.release-url>
77         <onap.nexus.snapshot-url>https://nexus.onap.org/content/repositories/snapshots</onap.nexus.snapshot-url>
78         <onap.nexus.staging.server-id>ecomp-staging</onap.nexus.staging.server-id>
79         <onap.nexus.staging.profile-id>176c31dfe190a</onap.nexus.staging.profile-id>
80
81         <!-- OpenDaylight repositories -->
82         <opendaylight.nexus.public-url>https://nexus.opendaylight.org/content/repositories/public/</opendaylight.nexus.public-url>
83         <opendaylight.nexus.snapshot-url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</opendaylight.nexus.snapshot-url>
84
85         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
86         <java.version.source>8</java.version.source>
87         <java.version.target>8</java.version.target>
88         <bundle.plugin.version>2.5.0</bundle.plugin.version>
89         <maven.compile.plugin.version>2.5.1</maven.compile.plugin.version>
90         <features.file>features.xml</features.file>
91         <jmxGeneratorPath>src/main/yang-gen-config</jmxGeneratorPath>
92         <salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath>
93         <checkstyle.skip>true</checkstyle.skip>
94
95         <!-- logging-analytics versions -->
96         <logging-analytics.version>1.6.6</logging-analytics.version>
97
98         <!-- CCSDK component versions -->
99         <ccsdk.cds.version>1.0.3</ccsdk.cds.version>
100         <ccsdk.features.version>1.0.4-SNAPSHOT</ccsdk.features.version>
101         <ccsdk.oran.a1adapter.version>1.0.2-SNAPSHOT</ccsdk.oran.a1adapter.version>
102         <ccsdk.sli.version>1.0.4</ccsdk.sli.version>
103         <ccsdk.sli.core.version>${ccsdk.sli.version}</ccsdk.sli.core.version>
104         <ccsdk.sli.adaptors.version>${ccsdk.sli.version}</ccsdk.sli.adaptors.version>
105         <ccsdk.sli.northbound.version>${ccsdk.sli.version}</ccsdk.sli.northbound.version>
106         <ccsdk.sli.plugins.version>${ccsdk.sli.version}</ccsdk.sli.plugins.version>
107         <ccsdk.distribution.version>1.0.5-SNAPSHOT</ccsdk.distribution.version>
108         <sdnctl.sli.version>${ccsdk.sli.core.version}</sdnctl.sli.version>
109         <sdnctl.aai.service.version>${ccsdk.sli.adaptors.version}</sdnctl.aai.service.version>
110         <sdnctl.dblib.version>${ccsdk.sli.core.version}</sdnctl.dblib.version>
111         <sdnctl.mdsal.resource.version>${ccsdk.sli.adaptors.version}</sdnctl.mdsal.resource.version>
112         <sdnctl.slipluginutils.version>${ccsdk.sli.core.version}</sdnctl.slipluginutils.version>
113
114         <!-- Support libraries used by OpenDaylight -->
115         <odl.controller.mdsal.version>1.10.3</odl.controller.mdsal.version>
116         <odl.mdsal.version>4.0.14</odl.mdsal.version>
117         <odl.mdsal.model.version>2.0.14</odl.mdsal.model.version>
118         <odl.netconf.restconf.version>1.10.3</odl.netconf.restconf.version>
119         <odl.netconf.netconf.version>1.7.3</odl.netconf.netconf.version>
120         <odl.netconf.sal.rest.docgen.version>1.10.3</odl.netconf.sal.rest.docgen.version>
121
122         <!-- Used by aaa, vtn -->
123         <commons.codec.version>1.13</commons.codec.version>
124         <!-- Used by netconf, ovsdb -->
125         <commons.lang3.version>3.8.1</commons.lang3.version>
126         <!-- Used by sfc, snmp4sdn; see also affinity, toolkit -->
127         <commons.lang.version>2.6</commons.lang.version>
128         <!-- Used by neutron; see also controller, vtn -->
129         <commons.net.version>3.6</commons.net.version>
130         <!-- Used by neutron -->
131         <eclipse.persistence.version>2.7.4</eclipse.persistence.version>
132         <!-- Used by aaa -->
133         <felix.dependencymanager.version>4.4.1</felix.dependencymanager.version>
134         <!-- Used by lacp, netconf, ovsdb, sfc, toolkit; see also vtn -->
135         <gson.version>2.8.5</gson.version>
136         <!-- Used by aaa, dlux, persistence, snmp4sdn, sxp -->
137         <guava.version>25.1-jre</guava.version>
138         <!-- Used by aaa, alto, netconf, ovsdb, sfc; see also affinity, defense4all,
139             integration/distribution, snmp4sdn, toolkit, ttp -->
140         <jackson.version>2.9.10</jackson.version>
141         <!-- Used by snmp4sdn, yangtools -->
142         <javassist.version>3.24.1-GA</javassist.version>
143
144         <!-- FIXME remove all dependencies for jersey 1.17 after migration all projects -->
145         <!-- Used by aaa, alto, netconf, neutron, sfc; see also affinity, defense4all, snmp4sdn, toolkit -->
146         <jersey.version>2.25.1</jersey.version>
147         <!-- Used by sfc -->
148         <jersey.client.version>2.25.1</jersey.client.version>
149
150         <!-- New packages for jersey migration 1.17 to 2.8 -->
151         <!-- appache.geronimo.bundle for DocGen -->
152         <!-- Used by aaa, iotdm, netconf, ovsdb, sfc -->
153         <org.json.version>20131018</org.json.version>
154
155         <!-- Used everywhere -->
156         <junit.version>4.12</junit.version>
157         <!-- Used by coretutorials, sfc, snmp4sdn, sxp; see also affinity, toolkit -->
158         <logback.version>1.2.3</logback.version>
159         <!-- Used by nic, sfc, sxp, tsdr -->
160         <mockito.version>1.10.19</mockito.version>
161         <!-- Used by bgpcep, netconf, ovsdb, sxp; see also opendove, toolkit -->
162         <netty.version>4.1.42.Final</netty.version>
163         <!-- Used by openflowjava, persistence, sfc, snmp4sdn, sxp; see also affinity, toolkit -->
164         <slf4j.version>1.7.25</slf4j.version>
165         <!-- Used in integration/distribution; see also affinity, snmp4sdn, toolkit, tsdr, ttp -->
166         <spring.version>4.3.25.RELEASE</spring.version>
167
168         <!-- Extra support libraries used by SDN-C -->
169         <jvnet.jaxb2.version>0.6.4</jvnet.jaxb2.version>
170         <antlr.version>4.7.2</antlr.version>
171
172         <eelf.maven.plugin.version>1.0.0</eelf.maven.plugin.version>
173
174         <!-- Managed dependency versions -->
175         <apache.httpcomponents.core.version>4.4.12</apache.httpcomponents.core.version>
176         <apache.httpcomponents.client.version>4.5.10</apache.httpcomponents.client.version>
177         <derby.version>10.14.2.0</derby.version>
178         <eelf.version>1.0.0</eelf.version>
179         <grpc.version>1.21.1</grpc.version>
180         <mariadb.connector.version>2.4.4</mariadb.connector.version>
181         <mariadb4j.version>2.4.0</mariadb4j.version>
182         <testng.version>6.14.3</testng.version>
183         <tomcat-jdbc.version>9.0.30</tomcat-jdbc.version>
184         <jetty.version>9.4.12.v20180830</jetty.version>
185         <skip.karaf.featureTest>true</skip.karaf.featureTest>
186         <dependency-list.file>direct-dependencies.txt</dependency-list.file>
187     </properties>
188
189     <dependencyManagement>
190         <dependencies>
191             <!-- Note: If value in BOM conflicts with value inherited from
192             parent pom, inherited value takes precedence.  This seems more like
193             a bug than a feature, but this is how maven 3.6 works -->
194             <dependency>
195                 <groupId>org.onap.ccsdk.parent</groupId>
196                 <artifactId>dependencies-odl-bom</artifactId>
197                 <version>2.0.5-SNAPSHOT</version>
198                 <type>pom</type>
199                 <scope>import</scope>
200             </dependency>
201             <dependency>
202                 <groupId>org.onap.logging-analytics</groupId>
203                 <artifactId>logging-slf4j</artifactId>
204                 <version>${logging-analytics.version}</version>
205             </dependency>
206             <dependency>
207                 <groupId>org.onap.logging-analytics</groupId>
208                 <artifactId>logging-filter-base</artifactId>
209                 <version>${logging-analytics.version}</version>
210             </dependency>
211             <dependency>
212                 <groupId>junit</groupId>
213                 <artifactId>junit</artifactId>
214                 <version>${junit.version}</version>
215                 <scope>test</scope>
216             </dependency>
217         </dependencies>
218     </dependencyManagement>
219
220     <repositories>
221         <repository>
222             <id>onap-public</id>
223             <url>${onap.nexus.public-url}</url>
224             <releases>
225                 <enabled>true</enabled>
226                 <updatePolicy>never</updatePolicy>
227             </releases>
228             <snapshots>
229                 <enabled>true</enabled>
230                 <updatePolicy>always</updatePolicy>
231             </snapshots>
232         </repository>
233         <repository>
234             <id>onap-staging</id>
235             <url>${onap.nexus.staging-url}</url>
236             <releases>
237                 <enabled>true</enabled>
238                 <updatePolicy>never</updatePolicy>
239             </releases>
240             <snapshots>
241                 <enabled>true</enabled>
242                 <updatePolicy>always</updatePolicy>
243             </snapshots>
244         </repository>
245         <repository>
246             <id>ecomp-release</id>
247             <name>onap-repository-releases</name>
248             <url>${onap.nexus.release-url}</url>
249             <releases>
250                 <enabled>true</enabled>
251                 <updatePolicy>never</updatePolicy>
252             </releases>
253             <snapshots>
254                 <enabled>false</enabled>
255             </snapshots>
256         </repository>
257         <repository>
258             <id>ecomp-snapshot</id>
259             <name>onap-repository-snapshots</name>
260             <url>${onap.nexus.snapshot-url}</url>
261             <releases>
262                 <enabled>false</enabled>
263             </releases>
264             <snapshots>
265                 <enabled>true</enabled>
266             </snapshots>
267         </repository>
268         <repository>
269             <id>opendaylight-mirror</id>
270             <name>opendaylight-mirror</name>
271             <url>${opendaylight.nexus.public-url}</url>
272             <releases>
273                 <enabled>true</enabled>
274                 <updatePolicy>never</updatePolicy>
275             </releases>
276             <snapshots>
277                 <enabled>false</enabled>
278             </snapshots>
279         </repository>
280         <repository>
281             <id>opendaylight-snapshot</id>
282             <name>opendaylight-snapshot</name>
283             <url>${opendaylight.nexus.snapshot-url}</url>
284             <releases>
285                 <enabled>false</enabled>
286             </releases>
287             <snapshots>
288                 <enabled>true</enabled>
289             </snapshots>
290         </repository>
291
292     </repositories>
293     <pluginRepositories>
294         <pluginRepository>
295             <id>onap-public</id>
296             <url>${onap.nexus.public-url}</url>
297             <releases>
298                 <enabled>true</enabled>
299             </releases>
300             <snapshots>
301                 <enabled>true</enabled>
302             </snapshots>
303         </pluginRepository>
304         <pluginRepository>
305             <id>onap-staging</id>
306             <url>${onap.nexus.staging-url}</url>
307             <releases>
308                 <enabled>true</enabled>
309             </releases>
310             <snapshots>
311                 <enabled>true</enabled>
312             </snapshots>
313         </pluginRepository>
314         <pluginRepository>
315             <id>onap-snapshot</id>
316             <url>${onap.nexus.snapshot-url}</url>
317             <releases>
318                 <enabled>false</enabled>
319             </releases>
320             <snapshots>
321                 <enabled>true</enabled>
322             </snapshots>
323         </pluginRepository>
324         <pluginRepository>
325             <id>opendaylight-mirror</id>
326             <name>opendaylight-mirror</name>
327             <url>${opendaylight.nexus.public-url}</url>
328             <releases>
329                 <enabled>true</enabled>
330                 <updatePolicy>never</updatePolicy>
331             </releases>
332             <snapshots>
333                 <enabled>false</enabled>
334             </snapshots>
335         </pluginRepository>
336         <pluginRepository>
337             <id>opendaylight-snapshot</id>
338             <name>opendaylight-snapshot</name>
339             <url>${opendaylight.nexus.snapshot-url}</url>
340             <releases>
341                 <enabled>false</enabled>
342             </releases>
343             <snapshots>
344                 <enabled>true</enabled>
345             </snapshots>
346         </pluginRepository>
347         <!-- Black Duck plugin dependencies -->
348         <pluginRepository>
349             <id>JCenter</id>
350             <name>JCenter Repository</name>
351             <url>http://jcenter.bintray.com</url>
352         </pluginRepository>
353
354         <pluginRepository>
355             <id>Restlet</id>
356             <name>Restlet Repository</name>
357             <url>http://maven.restlet.com</url>
358         </pluginRepository>
359     </pluginRepositories>
360
361     <build>
362         <pluginManagement>
363             <plugins>
364                 <!-- Plugins from ONAP version (parent of oparent) -->
365                 <plugin>
366                     <groupId>org.apache.maven.plugins</groupId>
367                     <artifactId>maven-deploy-plugin</artifactId>
368                     <!-- This version supports the "deployAtEnd" parameter -->
369                     <version>2.8</version>
370                     <configuration>
371                         <skip/>
372                     </configuration>
373                 </plugin>
374                 <plugin>
375                     <groupId>org.apache.maven.plugins</groupId>
376                     <artifactId>maven-site-plugin</artifactId>
377                     <version>3.6</version>
378                     <dependencies>
379                         <dependency>
380                             <groupId>org.apache.maven.wagon</groupId>
381                             <artifactId>wagon-webdav-jackrabbit</artifactId>
382                             <version>2.10</version>
383                         </dependency>
384                     </dependencies>
385                 </plugin>
386                 <plugin>
387                     <groupId>org.apache.maven.plugins</groupId>
388                     <artifactId>maven-enforcer-plugin</artifactId>
389                     <version>3.0.0-M2</version>
390                     <executions>
391                         <execution>
392                             <id>enforce-property</id>
393                             <goals>
394                                 <goal>enforce</goal>
395                             </goals>
396                             <configuration>
397                                 <rules>
398                                     <requireProperty>
399                                         <property>onap.nexus.url</property>
400                                         <message>You must set a onap.nexus.url property in your
401                                             ~/.m2/settings.xml. See oparent/settings.xml for an example.
402                                         </message>
403                                     </requireProperty>
404                                 </rules>
405                                 <fail>true</fail>
406                             </configuration>
407                         </execution>
408                         <execution>
409                             <id>enforce-no-snapshots</id>
410                             <goals>
411                                 <goal>enforce</goal>
412                             </goals>
413                             <configuration>
414                                 <rules>
415                                     <requireReleaseDeps>
416                                         <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
417                                         <onlyWhenRelease>true</onlyWhenRelease>
418                                         <level>WARN</level>
419                                     </requireReleaseDeps>
420                                 </rules>
421                             </configuration>
422                         </execution>
423                         <execution>
424                             <id>enforce-maven</id>
425                             <goals>
426                             <goal>enforce</goal>
427                             </goals>
428                             <configuration>
429                             <rules>
430                                 <requireJavaVersion>
431                                 <version>8</version>
432                                 </requireJavaVersion>
433                                 <requireMavenVersion>
434                                 <version>[3.5.0,)</version>
435                                 </requireMavenVersion>
436                             </rules>
437                             </configuration>
438                         </execution>
439                         <execution>
440                             <id>enforce-banned-dependencies</id>
441                             <goals>
442                             <goal>enforce</goal>
443                             </goals>
444                             <configuration>
445                             <rules>
446                                 <bannedDependencies>
447                                 <message>Please always use mockito-core instead of mockito-all (see https://bugs.opendaylight.org/show_bug.cgi?id=7662), and spotbugs:annotations instead of findbugs:annotations</message>
448                                 <excludes>
449                                     <exclude>org.mockito:mockito-all</exclude>
450                 <!--                     <exclude>com.google.code.findbugs:annotations</exclude> -->
451                                 </excludes>
452                                 </bannedDependencies>
453                             </rules>
454                             <fail>true</fail>
455                             </configuration>
456                         </execution>
457                     </executions>
458                 </plugin>
459                 <!-- https://mvnrepository.com/artifact/org.sonarsource.scanner.maven/sonar-maven-plugin -->
460                 <plugin>
461                     <groupId>org.sonarsource.scanner.maven</groupId>
462                     <artifactId>sonar-maven-plugin</artifactId>
463                     <version>${sonar.scanner.version}</version>
464                 </plugin>
465                 <!-- end of plugins from ONAP version (parent of oparent) -->
466
467                 <!-- Plugins from ONAP oparent -->
468                 <plugin>
469                     <groupId>org.apache.maven.plugins</groupId>
470                     <artifactId>maven-surefire-plugin</artifactId>
471                     <version>2.22.0</version>
472                     <configuration>
473                         <!-- Sets the VM argument line used when unit tests are run. -->
474                         <argLine>${surefireArgLine}</argLine>
475                         <!-- Excludes integration tests when unit tests are run. -->
476                         <excludes>
477                             <exclude>**/IT*.java</exclude>
478                         </excludes>
479                     </configuration>
480                 </plugin>
481                 <plugin>
482                     <groupId>org.apache.maven.plugins</groupId>
483                     <artifactId>maven-failsafe-plugin</artifactId>
484                     <version>2.22.0</version>
485                     <executions>
486                         <!-- Ensures that both integration-test and verify goals of the Failsafe
487                             Maven plugin are executed. -->
488                         <execution>
489                             <id>integration-tests</id>
490                             <goals>
491                                 <goal>integration-test</goal>
492                                 <goal>verify</goal>
493                             </goals>
494                             <configuration>
495                                 <!-- Sets the VM argument line used when integration tests are run. -->
496                                 <argLine>${failsafeArgLine}</argLine>
497                             </configuration>
498                         </execution>
499                     </executions>
500                 </plugin>
501
502                 <!-- End of plugins from ONAP oparent -->
503                 <plugin>
504                     <groupId>org.codehaus.mojo</groupId>
505                     <artifactId>properties-maven-plugin</artifactId>
506                     <version>1.0.0</version>
507                     <executions>
508                         <execution>
509                             <goals>
510                                 <goal>set-system-properties</goal>
511                             </goals>
512                             <configuration>
513                                 <properties>
514                                     <property>
515                                         <name>maven.wagon.http.ssl.allowall</name>
516                                         <value>${ssl.allowall}</value>
517                                     </property>
518                                     <property>
519                                         <name>maven.wagon.http.ssl.insecure</name>
520                                         <value>${ssl.insecure}</value>
521                                     </property>
522                                 </properties>
523                             </configuration>
524                         </execution>
525                     </executions>
526                 </plugin>
527
528                 <plugin>
529                     <groupId>org.codehaus.mojo</groupId>
530                     <artifactId>versions-maven-plugin</artifactId>
531                     <version>2.5</version>
532                     <configuration>
533                         <processAllModules>true</processAllModules>
534                     </configuration>
535                 </plugin>
536                 <plugin>
537                     <artifactId>maven-scm-plugin</artifactId>
538                     <version>1.8.1</version>
539                     <configuration>
540                         <tag>${project.artifactId}-${project.version}</tag>
541                     </configuration>
542                 </plugin>
543                 <plugin>
544                     <groupId>com.github.ferstl</groupId>
545                     <artifactId>depgraph-maven-plugin</artifactId>
546                     <version>3.3.0</version>
547                     <configuration>
548                         <graphFormat>text</graphFormat>
549                         <outputFileName>${dependency-list.file}</outputFileName>
550                         <outputDirectory>${project.basedir}</outputDirectory>
551                         <transitiveExcludes>*</transitiveExcludes>
552                         <showVersions>true</showVersions>
553                         <showGroupIds>true</showGroupIds>
554                     </configuration>
555                 </plugin>
556                 <plugin>
557                     <groupId>de.jacks-it-lab</groupId>
558                     <artifactId>frontend-maven-plugin</artifactId>
559                     <version>1.7.2</version>
560                 </plugin>
561                 <plugin>
562                     <groupId>com.github.alexcojocaru</groupId>
563                     <artifactId>elasticsearch-maven-plugin</artifactId>
564                     <version>6.16</version>
565                     <configuration>
566                         <version>7.1.1</version>
567                     </configuration>
568                 </plugin>
569                 <plugin>
570                     <groupId>org.apache.maven.plugins</groupId>
571                     <artifactId>maven-javadoc-plugin</artifactId>
572                     <version>3.2.0</version>
573                     <configuration>
574                         <failOnError>false</failOnError>
575                     </configuration>
576                 </plugin>
577             </plugins>
578         </pluginManagement>
579         <plugins>
580
581             <!-- Plugins from oparent version (parent of oparent) -->
582             <plugin>
583                 <groupId>org.apache.maven.plugins</groupId>
584                 <artifactId>maven-deploy-plugin</artifactId>
585             </plugin>
586             <plugin>
587                 <groupId>org.apache.maven.plugins</groupId>
588                 <artifactId>maven-site-plugin</artifactId>
589             </plugin>
590             <!-- end of plugins from oparent version (parent of oparent) -->
591
592             <!-- Plugins from oparent -->
593             <plugin>
594                 <artifactId>maven-checkstyle-plugin</artifactId>
595                 <version>2.17</version>
596                 <dependencies>
597                     <dependency>
598                         <groupId>org.onap.oparent</groupId>
599                         <artifactId>checkstyle</artifactId>
600                         <version>1.2.2</version>
601                     </dependency>
602                 </dependencies>
603                 <executions>
604                     <execution>
605                         <id>onap-license</id>
606                         <goals>
607                             <goal>check</goal>
608                         </goals>
609                         <phase>process-sources</phase>
610                         <configuration>
611                             <configLocation>onap-checkstyle/check-license.xml</configLocation>
612                             <includeResources>false</includeResources>
613                             <includeTestSourceDirectory>true</includeTestSourceDirectory>
614                             <includeTestResources>false</includeTestResources>
615                             <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
616                             <excludes>
617                             </excludes>
618                             <consoleOutput>true</consoleOutput>
619                             <failOnViolation>false</failOnViolation>
620                         </configuration>
621                     </execution>
622                     <execution>
623                         <id>onap-java-style</id>
624                         <goals>
625                             <goal>check</goal>
626                         </goals>
627                         <phase>process-sources</phase>
628                         <configuration>
629                             <!-- Use Google Java Style Guide: https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml
630                                 with minor changes -->
631                             <configLocation>onap-checkstyle/onap-java-style.xml</configLocation>
632                             <!-- <sourceDirectory> is needed so that checkstyle ignores the generated sources directory -->
633                             <sourceDirectory>${project.build.sourceDirectory}/src/main/java</sourceDirectory>
634                             <includeResources>true</includeResources>
635                             <includeTestSourceDirectory>true</includeTestSourceDirectory>
636                             <includeTestResources>true</includeTestResources>
637                             <excludes>
638                             </excludes>
639                             <consoleOutput>true</consoleOutput>
640                             <failOnViolation>false</failOnViolation>
641                         </configuration>
642                     </execution>
643                 </executions>
644             </plugin>
645             <plugin>
646                 <groupId>org.codehaus.mojo</groupId>
647                 <artifactId>build-helper-maven-plugin</artifactId>
648                 <version>1.12</version>
649             </plugin>
650             <!-- Jacoco / Sonar -->
651             <plugin>
652                 <groupId>org.jacoco</groupId>
653                 <artifactId>jacoco-maven-plugin</artifactId>
654                 <version>${jacoco.version}</version>
655                 <executions>
656                     <execution>
657                         <id>pre-unit-test</id>
658                         <goals>
659                             <goal>prepare-agent</goal>
660                         </goals>
661                         <configuration>
662                             <!-- Sets the path to the file which contains the execution data. -->
663                             <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
664                             <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. -->
665                             <propertyName>surefireArgLine</propertyName>
666                         </configuration>
667                     </execution>
668                     <!-- Ensures that the code coverage report for unit tests is created after unit tests have been run. -->
669                     <execution>
670                         <id>post-unit-test</id>
671                         <phase>test</phase>
672                         <goals>
673                             <goal>report</goal>
674                         </goals>
675                         <configuration>
676                             <!-- Sets the path to the file which contains the execution data. -->
677                             <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
678                             <!-- Sets the output directory for the code coverage report. -->
679                             <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
680                         </configuration>
681                     </execution>
682                     <execution>
683                         <id>pre-integration-test</id>
684                         <phase>pre-integration-test</phase>
685                         <goals>
686                             <goal>prepare-agent</goal>
687                         </goals>
688                         <configuration>
689                             <!-- Sets the path to the file which contains the execution data. -->
690                             <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile>
691                             <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. -->
692                             <propertyName>failsafeArgLine</propertyName>
693                         </configuration>
694                     </execution>
695                     <!-- Ensures that the code coverage report for integration tests after integration tests have been run. -->
696                     <execution>
697                         <id>post-integration-test</id>
698                         <phase>post-integration-test</phase>
699                         <goals>
700                             <goal>report</goal>
701                         </goals>
702                         <configuration>
703                             <!-- Sets the path to the file which contains the execution data. -->
704                             <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile>
705                             <!-- Sets the output directory for the code coverage report. -->
706                             <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
707                         </configuration>
708                     </execution>
709                     <execution>
710                         <id>default-prepare-agent</id>
711                         <goals>
712                             <goal>prepare-agent</goal>
713                         </goals>
714                     </execution>
715                     <execution>
716                         <id>default-report</id>
717                         <phase>prepare-package</phase>
718                         <goals>
719                             <goal>report</goal>
720                         </goals>
721                     </execution>
722                     <execution>
723                         <id>default-check</id>
724                         <goals>
725                             <goal>check</goal>
726                         </goals>
727                         <configuration>
728                             <rules>
729                                 <rule>
730                                     <element>PACKAGE</element>
731                                     <limits>
732                                         <limit>
733                                             <counter>COMPLEXITY</counter>
734                                             <value>COVEREDRATIO</value>
735                                             <minimum>0.0</minimum>
736                                         </limit>
737                                     </limits>
738                                 </rule>
739                             </rules>
740                         </configuration>
741                     </execution>
742                 </executions>
743             </plugin>
744             <plugin>
745                 <groupId>org.apache.maven.plugins</groupId>
746                 <artifactId>maven-surefire-plugin</artifactId>
747             </plugin>
748             <plugin>
749                 <groupId>org.apache.maven.plugins</groupId>
750                 <artifactId>maven-failsafe-plugin</artifactId>
751             </plugin>
752             <!-- end of plugins from oparent -->
753             <plugin>
754                 <groupId>org.apache.maven.plugins</groupId>
755                 <artifactId>maven-javadoc-plugin</artifactId>
756                 <executions>
757                     <execution>
758                         <id>attach-javadocs</id>
759                         <goals>
760                             <goal>jar</goal>
761                         </goals>
762                         <configuration>
763                             <additionalparam>-Xdoclint:none</additionalparam>
764                         </configuration>
765                     </execution>
766                 </executions>
767             </plugin>
768             <plugin>
769                 <artifactId>maven-enforcer-plugin</artifactId>
770                 <version>3.0.0-M2</version>
771                 <executions>
772                     <execution>
773                         <id>enforce-property</id>
774                         <goals>
775                             <goal>enforce</goal>
776                         </goals>
777                         <configuration>
778                             <rules>
779                                 <requireProperty>
780                                     <property>onap.nexus.url</property>
781                                     <message>You must set a onap.nexus.url property in your
782                                         ~/.m2/settings.xml. See oparent/settings.xml for an example.</message>
783                                 </requireProperty>
784                             </rules>
785                             <fail>true</fail>
786                         </configuration>
787                     </execution>
788                     <execution>
789                         <id>enforce-no-snapshots</id>
790                         <goals>
791                             <goal>enforce</goal>
792                         </goals>
793                         <configuration>
794                             <rules>
795                                 <requireReleaseDeps>
796                                     <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
797                                     <onlyWhenRelease>true</onlyWhenRelease>
798                                     <level>WARN</level>
799                                 </requireReleaseDeps>
800                             </rules>
801                         </configuration>
802                     </execution>
803                     <execution>
804                         <id>enforce-maven</id>
805                         <goals>
806                             <goal>enforce</goal>
807                         </goals>
808                         <configuration>
809                             <rules>
810                                 <requireJavaVersion>
811                                     <version>1.8.0</version>
812                                 </requireJavaVersion>
813                                 <requireMavenVersion>
814                                     <version>[3.5.0,)</version>
815                                 </requireMavenVersion>
816                             </rules>
817                         </configuration>
818                     </execution>
819                     <execution>
820                         <id>enforce-banned-dependencies</id>
821                         <goals>
822                             <goal>enforce</goal>
823                         </goals>
824                         <configuration>
825                             <rules>
826                                 <bannedDependencies>
827                                     <message>Please always use mockito-core instead of mockito-all (see https://bugs.opendaylight.org/show_bug.cgi?id=7662), and spotbugs:annotations instead of findbugs:annotations</message>
828                                     <excludes>
829                                         <exclude>org.mockito:mockito-all</exclude>
830                                         <!-- <exclude>com.google.code.findbugs:annotations</exclude> -->
831                                     </excludes>
832                                 </bannedDependencies>
833                             </rules>
834                             <fail>true</fail>
835                         </configuration>
836                     </execution>
837                 </executions>
838             </plugin>
839             <plugin>
840                 <groupId>pl.project13.maven</groupId>
841                 <artifactId>git-commit-id-plugin</artifactId>
842                 <version>4.0.0</version>
843                 <configuration>
844                     <commitIdGenerationMode>full</commitIdGenerationMode>
845                     <includeOnlyProperties>
846                         <includeOnlyProperty>^git.build.(time|version)$</includeOnlyProperty>
847                         <includeOnlyProperty>^git.commit.id.(abbrev|full)$</includeOnlyProperty>
848                     </includeOnlyProperties>
849                 </configuration>
850             </plugin>
851         </plugins>
852     </build>
853
854     <reporting>
855         <plugins>
856             <plugin>
857                 <artifactId>maven-javadoc-plugin</artifactId>
858                 <configuration>
859                     <failOnError>false</failOnError>
860                     <additionalparam>-Xdoclint:none</additionalparam>
861                 </configuration>
862             </plugin>
863         </plugins>
864     </reporting>
865
866     <profiles>
867         <!-- Profiles from ONAP oparent -->
868         <profile>
869             <id>generate-json</id>
870             <activation>
871                 <file>
872                     <exists>${swagger-properties}</exists>
873                 </file>
874                 <property>
875                     <name>swagger-sdk.generate-json</name>
876                 </property>
877             </activation>
878             <build>
879                 <plugins>
880                     <plugin>
881                         <groupId>org.codehaus.mojo</groupId>
882                         <artifactId>properties-maven-plugin</artifactId>
883                         <version>1.0.0</version>
884                         <executions>
885                             <execution>
886                                 <phase>initialize</phase>
887                                 <goals>
888                                     <goal>read-project-properties</goal>
889                                 </goals>
890                                 <configuration>
891                                     <files>
892                                         <file>${basedir}/src/main/resources/swagger.properties</file>
893                                     </files>
894                                 </configuration>
895                             </execution>
896                         </executions>
897                     </plugin>
898                     <plugin>
899                         <groupId>com.github.kongchen</groupId>
900                         <artifactId>swagger-maven-plugin</artifactId>
901                         <version>3.1.4</version>
902                         <configuration>
903                             <apiSources>
904                                 <apiSource>
905                                     <locations>${api-rest-package}</locations>
906                                     <schemes>http,https</schemes>
907                                     <host>${api-host-ip}:${api-host-port}</host>
908                                     <basePath>${api-base-path}</basePath>
909                                     <info>
910                                         <title>${api-title}</title>
911                                         <version>${api-version}</version>
912                                         <description>${api-description}</description>
913                                         <license>
914                                             <name>${api-license}</name>
915                                         </license>
916                                     </info>
917                                     <swaggerDirectory>${basedir}/src/main/resources</swaggerDirectory>
918                                 </apiSource>
919                             </apiSources>
920                         </configuration>
921                         <executions>
922                             <execution>
923                                 <phase>compile</phase>
924                                 <goals>
925                                     <goal>generate</goal>
926                                 </goals>
927                             </execution>
928                         </executions>
929                     </plugin>
930                     <plugin>
931                         <groupId>org.apache.maven.plugins</groupId>
932                         <artifactId>maven-install-plugin</artifactId>
933                         <version>2.3.1</version>
934                         <executions>
935                             <execution>
936                                 <id>install-file-id</id>
937                                 <phase>install</phase>
938                                 <goals>
939                                     <goal>install-file</goal>
940                                 </goals>
941                                 <configuration>
942                                     <file>${basedir}/src/main/resources/swagger.json</file>
943                                     <groupId>${project.groupId}</groupId>
944                                     <artifactId>${project.artifactId}-swagger-schema</artifactId>
945                                     <version>${project.version}</version>
946                                     <packaging>json</packaging>
947                                 </configuration>
948                             </execution>
949                         </executions>
950                     </plugin>
951                 </plugins>
952             </build>
953         </profile>
954         <profile>
955             <id>generate-sdk</id>
956             <activation>
957                 <file>
958                     <exists>${swagger-json}</exists>
959                 </file>
960                 <property>
961                     <name>swagger-sdk.generate-java-sdk</name>
962                 </property>
963             </activation>
964             <build>
965                 <plugins>
966                     <plugin>
967                         <groupId>org.apache.maven.plugins</groupId>
968                         <artifactId>maven-antrun-plugin</artifactId>
969                         <version>1.8</version>
970                         <executions>
971                             <execution>
972                                 <phase>initialize</phase>
973                                 <id>ant-create-script</id>
974                                 <configuration>
975                                     <exportAntProperties>true</exportAntProperties>
976                                     <tasks>
977                                         <taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="maven.plugin.classpath"/>
978                                         <condition property="is_windows" value="true">
979                                             <os family="windows"/>
980                                         </condition>
981                                         <condition property="isLinux" value="true">
982                                             <os family="unix"/>
983                                         </condition>
984                                         <if>
985                                             <equals arg1="${is_windows}" arg2="true"/>
986                                             <then>
987                                                 <property name="swagger.sdk.script.file" value="generated-source-script.bat"/>
988                                                 <echo file="${project.build.directory}${file.separator}generated-source-script.bat" append="true"
989                                                   message="cd ${project.build.directory}${file.separator}generated-sources${line.separator}"/>
990                                                 <echo file="${project.build.directory}${file.separator}generated-source-script.bat" append="true"
991                                                   message="mvn clean install -Dmaven.test.skip=true${line.separator}"/>
992                                             </then>
993                                             <else>
994                                                 <property name="swagger.sdk.script.file" value="generated-source-script.sh"/>
995                                                 <echo file="${project.build.directory}${file.separator}generated-source-script.sh" append="true"
996                                                   message="cd ${project.build.directory}${file.separator}generated-sources${line.separator}"/>
997                                                 <echo file="${project.build.directory}${file.separator}generated-source-script.sh" append="true"
998                                                   message="mvn clean install -Dmaven.test.skip=true${line.separator}"/>
999                                                 <chmod file="${project.build.directory}${file.separator}generated-source-script.sh" perm="755"/>
1000                                             </else>
1001                                         </if>
1002                                     </tasks>
1003                                 </configuration>
1004                                 <goals>
1005                                     <goal>run</goal>
1006                                 </goals>
1007                             </execution>
1008                         </executions>
1009                         <dependencies>
1010                             <dependency>
1011                                 <groupId>ant-contrib</groupId>
1012                                 <artifactId>ant-contrib</artifactId>
1013                                 <version>1.0b3</version>
1014                                 <exclusions>
1015                                     <exclusion>
1016                                         <groupId>ant</groupId>
1017                                         <artifactId>ant</artifactId>
1018                                     </exclusion>
1019                                 </exclusions>
1020                             </dependency>
1021                         </dependencies>
1022                     </plugin>
1023                     <plugin>
1024                         <groupId>io.swagger</groupId>
1025                         <artifactId>swagger-codegen-maven-plugin</artifactId>
1026                         <version>2.2.1</version>
1027                         <executions>
1028                             <execution>
1029                                 <goals>
1030                                     <goal>generate</goal>
1031                                 </goals>
1032                                 <configuration>
1033                                     <inputSpec>${basedir}/src/main/resources/swagger.json</inputSpec>
1034                                     <output>${project.build.directory}/generated-sources</output>
1035                                     <language>java</language>
1036                                     <configOptions>
1037                                         <dateLibrary>joda</dateLibrary>
1038                                     </configOptions>
1039                                     <library>jersey2</library>
1040                                     <groupId>${project.groupId}</groupId>
1041                                     <artifactId>${project.artifactId}-java-sdk</artifactId>
1042                                     <artifactVersion>${project.version}</artifactVersion>
1043                                     <modelPackage>${project.groupId}.${project.artifactId}.client.model</modelPackage>
1044                                     <apiPackage>${project.groupId}.${project.artifactId}.client.api</apiPackage>
1045                                     <invokerPackage>${project.groupId}.${project.artifactId}.client.invoker</invokerPackage>
1046                                 </configuration>
1047                             </execution>
1048                         </executions>
1049                     </plugin>
1050                     <plugin>
1051                         <groupId>org.codehaus.mojo</groupId>
1052                         <artifactId>exec-maven-plugin</artifactId>
1053                         <version>1.5.0</version>
1054                         <executions>
1055                             <execution>
1056                                 <id>swagger-generate-sources</id>
1057                                 <phase>generate-sources</phase>
1058                                 <goals>
1059                                     <goal>exec</goal>
1060                                 </goals>
1061                                 <configuration>
1062                                     <executable>${project.build.directory}${file.separator}${swagger.sdk.script.file}</executable>
1063                                 </configuration>
1064                             </execution>
1065                         </executions>
1066                     </plugin>
1067                     <plugin>
1068                         <groupId>org.apache.maven.plugins</groupId>
1069                         <artifactId>maven-clean-plugin</artifactId>
1070                         <version>3.0.0</version>
1071                         <executions>
1072                             <execution>
1073                                 <id>clean-generated-files</id>
1074                                 <phase>generate-sources</phase>
1075                                 <goals>
1076                                     <goal>clean</goal>
1077                                 </goals>
1078                                 <configuration>
1079                                     <filesets>
1080                                         <fileset>
1081                                             <directory>${project.build.directory}/generated-sources</directory>
1082                                         </fileset>
1083                                     </filesets>
1084                                 </configuration>
1085                             </execution>
1086                         </executions>
1087                     </plugin>
1088                 </plugins>
1089             </build>
1090             <dependencies>
1091                 <dependency>
1092                     <groupId>org.onap.msb.swagger-sdk</groupId>
1093                     <artifactId>swagger-sdk</artifactId>
1094                     <version>1.0.0</version>
1095                 </dependency>
1096             </dependencies>
1097         </profile>
1098         <profile>
1099             <id>sonar-jacoco-aggregate</id>
1100             <activation>
1101                 <property>
1102                     <name>onap.jacoco.aggregateFile</name>
1103                 </property>
1104             </activation>
1105             <build>
1106                 <plugins>
1107                     <plugin>
1108                         <groupId>org.jacoco</groupId>
1109                         <artifactId>jacoco-maven-plugin</artifactId>
1110                         <executions>
1111                             <execution>
1112                                 <id>merge</id>
1113                                 <goals>
1114                                     <goal>merge</goal>
1115                                 </goals>
1116                                 <phase>generate-resources</phase>
1117                                 <configuration>
1118                                     <destFile>${onap.jacoco.aggregateFile}</destFile>
1119                                     <fileSets>
1120                                         <fileSet>
1121                                             <directory>${project.basedir}</directory>
1122                                             <includes>
1123                                                 <include>**/target/code-coverage/*.exec</include>
1124                                             </includes>
1125                                         </fileSet>
1126                                     </fileSets>
1127                                 </configuration>
1128                             </execution>
1129                         </executions>
1130                     </plugin>
1131                 </plugins>
1132             </build>
1133         </profile>
1134         <!-- End of profiles from ONAP oparent -->
1135
1136         <profile>
1137             <id>yang-compile</id>
1138             <activation>
1139                 <file>
1140                     <exists>src/main/yang</exists>
1141                 </file>
1142             </activation>
1143             <build>
1144                 <plugins>
1145                     <plugin>
1146                         <groupId>org.opendaylight.yangtools</groupId>
1147                         <artifactId>yang-maven-plugin</artifactId>
1148                         <version>3.0.11</version>
1149                         <dependencies>
1150                             <dependency>
1151                                 <groupId>org.opendaylight.mdsal</groupId>
1152                                 <artifactId>maven-sal-api-gen-plugin</artifactId>
1153                                 <version>${odl.mdsal.model.version}</version>
1154                                 <type>jar</type>
1155                                 <scope>compile</scope>
1156                             </dependency>
1157                             <dependency>
1158                                 <groupId>org.opendaylight.netconf</groupId>
1159                                 <artifactId>sal-rest-docgen-maven</artifactId>
1160                                 <version>${odl.netconf.sal.rest.docgen.version}</version>
1161                                 <type>jar</type>
1162                             </dependency>
1163                         </dependencies>
1164                         <executions>
1165                             <execution>
1166                                 <id>binding</id>
1167                                 <goals>
1168                                     <goal>generate-sources</goal>
1169                                 </goals>
1170                                 <configuration>
1171                                     <yangFilesRootDir>${yang.file.directory}</yangFilesRootDir>
1172                                     <codeGenerators>
1173                                         <generator>
1174                                             <codeGeneratorClass>org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
1175                                             <outputBaseDir>${salGeneratorPath}</outputBaseDir>
1176                                         </generator>
1177                                         <generator>
1178                                             <codeGeneratorClass>org.opendaylight.netconf.sal.rest.doc.maven.StaticDocGenerator</codeGeneratorClass>
1179                                             <outputBaseDir>target/swagger</outputBaseDir>
1180                                         </generator>
1181                                     </codeGenerators>
1182                                     <inspectDependencies>true</inspectDependencies>
1183                                 </configuration>
1184                             </execution>
1185                         </executions>
1186                     </plugin>
1187                 </plugins>
1188             </build>
1189         </profile>
1190     </profiles>
1191 </project>