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">
19 <modelVersion>4.0.0</modelVersion>
20 <groupId>io.fd.honeycomb.common</groupId>
21 <artifactId>honeycomb-parent</artifactId>
22 <version>1.16.12-SNAPSHOT</version>
23 <packaging>pom</packaging>
26 <nexusproxy>http://nexus.fd.io/content</nexusproxy>
27 <odl.nexusproxy>https://nexus.opendaylight.org/content</odl.nexusproxy>
29 <!-- Default Sonar configuration -->
30 <sonar-jacoco-listeners.version>2.4</sonar-jacoco-listeners.version>
31 <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
32 <sonar.jacoco.reportPath>target/code-coverage/jacoco.exec</sonar.jacoco.reportPath>
33 <sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
34 <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
35 <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**</sonar.exclusions>
37 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
38 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
40 <!-- ODL dependencies -->
41 <yangtools.version>0.8.2-Beryllium-SR2</yangtools.version>
42 <mdsal.version>2.0.2-Beryllium-SR2</mdsal.version>
43 <mdsal.controller.version>1.3.2-Beryllium-SR2</mdsal.controller.version>
44 <mdsalmodel.version>0.8.2-Beryllium-SR2</mdsalmodel.version>
45 <netconf.version>1.0.2-Beryllium-SR2</netconf.version>
46 <restconf.version>1.3.2-Beryllium-SR2</restconf.version>
47 <salGeneratorPath>target/generated-sources/mdsal-binding</salGeneratorPath>
50 <junit.version>4.11</junit.version>
51 <mockito.version>1.9.5</mockito.version>
52 <hamcrest.version>1.3</hamcrest.version>
53 <guava.version>18.0</guava.version>
56 <checkstyle.version>2.16</checkstyle.version>
57 <maven.javadoc.version>2.10.3</maven.javadoc.version>
58 <jacoco.version>0.7.2.201409121644</jacoco.version>
59 <enforcer.version>1.4</enforcer.version>
60 <maven.compile.plugin.version>3.3</maven.compile.plugin.version>
61 <maven.bundle.version>3.0.0</maven.bundle.version>
64 <checkstyle.header.file>APACHE_HEADER.txt</checkstyle.header.file>
69 <url>https://fd.io</url>
74 <name>Apache License, Version 2.0</name>
75 <url>http://www.apache.org/licenses/LICENSE-2.0</url>
81 <url>https://jira.fd.io/</url>
85 <system>Jenkins</system>
86 <url>https://jenkins.fd.io/</url>
89 <dependencyManagement>
93 <groupId>org.opendaylight.yangtools</groupId>
94 <artifactId>yangtools-artifacts</artifactId>
95 <version>${yangtools.version}</version>
100 <groupId>org.opendaylight.controller</groupId>
101 <artifactId>mdsal-artifacts</artifactId>
102 <version>${mdsal.controller.version}</version>
104 <scope>import</scope>
107 <groupId>org.opendaylight.mdsal</groupId>
108 <artifactId>mdsal-artifacts</artifactId>
109 <version>${mdsal.version}</version>
111 <scope>import</scope>
114 <groupId>org.opendaylight.netconf</groupId>
115 <artifactId>netconf-artifacts</artifactId>
116 <version>${netconf.version}</version>
118 <scope>import</scope>
121 <groupId>org.opendaylight.netconf</groupId>
122 <artifactId>restconf-artifacts</artifactId>
123 <version>${restconf.version}</version>
125 <scope>import</scope>
128 <groupId>org.opendaylight.mdsal.model</groupId>
129 <artifactId>mdsal-model-artifacts</artifactId>
130 <version>${mdsalmodel.version}</version>
132 <scope>import</scope>
137 <groupId>com.google.guava</groupId>
138 <artifactId>guava</artifactId>
139 <version>${guava.version}</version>
142 <!-- Testing Dependencies -->
144 <groupId>junit</groupId>
145 <artifactId>junit</artifactId>
146 <version>${junit.version}</version>
149 <!-- Dont use mockito-all, it has problematic dependency on harmcrest
150 More details here - https://github.com/mockito/mockito/issues/324-->
152 <groupId>org.mockito</groupId>
153 <artifactId>mockito-core</artifactId>
154 <version>${mockito.version}</version>
158 <groupId>org.hamcrest</groupId>
159 <artifactId>hamcrest-all</artifactId>
160 <version>${hamcrest.version}</version>
164 </dependencyManagement>
171 <artifactId>maven-checkstyle-plugin</artifactId>
172 <version>${checkstyle.version}</version>
174 <!-- Override checkstyle configuration to fit Honeycomb coding style-->
175 <configLocation>honeycomb-checkstyle.xml</configLocation>
176 <includeTestResources>true</includeTestResources>
177 <!--TODO HONEYCOMB-155 enable fail on violation after issues are resolved + set in as errors in checkstyle xml-->
179 org/opendaylight/yang/gen/**,
184 <!-- Override license check configuration to fit Honeycomb coding style-->
186 <id>check-license</id>
190 <phase>process-sources</phase>
192 <headerLocation>HONEYCOMB_LICENSE.txt</headerLocation>
193 <failOnViolation>true</failOnViolation>
194 <failsOnError>true</failsOnError>
195 <outputFile>${project.build.directory}/checkstyle-license-result.xml</outputFile>
199 <!-- Add logging checks from yangtools -->
201 <id>check-logging</id>
205 <phase>process-sources</phase>
207 <failOnViolation>true</failOnViolation>
208 <configLocation>honeycomb-checkstyle-logging.xml</configLocation>
209 <consoleOutput>true</consoleOutput>
210 <includeTestSourceDirectory>true</includeTestSourceDirectory>
211 <sourceDirectory>${project.basedir}</sourceDirectory>
212 <includes>**\/*.java,**\/*.xml,**\/*.ini,**\/*.sh,**\/*.bat,**\/*.yang</includes>
214 **\/target\/,**\/bin\/,**\/target-ide\/,**\/src/main/yang-gen-config\/,**\/src/main/yang-gen-sal\/,**\/src/main/xtend-gen\/,**\/src/main/yang\/
216 <outputFile>${project.build.directory}/checkstyle-logging-result.xml</outputFile>
223 <phase>process-sources</phase>
228 <groupId>io.fd.honeycomb.common</groupId>
229 <artifactId>honeycomb-checkstyle</artifactId>
230 <!-- Hardcoded version to prevent archetype generated projects to use their own project version -->
231 <version>1.16.12-SNAPSHOT</version>
233 <!-- Necessary for logging checks -->
235 <groupId>org.opendaylight.yangtools</groupId>
236 <artifactId>checkstyle-logging</artifactId>
237 <version>${yangtools.version}</version>
241 <!-- Deactivate strict java8 checks -->
242 <!-- TODO HONEYCOMB-156 fix all the javadoc offenders of doclint -->
244 <groupId>org.apache.maven.plugins</groupId>
245 <artifactId>maven-javadoc-plugin</artifactId>
246 <version>${maven.javadoc.version}</version>
248 <additionalparam>-Xdoclint:none</additionalparam>
251 <!-- jacoco test coverage for sonar -->
253 <groupId>org.jacoco</groupId>
254 <artifactId>jacoco-maven-plugin</artifactId>
255 <version>${jacoco.version}</version>
258 <id>pre-unit-test</id>
260 <goal>prepare-agent</goal>
263 <destFile>${sonar.jacoco.reportPath}</destFile>
267 <id>post-unit-test</id>
272 <dataFile>${sonar.jacoco.reportPath}</dataFile>
278 <exclude>**/gen/**</exclude>
279 <exclude>**/generated-sources/**</exclude>
280 <exclude>**/yang-gen/**</exclude>
284 <!-- Enforce maven version -->
286 <groupId>org.apache.maven.plugins</groupId>
287 <artifactId>maven-enforcer-plugin</artifactId>
288 <version>${enforcer.version}</version>
291 <id>enforce-maven</id>
294 <requireMavenVersion>
295 <version>3.1.1</version>
296 </requireMavenVersion>
305 <!-- Compile with google static analysis tool: error_prone -->
307 <groupId>org.apache.maven.plugins</groupId>
308 <artifactId>maven-compiler-plugin</artifactId>
309 <version>${maven.compile.plugin.version}</version>
311 <!-- Use google's error-prone static analysis-->
312 <compilerId>javac-with-errorprone</compilerId>
313 <forceJavacCompilerUse>true</forceJavacCompilerUse>
314 <showWarnings>true</showWarnings>
320 <groupId>org.codehaus.plexus</groupId>
321 <artifactId>plexus-compiler-javac-errorprone</artifactId>
322 <version>2.5</version>
324 <!-- override plexus-compiler-javac-errorprone's dependency on
325 Error Prone with the latest version -->
327 <groupId>com.google.errorprone</groupId>
328 <artifactId>error_prone_core</artifactId>
329 <version>2.0.9</version>
334 <groupId>org.apache.felix</groupId>
335 <artifactId>maven-bundle-plugin</artifactId>
336 <version>${maven.bundle.version}</version>
337 <extensions>true</extensions>
343 <artifactId>maven-enforcer-plugin</artifactId>
346 <artifactId>maven-checkstyle-plugin</artifactId>
349 <artifactId>maven-dependency-plugin</artifactId>
352 <artifactId>maven-compiler-plugin</artifactId>
355 <groupId>org.jacoco</groupId>
356 <artifactId>jacoco-maven-plugin</artifactId>
359 <groupId>org.apache.felix</groupId>
360 <artifactId>maven-bundle-plugin</artifactId>
365 <distributionManagement>
367 <id>fdio-release</id>
368 <url>${nexusproxy}/repositories/fd.io.release/</url>
371 <id>fdio-snapshot</id>
372 <url>${nexusproxy}/repositories/fd.io.snapshot/</url>
373 </snapshotRepository>
374 </distributionManagement>
377 <!-- Using only ODL stable releases -->
380 <enabled>true</enabled>
381 <updatePolicy>never</updatePolicy>
384 <enabled>false</enabled>
386 <id>opendaylight-mirror</id>
387 <name>opendaylight-mirror</name>
388 <url>${odl.nexusproxy}/repositories/public/</url>