76ab882094da7e60b8962f7b424197f7d33ae67a
[odlparent.git] / odlparent / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- vi: set et smarttab sw=2 tabstop=2: -->
3 <!--
4  Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
5
6  This program and the accompanying materials are made available under the
7  terms of the Eclipse Public License v1.0 which accompanies this distribution,
8  and is available at http://www.eclipse.org/legal/epl-v10.html
9 -->
10 <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">
11   <modelVersion>4.0.0</modelVersion>
12
13   <parent>
14     <groupId>org.opendaylight.odlparent</groupId>
15     <artifactId>odlparent-lite</artifactId>
16     <version>6.0.4-SNAPSHOT</version>
17     <relativePath>../odlparent-lite</relativePath>
18   </parent>
19
20   <artifactId>odlparent</artifactId>
21   <packaging>pom</packaging>
22   <name>ODL :: odlparent :: ${project.artifactId}</name>
23
24   <scm>
25     <connection>scm:git:ssh://git.opendaylight.org:29418/odlparent.git</connection>
26     <developerConnection>scm:git:ssh://git.opendaylight.org:29418/odlparent.git</developerConnection>
27     <tag>HEAD</tag>
28     <url>https://wiki.opendaylight.org/view/ODL_Root_Parent:Main</url>
29   </scm>
30
31   <!-- Variables should only be used where genuinely useful (to avoid
32        repetition); in general versions should be specified in the
33        corresponding dependencyManagement or pluginManagement element, not as
34        a variable. Duplication within odlparent doesn't count if it can be
35        managed using maven-versions-plugin. -->
36   <properties>
37     <nexus.repository.release>opendaylight.release</nexus.repository.release>
38     <nexus.repository.snapshot>opendaylight.snapshot</nexus.repository.snapshot>
39
40     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
41     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
42
43     <!-- Java Versions -->
44     <maven.compiler.release>11</maven.compiler.release>
45
46     <!-- Used in openflowplugin -->
47     <enforcer.version>3.0.0-M2</enforcer.version>
48     <!-- Used in controller, genius, infrautils, netconf, netvirt, ovsdb, serviceutils -->
49     <karaf.version>4.2.6</karaf.version>
50     <!-- Used in bgpcep, lispflowmapping -->
51     <projectinfo>2.8.1</projectinfo>
52
53     <!-- Supporting Libraries -->
54     <!-- Only used internally -->
55     <bouncycastle.version>1.64</bouncycastle.version>
56
57     <!-- JaCoCo configuration, by default tied to Sonar configuration, but can be overridden separately
58          to allow projects to report Sonar values from the entire project. -->
59     <jacoco.destFile>${project.build.directory}/code-coverage/jacoco.exec</jacoco.destFile>
60
61     <!-- Default Sonar configuration -->
62     <sonar-jacoco-listeners.version>3.8</sonar-jacoco-listeners.version>
63     <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
64     <sonar.jacoco.reportPath>${jacoco.destFile}</sonar.jacoco.reportPath>
65     <sonar.jacoco.itReportPath>${project.build.directory}/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
66
67     <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
68     <sonar.exclusions>**/gen/**,**/generated-sources/**,**/generated-test-sources/**,**/yang-gen/**,**/yang-gen-config/**,**/yang-gen-sal/**,**/yang-gen-code/**,**/pax/**</sonar.exclusions>
69
70     <!-- Opt-in code quality checks -->
71     <pmd.cpd.fail>false</pmd.cpd.fail>                  <!-- Copy/paste detection -->
72     <duplicate-finder.skip>true</duplicate-finder.skip> <!-- Classpath duplicates -->
73
74     <!-- Redirect test output to files (overridable) -->
75     <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
76
77     <!-- Opt-out from maven-checkstyle-plugin failing the build on violations. Defaults
78          to true. Set to 'false' in pom.xml of project which desires to not enforce
79          no reported violations. -->
80     <odlparent.checkstyle.enforce>true</odlparent.checkstyle.enforce>
81
82     <!-- Opt-in into modernizer-maven-plugin failing the build on violations. Defaults
83          to false. Set to 'true' in pom.xml of project which desires to enforce
84          no reported violations. -->
85     <odlparent.modernizer.enforce>false</odlparent.modernizer.enforce>
86
87     <!-- Target release for modernizer-maven-plugin. It defaults to '1.8',
88          meaning Java 8, but can be set to any version in pom.xml of project
89          which desires to override it (such as '1.11' for Java 11). -->
90     <odlparent.modernizer.target>1.8</odlparent.modernizer.target>
91
92     <!-- Opt-out from spotbugs-maven-plugin failing the build on violations. Defaults
93          to true. Set to 'false' in pom.xml of project which desires to not enforce
94          no reported violations. -->
95     <odlparent.spotbugs.enforce>true</odlparent.spotbugs.enforce>
96   </properties>
97
98   <dependencyManagement>
99     <dependencies>
100
101       <dependency>
102         <groupId>org.opendaylight.odlparent</groupId>
103         <artifactId>odlparent-artifacts</artifactId>
104         <version>6.0.4-SNAPSHOT</version>
105         <scope>import</scope>
106         <type>pom</type>
107       </dependency>
108
109       <!-- We import Karaf dependencies to ensure we converge by default on the versions used there -->
110       <dependency>
111         <groupId>org.apache.karaf.features</groupId>
112         <artifactId>framework</artifactId>
113         <version>${karaf.version}</version>
114         <scope>import</scope>
115         <type>pom</type>
116       </dependency>
117
118       <!-- Build tool dependencies (normally not here in <dependencies>,
119            but in a <dependency> in <pluginManagement> but for Checkstyle this
120            is required so that we can share the same version of Checkstyle
121            for both the Maven plugin below as well as  for custom Checkstyle
122            check rule projects, such as yangtools' checkstyle-logging) -->
123       <dependency>
124         <groupId>com.puppycrawl.tools</groupId>
125         <artifactId>checkstyle</artifactId>
126         <!-- This should match the plugin management on maven-checkstyle-plugin below -->
127         <version>8.26</version>
128       </dependency>
129
130       <!-- Testing Dependencies -->
131       <!-- JUnit, Hamcrest, Mockito and PowerMock need to be kept in sync -->
132       <dependency>
133         <groupId>junit</groupId>
134         <artifactId>junit</artifactId>
135         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
136         <version>4.13</version>
137         <scope>test</scope>
138       </dependency>
139       <dependency>
140          <groupId>org.skyscreamer</groupId>
141          <artifactId>jsonassert</artifactId>
142          <version>1.5.0</version>
143          <scope>test</scope>
144       </dependency>
145       <dependency>
146         <groupId>org.mockito</groupId>
147         <artifactId>mockito-core</artifactId>
148         <version>2.28.2</version>
149         <scope>test</scope>
150       </dependency>
151       <dependency>
152         <groupId>org.mockito</groupId>
153         <artifactId>mockito-inline</artifactId>
154         <version>2.28.2</version>
155         <scope>test</scope>
156       </dependency>
157       <dependency>
158         <groupId>org.hamcrest</groupId>
159         <artifactId>hamcrest</artifactId>
160         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
161         <version>2.2</version>
162         <scope>test</scope>
163       </dependency>
164       <dependency>
165         <groupId>org.hamcrest</groupId>
166         <artifactId>hamcrest-core</artifactId>
167         <version>2.2</version>
168         <scope>test</scope>
169       </dependency>
170       <dependency>
171         <groupId>org.hamcrest</groupId>
172         <artifactId>hamcrest-library</artifactId>
173         <version>2.2</version>
174         <scope>test</scope>
175       </dependency>
176       <dependency>
177         <groupId>com.google.truth</groupId>
178         <artifactId>truth</artifactId>
179         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
180         <version>0.43</version>
181         <scope>test</scope>
182       </dependency>
183       <dependency>
184         <groupId>com.google.truth.extensions</groupId>
185         <artifactId>truth-java8-extension</artifactId>
186         <version>0.43</version>
187         <scope>test</scope>
188       </dependency>
189       <dependency>
190         <groupId>org.awaitility</groupId>
191         <artifactId>awaitility</artifactId>
192         <version>3.0.0</version>
193         <scope>test</scope>
194       </dependency>
195       <dependency>
196         <groupId>org.awaitility</groupId>
197         <artifactId>awaitility-proxy</artifactId>
198         <version>3.0.0</version>
199         <scope>test</scope>
200       </dependency>
201       <dependency>
202         <groupId>org.powermock</groupId>
203         <artifactId>powermock-api-mockito2</artifactId>
204         <version>2.0.4</version>
205         <scope>test</scope>
206       </dependency>
207       <dependency>
208         <groupId>org.powermock</groupId>
209         <artifactId>powermock-api-support</artifactId>
210         <version>2.0.4</version>
211         <scope>test</scope>
212       </dependency>
213       <dependency>
214         <groupId>org.powermock</groupId>
215         <artifactId>powermock-core</artifactId>
216         <version>2.0.4</version>
217         <scope>test</scope>
218       </dependency>
219       <dependency>
220         <groupId>org.powermock</groupId>
221         <artifactId>powermock-module-junit4</artifactId>
222         <version>2.0.4</version>
223         <scope>test</scope>
224       </dependency>
225       <dependency>
226         <groupId>org.powermock</groupId>
227         <artifactId>powermock-reflect</artifactId>
228         <version>2.0.4</version>
229         <scope>test</scope>
230       </dependency>
231
232       <!--
233            Annotation Processors
234        -->
235       <dependency>
236         <!-- Generates immutable implementations, builders, the works -->
237         <groupId>org.immutables</groupId>
238         <artifactId>value</artifactId>
239         <classifier>annotations</classifier>
240         <!-- Keep this version in sync with annotationProcessorPaths declaration below -->
241         <version>2.7.5</version>
242         <!-- Must be provided; scope=test here breaks APT in Eclipse :( -->
243         <scope>provided</scope>
244       </dependency>
245       <dependency>
246         <!-- Same as above, except using legacy unified artifact -->
247         <!-- FIXME: ODLPARENT-217: remove this declaration -->
248         <groupId>org.immutables</groupId>
249         <artifactId>value</artifactId>
250         <!-- Keep this version in sync with annotationProcessorPaths declaration below -->
251         <version>2.7.5</version>
252         <!-- Must be provided; scope=test here breaks APT in Eclipse :( -->
253         <scope>provided</scope>
254       </dependency>
255
256       <dependency>
257         <!-- Generates META-INF/services entries for ServiceLoader -->
258         <groupId>org.kohsuke.metainf-services</groupId>
259         <artifactId>metainf-services</artifactId>
260         <!-- Keep this version in sync with annotationProcessorPaths declaration below -->
261         <version>1.8</version>
262         <optional>true</optional>
263         <scope>provided</scope>
264       </dependency>
265
266       <!--
267            Supporting Libraries
268        -->
269       <dependency>
270         <groupId>org.slf4j</groupId>
271         <artifactId>jcl-over-slf4j</artifactId>
272         <version>1.7.28</version>
273       </dependency>
274       <dependency>
275         <groupId>org.slf4j</groupId>
276         <artifactId>slf4j-api</artifactId>
277         <version>1.7.28</version>
278       </dependency>
279       <dependency>
280         <groupId>org.slf4j</groupId>
281         <artifactId>slf4j-log4j12</artifactId>
282         <version>1.7.28</version>
283       </dependency>
284       <dependency>
285         <groupId>org.slf4j</groupId>
286         <artifactId>log4j-over-slf4j</artifactId>
287         <version>1.7.28</version>
288       </dependency>
289       <dependency>
290         <groupId>org.slf4j</groupId>
291         <artifactId>slf4j-simple</artifactId>
292         <version>1.7.28</version>
293         <scope>test</scope>
294       </dependency>
295       <dependency>
296         <groupId>ch.qos.logback</groupId>
297         <artifactId>logback-core</artifactId>
298         <version>1.2.3</version>
299       </dependency>
300       <dependency>
301         <groupId>ch.qos.logback</groupId>
302         <artifactId>logback-classic</artifactId>
303         <version>1.2.3</version>
304       </dependency>
305
306       <!-- log4j2 -->
307       <dependency>
308         <groupId>org.apache.logging.log4j</groupId>
309         <artifactId>log4j-bom</artifactId>
310         <version>2.13.0</version>
311         <scope>import</scope>
312         <type>pom</type>
313       </dependency>
314
315       <dependency>
316         <groupId>com.google.guava</groupId>
317         <artifactId>guava</artifactId>
318         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
319         <version>27.1-jre</version>
320         <exclusions>
321           <exclusion>
322             <!-- Do not leak JSR305 onto the classpath by default -->
323             <groupId>com.google.code.findbugs</groupId>
324             <artifactId>jsr305</artifactId>
325           </exclusion>
326         </exclusions>
327       </dependency>
328       <dependency>
329         <groupId>com.google.guava</groupId>
330         <artifactId>guava-testlib</artifactId>
331         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
332         <version>27.1-jre</version>
333         <scope>test</scope>
334         <exclusions>
335           <exclusion>
336             <!-- Do not leak JSR305 onto the classpath by default -->
337             <groupId>com.google.code.findbugs</groupId>
338             <artifactId>jsr305</artifactId>
339           </exclusion>
340         </exclusions>
341       </dependency>
342
343       <!-- Caffeine plus bridges to Guava and JCache -->
344       <dependency>
345         <groupId>com.github.ben-manes.caffeine</groupId>
346         <artifactId>caffeine</artifactId>
347         <version>2.7.0</version>
348       </dependency>
349       <dependency>
350         <groupId>com.github.ben-manes.caffeine</groupId>
351         <artifactId>guava</artifactId>
352         <version>2.7.0</version>
353       </dependency>
354
355       <dependency>
356         <groupId>com.mycila.guice.extensions</groupId>
357         <artifactId>mycila-guice-jsr250</artifactId>
358         <!-- Make sure this version is in sync with the guice one below -->
359         <version>4.0.rc1</version>
360       </dependency>
361       <dependency>
362         <groupId>com.google.inject</groupId>
363         <artifactId>guice</artifactId>
364         <!-- Make sure this version is in sync with the one used by mycila-guice-jsr250 above
365              by checking it here: https://github.com/mycila/guice/blob/master/pom.xml#L103.
366
367              Well, mycila is dead as a dodo and we need to support Java 11. This is the best
368              we can do in the interim. -->
369         <version>4.2.2</version>
370       </dependency>
371       <dependency>
372         <groupId>commons-beanutils</groupId>
373         <artifactId>commons-beanutils</artifactId>
374         <version>1.9.4</version>
375       </dependency>
376       <dependency>
377         <groupId>org.apache.commons</groupId>
378         <artifactId>commons-lang3</artifactId>
379         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
380         <version>3.9</version>
381       </dependency>
382       <dependency>
383         <groupId>org.apache.commons</groupId>
384         <artifactId>commons-text</artifactId>
385         <version>1.8</version>
386       </dependency>
387       <dependency>
388         <groupId>commons-lang</groupId>
389         <artifactId>commons-lang</artifactId>
390         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
391         <version>2.6</version>
392       </dependency>
393       <dependency>
394         <groupId>commons-codec</groupId>
395         <artifactId>commons-codec</artifactId>
396         <version>1.13</version>
397       </dependency>
398       <!-- Jersey for JAXRS -->
399       <dependency>
400         <groupId>javax.ws.rs</groupId>
401         <artifactId>javax.ws.rs-api</artifactId>
402         <version>2.0.1</version>
403       </dependency>
404       <dependency>
405         <groupId>org.glassfish.jersey</groupId>
406         <artifactId>jersey-bom</artifactId>
407         <version>2.25.1</version>
408         <type>pom</type>
409         <scope>import</scope>
410       </dependency>
411       <dependency>
412         <groupId>org.glassfish</groupId>
413         <artifactId>javax.json</artifactId>
414         <version>1.1.2</version>
415       </dependency>
416
417       <dependency>
418         <groupId>org.checkerframework</groupId>
419         <artifactId>checker-qual</artifactId>
420         <version>2.5.8</version>
421       </dependency>
422       <dependency>
423         <groupId>com.google.errorprone</groupId>
424         <artifactId>error_prone_annotations</artifactId>
425         <version>2.3.3</version>
426       </dependency>
427
428       <dependency>
429         <groupId>javax.activation</groupId>
430         <artifactId>activation</artifactId>
431         <version>1.1.1</version>
432       </dependency>
433       <dependency>
434         <groupId>javax.annotation</groupId>
435         <artifactId>javax.annotation-api</artifactId>
436         <version>1.3</version>
437         <optional>true</optional>
438       </dependency>
439       <dependency>
440         <groupId>xml-apis</groupId>
441         <artifactId>xml-apis</artifactId>
442         <version>1.4.01</version>
443       </dependency>
444
445       <dependency>
446         <groupId>org.apache.shiro</groupId>
447         <artifactId>shiro-core</artifactId>
448         <version>1.3.2</version>
449       </dependency>
450       <dependency>
451         <groupId>org.apache.shiro</groupId>
452         <artifactId>shiro-web</artifactId>
453         <version>1.3.2</version>
454       </dependency>
455
456       <!-- Plugin integration -->
457       <dependency>
458         <groupId>net.java.dev.stax-utils</groupId>
459         <artifactId>stax-utils</artifactId>
460         <version>20070216</version>
461       </dependency>
462       <dependency>
463         <groupId>org.sonatype.plexus</groupId>
464         <artifactId>plexus-build-api</artifactId>
465         <version>0.0.7</version>
466       </dependency>
467       <dependency>
468         <groupId>org.codehaus.plexus</groupId>
469         <artifactId>plexus-slf4j-logging</artifactId>
470         <version>1.1</version>
471       </dependency>
472
473       <!-- These three need to be consistent:
474         jackson-2.9.10 needs woodstox-5.3.x
475         woodstox-5.3 needs stax2-api-4.2.x
476         -->
477       <dependency>
478         <groupId>org.codehaus.woodstox</groupId>
479         <artifactId>stax2-api</artifactId>
480         <version>4.2</version>
481       </dependency>
482       <dependency>
483         <groupId>com.fasterxml.woodstox</groupId>
484         <artifactId>woodstox-core</artifactId>
485         <version>5.3.0</version>
486       </dependency>
487       <dependency>
488         <groupId>com.fasterxml.jackson</groupId>
489         <artifactId>jackson-bom</artifactId>
490         <version>2.9.10</version>
491         <scope>import</scope>
492         <type>pom</type>
493       </dependency>
494
495       <dependency>
496         <groupId>com.github.spotbugs</groupId>
497         <artifactId>spotbugs-annotations</artifactId>
498         <version>3.1.12</version>
499         <scope>provided</scope>
500         <!-- Contains retention=RUNTIME annotations, which are not really needed -->
501         <optional>true</optional>
502         <exclusions>
503           <exclusion>
504             <groupId>com.google.code.findbugs</groupId>
505             <artifactId>jsr305</artifactId>
506           </exclusion>
507         </exclusions>
508       </dependency>
509
510       <dependency>
511         <groupId>org.eclipse.jdt</groupId>
512         <artifactId>org.eclipse.jdt.annotation</artifactId>
513         <version>2.2.100</version>
514         <scope>provided</scope>
515       </dependency>
516       <dependency>
517         <groupId>com.google.code.gson</groupId>
518         <artifactId>gson</artifactId>
519         <version>2.8.5</version>
520       </dependency>
521       <dependency>
522         <groupId>commons-fileupload</groupId>
523         <artifactId>commons-fileupload</artifactId>
524         <version>1.4</version>
525       </dependency>
526       <dependency>
527         <groupId>commons-io</groupId>
528         <artifactId>commons-io</artifactId>
529         <version>2.6</version>
530       </dependency>
531       <dependency>
532         <groupId>commons-net</groupId>
533         <artifactId>commons-net</artifactId>
534         <version>3.6</version>
535       </dependency>
536
537       <!-- Netty -->
538       <dependency>
539         <groupId>io.netty</groupId>
540         <artifactId>netty-all</artifactId>
541         <!-- If these are updated, the version in features.xml needs to be changed too -->
542         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
543         <version>4.1.45.Final</version>
544       </dependency>
545       <dependency>
546         <groupId>io.netty</groupId>
547         <artifactId>netty-buffer</artifactId>
548         <version>4.1.45.Final</version>
549       </dependency>
550       <dependency>
551         <groupId>io.netty</groupId>
552         <artifactId>netty-codec</artifactId>
553         <version>4.1.45.Final</version>
554       </dependency>
555       <dependency>
556         <groupId>io.netty</groupId>
557         <artifactId>netty-codec-http</artifactId>
558         <version>4.1.45.Final</version>
559       </dependency>
560       <dependency>
561         <groupId>io.netty</groupId>
562         <artifactId>netty-common</artifactId>
563         <version>4.1.45.Final</version>
564       </dependency>
565       <dependency>
566         <groupId>io.netty</groupId>
567         <artifactId>netty-handler</artifactId>
568         <version>4.1.45.Final</version>
569       </dependency>
570       <dependency>
571         <groupId>io.netty</groupId>
572         <artifactId>netty-transport</artifactId>
573         <version>4.1.45.Final</version>
574       </dependency>
575       <!-- Here we need to define all available native epoll implementations; we can't limit ourselves to the build
576       platform and we can't require the build platform to have an implementation (e.g. OS X) -->
577       <dependency>
578         <groupId>io.netty</groupId>
579         <artifactId>netty-transport-native-epoll</artifactId>
580         <classifier>linux-x86_64</classifier>
581         <version>4.1.45.Final</version>
582       </dependency>
583       <dependency>
584         <groupId>javax.ws.rs</groupId>
585         <artifactId>jsr311-api</artifactId>
586         <version>1.1.1</version>
587       </dependency>
588       <dependency>
589         <groupId>javax.servlet</groupId>
590         <artifactId>javax.servlet-api</artifactId>
591         <version>3.1.0</version>
592       </dependency>
593       <dependency>
594         <groupId>org.apache.felix</groupId>
595         <artifactId>org.apache.felix.dependencymanager</artifactId>
596         <version>4.4.1</version>
597       </dependency>
598       <dependency>
599         <groupId>org.apache.felix</groupId>
600         <artifactId>org.apache.felix.dependencymanager.shell</artifactId>
601         <version>4.0.6</version>
602       </dependency>
603       <dependency>
604         <groupId>org.apache.felix</groupId>
605         <artifactId>org.apache.felix.metatype</artifactId>
606         <version>1.2.2</version>
607       </dependency>
608       <dependency>
609         <groupId>org.bouncycastle</groupId>
610         <artifactId>bcpkix-jdk15on</artifactId>
611         <version>${bouncycastle.version}</version>
612       </dependency>
613       <dependency>
614         <groupId>org.bouncycastle</groupId>
615         <artifactId>bcprov-jdk15on</artifactId>
616         <version>${bouncycastle.version}</version>
617       </dependency>
618       <dependency>
619         <groupId>org.bouncycastle</groupId>
620         <artifactId>bcprov-ext-jdk15on</artifactId>
621         <version>${bouncycastle.version}</version>
622       </dependency>
623
624       <dependency>
625         <groupId>com.webcohesion.enunciate</groupId>
626         <artifactId>enunciate-core-annotations</artifactId>
627         <!-- This must be aligned with the version of enunciate-maven-plugin specified below -->
628         <version>2.11.1</version>
629       </dependency>
630
631       <dependency>
632         <groupId>org.codehaus.jettison</groupId>
633         <artifactId>jettison</artifactId>
634         <version>1.4.0</version>
635       </dependency>
636       <!-- To upgrade org.eclipse.persistence dependencies to 2.6.0+, we need to ensure all downstreams consumers
637          pull in javax.validation first:
638          http://stackoverflow.com/questions/28568154/how-to-get-eclipselink-2-6-0-m3-working-with-jersey-1-18-3 -->
639       <dependency>
640         <groupId>org.eclipse.persistence</groupId>
641         <artifactId>org.eclipse.persistence.antlr</artifactId>
642         <version>2.7.3</version>
643       </dependency>
644       <dependency>
645         <groupId>org.eclipse.persistence</groupId>
646         <artifactId>org.eclipse.persistence.core</artifactId>
647         <version>2.7.3</version>
648       </dependency>
649       <dependency>
650         <groupId>org.eclipse.persistence</groupId>
651         <artifactId>org.eclipse.persistence.moxy</artifactId>
652         <version>2.7.3</version>
653       </dependency>
654       <dependency>
655         <groupId>javax.validation</groupId>
656         <artifactId>validation-api</artifactId>
657         <version>1.1.0.Final</version>
658       </dependency>
659       <dependency>
660         <groupId>org.javassist</groupId>
661         <artifactId>javassist</artifactId>
662         <version>3.26.0-GA</version>
663       </dependency>
664       <dependency>
665         <groupId>org.jboss.spec.javax.transaction</groupId>
666         <artifactId>jboss-transaction-api_1.1_spec</artifactId>
667         <version>1.0.1.Final</version>
668       </dependency>
669       <dependency>
670         <groupId>org.jolokia</groupId>
671         <artifactId>jolokia-osgi</artifactId>
672         <version>1.6.2</version>
673       </dependency>
674       <dependency>
675         <groupId>org.osgi</groupId>
676         <artifactId>osgi.cmpn</artifactId>
677         <version>6.0.0</version>
678         <scope>provided</scope>
679       </dependency>
680       <dependency>
681         <groupId>org.osgi</groupId>
682         <artifactId>org.osgi.core</artifactId>
683         <version>6.0.0</version>
684         <scope>provided</scope>
685       </dependency>
686       <dependency>
687         <groupId>org.osgi</groupId>
688         <!-- for https://bugs.opendaylight.org/show_bug.cgi?id=4290 -->
689         <artifactId>org.osgi.service.event</artifactId>
690         <version>1.3.1</version>
691       </dependency>
692       <dependency>
693         <groupId>org.apache.aries.quiesce</groupId>
694         <artifactId>org.apache.aries.quiesce.api</artifactId>
695         <version>1.0.0</version>
696       </dependency>
697       <dependency>
698         <groupId>org.ow2.asm</groupId>
699         <artifactId>asm</artifactId>
700         <version>7.0</version>
701       </dependency>
702
703       <!-- Configuration library -->
704       <!-- This needs to be kept in sync with the version used by akka -->
705       <dependency>
706         <groupId>com.typesafe</groupId>
707         <artifactId>config</artifactId>
708         <version>1.3.3</version>
709       </dependency>
710
711       <!-- Reactive Streams, used by Akka -->
712       <dependency>
713         <groupId>org.reactivestreams</groupId>
714         <artifactId>reactive-streams</artifactId>
715         <version>1.0.3</version>
716       </dependency>
717
718       <!-- Akka -->
719       <dependency>
720         <groupId>com.typesafe</groupId>
721         <artifactId>ssl-config-core_2.12</artifactId>
722         <version>0.3.8</version>
723       </dependency>
724       <dependency>
725         <groupId>com.typesafe.akka</groupId>
726         <artifactId>akka-actor_2.12</artifactId>
727         <!-- When bumping this version, remember to also change the JavaDoc link in odlparent-lite -->
728         <version>2.5.26</version>
729       </dependency>
730       <dependency>
731         <groupId>com.typesafe.akka</groupId>
732         <artifactId>akka-cluster_2.12</artifactId>
733         <version>2.5.26</version>
734       </dependency>
735       <dependency>
736         <groupId>com.typesafe.akka</groupId>
737         <artifactId>akka-osgi_2.12</artifactId>
738         <version>2.5.26</version>
739       </dependency>
740       <dependency>
741         <groupId>com.typesafe.akka</groupId>
742         <artifactId>akka-persistence_2.12</artifactId>
743         <version>2.5.26</version>
744       </dependency>
745       <dependency>
746         <groupId>com.typesafe.akka</groupId>
747         <artifactId>akka-persistence-tck_2.12</artifactId>
748         <version>2.5.26</version>
749         <scope>test</scope>
750       </dependency>
751       <dependency>
752         <groupId>com.typesafe.akka</groupId>
753         <artifactId>akka-protobuf_2.12</artifactId>
754         <version>2.5.26</version>
755       </dependency>
756       <dependency>
757         <groupId>com.typesafe.akka</groupId>
758         <artifactId>akka-remote_2.12</artifactId>
759         <version>2.5.26</version>
760       </dependency>
761       <dependency>
762         <groupId>com.typesafe.akka</groupId>
763         <artifactId>akka-slf4j_2.12</artifactId>
764         <version>2.5.26</version>
765       </dependency>
766       <dependency>
767         <groupId>com.typesafe.akka</groupId>
768         <artifactId>akka-stream_2.12</artifactId>
769         <version>2.5.26</version>
770       </dependency>
771       <dependency>
772         <groupId>com.typesafe.akka</groupId>
773         <artifactId>akka-testkit_2.12</artifactId>
774         <version>2.5.26</version>
775         <scope>test</scope>
776       </dependency>
777       <dependency>
778         <groupId>org.scala-lang.modules</groupId>
779         <artifactId>scala-java8-compat_2.12</artifactId>
780         <version>0.8.0</version>
781       </dependency>
782       <dependency>
783         <groupId>org.scala-lang.modules</groupId>
784         <artifactId>scala-parser-combinators_2.12</artifactId>
785         <version>1.1.2</version>
786       </dependency>
787       <dependency>
788         <groupId>org.uncommons.maths</groupId>
789         <artifactId>uncommons-maths</artifactId>
790         <version>1.2.2a</version>
791       </dependency>
792
793       <!-- Aeron, required by Akka -->
794       <dependency>
795         <groupId>org.agrona</groupId>
796         <artifactId>agrona</artifactId>
797         <version>0.9.33</version>
798       </dependency>
799       <dependency>
800         <groupId>io.aeron</groupId>
801         <artifactId>aeron-client</artifactId>
802         <version>1.15.3</version>
803       </dependency>
804       <dependency>
805         <groupId>io.aeron</groupId>
806         <artifactId>aeron-driver</artifactId>
807         <version>1.15.3</version>
808       </dependency>
809
810       <!-- Scala -->
811       <dependency>
812         <groupId>org.scala-lang</groupId>
813         <artifactId>scala-library</artifactId>
814         <version>2.12.10</version>
815       </dependency>
816       <dependency>
817         <groupId>org.scala-lang</groupId>
818         <artifactId>scala-reflect</artifactId>
819         <version>2.12.10</version>
820       </dependency>
821
822       <!-- LMAX Disruptor -->
823       <dependency>
824         <groupId>com.lmax</groupId>
825         <artifactId>disruptor</artifactId>
826         <version>3.4.2</version>
827       </dependency>
828
829       <!-- Add Pax Exam -->
830       <dependency>
831         <groupId>org.ops4j.pax.exam</groupId>
832         <artifactId>pax-exam</artifactId>
833         <version>4.13.1</version>
834         <scope>test</scope>
835       </dependency>
836       <dependency>
837         <groupId>org.ops4j.pax.exam</groupId>
838         <artifactId>pax-exam-container-forked</artifactId>
839         <version>4.13.1</version>
840         <scope>test</scope>
841       </dependency>
842       <dependency>
843         <groupId>org.ops4j.pax.exam</groupId>
844         <artifactId>pax-exam-container-karaf</artifactId>
845         <version>4.13.1</version>
846         <scope>test</scope>
847       </dependency>
848       <dependency>
849         <groupId>org.ops4j.pax.exam</groupId>
850         <artifactId>pax-exam-container-native</artifactId>
851         <version>4.13.1</version>
852         <scope>test</scope>
853       </dependency>
854       <dependency>
855         <groupId>org.ops4j.pax.exam</groupId>
856         <artifactId>pax-exam-extender-service</artifactId>
857         <version>4.13.1</version>
858         <scope>test</scope>
859       </dependency>
860       <dependency>
861         <groupId>org.ops4j.pax.exam</groupId>
862         <artifactId>pax-exam-inject</artifactId>
863         <version>4.13.1</version>
864         <scope>test</scope>
865       </dependency>
866       <dependency>
867         <groupId>org.ops4j.pax.exam</groupId>
868         <artifactId>pax-exam-invoker-junit</artifactId>
869         <version>4.13.1</version>
870         <scope>test</scope>
871       </dependency>
872       <dependency>
873         <groupId>org.ops4j.pax.exam</groupId>
874         <artifactId>pax-exam-features</artifactId>
875         <version>4.13.1</version>
876         <type>xml</type>
877         <scope>test</scope>
878       </dependency>
879       <dependency>
880         <groupId>org.ops4j.pax.exam</groupId>
881         <artifactId>pax-exam-junit4</artifactId>
882         <version>4.13.1</version>
883         <scope>test</scope>
884       </dependency>
885       <dependency>
886         <groupId>org.ops4j.pax.exam</groupId>
887         <artifactId>pax-exam-link-mvn</artifactId>
888         <version>4.13.1</version>
889         <scope>test</scope>
890       </dependency>
891       <dependency>
892         <groupId>org.ops4j.pax.exam</groupId>
893         <artifactId>pax-exam-link-assembly</artifactId>
894         <version>4.13.1</version>
895         <scope>test</scope>
896       </dependency>
897
898       <dependency>
899         <groupId>org.ops4j.pax.url</groupId>
900         <artifactId>pax-url-link</artifactId>
901         <version>2.5.4</version>
902         <scope>test</scope>
903       </dependency>
904       <dependency>
905         <groupId>org.ops4j.pax.url</groupId>
906         <artifactId>pax-url-aether</artifactId>
907         <version>2.5.4</version>
908         <scope>test</scope>
909       </dependency>
910       <dependency>
911         <groupId>org.ops4j.pax.url</groupId>
912         <artifactId>pax-url-wrap</artifactId>
913         <version>2.5.4</version>
914       </dependency>
915
916       <dependency>
917         <groupId>org.ops4j.pax.web</groupId>
918         <artifactId>pax-web-api</artifactId>
919         <!-- Note: keep this version synchronized with karaf -->
920         <version>7.2.10</version>
921       </dependency>
922
923       <dependency>
924         <groupId>org.springframework.osgi</groupId>
925         <artifactId>spring-osgi-mock</artifactId>
926         <version>1.2.1</version>
927         <scope>test</scope>
928       </dependency>
929
930       <dependency>
931         <groupId>org.xmlunit</groupId>
932         <artifactId>xmlunit-core</artifactId>
933         <version>2.6.3</version>
934         <scope>test</scope>
935       </dependency>
936       <dependency>
937         <groupId>org.xmlunit</groupId>
938         <artifactId>xmlunit-assertj</artifactId>
939         <version>2.6.3</version>
940         <scope>test</scope>
941       </dependency>
942       <dependency>
943         <groupId>org.xmlunit</groupId>
944         <artifactId>xmlunit-matchers</artifactId>
945         <version>2.6.3</version>
946         <scope>test</scope>
947       </dependency>
948       <!-- FIXME: remove this once we have migrated over -->
949       <dependency>
950         <groupId>org.xmlunit</groupId>
951         <artifactId>xmlunit-legacy</artifactId>
952         <version>2.6.3</version>
953         <scope>test</scope>
954       </dependency>
955
956       <!-- Annotations for modernizer-maven-plugin -->
957       <dependency>
958         <groupId>org.gaul</groupId>
959         <artifactId>modernizer-maven-annotations</artifactId>
960         <!-- This should match the plugin version below -->
961         <version>2.0.0</version>
962         <scope>provided</scope>
963       </dependency>
964
965       <dependency>
966         <groupId>org.eclipse.jetty</groupId>
967         <artifactId>jetty-bom</artifactId>
968         <version>9.4.18.v20190429</version>
969         <scope>import</scope>
970         <type>pom</type>
971       </dependency>
972
973       <dependency>
974         <groupId>com.h2database</groupId>
975         <artifactId>h2</artifactId>
976         <version>1.4.200</version>
977       </dependency>
978
979       <!-- Xtend http://xtend-lang.org
980            NOTE: When you increase the version here,
981            then remember to also increase it for the
982            xtend-maven-plugin below! (We don't want to
983            use a Maven property, in order not to "leak" that.)
984        -->
985       <dependency>
986           <groupId>org.eclipse.xtend</groupId>
987           <artifactId>org.eclipse.xtend.lib</artifactId>
988           <version>2.19.0</version>
989       </dependency>
990       <dependency>
991           <groupId>org.eclipse.xtend</groupId>
992           <artifactId>org.eclipse.xtend.lib.macro</artifactId>
993           <version>2.19.0</version>
994       </dependency>
995       <dependency>
996           <groupId>org.eclipse.xtext</groupId>
997           <artifactId>org.eclipse.xtext.xbase.lib</artifactId>
998           <version>2.19.0</version>
999       </dependency>
1000
1001       <!-- Annotations -->
1002       <dependency>
1003         <groupId>javax.inject</groupId>
1004         <artifactId>javax.inject</artifactId>
1005         <version>1</version>
1006         <optional>true</optional>
1007       </dependency>
1008
1009       <!-- jung, a graph library -->
1010       <dependency>
1011         <groupId>net.sf.jung</groupId>
1012         <artifactId>jung-api</artifactId>
1013         <version>2.1.1</version>
1014       </dependency>
1015       <dependency>
1016         <groupId>net.sf.jung</groupId>
1017         <artifactId>jung-algorithms</artifactId>
1018         <version>2.1.1</version>
1019       </dependency>
1020       <dependency>
1021         <groupId>net.sf.jung</groupId>
1022         <artifactId>jung-graph-impl</artifactId>
1023         <version>2.1.1</version>
1024       </dependency>
1025
1026       <!-- Karaf console support -->
1027       <dependency>
1028         <groupId>org.apache.karaf.shell</groupId>
1029         <artifactId>org.apache.karaf.shell.core</artifactId>
1030         <version>${karaf.version}</version>
1031         <scope>provided</scope>
1032       </dependency>
1033       <dependency>
1034         <groupId>org.apache.karaf.shell</groupId>
1035         <artifactId>org.apache.karaf.shell.console</artifactId>
1036         <version>${karaf.version}</version>
1037         <scope>provided</scope>
1038       </dependency>
1039
1040       <!-- ThreeTen-Extra, date/time complements -->
1041       <dependency>
1042         <groupId>org.threeten</groupId>
1043         <artifactId>threeten-extra</artifactId>
1044         <version>1.5.0</version>
1045       </dependency>
1046
1047       <!-- When updating this version, consider antl4-maven-plugin below -->
1048       <dependency>
1049         <groupId>org.antlr</groupId>
1050         <artifactId>antlr4-runtime</artifactId>
1051         <version>4.7.2</version>
1052       </dependency>
1053       <!-- Aries' Blueprint version should be kept in sync to the version actually
1054            used by our ${karaf[4].version} ... please bump this when increasing that.
1055            TODO Find a smarter way to inherit this from a (TBD..) Karaf artifacts BOM! -->
1056       <dependency>
1057         <groupId>org.apache.aries.blueprint</groupId>
1058         <artifactId>org.apache.aries.blueprint.core</artifactId>
1059         <version>1.10.2</version>
1060       </dependency>
1061       <dependency>
1062         <groupId>org.apache.aries.blueprint</groupId>
1063         <artifactId>blueprint-maven-plugin-annotation</artifactId>
1064         <version>1.3.0</version>
1065         <optional>true</optional>
1066       </dependency>
1067
1068       <!-- Apache SSHD with netty -->
1069       <dependency>
1070         <groupId>org.apache.sshd</groupId>
1071         <artifactId>sshd-netty</artifactId>
1072         <version>2.3.0</version>
1073         <exclusions>
1074           <exclusion>
1075             <!-- We provide sshd-osgi instead -->
1076             <groupId>org.apache.sshd</groupId>
1077             <artifactId>sshd-core</artifactId>
1078           </exclusion>
1079         </exclusions>
1080       </dependency>
1081       <dependency>
1082         <groupId>org.apache.sshd</groupId>
1083         <artifactId>sshd-osgi</artifactId>
1084         <version>2.3.0</version>
1085       </dependency>
1086       <dependency>
1087         <groupId>net.i2p.crypto</groupId>
1088         <artifactId>eddsa</artifactId>
1089         <version>0.3.0</version>
1090       </dependency>
1091
1092       <!-- TrieMap library -->
1093       <dependency>
1094         <groupId>tech.pantheon.triemap</groupId>
1095         <artifactId>bom</artifactId>
1096         <version>1.1.0</version>
1097         <scope>import</scope>
1098         <type>pom</type>
1099       </dependency>
1100
1101       <!-- Dropwizard metrics -->
1102       <dependency>
1103         <groupId>io.dropwizard.metrics</groupId>
1104         <artifactId>metrics-bom</artifactId>
1105         <version>4.0.5</version>
1106         <scope>import</scope>
1107         <type>pom</type>
1108       </dependency>
1109
1110       <!-- JAXB for Java 11+, match this with Karaf -->
1111       <dependency>
1112         <groupId>javax.xml.bind</groupId>
1113         <artifactId>jaxb-api</artifactId>
1114         <version>2.3.0</version>
1115       </dependency>
1116       <dependency>
1117         <groupId>org.glassfish.jaxb</groupId>
1118         <artifactId>jaxb-runtime</artifactId>
1119         <version>2.3.1</version>
1120       </dependency>
1121     </dependencies>
1122   </dependencyManagement>
1123
1124   <dependencies>
1125     <!--
1126          We expect slf4j-api to be provided by the platform.
1127          Karaf provides it, other containers need to provide it themselves.
1128     -->
1129     <dependency>
1130       <groupId>org.slf4j</groupId>
1131       <artifactId>slf4j-api</artifactId>
1132       <scope>provided</scope>
1133     </dependency>
1134
1135     <!--
1136           Enable useful code quality annotations everywhere. Since these annotations
1137           are not required at runtime.
1138     -->
1139     <dependency>
1140       <groupId>org.eclipse.jdt</groupId>
1141       <artifactId>org.eclipse.jdt.annotation</artifactId>
1142       <scope>provided</scope>
1143     </dependency>
1144     <dependency>
1145       <groupId>com.github.spotbugs</groupId>
1146       <artifactId>spotbugs-annotations</artifactId>
1147       <scope>provided</scope>
1148       <optional>true</optional>
1149     </dependency>
1150     <dependency>
1151       <groupId>org.gaul</groupId>
1152       <artifactId>modernizer-maven-annotations</artifactId>
1153       <scope>provided</scope>
1154     </dependency>
1155
1156     <!--
1157           Testing output should be routed through slf4j-simple.
1158     -->
1159     <dependency>
1160       <groupId>org.slf4j</groupId>
1161       <artifactId>slf4j-simple</artifactId>
1162       <scope>test</scope>
1163     </dependency>
1164
1165     <!--
1166           Unit tests can use JUnit + Mockito + Hamcrest by default.
1167     -->
1168     <dependency>
1169       <groupId>org.hamcrest</groupId>
1170       <artifactId>hamcrest</artifactId>
1171       <scope>test</scope>
1172     </dependency>
1173     <dependency>
1174       <!-- This dependency needs to come before junit until we upgrade to JUnit 5. -->
1175       <groupId>org.hamcrest</groupId>
1176       <artifactId>hamcrest-library</artifactId>
1177       <scope>test</scope>
1178     </dependency>
1179     <dependency>
1180       <groupId>junit</groupId>
1181       <artifactId>junit</artifactId>
1182       <scope>test</scope>
1183     </dependency>
1184     <dependency>
1185       <groupId>org.mockito</groupId>
1186       <artifactId>mockito-core</artifactId>
1187       <scope>test</scope>
1188     </dependency>
1189   </dependencies>
1190
1191   <build>
1192     <pluginManagement>
1193       <plugins>
1194         <!-- Official maven plugins, alpha-sorted by artifactId.
1195              We do not need to specify the groupId. -->
1196         <plugin>
1197           <artifactId>maven-checkstyle-plugin</artifactId>
1198           <version>3.1.0</version>
1199           <dependencies>
1200             <dependency>
1201               <groupId>com.puppycrawl.tools</groupId>
1202               <artifactId>checkstyle</artifactId>
1203               <!-- This should match the dependency management on com.puppycrawl.tools:checkstyle above -->
1204               <version>8.26</version>
1205             </dependency>
1206             <dependency>
1207               <groupId>org.opendaylight.odlparent</groupId>
1208               <artifactId>checkstyle</artifactId>
1209               <version>6.0.4-SNAPSHOT</version>
1210             </dependency>
1211             <dependency>
1212               <groupId>com.github.sevntu-checkstyle</groupId>
1213               <artifactId>sevntu-checks</artifactId>
1214               <version>1.36.0</version>
1215             </dependency>
1216           </dependencies>
1217           <configuration>
1218             <configLocation>odl_checks.xml</configLocation>
1219             <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
1220             <!-- <sourceDirectories> are needed so that checkstyle ignores the
1221                  generated sources directory -->
1222             <sourceDirectories>
1223               <directory>${project.build.sourceDirectory}</directory>
1224             </sourceDirectories>
1225             <includeResources>true</includeResources>
1226             <includeTestSourceDirectory>true</includeTestSourceDirectory>
1227             <includeTestResources>true</includeTestResources>
1228             <includes>**\/*.java, **\/*.xtend</includes>
1229             <excludes>
1230               org/opendaylight/yang/gen/**,
1231               **/protobuff/messages/**,
1232               **/thrift/gen/*.java,
1233               **/module-info.java
1234             </excludes>
1235             <failsOnError>false</failsOnError>
1236             <consoleOutput>true</consoleOutput>
1237           </configuration>
1238           <executions>
1239             <execution>
1240               <id>check-license</id>
1241               <goals>
1242                 <goal>check</goal>
1243               </goals>
1244               <phase>process-sources</phase>
1245               <configuration>
1246                 <configLocation>check-license.xml</configLocation>
1247                 <headerLocation>EPL-LICENSE.regexp.txt</headerLocation>
1248                 <includeResources>false</includeResources>
1249                 <includeTestSourceDirectory>true</includeTestSourceDirectory>
1250                 <includeTestResources>false</includeTestResources>
1251                 <sourceDirectories>
1252                   <directory>${project.build.sourceDirectory}</directory>
1253                 </sourceDirectories>
1254                 <excludes>
1255                   org/opendaylight/yang/gen/**,
1256                   **/protobuff/messages/**,
1257                   **/thrift/gen/*.java
1258                 </excludes>
1259                 <failsOnError>false</failsOnError>
1260                 <consoleOutput>true</consoleOutput>
1261               </configuration>
1262             </execution>
1263             <execution>
1264               <goals>
1265                 <goal>check</goal>
1266               </goals>
1267               <phase>process-sources</phase>
1268               <configuration>
1269                 <failOnViolation>${odlparent.checkstyle.enforce}</failOnViolation>
1270                 <skip>${odlparent.checkstyle.skip}</skip>
1271                 <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
1272               </configuration>
1273             </execution>
1274           </executions>
1275         </plugin>
1276         <plugin>
1277           <groupId>org.apache.maven.plugins</groupId>
1278           <artifactId>maven-pmd-plugin</artifactId>
1279           <version>3.12.0</version>
1280           <executions>
1281             <execution>
1282               <id>cpd</id>
1283               <phase>process-sources</phase>
1284               <goals>
1285                 <goal>cpd-check</goal>
1286               </goals>
1287               <configuration>
1288                 <failOnViolation>${pmd.cpd.fail}</failOnViolation>
1289                 <!-- 100 "tokens" here correspond to approx. 5-10 lines of code -->
1290                 <minimumTokens>101</minimumTokens>
1291                 <printFailingErrors>true</printFailingErrors>
1292                 <excludeRoots>
1293                   <!-- FIXME: this should be a wildcard, but PMD is brain-damaged and does
1294                               not understand path prefixes nor wildcards. Details are available
1295                               at http://stackoverflow.com/questions/15647771/pmd-exclude-not-working
1296                               Hence people introducing new generated sources have to include
1297                               PMD config too.
1298                    -->
1299                   <excludeRoot>${project.build.directory}/generated-sources</excludeRoot>
1300                   <excludeRoot>${project.build.directory}/generated-test-sources</excludeRoot>
1301                 </excludeRoots>
1302                 <linkXRef>false</linkXRef>
1303               </configuration>
1304             </execution>
1305           </executions>
1306         </plugin>
1307         <plugin>
1308           <artifactId>maven-compiler-plugin</artifactId>
1309           <version>3.8.1</version>
1310           <configuration>
1311             <showWarnings>true</showWarnings>
1312             <compilerArgs>
1313               <arg>-parameters</arg>
1314               <arg>-Xlint:deprecation</arg>
1315               <arg>-Xlint:unchecked</arg>
1316             </compilerArgs>
1317             <annotationProcessorPaths>
1318               <dependency>
1319                 <groupId>org.immutables</groupId>
1320                 <artifactId>value</artifactId>
1321                 <!-- Keep this version in sync with dependency declaration above -->
1322                 <version>2.7.5</version>
1323               </dependency>
1324               <dependency>
1325                 <groupId>org.kohsuke.metainf-services</groupId>
1326                 <artifactId>metainf-services</artifactId>
1327                 <!-- Keep this version in sync with dependency declaration above -->
1328                 <version>1.8</version>
1329               </dependency>
1330             </annotationProcessorPaths>
1331           </configuration>
1332         </plugin>
1333         <plugin>
1334           <artifactId>maven-enforcer-plugin</artifactId>
1335           <version>${enforcer.version}</version>
1336         </plugin>
1337         <plugin>
1338           <artifactId>maven-failsafe-plugin</artifactId>
1339           <version>2.22.2</version>
1340         </plugin>
1341         <plugin>
1342           <artifactId>maven-invoker-plugin</artifactId>
1343           <version>3.2.0</version>
1344         </plugin>
1345         <plugin>
1346           <artifactId>maven-dependency-plugin</artifactId>
1347           <executions>
1348             <execution>
1349               <id>unpack-license</id>
1350               <phase>generate-resources</phase>
1351               <goals>
1352                 <goal>copy</goal>
1353               </goals>
1354               <configuration>
1355                 <artifactItems>
1356                   <artifactItem>
1357                     <groupId>org.opendaylight.odlparent</groupId>
1358                     <artifactId>odl-license</artifactId>
1359                     <version>6.0.4-SNAPSHOT</version>
1360                     <type>license</type>
1361                     <outputDirectory>${project.build.outputDirectory}</outputDirectory>
1362                     <destFileName>LICENSE</destFileName>
1363                     <overWrite>false</overWrite>
1364                   </artifactItem>
1365                 </artifactItems>
1366                 <silent>true</silent>
1367               </configuration>
1368             </execution>
1369           </executions>
1370         </plugin>
1371
1372         <plugin>
1373           <artifactId>maven-plugin-plugin</artifactId>
1374           <version>3.6.0</version>
1375         </plugin>
1376
1377         <plugin>
1378           <artifactId>maven-remote-resources-plugin</artifactId>
1379           <version>1.6.0</version>
1380         </plugin>
1381         <plugin>
1382           <artifactId>maven-resources-plugin</artifactId>
1383           <version>3.1.0</version>
1384         </plugin>
1385         <plugin>
1386           <artifactId>maven-shade-plugin</artifactId>
1387           <version>3.2.1</version>
1388         </plugin>
1389         <plugin>
1390           <artifactId>maven-source-plugin</artifactId>
1391           <version>3.2.0</version>
1392           <executions>
1393             <execution>
1394               <id>attach-sources</id>
1395               <phase>verify</phase>
1396               <goals>
1397                 <goal>jar-no-fork</goal>
1398               </goals>
1399             </execution>
1400           </executions>
1401         </plugin>
1402         <plugin>
1403           <artifactId>maven-surefire-plugin</artifactId>
1404           <version>2.22.2</version>
1405           <configuration>
1406             <redirectTestOutputToFile>${maven.test.redirectTestOutputToFile}</redirectTestOutputToFile>
1407             <trimStackTrace>false</trimStackTrace>
1408           </configuration>
1409         </plugin>
1410
1411         <!-- Third-party plugins, grouped by groupId, alpha-sorted by artifactId -->
1412         <plugin>
1413           <!-- Support Blueprint XML construction using annotations -->
1414           <groupId>org.apache.aries.blueprint</groupId>
1415           <artifactId>blueprint-maven-plugin</artifactId>
1416           <version>1.10.0</version>
1417           <!-- TODO remove dependencies when we bump from 1.10.0 to 1.11.0 (or 1.10.1);
1418              see https://jira.opendaylight.org/browse/ODLPARENT-167 & https://jira.apache.org/jira/browse/ARIES-1826 -->
1419           <dependencies>
1420             <dependency>
1421               <groupId>org.apache.xbean</groupId>
1422               <artifactId>xbean-finder-shaded</artifactId>
1423               <version>4.14</version>
1424             </dependency>
1425           </dependencies>
1426           <configuration>
1427             <scanPaths>
1428               <scanPath>${project.groupId}</scanPath>
1429             </scanPaths>
1430           </configuration>
1431           <executions>
1432             <execution>
1433               <goals>
1434                 <goal>blueprint-generate</goal>
1435               </goals>
1436             </execution>
1437           </executions>
1438         </plugin>
1439
1440         <plugin>
1441           <groupId>org.apache.felix</groupId>
1442           <artifactId>maven-bundle-plugin</artifactId>
1443           <version>4.2.1</version>
1444           <extensions>true</extensions>
1445           <configuration>
1446             <instructions>
1447               <!-- Note the '-' for git.properties.. this is required because git-commit-id-plugin has <failOnNoGitDirectory>false,
1448                    so that the build doesn't fail if there is no .../.git/ - so git.properties is effectively optional;
1449                    and so the '-' there is needed to make the maven-bundle-plugin if that resource is not present.  -->
1450               <Include-Resource>{maven-resources},${project.build.directory}/classes/LICENSE,META-INF/git.properties=-${project.build.directory}/classes/META-INF/git.properties,META-INF/services=-${project.build.directory}/classes/META-INF/services</Include-Resource>
1451
1452               <!-- Based on https://dev.eclipse.org/mhonarc/lists/equinox-dev/msg01088.html we do want
1453                    to generate Import-Service and Export-Service headers. -->
1454               <_removeheaders>Import-Service,Export-Service</_removeheaders>
1455             </instructions>
1456           </configuration>
1457         </plugin>
1458
1459         <plugin>
1460           <groupId>org.apache.karaf.tooling</groupId>
1461           <artifactId>karaf-maven-plugin</artifactId>
1462           <version>${karaf.version}</version>
1463         </plugin>
1464
1465         <plugin>
1466           <groupId>org.apache.servicemix.tooling</groupId>
1467           <artifactId>depends-maven-plugin</artifactId>
1468           <version>1.4.0</version>
1469           <executions>
1470             <execution>
1471               <id>generate-depends-file</id>
1472               <goals>
1473                 <goal>generate-depends-file</goal>
1474               </goals>
1475             </execution>
1476           </executions>
1477         </plugin>
1478
1479         <plugin>
1480           <groupId>com.webcohesion.enunciate</groupId>
1481           <artifactId>enunciate-maven-plugin</artifactId>
1482           <!-- This must be aligned with the version of enunciate-core-annotations specified above -->
1483           <version>2.11.1</version>
1484         </plugin>
1485
1486         <plugin>
1487           <groupId>org.gaul</groupId>
1488           <artifactId>modernizer-maven-plugin</artifactId>
1489           <version>2.0.0</version>
1490           <configuration>
1491             <javaVersion>${odlparent.modernizer.target}</javaVersion>
1492             <failOnViolations>${odlparent.modernizer.enforce}</failOnViolations>
1493             <skip>${odlparent.modernizer.skip}</skip>
1494           </configuration>
1495
1496           <executions>
1497             <execution>
1498               <id>modernizer</id>
1499               <phase>verify</phase>
1500               <goals>
1501                 <goal>modernizer</goal>
1502               </goals>
1503             </execution>
1504           </executions>
1505         </plugin>
1506
1507         <plugin>
1508           <groupId>com.github.spotbugs</groupId>
1509           <artifactId>spotbugs-maven-plugin</artifactId>
1510           <version>3.1.12.2</version>
1511           <dependencies>
1512             <dependency>
1513               <groupId>com.github.spotbugs</groupId>
1514               <artifactId>spotbugs</artifactId>
1515               <version>3.1.12</version>
1516             </dependency>
1517             <dependency>
1518               <groupId>org.opendaylight.odlparent</groupId>
1519               <artifactId>spotbugs</artifactId>
1520               <version>6.0.4-SNAPSHOT</version>
1521             </dependency>
1522             <dependency>
1523               <!-- The SpotBugs Maven plugin uses SLF4J 1.8 beta 2 -->
1524               <groupId>org.slf4j</groupId>
1525               <artifactId>slf4j-simple</artifactId>
1526               <version>1.8.0-beta2</version>
1527             </dependency>
1528           </dependencies>
1529           <configuration>
1530             <plugins>
1531               <plugin>
1532                 <groupId>jp.skypencil.findbugs.slf4j</groupId>
1533                 <artifactId>bug-pattern</artifactId>
1534                 <!-- NOTE: This version MUST be kept in sync with the same version in the old findbugs-maven-plugin above, if possible -->
1535                 <version>1.4.2</version>
1536               </plugin>
1537             </plugins>
1538             <!--
1539               Enables analysis which takes more memory but finds more bugs.
1540               If you run out of memory, changes the value of the effort element
1541               to 'Low'.
1542             -->
1543             <effort>Max</effort>
1544             <!-- Reports all bugs (other values are medium and max) -->
1545             <threshold>Low</threshold>
1546             <!-- Build doesn't fail if problems are found -->
1547             <failOnError>${odlparent.spotbugs.enforce}</failOnError>
1548             <skip>${odlparent.spotbugs.skip}</skip>
1549             <!-- References the excluded rules -->
1550             <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile>
1551             <!-- Produces XML report -->
1552             <xmlOutput>true</xmlOutput>
1553             <!-- Configures the directory in which the XML report is created -->
1554             <findbugsXmlOutputDirectory>${project.build.directory}/spotbugs</findbugsXmlOutputDirectory>
1555           </configuration>
1556           <executions>
1557             <!--
1558               Ensures that SpotBugs inspects source code when project is compiled.
1559             -->
1560             <execution>
1561               <id>analyze-compile</id>
1562               <phase>compile</phase>
1563               <goals>
1564                 <goal>check</goal>
1565               </goals>
1566             </execution>
1567           </executions>
1568         </plugin>
1569         <plugin>
1570           <groupId>org.codehaus.mojo</groupId>
1571           <artifactId>properties-maven-plugin</artifactId>
1572           <version>1.0.0</version>
1573         </plugin>
1574         <plugin>
1575           <groupId>org.eclipse.xtend</groupId>
1576           <artifactId>xtend-maven-plugin</artifactId>
1577           <!-- NOTE: This version MUST be kept in sync with the Xtend version in <dependencyManagement> -->
1578           <version>2.19.0</version>
1579           <executions>
1580             <execution>
1581               <goals>
1582                 <goal>compile</goal>
1583                 <goal>testCompile</goal>
1584               </goals>
1585               <configuration>
1586                 <outputDirectory>${project.build.directory}/generated-sources/xtend</outputDirectory>
1587                 <testOutputDirectory>${project.build.directory}/generated-test-sources/xtend</testOutputDirectory>
1588               </configuration>
1589             </execution>
1590           </executions>
1591         </plugin>
1592         <plugin>
1593           <groupId>org.eclipse.m2e</groupId>
1594           <artifactId>lifecycle-mapping</artifactId>
1595           <version>1.0.0</version>
1596           <configuration>
1597             <lifecycleMappingMetadata>
1598               <pluginExecutions>
1599                 <pluginExecution>
1600                   <pluginExecutionFilter>
1601                     <groupId>org.apache.felix</groupId>
1602                     <artifactId>maven-bundle-plugin</artifactId>
1603                     <versionRange>[1.0,)</versionRange>
1604                     <goals>
1605                       <goal>manifest</goal>
1606                     </goals>
1607                   </pluginExecutionFilter>
1608                   <action>
1609                     <execute/>
1610                   </action>
1611                 </pluginExecution>
1612                 <pluginExecution>
1613                   <pluginExecutionFilter>
1614                     <groupId>org.apache.maven.plugins</groupId>
1615                     <artifactId>maven-enforcer-plugin</artifactId>
1616                     <versionRange>[1.0.0,)</versionRange>
1617                     <goals>
1618                       <goal>enforce</goal>
1619                     </goals>
1620                   </pluginExecutionFilter>
1621                   <action>
1622                     <ignore/>
1623                   </action>
1624                 </pluginExecution>
1625                 <pluginExecution>
1626                   <pluginExecutionFilter>
1627                     <groupId>org.apache.maven.plugins</groupId>
1628                     <artifactId>maven-dependency-plugin</artifactId>
1629                     <versionRange>[2.10,)</versionRange>
1630                     <goals>
1631                       <goal>copy</goal>
1632                     </goals>
1633                   </pluginExecutionFilter>
1634                   <action>
1635                     <ignore/>
1636                   </action>
1637                 </pluginExecution>
1638                 <pluginExecution>
1639                   <pluginExecutionFilter>
1640                     <groupId>org.apache.maven.plugins</groupId>
1641                     <artifactId>maven-pmd-plugin</artifactId>
1642                     <versionRange>[3.6,)</versionRange>
1643                     <goals>
1644                       <goal>cpd-check</goal>
1645                     </goals>
1646                   </pluginExecutionFilter>
1647                   <action>
1648                     <ignore/>
1649                   </action>
1650                 </pluginExecution>
1651                 <!-- The plugin will eventually be removed, remove this too at that point -->
1652                 <pluginExecution>
1653                   <pluginExecutionFilter>
1654                     <groupId>org.apache.maven.plugins</groupId>
1655                     <artifactId>maven-antrun-plugin</artifactId>
1656                     <versionRange>[1.8,)</versionRange>
1657                     <goals>
1658                       <goal>run</goal>
1659                     </goals>
1660                   </pluginExecutionFilter>
1661                   <action>
1662                     <ignore/>
1663                   </action>
1664                 </pluginExecution>
1665                 <pluginExecution>
1666                   <pluginExecutionFilter>
1667                     <groupId>org.apache.servicemix.tooling</groupId>
1668                     <artifactId>depends-maven-plugin</artifactId>
1669                     <versionRange>[1.2,)</versionRange>
1670                     <goals>
1671                       <goal>generate-depends-file</goal>
1672                     </goals>
1673                   </pluginExecutionFilter>
1674                   <action>
1675                     <execute/>
1676                   </action>
1677                 </pluginExecution>
1678                 <pluginExecution>
1679                   <pluginExecutionFilter>
1680                     <groupId>org.jacoco</groupId>
1681                     <artifactId>jacoco-maven-plugin</artifactId>
1682                     <versionRange>[0.7.0,)</versionRange>
1683                     <goals>
1684                       <goal>prepare-agent</goal>
1685                     </goals>
1686                   </pluginExecutionFilter>
1687                   <action>
1688                     <ignore/>
1689                   </action>
1690                 </pluginExecution>
1691
1692                 <pluginExecution>
1693                   <pluginExecutionFilter>
1694                     <groupId>org.ops4j.pax.exam</groupId>
1695                     <artifactId>maven-paxexam-plugin</artifactId>
1696                     <versionRange>[1.2.4,)</versionRange>
1697                     <goals>
1698                       <goal>generate-depends-file</goal>
1699                     </goals>
1700                   </pluginExecutionFilter>
1701                   <action>
1702                     <ignore/>
1703                   </action>
1704                 </pluginExecution>
1705
1706                 <pluginExecution>
1707                   <pluginExecutionFilter>
1708                     <groupId>org.basepom.maven</groupId>
1709                     <artifactId>
1710                       duplicate-finder-maven-plugin
1711                     </artifactId>
1712                     <versionRange>[1.2.1,)</versionRange>
1713                     <goals>
1714                       <goal>check</goal>
1715                     </goals>
1716                   </pluginExecutionFilter>
1717                   <action>
1718                     <ignore></ignore>
1719                   </action>
1720                 </pluginExecution>
1721               </pluginExecutions>
1722             </lifecycleMappingMetadata>
1723           </configuration>
1724         </plugin>
1725
1726         <plugin>
1727           <groupId>org.jacoco</groupId>
1728           <artifactId>jacoco-maven-plugin</artifactId>
1729           <configuration>
1730             <!-- Note: This exclusion list should match <sonar.exclusions>
1731                        property above -->
1732             <excludes>
1733               <exclude>**/gen/**</exclude>
1734               <exclude>**/generated-sources/**</exclude>
1735               <exclude>**/generated-test-sources/**</exclude>
1736               <exclude>**/yang-gen/**</exclude>
1737               <exclude>**/yang-gen-config/**</exclude>
1738               <exclude>**/yang-gen-sal/**</exclude>
1739               <exclude>**/yang-gen-code/**</exclude>
1740               <exclude>**/pax/**</exclude>
1741             </excludes>
1742           </configuration>
1743         </plugin>
1744
1745         <plugin>
1746           <groupId>org.ops4j.pax.exam</groupId>
1747           <artifactId>maven-paxexam-plugin</artifactId>
1748           <version>1.2.4</version>
1749         </plugin>
1750
1751         <!-- When updating this version, consider antl4-runtime above -->
1752         <plugin>
1753           <groupId>org.antlr</groupId>
1754           <artifactId>antlr4-maven-plugin</artifactId>
1755           <version>4.7.2</version>
1756         </plugin>
1757       </plugins>
1758     </pluginManagement>
1759
1760     <plugins>
1761       <plugin>
1762         <artifactId>maven-enforcer-plugin</artifactId>
1763         <executions>
1764           <execution>
1765             <id>enforce-banned-dependencies</id>
1766             <goals>
1767               <goal>enforce</goal>
1768             </goals>
1769             <configuration>
1770               <rules>
1771                 <bannedDependencies>
1772                   <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>
1773                   <excludes>
1774                     <exclude>org.mockito:mockito-all</exclude>
1775                     <exclude>com.google.code.findbugs:annotations</exclude>
1776                   </excludes>
1777                 </bannedDependencies>
1778               </rules>
1779               <fail>true</fail>
1780             </configuration>
1781           </execution>
1782         </executions>
1783       </plugin>
1784       <plugin>
1785         <groupId>org.basepom.maven</groupId>
1786         <artifactId>duplicate-finder-maven-plugin</artifactId>
1787         <version>1.3.0</version>
1788         <executions>
1789           <execution>
1790             <id>find-duplicate-classpath-entries</id>
1791             <phase>verify</phase>
1792             <goals>
1793               <goal>check</goal>
1794             </goals>
1795           </execution>
1796         </executions>
1797         <configuration>
1798             <!-- https://github.com/basepom/duplicate-finder-maven-plugin/wiki -->
1799             <failBuildInCaseOfConflict>false</failBuildInCaseOfConflict>
1800             <failBuildInCaseOfDifferentContentConflict>true</failBuildInCaseOfDifferentContentConflict>
1801             <failBuildInCaseOfEqualContentConflict>false</failBuildInCaseOfEqualContentConflict>
1802             <printEqualFiles>false</printEqualFiles>
1803             <quiet>true</quiet>
1804             <!-- In addition to https://github.com/basepom/duplicate-finder-maven-plugin/wiki/Default%20ignored%20elements,
1805                  as explained on https://github.com/basepom/duplicate-finder-maven-plugin/wiki/Ignoring%20Dependencies%20and%20Resources,
1806                  we use resources not dependencies (see https://github.com/basepom/duplicate-finder-maven-plugin/wiki/Classpath%20Exceptions)
1807                  also ignore: -->
1808             <ignoredResourcePatterns>
1809               <ignoredResourcePattern>org/opendaylight/blueprint/.*\.xml$</ignoredResourcePattern>
1810               <ignoredResourcePattern>OSGI-OPT/bnd.bnd$</ignoredResourcePattern>
1811               <ignoredResourcePattern>WEB-INF/web.xml</ignoredResourcePattern>
1812               <ignoredResourcePattern>README.*$</ignoredResourcePattern>
1813               <ignoredResourcePattern>.*\.html$</ignoredResourcePattern>
1814               <ignoredResourcePattern>reference.conf</ignoredResourcePattern>
1815             </ignoredResourcePatterns>
1816             <ignoredClassPatterns>
1817               <ignoredClassPattern>META-INF.versions.*$</ignoredClassPattern>
1818             </ignoredClassPatterns>
1819             <ignoredDependencies>
1820               <ignoredDependency>
1821                 <groupId>org.slf4j</groupId>
1822                 <artifactId>slf4j-simple</artifactId>
1823               </ignoredDependency>
1824               <ignoredDependency>
1825                 <groupId>org.opendaylight.odlparent</groupId>
1826                 <artifactId>opendaylight-karaf-empty</artifactId>
1827               </ignoredDependency>
1828             </ignoredDependencies>
1829         </configuration>
1830       </plugin>
1831       <plugin>
1832         <artifactId>maven-dependency-plugin</artifactId>
1833       </plugin>
1834       <plugin>
1835         <artifactId>maven-checkstyle-plugin</artifactId>
1836       </plugin>
1837       <plugin>
1838           <artifactId>maven-pmd-plugin</artifactId>
1839       </plugin>
1840       <plugin>
1841         <artifactId>maven-source-plugin</artifactId>
1842       </plugin>
1843       <plugin>
1844         <artifactId>maven-javadoc-plugin</artifactId>
1845       </plugin>
1846       <plugin>
1847         <groupId>org.gaul</groupId>
1848         <artifactId>modernizer-maven-plugin</artifactId>
1849       </plugin>
1850       <plugin>
1851         <groupId>com.github.spotbugs</groupId>
1852         <artifactId>spotbugs-maven-plugin</artifactId>
1853       </plugin>
1854
1855       <!-- Jacoco / Sonar -->
1856       <plugin>
1857         <groupId>org.jacoco</groupId>
1858         <artifactId>jacoco-maven-plugin</artifactId>
1859         <executions>
1860           <execution>
1861             <id>pre-unit-test</id>
1862             <goals>
1863               <goal>prepare-agent</goal>
1864             </goals>
1865             <configuration>
1866               <destFile>${jacoco.destFile}</destFile>
1867             </configuration>
1868           </execution>
1869         </executions>
1870       </plugin>
1871
1872       <plugin>
1873         <groupId>com.alexecollins.maven.plugin</groupId>
1874         <artifactId>script-maven-plugin</artifactId>
1875         <version>1.0.0</version>
1876         <executions>
1877            <execution>
1878              <phase>prepare-package</phase>
1879              <goals>
1880                <goal>execute</goal>
1881              </goals>
1882              <configuration>
1883                <script>
1884                  // BeanShell is 2005-ish and thus doesn't support generics, varargs, try-with-resources or lambdas, so:
1885                  // (If we do this kind of inline code in pom.xml more often, we shold have a new simple module in
1886                  //  odl-parent, which has *.java that we compile, and then just depend on it here and call one-line
1887                  //  static class methods only - it will be MUCH easier to write!)
1888                  void copy(File root, String glob, File target) {
1889                      java.nio.file.DirectoryStream dirStream = java.nio.file.Files.newDirectoryStream(root.toPath(), glob);
1890                      Iterator dirStreamIterator = dirStream.iterator();
1891                      while (dirStreamIterator.hasNext()) {
1892                          java.nio.file.Path path = dirStreamIterator.next();
1893                          java.nio.file.Files.copy(path, new File(target, path.toFile().getName()).toPath(),
1894                              new java.nio.file.CopyOption[] {
1895                                  java.nio.file.StandardCopyOption.REPLACE_EXISTING,
1896                                  java.nio.file.StandardCopyOption.COPY_ATTRIBUTES
1897                              }
1898                          );
1899                      }
1900                      dirStream.close();
1901                  }
1902
1903                  File gitRepoRootDir = project.basedir;
1904                  while (!new File(gitRepoRootDir, ".git").exists() &amp;&amp; gitRepoRootDir.getParentFile() != null) {
1905                      gitRepoRootDir = gitRepoRootDir.getParentFile();
1906                  }
1907
1908                  File target = new File(project.build.outputDirectory);
1909                  target.mkdirs();
1910                  copy(gitRepoRootDir, "README*", target);
1911                  copy(gitRepoRootDir, "CONTRIBUTING*", target);
1912                  copy(gitRepoRootDir, "PROJECT_INFO.yaml", target);
1913                </script>
1914              </configuration>
1915            </execution>
1916          </executions>
1917          <dependencies>
1918            <dependency>
1919              <groupId>org.apache-extras.beanshell</groupId>
1920              <artifactId>bsh</artifactId>
1921              <version>2.0b6</version>
1922            </dependency>
1923          </dependencies>
1924       </plugin>
1925     </plugins>
1926   </build>
1927
1928   <reporting>
1929     <plugins>
1930       <plugin>
1931         <artifactId>maven-checkstyle-plugin</artifactId>
1932         <version>3.1.0</version>
1933       </plugin>
1934
1935       <!-- FIXME: activate this
1936       <plugin>
1937         <artifactId>maven-project-info-reports-plugin</artifactId>
1938         <version>${projectinfo}</version>
1939       </plugin-->
1940       <plugin>
1941         <groupId>org.codehaus.mojo</groupId>
1942         <artifactId>jdepend-maven-plugin</artifactId>
1943         <reportSets>
1944           <reportSet>
1945             <reports>
1946               <report>generate-no-fork</report>
1947             </reports>
1948           </reportSet>
1949         </reportSets>
1950       </plugin>
1951     </plugins>
1952   </reporting>
1953 </project>
1954