blob: fcdc921bddcbb5272700bfcd9a6bc74f8f0cea6c [file] [log] [blame]
tom0eb04ca2014-08-25 14:34:51 -07001<?xml version="1.0"?>
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 <prerequisites>
5 <maven>3.0.4</maven>
6 </prerequisites>
7 <groupId>net.onrc.onos.of.ctl</groupId>
8 <artifactId>io</artifactId>
9 <version>0.0.1</version>
10 <packaging>bundle</packaging>
11 <name>of-ctl</name>
12 <url>http://onlab.us/</url>
13 <licenses>
14 <license>
15 <name>Apache License, Version 2.0</name>
16 <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
17 </license>
18 </licenses>
19 <repositories>
20 <repository>
21 <id>central</id>
22 <name>Maven Central repository</name>
23 <url>https://repo1.maven.org/maven2</url>
24 </repository>
25 <repository>
26 <id>maven-restlet</id>
27 <name>Public online Restlet repository</name>
28 <url>http://maven.restlet.org</url>
29 <snapshots>
30 <enabled>false</enabled>
31 </snapshots>
32 </repository>
33 <repository>
34 <id>sonatype-oss-snapshot</id>
35 <name>Sonatype OSS snapshot repository</name>
36 <url>https://oss.sonatype.org/content/repositories/snapshots</url>
37 <releases>
38 <enabled>false</enabled>
39 </releases>
40 </repository>
41 </repositories>
42 <properties>
43 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
44 <powermock.version>1.5.5</powermock.version>
45 <restlet.version>2.1.4</restlet.version>
46 <cobertura-maven-plugin.version>2.6</cobertura-maven-plugin.version>
47 <!-- Following 2 findbugs version needs to be updated in sync to match the
48 findbugs version used in findbugs-plugin -->
49 <findbugs.version>3.0.0</findbugs.version>
50 <findbugs-plugin.version>3.0.0</findbugs-plugin.version>
51 <findbugs.effort>Max</findbugs.effort>
52 <findbugs.excludeFilterFile>${project.basedir}/conf/findbugs/exclude.xml</findbugs.excludeFilterFile>
53 <checkstyle-plugin.version>2.12</checkstyle-plugin.version>
54 <!-- To publish javadoc to github,
55 uncomment com.github.github site-maven-plugin and
56 see https://github.com/OPENNETWORKINGLAB/ONOS/pull/425
57 <github.global.server>github</github.global.server>
58 -->
59 <metrics.version>3.0.2</metrics.version>
60 <maven.surefire.plugin.version>2.16</maven.surefire.plugin.version>
61 </properties>
62 <build>
63 <plugins>
64 <plugin>
65 <groupId>org.apache.felix</groupId>
66 <artifactId>maven-scr-plugin</artifactId>
67 <version>1.15.0</version>
68 <executions>
69 <execution>
70 <id>generate-scr-srcdescriptor</id>
71 <goals>
72 <goal>scr</goal>
73 </goals>
74 </execution>
75 </executions>
76 <configuration>
77 <supportedProjectTypes>
78 <supportedProjectType>bundle</supportedProjectType>
79 <supportedProjectType>war</supportedProjectType>
80 </supportedProjectTypes>
81 </configuration>
82</plugin>
83 <plugin>
84 <groupId>org.apache.felix</groupId>
85 <artifactId>maven-bundle-plugin</artifactId>
86 <version>2.3.6</version>
87 <extensions>true</extensions>
88 <configuration>
89 <instructions>
90 <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
91 </instructions>
92 </configuration>
93 </plugin>
94 <!-- Note: the checkstyle configuration is also in the reporting section -->
95 <plugin>
96 <groupId>org.apache.maven.plugins</groupId>
97 <artifactId>maven-checkstyle-plugin</artifactId>
98 <version>${checkstyle-plugin.version}</version>
99 <configuration>
100 <configLocation>${project.basedir}/conf/checkstyle/sun_checks.xml</configLocation>
101 <propertiesLocation>${project.basedir}/conf/checkstyle/checkstyle_maven.properties</propertiesLocation>
102 <failsOnError>false</failsOnError>
103 <logViolationsToConsole>true</logViolationsToConsole>
104 <includeTestSourceDirectory>true</includeTestSourceDirectory>
105 </configuration>
106 <executions>
107 <execution>
108 <id>validate-checkstyle</id>
109 <phase>verify</phase>
110 <goals>
111 <goal>check</goal>
112 </goals>
113 </execution>
114 </executions>
115 </plugin>
116 <plugin>
117 <groupId>org.apache.maven.plugins</groupId>
118 <artifactId>maven-install-plugin</artifactId>
119 <version>2.5.1</version>
120 <executions>
121 </executions>
122 </plugin>
123 <!-- guice maven plugin for dependency injection inside maven -->
124 <plugin>
125 <groupId>org.apache.camel</groupId>
126 <artifactId>guice-maven-plugin</artifactId>
127 <version>2.11.0</version>
128 </plugin>
129 <plugin>
130 <artifactId>maven-clean-plugin</artifactId>
131 <version>2.5</version>
132 </plugin>
133 <plugin>
134 <artifactId>maven-deploy-plugin</artifactId>
135 <version>2.8</version>
136 </plugin>
137 <plugin>
138 <artifactId>maven-jar-plugin</artifactId>
139 <version>2.4</version>
140 </plugin>
141 <plugin>
142 <artifactId>maven-resources-plugin</artifactId>
143 <version>2.6</version>
144 </plugin>
145 <plugin>
146 <artifactId>maven-site-plugin</artifactId>
147 <version>3.3</version>
148 </plugin>
149 <plugin>
150 <groupId>org.apache.maven.plugins</groupId>
151 <artifactId>maven-compiler-plugin</artifactId>
152 <version>3.1</version>
153 <configuration>
154 <source>1.7</source>
155 <target>1.7</target>
156 <encoding>UTF-8</encoding>
157 <showDeprecation>true</showDeprecation>
158 <showWarnings>true</showWarnings>
159 <compilerArgs>
160 <arg>-Xlint:all</arg>
161 <arg>-Xlint:-serial</arg>
162 <arg>-Werror</arg>
163 </compilerArgs>
164 </configuration>
165 <executions>
166 </executions>
167 </plugin>
168 <plugin>
169 <groupId>org.apache.maven.plugins</groupId>
170 <artifactId>maven-surefire-plugin</artifactId>
171 <version>${maven.surefire.plugin.version}</version>
172 <configuration>
173 <!-- FIXME -XX:-UseSplitVerifier added as workaround for JDK 1.7.0u65 + PowerMock issue
174 https://issues.jboss.org/browse/JASSIST-228 -->
175 <argLine>-XX:MaxPermSize=256m -XX:-UseSplitVerifier</argLine>
176 <redirectTestOutputToFile>false</redirectTestOutputToFile>
177 </configuration>
178 </plugin>
179 <!-- TODO exec:java no longer used remove at some point? -->
180 <plugin>
181 <groupId>org.codehaus.mojo</groupId>
182 <artifactId>exec-maven-plugin</artifactId>
183 <version>1.2.1</version>
184 <configuration>
185 <mainClass>net.onrc.onos.core.main.Main</mainClass>
186 </configuration>
187 <executions>
188 </executions>
189 </plugin>
190 <plugin>
191 <groupId>org.apache.maven.plugins</groupId>
192 <artifactId>maven-javadoc-plugin</artifactId>
193 <version>2.9.1</version>
194 <configuration>
195 <charset>UTF-8</charset>
196 <locale>en</locale>
197 <author>false</author>
198 </configuration>
199 </plugin>
200 <plugin>
201 <artifactId>maven-assembly-plugin</artifactId>
202 <version>2.4</version>
203 <configuration>
204 <descriptorRefs>
205 <descriptorRef>jar-with-dependencies</descriptorRef>
206 </descriptorRefs>
207 </configuration>
208 </plugin>
209 <plugin>
210 <!-- Using groovy script to set maven property ${hostname}.
211 This is a workaround to get hostname as a property inside pom file,
212 which current Maven does not provide. -->
213 <groupId>org.codehaus.gmaven</groupId>
214 <artifactId>groovy-maven-plugin</artifactId>
215 <version>2.0</version>
216 <executions>
217 <execution>
218 <phase>initialize</phase>
219 <goals>
220 <goal>execute</goal>
221 </goals>
222 <configuration>
223 <source>
224 project.properties["hostname"] = InetAddress.getLocalHost().getHostName()
225 </source>
226 </configuration>
227 </execution>
228 </executions>
229 </plugin>
230 <plugin>
231 <groupId>org.apache.maven.plugins</groupId>
232 <artifactId>maven-dependency-plugin</artifactId>
233 <version>2.8</version>
234 <executions>
235 <execution>
236 <id>build-classpath</id>
237 <phase>compile</phase>
238 <goals>
239 <goal>build-classpath</goal>
240 </goals>
241 <configuration>
242 <outputFile>${project.basedir}/.javacp.${hostname}</outputFile>
243 </configuration>
244 </execution>
245 </executions>
246 </plugin>
247 <plugin>
248 <groupId>org.codehaus.mojo</groupId>
249 <artifactId>cobertura-maven-plugin</artifactId>
250 <version>${cobertura-maven-plugin.version}</version>
251 <configuration>
252 <instrumentation>
253 <ignores>
254 <ignore>org.slf4j.*</ignore>
255 </ignores>
256 </instrumentation>
257 <quiet>true</quiet>
258 </configuration>
259 <executions>
260 <execution>
261 <goals>
262 <goal>clean</goal>
263 </goals>
264 </execution>
265 </executions>
266 </plugin>
267 <!-- Note: the findbugs configuration is also in the reporting section -->
268 <plugin>
269 <groupId>org.codehaus.mojo</groupId>
270 <artifactId>findbugs-maven-plugin</artifactId>
271 <version>${findbugs-plugin.version}</version>
272 <configuration>
273 <effort>${findbugs.effort}</effort>
274 <excludeFilterFile>${findbugs.excludeFilterFile}</excludeFilterFile>
275 </configuration>
276 <executions>
277 <execution>
278 <id>validate-findbugs</id>
279 <phase>verify</phase>
280 <goals>
281 <goal>check</goal>
282 </goals>
283 </execution>
284 </executions>
285 </plugin>
286 <plugin>
287 <groupId>org.apache.maven.plugins</groupId>
288 <artifactId>maven-pmd-plugin</artifactId>
289 <version>3.1</version>
290 <configuration>
291 <!--
292 Note: Exclusion definition exists in multiple places.
293 - In file ${findbugs.excludeFilterFile} defined at top of pom.xml
294 - In file conf/checkstyle/onos_suppressions.xml
295 - maven-pmd-plugin configuration in pom.xml
296 (under build and reporting)
297 -->
298 <rulesets>
299 <ruleset>${basedir}/conf/pmd/ruleset.xml</ruleset>
300 </rulesets>
301 </configuration>
302 <executions>
303 <execution>
304 <id>validate-pmd</id>
305 <phase>verify</phase>
306 <goals>
307 <!-- Uncomment this goal to make the build fail on pmd errors -->
308 <!--<goal>check</goal>-->
309 </goals>
310 </execution>
311 </executions>
312 </plugin>
313 </plugins>
314 <pluginManagement>
315 <plugins>
316 <!--This plugin's configuration is used to store Eclipse m2e settings
317 only. It has no influence on the Maven build itself. -->
318 <plugin>
319 <groupId>org.eclipse.m2e</groupId>
320 <artifactId>lifecycle-mapping</artifactId>
321 <version>1.0.0</version>
322 <configuration>
323 <lifecycleMappingMetadata>
324 <pluginExecutions>
325 <pluginExecution>
326 <pluginExecutionFilter>
327 <groupId>
328 org.apache.maven.plugins
329 </groupId>
330 <artifactId>
331 maven-dependency-plugin
332 </artifactId>
333 <versionRange>[2.8,)</versionRange>
334 <goals>
335 <goal>build-classpath</goal>
336 </goals>
337 </pluginExecutionFilter>
338 <action>
339 <ignore></ignore>
340 </action>
341 </pluginExecution>
342 <pluginExecution>
343 <pluginExecutionFilter>
344 <groupId>org.codehaus.gmaven</groupId>
345 <artifactId>groovy-maven-plugin</artifactId>
346 <versionRange>[2.0,)</versionRange>
347 <goals>
348 <goal>execute</goal>
349 </goals>
350 </pluginExecutionFilter>
351 <action>
352 <ignore></ignore>
353 </action>
354 </pluginExecution>
355 </pluginExecutions>
356 </lifecycleMappingMetadata>
357 </configuration>
358 </plugin>
359 </plugins>
360 </pluginManagement>
361 </build>
362 <!-- for getting visualization reporting -->
363 <reporting>
364 <excludeDefaults>true</excludeDefaults>
365 <outputDirectory>${project.build.directory}/site</outputDirectory>
366 <plugins>
367 <plugin>
368 <groupId>org.apache.maven.plugins</groupId>
369 <artifactId>maven-project-info-reports-plugin</artifactId>
370 <version>2.7</version>
371 <configuration>
372 <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
373 <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
374 </configuration>
375 <reportSets>
376 <reportSet>
377 <reports>
378 <report>dependencies</report>
379 <report>scm</report>
380 </reports>
381 </reportSet>
382 </reportSets>
383 </plugin>
384 <plugin>
385 <groupId>org.apache.maven.plugins</groupId>
386 <artifactId>maven-javadoc-plugin</artifactId>
387 <version>2.9.1</version>
388 <configuration>
389 <charset>UTF-8</charset>
390 <locale>en</locale>
391 <author>false</author>
392 <excludePackageNames>net.floodlightcontroller.*:net.onrc.onos.core.datastore.serializers</excludePackageNames>
393 </configuration>
394 </plugin>
395 <plugin>
396 <!-- Note: the checkstyle configuration is also in the build section -->
397 <groupId>org.apache.maven.plugins</groupId>
398 <artifactId>maven-checkstyle-plugin</artifactId>
399 <version>${checkstyle-plugin.version}</version>
400 <configuration>
401 <configLocation>conf/checkstyle/sun_checks.xml</configLocation>
402 <!--
403 Note: Exclusion definition exists in multiple places.
404 - In file ${findbugs.excludeFilterFile} defined at top of pom.xml
405 - maven-checkstyle-plugin configuration in pom.xml
406 - maven-pmd-plugin configuration in pom.xml
407 (under build and reporting)
408 -->
409 <propertiesLocation>${basedir}/conf/checkstyle/checkstyle_maven.properties</propertiesLocation>
410 <includeTestSourceDirectory>true</includeTestSourceDirectory>
411 </configuration>
412 <reportSets>
413 <reportSet>
414 <reports>
415 <report>checkstyle</report>
416 </reports>
417 </reportSet>
418 </reportSets>
419 </plugin>
420 <!-- Note: the findbugs configuration is also in the build section -->
421 <plugin>
422 <groupId>org.codehaus.mojo</groupId>
423 <artifactId>findbugs-maven-plugin</artifactId>
424 <version>${findbugs-plugin.version}</version>
425 <configuration>
426 <effort>${findbugs.effort}</effort>
427 <excludeFilterFile>${findbugs.excludeFilterFile}</excludeFilterFile>
428 <reportPlugins>
429 <plugin>
430 <groupId>org.codehaus.mojo</groupId>
431 <artifactId>findbugs-maven-plugin</artifactId>
432 </plugin>
433 </reportPlugins>
434 </configuration>
435 </plugin>
436 <plugin>
437 <groupId>org.apache.maven.plugins</groupId>
438 <artifactId>maven-pmd-plugin</artifactId>
439 <version>3.1</version>
440 <configuration>
441 <!--
442 Note: Exclusion definition exists in multiple places.
443 - In file ${findbugs.excludeFilterFile} defined at top of pom.xml
444 - In file conf/checkstyle/onos_suppressions.xml
445 - maven-pmd-plugin configuration in pom.xml
446 (under build and reporting)
447 -->
448 <excludes>
449 <exclude>**/datastore/serializers/**</exclude>
450 <exclude>**/edu/stanford/**</exclude>
451 <exclude>**/net/floodlightcontroller/**</exclude>
452 </excludes>
453 <rulesets>
454 <ruleset>${basedir}/conf/pmd/onos_ruleset.xml</ruleset>
455 </rulesets>
456 </configuration>
457 </plugin>
458 <plugin>
459 <groupId>org.apache.maven.plugins</groupId>
460 <artifactId>maven-jxr-plugin</artifactId>
461 <version>2.4</version>
462 </plugin>
463 <plugin>
464 <groupId>org.codehaus.mojo</groupId>
465 <artifactId>cobertura-maven-plugin</artifactId>
466 <version>${cobertura-maven-plugin.version}</version>
467 </plugin>
468 </plugins>
469 </reporting>
470 <dependencies>
471 <!-- ONOS's direct dependencies -->
472 <dependency>
473 <groupId>org.apache.felix</groupId>
474 <artifactId>org.apache.felix.scr.annotations</artifactId>
475 <version>1.9.6</version>
476 </dependency>
477 <dependency>
478 <groupId>ch.qos.logback</groupId>
479 <artifactId>logback-classic</artifactId>
480 <version>1.1.2</version>
481 </dependency>
482 <dependency>
483 <groupId>ch.qos.logback</groupId>
484 <artifactId>logback-core</artifactId>
485 <version>1.1.2</version>
486 </dependency>
487 <dependency>
488 <groupId>org.slf4j</groupId>
489 <artifactId>slf4j-api</artifactId>
490 <version>1.7.5</version>
491 </dependency>
492 <dependency>
493 <!-- findbugs suppression annotation and @GuardedBy, etc. -->
494 <groupId>com.google.code.findbugs</groupId>
495 <artifactId>annotations</artifactId>
496 <version>${findbugs.version}</version>
497 </dependency>
498 <dependency>
499 <groupId>org.projectfloodlight</groupId>
500 <artifactId>openflowj</artifactId>
501 <version>0.3.6-SNAPSHOT</version>
502 </dependency>
503 <!-- Floodlight's dependencies -->
504 <dependency>
505 <!-- dependency to old version of netty? -->
506 <groupId>io.netty</groupId>
507 <artifactId>netty</artifactId>
508 <version>3.9.2.Final</version>
509 </dependency>
510 <!-- Dependency for libraries used for testing -->
511 <dependency>
512 <groupId>junit</groupId>
513 <artifactId>junit</artifactId>
514 <version>4.11</version>
515 <scope>test</scope>
516 </dependency>
517 <dependency>
518 <groupId>org.easymock</groupId>
519 <artifactId>easymock</artifactId>
520 <version>3.2</version>
521 <scope>test</scope>
522 </dependency>
523 <dependency>
524 <groupId>org.powermock</groupId>
525 <artifactId>powermock-module-junit4</artifactId>
526 <version>${powermock.version}</version>
527 <scope>test</scope>
528 </dependency>
529 <dependency>
530 <groupId>org.powermock</groupId>
531 <artifactId>powermock-api-easymock</artifactId>
532 <version>${powermock.version}</version>
533 <scope>test</scope>
534 </dependency>
535 </dependencies>
536 <profiles>
537 <!-- Jenkins by default defines a property BUILD_NUMBER which is used to
538 enable the profile. -->
539 <profile>
540 <id>jenkins</id>
541 <activation>
542 <property>
543 <name>env.BUILD_NUMBER</name>
544 </property>
545 </activation>
546 <build>
547 <plugins>
548 <plugin>
549 <groupId>org.codehaus.mojo</groupId>
550 <artifactId>cobertura-maven-plugin</artifactId>
551 <version>${cobertura-maven-plugin.version}</version>
552 <configuration>
553 <formats>
554 <format>xml</format>
555 </formats>
556 <quiet>true</quiet>
557 </configuration>
558 <executions>
559 <execution>
560 <phase>package</phase>
561 <goals>
562 <goal>cobertura</goal>
563 </goals>
564 </execution>
565 </executions>
566 </plugin>
567 </plugins>
568 </build>
569 </profile>
570 <profile>
571 <id>all-tests</id>
572 <build>
573 <plugins>
574 <plugin>
575 <groupId>org.apache.maven.plugins</groupId>
576 <artifactId>maven-surefire-plugin</artifactId>
577 <version>${maven.surefire.plugin.version}</version>
578 <configuration combine.self="merge">
579 <excludedGroups></excludedGroups>
580 </configuration>
581 </plugin>
582 </plugins>
583 </build>
584 </profile>
585 <profile>
586 <id>error-prone</id>
587 <build>
588 <plugins>
589 <plugin>
590 <groupId>org.apache.maven.plugins</groupId>
591 <artifactId>maven-compiler-plugin</artifactId>
592 <version>3.1</version>
593 <configuration>
594 <compilerArgs combine.children="append">
595 <!-- FIXME -Xlint:-path required when using findbugs + error-prone -->
596 <arg>-Xlint:-path</arg>
597 </compilerArgs>
598 <!-- Turn on error-prone -->
599 <compilerId>javac-with-errorprone</compilerId>
600 <forceJavacCompilerUse>true</forceJavacCompilerUse>
601 </configuration>
602 <dependencies combine.children="append">
603 <dependency>
604 <groupId>com.google.errorprone</groupId>
605 <artifactId>error_prone_core</artifactId>
606 <version>1.1.2</version>
607 </dependency>
608 <dependency>
609 <groupId>org.codehaus.plexus</groupId>
610 <artifactId>plexus-compiler-javac</artifactId>
611 <version>2.3</version>
612 </dependency>
613 <dependency>
614 <groupId>org.codehaus.plexus</groupId>
615 <artifactId>plexus-compiler-javac-errorprone</artifactId>
616 <version>2.3</version>
617 </dependency>
618 </dependencies>
619 </plugin>
620 </plugins>
621 </build>
622 </profile>
623 </profiles>
624</project>