diff --git a/api/pom.xml b/api/pom.xml
new file mode 100644
index 0000000..6e89855
--- /dev/null
+++ b/api/pom.xml
@@ -0,0 +1,73 @@
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2016 Open Networking Laboratory
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<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">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>onos-olt</artifactId>
+        <groupId>org.onosproject</groupId>
+        <version>1.5.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>onos-app-olt-api</artifactId>
+    <packaging>bundle</packaging>
+
+    <url>http://onosproject.org</url>
+
+    <description>CORD OLT application API</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-core-serializers</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-api</artifactId>
+            <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+       <plugins>
+          <plugin>
+              <groupId>org.apache.felix</groupId>
+              <artifactId>maven-bundle-plugin</artifactId>
+              <extensions>true</extensions>
+              <configuration>
+                  <instructions>
+                     <Export-Package>org.onosproject.olt</Export-Package>
+                  </instructions>
+              </configuration>
+          </plugin>
+       </plugins>
+    </build>
+</project>
diff --git a/src/main/java/org/onosproject/olt/api/AccessDeviceEvent.java b/api/src/main/java/org/onosproject/olt/AccessDeviceEvent.java
similarity index 98%
rename from src/main/java/org/onosproject/olt/api/AccessDeviceEvent.java
rename to api/src/main/java/org/onosproject/olt/AccessDeviceEvent.java
index 212fd37..7eda5a9 100644
--- a/src/main/java/org/onosproject/olt/api/AccessDeviceEvent.java
+++ b/api/src/main/java/org/onosproject/olt/AccessDeviceEvent.java
@@ -1,4 +1,4 @@
-package org.onosproject.olt.api;
+package org.onosproject.olt;
 
 import org.onlab.packet.VlanId;
 import org.onosproject.event.AbstractEvent;
diff --git a/src/main/java/org/onosproject/olt/api/AccessDeviceListener.java b/api/src/main/java/org/onosproject/olt/AccessDeviceListener.java
similarity index 85%
rename from src/main/java/org/onosproject/olt/api/AccessDeviceListener.java
rename to api/src/main/java/org/onosproject/olt/AccessDeviceListener.java
index f652a10..9dc4151 100644
--- a/src/main/java/org/onosproject/olt/api/AccessDeviceListener.java
+++ b/api/src/main/java/org/onosproject/olt/AccessDeviceListener.java
@@ -1,4 +1,4 @@
-package org.onosproject.olt.api;
+package org.onosproject.olt;
 
 import org.onosproject.event.EventListener;
 
diff --git a/src/main/java/org/onosproject/olt/AccessDeviceService.java b/api/src/main/java/org/onosproject/olt/AccessDeviceService.java
similarity index 92%
rename from src/main/java/org/onosproject/olt/AccessDeviceService.java
rename to api/src/main/java/org/onosproject/olt/AccessDeviceService.java
index 868f877..831784c 100644
--- a/src/main/java/org/onosproject/olt/AccessDeviceService.java
+++ b/api/src/main/java/org/onosproject/olt/AccessDeviceService.java
@@ -19,8 +19,6 @@
 import org.onlab.packet.VlanId;
 import org.onosproject.event.ListenerService;
 import org.onosproject.net.ConnectPoint;
-import org.onosproject.olt.api.AccessDeviceEvent;
-import org.onosproject.olt.api.AccessDeviceListener;
 
 /**
  * Service for interacting with an access device (OLT).
diff --git a/src/main/java/org/onosproject/olt/api/package-info.java b/api/src/main/java/org/onosproject/olt/package-info.java
similarity index 91%
rename from src/main/java/org/onosproject/olt/api/package-info.java
rename to api/src/main/java/org/onosproject/olt/package-info.java
index f99b4e7..edfcc0a 100644
--- a/src/main/java/org/onosproject/olt/api/package-info.java
+++ b/api/src/main/java/org/onosproject/olt/package-info.java
@@ -15,6 +15,6 @@
  */
 
 /**
- * OLT event api.
+ * OLT application api.
  */
-package org.onosproject.olt.api;
+package org.onosproject.olt;
diff --git a/app/app.xml b/app/app.xml
new file mode 100644
index 0000000..8994bd6
--- /dev/null
+++ b/app/app.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2016 Open Networking Laboratory
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<app name="org.onosproject.olt" origin="ON.Lab" version="${project.version}"
+     featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
+     features="${project.artifactId}">
+    <description>${project.description}</description>
+    <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
+    <artifact>mvn:${project.groupId}/onos-app-olt-api/${project.version}</artifact>
+</app>
diff --git a/app/features.xml b/app/features.xml
new file mode 100644
index 0000000..991cb65
--- /dev/null
+++ b/app/features.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Copyright 2016 Open Networking Laboratory
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${project.version}">
+    <feature name="${project.artifactId}" version="${project.version}"
+             description="${project.description}">
+        <feature>onos-api</feature>
+        <bundle>mvn:${project.groupId}/onos-app-olt-api/${project.version}</bundle>
+        <bundle>mvn:${project.groupId}/onos-app-olt/${project.version}</bundle>
+    </feature>
+</features>
diff --git a/app/pom.xml b/app/pom.xml
new file mode 100644
index 0000000..f4409cb
--- /dev/null
+++ b/app/pom.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2015 Open Networking Laboratory
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<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">
+    <parent>
+        <groupId>org.onosproject</groupId>
+        <artifactId>onos-olt</artifactId>
+        <version>1.5.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>onos-app-olt</artifactId>
+
+    <packaging>bundle</packaging>
+    <description>OLT application for CORD</description>
+
+    <properties>
+        <onos.app.name>org.onosproject.olt</onos.app.name>
+        <web.context>/onos/olt</web.context>
+        <api.version>1.0.0</api.version>
+        <api.title>ONOS OLT REST API</api.title>
+        <api.description>
+            APIs for interacting with the CORD OLT application.
+        </api.description>
+        <api.package>org.onosproject.olt.rest</api.package>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-app-olt-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-cli</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.karaf.shell</groupId>
+            <artifactId>org.apache.karaf.shell.console</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-rest</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-rest</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.ws.rs</groupId>
+            <artifactId>jsr311-api</artifactId>
+            <version>1.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <_wab>src/main/webapp/</_wab>
+                        <Include-Resource>
+                            WEB-INF/classes/apidoc/swagger.json=target/swagger.json,
+                            {maven-resources}
+                        </Include-Resource>
+                        <Bundle-SymbolicName>
+                            ${project.groupId}.${project.artifactId}
+                        </Bundle-SymbolicName>
+                        <Import-Package>
+                            org.slf4j,
+                            org.osgi.framework,
+                            org.osgi.service.*,
+                            javax.ws.rs,
+                            javax.ws.rs.core,
+                            com.sun.jersey.api.core,
+                            com.sun.jersey.spi.container.servlet,
+                            com.sun.jersey.server.impl.container.servlet,
+                            com.fasterxml.jackson.databind,
+                            com.fasterxml.jackson.databind.node,
+                            org.apache.karaf.shell.commands,
+                            org.apache.commons.lang.math.*,
+                            com.google.common.*,
+                            org.onlab.packet.*,
+                            org.onlab.rest.*,
+                            org.onosproject.*,
+                            org.onlab.util.*,
+                            org.jboss.netty.util.*
+                        </Import-Package>
+                        <Web-ContextPath>${web.context}</Web-ContextPath>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/src/main/java/org/onosproject/olt/SubscriberAddCommand.java b/app/src/main/java/org/onosproject/olt/cli/SubscriberAddCommand.java
similarity index 95%
rename from src/main/java/org/onosproject/olt/SubscriberAddCommand.java
rename to app/src/main/java/org/onosproject/olt/cli/SubscriberAddCommand.java
index d9b4559..d353aeb 100644
--- a/src/main/java/org/onosproject/olt/SubscriberAddCommand.java
+++ b/app/src/main/java/org/onosproject/olt/cli/SubscriberAddCommand.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.olt;
+package org.onosproject.olt.cli;
 
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
@@ -23,6 +23,7 @@
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
+import org.onosproject.olt.AccessDeviceService;
 
 /**
  * Adds a subscriber to an access device.
diff --git a/src/main/java/org/onosproject/olt/package-info.java b/app/src/main/java/org/onosproject/olt/cli/package-info.java
similarity index 94%
rename from src/main/java/org/onosproject/olt/package-info.java
rename to app/src/main/java/org/onosproject/olt/cli/package-info.java
index b0954e5..1350289 100644
--- a/src/main/java/org/onosproject/olt/package-info.java
+++ b/app/src/main/java/org/onosproject/olt/cli/package-info.java
@@ -17,4 +17,4 @@
 /**
  * OLT application handling PMC OLT hardware.
  */
-package org.onosproject.olt;
+package org.onosproject.olt.cli;
diff --git a/src/main/java/org/onosproject/olt/AccessDeviceConfig.java b/app/src/main/java/org/onosproject/olt/impl/AccessDeviceConfig.java
similarity index 97%
rename from src/main/java/org/onosproject/olt/AccessDeviceConfig.java
rename to app/src/main/java/org/onosproject/olt/impl/AccessDeviceConfig.java
index 07b73c8..c13ffae 100644
--- a/src/main/java/org/onosproject/olt/AccessDeviceConfig.java
+++ b/app/src/main/java/org/onosproject/olt/impl/AccessDeviceConfig.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.olt;
+package org.onosproject.olt.impl;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import org.onlab.packet.VlanId;
diff --git a/src/main/java/org/onosproject/olt/AccessDeviceData.java b/app/src/main/java/org/onosproject/olt/impl/AccessDeviceData.java
similarity index 98%
rename from src/main/java/org/onosproject/olt/AccessDeviceData.java
rename to app/src/main/java/org/onosproject/olt/impl/AccessDeviceData.java
index 18b5e99..dee5f5a 100644
--- a/src/main/java/org/onosproject/olt/AccessDeviceData.java
+++ b/app/src/main/java/org/onosproject/olt/impl/AccessDeviceData.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.olt;
+package org.onosproject.olt.impl;
 
 import org.onlab.packet.VlanId;
 import org.onosproject.net.DeviceId;
diff --git a/src/main/java/org/onosproject/olt/Olt.java b/app/src/main/java/org/onosproject/olt/impl/Olt.java
similarity index 98%
rename from src/main/java/org/onosproject/olt/Olt.java
rename to app/src/main/java/org/onosproject/olt/impl/Olt.java
index 4b2f55b..11c1e5b 100644
--- a/src/main/java/org/onosproject/olt/Olt.java
+++ b/app/src/main/java/org/onosproject/olt/impl/Olt.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.olt;
+package org.onosproject.olt.impl;
 
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
@@ -54,8 +54,9 @@
 import org.onosproject.net.flowobjective.Objective;
 import org.onosproject.net.flowobjective.ObjectiveContext;
 import org.onosproject.net.flowobjective.ObjectiveError;
-import org.onosproject.olt.api.AccessDeviceEvent;
-import org.onosproject.olt.api.AccessDeviceListener;
+import org.onosproject.olt.AccessDeviceEvent;
+import org.onosproject.olt.AccessDeviceListener;
+import org.onosproject.olt.AccessDeviceService;
 import org.slf4j.Logger;
 
 import java.util.Map;
diff --git a/src/main/java/org/onosproject/olt/package-info.java b/app/src/main/java/org/onosproject/olt/impl/package-info.java
similarity index 94%
copy from src/main/java/org/onosproject/olt/package-info.java
copy to app/src/main/java/org/onosproject/olt/impl/package-info.java
index b0954e5..01dad01 100644
--- a/src/main/java/org/onosproject/olt/package-info.java
+++ b/app/src/main/java/org/onosproject/olt/impl/package-info.java
@@ -17,4 +17,4 @@
 /**
  * OLT application handling PMC OLT hardware.
  */
-package org.onosproject.olt;
+package org.onosproject.olt.impl;
diff --git a/src/main/java/org/onosproject/olt/rest/OltWebResource.java b/app/src/main/java/org/onosproject/olt/rest/OltWebResource.java
similarity index 100%
rename from src/main/java/org/onosproject/olt/rest/OltWebResource.java
rename to app/src/main/java/org/onosproject/olt/rest/OltWebResource.java
diff --git a/src/main/java/org/onosproject/olt/rest/package-info.java b/app/src/main/java/org/onosproject/olt/rest/package-info.java
similarity index 100%
rename from src/main/java/org/onosproject/olt/rest/package-info.java
rename to app/src/main/java/org/onosproject/olt/rest/package-info.java
diff --git a/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/app/src/main/resources/OSGI-INF/blueprint/shell-config.xml
similarity index 93%
rename from src/main/resources/OSGI-INF/blueprint/shell-config.xml
rename to app/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index 00ebe9d..95bac6a 100644
--- a/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/app/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -17,7 +17,7 @@
 
     <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
         <command>
-            <action class="org.onosproject.olt.SubscriberAddCommand"/>
+            <action class="org.onosproject.olt.cli.SubscriberAddCommand"/>
             <completers>
                 <ref component-id="deviceIdCompleter"/>
                 <null/>
diff --git a/src/main/webapp/WEB-INF/web.xml b/app/src/main/webapp/WEB-INF/web.xml
similarity index 100%
rename from src/main/webapp/WEB-INF/web.xml
rename to app/src/main/webapp/WEB-INF/web.xml
diff --git a/pom.xml b/pom.xml
index 8bd944b..7a78165 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,112 +25,14 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>onos-app-olt</artifactId>
+    <artifactId>onos-olt</artifactId>
 
-    <packaging>bundle</packaging>
+    <packaging>pom</packaging>
     <description>OLT application for CORD</description>
 
-    <properties>
-        <onos.app.name>org.onosproject.olt</onos.app.name>
-        <web.context>/onos/olt</web.context>
-        <api.version>1.0.0</api.version>
-        <api.title>ONOS OLT REST API</api.title>
-        <api.description>
-            APIs for interacting with the CORD OLT application.
-        </api.description>
-        <api.package>org.onosproject.olt</api.package>
-    </properties>
+    <modules>
+        <module>api</module>
+        <module>app</module>
+    </modules>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-cli</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.console</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-rest</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onlab-rest</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>jsr311-api</artifactId>
-            <version>1.1.1</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-servlet</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <_wab>src/main/webapp/</_wab>
-                        <Include-Resource>
-                            WEB-INF/classes/apidoc/swagger.json=target/swagger.json,
-                            {maven-resources}
-                        </Include-Resource>
-                        <Bundle-SymbolicName>
-                            ${project.groupId}.${project.artifactId}
-                        </Bundle-SymbolicName>
-                        <Import-Package>
-                            org.slf4j,
-                            org.osgi.framework,
-                            org.osgi.service.*,
-                            javax.ws.rs,
-                            javax.ws.rs.core,
-                            com.sun.jersey.api.core,
-                            com.sun.jersey.spi.container.servlet,
-                            com.sun.jersey.server.impl.container.servlet,
-                            com.fasterxml.jackson.databind,
-                            com.fasterxml.jackson.databind.node,
-                            org.apache.karaf.shell.commands,
-                            org.apache.commons.lang.math.*,
-                            com.google.common.*,
-                            org.onlab.packet.*,
-                            org.onlab.rest.*,
-                            org.onosproject.*,
-                            org.onlab.util.*,
-                            org.jboss.netty.util.*
-                        </Import-Package>
-                        <Web-ContextPath>${web.context}</Web-ContextPath>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
 </project>
