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