diff --git a/apps/calendar/pom.xml b/apps/calendar/pom.xml
index 396a4d0..4e9cb32 100644
--- a/apps/calendar/pom.xml
+++ b/apps/calendar/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
@@ -37,7 +37,7 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onlab-rest</artifactId>
             <version>${project.version}</version>
         </dependency>
@@ -64,23 +64,23 @@
         </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onlab-thirdparty</artifactId>
     </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onlab-misc</artifactId>
     </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onlab-junit</artifactId>
       <scope>test</scope>
     </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onos-cli</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -111,7 +111,7 @@
                             com.sun.jersey.server.impl.container.servlet,
                             org.onlab.packet.*,
                             org.onlab.rest.*,
-                            org.onlab.onos.*
+                            org.onosproject.*
                         </Import-Package>
                         <Web-ContextPath>${web.context}</Web-ContextPath>
                     </instructions>
diff --git a/apps/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java b/apps/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java
index f6a0f04..2e73a87 100644
--- a/apps/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java
+++ b/apps/calendar/src/main/java/org/onosproject/calendar/BandwidthCalendarResource.java
@@ -13,20 +13,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.calendar;
+package org.onosproject.calendar;
 
 import java.net.URI;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.intent.Intent;
-import org.onlab.onos.net.intent.IntentEvent;
-import org.onlab.onos.net.intent.IntentId;
-import org.onlab.onos.net.intent.IntentListener;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.net.intent.IntentState;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.intent.Intent;
+import org.onosproject.net.intent.IntentEvent;
+import org.onosproject.net.intent.IntentId;
+import org.onosproject.net.intent.IntentListener;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.IntentState;
 import org.onlab.rest.BaseResource;
 
 import javax.ws.rs.POST;
@@ -34,20 +34,20 @@
 import javax.ws.rs.PathParam;
 import javax.ws.rs.core.Response;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.intent.PointToPointIntent;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.intent.PointToPointIntent;
 import org.onlab.packet.Ethernet;
 
-import static org.onlab.onos.net.PortNumber.portNumber;
-import static org.onlab.onos.net.flow.DefaultTrafficTreatment.builder;
+import static org.onosproject.net.PortNumber.portNumber;
+import static org.onosproject.net.flow.DefaultTrafficTreatment.builder;
 
-import static org.onlab.onos.net.intent.IntentState.FAILED;
-import static org.onlab.onos.net.intent.IntentState.INSTALLED;
-import static org.onlab.onos.net.intent.IntentState.WITHDRAWN;
+import static org.onosproject.net.intent.IntentState.FAILED;
+import static org.onosproject.net.intent.IntentState.INSTALLED;
+import static org.onosproject.net.intent.IntentState.WITHDRAWN;
 import static org.slf4j.LoggerFactory.getLogger;
 
 import org.slf4j.Logger;
@@ -143,7 +143,7 @@
     }
 
     protected ApplicationId appId() {
-        return get(CoreService.class).registerApplication("org.onlab.onos.calendar");
+        return get(CoreService.class).registerApplication("org.onosproject.calendar");
     }
 
     // Auxiliary listener to wait until the given intent reaches the installed or failed states.
diff --git a/apps/calendar/src/main/java/org/onosproject/calendar/package-info.java b/apps/calendar/src/main/java/org/onosproject/calendar/package-info.java
index 3d38d16..8cd17a9 100644
--- a/apps/calendar/src/main/java/org/onosproject/calendar/package-info.java
+++ b/apps/calendar/src/main/java/org/onosproject/calendar/package-info.java
@@ -18,4 +18,4 @@
  * Application providing integration between OSCARS and ONOS intent
  * framework via REST API.
  */
-package org.onlab.onos.calendar;
\ No newline at end of file
+package org.onosproject.calendar;
diff --git a/apps/calendar/src/main/webapp/WEB-INF/web.xml b/apps/calendar/src/main/webapp/WEB-INF/web.xml
index 08d2ef7..1a7de2b 100644
--- a/apps/calendar/src/main/webapp/WEB-INF/web.xml
+++ b/apps/calendar/src/main/webapp/WEB-INF/web.xml
@@ -29,7 +29,7 @@
         </init-param>
         <init-param>
             <param-name>com.sun.jersey.config.property.classnames</param-name>
-            <param-value>org.onlab.onos.calendar.BandwidthCalendarResource</param-value>
+            <param-value>org.onosproject.calendar.BandwidthCalendarResource</param-value>
         </init-param>
         <load-on-startup>10</load-on-startup>
     </servlet>
@@ -39,4 +39,4 @@
         <url-pattern>/*</url-pattern>
     </servlet-mapping>
 
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/apps/config/pom.xml b/apps/config/pom.xml
index 0a4ebc7..c5fa1d2 100644
--- a/apps/config/pom.xml
+++ b/apps/config/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
@@ -41,7 +41,7 @@
         <artifactId>jackson-annotations</artifactId>
       </dependency>
       <dependency>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onlab-misc</artifactId>
       </dependency>
     </dependencies> 
diff --git a/apps/config/src/main/java/org/onosproject/config/AddressConfiguration.java b/apps/config/src/main/java/org/onosproject/config/AddressConfiguration.java
index ded98cb..e092586 100644
--- a/apps/config/src/main/java/org/onosproject/config/AddressConfiguration.java
+++ b/apps/config/src/main/java/org/onosproject/config/AddressConfiguration.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.config;
+package org.onosproject.config;
 
 import java.util.Collections;
 import java.util.List;
diff --git a/apps/config/src/main/java/org/onosproject/config/AddressEntry.java b/apps/config/src/main/java/org/onosproject/config/AddressEntry.java
index 93256e4..67707aa 100644
--- a/apps/config/src/main/java/org/onosproject/config/AddressEntry.java
+++ b/apps/config/src/main/java/org/onosproject/config/AddressEntry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.config;
+package org.onosproject.config;
 
 import java.util.List;
 
diff --git a/apps/config/src/main/java/org/onosproject/config/NetworkConfigReader.java b/apps/config/src/main/java/org/onosproject/config/NetworkConfigReader.java
index 846e83c..ffddfea 100644
--- a/apps/config/src/main/java/org/onosproject/config/NetworkConfigReader.java
+++ b/apps/config/src/main/java/org/onosproject/config/NetworkConfigReader.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.config;
+package org.onosproject.config;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -28,12 +28,12 @@
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.host.HostAdminService;
-import org.onlab.onos.net.host.InterfaceIpAddress;
-import org.onlab.onos.net.host.PortAddresses;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.host.HostAdminService;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.host.PortAddresses;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
diff --git a/apps/config/src/main/java/org/onosproject/config/package-info.java b/apps/config/src/main/java/org/onosproject/config/package-info.java
index c97f43e..6552f20 100644
--- a/apps/config/src/main/java/org/onosproject/config/package-info.java
+++ b/apps/config/src/main/java/org/onosproject/config/package-info.java
@@ -18,4 +18,4 @@
  * Simple configuration module to read in supplementary network configuration
  * from a file.
  */
-package org.onlab.onos.config;
+package org.onosproject.config;
diff --git a/apps/demo/pom.xml b/apps/demo/pom.xml
index fe2d916..65729c8 100644
--- a/apps/demo/pom.xml
+++ b/apps/demo/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
@@ -41,13 +41,13 @@
             <artifactId>org.osgi.compendium</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onlab-rest</artifactId>
             <version>${project.version}</version>
         </dependency>
 
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onos-rest</artifactId>
             <version>${project.version}</version>
         </dependency>
@@ -109,7 +109,7 @@
                             com.google.common.*,
                             org.onlab.packet.*,
                             org.onlab.rest.*,
-                            org.onlab.onos.*,
+                            org.onosproject.*,
                             org.onlab.util.*,
                             org.jboss.netty.util.*
                         </Import-Package>
diff --git a/apps/demo/src/main/java/org/onosproject/demo/DemoAPI.java b/apps/demo/src/main/java/org/onosproject/demo/DemoAPI.java
index 34ab546..fd1c86d 100644
--- a/apps/demo/src/main/java/org/onosproject/demo/DemoAPI.java
+++ b/apps/demo/src/main/java/org/onosproject/demo/DemoAPI.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.demo;
+package org.onosproject.demo;
 
 import com.fasterxml.jackson.databind.JsonNode;
 
diff --git a/apps/demo/src/main/java/org/onosproject/demo/DemoInstaller.java b/apps/demo/src/main/java/org/onosproject/demo/DemoInstaller.java
index fd70a0b..fe32eef 100644
--- a/apps/demo/src/main/java/org/onosproject/demo/DemoInstaller.java
+++ b/apps/demo/src/main/java/org/onosproject/demo/DemoInstaller.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.demo;
+package org.onosproject.demo;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.google.common.base.Predicate;
@@ -28,24 +28,24 @@
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.Service;
 
-import org.onlab.onos.cluster.ClusterService;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.mastership.MastershipService;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.MastershipRole;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.intent.Constraint;
-import org.onlab.onos.net.intent.HostToHostIntent;
-import org.onlab.onos.net.intent.Intent;
-import org.onlab.onos.net.intent.IntentBatchService;
-import org.onlab.onos.net.intent.IntentOperations;
-import org.onlab.onos.net.intent.IntentService;
+import org.onosproject.cluster.ClusterService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.mastership.MastershipService;
+import org.onosproject.net.Host;
+import org.onosproject.net.HostId;
+import org.onosproject.net.MastershipRole;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.intent.Constraint;
+import org.onosproject.net.intent.HostToHostIntent;
+import org.onosproject.net.intent.Intent;
+import org.onosproject.net.intent.IntentBatchService;
+import org.onosproject.net.intent.IntentOperations;
+import org.onosproject.net.intent.IntentService;
 import org.slf4j.Logger;
 
 
@@ -108,7 +108,7 @@
     @Activate
     public void activate() {
         String nodeId = clusterService.getLocalNode().ip().toString();
-        appId = coreService.registerApplication("org.onlab.onos.demo.installer."
+        appId = coreService.registerApplication("org.onosproject.demo.installer."
                                                         + nodeId);
         worker = Executors.newFixedThreadPool(1,
                                               new ThreadFactoryBuilder()
diff --git a/apps/demo/src/main/java/org/onosproject/demo/DemoResource.java b/apps/demo/src/main/java/org/onosproject/demo/DemoResource.java
index 91e8b62..a91d771 100644
--- a/apps/demo/src/main/java/org/onosproject/demo/DemoResource.java
+++ b/apps/demo/src/main/java/org/onosproject/demo/DemoResource.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.demo;
+package org.onosproject.demo;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/apps/demo/src/main/java/org/onosproject/demo/package-info.java b/apps/demo/src/main/java/org/onosproject/demo/package-info.java
index b60eb15..f583a0e 100644
--- a/apps/demo/src/main/java/org/onosproject/demo/package-info.java
+++ b/apps/demo/src/main/java/org/onosproject/demo/package-info.java
@@ -17,4 +17,4 @@
 /**
  *  Demo applications live here.
  */
-package org.onlab.onos.demo;
+package org.onosproject.demo;
diff --git a/apps/demo/src/main/webapp/WEB-INF/web.xml b/apps/demo/src/main/webapp/WEB-INF/web.xml
index 429287e..29716df 100644
--- a/apps/demo/src/main/webapp/WEB-INF/web.xml
+++ b/apps/demo/src/main/webapp/WEB-INF/web.xml
@@ -30,7 +30,7 @@
         <init-param>
             <param-name>com.sun.jersey.config.property.classnames</param-name>
             <param-value>
-                org.onlab.onos.demo.DemoResource
+                org.onosproject.demo.DemoResource
             </param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
@@ -41,4 +41,4 @@
         <url-pattern>/*</url-pattern>
     </servlet-mapping>
 
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/apps/foo/pom.xml b/apps/foo/pom.xml
index 828a98b..eab46fe 100644
--- a/apps/foo/pom.xml
+++ b/apps/foo/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
@@ -33,22 +33,22 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onos-cli</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onlab-osgi</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onlab-nio</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onlab-netty</artifactId>
             <version>${project.version}</version>
         </dependency>
@@ -57,7 +57,7 @@
             <artifactId>org.apache.karaf.shell.console</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onlab-misc</artifactId>
         </dependency>
         <dependency>
diff --git a/apps/foo/src/main/java/org/onosproject/foo/FooComponent.java b/apps/foo/src/main/java/org/onosproject/foo/FooComponent.java
index 268f6f6..766c1a2 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/FooComponent.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/FooComponent.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import static java.util.concurrent.Executors.newScheduledThreadPool;
 import static org.onlab.util.Tools.namedThreads;
@@ -30,25 +30,25 @@
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.cluster.ClusterEvent;
-import org.onlab.onos.cluster.ClusterEventListener;
-import org.onlab.onos.cluster.ClusterService;
-import org.onlab.onos.cluster.NodeId;
-import org.onlab.onos.mastership.MastershipEvent;
-import org.onlab.onos.mastership.MastershipListener;
-import org.onlab.onos.mastership.MastershipService;
-import org.onlab.onos.net.device.DeviceEvent;
-import org.onlab.onos.net.device.DeviceListener;
-import org.onlab.onos.net.device.DeviceService;
-import org.onlab.onos.net.intent.IntentEvent;
-import org.onlab.onos.net.intent.IntentListener;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.store.service.DatabaseAdminService;
-import org.onlab.onos.store.service.DatabaseException;
-import org.onlab.onos.store.service.DatabaseService;
-import org.onlab.onos.store.service.Lock;
-import org.onlab.onos.store.service.LockService;
-import org.onlab.onos.store.service.VersionedValue;
+import org.onosproject.cluster.ClusterEvent;
+import org.onosproject.cluster.ClusterEventListener;
+import org.onosproject.cluster.ClusterService;
+import org.onosproject.cluster.NodeId;
+import org.onosproject.mastership.MastershipEvent;
+import org.onosproject.mastership.MastershipListener;
+import org.onosproject.mastership.MastershipService;
+import org.onosproject.net.device.DeviceEvent;
+import org.onosproject.net.device.DeviceListener;
+import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.intent.IntentEvent;
+import org.onosproject.net.intent.IntentListener;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.store.service.DatabaseAdminService;
+import org.onosproject.store.service.DatabaseException;
+import org.onosproject.store.service.DatabaseService;
+import org.onosproject.store.service.Lock;
+import org.onosproject.store.service.LockService;
+import org.onosproject.store.service.VersionedValue;
 import org.slf4j.Logger;
 
 /**
diff --git a/apps/foo/src/main/java/org/onosproject/foo/IOLoopTestClient.java b/apps/foo/src/main/java/org/onosproject/foo/IOLoopTestClient.java
index 7ea0d26..4166738 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/IOLoopTestClient.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/IOLoopTestClient.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import com.google.common.collect.Lists;
 import org.onlab.nio.IOLoop;
@@ -43,7 +43,7 @@
 import static java.lang.String.format;
 import static java.lang.System.nanoTime;
 import static java.lang.System.out;
-import static org.onlab.onos.foo.IOLoopTestServer.PORT;
+import static org.onosproject.foo.IOLoopTestServer.PORT;
 import static org.onlab.util.Tools.delay;
 import static org.onlab.util.Tools.namedThreads;
 
diff --git a/apps/foo/src/main/java/org/onosproject/foo/IOLoopTestServer.java b/apps/foo/src/main/java/org/onosproject/foo/IOLoopTestServer.java
index 7fe743c..cbe51c5 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/IOLoopTestServer.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/IOLoopTestServer.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import com.google.common.collect.Lists;
 import org.onlab.nio.AcceptorLoop;
diff --git a/apps/foo/src/main/java/org/onosproject/foo/NettyEchoHandler.java b/apps/foo/src/main/java/org/onosproject/foo/NettyEchoHandler.java
index c7bf2f9..c736948 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/NettyEchoHandler.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/NettyEchoHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import java.io.IOException;
 
diff --git a/apps/foo/src/main/java/org/onosproject/foo/NettyNothingHandler.java b/apps/foo/src/main/java/org/onosproject/foo/NettyNothingHandler.java
index fee45355..bc85583 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/NettyNothingHandler.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/NettyNothingHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import org.onlab.netty.Message;
 import org.onlab.netty.MessageHandler;
diff --git a/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyClient.java b/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyClient.java
index cff9f3b..d5702ae 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyClient.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyClient.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import static java.lang.Thread.sleep;
 
diff --git a/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyClientCommand.java b/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyClientCommand.java
index 5bf7e69..e7a2a4b 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyClientCommand.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyClientCommand.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
-import static org.onlab.onos.foo.SimpleNettyClient.startStandalone;
-import static org.onlab.onos.foo.SimpleNettyClient.stop;
+import static org.onosproject.foo.SimpleNettyClient.startStandalone;
+import static org.onosproject.foo.SimpleNettyClient.stop;
 
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
-import org.onlab.onos.cli.AbstractShellCommand;
+import org.onosproject.cli.AbstractShellCommand;
 
 /**
  * Test Netty client performance.
diff --git a/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyServer.java b/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyServer.java
index b2c8b3f..35472e9 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyServer.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyServer.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import org.onlab.netty.NettyMessagingService;
 import org.slf4j.Logger;
diff --git a/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyServerCommand.java b/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyServerCommand.java
index 28be149..77e380e 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyServerCommand.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/SimpleNettyServerCommand.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
-import static org.onlab.onos.foo.SimpleNettyServer.startStandalone;
+import static org.onosproject.foo.SimpleNettyServer.startStandalone;
 
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
-import org.onlab.onos.cli.AbstractShellCommand;
+import org.onosproject.cli.AbstractShellCommand;
 
 /**
  * Starts the Simple Netty server.
diff --git a/apps/foo/src/main/java/org/onosproject/foo/TestIOClientCommand.java b/apps/foo/src/main/java/org/onosproject/foo/TestIOClientCommand.java
index 4b13b8a..dcfa044 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/TestIOClientCommand.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/TestIOClientCommand.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
-import org.onlab.onos.cli.AbstractShellCommand;
+import org.onosproject.cli.AbstractShellCommand;
 
-import static org.onlab.onos.foo.IOLoopTestClient.startStandalone;
+import static org.onosproject.foo.IOLoopTestClient.startStandalone;
 
 /**
  * Starts the test IO loop client.
diff --git a/apps/foo/src/main/java/org/onosproject/foo/TestIOServerCommand.java b/apps/foo/src/main/java/org/onosproject/foo/TestIOServerCommand.java
index ff5eb8e..31bcbdf 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/TestIOServerCommand.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/TestIOServerCommand.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
-import org.onlab.onos.cli.AbstractShellCommand;
+import org.onosproject.cli.AbstractShellCommand;
 
-import static org.onlab.onos.foo.IOLoopTestServer.startStandalone;
+import static org.onosproject.foo.IOLoopTestServer.startStandalone;
 
 /**
  * Starts the test IO loop server.
diff --git a/apps/foo/src/main/java/org/onosproject/foo/TestMessage.java b/apps/foo/src/main/java/org/onosproject/foo/TestMessage.java
index fcfbb07..98ef612 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/TestMessage.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/TestMessage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import org.onlab.nio.AbstractMessage;
 
diff --git a/apps/foo/src/main/java/org/onosproject/foo/TestMessageStream.java b/apps/foo/src/main/java/org/onosproject/foo/TestMessageStream.java
index f18a5df..83f9eee 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/TestMessageStream.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/TestMessageStream.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
 
 import org.onlab.nio.IOLoop;
 import org.onlab.nio.MessageStream;
diff --git a/apps/foo/src/main/java/org/onosproject/foo/package-info.java b/apps/foo/src/main/java/org/onosproject/foo/package-info.java
index b5cca95..d1a053e 100644
--- a/apps/foo/src/main/java/org/onosproject/foo/package-info.java
+++ b/apps/foo/src/main/java/org/onosproject/foo/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Sample application for use in various experiments.
  */
-package org.onlab.onos.foo;
+package org.onosproject.foo;
diff --git a/apps/foo/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/apps/foo/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index d9c61c9..3c04bc1 100644
--- a/apps/foo/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/apps/foo/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -17,16 +17,16 @@
 
     <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
         <command>
-            <action class="org.onlab.onos.foo.TestIOClientCommand"/>
+            <action class="org.onosproject.foo.TestIOClientCommand"/>
         </command>
         <command>
-            <action class="org.onlab.onos.foo.TestIOServerCommand"/>
+            <action class="org.onosproject.foo.TestIOServerCommand"/>
         </command>
         <command>
-            <action class="org.onlab.onos.foo.SimpleNettyServerCommand"/>
+            <action class="org.onosproject.foo.SimpleNettyServerCommand"/>
         </command>
         <command>
-            <action class="org.onlab.onos.foo.SimpleNettyClientCommand"/>
+            <action class="org.onosproject.foo.SimpleNettyClientCommand"/>
         </command>
     </command-bundle>
 
diff --git a/apps/fwd/pom.xml b/apps/fwd/pom.xml
index e05c3c3..34be76a 100644
--- a/apps/fwd/pom.xml
+++ b/apps/fwd/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
diff --git a/apps/fwd/src/main/java/org/onosproject/fwd/ReactiveForwarding.java b/apps/fwd/src/main/java/org/onosproject/fwd/ReactiveForwarding.java
index b452eea..0678ccf 100644
--- a/apps/fwd/src/main/java/org/onosproject/fwd/ReactiveForwarding.java
+++ b/apps/fwd/src/main/java/org/onosproject/fwd/ReactiveForwarding.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.fwd;
+package org.onosproject.fwd;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -27,25 +27,25 @@
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.DefaultFlowRule;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.FlowRule;
-import org.onlab.onos.net.flow.FlowRuleService;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.packet.InboundPacket;
-import org.onlab.onos.net.packet.PacketContext;
-import org.onlab.onos.net.packet.PacketProcessor;
-import org.onlab.onos.net.packet.PacketService;
-import org.onlab.onos.net.topology.TopologyService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.Host;
+import org.onosproject.net.HostId;
+import org.onosproject.net.Path;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.DefaultFlowRule;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.FlowRule;
+import org.onosproject.net.flow.FlowRuleService;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.packet.InboundPacket;
+import org.onosproject.net.packet.PacketContext;
+import org.onosproject.net.packet.PacketProcessor;
+import org.onosproject.net.packet.PacketService;
+import org.onosproject.net.topology.TopologyService;
 import org.onlab.packet.Ethernet;
 import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
@@ -86,7 +86,7 @@
 
     @Activate
     public void activate() {
-        appId = coreService.registerApplication("org.onlab.onos.fwd");
+        appId = coreService.registerApplication("org.onosproject.fwd");
         packetService.addProcessor(processor, PacketProcessor.ADVISOR_MAX + 2);
         log.info("Started with Application ID {}", appId.id());
     }
diff --git a/apps/fwd/src/main/java/org/onosproject/fwd/package-info.java b/apps/fwd/src/main/java/org/onosproject/fwd/package-info.java
index 7fa2045..b947d40 100644
--- a/apps/fwd/src/main/java/org/onosproject/fwd/package-info.java
+++ b/apps/fwd/src/main/java/org/onosproject/fwd/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Sample application that provides simple form of reactive forwarding.
  */
-package org.onlab.onos.fwd;
+package org.onosproject.fwd;
diff --git a/apps/ifwd/pom.xml b/apps/ifwd/pom.xml
index d3ad23e..1e98a09 100644
--- a/apps/ifwd/pom.xml
+++ b/apps/ifwd/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
diff --git a/apps/ifwd/src/main/java/org/onosproject/ifwd/IntentReactiveForwarding.java b/apps/ifwd/src/main/java/org/onosproject/ifwd/IntentReactiveForwarding.java
index 61c7f65..2db3df2 100644
--- a/apps/ifwd/src/main/java/org/onosproject/ifwd/IntentReactiveForwarding.java
+++ b/apps/ifwd/src/main/java/org/onosproject/ifwd/IntentReactiveForwarding.java
@@ -13,32 +13,32 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.ifwd;
+package org.onosproject.ifwd;
 
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.intent.HostToHostIntent;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.net.packet.DefaultOutboundPacket;
-import org.onlab.onos.net.packet.InboundPacket;
-import org.onlab.onos.net.packet.OutboundPacket;
-import org.onlab.onos.net.packet.PacketContext;
-import org.onlab.onos.net.packet.PacketProcessor;
-import org.onlab.onos.net.packet.PacketService;
-import org.onlab.onos.net.topology.TopologyService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.Host;
+import org.onosproject.net.HostId;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.intent.HostToHostIntent;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.packet.DefaultOutboundPacket;
+import org.onosproject.net.packet.InboundPacket;
+import org.onosproject.net.packet.OutboundPacket;
+import org.onosproject.net.packet.PacketContext;
+import org.onosproject.net.packet.PacketProcessor;
+import org.onosproject.net.packet.PacketService;
+import org.onosproject.net.topology.TopologyService;
 import org.onlab.packet.Ethernet;
 import org.slf4j.Logger;
 
@@ -72,7 +72,7 @@
 
     @Activate
     public void activate() {
-        appId = coreService.registerApplication("org.onlab.onos.ifwd");
+        appId = coreService.registerApplication("org.onosproject.ifwd");
         packetService.addProcessor(processor, PacketProcessor.ADVISOR_MAX + 2);
         log.info("Started");
     }
diff --git a/apps/ifwd/src/main/java/org/onosproject/ifwd/package-info.java b/apps/ifwd/src/main/java/org/onosproject/ifwd/package-info.java
index 48dd937..f074606 100644
--- a/apps/ifwd/src/main/java/org/onosproject/ifwd/package-info.java
+++ b/apps/ifwd/src/main/java/org/onosproject/ifwd/package-info.java
@@ -18,4 +18,4 @@
  * Sample application that provides simple form of reactive forwarding
  * using the intent service.
  */
-package org.onlab.onos.ifwd;
+package org.onosproject.ifwd;
diff --git a/apps/metrics/intent/pom.xml b/apps/metrics/intent/pom.xml
index b1beff7..c2445e5 100644
--- a/apps/metrics/intent/pom.xml
+++ b/apps/metrics/intent/pom.xml
@@ -20,7 +20,7 @@
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <groupId>org.onlab.onos</groupId>
+    <groupId>org.onosproject</groupId>
     <artifactId>onos-app-metrics</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -33,7 +33,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onos-cli</artifactId>
       <version>${project.version}</version>
     </dependency>
diff --git a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java
index f4d5122..63f22ff 100644
--- a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java
+++ b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.metrics.intent;
+package org.onosproject.metrics.intent;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -29,11 +29,11 @@
 import org.apache.felix.scr.annotations.Service;
 import org.onlab.metrics.EventMetric;
 import org.onlab.metrics.MetricsService;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.intent.IntentEvent;
-import org.onlab.onos.net.intent.IntentListener;
-import org.onlab.onos.net.intent.IntentService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.intent.IntentEvent;
+import org.onosproject.net.intent.IntentListener;
+import org.onosproject.net.intent.IntentService;
 import org.slf4j.Logger;
 
 /**
@@ -83,7 +83,7 @@
     @Activate
     protected void activate() {
         appId =
-            coreService.registerApplication("org.onlab.onos.metrics.intent");
+            coreService.registerApplication("org.onosproject.metrics.intent");
 
         clear();
         registerMetrics();
diff --git a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/IntentMetricsService.java b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/IntentMetricsService.java
index dca3bac..df0b94c 100644
--- a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/IntentMetricsService.java
+++ b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/IntentMetricsService.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.metrics.intent;
+package org.onosproject.metrics.intent;
 
 import java.util.List;
 import org.onlab.metrics.EventMetric;
-import org.onlab.onos.net.intent.IntentEvent;
+import org.onosproject.net.intent.IntentEvent;
 
 /**
  * Service interface exported by IntentMetrics.
diff --git a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/IntentEventsListCommand.java b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/IntentEventsListCommand.java
index e7abe76..3c8457a 100644
--- a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/IntentEventsListCommand.java
+++ b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/IntentEventsListCommand.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.metrics.intent.cli;
+package org.onosproject.metrics.intent.cli;
 
 import java.util.List;
 
@@ -22,9 +22,9 @@
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.karaf.shell.commands.Command;
-import org.onlab.onos.cli.AbstractShellCommand;
-import org.onlab.onos.metrics.intent.IntentMetricsService;
-import org.onlab.onos.net.intent.IntentEvent;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.metrics.intent.IntentMetricsService;
+import org.onosproject.net.intent.IntentEvent;
 
 /**
  * Command to show the list of last intent events.
diff --git a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/IntentEventsMetricsCommand.java b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/IntentEventsMetricsCommand.java
index 65df468..932566b 100644
--- a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/IntentEventsMetricsCommand.java
+++ b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/IntentEventsMetricsCommand.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.metrics.intent.cli;
+package org.onosproject.metrics.intent.cli;
 
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
@@ -27,8 +27,8 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.karaf.shell.commands.Command;
 import org.onlab.metrics.EventMetric;
-import org.onlab.onos.cli.AbstractShellCommand;
-import org.onlab.onos.metrics.intent.IntentMetricsService;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.metrics.intent.IntentMetricsService;
 
 /**
  * Command to show the intent events metrics.
diff --git a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/package-info.java b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/package-info.java
index 9b3e976..ddc7877 100644
--- a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/package-info.java
+++ b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/cli/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Intent metrics command-line handlers.
  */
-package org.onlab.onos.metrics.intent.cli;
\ No newline at end of file
+package org.onosproject.metrics.intent.cli;
diff --git a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/package-info.java b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/package-info.java
index 78eaa06..9a7ac66 100644
--- a/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/package-info.java
+++ b/apps/metrics/intent/src/main/java/org/onosproject/metrics/intent/package-info.java
@@ -17,4 +17,4 @@
 /**
  * ONOS Intent Metrics Application that collects intent-related metrics.
  */
-package org.onlab.onos.metrics.intent;
+package org.onosproject.metrics.intent;
diff --git a/apps/metrics/intent/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/apps/metrics/intent/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index 4053487..d52ff5a 100644
--- a/apps/metrics/intent/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/apps/metrics/intent/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -17,10 +17,10 @@
 
   <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
     <command>
-      <action class="org.onlab.onos.metrics.intent.cli.IntentEventsListCommand"/>
+      <action class="org.onosproject.metrics.intent.cli.IntentEventsListCommand"/>
     </command>
     <command>
-      <action class="org.onlab.onos.metrics.intent.cli.IntentEventsMetricsCommand"/>
+      <action class="org.onosproject.metrics.intent.cli.IntentEventsMetricsCommand"/>
     </command>
   </command-bundle>
 
diff --git a/apps/metrics/pom.xml b/apps/metrics/pom.xml
index 41d8ceb..a76b685 100644
--- a/apps/metrics/pom.xml
+++ b/apps/metrics/pom.xml
@@ -20,7 +20,7 @@
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <groupId>org.onlab.onos</groupId>
+    <groupId>org.onosproject</groupId>
     <artifactId>onos-apps</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -38,7 +38,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onlab-misc</artifactId>
     </dependency>
 
diff --git a/apps/metrics/topology/pom.xml b/apps/metrics/topology/pom.xml
index 85c24b2..746d4c4 100644
--- a/apps/metrics/topology/pom.xml
+++ b/apps/metrics/topology/pom.xml
@@ -20,7 +20,7 @@
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <groupId>org.onlab.onos</groupId>
+    <groupId>org.onosproject</groupId>
     <artifactId>onos-app-metrics</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -33,7 +33,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onos-cli</artifactId>
       <version>${project.version}</version>
     </dependency>
diff --git a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/TopologyMetrics.java b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/TopologyMetrics.java
index fa05dab..ed446dc 100644
--- a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/TopologyMetrics.java
+++ b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/TopologyMetrics.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.metrics.topology;
+package org.onosproject.metrics.topology;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -29,21 +29,21 @@
 import org.apache.felix.scr.annotations.Service;
 import org.onlab.metrics.EventMetric;
 import org.onlab.metrics.MetricsService;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.event.Event;
-import org.onlab.onos.net.device.DeviceEvent;
-import org.onlab.onos.net.device.DeviceListener;
-import org.onlab.onos.net.device.DeviceService;
-import org.onlab.onos.net.host.HostEvent;
-import org.onlab.onos.net.host.HostListener;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.link.LinkEvent;
-import org.onlab.onos.net.link.LinkListener;
-import org.onlab.onos.net.link.LinkService;
-import org.onlab.onos.net.topology.TopologyEvent;
-import org.onlab.onos.net.topology.TopologyListener;
-import org.onlab.onos.net.topology.TopologyService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.event.Event;
+import org.onosproject.net.device.DeviceEvent;
+import org.onosproject.net.device.DeviceListener;
+import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.host.HostEvent;
+import org.onosproject.net.host.HostListener;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.link.LinkEvent;
+import org.onosproject.net.link.LinkListener;
+import org.onosproject.net.link.LinkService;
+import org.onosproject.net.topology.TopologyEvent;
+import org.onosproject.net.topology.TopologyListener;
+import org.onosproject.net.topology.TopologyService;
 import org.slf4j.Logger;
 
 /**
@@ -106,7 +106,7 @@
     @Activate
     protected void activate() {
         appId =
-            coreService.registerApplication("org.onlab.onos.metrics.topology");
+            coreService.registerApplication("org.onosproject.metrics.topology");
 
         clear();
         registerMetrics();
diff --git a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/TopologyMetricsService.java b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/TopologyMetricsService.java
index 23abea6..77809ca 100644
--- a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/TopologyMetricsService.java
+++ b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/TopologyMetricsService.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.metrics.topology;
+package org.onosproject.metrics.topology;
 
 import java.util.List;
 import org.onlab.metrics.EventMetric;
-import org.onlab.onos.event.Event;
+import org.onosproject.event.Event;
 
 /**
  * Service interface exported by TopologyMetrics.
diff --git a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/TopologyEventsListCommand.java b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/TopologyEventsListCommand.java
index 567e97a..9634df6 100644
--- a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/TopologyEventsListCommand.java
+++ b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/TopologyEventsListCommand.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.metrics.topology.cli;
+package org.onosproject.metrics.topology.cli;
 
 import java.util.List;
 
@@ -22,10 +22,10 @@
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.karaf.shell.commands.Command;
-import org.onlab.onos.cli.AbstractShellCommand;
-import org.onlab.onos.event.Event;
-import org.onlab.onos.metrics.topology.TopologyMetricsService;
-import org.onlab.onos.net.topology.TopologyEvent;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.event.Event;
+import org.onosproject.metrics.topology.TopologyMetricsService;
+import org.onosproject.net.topology.TopologyEvent;
 
 /**
  * Command to show the list of last topology events.
diff --git a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/TopologyEventsMetricsCommand.java b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/TopologyEventsMetricsCommand.java
index f0c5bec..4205dfa 100644
--- a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/TopologyEventsMetricsCommand.java
+++ b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/TopologyEventsMetricsCommand.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.metrics.topology.cli;
+package org.onosproject.metrics.topology.cli;
 
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
@@ -27,8 +27,8 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.karaf.shell.commands.Command;
 import org.onlab.metrics.EventMetric;
-import org.onlab.onos.cli.AbstractShellCommand;
-import org.onlab.onos.metrics.topology.TopologyMetricsService;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.metrics.topology.TopologyMetricsService;
 
 /**
  * Command to show the topology events metrics.
diff --git a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/package-info.java b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/package-info.java
index b6ccdb9..f8402be 100644
--- a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/package-info.java
+++ b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/cli/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Topology metrics command-line handlers.
  */
-package org.onlab.onos.metrics.topology.cli;
\ No newline at end of file
+package org.onosproject.metrics.topology.cli;
diff --git a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/package-info.java b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/package-info.java
index bb849f0..b35d85c 100644
--- a/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/package-info.java
+++ b/apps/metrics/topology/src/main/java/org/onosproject/metrics/topology/package-info.java
@@ -17,4 +17,4 @@
 /**
  * ONOS Topology Metrics Application that collects topology-related metrics.
  */
-package org.onlab.onos.metrics.topology;
+package org.onosproject.metrics.topology;
diff --git a/apps/metrics/topology/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/apps/metrics/topology/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index e0a4d06..90ea719 100644
--- a/apps/metrics/topology/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/apps/metrics/topology/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -17,10 +17,10 @@
 
   <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
     <command>
-      <action class="org.onlab.onos.metrics.topology.cli.TopologyEventsListCommand"/>
+      <action class="org.onosproject.metrics.topology.cli.TopologyEventsListCommand"/>
     </command>
     <command>
-      <action class="org.onlab.onos.metrics.topology.cli.TopologyEventsMetricsCommand"/>
+      <action class="org.onosproject.metrics.topology.cli.TopologyEventsMetricsCommand"/>
     </command>
   </command-bundle>
 
diff --git a/apps/mobility/pom.xml b/apps/mobility/pom.xml
index 24df897..ebae65f 100644
--- a/apps/mobility/pom.xml
+++ b/apps/mobility/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
@@ -37,7 +37,7 @@
         <artifactId>guava</artifactId>
       </dependency>
       <dependency>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onlab-misc</artifactId>
       </dependency>
     </dependencies>
diff --git a/apps/mobility/src/main/java/org/onosproject/mobility/HostMobility.java b/apps/mobility/src/main/java/org/onosproject/mobility/HostMobility.java
index c4ba877..0aec81f 100644
--- a/apps/mobility/src/main/java/org/onosproject/mobility/HostMobility.java
+++ b/apps/mobility/src/main/java/org/onosproject/mobility/HostMobility.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.mobility;
+package org.onosproject.mobility;
 import static org.slf4j.LoggerFactory.getLogger;
 
 import java.util.Collection;
@@ -24,19 +24,19 @@
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.Device;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.device.DeviceService;
-import org.onlab.onos.net.flow.FlowRule;
-import org.onlab.onos.net.flow.FlowRuleService;
-import org.onlab.onos.net.flow.criteria.Criteria.EthCriterion;
-import org.onlab.onos.net.flow.criteria.Criterion;
-import org.onlab.onos.net.flow.criteria.Criterion.Type;
-import org.onlab.onos.net.host.HostEvent;
-import org.onlab.onos.net.host.HostListener;
-import org.onlab.onos.net.host.HostService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.Device;
+import org.onosproject.net.Host;
+import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.flow.FlowRule;
+import org.onosproject.net.flow.FlowRuleService;
+import org.onosproject.net.flow.criteria.Criteria.EthCriterion;
+import org.onosproject.net.flow.criteria.Criterion;
+import org.onosproject.net.flow.criteria.Criterion.Type;
+import org.onosproject.net.host.HostEvent;
+import org.onosproject.net.host.HostListener;
+import org.onosproject.net.host.HostService;
 import org.onlab.packet.MacAddress;
 import org.slf4j.Logger;
 
@@ -67,7 +67,7 @@
 
     @Activate
     public void activate() {
-        appId = coreService.registerApplication("org.onlab.onos.mobility");
+        appId = coreService.registerApplication("org.onosproject.mobility");
         hostService.addListener(new InternalHostListener());
         log.info("Started with Application ID {}", appId.id());
     }
diff --git a/apps/mobility/src/main/java/org/onosproject/mobility/package-info.java b/apps/mobility/src/main/java/org/onosproject/mobility/package-info.java
index f178646..3b581e6 100644
--- a/apps/mobility/src/main/java/org/onosproject/mobility/package-info.java
+++ b/apps/mobility/src/main/java/org/onosproject/mobility/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Sample application that provides simple form of end-station host mobility.
  */
-package org.onlab.onos.mobility;
+package org.onosproject.mobility;
diff --git a/apps/oecfg/pom.xml b/apps/oecfg/pom.xml
index 7a84412..d7c3067 100644
--- a/apps/oecfg/pom.xml
+++ b/apps/oecfg/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
@@ -59,7 +59,7 @@
                             <transformers>
                                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                     <manifestEntries>
-                                        <Main-Class>org.onlab.onos.oecfg.OELinkConfig</Main-Class>
+                                        <Main-Class>org.onosproject.oecfg.OELinkConfig</Main-Class>
                                     </manifestEntries>
                                 </transformer>
                             </transformers>
diff --git a/apps/oecfg/src/main/java/org/onosproject/oecfg/OELinkConfig.java b/apps/oecfg/src/main/java/org/onosproject/oecfg/OELinkConfig.java
index d844f62..480640c 100644
--- a/apps/oecfg/src/main/java/org/onosproject/oecfg/OELinkConfig.java
+++ b/apps/oecfg/src/main/java/org/onosproject/oecfg/OELinkConfig.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.oecfg;
+package org.onosproject.oecfg;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/apps/optical/pom.xml b/apps/optical/pom.xml
index b6f5f4f..36c69ab 100644
--- a/apps/optical/pom.xml
+++ b/apps/optical/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
@@ -34,7 +34,7 @@
     <dependencies>
 
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onos-cli</artifactId>
             <version>${project.version}</version>
         </dependency>
diff --git a/apps/optical/src/main/java/org/onosproject/optical/OpticalLinkProvider.java b/apps/optical/src/main/java/org/onosproject/optical/OpticalLinkProvider.java
index 88e68b4..3e7ae17 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/OpticalLinkProvider.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/OpticalLinkProvider.java
@@ -13,35 +13,35 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical;
+package org.onosproject.optical;
 
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.Device;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Port;
-import org.onlab.onos.net.device.DeviceEvent;
-import org.onlab.onos.net.device.DeviceListener;
-import org.onlab.onos.net.device.DeviceService;
-import org.onlab.onos.net.link.DefaultLinkDescription;
-import org.onlab.onos.net.link.LinkDescription;
-import org.onlab.onos.net.link.LinkEvent;
-import org.onlab.onos.net.link.LinkListener;
-import org.onlab.onos.net.link.LinkProvider;
-import org.onlab.onos.net.link.LinkProviderRegistry;
-import org.onlab.onos.net.link.LinkProviderService;
-import org.onlab.onos.net.link.LinkService;
-import org.onlab.onos.net.provider.AbstractProvider;
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Device;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
+import org.onosproject.net.Port;
+import org.onosproject.net.device.DeviceEvent;
+import org.onosproject.net.device.DeviceListener;
+import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.link.DefaultLinkDescription;
+import org.onosproject.net.link.LinkDescription;
+import org.onosproject.net.link.LinkEvent;
+import org.onosproject.net.link.LinkListener;
+import org.onosproject.net.link.LinkProvider;
+import org.onosproject.net.link.LinkProviderRegistry;
+import org.onosproject.net.link.LinkProviderService;
+import org.onosproject.net.link.LinkService;
+import org.onosproject.net.provider.AbstractProvider;
+import org.onosproject.net.provider.ProviderId;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.onlab.onos.net.Link.Type.OPTICAL;
+import static org.onosproject.net.Link.Type.OPTICAL;
 
 /**
  * Ancillary provider to activate/deactivate optical links as their respective
@@ -66,7 +66,7 @@
     private LinkListener linkListener = new InternalLinkListener();
 
     public OpticalLinkProvider() {
-        super(new ProviderId("optical", "org.onlab.onos.optical"));
+        super(new ProviderId("optical", "org.onosproject.optical"));
     }
 
     @Activate
diff --git a/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java b/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java
index f4ad841..533e3a1 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/OpticalPathProvisioner.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical;
+package org.onosproject.optical;
 
 import com.google.common.collect.Lists;
 import org.apache.felix.scr.annotations.Activate;
@@ -21,25 +21,25 @@
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.intent.HostToHostIntent;
-import org.onlab.onos.net.intent.Intent;
-import org.onlab.onos.net.intent.IntentEvent;
-import org.onlab.onos.net.intent.IntentListener;
-import org.onlab.onos.net.intent.IntentOperations;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.net.intent.IntentState;
-import org.onlab.onos.net.intent.OpticalConnectivityIntent;
-import org.onlab.onos.net.intent.PointToPointIntent;
-import org.onlab.onos.net.topology.LinkWeight;
-import org.onlab.onos.net.topology.PathService;
-import org.onlab.onos.net.topology.TopologyEdge;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Host;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.intent.HostToHostIntent;
+import org.onosproject.net.intent.Intent;
+import org.onosproject.net.intent.IntentEvent;
+import org.onosproject.net.intent.IntentListener;
+import org.onosproject.net.intent.IntentOperations;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.IntentState;
+import org.onosproject.net.intent.OpticalConnectivityIntent;
+import org.onosproject.net.intent.PointToPointIntent;
+import org.onosproject.net.topology.LinkWeight;
+import org.onosproject.net.topology.PathService;
+import org.onosproject.net.topology.TopologyEdge;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -81,7 +81,7 @@
     @Activate
     protected void activate() {
         intentService.addListener(pathProvisioner);
-        appId = coreService.registerApplication("org.onlab.onos.optical");
+        appId = coreService.registerApplication("org.onosproject.optical");
         log.info("Starting optical path provisoning...");
     }
 
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalConfigProvider.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalConfigProvider.java
index 325128c..416159c 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalConfigProvider.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalConfigProvider.java
@@ -13,31 +13,31 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical.cfg;
+package org.onosproject.optical.cfg;
 
 import org.codehaus.jackson.JsonNode;
 import org.codehaus.jackson.JsonParseException;
 import org.codehaus.jackson.annotate.JsonIgnoreProperties;
 import org.codehaus.jackson.map.JsonMappingException;
 import org.codehaus.jackson.map.ObjectMapper;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DefaultAnnotations;
-import org.onlab.onos.net.Device;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.MastershipRole;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.device.DefaultDeviceDescription;
-import org.onlab.onos.net.device.DeviceDescription;
-import org.onlab.onos.net.device.DeviceProvider;
-import org.onlab.onos.net.device.DeviceProviderRegistry;
-import org.onlab.onos.net.device.DeviceProviderService;
-import org.onlab.onos.net.link.DefaultLinkDescription;
-import org.onlab.onos.net.link.LinkProvider;
-import org.onlab.onos.net.link.LinkProviderRegistry;
-import org.onlab.onos.net.link.LinkProviderService;
-import org.onlab.onos.net.provider.AbstractProvider;
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DefaultAnnotations;
+import org.onosproject.net.Device;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
+import org.onosproject.net.MastershipRole;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.device.DefaultDeviceDescription;
+import org.onosproject.net.device.DeviceDescription;
+import org.onosproject.net.device.DeviceProvider;
+import org.onosproject.net.device.DeviceProviderRegistry;
+import org.onosproject.net.device.DeviceProviderService;
+import org.onosproject.net.link.DefaultLinkDescription;
+import org.onosproject.net.link.LinkProvider;
+import org.onosproject.net.link.LinkProviderRegistry;
+import org.onosproject.net.link.LinkProviderService;
+import org.onosproject.net.provider.AbstractProvider;
+import org.onosproject.net.provider.ProviderId;
 import org.onlab.packet.ChassisId;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -50,7 +50,7 @@
 import java.util.Map;
 import java.util.Set;
 
-import static org.onlab.onos.net.DeviceId.deviceId;
+import static org.onosproject.net.DeviceId.deviceId;
 
 /**
  * OpticalConfigProvider emulates the SB network provider for optical switches,
@@ -93,7 +93,7 @@
     protected OpticalNetworkConfig opticalNetworkConfig;
 
     public OpticalConfigProvider() {
-        super(new ProviderId("optical", "org.onlab.onos.provider" +
+        super(new ProviderId("optical", "org.onosproject.provider" +
                 ".opticalConfig"));
     }
 
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalLinkDescription.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalLinkDescription.java
index 7e289f0..b3adb0a 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalLinkDescription.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalLinkDescription.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical.cfg;
+package org.onosproject.optical.cfg;
 
 import java.util.Map;
 import org.codehaus.jackson.JsonNode;
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalNetworkConfig.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalNetworkConfig.java
index ac2b4f3..bfc8ab9 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalNetworkConfig.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalNetworkConfig.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical.cfg;
+package org.onosproject.optical.cfg;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalSwitchDescription.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalSwitchDescription.java
index 9c6bbad..63d0188 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalSwitchDescription.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/OpticalSwitchDescription.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical.cfg;
+package org.onosproject.optical.cfg;
 
 import java.util.Map;
 import org.codehaus.jackson.JsonNode;
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/PktOptLink.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/PktOptLink.java
index fb1d44b..a003a0e 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/PktOptLink.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/PktOptLink.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical.cfg;
+package org.onosproject.optical.cfg;
 
 /**
  * Packet-optical link Java data object.
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/Roadm.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/Roadm.java
index 0367ad2..84a7844 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/Roadm.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/Roadm.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical.cfg;
+package org.onosproject.optical.cfg;
 
 /**
  * ROADM java data object converted from a JSON file.
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/WdmLink.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/WdmLink.java
index 704b0c8..dc7654b 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/WdmLink.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/WdmLink.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical.cfg;
+package org.onosproject.optical.cfg;
 
 /**
  * WDM Link Java data object converted from a JSON file.
diff --git a/apps/optical/src/main/java/org/onosproject/optical/cfg/package-info.java b/apps/optical/src/main/java/org/onosproject/optical/cfg/package-info.java
index 678aff1..4dd6eca 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/cfg/package-info.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/cfg/package-info.java
@@ -18,4 +18,4 @@
  * Packet/Optical configuration.
  */
 @Deprecated
-package org.onlab.onos.optical.cfg;
\ No newline at end of file
+package org.onosproject.optical.cfg;
diff --git a/apps/optical/src/main/java/org/onosproject/optical/package-info.java b/apps/optical/src/main/java/org/onosproject/optical/package-info.java
index 561a405..fc73b2c 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/package-info.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Packet/Optical application.
  */
-package org.onlab.onos.optical;
\ No newline at end of file
+package org.onosproject.optical;
diff --git a/apps/optical/src/main/java/org/onosproject/optical/testapp/LambdaForwarding.java b/apps/optical/src/main/java/org/onosproject/optical/testapp/LambdaForwarding.java
index 4d4fc7a..f88ad5e 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/testapp/LambdaForwarding.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/testapp/LambdaForwarding.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical.testapp;
+package org.onosproject.optical.testapp;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -24,21 +24,21 @@
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.Device;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.device.DeviceEvent;
-import org.onlab.onos.net.device.DeviceListener;
-import org.onlab.onos.net.device.DeviceService;
-import org.onlab.onos.net.flow.DefaultFlowRule;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.FlowRule;
-import org.onlab.onos.net.flow.FlowRuleService;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.Device;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.device.DeviceEvent;
+import org.onosproject.net.device.DeviceListener;
+import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.flow.DefaultFlowRule;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.FlowRule;
+import org.onosproject.net.flow.FlowRuleService;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
 import org.slf4j.Logger;
 
 /**
@@ -66,7 +66,7 @@
 
     @Activate
     public void activate() {
-        appId = coreService.registerApplication("org.onlab.onos.fwd");
+        appId = coreService.registerApplication("org.onosproject.fwd");
 
         uglyMap.put(DeviceId.deviceId("of:0000ffffffffff01"), 1);
         uglyMap.put(DeviceId.deviceId("of:0000ffffffffff02"), 2);
diff --git a/apps/optical/src/main/java/org/onosproject/optical/testapp/MPLSForwarding.java b/apps/optical/src/main/java/org/onosproject/optical/testapp/MPLSForwarding.java
index bcae4b5..670bf9f 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/testapp/MPLSForwarding.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/testapp/MPLSForwarding.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.optical.testapp;
+package org.onosproject.optical.testapp;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -24,21 +24,21 @@
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.Device;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.device.DeviceEvent;
-import org.onlab.onos.net.device.DeviceListener;
-import org.onlab.onos.net.device.DeviceService;
-import org.onlab.onos.net.flow.DefaultFlowRule;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.FlowRule;
-import org.onlab.onos.net.flow.FlowRuleService;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.Device;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.device.DeviceEvent;
+import org.onosproject.net.device.DeviceListener;
+import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.flow.DefaultFlowRule;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.FlowRule;
+import org.onosproject.net.flow.FlowRuleService;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
 import org.onlab.packet.Ethernet;
 import org.slf4j.Logger;
 
@@ -67,7 +67,7 @@
 
     @Activate
     public void activate() {
-        appId = coreService.registerApplication("org.onlab.onos.testapp" +
+        appId = coreService.registerApplication("org.onosproject.testapp" +
                                                         ".mplsfwd");
 
         uglyMap.put(DeviceId.deviceId("of:0000000000000001"), 1);
diff --git a/apps/optical/src/main/java/org/onosproject/optical/testapp/package-info.java b/apps/optical/src/main/java/org/onosproject/optical/testapp/package-info.java
index 4af0834..f3d142b 100644
--- a/apps/optical/src/main/java/org/onosproject/optical/testapp/package-info.java
+++ b/apps/optical/src/main/java/org/onosproject/optical/testapp/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Packet/Optical sample forwarding applications.
  */
-package org.onlab.onos.optical.testapp;
\ No newline at end of file
+package org.onosproject.optical.testapp;
diff --git a/apps/pom.xml b/apps/pom.xml
index c021ca4..87ebb31 100644
--- a/apps/pom.xml
+++ b/apps/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
@@ -53,12 +53,12 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onos-api</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onlab-osgi</artifactId>
             <version>${project.version}</version>
         </dependency>
diff --git a/apps/proxyarp/pom.xml b/apps/proxyarp/pom.xml
index fabb28e..e368c4d 100644
--- a/apps/proxyarp/pom.xml
+++ b/apps/proxyarp/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
diff --git a/apps/proxyarp/src/main/java/org/onosproject/proxyarp/ProxyArp.java b/apps/proxyarp/src/main/java/org/onosproject/proxyarp/ProxyArp.java
index 82ebef0..854a60d 100644
--- a/apps/proxyarp/src/main/java/org/onosproject/proxyarp/ProxyArp.java
+++ b/apps/proxyarp/src/main/java/org/onosproject/proxyarp/ProxyArp.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.proxyarp;
+package org.onosproject.proxyarp;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -22,12 +22,12 @@
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.packet.PacketContext;
-import org.onlab.onos.net.packet.PacketProcessor;
-import org.onlab.onos.net.packet.PacketService;
-import org.onlab.onos.net.proxyarp.ProxyArpService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.packet.PacketContext;
+import org.onosproject.net.packet.PacketProcessor;
+import org.onosproject.net.packet.PacketService;
+import org.onosproject.net.proxyarp.ProxyArpService;
 import org.slf4j.Logger;
 
 /**
@@ -54,7 +54,7 @@
 
     @Activate
     public void activate() {
-        appId = coreService.registerApplication("org.onlab.onos.proxyarp");
+        appId = coreService.registerApplication("org.onosproject.proxyarp");
         packetService.addProcessor(processor, PacketProcessor.ADVISOR_MAX + 1);
         log.info("Started with Application ID {}", appId.id());
     }
diff --git a/apps/proxyarp/src/main/java/org/onosproject/proxyarp/package-info.java b/apps/proxyarp/src/main/java/org/onosproject/proxyarp/package-info.java
index afdb4e4..812a751 100644
--- a/apps/proxyarp/src/main/java/org/onosproject/proxyarp/package-info.java
+++ b/apps/proxyarp/src/main/java/org/onosproject/proxyarp/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Proxy Arp  application that handles arp resolution for you.
  */
-package org.onlab.onos.proxyarp;
+package org.onosproject.proxyarp;
diff --git a/apps/sdnip/pom.xml b/apps/sdnip/pom.xml
index a37c087..0cb35d2 100644
--- a/apps/sdnip/pom.xml
+++ b/apps/sdnip/pom.xml
@@ -20,7 +20,7 @@
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <groupId>org.onlab.onos</groupId>
+    <groupId>org.onosproject</groupId>
     <artifactId>onos-apps</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -55,23 +55,23 @@
     </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onlab-thirdparty</artifactId>
     </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onlab-misc</artifactId>
     </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onlab-junit</artifactId>
       <scope>test</scope>
     </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onos-api</artifactId>
       <version>${project.version}</version>
       <scope>test</scope>
@@ -79,13 +79,13 @@
     </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onos-cli</artifactId>
       <version>${project.version}</version>
     </dependency>
 
     <dependency>
-      <groupId>org.onlab.onos</groupId>
+      <groupId>org.onosproject</groupId>
       <artifactId>onos-core-dist</artifactId>
       <version>${project.version}</version>
     </dependency>
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/HostToInterfaceAdaptor.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/HostToInterfaceAdaptor.java
index 604d12d..cd35acb 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/HostToInterfaceAdaptor.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/HostToInterfaceAdaptor.java
@@ -13,17 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.Set;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.host.InterfaceIpAddress;
-import org.onlab.onos.net.host.PortAddresses;
-import org.onlab.onos.sdnip.config.Interface;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.host.PortAddresses;
+import org.onosproject.sdnip.config.Interface;
 import org.onlab.packet.IpAddress;
 
 import com.google.common.collect.Sets;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/IntentSynchronizer.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/IntentSynchronizer.java
index 7110e4a..cd32101 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/IntentSynchronizer.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/IntentSynchronizer.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import java.util.Collection;
 import java.util.HashMap;
@@ -27,15 +27,15 @@
 import java.util.concurrent.Semaphore;
 
 import org.apache.commons.lang3.tuple.Pair;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.flow.criteria.Criteria.IPCriterion;
-import org.onlab.onos.net.flow.criteria.Criterion;
-import org.onlab.onos.net.intent.Intent;
-import org.onlab.onos.net.intent.IntentOperations;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.net.intent.IntentState;
-import org.onlab.onos.net.intent.MultiPointToSinglePointIntent;
-import org.onlab.onos.net.intent.PointToPointIntent;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.flow.criteria.Criteria.IPCriterion;
+import org.onosproject.net.flow.criteria.Criterion;
+import org.onosproject.net.intent.Intent;
+import org.onosproject.net.intent.IntentOperations;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.IntentState;
+import org.onosproject.net.intent.MultiPointToSinglePointIntent;
+import org.onosproject.net.intent.PointToPointIntent;
 import org.onlab.packet.Ip4Prefix;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/InterfaceService.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/InterfaceService.java
index 6df930e..a9f62b0 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/InterfaceService.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/InterfaceService.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import java.util.Set;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.sdnip.config.Interface;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.sdnip.config.Interface;
 import org.onlab.packet.IpAddress;
 
 /**
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/PeerConnectivityManager.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/PeerConnectivityManager.java
index 2fccbdc..cad0d50 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/PeerConnectivityManager.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/PeerConnectivityManager.java
@@ -13,25 +13,25 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.intent.PointToPointIntent;
-import org.onlab.onos.sdnip.bgp.BgpConstants;
-import org.onlab.onos.sdnip.config.BgpPeer;
-import org.onlab.onos.sdnip.config.BgpSpeaker;
-import org.onlab.onos.sdnip.config.Interface;
-import org.onlab.onos.sdnip.config.InterfaceAddress;
-import org.onlab.onos.sdnip.config.SdnIpConfigurationService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.intent.PointToPointIntent;
+import org.onosproject.sdnip.bgp.BgpConstants;
+import org.onosproject.sdnip.config.BgpPeer;
+import org.onosproject.sdnip.config.BgpSpeaker;
+import org.onosproject.sdnip.config.Interface;
+import org.onosproject.sdnip.config.InterfaceAddress;
+import org.onosproject.sdnip.config.SdnIpConfigurationService;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IPv4;
 import org.onlab.packet.IpAddress;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteEntry.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteEntry.java
index 07dd691..13ee240 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteEntry.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteEntry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteListener.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteListener.java
index cf573a0..2d9ddc9 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteListener.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteListener.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import java.util.Collection;
 
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteUpdate.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteUpdate.java
index 35e2eef..f63f214 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteUpdate.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/RouteUpdate.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/Router.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/Router.java
index c250fd1..e38dcff 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/Router.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/Router.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import java.util.Collection;
 import java.util.HashSet;
@@ -29,20 +29,20 @@
 import java.util.concurrent.LinkedBlockingQueue;
 
 import org.apache.commons.lang3.tuple.Pair;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.host.HostEvent;
-import org.onlab.onos.net.host.HostListener;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.intent.MultiPointToSinglePointIntent;
-import org.onlab.onos.sdnip.config.BgpPeer;
-import org.onlab.onos.sdnip.config.Interface;
-import org.onlab.onos.sdnip.config.SdnIpConfigurationService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Host;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.host.HostEvent;
+import org.onosproject.net.host.HostListener;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.intent.MultiPointToSinglePointIntent;
+import org.onosproject.sdnip.config.BgpPeer;
+import org.onosproject.sdnip.config.Interface;
+import org.onosproject.sdnip.config.SdnIpConfigurationService;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.Ip4Address;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIp.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIp.java
index 44d80bf..3426da4 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIp.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIp.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -25,19 +25,19 @@
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.Service;
-import org.onlab.onos.cluster.ClusterService;
-import org.onlab.onos.cluster.ControllerNode;
-import org.onlab.onos.cluster.LeadershipEvent;
-import org.onlab.onos.cluster.LeadershipEventListener;
-import org.onlab.onos.cluster.LeadershipService;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.CoreService;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.sdnip.bgp.BgpRouteEntry;
-import org.onlab.onos.sdnip.bgp.BgpSession;
-import org.onlab.onos.sdnip.bgp.BgpSessionManager;
-import org.onlab.onos.sdnip.config.SdnIpConfigurationReader;
+import org.onosproject.cluster.ClusterService;
+import org.onosproject.cluster.ControllerNode;
+import org.onosproject.cluster.LeadershipEvent;
+import org.onosproject.cluster.LeadershipEventListener;
+import org.onosproject.cluster.LeadershipService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.CoreService;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.sdnip.bgp.BgpRouteEntry;
+import org.onosproject.sdnip.bgp.BgpSession;
+import org.onosproject.sdnip.bgp.BgpSessionManager;
+import org.onosproject.sdnip.config.SdnIpConfigurationReader;
 import org.slf4j.Logger;
 
 /**
@@ -47,7 +47,7 @@
 @Service
 public class SdnIp implements SdnIpService {
 
-    private static final String SDN_IP_APP = "org.onlab.onos.sdnip";
+    private static final String SDN_IP_APP = "org.onosproject.sdnip";
     // NOTE: Must be 5s for now
     private static final int LEASE_DURATION_MS = 5 * 1000;
     private static final int LEASE_EXTEND_RETRY_MAX = 3;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIpService.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIpService.java
index 8503bee..cfa089a 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIpService.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/SdnIpService.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import java.util.Collection;
 
-import org.onlab.onos.sdnip.bgp.BgpRouteEntry;
-import org.onlab.onos.sdnip.bgp.BgpSession;
+import org.onosproject.sdnip.bgp.BgpRouteEntry;
+import org.onosproject.sdnip.bgp.BgpSession;
 
 /**
  * Service interface exported by SDN-IP.
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpConstants.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpConstants.java
index 33fe411..b8c0ba0 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpConstants.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpConstants.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 /**
  * BGP related constants.
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpFrameDecoder.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpFrameDecoder.java
index 339e46c..a85e08d 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpFrameDecoder.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpFrameDecoder.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.handler.codec.frame.FrameDecoder;
-import org.onlab.onos.sdnip.bgp.BgpConstants.Notifications.MessageHeaderError;
+import org.onosproject.sdnip.bgp.BgpConstants.Notifications.MessageHeaderError;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpRouteEntry.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpRouteEntry.java
index 4ca7da6..5db9eaf 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpRouteEntry.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpRouteEntry.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.ArrayList;
 import java.util.Objects;
 
-import org.onlab.onos.sdnip.RouteEntry;
-import org.onlab.onos.sdnip.bgp.BgpConstants.Update;
+import org.onosproject.sdnip.RouteEntry;
+import org.onosproject.sdnip.bgp.BgpConstants.Update;
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.Ip4Prefix;
 
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java
index 8b620a9..0c77461 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
@@ -37,11 +37,11 @@
 import org.jboss.netty.util.Timeout;
 import org.jboss.netty.util.Timer;
 import org.jboss.netty.util.TimerTask;
-import org.onlab.onos.sdnip.bgp.BgpConstants.Notifications;
-import org.onlab.onos.sdnip.bgp.BgpConstants.Notifications.HoldTimerExpired;
-import org.onlab.onos.sdnip.bgp.BgpConstants.Notifications.MessageHeaderError;
-import org.onlab.onos.sdnip.bgp.BgpConstants.Notifications.OpenMessageError;
-import org.onlab.onos.sdnip.bgp.BgpConstants.Notifications.UpdateMessageError;
+import org.onosproject.sdnip.bgp.BgpConstants.Notifications;
+import org.onosproject.sdnip.bgp.BgpConstants.Notifications.HoldTimerExpired;
+import org.onosproject.sdnip.bgp.BgpConstants.Notifications.MessageHeaderError;
+import org.onosproject.sdnip.bgp.BgpConstants.Notifications.OpenMessageError;
+import org.onosproject.sdnip.bgp.BgpConstants.Notifications.UpdateMessageError;
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.Ip4Prefix;
 import org.slf4j.Logger;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSessionManager.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSessionManager.java
index c66d2a1..fab1587 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSessionManager.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSessionManager.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.onlab.util.Tools.namedThreads;
@@ -37,8 +37,8 @@
 import org.jboss.netty.channel.group.ChannelGroup;
 import org.jboss.netty.channel.group.DefaultChannelGroup;
 import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
-import org.onlab.onos.sdnip.RouteListener;
-import org.onlab.onos.sdnip.RouteUpdate;
+import org.onosproject.sdnip.RouteListener;
+import org.onosproject.sdnip.RouteUpdate;
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.Ip4Prefix;
 import org.slf4j.Logger;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/package-info.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/package-info.java
index da7fdd6..9e1b5d2 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/package-info.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Implementation of the BGP protocol.
  */
-package org.onlab.onos.sdnip.bgp;
\ No newline at end of file
+package org.onosproject.sdnip.bgp;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/BgpNeighborsListCommand.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/BgpNeighborsListCommand.java
index d8fe15a..0124127 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/BgpNeighborsListCommand.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/BgpNeighborsListCommand.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.cli;
+package org.onosproject.sdnip.cli;
 
 import java.util.Collection;
 
@@ -23,9 +23,9 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.karaf.shell.commands.Command;
 import org.apache.karaf.shell.commands.Option;
-import org.onlab.onos.cli.AbstractShellCommand;
-import org.onlab.onos.sdnip.SdnIpService;
-import org.onlab.onos.sdnip.bgp.BgpSession;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.sdnip.SdnIpService;
+import org.onosproject.sdnip.bgp.BgpSession;
 
 /**
  * Command to show the BGP neighbors.
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/BgpRoutesListCommand.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/BgpRoutesListCommand.java
index 15cb554..be65eda 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/BgpRoutesListCommand.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/BgpRoutesListCommand.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.cli;
+package org.onosproject.sdnip.cli;
 
 import java.util.Collection;
 
@@ -23,11 +23,11 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.karaf.shell.commands.Command;
 import org.apache.karaf.shell.commands.Option;
-import org.onlab.onos.cli.AbstractShellCommand;
-import org.onlab.onos.sdnip.SdnIpService;
-import org.onlab.onos.sdnip.bgp.BgpConstants.Update.AsPath;
-import org.onlab.onos.sdnip.bgp.BgpConstants.Update.Origin;
-import org.onlab.onos.sdnip.bgp.BgpRouteEntry;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.sdnip.SdnIpService;
+import org.onosproject.sdnip.bgp.BgpConstants.Update.AsPath;
+import org.onosproject.sdnip.bgp.BgpConstants.Update.Origin;
+import org.onosproject.sdnip.bgp.BgpRouteEntry;
 
 /**
  * Command to show the routes learned through BGP.
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/PrimaryChangeCommand.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/PrimaryChangeCommand.java
index 5b20238..08b8883 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/PrimaryChangeCommand.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/PrimaryChangeCommand.java
@@ -1,9 +1,9 @@
-package org.onlab.onos.sdnip.cli;
+package org.onosproject.sdnip.cli;
 
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
-import org.onlab.onos.cli.AbstractShellCommand;
-import org.onlab.onos.sdnip.SdnIpService;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.sdnip.SdnIpService;
 
 /**
  * Command to change whether this SDNIP instance is primary or not.
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/RoutesListCommand.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/RoutesListCommand.java
index e9c25c4..1cd78e2 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/RoutesListCommand.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/RoutesListCommand.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.cli;
+package org.onosproject.sdnip.cli;
 
 import java.util.Collection;
 
@@ -23,9 +23,9 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.karaf.shell.commands.Command;
 import org.apache.karaf.shell.commands.Option;
-import org.onlab.onos.cli.AbstractShellCommand;
-import org.onlab.onos.sdnip.RouteEntry;
-import org.onlab.onos.sdnip.SdnIpService;
+import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.sdnip.RouteEntry;
+import org.onosproject.sdnip.SdnIpService;
 
 /**
  * Command to show the list of routes in SDN-IP's routing table.
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/package-info.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/package-info.java
index 2fbd1e9..73ea2a4 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/package-info.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/cli/package-info.java
@@ -17,4 +17,4 @@
 /**
  * SDN-IP command-line handlers.
  */
-package org.onlab.onos.sdnip.cli;
\ No newline at end of file
+package org.onosproject.sdnip.cli;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/BgpPeer.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/BgpPeer.java
index 6477ba6..b0f9003 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/BgpPeer.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/BgpPeer.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.config;
+package org.onosproject.sdnip.config;
 
 import java.util.Objects;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.PortNumber;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
 import org.onlab.packet.IpAddress;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/BgpSpeaker.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/BgpSpeaker.java
index 1a1c5f0..ba5e834 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/BgpSpeaker.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/BgpSpeaker.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.config;
+package org.onosproject.sdnip.config;
 
 import java.util.List;
 import java.util.Objects;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.PortNumber;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
 import org.onlab.packet.MacAddress;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/Configuration.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/Configuration.java
index 394a55a..3d917cd 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/Configuration.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/Configuration.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.config;
+package org.onosproject.sdnip.config;
 
 import java.util.Collections;
 import java.util.List;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/Interface.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/Interface.java
index 88de214..08a51c2 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/Interface.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/Interface.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.config;
+package org.onosproject.sdnip.config;
 
 import java.util.Objects;
 import java.util.Set;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.host.InterfaceIpAddress;
-import org.onlab.onos.net.host.PortAddresses;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.host.PortAddresses;
 import org.onlab.packet.MacAddress;
 
 import com.google.common.base.MoreObjects;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/InterfaceAddress.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/InterfaceAddress.java
index 6c48b61..804d366 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/InterfaceAddress.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/InterfaceAddress.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.config;
+package org.onosproject.sdnip.config;
 
 import java.util.Objects;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.PortNumber;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
 import org.onlab.packet.IpAddress;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/SdnIpConfigurationReader.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/SdnIpConfigurationReader.java
index 90ea14c..9d33834 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/SdnIpConfigurationReader.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/SdnIpConfigurationReader.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.config;
+package org.onosproject.sdnip.config;
 
 import java.io.File;
 import java.io.FileNotFoundException;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/SdnIpConfigurationService.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/SdnIpConfigurationService.java
index 741dd6f..51bffb9 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/SdnIpConfigurationService.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/SdnIpConfigurationService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.config;
+package org.onosproject.sdnip.config;
 
 import java.util.Map;
 
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/package-info.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/package-info.java
index 4302064..7689a2e 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/config/package-info.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/config/package-info.java
@@ -17,4 +17,4 @@
 /**
  * SDN-IP configuration services.
  */
-package org.onlab.onos.sdnip.config;
\ No newline at end of file
+package org.onosproject.sdnip.config;
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/package-info.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/package-info.java
index a488412..1e7d8cb 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/package-info.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/package-info.java
@@ -17,4 +17,4 @@
 /**
  * SDN-IP peering application.
  */
-package org.onlab.onos.sdnip;
\ No newline at end of file
+package org.onosproject.sdnip;
diff --git a/apps/sdnip/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/apps/sdnip/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index d86f8f4..dd33f73 100644
--- a/apps/sdnip/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/apps/sdnip/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -17,16 +17,16 @@
 
   <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
     <command>
-      <action class="org.onlab.onos.sdnip.cli.BgpNeighborsListCommand"/>
+      <action class="org.onosproject.sdnip.cli.BgpNeighborsListCommand"/>
     </command>
     <command>
-      <action class="org.onlab.onos.sdnip.cli.BgpRoutesListCommand"/>
+      <action class="org.onosproject.sdnip.cli.BgpRoutesListCommand"/>
     </command>
     <command>
-      <action class="org.onlab.onos.sdnip.cli.RoutesListCommand"/>
+      <action class="org.onosproject.sdnip.cli.RoutesListCommand"/>
     </command>
     <command>
-      <action class="org.onlab.onos.sdnip.cli.PrimaryChangeCommand"/>
+      <action class="org.onosproject.sdnip.cli.PrimaryChangeCommand"/>
     </command>
   </command-bundle>
 </blueprint>
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/HostToInterfaceAdaptorTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/HostToInterfaceAdaptorTest.java
index 9e31389..d63581f 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/HostToInterfaceAdaptorTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/HostToInterfaceAdaptorTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
@@ -29,13 +29,13 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.host.InterfaceIpAddress;
-import org.onlab.onos.net.host.PortAddresses;
-import org.onlab.onos.sdnip.config.Interface;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.host.PortAddresses;
+import org.onosproject.sdnip.config.Interface;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/IntentSyncTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/IntentSyncTest.java
index d0c0aeb..9675a67 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/IntentSyncTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/IntentSyncTest.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.createMock;
@@ -21,29 +21,29 @@
 import org.junit.Test;
 import org.onlab.junit.TestUtils;
 import org.onlab.junit.TestUtils.TestUtilsException;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DefaultHost;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.HostLocation;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.host.HostListener;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.host.InterfaceIpAddress;
-import org.onlab.onos.net.intent.AbstractIntentTest;
-import org.onlab.onos.net.intent.Intent;
-import org.onlab.onos.net.intent.IntentOperations;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.net.intent.IntentState;
-import org.onlab.onos.net.intent.MultiPointToSinglePointIntent;
-import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.onos.sdnip.config.Interface;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DefaultHost;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Host;
+import org.onosproject.net.HostId;
+import org.onosproject.net.HostLocation;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.host.HostListener;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.intent.AbstractIntentTest;
+import org.onosproject.net.intent.Intent;
+import org.onosproject.net.intent.IntentOperations;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.IntentState;
+import org.onosproject.net.intent.MultiPointToSinglePointIntent;
+import org.onosproject.net.provider.ProviderId;
+import org.onosproject.sdnip.config.Interface;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.Ip4Address;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java
index 7f337a9..e662013 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/PeerConnectivityManagerTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import com.google.common.collect.Sets;
 import org.junit.Before;
@@ -21,26 +21,26 @@
 import org.junit.Test;
 import org.onlab.junit.TestUtils;
 import org.onlab.junit.TestUtils.TestUtilsException;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.host.InterfaceIpAddress;
-import org.onlab.onos.net.intent.AbstractIntentTest;
-import org.onlab.onos.net.intent.Intent;
-import org.onlab.onos.net.intent.IntentOperations;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.net.intent.PointToPointIntent;
-import org.onlab.onos.sdnip.bgp.BgpConstants;
-import org.onlab.onos.sdnip.config.BgpPeer;
-import org.onlab.onos.sdnip.config.BgpSpeaker;
-import org.onlab.onos.sdnip.config.Interface;
-import org.onlab.onos.sdnip.config.InterfaceAddress;
-import org.onlab.onos.sdnip.config.SdnIpConfigurationService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.intent.AbstractIntentTest;
+import org.onosproject.net.intent.Intent;
+import org.onosproject.net.intent.IntentOperations;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.PointToPointIntent;
+import org.onosproject.sdnip.bgp.BgpConstants;
+import org.onosproject.sdnip.config.BgpPeer;
+import org.onosproject.sdnip.config.BgpSpeaker;
+import org.onosproject.sdnip.config.Interface;
+import org.onosproject.sdnip.config.InterfaceAddress;
+import org.onosproject.sdnip.config.SdnIpConfigurationService;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IPv4;
 import org.onlab.packet.IpAddress;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/RouteEntryTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/RouteEntryTest.java
index ca5b1f8..b977917 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/RouteEntryTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/RouteEntryTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.not;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/RouterTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/RouterTest.java
index 470aa49..a6027ac 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/RouterTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/RouterTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.createMock;
@@ -35,31 +35,31 @@
 import org.junit.Test;
 import org.onlab.junit.TestUtils;
 import org.onlab.junit.TestUtils.TestUtilsException;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DefaultHost;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.HostLocation;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.host.HostListener;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.host.InterfaceIpAddress;
-import org.onlab.onos.net.intent.Intent;
-import org.onlab.onos.net.intent.IntentOperations;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.net.intent.MultiPointToSinglePointIntent;
-import org.onlab.onos.net.intent.AbstractIntentTest;
-import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.onos.sdnip.IntentSynchronizer.IntentKey;
-import org.onlab.onos.sdnip.config.BgpPeer;
-import org.onlab.onos.sdnip.config.Interface;
-import org.onlab.onos.sdnip.config.SdnIpConfigurationService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DefaultHost;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Host;
+import org.onosproject.net.HostId;
+import org.onosproject.net.HostLocation;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.host.HostListener;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.intent.Intent;
+import org.onosproject.net.intent.IntentOperations;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.MultiPointToSinglePointIntent;
+import org.onosproject.net.intent.AbstractIntentTest;
+import org.onosproject.net.provider.ProviderId;
+import org.onosproject.sdnip.IntentSynchronizer.IntentKey;
+import org.onosproject.sdnip.config.BgpPeer;
+import org.onosproject.sdnip.config.Interface;
+import org.onosproject.sdnip.config.SdnIpConfigurationService;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.Ip4Address;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/RouterTestWithAsyncArp.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/RouterTestWithAsyncArp.java
index d9503f2..899a4b3 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/RouterTestWithAsyncArp.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/RouterTestWithAsyncArp.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.createMock;
@@ -35,32 +35,32 @@
 import org.junit.Test;
 import org.onlab.junit.TestUtils;
 import org.onlab.junit.TestUtils.TestUtilsException;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DefaultHost;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.HostLocation;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.host.HostEvent;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.host.InterfaceIpAddress;
-import org.onlab.onos.net.intent.Intent;
-import org.onlab.onos.net.intent.IntentOperations;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.net.intent.MultiPointToSinglePointIntent;
-import org.onlab.onos.net.intent.AbstractIntentTest;
-import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.onos.sdnip.IntentSynchronizer.IntentKey;
-import org.onlab.onos.sdnip.Router.InternalHostListener;
-import org.onlab.onos.sdnip.config.BgpPeer;
-import org.onlab.onos.sdnip.config.Interface;
-import org.onlab.onos.sdnip.config.SdnIpConfigurationService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DefaultHost;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Host;
+import org.onosproject.net.HostId;
+import org.onosproject.net.HostLocation;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.host.HostEvent;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.intent.Intent;
+import org.onosproject.net.intent.IntentOperations;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.MultiPointToSinglePointIntent;
+import org.onosproject.net.intent.AbstractIntentTest;
+import org.onosproject.net.provider.ProviderId;
+import org.onosproject.sdnip.IntentSynchronizer.IntentKey;
+import org.onosproject.sdnip.Router.InternalHostListener;
+import org.onosproject.sdnip.config.BgpPeer;
+import org.onosproject.sdnip.config.Interface;
+import org.onosproject.sdnip.config.SdnIpConfigurationService;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.Ip4Address;
@@ -441,4 +441,4 @@
         routeIntents.put(routeEntry.prefix(), intent);
         TestUtils.setField(intentSynchronizer, "routeIntents", routeIntents);
     }
-}
\ No newline at end of file
+}
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpTest.java
index d87bfd7..79480da 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/SdnIpTest.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
@@ -27,22 +27,22 @@
 import org.onlab.junit.IntegrationTest;
 import org.onlab.junit.TestUtils;
 import org.onlab.junit.TestUtils.TestUtilsException;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.DefaultTrafficSelector;
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.host.InterfaceIpAddress;
-import org.onlab.onos.net.intent.IntentService;
-import org.onlab.onos.net.intent.MultiPointToSinglePointIntent;
-import org.onlab.onos.net.intent.AbstractIntentTest;
-import org.onlab.onos.sdnip.config.BgpPeer;
-import org.onlab.onos.sdnip.config.Interface;
-import org.onlab.onos.sdnip.config.SdnIpConfigurationService;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.DefaultTrafficSelector;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.MultiPointToSinglePointIntent;
+import org.onosproject.net.intent.AbstractIntentTest;
+import org.onosproject.sdnip.config.BgpPeer;
+import org.onosproject.sdnip.config.Interface;
+import org.onosproject.sdnip.config.SdnIpConfigurationService;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.Ip4Prefix;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/TestHostService.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/TestHostService.java
index 9edddc1..8a20985 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/TestHostService.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/TestHostService.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import java.util.HashSet;
 import java.util.Random;
@@ -7,18 +7,18 @@
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DefaultHost;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.HostLocation;
-import org.onlab.onos.net.host.HostEvent;
-import org.onlab.onos.net.host.HostListener;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.host.PortAddresses;
-import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.onos.sdnip.Router.InternalHostListener;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DefaultHost;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Host;
+import org.onosproject.net.HostId;
+import org.onosproject.net.HostLocation;
+import org.onosproject.net.host.HostEvent;
+import org.onosproject.net.host.HostListener;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.host.PortAddresses;
+import org.onosproject.net.provider.ProviderId;
+import org.onosproject.sdnip.Router.InternalHostListener;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/TestIntentServiceHelper.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/TestIntentServiceHelper.java
index 00dce9e..29c14ff 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/TestIntentServiceHelper.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/TestIntentServiceHelper.java
@@ -1,15 +1,15 @@
-package org.onlab.onos.sdnip;
+package org.onosproject.sdnip;
 
 import java.util.LinkedList;
 import java.util.List;
 
 import org.apache.commons.collections4.CollectionUtils;
 import org.easymock.IArgumentMatcher;
-import org.onlab.onos.net.intent.Intent;
-import org.onlab.onos.net.intent.IntentId;
-import org.onlab.onos.net.intent.IntentOperation;
-import org.onlab.onos.net.intent.IntentOperations;
-import org.onlab.onos.sdnip.IntentSynchronizer.IntentKey;
+import org.onosproject.net.intent.Intent;
+import org.onosproject.net.intent.IntentId;
+import org.onosproject.net.intent.IntentOperation;
+import org.onosproject.net.intent.IntentOperations;
+import org.onosproject.sdnip.IntentSynchronizer.IntentKey;
 
 import static org.easymock.EasyMock.reportMatcher;
 
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/AsPathTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/AsPathTest.java
index a750431..481ca43 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/AsPathTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/AsPathTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.not;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/BgpRouteEntryTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/BgpRouteEntryTest.java
index 318008f..e54e506 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/BgpRouteEntryTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/BgpRouteEntryTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/BgpSessionManagerTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/BgpSessionManagerTest.java
index d9b3774..12a2ff3 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/BgpSessionManagerTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/BgpSessionManagerTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import static org.hamcrest.Matchers.hasItem;
 import static org.hamcrest.Matchers.hasSize;
@@ -43,8 +43,8 @@
 import org.junit.Test;
 import org.onlab.junit.TestUtils;
 import org.onlab.junit.TestUtils.TestUtilsException;
-import org.onlab.onos.sdnip.RouteListener;
-import org.onlab.onos.sdnip.RouteUpdate;
+import org.onosproject.sdnip.RouteListener;
+import org.onosproject.sdnip.RouteUpdate;
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.Ip4Prefix;
 
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/PathSegmentTest.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/PathSegmentTest.java
index 27579de..e8f2ddc 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/PathSegmentTest.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/PathSegmentTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.not;
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/TestBgpPeerChannelHandler.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/TestBgpPeerChannelHandler.java
index 22f8a0a..50c5b22 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/TestBgpPeerChannelHandler.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/TestBgpPeerChannelHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import java.util.Collection;
 
diff --git a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/TestBgpPeerFrameDecoder.java b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/TestBgpPeerFrameDecoder.java
index 2aa8bd0..7f56df0 100644
--- a/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/TestBgpPeerFrameDecoder.java
+++ b/apps/sdnip/src/test/java/org/onosproject/sdnip/bgp/TestBgpPeerFrameDecoder.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.sdnip.bgp;
+package org.onosproject.sdnip.bgp;
 
 import java.util.concurrent.CountDownLatch;
 
diff --git a/apps/tvue/pom.xml b/apps/tvue/pom.xml
index 1fab26e..6817eee 100644
--- a/apps/tvue/pom.xml
+++ b/apps/tvue/pom.xml
@@ -20,7 +20,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.onlab.onos</groupId>
+        <groupId>org.onosproject</groupId>
         <artifactId>onos-apps</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
@@ -37,7 +37,7 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.onlab.onos</groupId>
+            <groupId>org.onosproject</groupId>
             <artifactId>onlab-rest</artifactId>
             <version>${project.version}</version>
         </dependency>
@@ -97,7 +97,7 @@
                             com.fasterxml.jackson.databind.node,
                             org.onlab.packet.*,
                             org.onlab.rest.*,
-                            org.onlab.onos.*
+                            org.onosproject.*
                         </Import-Package>
                         <Web-ContextPath>${web.context}</Web-ContextPath>
                     </instructions>
diff --git a/apps/tvue/src/main/java/org/onosproject/tvue/TopologyResource.java b/apps/tvue/src/main/java/org/onosproject/tvue/TopologyResource.java
index 086afa6..9ace27d 100644
--- a/apps/tvue/src/main/java/org/onosproject/tvue/TopologyResource.java
+++ b/apps/tvue/src/main/java/org/onosproject/tvue/TopologyResource.java
@@ -13,24 +13,24 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.tvue;
+package org.onosproject.tvue;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.ElementId;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.device.DeviceService;
-import org.onlab.onos.net.host.HostService;
-import org.onlab.onos.net.link.LinkService;
-import org.onlab.onos.net.topology.PathService;
-import org.onlab.onos.net.topology.Topology;
-import org.onlab.onos.net.topology.TopologyGraph;
-import org.onlab.onos.net.topology.TopologyService;
-import org.onlab.onos.net.topology.TopologyVertex;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.ElementId;
+import org.onosproject.net.Host;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.host.HostService;
+import org.onosproject.net.link.LinkService;
+import org.onosproject.net.topology.PathService;
+import org.onosproject.net.topology.Topology;
+import org.onosproject.net.topology.TopologyGraph;
+import org.onosproject.net.topology.TopologyService;
+import org.onosproject.net.topology.TopologyVertex;
 import org.onlab.packet.IpAddress;
 import org.onlab.rest.BaseResource;
 
@@ -43,9 +43,9 @@
 import java.util.Map;
 import java.util.Set;
 
-import static org.onlab.onos.net.DeviceId.deviceId;
-import static org.onlab.onos.net.HostId.hostId;
-import static org.onlab.onos.net.PortNumber.portNumber;
+import static org.onosproject.net.DeviceId.deviceId;
+import static org.onosproject.net.HostId.hostId;
+import static org.onosproject.net.PortNumber.portNumber;
 
 /**
  * Topology viewer resource.
diff --git a/apps/tvue/src/main/java/org/onosproject/tvue/package-info.java b/apps/tvue/src/main/java/org/onosproject/tvue/package-info.java
index 675726b..f04e0f6 100644
--- a/apps/tvue/src/main/java/org/onosproject/tvue/package-info.java
+++ b/apps/tvue/src/main/java/org/onosproject/tvue/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Sample topology viewer application.
  */
-package org.onlab.onos.tvue;
+package org.onosproject.tvue;
diff --git a/apps/tvue/src/main/webapp/WEB-INF/web.xml b/apps/tvue/src/main/webapp/WEB-INF/web.xml
index b42951a..0c02e09 100644
--- a/apps/tvue/src/main/webapp/WEB-INF/web.xml
+++ b/apps/tvue/src/main/webapp/WEB-INF/web.xml
@@ -33,9 +33,9 @@
         </init-param>
         <init-param>
             <!--param-name>com.sun.jersey.config.property.packages</param-name>
-            <param-value>org.onlab.onos.tvue</param-value-->
+            <param-value>org.onosproject.tvue</param-value-->
             <param-name>com.sun.jersey.config.property.classnames</param-name>
-            <param-value>org.onlab.onos.tvue.TopologyResource</param-value>
+            <param-value>org.onosproject.tvue.TopologyResource</param-value>
         </init-param>
         <load-on-startup>10</load-on-startup>
     </servlet>
@@ -45,4 +45,4 @@
         <url-pattern>/rs/*</url-pattern>
     </servlet-mapping>
 
-</web-app>
\ No newline at end of file
+</web-app>
