1 <?xml version="1.0" encoding="UTF-8"?>
3 ~ Copyright (c) 2016 Cisco and/or its affiliates.
5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License.
7 ~ You may obtain a copy of the License at:
9 ~ http://www.apache.org/licenses/LICENSE-2.0
11 ~ Unless required by applicable law or agreed to in writing, software
12 ~ distributed under the License is distributed on an "AS IS" BASIS,
13 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ~ See the License for the specific language governing permissions and
15 ~ limitations under the License.
17 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
18 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
20 <modelVersion>4.0.0</modelVersion>
21 <groupId>io.fd.honeycomb.common</groupId>
22 <artifactId>honeycomb-parent</artifactId>
23 <name>${project.artifactId}</name>
24 <version>1.17.10-SNAPSHOT</version>
25 <packaging>pom</packaging>
31 <nexusproxy>http://nexus.fd.io/content</nexusproxy>
32 <odl.nexusproxy>https://nexus.opendaylight.org/content</odl.nexusproxy>
34 <!-- Default Sonar configuration -->
35 <sonar-jacoco-listeners.version>2.4</sonar-jacoco-listeners.version>
36 <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
37 <sonar.jacoco.reportPath>target/code-coverage/jacoco.exec</sonar.jacoco.reportPath>
38 <sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
39 <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
40 <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**</sonar.exclusions>
42 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
43 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
45 <!-- ODL dependencies -->
46 <yangtools.version>1.1.1-Carbon</yangtools.version>
47 <mdsal.version>2.2.1-Carbon</mdsal.version>
48 <mdsal.controller.version>1.5.1-Carbon</mdsal.controller.version>
49 <mdsalmodel.version>0.10.1-Carbon</mdsalmodel.version>
50 <netconf.version>1.2.1-Carbon</netconf.version>
51 <restconf.version>1.5.1-Carbon</restconf.version>
52 <salGenerator.version>0.10.1-Carbon</salGenerator.version>
53 <bgpcep.version>0.7.1-Carbon</bgpcep.version>
54 <salGeneratorPath>target/generated-sources/mdsal-binding</salGeneratorPath>
56 <!-- common dependencies -->
57 <junit.version>4.11</junit.version>
58 <mockito.version>2.2.9</mockito.version>
59 <hamcrest.version>1.3</hamcrest.version>
60 <guava.version>18.0</guava.version>
61 <jsr305.version>3.0.0</jsr305.version>
62 <slf4j.version>1.7.21</slf4j.version>
65 <checkstyle.plugin.version>2.17</checkstyle.plugin.version>
66 <checkstyle.version>7.1.2</checkstyle.version>
67 <maven.javadoc.version>2.10.3</maven.javadoc.version>
68 <jacoco.version>0.7.9</jacoco.version>
69 <enforcer.version>1.4</enforcer.version>
70 <maven.compile.plugin.version>3.5.1</maven.compile.plugin.version>
71 <maven.bundle.version>3.0.1</maven.bundle.version>
74 <checkstyle.header.file>APACHE_HEADER.txt</checkstyle.header.file>
77 <!-- skip location check = makes site exec faster -->
78 <dependency.locations.enabled>false</dependency.locations.enabled>
79 <project.info.report.version>2.9</project.info.report.version>
80 <maven.resources.version>3.0.1</maven.resources.version>
81 <maven.site.version>3.4</maven.site.version>
83 <asciidoctor.maven.plugin.version>1.5.3</asciidoctor.maven.plugin.version>
84 <asciidoctorj.diagram.version>1.3.1</asciidoctorj.diagram.version>
87 <maven.groovy.version>2.0</maven.groovy.version>
88 <groovy.version>2.4.7</groovy.version>
89 <groovy.eclipse.compiler.version>2.9.2-01</groovy.eclipse.compiler.version>
90 <groovy.eclipse.batch.version>2.4.3-01</groovy.eclipse.batch.version>
92 <docs.base.url>https://nexus.fd.io/content/sites/site</docs.base.url>
93 <docs.hc.folder>io/fd/honeycomb</docs.hc.folder>
98 <url>https://fd.io</url>
103 <name>Apache License, Version 2.0</name>
104 <url>http://www.apache.org/licenses/LICENSE-2.0</url>
109 <system>JIRA</system>
110 <url>https://jira.fd.io/</url>
114 <system>Jenkins</system>
115 <url>https://jenkins.fd.io/</url>
121 <post>honeycomb-dev@fd.io</post>
122 <subscribe>https://lists.fd.io/mailman/listinfo/honeycomb-dev</subscribe>
123 <archive>https://lists.fd.io/pipermail/honeycomb-dev/</archive>
127 <dependencyManagement>
131 <groupId>org.opendaylight.yangtools</groupId>
132 <artifactId>yangtools-artifacts</artifactId>
133 <version>${yangtools.version}</version>
135 <scope>import</scope>
138 <groupId>org.opendaylight.controller</groupId>
139 <artifactId>mdsal-artifacts</artifactId>
140 <version>${mdsal.controller.version}</version>
142 <scope>import</scope>
145 <groupId>org.opendaylight.mdsal</groupId>
146 <artifactId>mdsal-artifacts</artifactId>
147 <version>${mdsal.version}</version>
149 <scope>import</scope>
152 <groupId>org.opendaylight.netconf</groupId>
153 <artifactId>netconf-artifacts</artifactId>
154 <version>${netconf.version}</version>
156 <scope>import</scope>
159 <groupId>org.opendaylight.netconf</groupId>
160 <artifactId>restconf-artifacts</artifactId>
161 <version>${restconf.version}</version>
163 <scope>import</scope>
166 <groupId>org.opendaylight.mdsal.model</groupId>
167 <artifactId>mdsal-model-artifacts</artifactId>
168 <version>${mdsalmodel.version}</version>
170 <scope>import</scope>
173 <groupId>org.opendaylight.bgpcep</groupId>
174 <artifactId>bgpcep-artifacts</artifactId>
175 <version>${bgpcep.version}</version>
177 <scope>import</scope>
182 <groupId>com.google.guava</groupId>
183 <artifactId>guava</artifactId>
184 <version>${guava.version}</version>
187 <groupId>com.google.code.findbugs</groupId>
188 <artifactId>jsr305</artifactId>
189 <version>${jsr305.version}</version>
192 <groupId>org.slf4j</groupId>
193 <artifactId>slf4j-api</artifactId>
194 <version>${slf4j.version}</version>
197 <!-- Testing Dependencies -->
199 <groupId>junit</groupId>
200 <artifactId>junit</artifactId>
201 <version>${junit.version}</version>
204 <!-- Dont use mockito-all, it has problematic dependency on harmcrest
205 More details here - https://github.com/mockito/mockito/issues/324-->
207 <groupId>org.mockito</groupId>
208 <artifactId>mockito-core</artifactId>
209 <version>${mockito.version}</version>
213 <groupId>org.hamcrest</groupId>
214 <artifactId>hamcrest-all</artifactId>
215 <version>${hamcrest.version}</version>
219 </dependencyManagement>
226 <artifactId>maven-checkstyle-plugin</artifactId>
227 <version>${checkstyle.plugin.version}</version>
229 <!--TODO HONEYCOMB-155 enable fail on violation after issues are resolved + set in as errors in checkstyle xml-->
230 <failOnViolation>false</failOnViolation>
231 <failsOnError>true</failsOnError>
232 <consoleOutput>true</consoleOutput>
233 <includeTestResources>true</includeTestResources>
234 <includeTestSourceDirectory>true</includeTestSourceDirectory>
235 <includes>**\/*.java,**\/*.xml,**\/*.ini,**\/*.sh,**\/*.bat,**\/*.yang</includes>
236 <excludes>**\/target\/,
239 **\/src/main/yang-gen-config\/,
240 org/opendaylight/yang/gen/**,
241 **\/src/main/yang-gen-sal\/,
242 **\/src/main/xtend-gen\/,
244 **\/archetype-resources\/,
245 **\/.idea\/</excludes>
248 <!-- Override license check configuration to fit Honeycomb coding style-->
250 <id>check-license</id>
254 <phase>process-sources</phase>
256 <configLocation>honeycomb-checkstyle-license.xml</configLocation>
257 <outputFile>${project.build.directory}/checkstyle-license-result.xml</outputFile>
260 <!-- Add logging checks from yangtools -->
262 <id>check-logging</id>
266 <phase>process-sources</phase>
268 <configLocation>honeycomb-checkstyle-logging.xml</configLocation>
269 <sourceDirectory>${project.basedir}</sourceDirectory>
270 <outputFile>${project.build.directory}/checkstyle-logging-result.xml</outputFile>
273 <!-- Check HC's coding style -->
278 <phase>process-sources</phase>
280 <configLocation>honeycomb-checkstyle.xml</configLocation>
286 <groupId>io.fd.honeycomb.common</groupId>
287 <artifactId>honeycomb-checkstyle</artifactId>
288 <!-- Hardcoded version to prevent archetype generated projects to use their own project version -->
289 <version>1.17.10-SNAPSHOT</version>
291 <!-- Necessary for logging checks -->
293 <groupId>org.opendaylight.yangtools</groupId>
294 <artifactId>checkstyle-logging</artifactId>
295 <version>${yangtools.version}</version>
297 <!-- Needed by ODL's checkstyle-logging -->
299 <groupId>com.puppycrawl.tools</groupId>
300 <artifactId>checkstyle</artifactId>
301 <version>${checkstyle.version}</version>
305 <!-- Deactivate strict java8 checks -->
306 <!-- TODO HONEYCOMB-156 fix all the javadoc offenders of doclint -->
308 <groupId>org.apache.maven.plugins</groupId>
309 <artifactId>maven-javadoc-plugin</artifactId>
310 <version>${maven.javadoc.version}</version>
312 <additionalparam>-Xdoclint:none</additionalparam>
316 <id>attach-javadocs</id>
323 <!-- jacoco test coverage for sonar -->
325 <groupId>org.jacoco</groupId>
326 <artifactId>jacoco-maven-plugin</artifactId>
327 <version>${jacoco.version}</version>
330 <id>pre-unit-test</id>
332 <goal>prepare-agent</goal>
335 <destFile>${sonar.jacoco.reportPath}</destFile>
339 <id>post-unit-test</id>
344 <dataFile>${sonar.jacoco.reportPath}</dataFile>
350 <exclude>**/gen/**</exclude>
351 <exclude>**/generated-sources/**</exclude>
352 <exclude>**/yang-gen/**</exclude>
356 <!-- Enforce maven version -->
358 <groupId>org.apache.maven.plugins</groupId>
359 <artifactId>maven-enforcer-plugin</artifactId>
360 <version>${enforcer.version}</version>
363 <id>enforce-maven</id>
366 <requireMavenVersion>
367 <version>3.1.1</version>
368 </requireMavenVersion>
377 <!-- Compile with google static analysis tool: error_prone -->
379 <groupId>org.apache.maven.plugins</groupId>
380 <artifactId>maven-compiler-plugin</artifactId>
381 <version>${maven.compile.plugin.version}</version>
383 <!-- Use google's error-prone static analysis-->
384 <compilerId>javac-with-errorprone</compilerId>
385 <forceJavacCompilerUse>true</forceJavacCompilerUse>
386 <showWarnings>true</showWarnings>
392 <groupId>org.codehaus.plexus</groupId>
393 <artifactId>plexus-compiler-javac-errorprone</artifactId>
394 <version>2.5</version>
396 <!-- override plexus-compiler-javac-errorprone's dependency on
397 Error Prone with the latest version -->
399 <groupId>com.google.errorprone</groupId>
400 <artifactId>error_prone_core</artifactId>
401 <version>2.0.9</version>
406 <groupId>org.apache.felix</groupId>
407 <artifactId>maven-bundle-plugin</artifactId>
408 <version>${maven.bundle.version}</version>
409 <extensions>true</extensions>
413 <groupId>org.apache.maven.plugins</groupId>
414 <artifactId>maven-source-plugin</artifactId>
417 <id>attach-sources</id>
424 <!-- Site (from https://github.com/asciidoctor/asciidoctor-maven-examples/blob/master/asciidoc-maven-site-example/pom.xml) -->
425 <!-- + https://github.com/asciidoctor/asciidoctor-maven-plugin -->
427 <groupId>org.apache.maven.plugins</groupId>
428 <artifactId>maven-site-plugin</artifactId>
429 <version>${maven.site.version}</version>
431 <generateReports>true</generateReports>
432 <generateSitemap>true</generateSitemap>
433 <relativizeDecorationLinks>false</relativizeDecorationLinks>
434 <locales>en</locales>
435 <inputEncoding>UTF-8</inputEncoding>
436 <outputEncoding>UTF-8</outputEncoding>
437 <siteDirectory>${project.basedir}</siteDirectory>
438 <relativizeDecorationLinks>false</relativizeDecorationLinks>
441 <require>asciidoctor-diagram</require>
443 <!-- optional site-wide AsciiDoc attributes -->
445 <source-highlighter>coderay</source-highlighter>
446 <coderay-css>style</coderay-css>
448 <sectanchors>true</sectanchors>
450 <idseparator>-</idseparator>
453 <!-- Exclude partial docs that are included elsewhere -->
455 <asciidoc>**/_*.adoc</asciidoc>
460 <groupId>org.asciidoctor</groupId>
461 <artifactId>asciidoctor-maven-plugin</artifactId>
462 <version>${asciidoctor.maven.plugin.version}</version>
465 <groupId>org.asciidoctor</groupId>
466 <artifactId>asciidoctorj-diagram</artifactId>
467 <version>${asciidoctorj.diagram.version}</version>
472 <groupId>org.codehaus.gmaven</groupId>
473 <artifactId>groovy-maven-plugin</artifactId>
474 <version>${maven.groovy.version}</version>
476 <!-- Generate Readme.adoc if not present -->
478 <id>generate-adoc</id>
479 <phase>generate-resources</phase>
484 <!-- Generate module adoc documentation -->
486 io.fd.honeycomb.common.scripts.ReadmeGenerator.checkReadme(project, properties, log)
490 <!-- Fix generated html -->
492 <id>fix-generated-site</id>
498 <!-- Site generates wrong link to Readme.html, trying to point to Readme.html at root -->
500 io.fd.honeycomb.common.scripts.ReadmeGenerator.fixSite(project, properties, log)
504 <!-- copy generated schema pictures -->
506 <id>copy-generated-pictures</id>
512 <!-- Copies generated schema pictures from ascii-doctor folders to site folder-->
514 io.fd.honeycomb.common.scripts.AsciiDocImgForwarder.copyGeneratedImages(project, properties, log)
521 <groupId>io.fd.honeycomb.common</groupId>
522 <artifactId>common-scripts</artifactId>
523 <version>1.17.10-SNAPSHOT</version>
531 <artifactId>maven-enforcer-plugin</artifactId>
534 <artifactId>maven-source-plugin</artifactId>
537 <artifactId>maven-javadoc-plugin</artifactId>
540 <artifactId>maven-checkstyle-plugin</artifactId>
543 <artifactId>maven-dependency-plugin</artifactId>
546 <artifactId>maven-compiler-plugin</artifactId>
549 <groupId>org.jacoco</groupId>
550 <artifactId>jacoco-maven-plugin</artifactId>
553 <groupId>org.apache.felix</groupId>
554 <artifactId>maven-bundle-plugin</artifactId>
557 <groupId>org.codehaus.gmaven</groupId>
558 <artifactId>groovy-maven-plugin</artifactId>
562 <!-- To support site push-->
565 <groupId>org.apache.maven.wagon</groupId>
566 <artifactId>wagon-webdav-jackrabbit</artifactId>
567 <version>2.9</version>
575 <groupId>org.apache.maven.plugins</groupId>
576 <artifactId>maven-project-info-reports-plugin</artifactId>
577 <version>${project.info.report.version}</version>
581 <report>index</report>
582 <report>summary</report>
583 <report>modules</report>
585 <report>dependencies</report>
586 <report>distribution-management</report>
587 <report>mailing-list</report>
588 <report>issue-tracking</report>
589 <report>license</report>
596 <groupId>org.apache.maven.plugins</groupId>
597 <artifactId>maven-javadoc-plugin</artifactId>
598 <version>${maven.javadoc.version}</version>
603 <report>javadoc-no-fork</report>
608 <additionalparam>-Xdoclint:none</additionalparam>
612 <groupId>org.apache.maven.plugins</groupId>
613 <artifactId>maven-resources-plugin</artifactId>
614 <version>${maven.resources.version}</version>
619 <distributionManagement>
621 <id>fdio-release</id>
622 <url>${nexusproxy}/repositories/fd.io.release/</url>
625 <id>fdio-snapshot</id>
626 <url>${nexusproxy}/repositories/fd.io.snapshot/</url>
627 </snapshotRepository>
630 <url>dav:${docs.base.url}/${docs.hc.folder}/${project.version}</url>
632 </distributionManagement>
635 <!-- Using only ODL stable releases -->
638 <enabled>true</enabled>
639 <updatePolicy>never</updatePolicy>
642 <enabled>false</enabled>
644 <id>opendaylight-mirror</id>
645 <name>opendaylight-mirror</name>
646 <url>${odl.nexusproxy}/repositories/public/</url>