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 &amp; 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 &amp; 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>