Poms for all.
Change-Id: I3b63ff268cfc0e7a9459cd98c30f652f2c5effbb
diff --git a/features/features.xml b/features/features.xml
new file mode 100644
index 0000000..4b8f8cb
--- /dev/null
+++ b/features/features.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
+ name="net.onrc.onos-1.0.0">
+ <repository>mvn:net.onrc.onos/onos-features/1.0.0-SNAPSHOT/xml/features</repository>
+
+ <feature name="onos-thirdparty" version="1.0.0"
+ description="ONOS 3rd party dependencies">
+ <bundle>mvn:com.google.code.findbugs/annotations/2.0.2</bundle>
+ <bundle>mvn:io.netty/netty/3.9.2.Final</bundle>
+ <bundle>mvn:com.google.guava/guava/17.0</bundle>
+ <bundle>mvn:com.google.guava/guava/15.0</bundle>
+ </feature>
+
+ <feature name="onos-of-ctl" version="1.0.0"
+ description="ONOS OpenFlow Libraries & Controller">
+ <feature>scr</feature>
+ <feature>thirdparty</feature>
+ <bundle>mvn:net.onrc.onos.sb/onos-sb/0.0.1</bundle>
+ <bundle>mvn:org.projectfloodlight/openflowj/0.3.6-SNAPSHOT</bundle>
+ </feature>
+
+</features>
diff --git a/features/pom.xml b/features/pom.xml
new file mode 100644
index 0000000..baf4bf7
--- /dev/null
+++ b/features/pom.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>net.onrc.onos</groupId>
+ <artifactId>onos</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-features</artifactId>
+ <packaging>jar</packaging>
+
+ <name>onos-features</name>
+ <description>ONOS Apache Karaf feature definitions</description>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.3</version>
+ <executions>
+ <execution>
+ <id>attach-artifacts</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>features.xml</file>
+ <type>xml</type>
+ <classifier>features</classifier>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/of/pom.xml b/of/pom.xml
index 0713b0d..b3be7b8 100644
--- a/of/pom.xml
+++ b/of/pom.xml
@@ -1,20 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
- <groupId>inet.onrc.onos.of</groupId>
- <artifactId>oflib</artifactId>
- <version>1.0-SNAPSHOT</version>
- <packaging>pom</packaging>
- <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>net.onrc.onos</groupId>
+ <artifactId>onos</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
- <name>OpenFlow controller</name>
- <description>This module contains the OpenFlow library and its associated IO loop</description>
+ <artifactId>onos-of</artifactId>
+ <packaging>pom</packaging>
-
- <modules>
- <module>lib</module>
- <module>ctl</module>
- </modules>
-
+ <name>onos-of</name>
+ <description>ONOS OpenFlow Protocol Library & IO</description>
+
+ <modules>
+ <module>lib</module>
+ <module>ctl</module>
+ </modules>
</project>
diff --git a/pom.xml b/pom.xml
index 8e49a69..b453417 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,19 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
-<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/maven-v4_0_0.xsd">
-
- <groupId>net.onrc.onos</groupId>
- <artifactId>onos</artifactId>
- <version>1.0-SNAPSHOT</version>
- <packaging>pom</packaging>
- <modelVersion>4.0.0</modelVersion>
+<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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
- <name>ONOS distributed controller</name>
- <description>ONOS</description>
+ <groupId>net.onrc.onos</groupId>
+ <artifactId>onos</artifactId>
+ <packaging>pom</packaging>
+ <version>1.0.0-SNAPSHOT</version>
-
- <modules>
- <module>of</module>
- </modules>
-
+ <name>onos</name>
+ <description>Open Networking Operating System Root Project</description>
+
+ <modules>
+ <!--
+ <module>of</module>
+ <module>net</module>
+ -->
+ <module>features</module>
+ </modules>
+
+ <url>http://onlab.us/</url>
+
+ <licenses>
+ <license>
+ <!-- TODO: Is this really our license scheme? -->
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ </license>
+ </licenses>
+
+ <repositories>
+ <!-- TODO: We should have our own artifact repo (Artifactory|Nexus) -->
+ <!-- TODO: for now we should avoid specifying repos here and instead rely on settings.xml instead -->
+ <repository>
+ <id>central</id>
+ <name>Maven Central repository</name>
+ <url>https://repo1.maven.org/maven2</url>
+ </repository>
+ <repository>
+ <id>maven-restlet</id>
+ <name>Public online Restlet repository</name>
+ <url>http://maven.restlet.org</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>sonatype-oss-snapshot</id>
+ <name>Sonatype OSS snapshot repository</name>
+ <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ </repositories>
+
+ <properties>
+ <slf4j.version>1.7.5</slf4j.version>
+ <jacoco.version>0.7.0.201403182114</jacoco.version>
+ </properties>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.17</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.3.1</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>2.3.7</version>
+ <extensions>true</extensions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ <version>1.15.0</version>
+ <executions>
+ <execution>
+ <id>generate-scr-srcdescriptor</id>
+ <goals>
+ <goal>scr</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <supportedProjectTypes>
+ <supportedProjectType>bundle</supportedProjectType>
+ <supportedProjectType>war</supportedProjectType>
+ </supportedProjectTypes>
+ </configuration>
+ </plugin>
+
+
+ <!-- TODO: add checkstyle plugin -->
+
+ <!-- TODO: add javadoc plugin for aggregate docs; for explicit invocation only -->
+ <!-- TODO: add jacoco plugin for unit test coverage; for explicit invocation only -->
+ <!-- TODO: add findbugs plugin for static code analysis; for explicit invocation only -->
+ <!-- TODO: add sonarqube plugin for code analysis; for explicit invocation only -->
+
+ </plugins>
+
+ </pluginManagement>
+ </build>
</project>