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