71becad68b399a91a01f9e05cd650a28f0ff18a3
[openflowjava.git] / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3     <modelVersion>4.0.0</modelVersion>
4     <parent>
5         <groupId>org.opendaylight.odlparent</groupId>
6         <artifactId>odlparent</artifactId>
7         <version>1.5.0-SNAPSHOT</version>
8         <relativePath/>
9     </parent>
10
11     <groupId>org.opendaylight.openflowjava</groupId>
12     <artifactId>openflow-protocol-parent</artifactId>
13     <version>0.6.0-SNAPSHOT</version>
14     <packaging>pom</packaging>
15     <modules>
16         <module>openflowjava-config</module>
17         <module>openflow-protocol-api</module>
18         <module>openflow-protocol-spi</module>
19         <module>util</module>
20         <module>openflow-protocol-impl</module>
21         <module>openflow-protocol-it</module>
22         <module>features</module>
23         <module>simple-client</module>
24     </modules>
25     <scm>
26         <connection>scm:git:ssh://git.opendaylight.org:29418/openflowjava.git</connection>
27         <developerConnection>scm:git:ssh://git.opendaylight.org:29418/openflowjava.git</developerConnection>
28         <url>https://wiki.opendaylight.org/view/Openflow_Protocol_Library:Main</url>
29       <tag>HEAD</tag>
30     </scm>
31
32     <properties>
33         <sonar.host.url>https://sonar.opendaylight.org/</sonar.host.url>
34         <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
35         <sitedeploy>dav:http://nexus.opendaylight.org/content/sites/site</sitedeploy>
36         <siteplugin>3.2</siteplugin>
37         <projectinfo>2.6</projectinfo>
38         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
39         <compiler.version>2.3.2</compiler.version>
40         <surefire.version>2.13</surefire.version>
41         <exam.version>3.0.0</exam.version>
42         <url.version>1.5.0</url.version>
43         <enunciate.version>1.26.2</enunciate.version>
44         <jmxGeneratorPath>${project.build.directory}/yang-gen-config</jmxGeneratorPath>
45         <karaf.distro.empty.version>1.5.0-SNAPSHOT</karaf.distro.empty.version>
46         <salGeneratorPath>${project.build.directory}/yang-gen-sal</salGeneratorPath>
47         <sonar.branch>${user.name}-private-view</sonar.branch>
48         <sonar.skippedModules>org.openflow.openflowj,net.sf.jung2</sonar.skippedModules>
49         <logback.version>1.0.9</logback.version>
50         <slf4j.version>1.7.2</slf4j.version>
51         <yang.prototype.version>1.2.0-SNAPSHOT</yang.prototype.version>
52         <ietf.model.version>2010.09.24.7-SNAPSHOT</ietf.model.version>
53         <yang.ext.version>2013.09.07.7-SNAPSHOT</yang.ext.version>
54         <maven.bundle.version>2.4.0</maven.bundle.version>
55         <guava.version>14.0.1</guava.version> 
56         <netty.version>4.0.23.Final</netty.version>
57         <releaseplugin.version>2.3.2</releaseplugin.version>
58         <yangtools.version>0.7.0-SNAPSHOT</yangtools.version>
59         <yangtools.generator.version>0.7.0-SNAPSHOT</yangtools.generator.version>
60         <config.version>0.3.0-SNAPSHOT</config.version>
61
62         <!-- Sonar config -->
63         <sonar-jacoco-listeners.version>2.4</sonar-jacoco-listeners.version>
64         <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
65         <sonar.jacoco.reportPath>target/code-coverage/jacoco.exec</sonar.jacoco.reportPath>
66         <sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
67         <sonar.profile>Sonar way with Findbugs</sonar.profile>
68     </properties>
69
70     <pluginRepositories>
71         <!-- Opendaylight public group -->
72         <pluginRepository>
73             <id>odlPublic</id>
74             <name>odlPublic</name>
75             <url>${nexusproxy}/groups/public/</url>
76             <snapshots>
77               <enabled>false</enabled>
78             </snapshots>
79             <releases>
80               <enabled>true</enabled>
81             </releases>
82         </pluginRepository>
83         <!-- OpenDayLight Snapshot artifact -->
84         <pluginRepository>
85             <id>opendaylight-snapshot</id>
86             <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
87             <snapshots>
88               <enabled>true</enabled>
89             </snapshots>
90             <releases>
91               <enabled>false</enabled>
92             </releases>
93         </pluginRepository>
94     </pluginRepositories>
95
96
97     <repositories>
98         <!-- Opendaylight public group -->
99         <repository>
100             <id>odlPublic</id>
101             <name>odlPublic</name>
102             <url>${nexusproxy}/groups/public/</url>
103             <snapshots>
104               <enabled>false</enabled>
105             </snapshots>
106             <releases>
107               <enabled>true</enabled>
108             </releases>
109         </repository>
110         <!-- OpenDayLight Snapshot artifact -->
111         <repository>
112             <id>opendaylight-snapshot</id>
113             <name>opendaylight-snapshot</name>
114             <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
115             <snapshots>
116               <enabled>true</enabled>
117             </snapshots>
118             <releases>
119               <enabled>false</enabled>
120             </releases>
121         </repository>
122     </repositories>
123     <distributionManagement>
124         <!-- OpenDayLight Released artifact -->
125         <repository>
126             <id>opendaylight-release</id>
127             <url>${nexusproxy}/repositories/opendaylight.release/</url>
128         </repository>
129         <!-- OpenDayLight Snapshot artifact -->
130         <snapshotRepository>
131             <id>opendaylight-snapshot</id>
132             <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
133         </snapshotRepository>
134         <!-- Site deployment -->
135         <!-- site>
136             <id>website</id>
137             <url>${sitedeploy}</url>
138         </site -->
139     </distributionManagement>
140
141
142     <dependencyManagement>
143         <dependencies>
144             <!-- feature dependencies -->
145             <dependency>
146               <groupId>org.opendaylight.yangtools</groupId>
147               <artifactId>features-yangtools</artifactId>
148               <version>${yangtools.version}</version>
149               <classifier>features</classifier>
150               <type>xml</type>
151             </dependency>
152             <dependency>
153               <groupId>org.opendaylight.controller</groupId>
154               <artifactId>features-config</artifactId>
155               <version>${config.version}</version>
156               <classifier>features</classifier>
157               <type>xml</type>
158             </dependency>
159             <dependency>
160                 <groupId>org.slf4j</groupId>
161                 <artifactId>slf4j-api</artifactId>
162                 <version>${slf4j.version}</version>
163             </dependency>
164             <dependency>
165                 <groupId>io.netty</groupId>
166                 <artifactId>netty-buffer</artifactId>
167                 <version>${netty.version}</version>
168             </dependency>
169             <dependency>
170                 <groupId>io.netty</groupId>
171                 <artifactId>netty-handler</artifactId>
172                 <version>${netty.version}</version>
173             </dependency>
174             <dependency>
175                 <groupId>io.netty</groupId>
176                 <artifactId>netty-codec</artifactId>
177                 <version>${netty.version}</version>
178             </dependency>
179             <dependency>
180                 <groupId>io.netty</groupId>
181                 <artifactId>netty-common</artifactId>
182                 <version>${netty.version}</version>
183             </dependency>
184             <dependency>
185                 <groupId>io.netty</groupId>
186                 <artifactId>netty-transport</artifactId>
187                 <version>${netty.version}</version>
188             </dependency>
189             <dependency>
190                 <groupId>com.google.guava</groupId>
191                 <artifactId>guava</artifactId>
192                 <version>${guava.version}</version>
193             </dependency>
194             <dependency>
195                 <groupId>org.opendaylight.yangtools.model</groupId>
196                 <artifactId>ietf-inet-types</artifactId>
197                 <version>${ietf.model.version}</version>
198             </dependency>
199             <dependency>
200                 <groupId>org.opendaylight.yangtools.model</groupId>
201                 <artifactId>ietf-yang-types</artifactId>
202                 <version>${ietf.model.version}</version>
203             </dependency>
204             <dependency>
205                 <groupId>org.opendaylight.yangtools.model</groupId>
206                 <artifactId>yang-ext</artifactId>
207                 <version>${yang.ext.version}</version>
208             </dependency>
209             <dependency>
210                 <groupId>org.osgi</groupId>
211                 <artifactId>org.osgi.core</artifactId>
212                 <version>5.0.0</version>
213             </dependency>
214             <dependency>
215                 <groupId>org.opendaylight.controller</groupId>
216                 <artifactId>config-api</artifactId>
217                 <version>0.3.0-SNAPSHOT</version>
218             </dependency>
219             <dependency>
220                 <groupId>junit</groupId>
221                 <artifactId>junit</artifactId>
222                 <version>${junit.version}</version>
223                 <scope>test</scope>
224                 <optional>true</optional>
225             </dependency>
226             <dependency>
227                 <groupId>org.mockito</groupId>
228                 <artifactId>mockito-all</artifactId>
229                 <version>1.9.5</version>
230                 <scope>test</scope>
231             </dependency>
232             <dependency>
233               <groupId>org.opendaylight.yangtools</groupId>
234               <artifactId>features-test</artifactId>
235               <version>${yangtools.version}</version>
236             </dependency>
237         </dependencies>
238     </dependencyManagement>
239
240     <dependencies>
241         <!-- Sonar -->
242         <dependency>
243             <groupId>org.codehaus.sonar-plugins.java</groupId>
244             <artifactId>sonar-jacoco-listeners</artifactId>
245             <version>${sonar-jacoco-listeners.version}</version>
246             <scope>test</scope>
247         </dependency>
248     </dependencies>
249
250     <build>
251         <plugins>
252             <plugin>
253                 <groupId>org.apache.maven.plugins</groupId>
254                 <artifactId>maven-compiler-plugin</artifactId>
255                 <inherited>true</inherited>
256                 <configuration>
257                     <source>1.7</source>
258                     <target>1.7</target>
259                 </configuration>
260             </plugin>
261             <plugin>
262                 <artifactId>maven-source-plugin</artifactId>
263                 <executions>
264                     <execution>
265                         <id>attach-sources</id>
266                         <phase>deploy</phase>
267                         <goals>
268                             <goal>jar-no-fork</goal>
269                         </goals> 
270                     </execution>
271                 </executions>
272             </plugin>
273             <plugin>
274               <groupId>org.apache.felix</groupId>
275               <artifactId>maven-bundle-plugin</artifactId>
276               <extensions>true</extensions>
277               <configuration>
278                 <instructions>
279                   <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
280                 </instructions>
281                 <manifestLocation>${project.build.directory}/META-INF</manifestLocation>
282               </configuration>
283             </plugin>
284             <plugin>
285               <groupId>org.apache.maven.plugins</groupId>
286               <artifactId>maven-checkstyle-plugin</artifactId>
287               <version>2.12</version>
288               <configuration>
289                 <failOnViolation>false</failOnViolation>
290                 <configLocation>checkstyle-logging.xml</configLocation>
291                 <consoleOutput>true</consoleOutput>
292                 <includeTestSourceDirectory>true</includeTestSourceDirectory>
293                 <sourceDirectory>${project.basedir}</sourceDirectory>
294                 <includes>**\/*.java,**\/*.xml,**\/*.ini,**\/*.sh,**\/*.bat,**\/*.yang</includes>
295                 <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/src/main/yang-gen-config\/,**\/src/main/yang-gen-sal\/</excludes>
296               </configuration>
297               <dependencies>
298                 <dependency>
299                 <groupId>org.opendaylight.yangtools</groupId>
300                 <artifactId>checkstyle-logging</artifactId>
301                 <version>${yangtools.version}</version>
302                 </dependency>
303               </dependencies>
304               <executions>
305                 <execution>
306                 <goals>
307                   <goal>check</goal>
308                 </goals>
309                 </execution>
310               </executions>
311             </plugin>
312             <plugin>
313                 <groupId>org.codehaus.mojo</groupId>
314                 <artifactId>build-helper-maven-plugin</artifactId>
315             </plugin>
316             <plugin>
317                 <groupId>org.jacoco</groupId>
318                 <artifactId>jacoco-maven-plugin</artifactId>
319                 <executions>
320                     <execution>
321                         <id>prepare-ut-agent</id>
322                         <phase>process-test-classes</phase>
323                         <goals>
324                             <goal>prepare-agent</goal>
325                         </goals>
326                         <configuration>
327                             <destFile>${sonar.jacoco.reportPath}</destFile>
328                             <propertyName>jacoco.agent.ut.arg</propertyName>
329                         </configuration>
330                     </execution>
331                     <execution>
332                         <id>prepare-it-agent</id>
333                         <phase>pre-integration-test</phase>
334                         <goals>
335                             <goal>prepare-agent</goal>
336                         </goals>
337                         <configuration>
338                             <destFile>${sonar.jacoco.itReportPath}</destFile>
339                             <propertyName>jacoco.agent.it.arg</propertyName>
340                         </configuration>
341                     </execution>
342                 </executions>
343             </plugin>
344         </plugins>
345         <pluginManagement>
346             <plugins>
347                 <plugin>
348                     <groupId>org.apache.maven.plugins</groupId>
349                     <artifactId>maven-source-plugin</artifactId>
350                     <version>2.2.1</version>
351                 </plugin>
352                 <plugin>
353                     <groupId>org.apache.maven.plugins</groupId>
354                     <artifactId>maven-deploy-plugin</artifactId>
355                     <version>2.7</version>
356                 </plugin>
357                 <plugin>
358                     <groupId>org.apache.maven.plugins</groupId>
359                     <artifactId>maven-jar-plugin</artifactId>
360                     <version>2.4</version>
361                 </plugin>
362                 <plugin>
363                     <groupId>org.apache.maven.plugins</groupId>
364                     <artifactId>maven-release-plugin</artifactId>
365                     <version>${releaseplugin.version}</version>
366                 </plugin>
367                 <plugin>
368                     <groupId>org.opendaylight.yangtools</groupId>
369                     <artifactId>yang-maven-plugin</artifactId>
370                     <version>${yangtools.version}</version>
371                 </plugin>
372                 <plugin>
373                     <groupId>org.apache.felix</groupId>
374                     <artifactId>maven-bundle-plugin</artifactId>
375                     <version>${maven.bundle.version}</version>
376                 </plugin>
377                 <plugin>
378                     <groupId>org.codehaus.mojo</groupId>
379                     <artifactId>build-helper-maven-plugin</artifactId>
380                     <version>1.8</version>
381                     <executions>
382                         <execution>
383                             <id>add-source</id>
384                             <goals>
385                                 <goal>add-source</goal>
386                             </goals>
387                             <phase>generate-sources</phase>
388                             <configuration>
389                                 <sources>
390                                     <source>src/main/yang</source>
391                                 </sources>
392                             </configuration>
393                         </execution>
394                     </executions>
395                 </plugin>
396                 <plugin>
397                     <groupId>org.apache.maven.plugins</groupId>
398                     <artifactId>maven-failsafe-plugin</artifactId>
399                     <configuration>
400                         <!-- Specific to generate mapping between tests and covered code -->
401                         <argLine>${jacoco.agent.it.arg}</argLine>
402                         <properties>
403                             <property>
404                                 <name>listener</name>
405                                 <value>org.sonar.java.jacoco.JUnitListener</value>
406                             </property>
407                         </properties>
408                         <!-- Let's put failsafe reports with surefire to have access to tests failures/success reports in sonar -->
409                         <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
410                     </configuration>
411                 </plugin>
412                 <plugin>
413                     <groupId>org.apache.maven.plugins</groupId>
414                     <artifactId>maven-surefire-plugin</artifactId>
415                     <configuration>
416                         <!-- Specific to generate mapping between tests and covered code -->
417                         <argLine>${jacoco.agent.ut.arg}</argLine>
418                         <properties>
419                             <property>
420                                 <name>listener</name>
421                                 <value>org.sonar.java.jacoco.JUnitListener</value>
422                             </property>
423                         </properties>
424                     </configuration>
425                 </plugin>
426                 <!-- Ignore/Execute plugin execution -->
427                 <plugin>
428                   <groupId>org.eclipse.m2e</groupId>
429                   <artifactId>lifecycle-mapping</artifactId>
430                   <version>1.0.0</version>
431                   <configuration>
432                     <lifecycleMappingMetadata>
433                       <pluginExecutions>
434                         <pluginExecution>
435                           <pluginExecutionFilter>
436                             <groupId>org.codehaus.mojo</groupId>
437                             <artifactId>properties-maven-plugin</artifactId>
438                             <versionRange>[0.0,)</versionRange>
439                             <goals>
440                               <goal>set-system-properties</goal>
441                             </goals>
442                           </pluginExecutionFilter>
443                           <action>
444                             <ignore/>
445                           </action>
446                         </pluginExecution>
447                         <pluginExecution>
448                           <pluginExecutionFilter>
449                             <groupId>org.codehaus.enunciate</groupId>
450                             <artifactId>maven-enunciate-plugin</artifactId>
451                             <versionRange>[0.0,)</versionRange>
452                             <goals>
453                               <goal>docs</goal>
454                             </goals>
455                           </pluginExecutionFilter>
456                           <action>
457                             <ignore/>
458                           </action>
459                         </pluginExecution>
460                         <pluginExecution>
461                           <pluginExecutionFilter>
462                             <groupId>org.jacoco</groupId>
463                             <artifactId>jacoco-maven-plugin</artifactId>
464                             <versionRange>[0.0,)</versionRange>
465                             <goals>
466                               <goal>prepare-agent</goal>
467                               <goal>pre-test</goal>
468                               <goal>post-test</goal>
469                             </goals>
470                           </pluginExecutionFilter>
471                           <action>
472                             <ignore/>
473                           </action>
474                         </pluginExecution>
475                         <pluginExecution>
476                           <pluginExecutionFilter>
477                             <groupId>org.ops4j.pax.exam</groupId>
478                             <artifactId>maven-paxexam-plugin</artifactId>
479                             <versionRange>[1.2.4,)</versionRange>
480                             <goals>
481                               <goal>generate-depends-file</goal>
482                             </goals>
483                           </pluginExecutionFilter>
484                           <action>
485                             <execute>
486                               <runOnIncremental>false</runOnIncremental>
487                             </execute>
488                           </action>
489                         </pluginExecution>
490                         <pluginExecution>
491                           <pluginExecutionFilter>
492                             <groupId>org.apache.maven.plugins</groupId>
493                             <artifactId>maven-checkstyle-plugin</artifactId>
494                             <versionRange>[2.0,)</versionRange>
495                             <goals>
496                               <goal>check</goal>
497                             </goals>
498                           </pluginExecutionFilter>
499                           <action>
500                             <ignore/>
501                           </action>
502                         </pluginExecution>
503                         <pluginExecution>
504                           <pluginExecutionFilter>
505                             <groupId>org.opendaylight.yangtools</groupId>
506                             <artifactId>yang-maven-plugin</artifactId>
507                             <versionRange>[0.5,)</versionRange>
508                             <goals>
509                               <goal>generate-sources</goal>
510                             </goals>
511                           </pluginExecutionFilter>
512                           <action>
513                             <execute/>
514                           </action>
515                         </pluginExecution>
516                         <pluginExecution>
517                           <pluginExecutionFilter>
518                             <groupId>org.codehaus.groovy.maven</groupId>
519                             <artifactId>gmaven-plugin</artifactId>
520                             <versionRange>1.0</versionRange>
521                             <goals>
522                               <goal>execute</goal>
523                             </goals>
524                           </pluginExecutionFilter>
525                           <action>
526                             <ignore/>
527                           </action>
528                         </pluginExecution>
529                         <pluginExecution>
530                           <pluginExecutionFilter>
531                             <groupId>org.apache.maven.plugins</groupId>
532                             <artifactId>maven-enforcer-plugin</artifactId>
533                             <versionRange>${enforcer.version}</versionRange>
534                             <goals>
535                               <goal>enforce</goal>
536                             </goals>
537                           </pluginExecutionFilter>
538                           <action>
539                             <ignore/>
540                           </action>
541                         </pluginExecution>
542                       </pluginExecutions>
543                     </lifecycleMappingMetadata>
544                   </configuration>
545                 </plugin>
546             </plugins>
547         </pluginManagement>
548     </build>
549     <reporting>
550         <plugins>
551             <plugin>
552                 <groupId>org.codehaus.mojo</groupId>
553                 <artifactId>findbugs-maven-plugin</artifactId>
554                 <version>2.5.2</version>
555                 <configuration>
556                     <effort>Max</effort>
557                     <threshold>Low</threshold>
558                     <goal>site</goal>
559                 </configuration>
560             </plugin>
561             <plugin>
562               <artifactId>maven-jxr-plugin</artifactId>
563               <version>2.3</version>
564               <configuration>
565                 <aggregate>true</aggregate>
566                 <linkJavadoc>true</linkJavadoc>
567               </configuration>
568             </plugin>
569
570             <plugin>
571                 <groupId>org.codehaus.mojo</groupId>
572                 <artifactId>jdepend-maven-plugin</artifactId>
573                 <version>2.0-beta-2</version>
574             </plugin>
575         </plugins>
576     </reporting>
577     <profiles>
578         <profile>
579             <id>viewbuild</id>
580             <activation>
581                 <activeByDefault>true</activeByDefault>
582             </activation>
583             <properties>
584                 <build.suffix>${project.version}</build.suffix>
585             </properties>
586         </profile>
587         <profile>
588             <id>jenkins</id>
589             <activation>
590                 <property>
591                     <name>BUILDSUFFIX</name>
592                 </property>
593             </activation>
594             <properties>
595                 <build.suffix>${BUILDSUFFIX}</build.suffix>
596             </properties>
597         </profile>
598         <profile>
599             <id>repoBuild</id>
600             <build>
601                 <plugins>
602                     <plugin>
603                         <groupId>org.apache.maven.plugins</groupId>
604                         <artifactId>maven-javadoc-plugin</artifactId>
605                         <version>2.8.1</version>
606                         <executions>
607                             <execution>
608                                 <goals>
609                                     <goal>aggregate</goal>
610                                 </goals>
611                                 <phase>site</phase>
612                             </execution>
613                             <execution>
614                                 <id>attach-javadocs</id>
615                                 <goals>
616                                     <goal>jar</goal>
617                                 </goals>
618                             </execution>
619                         </executions>
620                     </plugin>
621                     <plugin>
622                         <groupId>org.apache.maven.plugins</groupId>
623                         <artifactId>maven-source-plugin</artifactId>
624                         <executions>
625                             <execution>
626                                 <id>attach-sources</id>
627                                 <phase>package</phase>
628                                 <goals>
629                                     <goal>jar-no-fork</goal>
630                                 </goals>
631                             </execution>
632                         </executions>
633                     </plugin>
634                 </plugins>
635             </build>
636         </profile>
637     </profiles>
638 </project>